@amcharts/amcharts5 5.2.5 → 5.2.8

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 (297) hide show
  1. package/.internal/charts/funnel/FunnelSeries.d.ts +2 -0
  2. package/.internal/charts/funnel/FunnelSeries.d.ts.map +1 -1
  3. package/.internal/charts/funnel/FunnelSeries.js +27 -0
  4. package/.internal/charts/funnel/FunnelSeries.js.map +1 -1
  5. package/.internal/charts/hierarchy/Pack.d.ts +6 -0
  6. package/.internal/charts/hierarchy/Pack.d.ts.map +1 -1
  7. package/.internal/charts/hierarchy/Pack.js +1 -0
  8. package/.internal/charts/hierarchy/Pack.js.map +1 -1
  9. package/.internal/charts/map/MapChart.d.ts +2 -1
  10. package/.internal/charts/map/MapChart.d.ts.map +1 -1
  11. package/.internal/charts/map/MapChart.js +25 -1
  12. package/.internal/charts/map/MapChart.js.map +1 -1
  13. package/.internal/charts/map/MapChartDefaultTheme.d.ts.map +1 -1
  14. package/.internal/charts/map/MapChartDefaultTheme.js +2 -1
  15. package/.internal/charts/map/MapChartDefaultTheme.js.map +1 -1
  16. package/.internal/charts/map/MapPointSeries.d.ts +5 -0
  17. package/.internal/charts/map/MapPointSeries.d.ts.map +1 -1
  18. package/.internal/charts/map/MapPointSeries.js.map +1 -1
  19. package/.internal/charts/percent/PercentChart.d.ts +1 -0
  20. package/.internal/charts/percent/PercentChart.d.ts.map +1 -1
  21. package/.internal/charts/percent/PercentChart.js +9 -0
  22. package/.internal/charts/percent/PercentChart.js.map +1 -1
  23. package/.internal/charts/percent/PercentSeries.d.ts +1 -1
  24. package/.internal/charts/percent/PercentSeries.d.ts.map +1 -1
  25. package/.internal/charts/percent/PercentSeries.js +6 -0
  26. package/.internal/charts/percent/PercentSeries.js.map +1 -1
  27. package/.internal/charts/pie/PieChart.d.ts.map +1 -1
  28. package/.internal/charts/pie/PieChart.js +5 -0
  29. package/.internal/charts/pie/PieChart.js.map +1 -1
  30. package/.internal/charts/pie/PieSeries.d.ts +2 -0
  31. package/.internal/charts/pie/PieSeries.d.ts.map +1 -1
  32. package/.internal/charts/pie/PieSeries.js +26 -2
  33. package/.internal/charts/pie/PieSeries.js.map +1 -1
  34. package/.internal/charts/stock/StockChart.d.ts +1 -0
  35. package/.internal/charts/stock/StockChart.d.ts.map +1 -1
  36. package/.internal/charts/stock/StockChart.js +34 -25
  37. package/.internal/charts/stock/StockChart.js.map +1 -1
  38. package/.internal/charts/stock/drawing/AverageSeries.d.ts +3 -1
  39. package/.internal/charts/stock/drawing/AverageSeries.d.ts.map +1 -1
  40. package/.internal/charts/stock/drawing/AverageSeries.js.map +1 -1
  41. package/.internal/charts/stock/drawing/CalloutSeries.d.ts +6 -2
  42. package/.internal/charts/stock/drawing/CalloutSeries.d.ts.map +1 -1
  43. package/.internal/charts/stock/drawing/CalloutSeries.js.map +1 -1
  44. package/.internal/charts/stock/drawing/HorizontalLineSeries.d.ts.map +1 -1
  45. package/.internal/charts/stock/drawing/HorizontalLineSeries.js.map +1 -1
  46. package/.internal/charts/stock/drawing/HorizontalRaySeries.d.ts +3 -1
  47. package/.internal/charts/stock/drawing/HorizontalRaySeries.d.ts.map +1 -1
  48. package/.internal/charts/stock/drawing/HorizontalRaySeries.js.map +1 -1
  49. package/.internal/charts/stock/drawing/LabelSeries.d.ts +3 -3
  50. package/.internal/charts/stock/drawing/LabelSeries.d.ts.map +1 -1
  51. package/.internal/charts/stock/drawing/LabelSeries.js.map +1 -1
  52. package/.internal/charts/stock/drawing/QuadrantLineSeries.d.ts +3 -1
  53. package/.internal/charts/stock/drawing/QuadrantLineSeries.d.ts.map +1 -1
  54. package/.internal/charts/stock/drawing/QuadrantLineSeries.js.map +1 -1
  55. package/.internal/charts/stock/drawing/RegressionSeries.d.ts +3 -1
  56. package/.internal/charts/stock/drawing/RegressionSeries.d.ts.map +1 -1
  57. package/.internal/charts/stock/drawing/RegressionSeries.js.map +1 -1
  58. package/.internal/charts/stock/drawing/SimpleLineSeries.d.ts +3 -1
  59. package/.internal/charts/stock/drawing/SimpleLineSeries.d.ts.map +1 -1
  60. package/.internal/charts/stock/drawing/SimpleLineSeries.js.map +1 -1
  61. package/.internal/charts/stock/drawing/SpriteResizer.d.ts +4 -2
  62. package/.internal/charts/stock/drawing/SpriteResizer.d.ts.map +1 -1
  63. package/.internal/charts/stock/drawing/SpriteResizer.js.map +1 -1
  64. package/.internal/charts/stock/drawing/TrendLineSeries.d.ts +3 -1
  65. package/.internal/charts/stock/drawing/TrendLineSeries.d.ts.map +1 -1
  66. package/.internal/charts/stock/drawing/TrendLineSeries.js.map +1 -1
  67. package/.internal/charts/stock/drawing/VerticalLineSeries.d.ts.map +1 -1
  68. package/.internal/charts/stock/drawing/VerticalLineSeries.js.map +1 -1
  69. package/.internal/charts/stock/indicators/AccumulativeSwingIndex.d.ts +6 -6
  70. package/.internal/charts/stock/indicators/AccumulativeSwingIndex.d.ts.map +1 -1
  71. package/.internal/charts/stock/indicators/AccumulativeSwingIndex.js +1 -1
  72. package/.internal/charts/stock/indicators/AccumulativeSwingIndex.js.map +1 -1
  73. package/.internal/charts/stock/indicators/Aroon.d.ts +2 -2
  74. package/.internal/charts/stock/indicators/Aroon.js.map +1 -1
  75. package/.internal/charts/stock/indicators/AwesomeOscillator.d.ts +2 -2
  76. package/.internal/charts/stock/indicators/AwesomeOscillator.d.ts.map +1 -1
  77. package/.internal/charts/stock/indicators/AwesomeOscillator.js.map +1 -1
  78. package/.internal/charts/stock/indicators/BollingerBands.d.ts +3 -3
  79. package/.internal/charts/stock/indicators/BollingerBands.js.map +1 -1
  80. package/.internal/charts/stock/indicators/CommodityChannelIndex.d.ts +4 -4
  81. package/.internal/charts/stock/indicators/CommodityChannelIndex.js.map +1 -1
  82. package/.internal/charts/stock/indicators/Indicator.d.ts +17 -12
  83. package/.internal/charts/stock/indicators/Indicator.d.ts.map +1 -1
  84. package/.internal/charts/stock/indicators/Indicator.js.map +1 -1
  85. package/.internal/charts/stock/indicators/MACD.d.ts +6 -6
  86. package/.internal/charts/stock/indicators/MACD.d.ts.map +1 -1
  87. package/.internal/charts/stock/indicators/MACD.js.map +1 -1
  88. package/.internal/charts/stock/indicators/MovingAverageDeviation.d.ts +2 -2
  89. package/.internal/charts/stock/indicators/MovingAverageDeviation.js.map +1 -1
  90. package/.internal/charts/stock/indicators/MovingAverageEnvelope.d.ts +2 -2
  91. package/.internal/charts/stock/indicators/MovingAverageEnvelope.js.map +1 -1
  92. package/.internal/charts/stock/indicators/RelativeStrengthIndex.d.ts +4 -4
  93. package/.internal/charts/stock/indicators/RelativeStrengthIndex.js.map +1 -1
  94. package/.internal/charts/stock/indicators/StochasticOscillator.d.ts +3 -3
  95. package/.internal/charts/stock/indicators/StochasticOscillator.d.ts.map +1 -1
  96. package/.internal/charts/stock/indicators/StochasticOscillator.js.map +1 -1
  97. package/.internal/charts/stock/indicators/Volume.d.ts +2 -2
  98. package/.internal/charts/stock/indicators/Volume.d.ts.map +1 -1
  99. package/.internal/charts/stock/indicators/Volume.js.map +1 -1
  100. package/.internal/charts/stock/indicators/WilliamsR.d.ts +4 -4
  101. package/.internal/charts/stock/indicators/WilliamsR.js.map +1 -1
  102. package/.internal/charts/stock/toolbar/DateRangeSelector.d.ts.map +1 -1
  103. package/.internal/charts/stock/toolbar/DateRangeSelector.js +7 -5
  104. package/.internal/charts/stock/toolbar/DateRangeSelector.js.map +1 -1
  105. package/.internal/charts/stock/toolbar/StockToolbarCSS.d.ts.map +1 -1
  106. package/.internal/charts/stock/toolbar/StockToolbarCSS.js +7 -2
  107. package/.internal/charts/stock/toolbar/StockToolbarCSS.js.map +1 -1
  108. package/.internal/charts/xy/XYChart.d.ts +17 -3
  109. package/.internal/charts/xy/XYChart.d.ts.map +1 -1
  110. package/.internal/charts/xy/XYChart.js +25 -2
  111. package/.internal/charts/xy/XYChart.js.map +1 -1
  112. package/.internal/charts/xy/axes/Axis.d.ts +5 -0
  113. package/.internal/charts/xy/axes/Axis.d.ts.map +1 -1
  114. package/.internal/charts/xy/axes/Axis.js +1 -0
  115. package/.internal/charts/xy/axes/Axis.js.map +1 -1
  116. package/.internal/charts/xy/axes/DateAxis.d.ts +1 -1
  117. package/.internal/charts/xy/axes/DateAxis.js +2 -2
  118. package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
  119. package/.internal/charts/xy/series/LineSeries.d.ts +16 -2
  120. package/.internal/charts/xy/series/LineSeries.d.ts.map +1 -1
  121. package/.internal/charts/xy/series/LineSeries.js +29 -4
  122. package/.internal/charts/xy/series/LineSeries.js.map +1 -1
  123. package/.internal/core/Root.d.ts +18 -1
  124. package/.internal/core/Root.d.ts.map +1 -1
  125. package/.internal/core/Root.js +187 -27
  126. package/.internal/core/Root.js.map +1 -1
  127. package/.internal/core/render/Container.d.ts.map +1 -1
  128. package/.internal/core/render/Container.js +9 -1
  129. package/.internal/core/render/Container.js.map +1 -1
  130. package/.internal/core/render/Label.d.ts +2 -2
  131. package/.internal/core/render/Label.d.ts.map +1 -1
  132. package/.internal/core/render/Label.js.map +1 -1
  133. package/.internal/core/render/Scrollbar.d.ts +2 -2
  134. package/.internal/core/render/Scrollbar.d.ts.map +1 -1
  135. package/.internal/core/render/Scrollbar.js +5 -2
  136. package/.internal/core/render/Scrollbar.js.map +1 -1
  137. package/.internal/core/render/Series.d.ts.map +1 -1
  138. package/.internal/core/render/Series.js +3 -0
  139. package/.internal/core/render/Series.js.map +1 -1
  140. package/.internal/core/render/Sprite.d.ts +11 -1
  141. package/.internal/core/render/Sprite.d.ts.map +1 -1
  142. package/.internal/core/render/Sprite.js +25 -15
  143. package/.internal/core/render/Sprite.js.map +1 -1
  144. package/.internal/core/render/Text.d.ts +1 -1
  145. package/.internal/core/render/Text.d.ts.map +1 -1
  146. package/.internal/core/render/Text.js.map +1 -1
  147. package/.internal/core/render/backend/CanvasRenderer.d.ts +3 -1
  148. package/.internal/core/render/backend/CanvasRenderer.d.ts.map +1 -1
  149. package/.internal/core/render/backend/CanvasRenderer.js +82 -17
  150. package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
  151. package/.internal/core/render/backend/Renderer.d.ts +2 -1
  152. package/.internal/core/render/backend/Renderer.d.ts.map +1 -1
  153. package/.internal/core/render/backend/Renderer.js.map +1 -1
  154. package/.internal/core/util/EventDispatcher.d.ts +1 -1
  155. package/.internal/core/util/EventDispatcher.d.ts.map +1 -1
  156. package/.internal/core/util/EventDispatcher.js.map +1 -1
  157. package/.internal/core/util/TextFormatter.js +2 -2
  158. package/.internal/core/util/TextFormatter.js.map +1 -1
  159. package/.internal/core/util/Utils.d.ts +9 -0
  160. package/.internal/core/util/Utils.d.ts.map +1 -1
  161. package/.internal/core/util/Utils.js +10 -0
  162. package/.internal/core/util/Utils.js.map +1 -1
  163. package/.internal/plugins/exporting/Exporting.d.ts.map +1 -1
  164. package/.internal/plugins/exporting/Exporting.js +26 -15
  165. package/.internal/plugins/exporting/Exporting.js.map +1 -1
  166. package/CHANGELOG.md +51 -2
  167. package/examples/javascript/flow-chord/package.json +1 -1
  168. package/examples/javascript/flow-chord-directed/package.json +1 -1
  169. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  170. package/examples/javascript/flow-sankey/package.json +1 -1
  171. package/examples/javascript/gauge/package.json +1 -1
  172. package/examples/javascript/gauge-bands/package.json +1 -1
  173. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  174. package/examples/javascript/hierarchy-pack/package.json +1 -1
  175. package/examples/javascript/hierarchy-partition/package.json +1 -1
  176. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  177. package/examples/javascript/hierarchy-tree/package.json +1 -1
  178. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  179. package/examples/javascript/json/package.json +1 -1
  180. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  181. package/examples/javascript/map-day-and-night/package.json +1 -1
  182. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  183. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  184. package/examples/javascript/map-with-bubbles/package.json +1 -1
  185. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  186. package/examples/javascript/misc-40-charts/package.json +1 -1
  187. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  188. package/examples/javascript/pie-chart/package.json +1 -1
  189. package/examples/javascript/pie-donut-chart/package.json +1 -1
  190. package/examples/javascript/pie-variable-radius/package.json +1 -1
  191. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  192. package/examples/javascript/radar-heat-map/package.json +1 -1
  193. package/examples/javascript/radar-line/package.json +1 -1
  194. package/examples/javascript/radar-time-line/package.json +1 -1
  195. package/examples/javascript/sliced-funnel/package.json +1 -1
  196. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  197. package/examples/javascript/sliced-pyramid/package.json +1 -1
  198. package/examples/javascript/stock-chart/package.json +1 -1
  199. package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
  200. package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
  201. package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
  202. package/examples/javascript/stock-chart-intraday/package.json +1 -1
  203. package/examples/javascript/stock-chart-live/package.json +1 -1
  204. package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
  205. package/examples/javascript/venn-diagram/package.json +1 -1
  206. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  207. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  208. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  209. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  210. package/examples/javascript/xy-bubble/package.json +1 -1
  211. package/examples/javascript/xy-candlestick/package.json +1 -1
  212. package/examples/javascript/xy-clustered-column/package.json +1 -1
  213. package/examples/javascript/xy-column/package.json +1 -1
  214. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  215. package/examples/javascript/xy-data-grouping/package.json +1 -1
  216. package/examples/javascript/xy-draggable-range/package.json +1 -1
  217. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  218. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  219. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  220. package/examples/javascript/xy-line/package.json +1 -1
  221. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  222. package/examples/javascript/xy-live-data/package.json +1 -1
  223. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  224. package/examples/javascript/xy-ohlc/package.json +1 -1
  225. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  226. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  227. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  228. package/examples/javascript/xy-stacked-column/package.json +1 -1
  229. package/examples/javascript/xy-stacked-step/package.json +1 -1
  230. package/examples/javascript/xy-stock/package.json +1 -1
  231. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  232. package/examples/typescript/flow-chord/package.json +1 -1
  233. package/examples/typescript/flow-chord-directed/package.json +1 -1
  234. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  235. package/examples/typescript/flow-sankey/package.json +1 -1
  236. package/examples/typescript/gauge/package.json +1 -1
  237. package/examples/typescript/gauge-bands/package.json +1 -1
  238. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  239. package/examples/typescript/hierarchy-pack/package.json +1 -1
  240. package/examples/typescript/hierarchy-partition/package.json +1 -1
  241. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  242. package/examples/typescript/hierarchy-tree/package.json +1 -1
  243. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  244. package/examples/typescript/json/package.json +1 -1
  245. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  246. package/examples/typescript/map-day-and-night/package.json +1 -1
  247. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  248. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  249. package/examples/typescript/map-with-bubbles/package.json +1 -1
  250. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  251. package/examples/typescript/misc-40-charts/package.json +1 -1
  252. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  253. package/examples/typescript/pie-chart/package.json +1 -1
  254. package/examples/typescript/pie-donut-chart/package.json +1 -1
  255. package/examples/typescript/pie-variable-radius/package.json +1 -1
  256. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  257. package/examples/typescript/radar-heat-map/package.json +1 -1
  258. package/examples/typescript/radar-line/package.json +1 -1
  259. package/examples/typescript/radar-time-line/package.json +1 -1
  260. package/examples/typescript/sliced-funnel/package.json +1 -1
  261. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  262. package/examples/typescript/sliced-pyramid/package.json +1 -1
  263. package/examples/typescript/stock-chart/package.json +1 -1
  264. package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
  265. package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
  266. package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
  267. package/examples/typescript/stock-chart-intraday/package.json +1 -1
  268. package/examples/typescript/stock-chart-live/package.json +1 -1
  269. package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
  270. package/examples/typescript/venn-diagram/package.json +1 -1
  271. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  272. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  273. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  274. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  275. package/examples/typescript/xy-bubble/package.json +1 -1
  276. package/examples/typescript/xy-candlestick/package.json +1 -1
  277. package/examples/typescript/xy-clustered-column/package.json +1 -1
  278. package/examples/typescript/xy-column/package.json +1 -1
  279. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  280. package/examples/typescript/xy-data-grouping/package.json +1 -1
  281. package/examples/typescript/xy-draggable-range/package.json +1 -1
  282. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  283. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  284. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  285. package/examples/typescript/xy-line/package.json +1 -1
  286. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  287. package/examples/typescript/xy-live-data/package.json +1 -1
  288. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  289. package/examples/typescript/xy-ohlc/package.json +1 -1
  290. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  291. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  292. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  293. package/examples/typescript/xy-stacked-column/package.json +1 -1
  294. package/examples/typescript/xy-stacked-step/package.json +1 -1
  295. package/examples/typescript/xy-stock/package.json +1 -1
  296. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  297. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
