@amcharts/amcharts5 5.0.13 → 5.0.17

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 (231) hide show
  1. package/.internal/charts/hierarchy/Hierarchy.js +1 -1
  2. package/.internal/charts/hierarchy/Hierarchy.js.map +1 -1
  3. package/.internal/charts/hierarchy/HierarchyDefaultTheme.d.ts.map +1 -1
  4. package/.internal/charts/hierarchy/HierarchyDefaultTheme.js +3 -0
  5. package/.internal/charts/hierarchy/HierarchyDefaultTheme.js.map +1 -1
  6. package/.internal/charts/map/MapChart.d.ts +9 -2
  7. package/.internal/charts/map/MapChart.d.ts.map +1 -1
  8. package/.internal/charts/map/MapChart.js +9 -2
  9. package/.internal/charts/map/MapChart.js.map +1 -1
  10. package/.internal/charts/map/MapPointSeries.d.ts.map +1 -1
  11. package/.internal/charts/map/MapPointSeries.js +1 -2
  12. package/.internal/charts/map/MapPointSeries.js.map +1 -1
  13. package/.internal/charts/map/MapUtils.js +2 -2
  14. package/.internal/charts/map/MapUtils.js.map +1 -1
  15. package/.internal/charts/percent/PercentSeries.d.ts.map +1 -1
  16. package/.internal/charts/percent/PercentSeries.js +3 -1
  17. package/.internal/charts/percent/PercentSeries.js.map +1 -1
  18. package/.internal/charts/wordcloud/WordCloud.d.ts.map +1 -1
  19. package/.internal/charts/wordcloud/WordCloud.js +6 -1
  20. package/.internal/charts/wordcloud/WordCloud.js.map +1 -1
  21. package/.internal/charts/xy/XYChart.d.ts.map +1 -1
  22. package/.internal/charts/xy/XYChart.js +6 -2
  23. package/.internal/charts/xy/XYChart.js.map +1 -1
  24. package/.internal/charts/xy/XYCursor.d.ts.map +1 -1
  25. package/.internal/charts/xy/XYCursor.js +4 -1
  26. package/.internal/charts/xy/XYCursor.js.map +1 -1
  27. package/.internal/charts/xy/axes/Axis.d.ts.map +1 -1
  28. package/.internal/charts/xy/axes/Axis.js +3 -0
  29. package/.internal/charts/xy/axes/Axis.js.map +1 -1
  30. package/.internal/charts/xy/axes/ValueAxis.js +4 -4
  31. package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
  32. package/.internal/charts/xy/series/BaseColumnSeries.d.ts +2 -0
  33. package/.internal/charts/xy/series/BaseColumnSeries.d.ts.map +1 -1
  34. package/.internal/charts/xy/series/BaseColumnSeries.js +36 -4
  35. package/.internal/charts/xy/series/BaseColumnSeries.js.map +1 -1
  36. package/.internal/charts/xy/series/LineSeries.js +2 -2
  37. package/.internal/charts/xy/series/LineSeries.js.map +1 -1
  38. package/.internal/charts/xy/series/XYSeries.d.ts +16 -1
  39. package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
  40. package/.internal/charts/xy/series/XYSeries.js +69 -33
  41. package/.internal/charts/xy/series/XYSeries.js.map +1 -1
  42. package/.internal/core/Root.d.ts.map +1 -1
  43. package/.internal/core/Root.js +43 -14
  44. package/.internal/core/Root.js.map +1 -1
  45. package/.internal/core/render/Component.d.ts.map +1 -1
  46. package/.internal/core/render/Component.js +5 -1
  47. package/.internal/core/render/Component.js.map +1 -1
  48. package/.internal/core/render/Container.d.ts.map +1 -1
  49. package/.internal/core/render/Container.js +6 -0
  50. package/.internal/core/render/Container.js.map +1 -1
  51. package/.internal/core/render/Label.d.ts +8 -0
  52. package/.internal/core/render/Label.d.ts.map +1 -1
  53. package/.internal/core/render/Label.js +1 -0
  54. package/.internal/core/render/Label.js.map +1 -1
  55. package/.internal/core/render/Legend.d.ts +7 -1
  56. package/.internal/core/render/Legend.d.ts.map +1 -1
  57. package/.internal/core/render/Legend.js +5 -0
  58. package/.internal/core/render/Legend.js.map +1 -1
  59. package/.internal/core/render/Scrollbar.d.ts.map +1 -1
  60. package/.internal/core/render/Scrollbar.js +12 -2
  61. package/.internal/core/render/Scrollbar.js.map +1 -1
  62. package/.internal/core/render/SerialChart.d.ts.map +1 -1
  63. package/.internal/core/render/SerialChart.js +4 -0
  64. package/.internal/core/render/SerialChart.js.map +1 -1
  65. package/.internal/core/render/Series.d.ts +2 -0
  66. package/.internal/core/render/Series.d.ts.map +1 -1
  67. package/.internal/core/render/Series.js +48 -29
  68. package/.internal/core/render/Series.js.map +1 -1
  69. package/.internal/core/render/Sprite.d.ts +17 -4
  70. package/.internal/core/render/Sprite.d.ts.map +1 -1
  71. package/.internal/core/render/Sprite.js +24 -10
  72. package/.internal/core/render/Sprite.js.map +1 -1
  73. package/.internal/core/render/Text.d.ts +1 -0
  74. package/.internal/core/render/Text.d.ts.map +1 -1
  75. package/.internal/core/render/Text.js +1 -0
  76. package/.internal/core/render/Text.js.map +1 -1
  77. package/.internal/core/render/backend/CanvasRenderer.d.ts +4 -2
  78. package/.internal/core/render/backend/CanvasRenderer.d.ts.map +1 -1
  79. package/.internal/core/render/backend/CanvasRenderer.js +85 -17
  80. package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
  81. package/.internal/core/render/backend/Renderer.d.ts +2 -0
  82. package/.internal/core/render/backend/Renderer.d.ts.map +1 -1
  83. package/.internal/core/render/backend/Renderer.js.map +1 -1
  84. package/.internal/core/util/Accessibility.d.ts +12 -0
  85. package/.internal/core/util/Accessibility.d.ts.map +1 -1
  86. package/.internal/core/util/Accessibility.js.map +1 -1
  87. package/.internal/core/util/Children.d.ts.map +1 -1
  88. package/.internal/core/util/Children.js +4 -0
  89. package/.internal/core/util/Children.js.map +1 -1
  90. package/.internal/core/util/Disposer.d.ts +9 -0
  91. package/.internal/core/util/Disposer.d.ts.map +1 -1
  92. package/.internal/core/util/Disposer.js +24 -0
  93. package/.internal/core/util/Disposer.js.map +1 -1
  94. package/.internal/core/util/List.d.ts +6 -0
  95. package/.internal/core/util/List.d.ts.map +1 -1
  96. package/.internal/core/util/List.js +26 -3
  97. package/.internal/core/util/List.js.map +1 -1
  98. package/.internal/core/util/TextFormatter.d.ts.map +1 -1
  99. package/.internal/core/util/TextFormatter.js +3 -0
  100. package/.internal/core/util/TextFormatter.js.map +1 -1
  101. package/.internal/plugins/exporting/Annotator.d.ts +3 -1
  102. package/.internal/plugins/exporting/Annotator.d.ts.map +1 -1
  103. package/.internal/plugins/exporting/Annotator.js +46 -16
  104. package/.internal/plugins/exporting/Annotator.js.map +1 -1
  105. package/.internal/plugins/exporting/Exporting.d.ts +29 -0
  106. package/.internal/plugins/exporting/Exporting.d.ts.map +1 -1
  107. package/.internal/plugins/exporting/Exporting.js +15 -0
  108. package/.internal/plugins/exporting/Exporting.js.map +1 -1
  109. package/.internal/plugins/exporting/ExportingMenu.d.ts +2 -0
  110. package/.internal/plugins/exporting/ExportingMenu.d.ts.map +1 -1
  111. package/.internal/plugins/exporting/ExportingMenu.js +35 -14
  112. package/.internal/plugins/exporting/ExportingMenu.js.map +1 -1
  113. package/.internal/themes/DefaultTheme.d.ts.map +1 -1
  114. package/.internal/themes/DefaultTheme.js +2 -0
  115. package/.internal/themes/DefaultTheme.js.map +1 -1
  116. package/CHANGELOG.md +59 -1
  117. package/examples/javascript/flow-chord/package.json +1 -1
  118. package/examples/javascript/flow-chord-directed/package.json +1 -1
  119. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  120. package/examples/javascript/flow-sankey/package.json +1 -1
  121. package/examples/javascript/gauge/package.json +1 -1
  122. package/examples/javascript/gauge-bands/package.json +1 -1
  123. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  124. package/examples/javascript/hierarchy-pack/package.json +1 -1
  125. package/examples/javascript/hierarchy-partition/package.json +1 -1
  126. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  127. package/examples/javascript/hierarchy-tree/package.json +1 -1
  128. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  129. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  130. package/examples/javascript/map-day-and-night/package.json +1 -1
  131. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  132. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  133. package/examples/javascript/map-with-bubbles/package.json +1 -1
  134. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  135. package/examples/javascript/misc-40-charts/package.json +1 -1
  136. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  137. package/examples/javascript/pie-chart/package.json +1 -1
  138. package/examples/javascript/pie-donut-chart/package.json +1 -1
  139. package/examples/javascript/pie-variable-radius/package.json +1 -1
  140. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  141. package/examples/javascript/radar-heat-map/package.json +1 -1
  142. package/examples/javascript/radar-line/package.json +1 -1
  143. package/examples/javascript/radar-time-line/package.json +1 -1
  144. package/examples/javascript/sliced-funnel/package.json +1 -1
  145. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  146. package/examples/javascript/sliced-pyramid/package.json +1 -1
  147. package/examples/javascript/venn-diagram/package.json +1 -1
  148. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  149. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  150. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  151. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  152. package/examples/javascript/xy-bubble/package.json +1 -1
  153. package/examples/javascript/xy-candlestick/package.json +1 -1
  154. package/examples/javascript/xy-clustered-column/package.json +1 -1
  155. package/examples/javascript/xy-column/package.json +1 -1
  156. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  157. package/examples/javascript/xy-data-grouping/package.json +1 -1
  158. package/examples/javascript/xy-draggable-range/package.json +1 -1
  159. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  160. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  161. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  162. package/examples/javascript/xy-line/package.json +1 -1
  163. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  164. package/examples/javascript/xy-live-data/package.json +1 -1
  165. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  166. package/examples/javascript/xy-ohlc/package.json +1 -1
  167. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  168. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  169. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  170. package/examples/javascript/xy-stacked-column/package.json +1 -1
  171. package/examples/javascript/xy-stacked-step/package.json +1 -1
  172. package/examples/javascript/xy-stock/package.json +1 -1
  173. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  174. package/examples/typescript/flow-chord/package.json +1 -1
  175. package/examples/typescript/flow-chord-directed/package.json +1 -1
  176. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  177. package/examples/typescript/flow-sankey/package.json +1 -1
  178. package/examples/typescript/gauge/package.json +1 -1
  179. package/examples/typescript/gauge-bands/package.json +1 -1
  180. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  181. package/examples/typescript/hierarchy-pack/package.json +1 -1
  182. package/examples/typescript/hierarchy-partition/package.json +1 -1
  183. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  184. package/examples/typescript/hierarchy-tree/package.json +1 -1
  185. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  186. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  187. package/examples/typescript/map-day-and-night/package.json +1 -1
  188. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  189. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  190. package/examples/typescript/map-with-bubbles/package.json +1 -1
  191. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  192. package/examples/typescript/misc-40-charts/package.json +1 -1
  193. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  194. package/examples/typescript/pie-chart/package.json +1 -1
  195. package/examples/typescript/pie-donut-chart/package.json +1 -1
  196. package/examples/typescript/pie-variable-radius/package.json +1 -1
  197. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  198. package/examples/typescript/radar-heat-map/package.json +1 -1
  199. package/examples/typescript/radar-line/package.json +1 -1
  200. package/examples/typescript/radar-time-line/package.json +1 -1
  201. package/examples/typescript/sliced-funnel/package.json +1 -1
  202. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  203. package/examples/typescript/sliced-pyramid/package.json +1 -1
  204. package/examples/typescript/venn-diagram/package.json +1 -1
  205. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  206. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  207. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  208. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  209. package/examples/typescript/xy-bubble/package.json +1 -1
  210. package/examples/typescript/xy-candlestick/package.json +1 -1
  211. package/examples/typescript/xy-clustered-column/package.json +1 -1
  212. package/examples/typescript/xy-column/package.json +1 -1
  213. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  214. package/examples/typescript/xy-data-grouping/package.json +1 -1
  215. package/examples/typescript/xy-draggable-range/package.json +1 -1
  216. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  217. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  218. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  219. package/examples/typescript/xy-line/package.json +1 -1
  220. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  221. package/examples/typescript/xy-live-data/package.json +1 -1
  222. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  223. package/examples/typescript/xy-ohlc/package.json +1 -1
  224. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  225. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  226. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  227. package/examples/typescript/xy-stacked-column/package.json +1 -1
  228. package/examples/typescript/xy-stacked-step/package.json +1 -1
  229. package/examples/typescript/xy-stock/package.json +1 -1
  230. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  231. package/package.json +3 -2