1
  import { Container } from "./render/Container";
2
+ import { Text } from "./render/Text";
2
3
  import { HorizontalLayout } from "./render/HorizontalLayout";
3
4
  import { VerticalLayout } from "./render/VerticalLayout";
4
5
  import { GridLayout } from "./render/GridLayout";
@@ -23,6 +24,7 @@ import * as $order from "./util/Order";
23
24
  import * as $array from "./util/Array";
24
25
  import * as $object from "./util/Object";
25
26
  import * as $utils from "./util/Utils";
27
+ import * as $type from "./util/Type";
26
28
  import en from "../../locales/en";
27
29
  function rAF(fps, callback) {
28
30
  if (fps == null) {
@@ -300,6 +302,12 @@ var Root = /** @class */ (function () {
300
302
  writable: true,
301
303
  value: void 0
302
304
  });
305
+ Object.defineProperty(this, "_isShift", {
306
+ enumerable: true,
307
+ configurable: true,
308
+ writable: true,
309
+ value: void 0
310
+ });
303
311
  Object.defineProperty(this, "_keyboardDragPoint", {
304
312
  enumerable: true,
305
313
  configurable: true,
@@ -393,6 +401,12 @@ var Root = /** @class */ (function () {
393
401
  writable: true,
394
402
  value: true
395
403
  });
404
+ Object.defineProperty(this, "_fontHash", {
405
+ enumerable: true,
406
+ configurable: true,
407
+ writable: true,
408
+ value: ""
409
+ });
396
410
  Object.defineProperty(this, "_isDisposed", {
397
411
  enumerable: true,
398
412
  configurable: true,
@@ -450,6 +464,7 @@ var Root = /** @class */ (function () {
450
464
  inner.style.height = "100%";
451
465
  dom.appendChild(inner);
452
466
  this._inner = inner;
467
+ this._updateComputedStyles();
453
468
  registry.rootElements.push(this);
454
469
  }
455
470
  Object.defineProperty(Root, "new", {
@@ -611,6 +626,16 @@ var Root = /** @class */ (function () {
611
626
  // Add keyboard events for accessibility, e.g. simulating drag with arrow
612
627
  // keys and click with ENTER
613
628
  if ($utils.supports("keyboardevents")) {
629
+ this._disposers.push($utils.addEventListener(window, "keydown", function (ev) {
630
+ if (ev.keyCode == 16) {
631
+ _this._isShift = true;
632
+ }
633
+ }));
634
+ this._disposers.push($utils.addEventListener(window, "keyup", function (ev) {
635
+ if (ev.keyCode == 16) {
636
+ _this._isShift = false;
637
+ }
638
+ }));
614
639
  this._disposers.push($utils.addEventListener(focusElementContainer, "keydown", function (ev) {
615
640
  var focusedSprite = _this._focusedSprite;
616
641
  if (focusedSprite) {
@@ -904,6 +929,35 @@ var Root = /** @class */ (function () {
904
929
  });
905
930
  }
906
931
  });
932
+ Object.defineProperty(Root.prototype, "_renderFrame", {
933
+ enumerable: false,
934
+ configurable: true,
935
+ writable: true,
936
+ value: function (currentTime) {
937
+ if (this.events.isEnabled("framestarted")) {
938
+ this.events.dispatch("framestarted", {
939
+ type: "framestarted",
940
+ target: this,
941
+ timestamp: currentTime,
942
+ });
943
+ }
944
+ this._checkComputedStyles();
945
+ this._runTickers(currentTime);
946
+ this._runAnimations(currentTime);
947
+ this._runDirties();
948
+ this._render();
949
+ if (this.events.isEnabled("frameended")) {
950
+ this.events.dispatch("frameended", {
951
+ type: "frameended",
952
+ target: this,
953
+ timestamp: currentTime,
954
+ });
955
+ }
956
+ return this._tickers.length === 0 &&
957
+ this._animations.length === 0 &&
958
+ !this._isDirty;
959
+ }
960
+ });
907
961
  Object.defineProperty(Root.prototype, "_runTicker", {
908
962
  enumerable: false,
909
963
  configurable: true,
@@ -911,28 +965,9 @@ var Root = /** @class */ (function () {
911
965
  value: function (currentTime) {
912
966
  if (!this.isDisposed()) {
913
967
  this.animationTime = currentTime;
914
- if (this.events.isEnabled("framestarted")) {
915
- this.events.dispatch("framestarted", {
916
- type: "framestarted",
917
- target: this,
918
- timestamp: currentTime,
919
- });
920
- }
921
- this._runTickers(currentTime);
922
- this._runAnimations(currentTime);
923
- this._runDirties();
924
- this._render();
925
- if (this.events.isEnabled("frameended")) {
926
- this.events.dispatch("frameended", {
927
- type: "frameended",
928
- target: this,
929
- timestamp: currentTime,
930
- });
931
- }
968
+ var done = this._renderFrame(currentTime);
932
969
  // No more work to do
933
- if (this._tickers.length === 0 &&
934
- this._animations.length === 0 &&
935
- !this._isDirty) {
970
+ if (done) {
936
971
  this._ticker = null;
937
972
  this.animationTime = null;
938
973
  }
@@ -942,6 +977,24 @@ var Root = /** @class */ (function () {
942
977
  }
943
978
  }
944
979
  });
980
+ Object.defineProperty(Root.prototype, "_runTickerNow", {
981
+ enumerable: false,
982
+ configurable: true,
983
+ writable: true,
984
+ value: function () {
985
+ if (!this.isDisposed()) {
986
+ for (;;) {
987
+ var currentTime = performance.now();
988
+ this.animationTime = currentTime;
989
+ var done = this._renderFrame(currentTime);
990
+ if (done) {
991
+ this.animationTime = null;
992
+ break;
993
+ }
994
+ }
995
+ }
996
+ }
997
+ });
945
998
  Object.defineProperty(Root.prototype, "_startTicker", {
946
999
  enumerable: false,
947
1000
  configurable: true,
@@ -1380,13 +1433,24 @@ var Root = /** @class */ (function () {
1380
1433
  configurable: true,
1381
1434
  writable: true,
1382
1435
  value: function (target) {
1383
- // Init
1384
- var container = this._focusElementContainer;
1436
+ $array.remove(this._tabindexes, target);
1385
1437
  var focusElement = target.getPrivate("focusElement");
1386
- container.removeChild(focusElement.dom);
1387
- $array.each(focusElement.disposers, function (x) {
1388
- x.dispose();
1389
- });
1438
+ if (focusElement) {
1439
+ var container = this._focusElementContainer;
1440
+ container.removeChild(focusElement.dom);
1441
+ $array.each(focusElement.disposers, function (x) {
1442
+ x.dispose();
1443
+ });
1444
+ }
1445
+ }
1446
+ });
1447
+ Object.defineProperty(Root.prototype, "_hideFocusElement", {
1448
+ enumerable: false,
1449
+ configurable: true,
1450
+ writable: true,
1451
+ value: function (target) {
1452
+ var focusElement = target.getPrivate("focusElement");
1453
+ focusElement.dom.style.display = "none";
1390
1454
  }
1391
1455
  });
1392
1456
  Object.defineProperty(Root.prototype, "_moveFocusElement", {
@@ -1432,6 +1496,11 @@ var Root = /** @class */ (function () {
1432
1496
  value: function (ev, index) {
1433
1497
  // Get element
1434
1498
  var focused = this._tabindexes[index];
1499
+ // Jump over hidden elements
1500
+ if (!focused.isVisibleDeep()) {
1501
+ this._focusNext(ev.target, this._isShift ? -1 : 1);
1502
+ return;
1503
+ }
1435
1504
  // Size and position
1436
1505
  this._positionFocusElement(focused);
1437
1506
  //this._decorateFocusElement(focused);
@@ -1445,6 +1514,36 @@ var Root = /** @class */ (function () {
1445
1514
  }
1446
1515
  }
1447
1516
  });
1517
+ Object.defineProperty(Root.prototype, "_focusNext", {
1518
+ enumerable: false,
1519
+ configurable: true,
1520
+ writable: true,
1521
+ value: function (el, direction) {
1522
+ var focusableElements = Array.from(document.querySelectorAll([
1523
+ 'a[href]',
1524
+ 'area[href]',
1525
+ 'button:not([disabled])',
1526
+ 'details',
1527
+ 'input:not([disabled])',
1528
+ 'iframe:not([disabled])',
1529
+ 'select:not([disabled])',
1530
+ 'textarea:not([disabled])',
1531
+ '[contentEditable=""]',
1532
+ '[contentEditable="true"]',
1533
+ '[contentEditable="TRUE"]',
1534
+ '[tabindex]:not([tabindex^="-"])',
1535
+ //':not([disabled])'
1536
+ ].join(',')));
1537
+ var index = focusableElements.indexOf(el) + direction;
1538
+ if (index < 0) {
1539
+ index = focusableElements.length - 1;
1540
+ }
1541
+ else if (index >= focusableElements.length) {
1542
+ index = 0;
1543
+ }
1544
+ focusableElements[index].focus();
1545
+ }
1546
+ });
1448
1547
  Object.defineProperty(Root.prototype, "_handleBlur", {
1449
1548
  enumerable: false,
1450
1549
  configurable: true,
@@ -1585,6 +1684,51 @@ var Root = /** @class */ (function () {
1585
1684
  return disposer;
1586
1685
  }
1587
1686
  });
1687
+ Object.defineProperty(Root.prototype, "_updateComputedStyles", {
1688
+ enumerable: false,
1689
+ configurable: true,
1690
+ writable: true,
1691
+ value: function () {
1692
+ var styles = window.getComputedStyle(this.dom);
1693
+ var fontHash = "";
1694
+ $object.each(styles, function (key, val) {
1695
+ if ($type.isString(key) && key.match(/^font/)) {
1696
+ fontHash += val;
1697
+ }
1698
+ });
1699
+ var changed = fontHash != this._fontHash;
1700
+ if (changed) {
1701
+ this._fontHash = fontHash;
1702
+ }
1703
+ return changed;
1704
+ }
1705
+ });
1706
+ Object.defineProperty(Root.prototype, "_checkComputedStyles", {
1707
+ enumerable: false,
1708
+ configurable: true,
1709
+ writable: true,
1710
+ value: function () {
1711
+ if (this._updateComputedStyles()) {
1712
+ this._invalidateLabelBounds(this.container);
1713
+ }
1714
+ }
1715
+ });
1716
+ Object.defineProperty(Root.prototype, "_invalidateLabelBounds", {
1717
+ enumerable: false,
1718
+ configurable: true,
1719
+ writable: true,
1720
+ value: function (target) {
1721
+ var _this = this;
1722
+ if (target instanceof Container) {
1723
+ target.children.each(function (child) {
1724
+ _this._invalidateLabelBounds(child);
1725
+ });
1726
+ }
1727
+ else if (target instanceof Text) {
1728
+ target.markDirtyBounds();
1729
+ }
1730
+ }
1731
+ });
1588
1732
  /**
1589
1733
  * To all the clever heads out there. Yes, we did not make any attempts to
1590
1734
  * scramble this.
@@ -1621,6 +1765,22 @@ var Root = /** @class */ (function () {
1621
1765
  }
1622
1766
  }
1623
1767
  });
1768
+ Object.defineProperty(Root.prototype, "debugGhostView", {
1769
+ /**
1770
+ * @ignore
1771
+ */
1772
+ get: function () {
1773
+ return this._renderer.debugGhostView;
1774
+ },
1775
+ /**
1776
+ * @ignore
1777
+ */
1778
+ set: function (value) {
1779
+ this._renderer.debugGhostView = value;
1780
+ },
1781
+ enumerable: false,
1782
+ configurable: true
1783
+ });
1624
1784
  return Root;
1625
1785
  }());
1626
1786
  export { Root };