@@ -583,6 +583,7 @@ var Root = /** @class */ (function () {
583
583
  focusElementContainer.style.overflow = "hidden";
584
584
  focusElementContainer.style.width = this.dom.clientWidth + "px";
585
585
  focusElementContainer.style.height = this.dom.clientHeight + "px";
586
+ focusElementContainer.setAttribute("role", "application");
586
587
  $utils.setInteractive(focusElementContainer, false);
587
588
  this._focusElementContainer = focusElementContainer;
588
589
  this._inner.appendChild(this._focusElementContainer);
@@ -591,7 +592,7 @@ var Root = /** @class */ (function () {
591
592
  // Add keyboard events for accessibility, e.g. simulating drag with arrow
592
593
  // keys and click with ENTER
593
594
  if ($utils.supports("keyboardevents")) {
594
- this._disposers.push($utils.addEventListener(document, "keydown", function (ev) {
595
+ this._disposers.push($utils.addEventListener(focusElementContainer, "keydown", function (ev) {
595
596
  var focusedSprite = _this._focusedSprite;
596
597
  if (focusedSprite) {
597
598
  if (ev.keyCode == 27) {
@@ -676,7 +677,7 @@ var Root = /** @class */ (function () {
676
677
  }
677
678
  }
678
679
  }));
679
- document.addEventListener("keyup", function (ev) {
680
+ this._disposers.push($utils.addEventListener(focusElementContainer, "keyup", function (ev) {
680
681
  if (_this._focusedSprite) {
681
682
  var focusedSprite = _this._focusedSprite;
682
683
  var keyCode = ev.keyCode;
@@ -720,12 +721,12 @@ var Root = /** @class */ (function () {
720
721
  else if (index > lastIndex) {
721
722
  index = 0;
722
723
  }
723
- $utils.focus(items[index].getPrivate("focusElement"));
724
+ $utils.focus(items[index].getPrivate("focusElement").dom);
724
725
  }
725
726
  break;
726
727
  }
727
728
  }
728
- });
729
+ }));
729
730
  }
730
731
  this._startTicker();
731
732
  this.setThemes([]);
@@ -1185,7 +1186,7 @@ var Root = /** @class */ (function () {
1185
1186
  if (group) {
1186
1187
  if (groups.indexOf(group) !== -1) {
1187
1188
  // Non-first element in the group, make it not directly focusable
1188
- item.getPrivate("focusElement").setAttribute("tabindex", "-1");
1189
+ item.getPrivate("focusElement").dom.setAttribute("tabindex", "-1");
1189
1190
  }
1190
1191
  else {
1191
1192
  groups.push(group);
@@ -1212,7 +1213,7 @@ var Root = /** @class */ (function () {
1212
1213
  value: function (target, focusElement) {
1213
1214
  // Decorate with proper accessibility attributes
1214
1215
  if (!focusElement) {
1215
- focusElement = target.getPrivate("focusElement");
1216
+ focusElement = target.getPrivate("focusElement").dom;
1216
1217
  }
1217
1218
  if (!focusElement) {
1218
1219
  return;
@@ -1274,6 +1275,20 @@ var Root = /** @class */ (function () {
1274
1275
  else {
1275
1276
  focusElement.removeAttribute("aria-valuenow");
1276
1277
  }
1278
+ var ariaValueMin = target.get("ariaValueMin");
1279
+ if (ariaValueMin) {
1280
+ focusElement.setAttribute("aria-valuemin", ariaValueMin);
1281
+ }
1282
+ else {
1283
+ focusElement.removeAttribute("aria-valuemin");
1284
+ }
1285
+ var ariaValueMax = target.get("ariaValueMax");
1286
+ if (ariaValueMax) {
1287
+ focusElement.setAttribute("aria-valuemax", ariaValueMax);
1288
+ }
1289
+ else {
1290
+ focusElement.removeAttribute("aria-valuemax");
1291
+ }
1277
1292
  var ariaValueText = target.get("ariaValueText");
1278
1293
  if (ariaValueText) {
1279
1294
  focusElement.setAttribute("aria-valuetext", ariaValueText);
@@ -1281,6 +1296,13 @@ var Root = /** @class */ (function () {
1281
1296
  else {
1282
1297
  focusElement.removeAttribute("aria-valuetext");
1283
1298
  }
1299
+ var ariaControls = target.get("ariaControls");
1300
+ if (ariaControls) {
1301
+ focusElement.setAttribute("aria-controls", ariaControls);
1302
+ }
1303
+ else {
1304
+ focusElement.removeAttribute("aria-controls");
1305
+ }
1284
1306
  }
1285
1307
  });
1286
1308
  Object.defineProperty(Root.prototype, "_makeFocusElement", {
@@ -1299,14 +1321,18 @@ var Root = /** @class */ (function () {
1299
1321
  }
1300
1322
  focusElement.style.position = "absolute";
1301
1323
  $utils.setInteractive(focusElement, false);
1302
- target.setPrivate("focusElement", focusElement);
1324
+ var disposers = [];
1325
+ target.setPrivate("focusElement", {
1326
+ dom: focusElement,
1327
+ disposers: disposers,
1328
+ });
1303
1329
  this._decorateFocusElement(target);
1304
- focusElement.addEventListener("focus", function (ev) {
1330
+ disposers.push($utils.addEventListener(focusElement, "focus", function (ev) {
1305
1331
  _this._handleFocus(ev, index);
1306
- });
1307
- focusElement.addEventListener("blur", function (ev) {
1332
+ }));
1333
+ disposers.push($utils.addEventListener(focusElement, "blur", function (ev) {
1308
1334
  _this._handleBlur(ev, index);
1309
- });
1335
+ }));
1310
1336
  this._moveFocusElement(index, target);
1311
1337
  }
1312
1338
  });
@@ -1318,7 +1344,10 @@ var Root = /** @class */ (function () {
1318
1344
  // Init
1319
1345
  var container = this._focusElementContainer;
1320
1346
  var focusElement = target.getPrivate("focusElement");
1321
- container.removeChild(focusElement);
1347
+ container.removeChild(focusElement.dom);
1348
+ $array.each(focusElement.disposers, function (x) {
1349
+ x.dispose();
1350
+ });
1322
1351
  }
1323
1352
  });
1324
1353
  Object.defineProperty(Root.prototype, "_moveFocusElement", {
@@ -1328,7 +1357,7 @@ var Root = /** @class */ (function () {
1328
1357
  value: function (index, target) {
1329
1358
  // Get container
1330
1359
  var container = this._focusElementContainer;
1331
- var focusElement = target.getPrivate("focusElement");
1360
+ var focusElement = target.getPrivate("focusElement").dom;
1332
1361
  if (focusElement === this._focusElementContainer.children[index]) {
1333
1362
  // Nothing to do
1334
1363
  return;
@@ -1350,7 +1379,7 @@ var Root = /** @class */ (function () {
1350
1379
  var bounds = target.globalBounds();
1351
1380
  var width = bounds.right == bounds.left ? target.width() : bounds.right - bounds.left;
1352
1381
  var height = bounds.top == bounds.bottom ? target.height() : bounds.bottom - bounds.top;
1353
- var focusElement = target.getPrivate("focusElement");
1382
+ var focusElement = target.getPrivate("focusElement").dom;
1354
1383
  focusElement.style.top = (bounds.top - 2) + "px";
1355
1384
  focusElement.style.left = (bounds.left - 2) + "px";
1356
1385
  focusElement.style.width = (width + 4) + "px";
@@ -1 +1 @@
1
- {"version":3,"file":"Root.js","sourceRoot":"","sources":["../../../../src/.internal/core/Root.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IAnimation } from \"./util/Animation\";\nimport type { Entity } from \"./util/Entity\";\nimport type { Sprite } from \"./render/Sprite\";\nimport type { Text } from \"./render/Text\";\nimport type { Theme } from \"./Theme\";\nimport type { IPoint } from \"./util/IPoint\";\nimport type { IRenderer } from \"./render/backend/Renderer\";\n\nimport { Container } from \"./render/Container\";\nimport { HorizontalLayout } from \"./render/HorizontalLayout\";\nimport { VerticalLayout } from \"./render/VerticalLayout\";\nimport { GridLayout } from \"./render/GridLayout\";\nimport { IDisposer, Disposer } from \"./util/Disposer\";\nimport { ResizeSensor } from \"./util/ResizeSensor\";\nimport { InterfaceColors } from \"./util/InterfaceColors\";\nimport { Graphics } from \"./render/Graphics\";\nimport { Rectangle } from \"./render/Rectangle\";\nimport { Tooltip } from \"./render/Tooltip\";\nimport { NumberFormatter } from \"./util/NumberFormatter\";\nimport { DateFormatter } from \"./util/DateFormatter\";\nimport { DurationFormatter } from \"./util/DurationFormatter\";\nimport { ILocale, Language } from \"./util/Language\";\nimport { Events, EventDispatcher } from \"./util/EventDispatcher\";\nimport { DefaultTheme } from \"../themes/DefaultTheme\";\nimport { CanvasRenderer } from \"./render/backend/CanvasRenderer\";\nimport { p100, percent } from \"./util/Percent\";\nimport { color } from \"./util/Color\";\nimport { populateString } from \"./util/PopulateString\";\nimport { registry } from \"./Registry\";\n\nimport * as $order from \"./util/Order\";\nimport * as $array from \"./util/Array\";\nimport * as $object from \"./util/Object\";\nimport * as $utils from \"./util/Utils\";\n\nimport en from \"../../locales/en\";\n\n\nfunction rAF(fps: number | undefined, callback: (currentTime: number) => void): void {\n\tif (fps == null) {\n\t\trequestAnimationFrame(callback);\n\n\t} else {\n\t\tsetTimeout(() => {\n\t\t\trequestAnimationFrame(callback);\n\t\t}, 1000 / fps);\n\t}\n}\n\n\n/**\n * @ignore\n */\ninterface IParent extends Entity {\n\t_prepareChildren(): void;\n\t_updateChildren(): void;\n}\n\ninterface IBounds extends Entity {\n\tdepth(): number;\n\t_updateBounds(): void;\n}\n\n\nexport interface IRootEvents {\n\tframestarted: {\n\t\ttimestamp: number;\n\t};\n\tframeended: {\n\t\ttimestamp: number;\n\t};\n}\n\n\n// TODO implement Disposer\n/**\n * Root element of the chart.\n *\n * @see {@link https://www.amcharts.com/docs/v5/getting-started/#Root_element} for more info\n */\nexport class Root implements IDisposer {\n\n\t/**\n\t * A reference to original chart container (div element).\n\t */\n\tpublic dom: HTMLElement;\n\tpublic _inner: HTMLElement;\n\n\tprotected _isDirty: boolean = false;\n\tprotected _isDirtyParents: boolean = false;\n\tprotected _dirty: { [id: number]: Entity } = {};\n\tprotected _dirtyParents: { [id: number]: IParent } = {};\n\tprotected _dirtyBounds: { [id: number]: IBounds } = {};\n\tprotected _dirtyPositions: { [id: number]: Sprite } = {};\n\n\tprotected _ticker: ((currentTime: number) => void) | null = null;\n\tprotected _tickers: Array<(currentTime: number) => void> = [];\n\n\t/**\n\t * Root's event dispatcher.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/events/} for more info\n\t */\n\tpublic events: EventDispatcher<Events<this, IRootEvents>> = new EventDispatcher();\n\n\t/**\n\t * @todo needs description\n\t */\n\tpublic animationTime: number | null = null;\n\n\tprivate _animations: Array<IAnimation> = [];\n\n\tpublic _renderer: IRenderer = new CanvasRenderer();\n\n\tpublic _rootContainer!: Container;\n\n\t/**\n\t * Main content container.\n\t */\n\tpublic container!: Container;\n\n\t/**\n\t * A [[Container]] used to display tooltips in.\n\t */\n\tpublic tooltipContainer!: Container\n\n\tpublic _tooltip!: Tooltip;\n\n\t// Locale-related\n\n\t/**\n\t * @ignore\n\t */\n\tpublic language: Language = Language.new(this, {});\n\n\t/**\n\t * Locale used by the chart.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/locales/}\n\t */\n\tpublic locale: ILocale = en;\n\n\t// Date-time related\n\n\t/**\n\t * Use UTC when formatting date/time.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-dates/#UTC_and_time_zones} for more info\n\t */\n\tpublic utc: boolean = false;\n\n\t/**\n\t * Use specific time zone when formatting date/time.\n\t *\n\t * @ignore timezones are not yet supported\n\t */\n\tpublic timezone: string | null = null;\n\n\t/**\n\t * The maximum FPS that the Root will run at.\n\t *\n\t * If `undefined` it will run at the highest FPS.\n\t */\n\tpublic fps: number | undefined;\n\n\t/**\n\t * Number formatter.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-numbers/} for more info\n\t */\n\tpublic numberFormatter: NumberFormatter = NumberFormatter.new(this, {});\n\n\t/**\n\t * Date/time formatter.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-dates/} for more info\n\t */\n\tpublic dateFormatter: DateFormatter = DateFormatter.new(this, {});\n\n\t/**\n\t * Duration formatter.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-dates/} for more info\n\t */\n\tpublic durationFormatter: DurationFormatter = DurationFormatter.new(this, {});\n\n\n\t// Accessibility\n\n\t/**\n\t * Global tab index for using for the whole chart\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/accessibility/} for more info\n\t */\n\tpublic tabindex: number = 0;\n\n\t//@todo maybe make this better\n\tprotected _tabindexes: Sprite[] = [];\n\n\tprotected _focusElementDirty: boolean = false;\n\tprotected _focusElementContainer: HTMLDivElement | undefined;\n\tprotected _focusedSprite: Sprite | undefined;\n\tprotected _keyboardDragPoint: IPoint | undefined;\n\tprotected _tooltipElementContainer: HTMLDivElement | undefined;\n\tprotected _readerAlertElement: HTMLDivElement | undefined;\n\n\tpublic _logo?: Container;\n\n\t/**\n\t * Used for dynamically-created CSS and JavaScript with strict source policies.\n\t */\n\tpublic nonce?: string;\n\n\t/**\n\t * Special color set to be used for various controls.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/#Interface_colors} for more info\n\t */\n\tpublic interfaceColors: InterfaceColors;\n\n\t/**\n\t * An instance of vertical layout object that can be used to set `layout` setting\n\t * of a [[Container]].\n\t *\n\t * @default VerticalLayout.new()\n\t */\n\tpublic verticalLayout: VerticalLayout = VerticalLayout.new(this, {});\n\n\t/**\n\t * An instance of horizontal layout object that can be used to set `layout` setting\n\t * of a [[Container]].\n\t *\n\t * @default HorizontalLayout.new()\n\t */\n\tpublic horizontalLayout: VerticalLayout = HorizontalLayout.new(this, {});\n\n\t/**\n\t * An instance of grid layout object that can be used to set `layout` setting\n\t * of a [[Container]].\n\t *\n\t * @default VerticalLayout.new()\n\t */\n\tpublic gridLayout: VerticalLayout = GridLayout.new(this, {});\n\n\t/**\n\t * Indicates whether chart should resized automatically when parent container\n\t * width and/or height changes.\n\t *\n\t * If disabled (`autoResize = false`) you can make the chart resize manually\n\t * by calling root element's `resize()` method.\n\t */\n\tpublic autoResize: boolean = true;\n\n\tprotected _isDisposed: boolean = false;\n\tprotected _disposers: Array<IDisposer> = [];\n\n\tprotected _resizeSensorDisposer?: IDisposer;\n\n\tpublic _tooltips: Array<Tooltip> = [];\n\n\tprotected constructor(id: string | HTMLElement, isReal: boolean) {\n\n\t\tif (!isReal) {\n\t\t\tthrow new Error(\"You cannot use `new Class()`, instead use `Class.new()`\");\n\t\t}\n\n\t\tlet dom: HTMLElement | null;\n\n\t\tif (id instanceof HTMLElement) {\n\t\t\tdom = id;\n\t\t}\n\t\telse {\n\t\t\tdom = document.getElementById(id);\n\t\t}\n\n\t\t$array.each(registry.rootElements, (root) => {\n\t\t\tif (root.dom === dom) {\n\t\t\t\tthrow new Error(\"You cannot have multiple Roots on the same DOM node\");\n\t\t\t}\n\t\t});\n\n\t\tthis.interfaceColors = InterfaceColors.new(this, {});\n\n\t\tif (dom === null) {\n\t\t\tthrow new Error(\"Could not find HTML element with id `\" + id + \"`\");\n\t\t}\n\n\t\tthis.dom = dom;\n\n\t\tlet inner: HTMLDivElement = document.createElement(\"div\");\n\t\tinner.style.position = \"relative\";\n\t\tdom.appendChild(inner);\n\n\t\tthis._inner = inner;\n\n\t\tregistry.rootElements.push(this);\n\t}\n\n\tpublic static new(id: string | HTMLElement): Root {\n\t\tconst root = new Root(id, true);\n\t\troot._init();\n\t\treturn root;\n\t}\n\n\tpublic moveDOM(id: string | HTMLElement): void {\n\t\tlet dom: HTMLElement | null;\n\n\t\tif (id instanceof HTMLElement) {\n\t\t\tdom = id;\n\t\t}\n\t\telse {\n\t\t\tdom = document.getElementById(id);\n\t\t}\n\n\t\tif (dom) {\n\t\t\twhile (this.dom.childNodes.length > 0) {\n\t\t\t\tdom.appendChild(this.dom.childNodes[0]);\n\t\t\t}\n\t\t\tthis.dom = dom;\n\t\t\tthis._initResizeSensor();\n\t\t\tthis.resize();\n\t\t}\n\n\t}\n\n\n\tprotected _handleLogo(): void {\n\t\tif (this._logo) {\n\t\t\tif (this._rootContainer.getPrivate(\"width\", 0) <= 150 || this._rootContainer.getPrivate(\"height\", 0) <= 60) {\n\t\t\t\tthis._logo.hide();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._logo.show();\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _showBranding(): void {\n\t\tif (!this._logo) {\n\t\t\tconst logo = this.tooltipContainer.children.push(Container.new(this, {\n\t\t\t\tinteractive: true,\n\t\t\t\tinteractiveChildren: false,\n\t\t\t\tposition: \"absolute\",\n\t\t\t\tsetStateOnChildren: true,\n\t\t\t\tpaddingTop: 9,\n\t\t\t\tpaddingRight: 9,\n\t\t\t\tpaddingBottom: 9,\n\t\t\t\tpaddingLeft: 9,\n\t\t\t\tscale: .6,\n\t\t\t\ty: percent(100),\n\t\t\t\tcenterY: p100,\n\t\t\t\ttooltipText: \"Created using amCharts 5\",\n\t\t\t\ttooltipX: p100,\n\t\t\t\tcursorOverStyle: \"pointer\",\n\t\t\t\tbackground: Rectangle.new(this, {\n\t\t\t\t\tfill: color(0x474758),\n\t\t\t\t\tfillOpacity: 0,\n\t\t\t\t\ttooltipY: 5\n\t\t\t\t})\n\t\t\t}));\n\n\t\t\tconst tooltip = Tooltip.new(this, {\n\t\t\t\tpointerOrientation: \"horizontal\",\n\t\t\t\tpaddingTop: 4,\n\t\t\t\tpaddingRight: 7,\n\t\t\t\tpaddingBottom: 4,\n\t\t\t\tpaddingLeft: 7\n\t\t\t});\n\t\t\ttooltip.label.setAll({\n\t\t\t\tfontSize: 12\n\t\t\t});\n\t\t\ttooltip.get(\"background\")!.setAll({\n\t\t\t\tfill: this.interfaceColors.get(\"background\"),\n\t\t\t\tstroke: this.interfaceColors.get(\"grid\"),\n\t\t\t\tstrokeOpacity: 0.3\n\t\t\t})\n\t\t\tlogo.set(\"tooltip\", tooltip);\n\n\t\t\tlogo.events.on(\"click\", () => {\n\t\t\t\twindow.open(\"https://www.amcharts.com/\", \"_blank\");\n\t\t\t});\n\n\t\t\tlogo.states.create(\"hover\", {});\n\n\t\t\tconst m = logo.children.push(Graphics.new(this, {\n\t\t\t\tstroke: color(0xcccccc),\n\t\t\t\tstrokeWidth: 3,\n\t\t\t\tsvgPath: \"M5 25 L13 25h13.6c3.4 0 6 0 10.3-4.3s5.2-12 8.6-12c3.4 0 4.3 8.6 7.7 8.6M83.4 25H79.8c-3.4 0-6 0-10.3-4.3s-5.2-12-8.6-12-4.3 8.6-7.7 8.6\"\n\t\t\t}));\n\n\t\t\tm.states.create(\"hover\", { stroke: color(0x3CABFF) });\n\n\t\t\tconst a = logo.children.push(Graphics.new(this, {\n\t\t\t\tstroke: color(0x888888),\n\t\t\t\tstrokeWidth: 3,\n\t\t\t\tsvgPath: \"M83.4 25h-31C37 25 39.5 4.4 28.4 4.4S18.9 24.2 4.3 25H0\"\n\t\t\t}));\n\n\t\t\ta.states.create(\"hover\", { stroke: color(0x474758) });\n\n\t\t\t//logo.set(\"tooltip\", this._tooltip);\n\t\t\t//logo.setPrivate(\"tooltipTarget\", logo.get(\"background\"));\n\t\t\tthis._logo = logo;\n\n\t\t\tthis._handleLogo();\n\t\t}\n\t}\n\n\tprotected _init(): void {\n\t\tconst renderer = this._renderer;\n\t\tconst rootContainer = Container.new(this, { visible: true, width: this.dom.clientWidth, height: this.dom.clientHeight });\n\t\tthis._rootContainer = rootContainer;\n\t\tthis._rootContainer._defaultThemes.push(DefaultTheme.new(this));\n\n\t\tconst container = rootContainer.children.push(Container.new(this, { visible: true, width: p100, height: p100 }));\n\t\tthis.container = container;\n\n\t\trenderer.resize(this.dom.clientWidth, this.dom.clientHeight);\n\n\t\t//@todo: better appendChild - refer\n\t\tthis._inner.appendChild(renderer.view);\n\n\t\t// TODO: TMP TMP TMP for testing only, remove\n\t\t//document.body.appendChild((<any>renderer)._ghostView);\n\n\t\tthis._initResizeSensor();\n\n\t\t// Create element which is used to make announcements to screen reader\n\t\tconst readerAlertElement = document.createElement(\"div\");\n\t\treaderAlertElement.setAttribute(\"role\", \"alert\");\n\t\treaderAlertElement.style.zIndex = \"-100000\";\n\t\treaderAlertElement.style.opacity = \"0\";\n\t\treaderAlertElement.style.position = \"absolute\";\n\t\treaderAlertElement.style.top = \"0\";\n\t\tthis._readerAlertElement = readerAlertElement;\n\t\tthis._inner.appendChild(this._readerAlertElement);\n\n\t\tconst focusElementContainer = document.createElement(\"div\");\n\t\tfocusElementContainer.style.position = \"absolute\";\n\t\tfocusElementContainer.style.pointerEvents = \"none\";\n\t\tfocusElementContainer.style.top = \"0px\";\n\t\tfocusElementContainer.style.left = \"0px\";\n\t\tfocusElementContainer.style.overflow = \"hidden\";\n\t\tfocusElementContainer.style.width = this.dom.clientWidth + \"px\";\n\t\tfocusElementContainer.style.height = this.dom.clientHeight + \"px\";\n\t\t$utils.setInteractive(focusElementContainer, false);\n\t\tthis._focusElementContainer = focusElementContainer;\n\t\tthis._inner.appendChild(this._focusElementContainer);\n\n\t\tthis._tooltipElementContainer = document.createElement(\"div\");\n\t\tthis._inner.appendChild(this._tooltipElementContainer);\n\n\t\t// Add keyboard events for accessibility, e.g. simulating drag with arrow\n\t\t// keys and click with ENTER\n\t\tif ($utils.supports(\"keyboardevents\")) {\n\t\t\tthis._disposers.push($utils.addEventListener(document, \"keydown\", (ev: KeyboardEvent) => {\n\t\t\t\tconst focusedSprite = this._focusedSprite;\n\t\t\t\tif (focusedSprite) {\n\t\t\t\t\tif (ev.keyCode == 27) {\n\t\t\t\t\t\t// ESC pressed - lose current focus\n\t\t\t\t\t\t$utils.blur();\n\t\t\t\t\t\tthis._focusedSprite = undefined;\n\t\t\t\t\t}\n\t\t\t\t\tlet dragOffsetX = 0;\n\t\t\t\t\tlet dragOffsetY = 0;\n\t\t\t\t\t// TODO: figure out if using bogus MouseEvent is fine, or it will\n\t\t\t\t\t// fail on some platforms\n\t\t\t\t\tswitch (ev.keyCode) {\n\t\t\t\t\t\tcase 13:\n\t\t\t\t\t\t\tev.preventDefault();\n\t\t\t\t\t\t\tconst downEvent = renderer.getEvent(new MouseEvent(\"click\"));\n\t\t\t\t\t\t\tfocusedSprite.events.dispatch(\"click\", {\n\t\t\t\t\t\t\t\ttype: \"click\",\n\t\t\t\t\t\t\t\toriginalEvent: downEvent.event,\n\t\t\t\t\t\t\t\tpoint: downEvent.point,\n\t\t\t\t\t\t\t\tsimulated: true,\n\t\t\t\t\t\t\t\ttarget: focusedSprite\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\tcase 37:\n\t\t\t\t\t\t\tdragOffsetX = -6;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 39:\n\t\t\t\t\t\t\tdragOffsetX = 6;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 38:\n\t\t\t\t\t\t\tdragOffsetY = -6;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 40:\n\t\t\t\t\t\t\tdragOffsetY = 6;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (dragOffsetX != 0 || dragOffsetY != 0) {\n\t\t\t\t\t\tev.preventDefault();\n\n\t\t\t\t\t\tif (!focusedSprite.isDragging()) {\n\t\t\t\t\t\t\t// Start dragging\n\t\t\t\t\t\t\tthis._keyboardDragPoint = {\n\t\t\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\t\t\ty: 0\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst downEvent = renderer.getEvent(new MouseEvent(\"mousedown\", {\n\t\t\t\t\t\t\t\tclientX: 0,\n\t\t\t\t\t\t\t\tclientY: 0\n\t\t\t\t\t\t\t}));\n\n\t\t\t\t\t\t\tif (focusedSprite.events.isEnabled(\"pointerdown\")) {\n\t\t\t\t\t\t\t\tfocusedSprite.events.dispatch(\"pointerdown\", {\n\t\t\t\t\t\t\t\t\ttype: \"pointerdown\",\n\t\t\t\t\t\t\t\t\toriginalEvent: downEvent.event,\n\t\t\t\t\t\t\t\t\tpoint: downEvent.point,\n\t\t\t\t\t\t\t\t\tsimulated: true,\n\t\t\t\t\t\t\t\t\ttarget: focusedSprite\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t// Move focus marker\n\t\t\t\t\t\t\t//this._positionFocusElement(focusedSprite);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Move incrementally\n\t\t\t\t\t\tconst dragPoint = this._keyboardDragPoint!;\n\t\t\t\t\t\tdragPoint.x += dragOffsetX;\n\t\t\t\t\t\tdragPoint.y += dragOffsetY;\n\t\t\t\t\t\tconst moveEvent = renderer.getEvent(new MouseEvent(\"mousemove\", {\n\t\t\t\t\t\t\tclientX: dragPoint.x,\n\t\t\t\t\t\t\tclientY: dragPoint.y\n\t\t\t\t\t\t}), false);\n\n\t\t\t\t\t\tif (focusedSprite.events.isEnabled(\"globalpointermove\")) {\n\t\t\t\t\t\t\tfocusedSprite.events.dispatch(\"globalpointermove\", {\n\t\t\t\t\t\t\t\ttype: \"globalpointermove\",\n\t\t\t\t\t\t\t\toriginalEvent: moveEvent.event,\n\t\t\t\t\t\t\t\tpoint: moveEvent.point,\n\t\t\t\t\t\t\t\tsimulated: true,\n\t\t\t\t\t\t\t\ttarget: focusedSprite\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}));\n\n\t\t\tdocument.addEventListener(\"keyup\", (ev: KeyboardEvent) => {\n\t\t\t\tif (this._focusedSprite) {\n\t\t\t\t\tconst focusedSprite = this._focusedSprite;\n\t\t\t\t\tconst keyCode = ev.keyCode;\n\t\t\t\t\tswitch (keyCode) {\n\t\t\t\t\t\tcase 37:\n\t\t\t\t\t\tcase 39:\n\t\t\t\t\t\tcase 38:\n\t\t\t\t\t\tcase 40:\n\t\t\t\t\t\t\tif (focusedSprite.isDragging()) {\n\t\t\t\t\t\t\t\t// Simulate drag stop\n\t\t\t\t\t\t\t\tconst dragPoint = this._keyboardDragPoint!;\n\t\t\t\t\t\t\t\tconst upEvent = renderer.getEvent(new MouseEvent(\"mouseup\", {\n\t\t\t\t\t\t\t\t\tclientX: dragPoint.x,\n\t\t\t\t\t\t\t\t\tclientY: dragPoint.y\n\t\t\t\t\t\t\t\t}));\n\n\t\t\t\t\t\t\t\tif (focusedSprite.events.isEnabled(\"globalpointerup\")) {\n\t\t\t\t\t\t\t\t\tfocusedSprite.events.dispatch(\"globalpointerup\", {\n\t\t\t\t\t\t\t\t\t\ttype: \"globalpointerup\",\n\t\t\t\t\t\t\t\t\t\toriginalEvent: upEvent.event,\n\t\t\t\t\t\t\t\t\t\tpoint: upEvent.point,\n\t\t\t\t\t\t\t\t\t\tsimulated: true,\n\t\t\t\t\t\t\t\t\t\ttarget: focusedSprite\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t//this._positionFocusElement(focusedSprite);\n\t\t\t\t\t\t\t\tthis._keyboardDragPoint = undefined;\n\t\t\t\t\t\t\t\t// @todo dispatch mouseup event instead of calling dragStop?\n\t\t\t\t\t\t\t\t// this._dispatchEvent(\"globalpointerup\", target, upEvent);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if(focusedSprite.get(\"focusableGroup\")) {\n\t\t\t\t\t\t\t\t// Find next item in focusable group\n\t\t\t\t\t\t\t\tconst group = focusedSprite.get(\"focusableGroup\");\n\t\t\t\t\t\t\t\tconst items = this._tabindexes.filter(item => item.get(\"focusableGroup\") == group);\n\t\t\t\t\t\t\t\tlet index = items.indexOf(focusedSprite);\n\t\t\t\t\t\t\t\tconst lastIndex = items.length - 1;\n\t\t\t\t\t\t\t\tindex += (keyCode == 39 || keyCode == 40) ? 1 : -1;\n\t\t\t\t\t\t\t\tif (index < 0) {\n\t\t\t\t\t\t\t\t\tindex = lastIndex;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse if (index > lastIndex) {\n\t\t\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t$utils.focus(items[index].getPrivate(\"focusElement\")!);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis._startTicker();\n\t\tthis.setThemes([]);\n\n\t\tthis._addTooltip();\n\n\t\tif (!this._hasLicense()) {\n\t\t\tthis._showBranding();\n\t\t}\n\t}\n\n\tprivate _initResizeSensor(): void {\n\t\tif (this._resizeSensorDisposer) {\n\t\t\tthis._resizeSensorDisposer.dispose();\n\t\t}\n\t\tthis._resizeSensorDisposer = new ResizeSensor(this.dom, () => {\n\t\t\tif (this.autoResize) {\n\t\t\t\tthis.resize();\n\t\t\t}\n\t\t});\n\t\tthis._disposers.push(this._resizeSensorDisposer);\n\t}\n\n\t/**\n\t * If automatic resizing of char is disabled (`root.autoResize = false`), it\n\t * can be resized manually by calling this method.\n\t */\n\tpublic resize(): void {\n\t\tconst dom = this.dom;\n\t\tconst w = dom.clientWidth;\n\t\tconst h = dom.clientHeight;\n\t\tif (w > 0 && h > 0) {\n\t\t\tconst focusElementContainer = this._focusElementContainer!;\n\n\t\t\tfocusElementContainer.style.width = w + \"px\";\n\t\t\tfocusElementContainer.style.height = h + \"px\";\n\n\t\t\tthis._renderer.resize(w, h);\n\n\t\t\tconst rootContainer = this._rootContainer;\n\n\t\t\trootContainer.setPrivate(\"width\", w);\n\t\t\trootContainer.setPrivate(\"height\", h);\n\t\t\tthis._render();\n\t\t\tthis._handleLogo();\n\t\t}\n\t}\n\n\tprivate _render() {\n\t\tthis._renderer.render(this._rootContainer._display);\n\n\t\tif (this._focusElementDirty) {\n\t\t\tthis._updateCurrentFocus();\n\t\t\tthis._focusElementDirty = false;\n\t\t}\n\t}\n\n\tprivate _runTickers(currentTime: number) {\n\t\t$array.each(this._tickers, (f) => {\n\t\t\tf(currentTime);\n\t\t});\n\t}\n\n\tprivate _runAnimations(currentTime: number) {\n\t\t$array.keepIf(this._animations, (animation) => {\n\t\t\treturn !animation._runAnimation(currentTime);\n\t\t});\n\t}\n\n\tprivate _runDirties() {\n\t\t//console.log(\"tick **************************************************************\");\n\t\tlet allParents: { [id: number]: IParent } = {};\n\n\t\twhile (this._isDirtyParents) {\n\t\t\t// This must be before calling _prepareChildren\n\t\t\tthis._isDirtyParents = false;\n\n\t\t\t$object.keys(this._dirtyParents).forEach((key) => {\n\t\t\t\tconst parent = this._dirtyParents[key];\n\n\t\t\t\tdelete this._dirtyParents[key];\n\n\t\t\t\tif (!parent.isDisposed()) {\n\t\t\t\t\tallParents[parent.uid] = parent;\n\t\t\t\t\tparent._prepareChildren();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t$object.keys(allParents).forEach((key) => {\n\t\t\tallParents[key]._updateChildren();\n\t\t});\n\n\t\tconst objects: Array<Entity> = [];\n\n\t\t//\t\tconsole.log(\"_beforeChanged\")\n\t\t$object.keys(this._dirty).forEach((key) => {\n\t\t\tconst entity = this._dirty[key];\n\n\t\t\tif (entity.isDisposed()) {\n\t\t\t\tdelete this._dirty[entity.uid];\n\n\t\t\t} else {\n\t\t\t\tobjects.push(entity);\n\t\t\t\tentity._beforeChanged();\n\t\t\t}\n\t\t});\n\n\t\t//\t\tconsole.log(\"_changed\")\n\t\tobjects.forEach((entity) => {\n\t\t\tentity._changed();\n\t\t\tdelete this._dirty[entity.uid];\n\t\t\tentity._clearDirty();\n\t\t});\n\n\t\tthis._isDirty = false;\n\n\t\tconst depths: { [id: number]: number } = {};\n\t\tconst bounds: Array<IBounds> = [];\n\n\t\t$object.keys(this._dirtyBounds).forEach((key) => {\n\t\t\tconst entity = this._dirtyBounds[key];\n\n\t\t\tdelete this._dirtyBounds[key];\n\n\t\t\tif (!entity.isDisposed()) {\n\t\t\t\tdepths[entity.uid] = entity.depth();\n\t\t\t\tbounds.push(entity);\n\t\t\t}\n\t\t});\n\n\t\t// High depth -> low depth\n\t\tbounds.sort((x, y) => {\n\t\t\treturn $order.compare(depths[y.uid], depths[x.uid]);\n\t\t});\n\n\t\t//\t\tconsole.log(\"_updateBounds\")\n\t\tbounds.forEach((entity) => {\n\t\t\tentity._updateBounds();\n\t\t});\n\n\t\t//\t\tconsole.log(\"_updatePosition\")\n\t\tconst dirtyPositions = this._dirtyPositions;\n\t\t$object.keys(dirtyPositions).forEach((key) => {\n\t\t\tconst sprite = dirtyPositions[key];\n\n\t\t\tdelete dirtyPositions[key];\n\n\t\t\tif (!sprite.isDisposed()) {\n\t\t\t\tsprite._updatePosition();\n\t\t\t}\n\t\t});\n\n\t\t//\t\tconsole.log(\"_afterChanged\")\n\t\tobjects.forEach((entity) => {\n\t\t\tentity._afterChanged();\n\t\t});\n\n\t}\n\n\tprivate _runTicker(currentTime: number) {\n\t\tif (!this.isDisposed()) {\n\t\t\tthis.animationTime = currentTime;\n\n\t\t\tif (this.events.isEnabled(\"framestarted\")) {\n\t\t\t\tthis.events.dispatch(\"framestarted\", {\n\t\t\t\t\ttype: \"framestarted\",\n\t\t\t\t\ttarget: this,\n\t\t\t\t\ttimestamp: currentTime,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis._runTickers(currentTime);\n\t\t\tthis._runAnimations(currentTime);\n\t\t\tthis._runDirties();\n\t\t\tthis._render();\n\n\t\t\tif (this.events.isEnabled(\"frameended\")) {\n\t\t\t\tthis.events.dispatch(\"frameended\", {\n\t\t\t\t\ttype: \"frameended\",\n\t\t\t\t\ttarget: this,\n\t\t\t\t\ttimestamp: currentTime,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// No more work to do\n\t\t\tif (this._tickers.length === 0 &&\n\t\t\t\tthis._animations.length === 0 &&\n\t\t\t\t!this._isDirty) {\n\n\t\t\t\tthis._ticker = null;\n\t\t\t\tthis.animationTime = null;\n\n\t\t\t} else {\n\t\t\t\trAF(this.fps, this._ticker!);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate _startTicker() {\n\t\tif (this._ticker === null) {\n\t\t\tthis.animationTime = null;\n\n\t\t\tthis._ticker = (currentTime) => {\n\t\t\t\tthis._runTicker(currentTime);\n\t\t\t};\n\n\t\t\trAF(this.fps, this._ticker!);\n\t\t}\n\t}\n\n\tpublic _addDirtyEntity(entity: Entity) {\n\t\tif (this._dirty[entity.uid] === undefined) {\n\t\t\tthis._isDirty = true;\n\t\t\tthis._dirty[entity.uid] = entity;\n\t\t\tthis._startTicker();\n\t\t}\n\t}\n\n\tpublic _addDirtyParent(parent: IParent) {\n\t\tif (this._dirtyParents[parent.uid] === undefined) {\n\t\t\tthis._isDirty = true;\n\t\t\tthis._isDirtyParents = true;\n\t\t\tthis._dirtyParents[parent.uid] = parent;\n\t\t\tthis._startTicker();\n\t\t}\n\t}\n\n\tpublic _addDirtyBounds(entity: IBounds) {\n\t\tif (this._dirtyBounds[entity.uid] === undefined) {\n\t\t\tthis._isDirty = true;\n\t\t\tthis._dirtyBounds[entity.uid] = entity;\n\t\t\tthis._startTicker();\n\t\t}\n\t}\n\n\tpublic _addDirtyPosition(sprite: Sprite) {\n\t\tif (this._dirtyPositions[sprite.uid] === undefined) {\n\t\t\tthis._isDirty = true;\n\t\t\tthis._dirtyPositions[sprite.uid] = sprite;\n\t\t\tthis._startTicker();\n\t\t}\n\t}\n\n\tpublic _addAnimation(animation: IAnimation) {\n\t\t// TODO use numeric id instead\n\t\tif (this._animations.indexOf(animation) === -1) {\n\t\t\tthis._animations.push(animation);\n\t\t\tthis._startTicker();\n\t\t}\n\t}\n\n\tpublic eachFrame(f: (currentTime: number) => void): IDisposer {\n\t\tthis._tickers.push(f);\n\t\tthis._startTicker();\n\n\t\treturn new Disposer(() => {\n\t\t\t$array.removeFirst(this._tickers, f);\n\t\t});\n\t}\n\n\t/**\n\t * Returns width of the target container, in pixels.\n\t *\n\t * @return Width\n\t */\n\tpublic width(): number {\n\t\treturn this.dom.clientWidth;\n\t}\n\n\t/**\n\t * Returns height of the target container, in pixels.\n\t *\n\t * @return Height\n\t */\n\tpublic height(): number {\n\t\treturn this.dom.clientHeight;\n\t}\n\n\t/**\n\t * Disposes root and all the content in it.\n\t */\n\tpublic dispose(): void {\n\t\tif (!this._isDisposed) {\n\t\t\tthis._isDisposed = true;\n\n\t\t\tthis._rootContainer.dispose();\n\t\t\tthis._renderer.dispose();\n\t\t\tthis.horizontalLayout.dispose();\n\t\t\tthis.verticalLayout.dispose();\n\t\t\tthis.interfaceColors.dispose();\n\n\t\t\t$array.each(this._disposers, (x) => {\n\t\t\t\tx.dispose();\n\t\t\t});\n\n\t\t\tif (this._inner) {\n\t\t\t\t$utils.removeElement(this._inner);\n\t\t\t}\n\n\t\t\t$array.remove(registry.rootElements, this);\n\t\t}\n\t}\n\n\t/**\n\t * Returns `true` if root element is disposed.\n\t *\n\t * @return Disposed?\n\t */\n\tpublic isDisposed(): boolean {\n\t\treturn this._isDisposed;\n\t}\n\n\t/**\n\t * Triggers screen reader read out a message.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/accessibility/} for more info\n\t * @param text Alert text\n\t */\n\tpublic readerAlert(text: string): void {\n\t\tthis._readerAlertElement!.innerHTML = text;\n\t}\n\n\t/**\n\t * Sets themes to be used for the chart.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/themes/} for more info\n\t * @param themes A list of themes\n\t */\n\tpublic setThemes(themes: Array<Theme>): void {\n\t\tthis._rootContainer.set(\"themes\", themes);\n\n\t\t// otherwise new themes are not applied\n\t\tconst tooltipContainer = this.tooltipContainer;\n\t\tif (tooltipContainer) {\n\t\t\ttooltipContainer._applyThemes();\n\t\t}\n\n\t\t// @todo review this\n\t\tconst interfaceColors = this.interfaceColors;\n\t\tif (interfaceColors) {\n\t\t\tinterfaceColors._applyThemes();\n\t\t}\n\t}\n\n\tprotected _addTooltip() {\n\t\tif (!this.tooltipContainer) {\n\t\t\tconst tooltipContainer = this._rootContainer.children.push(Container.new(this, { position: \"absolute\", isMeasured: false, width: p100, height: p100, layer: 100 }));\n\t\t\tthis.tooltipContainer = tooltipContainer;\n\n\t\t\tconst tooltip = Tooltip.new(this, {});\n\t\t\tthis.container.set(\"tooltip\", tooltip);\n\t\t\ttooltip.hide(0);\n\t\t\tthis._tooltip = tooltip;\n\t\t}\n\t}\n\n\t/**\n\t * Accesibility\n\t */\n\n\tpublic _registerTabindexOrder(target: Sprite): void {\n\t\tif (target.get(\"focusable\")) {\n\t\t\t$array.pushOne(this._tabindexes, target);\n\t\t}\n\t\telse {\n\t\t\t$array.remove(this._tabindexes, target);\n\t\t}\n\t\tthis._invalidateTabindexes();\n\t}\n\n\tpublic _unregisterTabindexOrder(target: Sprite): void {\n\t\t$array.remove(this._tabindexes, target);\n\t\tthis._invalidateTabindexes();\n\t}\n\n\tpublic _invalidateTabindexes(): void {\n\n\t\tthis._tabindexes.sort((a: Sprite, b: Sprite) => {\n\t\t\tconst aindex = a.get(\"tabindexOrder\", 0);\n\t\t\tconst bindex = b.get(\"tabindexOrder\", 0);\n\t\t\tif (aindex == bindex) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\telse if (aindex > bindex) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t});\n\n\t\tconst groups: Array<string | number> = [];\n\t\t$array.each(this._tabindexes, (item, index) => {\n\t\t\tif (!item.getPrivate(\"focusElement\")) {\n\t\t\t\tthis._makeFocusElement(index, item);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._moveFocusElement(index, item);\n\t\t\t}\n\t\t\tconst group = item.get(\"focusableGroup\");\n\t\t\tif (group) {\n\t\t\t\tif (groups.indexOf(group) !== -1) {\n\t\t\t\t\t// Non-first element in the group, make it not directly focusable\n\t\t\t\t\titem.getPrivate(\"focusElement\")!.setAttribute(\"tabindex\", \"-1\");\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tgroups.push(group);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t}\n\n\tpublic _updateCurrentFocus(): void {\n\t\tif (this._focusedSprite) {\n\t\t\tthis._decorateFocusElement(this._focusedSprite);\n\t\t\tthis._positionFocusElement(this._focusedSprite);\n\t\t}\n\t}\n\n\tpublic _decorateFocusElement(target: Sprite, focusElement?: HTMLDivElement): void {\n\n\t\t// Decorate with proper accessibility attributes\n\t\tif (!focusElement) {\n\t\t\tfocusElement = target.getPrivate(\"focusElement\")!;\n\t\t}\n\n\t\tif (!focusElement) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (target.get(\"visible\") && target.get(\"role\") != \"tooltip\" && !target.isHidden()) {\n\t\t\tif (focusElement.getAttribute(\"tabindex\") != \"-1\") {\n\t\t\t\tfocusElement.setAttribute(\"tabindex\", \"\" + this.tabindex);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"tabindex\")\n\t\t}\n\n\t\tconst role = target.get(\"role\");\n\t\tif (role) {\n\t\t\tfocusElement.setAttribute(\"role\", role);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"role\");\n\t\t}\n\n\t\tconst ariaLabel = target.get(\"ariaLabel\");\n\t\tif (ariaLabel) {\n\t\t\tconst label = populateString(target, ariaLabel);\n\t\t\tfocusElement.setAttribute(\"aria-label\", label);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-label\");\n\t\t}\n\n\t\tconst ariaLive = target.get(\"ariaLive\");\n\t\tif (ariaLive) {\n\t\t\tfocusElement.setAttribute(\"aria-live\", ariaLive);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-live\");\n\t\t}\n\n\t\tconst ariaChecked = target.get(\"ariaChecked\");\n\t\tif (ariaChecked != null) {\n\t\t\tfocusElement.setAttribute(\"aria-checked\", ariaChecked ? \"true\" : \"false\");\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-checked\");\n\t\t}\n\n\t\tif (target.get(\"ariaHidden\")) {\n\t\t\tfocusElement.setAttribute(\"aria-hidden\", \"hidden\");\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-hidden\");\n\t\t}\n\n\t\tconst ariaOrientation = target.get(\"ariaOrientation\");\n\t\tif (ariaOrientation) {\n\t\t\tfocusElement.setAttribute(\"aria-orientation\", ariaOrientation);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-orientation\");\n\t\t}\n\n\t\tconst ariaValueNow = target.get(\"ariaValueNow\");\n\t\tif (ariaValueNow) {\n\t\t\tfocusElement.setAttribute(\"aria-valuenow\", ariaValueNow);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-valuenow\");\n\t\t}\n\n\t\tconst ariaValueText = target.get(\"ariaValueText\");\n\t\tif (ariaValueText) {\n\t\t\tfocusElement.setAttribute(\"aria-valuetext\", ariaValueText);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-valuetext\");\n\t\t}\n\t}\n\n\tpublic _makeFocusElement(index: number, target: Sprite): void {\n\n\t\tif (target.getPrivate(\"focusElement\")) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Init\n\t\tconst focusElement = document.createElement(\"div\");\n\t\tif (target.get(\"role\") != \"tooltip\") {\n\t\t\tfocusElement.tabIndex = this.tabindex;\n\t\t}\n\t\tfocusElement.style.position = \"absolute\";\n\t\t$utils.setInteractive(focusElement, false);\n\n\t\ttarget.setPrivate(\"focusElement\", focusElement);\n\n\t\tthis._decorateFocusElement(target);\n\n\t\tfocusElement.addEventListener(\"focus\", (ev: FocusEvent) => {\n\t\t\tthis._handleFocus(ev, index);\n\t\t});\n\n\t\tfocusElement.addEventListener(\"blur\", (ev: FocusEvent) => {\n\t\t\tthis._handleBlur(ev, index);\n\t\t});\n\n\t\tthis._moveFocusElement(index, target);\n\n\t}\n\n\tpublic _removeFocusElement(target: Sprite): void {\n\n\t\t// Init\n\t\tconst container = this._focusElementContainer!;\n\t\tconst focusElement = target.getPrivate(\"focusElement\")!;\n\t\tcontainer.removeChild(focusElement);\n\n\t}\n\n\tprotected _moveFocusElement(index: number, target: Sprite): void {\n\n\t\t// Get container\n\t\tconst container = this._focusElementContainer!;\n\t\tconst focusElement = target.getPrivate(\"focusElement\")!;\n\n\t\tif (focusElement === this._focusElementContainer!.children[index]) {\n\t\t\t// Nothing to do\n\t\t\treturn;\n\t\t}\n\n\t\tconst next = this._focusElementContainer!.children[index + 1];\n\t\tif (next) {\n\t\t\tcontainer.insertBefore(focusElement, next);\n\t\t}\n\t\telse {\n\t\t\tcontainer.append(focusElement);\n\t\t}\n\t}\n\n\tprotected _positionFocusElement(target: Sprite): void {\n\t\tconst bounds = target.globalBounds();\n\n\t\tconst width = bounds.right == bounds.left ? target.width() : bounds.right - bounds.left;\n\t\tconst height = bounds.top == bounds.bottom ? target.height() : bounds.bottom - bounds.top;\n\n\t\tconst focusElement = target.getPrivate(\"focusElement\")!;\n\t\tfocusElement.style.top = (bounds.top - 2) + \"px\";\n\t\tfocusElement.style.left = (bounds.left - 2) + \"px\";\n\t\tfocusElement.style.width = (width + 4) + \"px\";\n\t\tfocusElement.style.height = (height + 4) + \"px\";\n\n\t}\n\n\tprotected _handleFocus(ev: FocusEvent, index: number): void {\n\t\t// Get element\n\t\tconst focused = this._tabindexes[index];\n\n\t\t// Size and position\n\t\tthis._positionFocusElement(focused);\n\t\t//this._decorateFocusElement(focused);\n\n\t\tthis._focusedSprite = focused;\n\n\t\tif (focused.events.isEnabled(\"focus\")) {\n\t\t\tfocused.events.dispatch(\"focus\", {\n\t\t\t\ttype: \"focus\",\n\t\t\t\toriginalEvent: ev,\n\t\t\t\ttarget: focused\n\t\t\t});\n\t\t}\n\t}\n\n\tprotected _handleBlur(ev: FocusEvent, _index: number): void {\n\t\tconst focused = this._focusedSprite;\n\t\tif (focused && focused.events.isEnabled(\"blur\")) {\n\t\t\tfocused.events.dispatch(\"blur\", {\n\t\t\t\ttype: \"blur\",\n\t\t\t\toriginalEvent: ev,\n\t\t\t\ttarget: focused\n\t\t\t});\n\t\t}\n\t\tthis._focusedSprite = undefined;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic updateTooltip(target: Text): void {\n\t\tconst text = target._getText();\n\t\tlet tooltipElement = target.getPrivate(\"tooltipElement\");\n\t\tif (target.get(\"role\") == \"tooltip\" && text != \"\") {\n\t\t\tif (!tooltipElement) {\n\t\t\t\ttooltipElement = this._makeTooltipElement(target);\n\t\t\t}\n\t\t\tif (tooltipElement.innerHTML != text) {\n\t\t\t\ttooltipElement.innerHTML = text!;\n\t\t\t}\n\t\t}\n\t\telse if (tooltipElement) {\n\t\t\ttooltipElement.remove();\n\t\t\ttarget.removePrivate(\"tooltipElement\");\n\t\t}\n\t}\n\n\tpublic _makeTooltipElement(target: Text): HTMLDivElement {\n\t\tconst container = this._tooltipElementContainer!;\n\t\tconst tooltipElement = document.createElement(\"div\");\n\t\ttooltipElement.style.position = \"absolute\";\n\t\ttooltipElement.style.opacity = \"0.0000001\";\n\n\t\t$utils.setInteractive(tooltipElement, false);\n\n\t\tthis._decorateFocusElement(target, tooltipElement);\n\t\tcontainer.append(tooltipElement);\n\t\ttarget.setPrivate(\"tooltipElement\", tooltipElement);\n\t\treturn tooltipElement;\n\t}\n\n\tpublic _invalidateAccessibility(target: Sprite): void {\n\t\tthis._focusElementDirty = true;\n\t\tconst focusElement = target.getPrivate(\"focusElement\");\n\t\tif (target.get(\"focusable\")) {\n\t\t\tif (focusElement) {\n\t\t\t\tthis._decorateFocusElement(target);\n\t\t\t\tthis._positionFocusElement(target);\n\t\t\t}\n\t\t\t// else {\n\t\t\t// \tthis._renderer._makeFocusElement(0, this);\n\t\t\t// }\n\t\t}\n\t\telse if (focusElement) {\n\t\t\tthis._removeFocusElement(target);\n\t\t}\n\t\t//this.updateCurrentFocus();\n\t}\n\n\t/**\n\t * Returns `true` if `target` is currently focused.\n\t *\n\t * @param target Target\n\t * @return Focused?\n\t */\n\tpublic focused(target: Sprite): boolean {\n\t\treturn this._focusedSprite === target;\n\t}\n\n\t/**\n\t * Converts document coordinates to coordinates withing root element.\n\t *\n\t * @param point Document point\n\t * @return Root point\n\t */\n\tpublic documentPointToRoot(point: IPoint): IPoint {\n\t\tconst bbox = this.dom.getBoundingClientRect();\n\t\treturn {\n\t\t\tx: point.x - bbox.left,\n\t\t\ty: point.y - bbox.top\n\t\t};\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic addDisposer<T extends IDisposer>(disposer: T): T {\n\t\tthis._disposers.push(disposer);\n\t\treturn disposer;\n\t}\n\n\t/**\n * To all the clever heads out there. Yes, we did not make any attempts to\n * scramble this.\n *\n * This is a part of a tool meant for our users to manage their commercial\n * licenses for removal of amCharts branding from charts.\n *\n * The only legit way to do so is to purchase a commercial license for amCharts:\n * https://www.amcharts.com/online-store/\n *\n * Removing or altering this code, or disabling amCharts branding in any other\n * way is against the license and thus illegal.\n */\n\tprotected _hasLicense(): boolean {\n\t\tfor (let i = 0; i < registry.licenses.length; i++) {\n\t\t\tif (registry.licenses[i].match(/^AM5C.{5,}/i)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n}\n"]}
1
+ {"version":3,"file":"Root.js","sourceRoot":"","sources":["../../../../src/.internal/core/Root.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IAnimation } from \"./util/Animation\";\nimport type { Entity } from \"./util/Entity\";\nimport type { Sprite } from \"./render/Sprite\";\nimport type { Text } from \"./render/Text\";\nimport type { Theme } from \"./Theme\";\nimport type { IPoint } from \"./util/IPoint\";\nimport type { IRenderer } from \"./render/backend/Renderer\";\n\nimport { Container } from \"./render/Container\";\nimport { HorizontalLayout } from \"./render/HorizontalLayout\";\nimport { VerticalLayout } from \"./render/VerticalLayout\";\nimport { GridLayout } from \"./render/GridLayout\";\nimport { IDisposer, Disposer } from \"./util/Disposer\";\nimport { ResizeSensor } from \"./util/ResizeSensor\";\nimport { InterfaceColors } from \"./util/InterfaceColors\";\nimport { Graphics } from \"./render/Graphics\";\nimport { Rectangle } from \"./render/Rectangle\";\nimport { Tooltip } from \"./render/Tooltip\";\nimport { NumberFormatter } from \"./util/NumberFormatter\";\nimport { DateFormatter } from \"./util/DateFormatter\";\nimport { DurationFormatter } from \"./util/DurationFormatter\";\nimport { ILocale, Language } from \"./util/Language\";\nimport { Events, EventDispatcher } from \"./util/EventDispatcher\";\nimport { DefaultTheme } from \"../themes/DefaultTheme\";\nimport { CanvasRenderer } from \"./render/backend/CanvasRenderer\";\nimport { p100, percent } from \"./util/Percent\";\nimport { color } from \"./util/Color\";\nimport { populateString } from \"./util/PopulateString\";\nimport { registry } from \"./Registry\";\n\nimport * as $order from \"./util/Order\";\nimport * as $array from \"./util/Array\";\nimport * as $object from \"./util/Object\";\nimport * as $utils from \"./util/Utils\";\n\nimport en from \"../../locales/en\";\n\n\nfunction rAF(fps: number | undefined, callback: (currentTime: number) => void): void {\n\tif (fps == null) {\n\t\trequestAnimationFrame(callback);\n\n\t} else {\n\t\tsetTimeout(() => {\n\t\t\trequestAnimationFrame(callback);\n\t\t}, 1000 / fps);\n\t}\n}\n\n\n/**\n * @ignore\n */\ninterface IParent extends Entity {\n\t_prepareChildren(): void;\n\t_updateChildren(): void;\n}\n\ninterface IBounds extends Entity {\n\tdepth(): number;\n\t_updateBounds(): void;\n}\n\n\nexport interface IRootEvents {\n\tframestarted: {\n\t\ttimestamp: number;\n\t};\n\tframeended: {\n\t\ttimestamp: number;\n\t};\n}\n\n\n// TODO implement Disposer\n/**\n * Root element of the chart.\n *\n * @see {@link https://www.amcharts.com/docs/v5/getting-started/#Root_element} for more info\n */\nexport class Root implements IDisposer {\n\n\t/**\n\t * A reference to original chart container (div element).\n\t */\n\tpublic dom: HTMLElement;\n\tpublic _inner: HTMLElement;\n\n\tprotected _isDirty: boolean = false;\n\tprotected _isDirtyParents: boolean = false;\n\tprotected _dirty: { [id: number]: Entity } = {};\n\tprotected _dirtyParents: { [id: number]: IParent } = {};\n\tprotected _dirtyBounds: { [id: number]: IBounds } = {};\n\tprotected _dirtyPositions: { [id: number]: Sprite } = {};\n\n\tprotected _ticker: ((currentTime: number) => void) | null = null;\n\tprotected _tickers: Array<(currentTime: number) => void> = [];\n\n\t/**\n\t * Root's event dispatcher.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/events/} for more info\n\t */\n\tpublic events: EventDispatcher<Events<this, IRootEvents>> = new EventDispatcher();\n\n\t/**\n\t * @todo needs description\n\t */\n\tpublic animationTime: number | null = null;\n\n\tprivate _animations: Array<IAnimation> = [];\n\n\tpublic _renderer: IRenderer = new CanvasRenderer();\n\n\tpublic _rootContainer!: Container;\n\n\t/**\n\t * Main content container.\n\t */\n\tpublic container!: Container;\n\n\t/**\n\t * A [[Container]] used to display tooltips in.\n\t */\n\tpublic tooltipContainer!: Container\n\n\tpublic _tooltip!: Tooltip;\n\n\t// Locale-related\n\n\t/**\n\t * @ignore\n\t */\n\tpublic language: Language = Language.new(this, {});\n\n\t/**\n\t * Locale used by the chart.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/locales/}\n\t */\n\tpublic locale: ILocale = en;\n\n\t// Date-time related\n\n\t/**\n\t * Use UTC when formatting date/time.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-dates/#UTC_and_time_zones} for more info\n\t */\n\tpublic utc: boolean = false;\n\n\t/**\n\t * Use specific time zone when formatting date/time.\n\t *\n\t * @ignore timezones are not yet supported\n\t */\n\tpublic timezone: string | null = null;\n\n\t/**\n\t * The maximum FPS that the Root will run at.\n\t *\n\t * If `undefined` it will run at the highest FPS.\n\t */\n\tpublic fps: number | undefined;\n\n\t/**\n\t * Number formatter.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-numbers/} for more info\n\t */\n\tpublic numberFormatter: NumberFormatter = NumberFormatter.new(this, {});\n\n\t/**\n\t * Date/time formatter.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-dates/} for more info\n\t */\n\tpublic dateFormatter: DateFormatter = DateFormatter.new(this, {});\n\n\t/**\n\t * Duration formatter.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/formatters/formatting-dates/} for more info\n\t */\n\tpublic durationFormatter: DurationFormatter = DurationFormatter.new(this, {});\n\n\n\t// Accessibility\n\n\t/**\n\t * Global tab index for using for the whole chart\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/accessibility/} for more info\n\t */\n\tpublic tabindex: number = 0;\n\n\t//@todo maybe make this better\n\tprotected _tabindexes: Sprite[] = [];\n\n\tprotected _focusElementDirty: boolean = false;\n\tprotected _focusElementContainer: HTMLDivElement | undefined;\n\tprotected _focusedSprite: Sprite | undefined;\n\tprotected _keyboardDragPoint: IPoint | undefined;\n\tprotected _tooltipElementContainer: HTMLDivElement | undefined;\n\tprotected _readerAlertElement: HTMLDivElement | undefined;\n\n\tpublic _logo?: Container;\n\n\t/**\n\t * Used for dynamically-created CSS and JavaScript with strict source policies.\n\t */\n\tpublic nonce?: string;\n\n\t/**\n\t * Special color set to be used for various controls.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/#Interface_colors} for more info\n\t */\n\tpublic interfaceColors: InterfaceColors;\n\n\t/**\n\t * An instance of vertical layout object that can be used to set `layout` setting\n\t * of a [[Container]].\n\t *\n\t * @default VerticalLayout.new()\n\t */\n\tpublic verticalLayout: VerticalLayout = VerticalLayout.new(this, {});\n\n\t/**\n\t * An instance of horizontal layout object that can be used to set `layout` setting\n\t * of a [[Container]].\n\t *\n\t * @default HorizontalLayout.new()\n\t */\n\tpublic horizontalLayout: VerticalLayout = HorizontalLayout.new(this, {});\n\n\t/**\n\t * An instance of grid layout object that can be used to set `layout` setting\n\t * of a [[Container]].\n\t *\n\t * @default VerticalLayout.new()\n\t */\n\tpublic gridLayout: VerticalLayout = GridLayout.new(this, {});\n\n\t/**\n\t * Indicates whether chart should resized automatically when parent container\n\t * width and/or height changes.\n\t *\n\t * If disabled (`autoResize = false`) you can make the chart resize manually\n\t * by calling root element's `resize()` method.\n\t */\n\tpublic autoResize: boolean = true;\n\n\tprotected _isDisposed: boolean = false;\n\tprotected _disposers: Array<IDisposer> = [];\n\n\tprotected _resizeSensorDisposer?: IDisposer;\n\n\tpublic _tooltips: Array<Tooltip> = [];\n\n\tprotected constructor(id: string | HTMLElement, isReal: boolean) {\n\n\t\tif (!isReal) {\n\t\t\tthrow new Error(\"You cannot use `new Class()`, instead use `Class.new()`\");\n\t\t}\n\n\t\tlet dom: HTMLElement | null;\n\n\t\tif (id instanceof HTMLElement) {\n\t\t\tdom = id;\n\t\t}\n\t\telse {\n\t\t\tdom = document.getElementById(id);\n\t\t}\n\n\t\t$array.each(registry.rootElements, (root) => {\n\t\t\tif (root.dom === dom) {\n\t\t\t\tthrow new Error(\"You cannot have multiple Roots on the same DOM node\");\n\t\t\t}\n\t\t});\n\n\t\tthis.interfaceColors = InterfaceColors.new(this, {});\n\n\t\tif (dom === null) {\n\t\t\tthrow new Error(\"Could not find HTML element with id `\" + id + \"`\");\n\t\t}\n\n\t\tthis.dom = dom;\n\n\t\tlet inner: HTMLDivElement = document.createElement(\"div\");\n\t\tinner.style.position = \"relative\";\n\t\tdom.appendChild(inner);\n\n\t\tthis._inner = inner;\n\n\t\tregistry.rootElements.push(this);\n\t}\n\n\tpublic static new(id: string | HTMLElement): Root {\n\t\tconst root = new Root(id, true);\n\t\troot._init();\n\t\treturn root;\n\t}\n\n\tpublic moveDOM(id: string | HTMLElement): void {\n\t\tlet dom: HTMLElement | null;\n\n\t\tif (id instanceof HTMLElement) {\n\t\t\tdom = id;\n\t\t}\n\t\telse {\n\t\t\tdom = document.getElementById(id);\n\t\t}\n\n\t\tif (dom) {\n\t\t\twhile (this.dom.childNodes.length > 0) {\n\t\t\t\tdom.appendChild(this.dom.childNodes[0]);\n\t\t\t}\n\t\t\tthis.dom = dom;\n\t\t\tthis._initResizeSensor();\n\t\t\tthis.resize();\n\t\t}\n\n\t}\n\n\n\tprotected _handleLogo(): void {\n\t\tif (this._logo) {\n\t\t\tif (this._rootContainer.getPrivate(\"width\", 0) <= 150 || this._rootContainer.getPrivate(\"height\", 0) <= 60) {\n\t\t\t\tthis._logo.hide();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._logo.show();\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _showBranding(): void {\n\t\tif (!this._logo) {\n\t\t\tconst logo = this.tooltipContainer.children.push(Container.new(this, {\n\t\t\t\tinteractive: true,\n\t\t\t\tinteractiveChildren: false,\n\t\t\t\tposition: \"absolute\",\n\t\t\t\tsetStateOnChildren: true,\n\t\t\t\tpaddingTop: 9,\n\t\t\t\tpaddingRight: 9,\n\t\t\t\tpaddingBottom: 9,\n\t\t\t\tpaddingLeft: 9,\n\t\t\t\tscale: .6,\n\t\t\t\ty: percent(100),\n\t\t\t\tcenterY: p100,\n\t\t\t\ttooltipText: \"Created using amCharts 5\",\n\t\t\t\ttooltipX: p100,\n\t\t\t\tcursorOverStyle: \"pointer\",\n\t\t\t\tbackground: Rectangle.new(this, {\n\t\t\t\t\tfill: color(0x474758),\n\t\t\t\t\tfillOpacity: 0,\n\t\t\t\t\ttooltipY: 5\n\t\t\t\t})\n\t\t\t}));\n\n\t\t\tconst tooltip = Tooltip.new(this, {\n\t\t\t\tpointerOrientation: \"horizontal\",\n\t\t\t\tpaddingTop: 4,\n\t\t\t\tpaddingRight: 7,\n\t\t\t\tpaddingBottom: 4,\n\t\t\t\tpaddingLeft: 7\n\t\t\t});\n\t\t\ttooltip.label.setAll({\n\t\t\t\tfontSize: 12\n\t\t\t});\n\t\t\ttooltip.get(\"background\")!.setAll({\n\t\t\t\tfill: this.interfaceColors.get(\"background\"),\n\t\t\t\tstroke: this.interfaceColors.get(\"grid\"),\n\t\t\t\tstrokeOpacity: 0.3\n\t\t\t})\n\t\t\tlogo.set(\"tooltip\", tooltip);\n\n\t\t\tlogo.events.on(\"click\", () => {\n\t\t\t\twindow.open(\"https://www.amcharts.com/\", \"_blank\");\n\t\t\t});\n\n\t\t\tlogo.states.create(\"hover\", {});\n\n\t\t\tconst m = logo.children.push(Graphics.new(this, {\n\t\t\t\tstroke: color(0xcccccc),\n\t\t\t\tstrokeWidth: 3,\n\t\t\t\tsvgPath: \"M5 25 L13 25h13.6c3.4 0 6 0 10.3-4.3s5.2-12 8.6-12c3.4 0 4.3 8.6 7.7 8.6M83.4 25H79.8c-3.4 0-6 0-10.3-4.3s-5.2-12-8.6-12-4.3 8.6-7.7 8.6\"\n\t\t\t}));\n\n\t\t\tm.states.create(\"hover\", { stroke: color(0x3CABFF) });\n\n\t\t\tconst a = logo.children.push(Graphics.new(this, {\n\t\t\t\tstroke: color(0x888888),\n\t\t\t\tstrokeWidth: 3,\n\t\t\t\tsvgPath: \"M83.4 25h-31C37 25 39.5 4.4 28.4 4.4S18.9 24.2 4.3 25H0\"\n\t\t\t}));\n\n\t\t\ta.states.create(\"hover\", { stroke: color(0x474758) });\n\n\t\t\t//logo.set(\"tooltip\", this._tooltip);\n\t\t\t//logo.setPrivate(\"tooltipTarget\", logo.get(\"background\"));\n\t\t\tthis._logo = logo;\n\n\t\t\tthis._handleLogo();\n\t\t}\n\t}\n\n\tprotected _init(): void {\n\t\tconst renderer = this._renderer;\n\t\tconst rootContainer = Container.new(this, { visible: true, width: this.dom.clientWidth, height: this.dom.clientHeight });\n\t\tthis._rootContainer = rootContainer;\n\t\tthis._rootContainer._defaultThemes.push(DefaultTheme.new(this));\n\n\t\tconst container = rootContainer.children.push(Container.new(this, { visible: true, width: p100, height: p100 }));\n\t\tthis.container = container;\n\n\t\trenderer.resize(this.dom.clientWidth, this.dom.clientHeight);\n\n\t\t//@todo: better appendChild - refer\n\t\tthis._inner.appendChild(renderer.view);\n\n\t\t// TODO: TMP TMP TMP for testing only, remove\n\t\t//document.body.appendChild((<any>renderer)._ghostView);\n\n\t\tthis._initResizeSensor();\n\n\t\t// Create element which is used to make announcements to screen reader\n\t\tconst readerAlertElement = document.createElement(\"div\");\n\t\treaderAlertElement.setAttribute(\"role\", \"alert\");\n\t\treaderAlertElement.style.zIndex = \"-100000\";\n\t\treaderAlertElement.style.opacity = \"0\";\n\t\treaderAlertElement.style.position = \"absolute\";\n\t\treaderAlertElement.style.top = \"0\";\n\t\tthis._readerAlertElement = readerAlertElement;\n\t\tthis._inner.appendChild(this._readerAlertElement);\n\n\t\tconst focusElementContainer = document.createElement(\"div\");\n\t\tfocusElementContainer.style.position = \"absolute\";\n\t\tfocusElementContainer.style.pointerEvents = \"none\";\n\t\tfocusElementContainer.style.top = \"0px\";\n\t\tfocusElementContainer.style.left = \"0px\";\n\t\tfocusElementContainer.style.overflow = \"hidden\";\n\t\tfocusElementContainer.style.width = this.dom.clientWidth + \"px\";\n\t\tfocusElementContainer.style.height = this.dom.clientHeight + \"px\";\n\n\t\tfocusElementContainer.setAttribute(\"role\", \"application\");\n\n\t\t$utils.setInteractive(focusElementContainer, false);\n\t\tthis._focusElementContainer = focusElementContainer;\n\t\tthis._inner.appendChild(this._focusElementContainer);\n\n\t\tthis._tooltipElementContainer = document.createElement(\"div\");\n\t\tthis._inner.appendChild(this._tooltipElementContainer);\n\n\t\t// Add keyboard events for accessibility, e.g. simulating drag with arrow\n\t\t// keys and click with ENTER\n\t\tif ($utils.supports(\"keyboardevents\")) {\n\t\t\tthis._disposers.push($utils.addEventListener(focusElementContainer, \"keydown\", (ev: KeyboardEvent) => {\n\t\t\t\tconst focusedSprite = this._focusedSprite;\n\t\t\t\tif (focusedSprite) {\n\t\t\t\t\tif (ev.keyCode == 27) {\n\t\t\t\t\t\t// ESC pressed - lose current focus\n\t\t\t\t\t\t$utils.blur();\n\t\t\t\t\t\tthis._focusedSprite = undefined;\n\t\t\t\t\t}\n\t\t\t\t\tlet dragOffsetX = 0;\n\t\t\t\t\tlet dragOffsetY = 0;\n\t\t\t\t\t// TODO: figure out if using bogus MouseEvent is fine, or it will\n\t\t\t\t\t// fail on some platforms\n\t\t\t\t\tswitch (ev.keyCode) {\n\t\t\t\t\t\tcase 13:\n\t\t\t\t\t\t\tev.preventDefault();\n\t\t\t\t\t\t\tconst downEvent = renderer.getEvent(new MouseEvent(\"click\"));\n\t\t\t\t\t\t\tfocusedSprite.events.dispatch(\"click\", {\n\t\t\t\t\t\t\t\ttype: \"click\",\n\t\t\t\t\t\t\t\toriginalEvent: downEvent.event,\n\t\t\t\t\t\t\t\tpoint: downEvent.point,\n\t\t\t\t\t\t\t\tsimulated: true,\n\t\t\t\t\t\t\t\ttarget: focusedSprite\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\tcase 37:\n\t\t\t\t\t\t\tdragOffsetX = -6;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 39:\n\t\t\t\t\t\t\tdragOffsetX = 6;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 38:\n\t\t\t\t\t\t\tdragOffsetY = -6;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 40:\n\t\t\t\t\t\t\tdragOffsetY = 6;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (dragOffsetX != 0 || dragOffsetY != 0) {\n\t\t\t\t\t\tev.preventDefault();\n\n\t\t\t\t\t\tif (!focusedSprite.isDragging()) {\n\t\t\t\t\t\t\t// Start dragging\n\t\t\t\t\t\t\tthis._keyboardDragPoint = {\n\t\t\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\t\t\ty: 0\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst downEvent = renderer.getEvent(new MouseEvent(\"mousedown\", {\n\t\t\t\t\t\t\t\tclientX: 0,\n\t\t\t\t\t\t\t\tclientY: 0\n\t\t\t\t\t\t\t}));\n\n\t\t\t\t\t\t\tif (focusedSprite.events.isEnabled(\"pointerdown\")) {\n\t\t\t\t\t\t\t\tfocusedSprite.events.dispatch(\"pointerdown\", {\n\t\t\t\t\t\t\t\t\ttype: \"pointerdown\",\n\t\t\t\t\t\t\t\t\toriginalEvent: downEvent.event,\n\t\t\t\t\t\t\t\t\tpoint: downEvent.point,\n\t\t\t\t\t\t\t\t\tsimulated: true,\n\t\t\t\t\t\t\t\t\ttarget: focusedSprite\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t// Move focus marker\n\t\t\t\t\t\t\t//this._positionFocusElement(focusedSprite);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Move incrementally\n\t\t\t\t\t\tconst dragPoint = this._keyboardDragPoint!;\n\t\t\t\t\t\tdragPoint.x += dragOffsetX;\n\t\t\t\t\t\tdragPoint.y += dragOffsetY;\n\t\t\t\t\t\tconst moveEvent = renderer.getEvent(new MouseEvent(\"mousemove\", {\n\t\t\t\t\t\t\tclientX: dragPoint.x,\n\t\t\t\t\t\t\tclientY: dragPoint.y\n\t\t\t\t\t\t}), false);\n\n\t\t\t\t\t\tif (focusedSprite.events.isEnabled(\"globalpointermove\")) {\n\t\t\t\t\t\t\tfocusedSprite.events.dispatch(\"globalpointermove\", {\n\t\t\t\t\t\t\t\ttype: \"globalpointermove\",\n\t\t\t\t\t\t\t\toriginalEvent: moveEvent.event,\n\t\t\t\t\t\t\t\tpoint: moveEvent.point,\n\t\t\t\t\t\t\t\tsimulated: true,\n\t\t\t\t\t\t\t\ttarget: focusedSprite\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}));\n\n\t\t\tthis._disposers.push($utils.addEventListener(focusElementContainer, \"keyup\", (ev: KeyboardEvent) => {\n\t\t\t\tif (this._focusedSprite) {\n\t\t\t\t\tconst focusedSprite = this._focusedSprite;\n\t\t\t\t\tconst keyCode = ev.keyCode;\n\t\t\t\t\tswitch (keyCode) {\n\t\t\t\t\t\tcase 37:\n\t\t\t\t\t\tcase 39:\n\t\t\t\t\t\tcase 38:\n\t\t\t\t\t\tcase 40:\n\t\t\t\t\t\t\tif (focusedSprite.isDragging()) {\n\t\t\t\t\t\t\t\t// Simulate drag stop\n\t\t\t\t\t\t\t\tconst dragPoint = this._keyboardDragPoint!;\n\t\t\t\t\t\t\t\tconst upEvent = renderer.getEvent(new MouseEvent(\"mouseup\", {\n\t\t\t\t\t\t\t\t\tclientX: dragPoint.x,\n\t\t\t\t\t\t\t\t\tclientY: dragPoint.y\n\t\t\t\t\t\t\t\t}));\n\n\t\t\t\t\t\t\t\tif (focusedSprite.events.isEnabled(\"globalpointerup\")) {\n\t\t\t\t\t\t\t\t\tfocusedSprite.events.dispatch(\"globalpointerup\", {\n\t\t\t\t\t\t\t\t\t\ttype: \"globalpointerup\",\n\t\t\t\t\t\t\t\t\t\toriginalEvent: upEvent.event,\n\t\t\t\t\t\t\t\t\t\tpoint: upEvent.point,\n\t\t\t\t\t\t\t\t\t\tsimulated: true,\n\t\t\t\t\t\t\t\t\t\ttarget: focusedSprite\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t//this._positionFocusElement(focusedSprite);\n\t\t\t\t\t\t\t\tthis._keyboardDragPoint = undefined;\n\t\t\t\t\t\t\t\t// @todo dispatch mouseup event instead of calling dragStop?\n\t\t\t\t\t\t\t\t// this._dispatchEvent(\"globalpointerup\", target, upEvent);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if(focusedSprite.get(\"focusableGroup\")) {\n\t\t\t\t\t\t\t\t// Find next item in focusable group\n\t\t\t\t\t\t\t\tconst group = focusedSprite.get(\"focusableGroup\");\n\t\t\t\t\t\t\t\tconst items = this._tabindexes.filter(item => item.get(\"focusableGroup\") == group);\n\t\t\t\t\t\t\t\tlet index = items.indexOf(focusedSprite);\n\t\t\t\t\t\t\t\tconst lastIndex = items.length - 1;\n\t\t\t\t\t\t\t\tindex += (keyCode == 39 || keyCode == 40) ? 1 : -1;\n\t\t\t\t\t\t\t\tif (index < 0) {\n\t\t\t\t\t\t\t\t\tindex = lastIndex;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse if (index > lastIndex) {\n\t\t\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t$utils.focus(items[index].getPrivate(\"focusElement\")!.dom);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}));\n\t\t}\n\n\t\tthis._startTicker();\n\t\tthis.setThemes([]);\n\n\t\tthis._addTooltip();\n\n\t\tif (!this._hasLicense()) {\n\t\t\tthis._showBranding();\n\t\t}\n\t}\n\n\tprivate _initResizeSensor(): void {\n\t\tif (this._resizeSensorDisposer) {\n\t\t\tthis._resizeSensorDisposer.dispose();\n\t\t}\n\t\tthis._resizeSensorDisposer = new ResizeSensor(this.dom, () => {\n\t\t\tif (this.autoResize) {\n\t\t\t\tthis.resize();\n\t\t\t}\n\t\t});\n\t\tthis._disposers.push(this._resizeSensorDisposer);\n\t}\n\n\t/**\n\t * If automatic resizing of char is disabled (`root.autoResize = false`), it\n\t * can be resized manually by calling this method.\n\t */\n\tpublic resize(): void {\n\t\tconst dom = this.dom;\n\t\tconst w = dom.clientWidth;\n\t\tconst h = dom.clientHeight;\n\t\tif (w > 0 && h > 0) {\n\t\t\tconst focusElementContainer = this._focusElementContainer!;\n\n\t\t\tfocusElementContainer.style.width = w + \"px\";\n\t\t\tfocusElementContainer.style.height = h + \"px\";\n\n\t\t\tthis._renderer.resize(w, h);\n\n\t\t\tconst rootContainer = this._rootContainer;\n\n\t\t\trootContainer.setPrivate(\"width\", w);\n\t\t\trootContainer.setPrivate(\"height\", h);\n\t\t\tthis._render();\n\t\t\tthis._handleLogo();\n\t\t}\n\t}\n\n\tprivate _render() {\n\t\tthis._renderer.render(this._rootContainer._display);\n\n\t\tif (this._focusElementDirty) {\n\t\t\tthis._updateCurrentFocus();\n\t\t\tthis._focusElementDirty = false;\n\t\t}\n\t}\n\n\tprivate _runTickers(currentTime: number) {\n\t\t$array.each(this._tickers, (f) => {\n\t\t\tf(currentTime);\n\t\t});\n\t}\n\n\tprivate _runAnimations(currentTime: number) {\n\t\t$array.keepIf(this._animations, (animation) => {\n\t\t\treturn !animation._runAnimation(currentTime);\n\t\t});\n\t}\n\n\tprivate _runDirties() {\n\t\t//console.log(\"tick **************************************************************\");\n\t\tlet allParents: { [id: number]: IParent } = {};\n\n\t\twhile (this._isDirtyParents) {\n\t\t\t// This must be before calling _prepareChildren\n\t\t\tthis._isDirtyParents = false;\n\n\t\t\t$object.keys(this._dirtyParents).forEach((key) => {\n\t\t\t\tconst parent = this._dirtyParents[key];\n\n\t\t\t\tdelete this._dirtyParents[key];\n\n\t\t\t\tif (!parent.isDisposed()) {\n\t\t\t\t\tallParents[parent.uid] = parent;\n\t\t\t\t\tparent._prepareChildren();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t$object.keys(allParents).forEach((key) => {\n\t\t\tallParents[key]._updateChildren();\n\t\t});\n\n\t\tconst objects: Array<Entity> = [];\n\n\t\t//\t\tconsole.log(\"_beforeChanged\")\n\t\t$object.keys(this._dirty).forEach((key) => {\n\t\t\tconst entity = this._dirty[key];\n\n\t\t\tif (entity.isDisposed()) {\n\t\t\t\tdelete this._dirty[entity.uid];\n\n\t\t\t} else {\n\t\t\t\tobjects.push(entity);\n\t\t\t\tentity._beforeChanged();\n\t\t\t}\n\t\t});\n\n\t\t//\t\tconsole.log(\"_changed\")\n\t\tobjects.forEach((entity) => {\n\t\t\tentity._changed();\n\t\t\tdelete this._dirty[entity.uid];\n\t\t\tentity._clearDirty();\n\t\t});\n\n\t\tthis._isDirty = false;\n\n\t\tconst depths: { [id: number]: number } = {};\n\t\tconst bounds: Array<IBounds> = [];\n\n\t\t$object.keys(this._dirtyBounds).forEach((key) => {\n\t\t\tconst entity = this._dirtyBounds[key];\n\n\t\t\tdelete this._dirtyBounds[key];\n\n\t\t\tif (!entity.isDisposed()) {\n\t\t\t\tdepths[entity.uid] = entity.depth();\n\t\t\t\tbounds.push(entity);\n\t\t\t}\n\t\t});\n\n\t\t// High depth -> low depth\n\t\tbounds.sort((x, y) => {\n\t\t\treturn $order.compare(depths[y.uid], depths[x.uid]);\n\t\t});\n\n\t\t//\t\tconsole.log(\"_updateBounds\")\n\t\tbounds.forEach((entity) => {\n\t\t\tentity._updateBounds();\n\t\t});\n\n\t\t//\t\tconsole.log(\"_updatePosition\")\n\t\tconst dirtyPositions = this._dirtyPositions;\n\t\t$object.keys(dirtyPositions).forEach((key) => {\n\t\t\tconst sprite = dirtyPositions[key];\n\n\t\t\tdelete dirtyPositions[key];\n\n\t\t\tif (!sprite.isDisposed()) {\n\t\t\t\tsprite._updatePosition();\n\t\t\t}\n\t\t});\n\n\t\t//\t\tconsole.log(\"_afterChanged\")\n\t\tobjects.forEach((entity) => {\n\t\t\tentity._afterChanged();\n\t\t});\n\n\t}\n\n\tprivate _runTicker(currentTime: number) {\n\t\tif (!this.isDisposed()) {\n\t\t\tthis.animationTime = currentTime;\n\n\t\t\tif (this.events.isEnabled(\"framestarted\")) {\n\t\t\t\tthis.events.dispatch(\"framestarted\", {\n\t\t\t\t\ttype: \"framestarted\",\n\t\t\t\t\ttarget: this,\n\t\t\t\t\ttimestamp: currentTime,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis._runTickers(currentTime);\n\t\t\tthis._runAnimations(currentTime);\n\t\t\tthis._runDirties();\n\t\t\tthis._render();\n\n\t\t\tif (this.events.isEnabled(\"frameended\")) {\n\t\t\t\tthis.events.dispatch(\"frameended\", {\n\t\t\t\t\ttype: \"frameended\",\n\t\t\t\t\ttarget: this,\n\t\t\t\t\ttimestamp: currentTime,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// No more work to do\n\t\t\tif (this._tickers.length === 0 &&\n\t\t\t\tthis._animations.length === 0 &&\n\t\t\t\t!this._isDirty) {\n\n\t\t\t\tthis._ticker = null;\n\t\t\t\tthis.animationTime = null;\n\n\t\t\t} else {\n\t\t\t\trAF(this.fps, this._ticker!);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate _startTicker() {\n\t\tif (this._ticker === null) {\n\t\t\tthis.animationTime = null;\n\n\t\t\tthis._ticker = (currentTime) => {\n\t\t\t\tthis._runTicker(currentTime);\n\t\t\t};\n\n\t\t\trAF(this.fps, this._ticker!);\n\t\t}\n\t}\n\n\tpublic _addDirtyEntity(entity: Entity) {\n\t\tif (this._dirty[entity.uid] === undefined) {\n\t\t\tthis._isDirty = true;\n\t\t\tthis._dirty[entity.uid] = entity;\n\t\t\tthis._startTicker();\n\t\t}\n\t}\n\n\tpublic _addDirtyParent(parent: IParent) {\n\t\tif (this._dirtyParents[parent.uid] === undefined) {\n\t\t\tthis._isDirty = true;\n\t\t\tthis._isDirtyParents = true;\n\t\t\tthis._dirtyParents[parent.uid] = parent;\n\t\t\tthis._startTicker();\n\t\t}\n\t}\n\n\tpublic _addDirtyBounds(entity: IBounds) {\n\t\tif (this._dirtyBounds[entity.uid] === undefined) {\n\t\t\tthis._isDirty = true;\n\t\t\tthis._dirtyBounds[entity.uid] = entity;\n\t\t\tthis._startTicker();\n\t\t}\n\t}\n\n\tpublic _addDirtyPosition(sprite: Sprite) {\n\t\tif (this._dirtyPositions[sprite.uid] === undefined) {\n\t\t\tthis._isDirty = true;\n\t\t\tthis._dirtyPositions[sprite.uid] = sprite;\n\t\t\tthis._startTicker();\n\t\t}\n\t}\n\n\tpublic _addAnimation(animation: IAnimation) {\n\t\t// TODO use numeric id instead\n\t\tif (this._animations.indexOf(animation) === -1) {\n\t\t\tthis._animations.push(animation);\n\t\t\tthis._startTicker();\n\t\t}\n\t}\n\n\tpublic eachFrame(f: (currentTime: number) => void): IDisposer {\n\t\tthis._tickers.push(f);\n\t\tthis._startTicker();\n\n\t\treturn new Disposer(() => {\n\t\t\t$array.removeFirst(this._tickers, f);\n\t\t});\n\t}\n\n\t/**\n\t * Returns width of the target container, in pixels.\n\t *\n\t * @return Width\n\t */\n\tpublic width(): number {\n\t\treturn this.dom.clientWidth;\n\t}\n\n\t/**\n\t * Returns height of the target container, in pixels.\n\t *\n\t * @return Height\n\t */\n\tpublic height(): number {\n\t\treturn this.dom.clientHeight;\n\t}\n\n\t/**\n\t * Disposes root and all the content in it.\n\t */\n\tpublic dispose(): void {\n\t\tif (!this._isDisposed) {\n\t\t\tthis._isDisposed = true;\n\n\t\t\tthis._rootContainer.dispose();\n\t\t\tthis._renderer.dispose();\n\t\t\tthis.horizontalLayout.dispose();\n\t\t\tthis.verticalLayout.dispose();\n\t\t\tthis.interfaceColors.dispose();\n\n\t\t\t$array.each(this._disposers, (x) => {\n\t\t\t\tx.dispose();\n\t\t\t});\n\n\t\t\tif (this._inner) {\n\t\t\t\t$utils.removeElement(this._inner);\n\t\t\t}\n\n\t\t\t$array.remove(registry.rootElements, this);\n\t\t}\n\t}\n\n\t/**\n\t * Returns `true` if root element is disposed.\n\t *\n\t * @return Disposed?\n\t */\n\tpublic isDisposed(): boolean {\n\t\treturn this._isDisposed;\n\t}\n\n\t/**\n\t * Triggers screen reader read out a message.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/accessibility/} for more info\n\t * @param text Alert text\n\t */\n\tpublic readerAlert(text: string): void {\n\t\tthis._readerAlertElement!.innerHTML = text;\n\t}\n\n\t/**\n\t * Sets themes to be used for the chart.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/themes/} for more info\n\t * @param themes A list of themes\n\t */\n\tpublic setThemes(themes: Array<Theme>): void {\n\t\tthis._rootContainer.set(\"themes\", themes);\n\n\t\t// otherwise new themes are not applied\n\t\tconst tooltipContainer = this.tooltipContainer;\n\t\tif (tooltipContainer) {\n\t\t\ttooltipContainer._applyThemes();\n\t\t}\n\n\t\t// @todo review this\n\t\tconst interfaceColors = this.interfaceColors;\n\t\tif (interfaceColors) {\n\t\t\tinterfaceColors._applyThemes();\n\t\t}\n\t}\n\n\tprotected _addTooltip() {\n\t\tif (!this.tooltipContainer) {\n\t\t\tconst tooltipContainer = this._rootContainer.children.push(Container.new(this, { position: \"absolute\", isMeasured: false, width: p100, height: p100, layer: 100 }));\n\t\t\tthis.tooltipContainer = tooltipContainer;\n\n\t\t\tconst tooltip = Tooltip.new(this, {});\n\t\t\tthis.container.set(\"tooltip\", tooltip);\n\t\t\ttooltip.hide(0);\n\t\t\tthis._tooltip = tooltip;\n\t\t}\n\t}\n\n\t/**\n\t * Accesibility\n\t */\n\n\tpublic _registerTabindexOrder(target: Sprite): void {\n\t\tif (target.get(\"focusable\")) {\n\t\t\t$array.pushOne(this._tabindexes, target);\n\t\t}\n\t\telse {\n\t\t\t$array.remove(this._tabindexes, target);\n\t\t}\n\t\tthis._invalidateTabindexes();\n\t}\n\n\tpublic _unregisterTabindexOrder(target: Sprite): void {\n\t\t$array.remove(this._tabindexes, target);\n\t\tthis._invalidateTabindexes();\n\t}\n\n\tpublic _invalidateTabindexes(): void {\n\n\t\tthis._tabindexes.sort((a: Sprite, b: Sprite) => {\n\t\t\tconst aindex = a.get(\"tabindexOrder\", 0);\n\t\t\tconst bindex = b.get(\"tabindexOrder\", 0);\n\t\t\tif (aindex == bindex) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\telse if (aindex > bindex) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t});\n\n\t\tconst groups: Array<string | number> = [];\n\t\t$array.each(this._tabindexes, (item, index) => {\n\t\t\tif (!item.getPrivate(\"focusElement\")) {\n\t\t\t\tthis._makeFocusElement(index, item);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._moveFocusElement(index, item);\n\t\t\t}\n\t\t\tconst group = item.get(\"focusableGroup\");\n\t\t\tif (group) {\n\t\t\t\tif (groups.indexOf(group) !== -1) {\n\t\t\t\t\t// Non-first element in the group, make it not directly focusable\n\t\t\t\t\titem.getPrivate(\"focusElement\")!.dom.setAttribute(\"tabindex\", \"-1\");\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tgroups.push(group);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t}\n\n\tpublic _updateCurrentFocus(): void {\n\t\tif (this._focusedSprite) {\n\t\t\tthis._decorateFocusElement(this._focusedSprite);\n\t\t\tthis._positionFocusElement(this._focusedSprite);\n\t\t}\n\t}\n\n\tpublic _decorateFocusElement(target: Sprite, focusElement?: HTMLDivElement): void {\n\n\t\t// Decorate with proper accessibility attributes\n\t\tif (!focusElement) {\n\t\t\tfocusElement = target.getPrivate(\"focusElement\")!.dom;\n\t\t}\n\n\t\tif (!focusElement) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (target.get(\"visible\") && target.get(\"role\") != \"tooltip\" && !target.isHidden()) {\n\t\t\tif (focusElement.getAttribute(\"tabindex\") != \"-1\") {\n\t\t\t\tfocusElement.setAttribute(\"tabindex\", \"\" + this.tabindex);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"tabindex\")\n\t\t}\n\n\t\tconst role = target.get(\"role\");\n\t\tif (role) {\n\t\t\tfocusElement.setAttribute(\"role\", role);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"role\");\n\t\t}\n\n\t\tconst ariaLabel = target.get(\"ariaLabel\");\n\t\tif (ariaLabel) {\n\t\t\tconst label = populateString(target, ariaLabel);\n\t\t\tfocusElement.setAttribute(\"aria-label\", label);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-label\");\n\t\t}\n\n\t\tconst ariaLive = target.get(\"ariaLive\");\n\t\tif (ariaLive) {\n\t\t\tfocusElement.setAttribute(\"aria-live\", ariaLive);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-live\");\n\t\t}\n\n\t\tconst ariaChecked = target.get(\"ariaChecked\");\n\t\tif (ariaChecked != null) {\n\t\t\tfocusElement.setAttribute(\"aria-checked\", ariaChecked ? \"true\" : \"false\");\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-checked\");\n\t\t}\n\n\t\tif (target.get(\"ariaHidden\")) {\n\t\t\tfocusElement.setAttribute(\"aria-hidden\", \"hidden\");\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-hidden\");\n\t\t}\n\n\t\tconst ariaOrientation = target.get(\"ariaOrientation\");\n\t\tif (ariaOrientation) {\n\t\t\tfocusElement.setAttribute(\"aria-orientation\", ariaOrientation);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-orientation\");\n\t\t}\n\n\t\tconst ariaValueNow = target.get(\"ariaValueNow\");\n\t\tif (ariaValueNow) {\n\t\t\tfocusElement.setAttribute(\"aria-valuenow\", ariaValueNow);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-valuenow\");\n\t\t}\n\n\t\tconst ariaValueMin = target.get(\"ariaValueMin\");\n\t\tif (ariaValueMin) {\n\t\t\tfocusElement.setAttribute(\"aria-valuemin\", ariaValueMin);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-valuemin\");\n\t\t}\n\n\t\tconst ariaValueMax = target.get(\"ariaValueMax\");\n\t\tif (ariaValueMax) {\n\t\t\tfocusElement.setAttribute(\"aria-valuemax\", ariaValueMax);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-valuemax\");\n\t\t}\n\n\t\tconst ariaValueText = target.get(\"ariaValueText\");\n\t\tif (ariaValueText) {\n\t\t\tfocusElement.setAttribute(\"aria-valuetext\", ariaValueText);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-valuetext\");\n\t\t}\n\n\t\tconst ariaControls = target.get(\"ariaControls\");\n\t\tif (ariaControls) {\n\t\t\tfocusElement.setAttribute(\"aria-controls\", ariaControls);\n\t\t}\n\t\telse {\n\t\t\tfocusElement.removeAttribute(\"aria-controls\");\n\t\t}\n\t}\n\n\tpublic _makeFocusElement(index: number, target: Sprite): void {\n\n\t\tif (target.getPrivate(\"focusElement\")) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Init\n\t\tconst focusElement = document.createElement(\"div\");\n\t\tif (target.get(\"role\") != \"tooltip\") {\n\t\t\tfocusElement.tabIndex = this.tabindex;\n\t\t}\n\t\tfocusElement.style.position = \"absolute\";\n\t\t$utils.setInteractive(focusElement, false);\n\n\t\tconst disposers: Array<IDisposer> = [];\n\n\t\ttarget.setPrivate(\"focusElement\", {\n\t\t\tdom: focusElement,\n\t\t\tdisposers,\n\t\t});\n\n\t\tthis._decorateFocusElement(target);\n\n\t\tdisposers.push($utils.addEventListener(focusElement, \"focus\", (ev: FocusEvent) => {\n\t\t\tthis._handleFocus(ev, index);\n\t\t}));\n\n\t\tdisposers.push($utils.addEventListener(focusElement, \"blur\", (ev: FocusEvent) => {\n\t\t\tthis._handleBlur(ev, index);\n\t\t}));\n\n\t\tthis._moveFocusElement(index, target);\n\n\t}\n\n\tpublic _removeFocusElement(target: Sprite): void {\n\n\t\t// Init\n\t\tconst container = this._focusElementContainer!;\n\t\tconst focusElement = target.getPrivate(\"focusElement\")!;\n\t\tcontainer.removeChild(focusElement.dom);\n\t\t$array.each(focusElement.disposers, (x) => {\n\t\t\tx.dispose();\n\t\t});\n\t}\n\n\tprotected _moveFocusElement(index: number, target: Sprite): void {\n\n\t\t// Get container\n\t\tconst container = this._focusElementContainer!;\n\t\tconst focusElement = target.getPrivate(\"focusElement\")!.dom;\n\n\t\tif (focusElement === this._focusElementContainer!.children[index]) {\n\t\t\t// Nothing to do\n\t\t\treturn;\n\t\t}\n\n\t\tconst next = this._focusElementContainer!.children[index + 1];\n\t\tif (next) {\n\t\t\tcontainer.insertBefore(focusElement, next);\n\t\t}\n\t\telse {\n\t\t\tcontainer.append(focusElement);\n\t\t}\n\t}\n\n\tprotected _positionFocusElement(target: Sprite): void {\n\t\tconst bounds = target.globalBounds();\n\n\t\tconst width = bounds.right == bounds.left ? target.width() : bounds.right - bounds.left;\n\t\tconst height = bounds.top == bounds.bottom ? target.height() : bounds.bottom - bounds.top;\n\n\t\tconst focusElement = target.getPrivate(\"focusElement\")!.dom;\n\t\tfocusElement.style.top = (bounds.top - 2) + \"px\";\n\t\tfocusElement.style.left = (bounds.left - 2) + \"px\";\n\t\tfocusElement.style.width = (width + 4) + \"px\";\n\t\tfocusElement.style.height = (height + 4) + \"px\";\n\n\t}\n\n\tprotected _handleFocus(ev: FocusEvent, index: number): void {\n\t\t// Get element\n\t\tconst focused = this._tabindexes[index];\n\n\t\t// Size and position\n\t\tthis._positionFocusElement(focused);\n\t\t//this._decorateFocusElement(focused);\n\n\t\tthis._focusedSprite = focused;\n\n\t\tif (focused.events.isEnabled(\"focus\")) {\n\t\t\tfocused.events.dispatch(\"focus\", {\n\t\t\t\ttype: \"focus\",\n\t\t\t\toriginalEvent: ev,\n\t\t\t\ttarget: focused\n\t\t\t});\n\t\t}\n\t}\n\n\tprotected _handleBlur(ev: FocusEvent, _index: number): void {\n\t\tconst focused = this._focusedSprite;\n\t\tif (focused && focused.events.isEnabled(\"blur\")) {\n\t\t\tfocused.events.dispatch(\"blur\", {\n\t\t\t\ttype: \"blur\",\n\t\t\t\toriginalEvent: ev,\n\t\t\t\ttarget: focused\n\t\t\t});\n\t\t}\n\t\tthis._focusedSprite = undefined;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic updateTooltip(target: Text): void {\n\t\tconst text = target._getText();\n\t\tlet tooltipElement = target.getPrivate(\"tooltipElement\");\n\t\tif (target.get(\"role\") == \"tooltip\" && text != \"\") {\n\t\t\tif (!tooltipElement) {\n\t\t\t\ttooltipElement = this._makeTooltipElement(target);\n\t\t\t}\n\t\t\tif (tooltipElement.innerHTML != text) {\n\t\t\t\ttooltipElement.innerHTML = text!;\n\t\t\t}\n\t\t}\n\t\telse if (tooltipElement) {\n\t\t\ttooltipElement.remove();\n\t\t\ttarget.removePrivate(\"tooltipElement\");\n\t\t}\n\t}\n\n\tpublic _makeTooltipElement(target: Text): HTMLDivElement {\n\t\tconst container = this._tooltipElementContainer!;\n\t\tconst tooltipElement = document.createElement(\"div\");\n\t\ttooltipElement.style.position = \"absolute\";\n\t\ttooltipElement.style.opacity = \"0.0000001\";\n\n\t\t$utils.setInteractive(tooltipElement, false);\n\n\t\tthis._decorateFocusElement(target, tooltipElement);\n\t\tcontainer.append(tooltipElement);\n\t\ttarget.setPrivate(\"tooltipElement\", tooltipElement);\n\t\treturn tooltipElement;\n\t}\n\n\tpublic _invalidateAccessibility(target: Sprite): void {\n\t\tthis._focusElementDirty = true;\n\t\tconst focusElement = target.getPrivate(\"focusElement\");\n\t\tif (target.get(\"focusable\")) {\n\t\t\tif (focusElement) {\n\t\t\t\tthis._decorateFocusElement(target);\n\t\t\t\tthis._positionFocusElement(target);\n\t\t\t}\n\t\t\t// else {\n\t\t\t// \tthis._renderer._makeFocusElement(0, this);\n\t\t\t// }\n\t\t}\n\t\telse if (focusElement) {\n\t\t\tthis._removeFocusElement(target);\n\t\t}\n\t\t//this.updateCurrentFocus();\n\t}\n\n\t/**\n\t * Returns `true` if `target` is currently focused.\n\t *\n\t * @param target Target\n\t * @return Focused?\n\t */\n\tpublic focused(target: Sprite): boolean {\n\t\treturn this._focusedSprite === target;\n\t}\n\n\t/**\n\t * Converts document coordinates to coordinates withing root element.\n\t *\n\t * @param point Document point\n\t * @return Root point\n\t */\n\tpublic documentPointToRoot(point: IPoint): IPoint {\n\t\tconst bbox = this.dom.getBoundingClientRect();\n\t\treturn {\n\t\t\tx: point.x - bbox.left,\n\t\t\ty: point.y - bbox.top\n\t\t};\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic addDisposer<T extends IDisposer>(disposer: T): T {\n\t\tthis._disposers.push(disposer);\n\t\treturn disposer;\n\t}\n\n\t/**\n * To all the clever heads out there. Yes, we did not make any attempts to\n * scramble this.\n *\n * This is a part of a tool meant for our users to manage their commercial\n * licenses for removal of amCharts branding from charts.\n *\n * The only legit way to do so is to purchase a commercial license for amCharts:\n * https://www.amcharts.com/online-store/\n *\n * Removing or altering this code, or disabling amCharts branding in any other\n * way is against the license and thus illegal.\n */\n\tprotected _hasLicense(): boolean {\n\t\tfor (let i = 0; i < registry.licenses.length; i++) {\n\t\t\tif (registry.licenses[i].match(/^AM5C.{5,}/i)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Component.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/render/Component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Component.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/core/render/Component.ts"],"names":[],"mappings":"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"}
@@ -313,7 +313,11 @@ var Component = /** @class */ (function (_super) {
313
313
  var dataItem = dataItems[change.index];
314
314
  dataItem.dispose();
315
315
  dataItems.splice(change.index, 1);
316
- _this._markDirtyValues();
316
+ }
317
+ else if (change.type === "moveIndex") {
318
+ var dataItem = dataItems[change.oldIndex];
319
+ dataItems.splice(change.oldIndex, 1);
320
+ dataItems.splice(change.newIndex, 0, dataItem);
317
321
  }
318
322
  else {
319
323
  throw new Error("Unknown IStreamEvent type");
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sourceRoot":"","sources":["../../../../../src/.internal/core/render/Component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Settings } from \"../util/Entity\";\nimport { Container, IContainerSettings, IContainerPrivate, IContainerEvents } from \"./Container\";\nimport { ListData } from \"../util/Data\";\nimport * as $array from \"../util/Array\";\nimport * as $object from \"../util/Object\";\nimport type * as $ease from \"../util/Ease\";\nimport type { Bullet } from \"./Bullet\";\n\n/**\n * A base element that holds data bit (data item) for any [[Component]].\n */\nexport class DataItem<P extends IComponentDataItem> extends Settings {\n\tdeclare public _settings: P;\n\n\t/**\n\t * A data item's owener [[Component]].\n\t */\n\tpublic component: Component;\n\n\t/**\n\t * A reference to actual item in source data this item is based on.\n\t */\n\tpublic dataContext: unknown;\n\n\t/**\n\t * @todo requires description\n\t */\n\tpublic bullets: Array<Bullet> | undefined;\n\n\t/**\n\t * A set of \"open\" values.\n\t */\n\tpublic open: { [index: string]: any } | undefined;\n\n\t/**\n\t * A set of \"close\" values.\n\t */\n\tpublic close: { [index: string]: any } | undefined;\n\n\tconstructor(component: Component, dataContext: unknown, settings: P) {\n\t\tsuper(settings);\n\n\t\tthis.dataContext = dataContext;\n\t\tthis.component = component;\n\t\tthis._settings.visible = true;\n\t\tthis._checkDirty();\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic markDirty(): void {\n\t\tthis.component._markDirtyValues(this);\n\t}\n\n\tprotected _startAnimation(): void {\n\t\tthis.component._root._addAnimation(this);\n\t}\n\n\tprotected _animationTime(): number | null {\n\t\treturn this.component._root.animationTime;\n\t}\n\n\tprotected _dispose() {\n\t\tif (this.component) {\n\t\t\tthis.component.disposeDataItem(this);\n\t\t}\n\t\tsuper._dispose();\n\t}\n\n\t/**\n\t * Shows a data item that's currently hidden.\n\t */\n\tpublic show(duration?: number) {\n\t\tthis.setRaw(\"visible\", true);\n\t\tif (this.component) {\n\t\t\tthis.component.showDataItem(this, duration);\n\t\t}\n\t}\n\n\t/**\n\t * Hides a data item that's currently visible.\n\t */\n\tpublic hide(duration?: number) {\n\t\tthis.setRaw(\"visible\", false);\n\t\tif (this.component) {\n\t\t\tthis.component.hideDataItem(this, duration);\n\t\t}\n\t}\n\n\tpublic isHidden() {\n\t\treturn !this.get(\"visible\");\n\t}\n}\n\n\nexport interface IComponentDataItem {\n\tvisible?: boolean;\n}\n\nexport interface IComponentSettings extends IContainerSettings {\n\n\t/**\n\t * A duration of the animation from one setting value to another, in\n\t * milliseconds.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/#Animating_data_values} for more info\n\t */\n\tinterpolationDuration?: number;\n\n\t/**\n\t * Easing function to use for cross setting value animations.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/#Easing_functions} for more info\n\t */\n\tinterpolationEasing?: $ease.Easing;\n\n}\n\nexport interface IComponentPrivate extends IContainerPrivate {\n}\n\nexport interface IComponentEvents extends IContainerEvents {\n\tdatavalidated: {}\n}\n\n/**\n * A base class for elements that make use of data.\n */\nexport abstract class Component extends Container {\n\tpublic static className: string = \"Component\";\n\tpublic static classNames: Array<string> = Container.classNames.concat([Component.className]);\n\n\tdeclare public _settings: IComponentSettings;\n\tdeclare public _privateSettings: IComponentPrivate;\n\tdeclare public _dataItemSettings: IComponentDataItem;\n\tdeclare public _events: IComponentEvents;\n\n\tprotected _data: ListData<unknown> = new ListData();\n\n\tprotected _dataItems: Array<DataItem<this[\"_dataItemSettings\"]>> = [];\n\n\tpublic _mainDataItems = this._dataItems;\n\n\tprotected valueFields: Array<string> = [];\n\tprotected fields: Array<string> = [\"id\"];\n\n\tprotected _valueFields!: Array<string>;\n\tprotected _valueFieldsF!: { [index: string]: { fieldKey: string, workingKey: string } };\n\n\tprotected _fields!: Array<string>;\n\tprotected _fieldsF!: { [index: string]: string };\n\n\tpublic _valuesDirty: boolean = false;\n\n\tprotected _dataChanged: boolean = false;\n\n\tprotected _dataGrouped = false;\t\n\n\t/**\n\t * Indicates if the component has already been initialized.\n\t */\n\tpublic inited: boolean = false;\n\n\t/**\n\t * Component's data.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/data/} for more info\n\t */\n\tpublic set data(data: ListData<unknown>) {\n\t\tdata.incrementRef();\n\t\tthis._data.decrementRef();\n\t\tthis._data = data;\n\t}\n\n\t/**\n\t * @return Data\n\t */\n\tpublic get data(): ListData<unknown> {\n\t\treturn this._data;\n\t}\n\n\tprotected _dispose() {\n\t\tsuper._dispose();\n\t\tthis._data.decrementRef();\n\t}\n\n\tprotected _onDataClear() {\n\n\t}\n\n\tprotected _afterNew() {\n\t\tsuper._afterNew();\n\n\t\tthis._data.incrementRef();\n\t\tthis._updateFields();\n\n\t\tthis._disposers.push(this.data.events.onAll((change) => {\n\t\t\tconst dataItems = this._mainDataItems;\n\t\t\tthis._markDirtyValues();\n\t\t\tthis._markDirtyGroup();\n\t\t\tthis._dataChanged = true;\n\t\t\tif (change.type === \"clear\") {\n\t\t\t\t$array.each(dataItems, (dataItem) => {\n\t\t\t\t\tdataItem.dispose();\n\t\t\t\t});\n\n\t\t\t\tdataItems.length = 0;\n\t\t\t\tthis._onDataClear();\n\t\t\t} else if (change.type === \"push\") {\n\t\t\t\tconst dataItem = new DataItem(this, change.newValue, this._makeDataItem(change.newValue));\n\t\t\t\tdataItems.push(dataItem);\n\t\t\t\tthis.processDataItem(dataItem);\n\n\t\t\t} else if (change.type === \"setIndex\") {\n\t\t\t\tconst dataItem = dataItems[change.index];\n\t\t\t\tconst properties = this._makeDataItem(change.newValue);\n\n\t\t\t\t$object.keys(properties).forEach((key) => {\n\t\t\t\t\tdataItem.animate({\n\t\t\t\t\t\tkey: key,\n\t\t\t\t\t\tto: properties[key],\n\t\t\t\t\t\tduration: this.get(\"interpolationDuration\", 0),\n\t\t\t\t\t\teasing: this.get(\"interpolationEasing\"),\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\tdataItem.dataContext = change.newValue;\n\n\t\t\t} else if (change.type === \"insertIndex\") {\n\t\t\t\tconst dataItem = new DataItem(this, change.newValue, this._makeDataItem(change.newValue));\n\t\t\t\tdataItems.splice(change.index, 0, dataItem);\n\t\t\t\tthis.processDataItem(dataItem);\n\n\t\t\t} else if (change.type === \"removeIndex\") {\n\t\t\t\tconst dataItem = dataItems[change.index];\n\t\t\t\tdataItem.dispose();\n\t\t\t\tdataItems.splice(change.index, 1);\n\t\t\t\tthis._markDirtyValues();\n\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unknown IStreamEvent type\");\n\t\t\t}\n\n\t\t\tthis._afterDataChange();\n\t\t}));\n\t}\n\n\tprotected _updateFields() {\n\t\tif (this.valueFields) {\n\t\t\tthis._valueFields = [];\n\t\t\tthis._valueFieldsF = {};\n\n\t\t\t$array.each(this.valueFields as Array<keyof this[\"_settings\"]>, (key) => {\n\t\t\t\tconst field = this.get(<any>(key + \"Field\"));\n\t\t\t\tif (field) {\n\t\t\t\t\tthis._valueFields.push(<any>key);\n\t\t\t\t\tthis._valueFieldsF[key as string] = { fieldKey: key + \"Field\", workingKey: key + \"Working\" };\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (this.fields) {\n\t\t\tthis._fields = [];\n\t\t\tthis._fieldsF = {};\n\n\t\t\t$array.each(this.fields as Array<keyof this[\"_settings\"]>, (key) => {\n\t\t\t\tconst field = this.get(<any>(key + \"Field\"));\n\t\t\t\tif (field) {\n\t\t\t\t\tthis._fields.push(<any>key);\n\t\t\t\t\tthis._fieldsF[key as string] = key + \"Field\";\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * A list of component's data items.\n\t *\n\t * @return Data items\n\t */\n\tpublic get dataItems(): Array<DataItem<this[\"_dataItemSettings\"]>> {\n\t\treturn this._dataItems;\n\t}\n\n\tprotected processDataItem(_dataItem: DataItem<this[\"_dataItemSettings\"]>) { }\n\n\n\tpublic _makeDataItem(data: unknown): this[\"_dataItemSettings\"] {\n\t\t//const output: this[\"_dataItemSettings\"] = {};\n\t\tconst output: any = {}; // temporary to solve error\n\t\tif (this._valueFields) {\n\t\t\t$array.each(this._valueFields, (key) => {\n\t\t\t\tconst field = this.get(<any>(this._valueFieldsF[key].fieldKey));\n\t\t\t\toutput[key] = (data as any)[field];\n\n\t\t\t\toutput[this._valueFieldsF[key].workingKey] = output[key];\n\t\t\t});\n\t\t}\n\t\tif (this._fields) {\n\t\t\t$array.each(this._fields, (key) => {\n\t\t\t\tconst field = this.get(<any>(this._fieldsF[key]));\n\t\t\t\toutput[key] = (data as any)[field];\n\t\t\t});\n\t\t}\n\n\t\treturn output;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic makeDataItem(data: this[\"_dataItemSettings\"]): DataItem<this[\"_dataItemSettings\"]> {\n\t\tlet dataItem = new DataItem(this, undefined, data);\n\t\tthis.processDataItem(dataItem);\n\t\treturn dataItem;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic pushDataItem(data: this[\"_dataItemSettings\"]): DataItem<this[\"_dataItemSettings\"]> {\n\t\tconst dataItem = this.makeDataItem(data);\n\t\tthis._mainDataItems.push(dataItem);\n\t\treturn dataItem;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic disposeDataItem(_dataItem: DataItem<this[\"_dataItemSettings\"]>) { }\n\n\t/**\n\t * Shows component's data item.\n\t *\n\t * @param dataItem Data item\n\t * @param _duration Animation duration in milliseconds\n\t * @return Promise\n\t */\n\tpublic async showDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>, _duration?: number): Promise<void> {\n\t\tdataItem.set(\"visible\", true);\n\t}\n\n\t/**\n\t * Hides component's data item.\n\t *\n\t * @param dataItem Data item\n\t * @param _duration Animation duration in milliseconds\n\t * @return Promise\n\t */\n\tpublic async hideDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>, _duration?: number): Promise<void> {\n\t\tdataItem.set(\"visible\", false);\n\t}\n\n\tpublic _clearDirty() {\n\t\tsuper._clearDirty();\n\t\tthis._valuesDirty = false;\n\t}\n\n\tprotected _afterDataChange() {\n\n\t}\n\n\tpublic _afterChanged() {\n\t\tsuper._afterChanged();\n\t\tif (this._dataChanged) {\n\t\t\tconst type = \"datavalidated\";\n\t\t\tif (this.events.isEnabled(type)) {\n\t\t\t\tthis.events.dispatch(type, { type: type, target: this });\n\t\t\t\tthis._dataChanged = false;\n\t\t\t}\n\t\t}\n\n\t\tthis.inited = true;\n\t}\n\n\tpublic _markDirtyValues(_dataItem?: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tthis.markDirty();\n\t\tthis._valuesDirty = true;\n\t}\n\n\tpublic _markDirtyGroup() {\t\t\n\t\tthis._dataGrouped = false;\n\t}\t\n\n\t/**\n\t * @ignore\n\t */\n\tpublic markDirtySize() {\n\t\tthis._sizeDirty = true;\n\t\tthis.markDirty();\n\t}\n\n}\n"]}
1
+ {"version":3,"file":"Component.js","sourceRoot":"","sources":["../../../../../src/.internal/core/render/Component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Settings } from \"../util/Entity\";\nimport { Container, IContainerSettings, IContainerPrivate, IContainerEvents } from \"./Container\";\nimport { ListData } from \"../util/Data\";\nimport * as $array from \"../util/Array\";\nimport * as $object from \"../util/Object\";\nimport type * as $ease from \"../util/Ease\";\nimport type { Bullet } from \"./Bullet\";\n\n/**\n * A base element that holds data bit (data item) for any [[Component]].\n */\nexport class DataItem<P extends IComponentDataItem> extends Settings {\n\tdeclare public _settings: P;\n\n\t/**\n\t * A data item's owener [[Component]].\n\t */\n\tpublic component: Component;\n\n\t/**\n\t * A reference to actual item in source data this item is based on.\n\t */\n\tpublic dataContext: unknown;\n\n\t/**\n\t * @todo requires description\n\t */\n\tpublic bullets: Array<Bullet> | undefined;\n\n\t/**\n\t * A set of \"open\" values.\n\t */\n\tpublic open: { [index: string]: any } | undefined;\n\n\t/**\n\t * A set of \"close\" values.\n\t */\n\tpublic close: { [index: string]: any } | undefined;\n\n\tconstructor(component: Component, dataContext: unknown, settings: P) {\n\t\tsuper(settings);\n\n\t\tthis.dataContext = dataContext;\n\t\tthis.component = component;\n\t\tthis._settings.visible = true;\n\t\tthis._checkDirty();\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic markDirty(): void {\n\t\tthis.component._markDirtyValues(this);\n\t}\n\n\tprotected _startAnimation(): void {\n\t\tthis.component._root._addAnimation(this);\n\t}\n\n\tprotected _animationTime(): number | null {\n\t\treturn this.component._root.animationTime;\n\t}\n\n\tprotected _dispose() {\n\t\tif (this.component) {\n\t\t\tthis.component.disposeDataItem(this);\n\t\t}\n\t\tsuper._dispose();\n\t}\n\n\t/**\n\t * Shows a data item that's currently hidden.\n\t */\n\tpublic show(duration?: number) {\n\t\tthis.setRaw(\"visible\", true);\n\t\tif (this.component) {\n\t\t\tthis.component.showDataItem(this, duration);\n\t\t}\n\t}\n\n\t/**\n\t * Hides a data item that's currently visible.\n\t */\n\tpublic hide(duration?: number) {\n\t\tthis.setRaw(\"visible\", false);\n\t\tif (this.component) {\n\t\t\tthis.component.hideDataItem(this, duration);\n\t\t}\n\t}\n\n\tpublic isHidden() {\n\t\treturn !this.get(\"visible\");\n\t}\n}\n\n\nexport interface IComponentDataItem {\n\tvisible?: boolean;\n}\n\nexport interface IComponentSettings extends IContainerSettings {\n\n\t/**\n\t * A duration of the animation from one setting value to another, in\n\t * milliseconds.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/#Animating_data_values} for more info\n\t */\n\tinterpolationDuration?: number;\n\n\t/**\n\t * Easing function to use for cross setting value animations.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/#Easing_functions} for more info\n\t */\n\tinterpolationEasing?: $ease.Easing;\n\n}\n\nexport interface IComponentPrivate extends IContainerPrivate {\n}\n\nexport interface IComponentEvents extends IContainerEvents {\n\tdatavalidated: {}\n}\n\n/**\n * A base class for elements that make use of data.\n */\nexport abstract class Component extends Container {\n\tpublic static className: string = \"Component\";\n\tpublic static classNames: Array<string> = Container.classNames.concat([Component.className]);\n\n\tdeclare public _settings: IComponentSettings;\n\tdeclare public _privateSettings: IComponentPrivate;\n\tdeclare public _dataItemSettings: IComponentDataItem;\n\tdeclare public _events: IComponentEvents;\n\n\tprotected _data: ListData<unknown> = new ListData();\n\n\tprotected _dataItems: Array<DataItem<this[\"_dataItemSettings\"]>> = [];\n\n\tpublic _mainDataItems = this._dataItems;\n\n\tprotected valueFields: Array<string> = [];\n\tprotected fields: Array<string> = [\"id\"];\n\n\tprotected _valueFields!: Array<string>;\n\tprotected _valueFieldsF!: { [index: string]: { fieldKey: string, workingKey: string } };\n\n\tprotected _fields!: Array<string>;\n\tprotected _fieldsF!: { [index: string]: string };\n\n\tpublic _valuesDirty: boolean = false;\n\n\tprotected _dataChanged: boolean = false;\n\n\tprotected _dataGrouped = false;\n\n\t/**\n\t * Indicates if the component has already been initialized.\n\t */\n\tpublic inited: boolean = false;\n\n\t/**\n\t * Component's data.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/data/} for more info\n\t */\n\tpublic set data(data: ListData<unknown>) {\n\t\tdata.incrementRef();\n\t\tthis._data.decrementRef();\n\t\tthis._data = data;\n\t}\n\n\t/**\n\t * @return Data\n\t */\n\tpublic get data(): ListData<unknown> {\n\t\treturn this._data;\n\t}\n\n\tprotected _dispose() {\n\t\tsuper._dispose();\n\t\tthis._data.decrementRef();\n\t}\n\n\tprotected _onDataClear() {\n\n\t}\n\n\tprotected _afterNew() {\n\t\tsuper._afterNew();\n\n\t\tthis._data.incrementRef();\n\t\tthis._updateFields();\n\n\t\tthis._disposers.push(this.data.events.onAll((change) => {\n\t\t\tconst dataItems = this._mainDataItems;\n\t\t\tthis._markDirtyValues();\n\t\t\tthis._markDirtyGroup();\n\t\t\tthis._dataChanged = true;\n\t\t\tif (change.type === \"clear\") {\n\t\t\t\t$array.each(dataItems, (dataItem) => {\n\t\t\t\t\tdataItem.dispose();\n\t\t\t\t});\n\n\t\t\t\tdataItems.length = 0;\n\t\t\t\tthis._onDataClear();\n\t\t\t} else if (change.type === \"push\") {\n\t\t\t\tconst dataItem = new DataItem(this, change.newValue, this._makeDataItem(change.newValue));\n\t\t\t\tdataItems.push(dataItem);\n\t\t\t\tthis.processDataItem(dataItem);\n\n\t\t\t} else if (change.type === \"setIndex\") {\n\t\t\t\tconst dataItem = dataItems[change.index];\n\t\t\t\tconst properties = this._makeDataItem(change.newValue);\n\n\t\t\t\t$object.keys(properties).forEach((key) => {\n\t\t\t\t\tdataItem.animate({\n\t\t\t\t\t\tkey: key,\n\t\t\t\t\t\tto: properties[key],\n\t\t\t\t\t\tduration: this.get(\"interpolationDuration\", 0),\n\t\t\t\t\t\teasing: this.get(\"interpolationEasing\"),\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\tdataItem.dataContext = change.newValue;\n\n\t\t\t} else if (change.type === \"insertIndex\") {\n\t\t\t\tconst dataItem = new DataItem(this, change.newValue, this._makeDataItem(change.newValue));\n\t\t\t\tdataItems.splice(change.index, 0, dataItem);\n\t\t\t\tthis.processDataItem(dataItem);\n\n\t\t\t} else if (change.type === \"removeIndex\") {\n\t\t\t\tconst dataItem = dataItems[change.index];\n\t\t\t\tdataItem.dispose();\n\t\t\t\tdataItems.splice(change.index, 1);\n\n\t\t\t} else if (change.type === \"moveIndex\") {\n\t\t\t\tconst dataItem = dataItems[change.oldIndex];\n\t\t\t\tdataItems.splice(change.oldIndex, 1);\n\t\t\t\tdataItems.splice(change.newIndex, 0, dataItem);\n\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unknown IStreamEvent type\");\n\t\t\t}\n\n\t\t\tthis._afterDataChange();\n\t\t}));\n\t}\n\n\tprotected _updateFields() {\n\t\tif (this.valueFields) {\n\t\t\tthis._valueFields = [];\n\t\t\tthis._valueFieldsF = {};\n\n\t\t\t$array.each(this.valueFields as Array<keyof this[\"_settings\"]>, (key) => {\n\t\t\t\tconst field = this.get(<any>(key + \"Field\"));\n\t\t\t\tif (field) {\n\t\t\t\t\tthis._valueFields.push(<any>key);\n\t\t\t\t\tthis._valueFieldsF[key as string] = { fieldKey: key + \"Field\", workingKey: key + \"Working\" };\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (this.fields) {\n\t\t\tthis._fields = [];\n\t\t\tthis._fieldsF = {};\n\n\t\t\t$array.each(this.fields as Array<keyof this[\"_settings\"]>, (key) => {\n\t\t\t\tconst field = this.get(<any>(key + \"Field\"));\n\t\t\t\tif (field) {\n\t\t\t\t\tthis._fields.push(<any>key);\n\t\t\t\t\tthis._fieldsF[key as string] = key + \"Field\";\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * A list of component's data items.\n\t *\n\t * @return Data items\n\t */\n\tpublic get dataItems(): Array<DataItem<this[\"_dataItemSettings\"]>> {\n\t\treturn this._dataItems;\n\t}\n\n\tprotected processDataItem(_dataItem: DataItem<this[\"_dataItemSettings\"]>) { }\n\n\n\tpublic _makeDataItem(data: unknown): this[\"_dataItemSettings\"] {\n\t\t//const output: this[\"_dataItemSettings\"] = {};\n\t\tconst output: any = {}; // temporary to solve error\n\t\tif (this._valueFields) {\n\t\t\t$array.each(this._valueFields, (key) => {\n\t\t\t\tconst field = this.get(<any>(this._valueFieldsF[key].fieldKey));\n\t\t\t\toutput[key] = (data as any)[field];\n\n\t\t\t\toutput[this._valueFieldsF[key].workingKey] = output[key];\n\t\t\t});\n\t\t}\n\t\tif (this._fields) {\n\t\t\t$array.each(this._fields, (key) => {\n\t\t\t\tconst field = this.get(<any>(this._fieldsF[key]));\n\t\t\t\toutput[key] = (data as any)[field];\n\t\t\t});\n\t\t}\n\n\t\treturn output;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic makeDataItem(data: this[\"_dataItemSettings\"]): DataItem<this[\"_dataItemSettings\"]> {\n\t\tlet dataItem = new DataItem(this, undefined, data);\n\t\tthis.processDataItem(dataItem);\n\t\treturn dataItem;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic pushDataItem(data: this[\"_dataItemSettings\"]): DataItem<this[\"_dataItemSettings\"]> {\n\t\tconst dataItem = this.makeDataItem(data);\n\t\tthis._mainDataItems.push(dataItem);\n\t\treturn dataItem;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic disposeDataItem(_dataItem: DataItem<this[\"_dataItemSettings\"]>) { }\n\n\t/**\n\t * Shows component's data item.\n\t *\n\t * @param dataItem Data item\n\t * @param _duration Animation duration in milliseconds\n\t * @return Promise\n\t */\n\tpublic async showDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>, _duration?: number): Promise<void> {\n\t\tdataItem.set(\"visible\", true);\n\t}\n\n\t/**\n\t * Hides component's data item.\n\t *\n\t * @param dataItem Data item\n\t * @param _duration Animation duration in milliseconds\n\t * @return Promise\n\t */\n\tpublic async hideDataItem(dataItem: DataItem<this[\"_dataItemSettings\"]>, _duration?: number): Promise<void> {\n\t\tdataItem.set(\"visible\", false);\n\t}\n\n\tpublic _clearDirty() {\n\t\tsuper._clearDirty();\n\t\tthis._valuesDirty = false;\n\t}\n\n\tprotected _afterDataChange() {\n\n\t}\n\n\tpublic _afterChanged() {\n\t\tsuper._afterChanged();\n\t\tif (this._dataChanged) {\n\t\t\tconst type = \"datavalidated\";\n\t\t\tif (this.events.isEnabled(type)) {\n\t\t\t\tthis.events.dispatch(type, { type: type, target: this });\n\t\t\t\tthis._dataChanged = false;\n\t\t\t}\n\t\t}\n\n\t\tthis.inited = true;\n\t}\n\n\tpublic _markDirtyValues(_dataItem?: DataItem<this[\"_dataItemSettings\"]>) {\n\t\tthis.markDirty();\n\t\tthis._valuesDirty = true;\n\t}\n\n\tpublic _markDirtyGroup() {\n\t\tthis._dataGrouped = false;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic markDirtySize() {\n\t\tthis._sizeDirty = true;\n\t\tthis.markDirty();\n\t}\n\n}\n"]}