@amcharts/amcharts5 5.2.49 → 5.3.0
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.
- package/.internal/charts/flow/Chord.js +151 -199
- package/.internal/charts/flow/Chord.js.map +1 -1
- package/.internal/charts/flow/ChordDirected.js +46 -66
- package/.internal/charts/flow/ChordDirected.js.map +1 -1
- package/.internal/charts/flow/ChordLink.js +32 -42
- package/.internal/charts/flow/ChordLink.js.map +1 -1
- package/.internal/charts/flow/ChordLinkDirected.js +17 -29
- package/.internal/charts/flow/ChordLinkDirected.js.map +1 -1
- package/.internal/charts/flow/ChordNodes.js +70 -86
- package/.internal/charts/flow/ChordNodes.js.map +1 -1
- package/.internal/charts/flow/ChordNonRibbon.js +63 -91
- package/.internal/charts/flow/ChordNonRibbon.js.map +1 -1
- package/.internal/charts/flow/Flow.js +289 -356
- package/.internal/charts/flow/Flow.js.map +1 -1
- package/.internal/charts/flow/FlowDefaultTheme.js +187 -199
- package/.internal/charts/flow/FlowDefaultTheme.js.map +1 -1
- package/.internal/charts/flow/FlowLink.js +34 -49
- package/.internal/charts/flow/FlowLink.js.map +1 -1
- package/.internal/charts/flow/FlowNode.js +17 -22
- package/.internal/charts/flow/FlowNode.js.map +1 -1
- package/.internal/charts/flow/FlowNodes.js +141 -202
- package/.internal/charts/flow/FlowNodes.js.map +1 -1
- package/.internal/charts/flow/Sankey.js +165 -203
- package/.internal/charts/flow/Sankey.js.map +1 -1
- package/.internal/charts/flow/SankeyLink.js +207 -229
- package/.internal/charts/flow/SankeyLink.js.map +1 -1
- package/.internal/charts/flow/SankeyNodes.js +70 -90
- package/.internal/charts/flow/SankeyNodes.js.map +1 -1
- package/.internal/charts/funnel/FunnelSeries.js +353 -447
- package/.internal/charts/funnel/FunnelSeries.js.map +1 -1
- package/.internal/charts/funnel/FunnelSlice.js +96 -117
- package/.internal/charts/funnel/FunnelSlice.js.map +1 -1
- package/.internal/charts/funnel/PictorialStackedSeries.js +59 -79
- package/.internal/charts/funnel/PictorialStackedSeries.js.map +1 -1
- package/.internal/charts/funnel/PyramidSeries.js +106 -122
- package/.internal/charts/funnel/PyramidSeries.js.map +1 -1
- package/.internal/charts/funnel/SlicedChart.js +17 -29
- package/.internal/charts/funnel/SlicedChart.js.map +1 -1
- package/.internal/charts/hierarchy/BreadcrumbBar.js +69 -96
- package/.internal/charts/hierarchy/BreadcrumbBar.js.map +1 -1
- package/.internal/charts/hierarchy/ForceDirected.js +255 -370
- package/.internal/charts/hierarchy/ForceDirected.js.map +1 -1
- package/.internal/charts/hierarchy/Hierarchy.js +476 -640
- package/.internal/charts/hierarchy/Hierarchy.js.map +1 -1
- package/.internal/charts/hierarchy/HierarchyDefaultTheme.js +337 -349
- package/.internal/charts/hierarchy/HierarchyDefaultTheme.js.map +1 -1
- package/.internal/charts/hierarchy/HierarchyLink.js +43 -61
- package/.internal/charts/hierarchy/HierarchyLink.js.map +1 -1
- package/.internal/charts/hierarchy/HierarchyNode.js +57 -74
- package/.internal/charts/hierarchy/HierarchyNode.js.map +1 -1
- package/.internal/charts/hierarchy/LinkedHierarchy.js +229 -323
- package/.internal/charts/hierarchy/LinkedHierarchy.js.map +1 -1
- package/.internal/charts/hierarchy/LinkedHierarchyNode.js +48 -80
- package/.internal/charts/hierarchy/LinkedHierarchyNode.js.map +1 -1
- package/.internal/charts/hierarchy/Pack.js +105 -147
- package/.internal/charts/hierarchy/Pack.js.map +1 -1
- package/.internal/charts/hierarchy/Partition.js +183 -230
- package/.internal/charts/hierarchy/Partition.js.map +1 -1
- package/.internal/charts/hierarchy/Sunburst.js +259 -323
- package/.internal/charts/hierarchy/Sunburst.js.map +1 -1
- package/.internal/charts/hierarchy/Tree.js +49 -69
- package/.internal/charts/hierarchy/Tree.js.map +1 -1
- package/.internal/charts/hierarchy/Treemap.js +168 -209
- package/.internal/charts/hierarchy/Treemap.js.map +1 -1
- package/.internal/charts/map/GraticuleSeries.js +49 -70
- package/.internal/charts/map/GraticuleSeries.js.map +1 -1
- package/.internal/charts/map/MapChart.js +587 -751
- package/.internal/charts/map/MapChart.js.map +1 -1
- package/.internal/charts/map/MapChartDefaultTheme.js +98 -110
- package/.internal/charts/map/MapChartDefaultTheme.js.map +1 -1
- package/.internal/charts/map/MapLine.js +165 -196
- package/.internal/charts/map/MapLine.js.map +1 -1
- package/.internal/charts/map/MapLineSeries.js +130 -197
- package/.internal/charts/map/MapLineSeries.js.map +1 -1
- package/.internal/charts/map/MapPointSeries.d.ts +7 -2
- package/.internal/charts/map/MapPointSeries.d.ts.map +1 -1
- package/.internal/charts/map/MapPointSeries.js +265 -342
- package/.internal/charts/map/MapPointSeries.js.map +1 -1
- package/.internal/charts/map/MapPolygon.js +86 -122
- package/.internal/charts/map/MapPolygon.js.map +1 -1
- package/.internal/charts/map/MapPolygonSeries.d.ts +6 -1
- package/.internal/charts/map/MapPolygonSeries.d.ts.map +1 -1
- package/.internal/charts/map/MapPolygonSeries.js +110 -170
- package/.internal/charts/map/MapPolygonSeries.js.map +1 -1
- package/.internal/charts/map/MapSeries.d.ts +9 -3
- package/.internal/charts/map/MapSeries.d.ts.map +1 -1
- package/.internal/charts/map/MapSeries.js +212 -303
- package/.internal/charts/map/MapSeries.js.map +1 -1
- package/.internal/charts/map/MapUtils.js +19 -19
- package/.internal/charts/map/MapUtils.js.map +1 -1
- package/.internal/charts/map/ZoomControl.js +52 -67
- package/.internal/charts/map/ZoomControl.js.map +1 -1
- package/.internal/charts/percent/PercentChart.js +23 -40
- package/.internal/charts/percent/PercentChart.js.map +1 -1
- package/.internal/charts/percent/PercentDefaultTheme.js +196 -208
- package/.internal/charts/percent/PercentDefaultTheme.js.map +1 -1
- package/.internal/charts/percent/PercentSeries.js +378 -549
- package/.internal/charts/percent/PercentSeries.js.map +1 -1
- package/.internal/charts/pie/PieChart.js +85 -110
- package/.internal/charts/pie/PieChart.js.map +1 -1
- package/.internal/charts/pie/PieSeries.js +175 -232
- package/.internal/charts/pie/PieSeries.js.map +1 -1
- package/.internal/charts/radar/AxisRendererCircular.js +219 -307
- package/.internal/charts/radar/AxisRendererCircular.js.map +1 -1
- package/.internal/charts/radar/AxisRendererRadial.js +188 -276
- package/.internal/charts/radar/AxisRendererRadial.js.map +1 -1
- package/.internal/charts/radar/ClockHand.js +89 -104
- package/.internal/charts/radar/ClockHand.js.map +1 -1
- package/.internal/charts/radar/RadarChart.js +142 -201
- package/.internal/charts/radar/RadarChart.js.map +1 -1
- package/.internal/charts/radar/RadarColumnSeries.js +118 -170
- package/.internal/charts/radar/RadarColumnSeries.js.map +1 -1
- package/.internal/charts/radar/RadarCursor.js +147 -220
- package/.internal/charts/radar/RadarCursor.js.map +1 -1
- package/.internal/charts/radar/RadarDefaultTheme.js +85 -97
- package/.internal/charts/radar/RadarDefaultTheme.js.map +1 -1
- package/.internal/charts/radar/RadarLineSeries.js +71 -113
- package/.internal/charts/radar/RadarLineSeries.js.map +1 -1
- package/.internal/charts/radar/SmoothedRadarLineSeries.js +33 -55
- package/.internal/charts/radar/SmoothedRadarLineSeries.js.map +1 -1
- package/.internal/charts/stock/PanelControls.js +49 -60
- package/.internal/charts/stock/PanelControls.js.map +1 -1
- package/.internal/charts/stock/SettingsModal.js +321 -393
- package/.internal/charts/stock/SettingsModal.js.map +1 -1
- package/.internal/charts/stock/StockChart.d.ts.map +1 -1
- package/.internal/charts/stock/StockChart.js +466 -568
- package/.internal/charts/stock/StockChart.js.map +1 -1
- package/.internal/charts/stock/StockChartDefaultTheme.d.ts.map +1 -1
- package/.internal/charts/stock/StockChartDefaultTheme.js +1162 -1162
- package/.internal/charts/stock/StockChartDefaultTheme.js.map +1 -1
- package/.internal/charts/stock/StockLegend.js +65 -91
- package/.internal/charts/stock/StockLegend.js.map +1 -1
- package/.internal/charts/stock/StockPanel.js +87 -119
- package/.internal/charts/stock/StockPanel.js.map +1 -1
- package/.internal/charts/stock/drawing/AverageSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/AverageSeries.js +48 -60
- package/.internal/charts/stock/drawing/AverageSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/CalloutSeries.d.ts +7 -2
- package/.internal/charts/stock/drawing/CalloutSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/CalloutSeries.js +90 -95
- package/.internal/charts/stock/drawing/CalloutSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/DoodleSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/DoodleSeries.js +82 -122
- package/.internal/charts/stock/drawing/DoodleSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/DrawingSeries.d.ts +5 -3
- package/.internal/charts/stock/drawing/DrawingSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/DrawingSeries.js +519 -712
- package/.internal/charts/stock/drawing/DrawingSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/EllipseSeries.d.ts +3 -0
- package/.internal/charts/stock/drawing/EllipseSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/EllipseSeries.js +258 -307
- package/.internal/charts/stock/drawing/EllipseSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/FibonacciSeries.d.ts +2 -3
- package/.internal/charts/stock/drawing/FibonacciSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/FibonacciSeries.js +189 -250
- package/.internal/charts/stock/drawing/FibonacciSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/FibonacciTimezoneSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/FibonacciTimezoneSeries.js +108 -103
- package/.internal/charts/stock/drawing/FibonacciTimezoneSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/HorizontalLineSeries.d.ts +4 -2
- package/.internal/charts/stock/drawing/HorizontalLineSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/HorizontalLineSeries.js +64 -84
- package/.internal/charts/stock/drawing/HorizontalLineSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/HorizontalRaySeries.d.ts +2 -1
- package/.internal/charts/stock/drawing/HorizontalRaySeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/HorizontalRaySeries.js +57 -92
- package/.internal/charts/stock/drawing/HorizontalRaySeries.js.map +1 -1
- package/.internal/charts/stock/drawing/IconSeries.d.ts +2 -4
- package/.internal/charts/stock/drawing/IconSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/IconSeries.js +112 -112
- package/.internal/charts/stock/drawing/IconSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/LabelSeries.d.ts +5 -2
- package/.internal/charts/stock/drawing/LabelSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/LabelSeries.js +151 -172
- package/.internal/charts/stock/drawing/LabelSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/PolylineSeries.d.ts +1 -0
- package/.internal/charts/stock/drawing/PolylineSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/PolylineSeries.js +101 -122
- package/.internal/charts/stock/drawing/PolylineSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/QuadrantLineSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/QuadrantLineSeries.js +115 -149
- package/.internal/charts/stock/drawing/QuadrantLineSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/RectangleSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/RectangleSeries.js +117 -155
- package/.internal/charts/stock/drawing/RectangleSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/RegressionSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/RegressionSeries.js +64 -82
- package/.internal/charts/stock/drawing/RegressionSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/SimpleLineSeries.d.ts +6 -2
- package/.internal/charts/stock/drawing/SimpleLineSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/SimpleLineSeries.js +233 -303
- package/.internal/charts/stock/drawing/SimpleLineSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/TrendLineSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/TrendLineSeries.js +40 -57
- package/.internal/charts/stock/drawing/TrendLineSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/VerticalLineSeries.d.ts +3 -1
- package/.internal/charts/stock/drawing/VerticalLineSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/VerticalLineSeries.js +63 -79
- package/.internal/charts/stock/drawing/VerticalLineSeries.js.map +1 -1
- package/.internal/charts/stock/indicators/AccumulationDistribution.js +68 -88
- package/.internal/charts/stock/indicators/AccumulationDistribution.js.map +1 -1
- package/.internal/charts/stock/indicators/AccumulativeSwingIndex.js +107 -127
- package/.internal/charts/stock/indicators/AccumulativeSwingIndex.js.map +1 -1
- package/.internal/charts/stock/indicators/Aroon.js +85 -110
- package/.internal/charts/stock/indicators/Aroon.js.map +1 -1
- package/.internal/charts/stock/indicators/AwesomeOscillator.js +68 -88
- package/.internal/charts/stock/indicators/AwesomeOscillator.js.map +1 -1
- package/.internal/charts/stock/indicators/BollingerBands.js +109 -135
- package/.internal/charts/stock/indicators/BollingerBands.js.map +1 -1
- package/.internal/charts/stock/indicators/ChaikinMoneyFlow.js +77 -97
- package/.internal/charts/stock/indicators/ChaikinMoneyFlow.js.map +1 -1
- package/.internal/charts/stock/indicators/ChaikinOscillator.js +75 -95
- package/.internal/charts/stock/indicators/ChaikinOscillator.js.map +1 -1
- package/.internal/charts/stock/indicators/ChartIndicator.js +86 -102
- package/.internal/charts/stock/indicators/ChartIndicator.js.map +1 -1
- package/.internal/charts/stock/indicators/CommodityChannelIndex.js +136 -161
- package/.internal/charts/stock/indicators/CommodityChannelIndex.js.map +1 -1
- package/.internal/charts/stock/indicators/DisparityIndex.js +69 -89
- package/.internal/charts/stock/indicators/DisparityIndex.js.map +1 -1
- package/.internal/charts/stock/indicators/Indicator.d.ts +1 -2
- package/.internal/charts/stock/indicators/Indicator.d.ts.map +1 -1
- package/.internal/charts/stock/indicators/Indicator.js +286 -383
- package/.internal/charts/stock/indicators/Indicator.js.map +1 -1
- package/.internal/charts/stock/indicators/MACD.js +129 -159
- package/.internal/charts/stock/indicators/MACD.js.map +1 -1
- package/.internal/charts/stock/indicators/MedianPrice.js +56 -71
- package/.internal/charts/stock/indicators/MedianPrice.js.map +1 -1
- package/.internal/charts/stock/indicators/MovingAverage.js +95 -115
- package/.internal/charts/stock/indicators/MovingAverage.js.map +1 -1
- package/.internal/charts/stock/indicators/MovingAverageDeviation.js +93 -118
- package/.internal/charts/stock/indicators/MovingAverageDeviation.js.map +1 -1
- package/.internal/charts/stock/indicators/MovingAverageEnvelope.js +114 -144
- package/.internal/charts/stock/indicators/MovingAverageEnvelope.js.map +1 -1
- package/.internal/charts/stock/indicators/OnBalanceVolume.js +65 -85
- package/.internal/charts/stock/indicators/OnBalanceVolume.js.map +1 -1
- package/.internal/charts/stock/indicators/RelativeStrengthIndex.js +162 -187
- package/.internal/charts/stock/indicators/RelativeStrengthIndex.js.map +1 -1
- package/.internal/charts/stock/indicators/StandardDeviation.js +56 -72
- package/.internal/charts/stock/indicators/StandardDeviation.js.map +1 -1
- package/.internal/charts/stock/indicators/StochasticOscillator.js +142 -173
- package/.internal/charts/stock/indicators/StochasticOscillator.js.map +1 -1
- package/.internal/charts/stock/indicators/Trix.js +90 -120
- package/.internal/charts/stock/indicators/Trix.js.map +1 -1
- package/.internal/charts/stock/indicators/TypicalPrice.js +56 -71
- package/.internal/charts/stock/indicators/TypicalPrice.js.map +1 -1
- package/.internal/charts/stock/indicators/VWAP.js +78 -98
- package/.internal/charts/stock/indicators/VWAP.js.map +1 -1
- package/.internal/charts/stock/indicators/Volume.js +55 -75
- package/.internal/charts/stock/indicators/Volume.js.map +1 -1
- package/.internal/charts/stock/indicators/WilliamsR.js +138 -163
- package/.internal/charts/stock/indicators/WilliamsR.js.map +1 -1
- package/.internal/charts/stock/indicators/ZigZag.js +141 -161
- package/.internal/charts/stock/indicators/ZigZag.js.map +1 -1
- package/.internal/charts/stock/toolbar/ColorControl.js +78 -101
- package/.internal/charts/stock/toolbar/ColorControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/ComparisonControl.js +16 -28
- package/.internal/charts/stock/toolbar/ComparisonControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/DateRangeSelector.js +1157 -345
- package/.internal/charts/stock/toolbar/DateRangeSelector.js.map +1 -1
- package/.internal/charts/stock/toolbar/DrawingControl.d.ts +26 -0
- package/.internal/charts/stock/toolbar/DrawingControl.d.ts.map +1 -1
- package/.internal/charts/stock/toolbar/DrawingControl.js +754 -709
- package/.internal/charts/stock/toolbar/DrawingControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/DrawingToolControl.js +80 -119
- package/.internal/charts/stock/toolbar/DrawingToolControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/Dropdown.js +102 -150
- package/.internal/charts/stock/toolbar/Dropdown.js.map +1 -1
- package/.internal/charts/stock/toolbar/DropdownColors.js +92 -141
- package/.internal/charts/stock/toolbar/DropdownColors.js.map +1 -1
- package/.internal/charts/stock/toolbar/DropdownList.js +186 -249
- package/.internal/charts/stock/toolbar/DropdownList.js.map +1 -1
- package/.internal/charts/stock/toolbar/DropdownListControl.js +117 -150
- package/.internal/charts/stock/toolbar/DropdownListControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/IconControl.js +81 -120
- package/.internal/charts/stock/toolbar/IconControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/IndicatorControl.d.ts +23 -1
- package/.internal/charts/stock/toolbar/IndicatorControl.d.ts.map +1 -1
- package/.internal/charts/stock/toolbar/IndicatorControl.js +352 -297
- package/.internal/charts/stock/toolbar/IndicatorControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/IntervalControl.js +16 -28
- package/.internal/charts/stock/toolbar/IntervalControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/PeriodSelector.js +141 -189
- package/.internal/charts/stock/toolbar/PeriodSelector.js.map +1 -1
- package/.internal/charts/stock/toolbar/ResetControl.js +26 -44
- package/.internal/charts/stock/toolbar/ResetControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/SeriesTypeControl.js +14 -21
- package/.internal/charts/stock/toolbar/SeriesTypeControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/SettingsControl.js +97 -140
- package/.internal/charts/stock/toolbar/SettingsControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/StockControl.js +114 -177
- package/.internal/charts/stock/toolbar/StockControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/StockIcons.js +67 -81
- package/.internal/charts/stock/toolbar/StockIcons.js.map +1 -1
- package/.internal/charts/stock/toolbar/StockToolbar.js +63 -94
- package/.internal/charts/stock/toolbar/StockToolbar.js.map +1 -1
- package/.internal/charts/stock/toolbar/StockToolbarCSS.js +11 -11
- package/.internal/charts/stock/toolbar/StockToolbarCSS.js.map +1 -1
- package/.internal/charts/venn/Venn.js +276 -373
- package/.internal/charts/venn/Venn.js.map +1 -1
- package/.internal/charts/venn/VennDefaultTheme.js +18 -30
- package/.internal/charts/venn/VennDefaultTheme.js.map +1 -1
- package/.internal/charts/wordcloud/WordCloud.js +381 -452
- package/.internal/charts/wordcloud/WordCloud.js.map +1 -1
- package/.internal/charts/wordcloud/WordCloudDefaultTheme.js +35 -48
- package/.internal/charts/wordcloud/WordCloudDefaultTheme.js.map +1 -1
- package/.internal/charts/xy/XYChart.js +956 -1136
- package/.internal/charts/xy/XYChart.js.map +1 -1
- package/.internal/charts/xy/XYChartDefaultTheme.d.ts.map +1 -1
- package/.internal/charts/xy/XYChartDefaultTheme.js +597 -604
- package/.internal/charts/xy/XYChartDefaultTheme.js.map +1 -1
- package/.internal/charts/xy/XYChartScrollbar.js +78 -95
- package/.internal/charts/xy/XYChartScrollbar.js.map +1 -1
- package/.internal/charts/xy/XYCursor.d.ts.map +1 -1
- package/.internal/charts/xy/XYCursor.js +468 -608
- package/.internal/charts/xy/XYCursor.js.map +1 -1
- package/.internal/charts/xy/axes/Axis.d.ts +0 -2
- package/.internal/charts/xy/axes/Axis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/Axis.js +509 -726
- package/.internal/charts/xy/axes/Axis.js.map +1 -1
- package/.internal/charts/xy/axes/AxisBullet.js +30 -40
- package/.internal/charts/xy/axes/AxisBullet.js.map +1 -1
- package/.internal/charts/xy/axes/AxisLabel.js +17 -22
- package/.internal/charts/xy/axes/AxisLabel.js.map +1 -1
- package/.internal/charts/xy/axes/AxisLabelRadial.js +17 -22
- package/.internal/charts/xy/axes/AxisLabelRadial.js.map +1 -1
- package/.internal/charts/xy/axes/AxisRenderer.js +186 -302
- package/.internal/charts/xy/axes/AxisRenderer.js.map +1 -1
- package/.internal/charts/xy/axes/AxisRendererX.js +308 -400
- package/.internal/charts/xy/axes/AxisRendererX.js.map +1 -1
- package/.internal/charts/xy/axes/AxisRendererY.js +319 -421
- package/.internal/charts/xy/axes/AxisRendererY.js.map +1 -1
- package/.internal/charts/xy/axes/AxisTick.js +17 -22
- package/.internal/charts/xy/axes/AxisTick.js.map +1 -1
- package/.internal/charts/xy/axes/CategoryAxis.js +312 -454
- package/.internal/charts/xy/axes/CategoryAxis.js.map +1 -1
- package/.internal/charts/xy/axes/CategoryDateAxis.js +136 -167
- package/.internal/charts/xy/axes/CategoryDateAxis.js.map +1 -1
- package/.internal/charts/xy/axes/DateAxis.js +579 -758
- package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
- package/.internal/charts/xy/axes/DurationAxis.js +92 -128
- package/.internal/charts/xy/axes/DurationAxis.js.map +1 -1
- package/.internal/charts/xy/axes/GaplessDateAxis.js +207 -254
- package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
- package/.internal/charts/xy/axes/Grid.js +19 -31
- package/.internal/charts/xy/axes/Grid.js.map +1 -1
- package/.internal/charts/xy/axes/ValueAxis.js +848 -1041
- package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
- package/.internal/charts/xy/series/BaseColumnSeries.js +480 -576
- package/.internal/charts/xy/series/BaseColumnSeries.js.map +1 -1
- package/.internal/charts/xy/series/Candlestick.js +27 -44
- package/.internal/charts/xy/series/Candlestick.js.map +1 -1
- package/.internal/charts/xy/series/CandlestickSeries.js +114 -140
- package/.internal/charts/xy/series/CandlestickSeries.js.map +1 -1
- package/.internal/charts/xy/series/ColumnSeries.js +33 -49
- package/.internal/charts/xy/series/ColumnSeries.js.map +1 -1
- package/.internal/charts/xy/series/LineSeries.js +447 -548
- package/.internal/charts/xy/series/LineSeries.js.map +1 -1
- package/.internal/charts/xy/series/OHLC.js +36 -48
- package/.internal/charts/xy/series/OHLC.js.map +1 -1
- package/.internal/charts/xy/series/OHLCSeries.js +32 -48
- package/.internal/charts/xy/series/OHLCSeries.js.map +1 -1
- package/.internal/charts/xy/series/SmoothedXLineSeries.js +23 -40
- package/.internal/charts/xy/series/SmoothedXLineSeries.js.map +1 -1
- package/.internal/charts/xy/series/SmoothedXYLineSeries.js +23 -40
- package/.internal/charts/xy/series/SmoothedXYLineSeries.js.map +1 -1
- package/.internal/charts/xy/series/SmoothedYLineSeries.js +23 -40
- package/.internal/charts/xy/series/SmoothedYLineSeries.js.map +1 -1
- package/.internal/charts/xy/series/StepLineSeries.js +114 -131
- package/.internal/charts/xy/series/StepLineSeries.js.map +1 -1
- package/.internal/charts/xy/series/XYSeries.d.ts +1 -1
- package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
- package/.internal/charts/xy/series/XYSeries.js +939 -1222
- package/.internal/charts/xy/series/XYSeries.js.map +1 -1
- package/.internal/core/Classes.d.ts +11 -7
- package/.internal/core/Classes.d.ts.map +1 -1
- package/.internal/core/Classes.js.map +1 -1
- package/.internal/core/Registry.d.ts.map +1 -1
- package/.internal/core/Registry.js +6 -8
- package/.internal/core/Registry.js.map +1 -1
- package/.internal/core/Root.d.ts +20 -0
- package/.internal/core/Root.d.ts.map +1 -1
- package/.internal/core/Root.js +1006 -1241
- package/.internal/core/Root.js.map +1 -1
- package/.internal/core/Theme.js +38 -67
- package/.internal/core/Theme.js.map +1 -1
- package/.internal/core/render/Bullet.js +34 -49
- package/.internal/core/render/Bullet.js.map +1 -1
- package/.internal/core/render/Button.js +47 -64
- package/.internal/core/render/Button.js.map +1 -1
- package/.internal/core/render/Chart.js +20 -25
- package/.internal/core/render/Chart.js.map +1 -1
- package/.internal/core/render/Circle.js +24 -41
- package/.internal/core/render/Circle.js.map +1 -1
- package/.internal/core/render/Component.js +239 -384
- package/.internal/core/render/Component.js.map +1 -1
- package/.internal/core/render/Container.d.ts.map +1 -1
- package/.internal/core/render/Container.js +444 -548
- package/.internal/core/render/Container.js.map +1 -1
- package/.internal/core/render/Ellipse.js +24 -41
- package/.internal/core/render/Ellipse.js.map +1 -1
- package/.internal/core/render/Graphics.d.ts.map +1 -1
- package/.internal/core/render/Graphics.js +197 -215
- package/.internal/core/render/Graphics.js.map +1 -1
- package/.internal/core/render/GridLayout.js +102 -125
- package/.internal/core/render/GridLayout.js.map +1 -1
- package/.internal/core/render/HeatLegend.js +129 -154
- package/.internal/core/render/HeatLegend.js.map +1 -1
- package/.internal/core/render/HorizontalLayout.js +79 -91
- package/.internal/core/render/HorizontalLayout.js.map +1 -1
- package/.internal/core/render/Label.js +109 -150
- package/.internal/core/render/Label.js.map +1 -1
- package/.internal/core/render/Layout.js +14 -21
- package/.internal/core/render/Layout.js.map +1 -1
- package/.internal/core/render/Legend.js +230 -282
- package/.internal/core/render/Legend.js.map +1 -1
- package/.internal/core/render/Line.js +37 -54
- package/.internal/core/render/Line.js.map +1 -1
- package/.internal/core/render/MonotoneXTension.js +58 -85
- package/.internal/core/render/MonotoneXTension.js.map +1 -1
- package/.internal/core/render/MonotoneYTension.js +59 -88
- package/.internal/core/render/MonotoneYTension.js.map +1 -1
- package/.internal/core/render/Picture.js +92 -113
- package/.internal/core/render/Picture.js.map +1 -1
- package/.internal/core/render/PointedRectangle.js +94 -111
- package/.internal/core/render/PointedRectangle.js.map +1 -1
- package/.internal/core/render/RadialLabel.js +119 -158
- package/.internal/core/render/RadialLabel.js.map +1 -1
- package/.internal/core/render/RadialText.js +47 -62
- package/.internal/core/render/RadialText.js.map +1 -1
- package/.internal/core/render/Rectangle.js +31 -58
- package/.internal/core/render/Rectangle.js.map +1 -1
- package/.internal/core/render/RoundedRectangle.js +55 -72
- package/.internal/core/render/RoundedRectangle.js.map +1 -1
- package/.internal/core/render/Scrollbar.js +292 -349
- package/.internal/core/render/Scrollbar.js.map +1 -1
- package/.internal/core/render/SerialChart.js +64 -85
- package/.internal/core/render/SerialChart.js.map +1 -1
- package/.internal/core/render/Series.js +472 -660
- package/.internal/core/render/Series.js.map +1 -1
- package/.internal/core/render/Slice.js +83 -103
- package/.internal/core/render/Slice.js.map +1 -1
- package/.internal/core/render/Slider.js +25 -42
- package/.internal/core/render/Slider.js.map +1 -1
- package/.internal/core/render/Sprite.d.ts +17 -1
- package/.internal/core/render/Sprite.d.ts.map +1 -1
- package/.internal/core/render/Sprite.js +1307 -1777
- package/.internal/core/render/Sprite.js.map +1 -1
- package/.internal/core/render/SpriteResizer.js +157 -199
- package/.internal/core/render/SpriteResizer.js.map +1 -1
- package/.internal/core/render/Star.js +37 -54
- package/.internal/core/render/Star.js.map +1 -1
- package/.internal/core/render/Text.d.ts.map +1 -1
- package/.internal/core/render/Text.js +145 -182
- package/.internal/core/render/Text.js.map +1 -1
- package/.internal/core/render/Tick.js +14 -21
- package/.internal/core/render/Tick.js.map +1 -1
- package/.internal/core/render/Tooltip.d.ts +0 -1
- package/.internal/core/render/Tooltip.d.ts.map +1 -1
- package/.internal/core/render/Tooltip.js +272 -333
- package/.internal/core/render/Tooltip.js.map +1 -1
- package/.internal/core/render/Triangle.js +38 -65
- package/.internal/core/render/Triangle.js.map +1 -1
- package/.internal/core/render/VerticalLayout.js +79 -91
- package/.internal/core/render/VerticalLayout.js.map +1 -1
- package/.internal/core/render/backend/CanvasRenderer.d.ts +2 -2
- package/.internal/core/render/backend/CanvasRenderer.d.ts.map +1 -1
- package/.internal/core/render/backend/CanvasRenderer.js +2806 -3721
- package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
- package/.internal/core/render/backend/Renderer.d.ts +1 -0
- package/.internal/core/render/backend/Renderer.d.ts.map +1 -1
- package/.internal/core/render/backend/Renderer.js.map +1 -1
- package/.internal/core/render/gradients/Gradient.js +45 -72
- package/.internal/core/render/gradients/Gradient.js.map +1 -1
- package/.internal/core/render/gradients/LinearGradient.js +53 -65
- package/.internal/core/render/gradients/LinearGradient.js.map +1 -1
- package/.internal/core/render/gradients/RadialGradient.js +69 -81
- package/.internal/core/render/gradients/RadialGradient.js.map +1 -1
- package/.internal/core/render/patterns/CirclePattern.js +64 -81
- package/.internal/core/render/patterns/CirclePattern.js.map +1 -1
- package/.internal/core/render/patterns/LinePattern.js +49 -66
- package/.internal/core/render/patterns/LinePattern.js.map +1 -1
- package/.internal/core/render/patterns/PathPattern.js +72 -89
- package/.internal/core/render/patterns/PathPattern.js.map +1 -1
- package/.internal/core/render/patterns/Pattern.js +54 -83
- package/.internal/core/render/patterns/Pattern.js.map +1 -1
- package/.internal/core/render/patterns/PicturePattern.js +69 -90
- package/.internal/core/render/patterns/PicturePattern.js.map +1 -1
- package/.internal/core/render/patterns/RectanglePattern.js +65 -82
- package/.internal/core/render/patterns/RectanglePattern.js.map +1 -1
- package/.internal/core/util/Animation.js +102 -151
- package/.internal/core/util/Animation.js.map +1 -1
- package/.internal/core/util/Array.js +48 -49
- package/.internal/core/util/Array.js.map +1 -1
- package/.internal/core/util/AsyncPending.js +15 -15
- package/.internal/core/util/AsyncPending.js.map +1 -1
- package/.internal/core/util/Benchmark.js +37 -55
- package/.internal/core/util/Benchmark.js.map +1 -1
- package/.internal/core/util/Children.js +42 -67
- package/.internal/core/util/Children.js.map +1 -1
- package/.internal/core/util/Color.js +110 -206
- package/.internal/core/util/Color.js.map +1 -1
- package/.internal/core/util/ColorSet.js +73 -110
- package/.internal/core/util/ColorSet.js.map +1 -1
- package/.internal/core/util/Counter.js +13 -25
- package/.internal/core/util/Counter.js.map +1 -1
- package/.internal/core/util/Data.js +28 -70
- package/.internal/core/util/Data.js.map +1 -1
- package/.internal/core/util/DataParser.js +145 -178
- package/.internal/core/util/DataParser.js.map +1 -1
- package/.internal/core/util/DataProcessor.js +89 -144
- package/.internal/core/util/DataProcessor.js.map +1 -1
- package/.internal/core/util/DateFormatter.d.ts.map +1 -1
- package/.internal/core/util/DateFormatter.js +795 -901
- package/.internal/core/util/DateFormatter.js.map +1 -1
- package/.internal/core/util/Disposer.js +82 -159
- package/.internal/core/util/Disposer.js.map +1 -1
- package/.internal/core/util/Draw.js +27 -27
- package/.internal/core/util/Draw.js.map +1 -1
- package/.internal/core/util/DurationFormatter.js +343 -409
- package/.internal/core/util/DurationFormatter.js.map +1 -1
- package/.internal/core/util/Ease.js +6 -6
- package/.internal/core/util/Entity.d.ts +5 -1
- package/.internal/core/util/Entity.d.ts.map +1 -1
- package/.internal/core/util/Entity.js +869 -1442
- package/.internal/core/util/Entity.js.map +1 -1
- package/.internal/core/util/EventDispatcher.js +216 -346
- package/.internal/core/util/EventDispatcher.js.map +1 -1
- package/.internal/core/util/InterfaceColors.js +14 -21
- package/.internal/core/util/InterfaceColors.js.map +1 -1
- package/.internal/core/util/Language.js +63 -123
- package/.internal/core/util/Language.js.map +1 -1
- package/.internal/core/util/List.js +244 -441
- package/.internal/core/util/List.js.map +1 -1
- package/.internal/core/util/Math.js +35 -35
- package/.internal/core/util/Math.js.map +1 -1
- package/.internal/core/util/Matrix.js +56 -95
- package/.internal/core/util/Matrix.js.map +1 -1
- package/.internal/core/util/Modal.js +103 -147
- package/.internal/core/util/Modal.js.map +1 -1
- package/.internal/core/util/Net.js +19 -19
- package/.internal/core/util/Net.js.map +1 -1
- package/.internal/core/util/NumberFormatter.js +393 -442
- package/.internal/core/util/NumberFormatter.js.map +1 -1
- package/.internal/core/util/Object.js +4 -4
- package/.internal/core/util/Object.js.map +1 -1
- package/.internal/core/util/Order.js +5 -5
- package/.internal/core/util/Order.js.map +1 -1
- package/.internal/core/util/Percent.js +65 -90
- package/.internal/core/util/Percent.js.map +1 -1
- package/.internal/core/util/PopulateString.js +28 -28
- package/.internal/core/util/PopulateString.js.map +1 -1
- package/.internal/core/util/ResizeSensor.js +76 -116
- package/.internal/core/util/ResizeSensor.js.map +1 -1
- package/.internal/core/util/States.js +116 -188
- package/.internal/core/util/States.js.map +1 -1
- package/.internal/core/util/Template.js +203 -364
- package/.internal/core/util/Template.js.map +1 -1
- package/.internal/core/util/TextFormatter.js +148 -184
- package/.internal/core/util/TextFormatter.js.map +1 -1
- package/.internal/core/util/Throttler.js +18 -26
- package/.internal/core/util/Throttler.js.map +1 -1
- package/.internal/core/util/Time.d.ts.map +1 -1
- package/.internal/core/util/Time.js +61 -63
- package/.internal/core/util/Time.js.map +1 -1
- package/.internal/core/util/Timezone.js +35 -57
- package/.internal/core/util/Timezone.js.map +1 -1
- package/.internal/core/util/Type.js +12 -12
- package/.internal/core/util/Type.js.map +1 -1
- package/.internal/core/util/Utils.d.ts +17 -0
- package/.internal/core/util/Utils.d.ts.map +1 -1
- package/.internal/core/util/Utils.js +166 -182
- package/.internal/core/util/Utils.js.map +1 -1
- package/.internal/core/util/Value.js +14 -30
- package/.internal/core/util/Value.js.map +1 -1
- package/.internal/plugins/exporting/Annotator.js +139 -265
- package/.internal/plugins/exporting/Annotator.js.map +1 -1
- package/.internal/plugins/exporting/Exporting.js +1216 -1614
- package/.internal/plugins/exporting/Exporting.js.map +1 -1
- package/.internal/plugins/exporting/ExportingCSS.js +5 -5
- package/.internal/plugins/exporting/ExportingCSS.js.map +1 -1
- package/.internal/plugins/exporting/ExportingMenu.js +337 -405
- package/.internal/plugins/exporting/ExportingMenu.js.map +1 -1
- package/.internal/plugins/json/Classes-script.d.ts +16 -0
- package/.internal/plugins/json/Classes-script.d.ts.map +1 -1
- package/.internal/plugins/json/Classes-script.js +202 -194
- package/.internal/plugins/json/Classes-script.js.map +1 -1
- package/.internal/plugins/json/Classes.d.ts +16 -0
- package/.internal/plugins/json/Classes.d.ts.map +1 -1
- package/.internal/plugins/json/Classes.js +202 -194
- package/.internal/plugins/json/Classes.js.map +1 -1
- package/.internal/plugins/json/Json.d.ts +42 -2
- package/.internal/plugins/json/Json.d.ts.map +1 -1
- package/.internal/plugins/json/Json.js +391 -278
- package/.internal/plugins/json/Json.js.map +1 -1
- package/.internal/plugins/json/Serializer.d.ts +62 -0
- package/.internal/plugins/json/Serializer.d.ts.map +1 -0
- package/.internal/plugins/json/Serializer.js +137 -0
- package/.internal/plugins/json/Serializer.js.map +1 -0
- package/.internal/plugins/sliceGrouper/SliceGrouper.js +159 -202
- package/.internal/plugins/sliceGrouper/SliceGrouper.js.map +1 -1
- package/.internal/themes/AnimatedTheme.js +20 -32
- package/.internal/themes/AnimatedTheme.js.map +1 -1
- package/.internal/themes/DarkTheme.js +28 -40
- package/.internal/themes/DarkTheme.js.map +1 -1
- package/.internal/themes/DatavizTheme.js +12 -24
- package/.internal/themes/DatavizTheme.js.map +1 -1
- package/.internal/themes/DefaultTheme.d.ts.map +1 -1
- package/.internal/themes/DefaultTheme.js +803 -813
- package/.internal/themes/DefaultTheme.js.map +1 -1
- package/.internal/themes/FrozenTheme.js +19 -31
- package/.internal/themes/FrozenTheme.js.map +1 -1
- package/.internal/themes/KellyTheme.js +31 -43
- package/.internal/themes/KellyTheme.js.map +1 -1
- package/.internal/themes/MaterialTheme.js +28 -40
- package/.internal/themes/MaterialTheme.js.map +1 -1
- package/.internal/themes/MicrochartTheme.js +67 -79
- package/.internal/themes/MicrochartTheme.js.map +1 -1
- package/.internal/themes/MoonriseTheme.js +19 -31
- package/.internal/themes/MoonriseTheme.js.map +1 -1
- package/.internal/themes/ResponsiveTheme.js +613 -790
- package/.internal/themes/ResponsiveTheme.js.map +1 -1
- package/.internal/themes/SpiritedTheme.js +19 -31
- package/.internal/themes/SpiritedTheme.js.map +1 -1
- package/CHANGELOG.md +28 -0
- package/examples/javascript/flow-chord/package.json +1 -1
- package/examples/javascript/flow-chord-directed/package.json +1 -1
- package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
- package/examples/javascript/flow-sankey/package.json +1 -1
- package/examples/javascript/gauge/package.json +1 -1
- package/examples/javascript/gauge-bands/index.js +3 -1
- package/examples/javascript/gauge-bands/package.json +1 -1
- package/examples/javascript/hierarchy-force-directed/package.json +1 -1
- package/examples/javascript/hierarchy-pack/package.json +1 -1
- package/examples/javascript/hierarchy-partition/package.json +1 -1
- package/examples/javascript/hierarchy-sunburst/package.json +1 -1
- package/examples/javascript/hierarchy-tree/package.json +1 -1
- package/examples/javascript/hierarchy-treemap/package.json +1 -1
- package/examples/javascript/jest/package.json +1 -1
- package/examples/javascript/{json → json-pie}/README.md +0 -0
- package/examples/javascript/{json → json-pie}/index.css +0 -0
- package/examples/javascript/json-pie/index.html +12 -0
- package/examples/javascript/json-pie/index.js +77 -0
- package/examples/javascript/json-pie/package.json +16 -0
- package/examples/javascript/{json → json-pie}/webpack.config.js +0 -0
- package/examples/{typescript/json → javascript/json-xy}/README.md +0 -0
- package/examples/{typescript/json → javascript/json-xy}/index.css +0 -0
- package/examples/{typescript/json → javascript/json-xy}/index.html +1 -1
- package/examples/javascript/json-xy/index.js +203 -0
- package/examples/javascript/{json → json-xy}/package.json +2 -2
- package/examples/javascript/json-xy/webpack.config.js +38 -0
- package/examples/javascript/map-animating-along-lines/package.json +1 -1
- package/examples/javascript/map-day-and-night/package.json +1 -1
- package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
- package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
- package/examples/javascript/map-with-bubbles/package.json +1 -1
- package/examples/javascript/map-zoom-to-country/package.json +1 -1
- package/examples/javascript/misc-40-charts/package.json +1 -1
- package/examples/javascript/misc-microchart-grid/package.json +1 -1
- package/examples/javascript/pie-chart/package.json +1 -1
- package/examples/javascript/pie-donut-chart/package.json +1 -1
- package/examples/javascript/pie-variable-radius/package.json +1 -1
- package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
- package/examples/javascript/radar-heat-map/index.js +33 -33
- package/examples/javascript/radar-heat-map/package.json +1 -1
- package/examples/javascript/radar-line/package.json +1 -1
- package/examples/javascript/radar-time-line/package.json +1 -1
- package/examples/javascript/sliced-funnel/package.json +1 -1
- package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
- package/examples/javascript/sliced-pyramid/package.json +1 -1
- package/examples/javascript/stock-chart/package.json +1 -1
- package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
- package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
- package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
- package/examples/javascript/stock-chart-intraday/package.json +1 -1
- package/examples/javascript/stock-chart-live/package.json +1 -1
- package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
- package/examples/javascript/venn-diagram/package.json +1 -1
- package/examples/javascript/wordcloud-with-data/package.json +1 -1
- package/examples/javascript/wordcloud-with-text/package.json +1 -1
- package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
- package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
- package/examples/javascript/xy-bubble/package.json +1 -1
- package/examples/javascript/xy-candlestick/package.json +1 -1
- package/examples/javascript/xy-clustered-column/package.json +1 -1
- package/examples/javascript/xy-column/package.json +1 -1
- package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/javascript/xy-data-grouping/package.json +1 -1
- package/examples/javascript/xy-draggable-range/package.json +1 -1
- package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/javascript/xy-dumbbell plot/package.json +1 -1
- package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/javascript/xy-line/package.json +1 -1
- package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
- package/examples/javascript/xy-live-data/package.json +1 -1
- package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/javascript/xy-ohlc/package.json +1 -1
- package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
- package/examples/javascript/xy-smoothed-line/package.json +1 -1
- package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
- package/examples/javascript/xy-stacked-column/package.json +1 -1
- package/examples/javascript/xy-stacked-step/package.json +1 -1
- package/examples/javascript/xy-stock/package.json +1 -1
- package/examples/javascript/xy-stock-comparing/package.json +1 -1
- package/examples/typescript/flow-chord/package.json +1 -1
- package/examples/typescript/flow-chord/tsconfig.json +1 -1
- package/examples/typescript/flow-chord-directed/package.json +1 -1
- package/examples/typescript/flow-chord-directed/tsconfig.json +1 -1
- package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
- package/examples/typescript/flow-chord-non-ribbon/tsconfig.json +1 -1
- package/examples/typescript/flow-sankey/package.json +1 -1
- package/examples/typescript/flow-sankey/tsconfig.json +1 -1
- package/examples/typescript/gauge/package.json +1 -1
- package/examples/typescript/gauge/tsconfig.json +1 -1
- package/examples/typescript/gauge-bands/index.ts +3 -1
- package/examples/typescript/gauge-bands/package.json +1 -1
- package/examples/typescript/gauge-bands/tsconfig.json +1 -1
- package/examples/typescript/hierarchy-force-directed/package.json +1 -1
- package/examples/typescript/hierarchy-force-directed/tsconfig.json +1 -1
- package/examples/typescript/hierarchy-pack/package.json +1 -1
- package/examples/typescript/hierarchy-pack/tsconfig.json +1 -1
- package/examples/typescript/hierarchy-partition/package.json +1 -1
- package/examples/typescript/hierarchy-partition/tsconfig.json +1 -1
- package/examples/typescript/hierarchy-sunburst/package.json +1 -1
- package/examples/typescript/hierarchy-sunburst/tsconfig.json +1 -1
- package/examples/typescript/hierarchy-tree/package.json +1 -1
- package/examples/typescript/hierarchy-tree/tsconfig.json +1 -1
- package/examples/typescript/hierarchy-treemap/package.json +1 -1
- package/examples/typescript/hierarchy-treemap/tsconfig.json +1 -1
- package/examples/typescript/jest/package.json +1 -1
- package/examples/typescript/jest/tsconfig.json +1 -1
- package/examples/typescript/json-pie/README.md +6 -0
- package/examples/typescript/json-pie/index.css +11 -0
- package/examples/typescript/json-pie/index.html +12 -0
- package/examples/typescript/json-pie/index.ts +77 -0
- package/examples/typescript/json-pie/package.json +18 -0
- package/examples/typescript/{json → json-pie}/tsconfig.json +1 -1
- package/examples/typescript/{json → json-pie}/webpack.config.js +0 -0
- package/examples/typescript/json-xy/README.md +6 -0
- package/examples/typescript/json-xy/index.css +11 -0
- package/examples/{javascript/json → typescript/json-xy}/index.html +1 -1
- package/examples/typescript/json-xy/index.ts +203 -0
- package/examples/typescript/{json → json-xy}/package.json +2 -2
- package/examples/typescript/json-xy/tsconfig.json +12 -0
- package/examples/typescript/json-xy/webpack.config.js +45 -0
- package/examples/typescript/map-animating-along-lines/package.json +1 -1
- package/examples/typescript/map-animating-along-lines/tsconfig.json +1 -1
- package/examples/typescript/map-day-and-night/package.json +1 -1
- package/examples/typescript/map-day-and-night/tsconfig.json +1 -1
- package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
- package/examples/typescript/map-globe-rotate-to-country/tsconfig.json +1 -1
- package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
- package/examples/typescript/map-globe-with-projected-circles/tsconfig.json +1 -1
- package/examples/typescript/map-with-bubbles/package.json +1 -1
- package/examples/typescript/map-with-bubbles/tsconfig.json +1 -1
- package/examples/typescript/map-zoom-to-country/package.json +1 -1
- package/examples/typescript/map-zoom-to-country/tsconfig.json +1 -1
- package/examples/typescript/misc-40-charts/package.json +1 -1
- package/examples/typescript/misc-40-charts/tsconfig.json +1 -1
- package/examples/typescript/misc-microchart-grid/package.json +1 -1
- package/examples/typescript/misc-microchart-grid/tsconfig.json +1 -1
- package/examples/typescript/pie-chart/package.json +1 -1
- package/examples/typescript/pie-chart/tsconfig.json +1 -1
- package/examples/typescript/pie-donut-chart/package.json +1 -1
- package/examples/typescript/pie-donut-chart/tsconfig.json +1 -1
- package/examples/typescript/pie-variable-radius/package.json +1 -1
- package/examples/typescript/pie-variable-radius/tsconfig.json +1 -1
- package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
- package/examples/typescript/radar-column-iwatch-style/tsconfig.json +1 -1
- package/examples/typescript/radar-heat-map/index.ts +33 -33
- package/examples/typescript/radar-heat-map/package.json +1 -1
- package/examples/typescript/radar-heat-map/tsconfig.json +1 -1
- package/examples/typescript/radar-line/package.json +1 -1
- package/examples/typescript/radar-line/tsconfig.json +1 -1
- package/examples/typescript/radar-time-line/package.json +1 -1
- package/examples/typescript/radar-time-line/tsconfig.json +1 -1
- package/examples/typescript/sliced-funnel/package.json +1 -1
- package/examples/typescript/sliced-funnel/tsconfig.json +1 -1
- package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
- package/examples/typescript/sliced-pictorial-stacked/tsconfig.json +1 -1
- package/examples/typescript/sliced-pyramid/package.json +1 -1
- package/examples/typescript/sliced-pyramid/tsconfig.json +1 -1
- package/examples/typescript/stock-chart/package.json +1 -1
- package/examples/typescript/stock-chart/tsconfig.json +1 -1
- package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
- package/examples/typescript/stock-chart-comparing-stocks/tsconfig.json +1 -1
- package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
- package/examples/typescript/stock-chart-data-granularity/tsconfig.json +1 -1
- package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
- package/examples/typescript/stock-chart-data-grouping/tsconfig.json +1 -1
- package/examples/typescript/stock-chart-intraday/package.json +1 -1
- package/examples/typescript/stock-chart-intraday/tsconfig.json +1 -1
- package/examples/typescript/stock-chart-live/package.json +1 -1
- package/examples/typescript/stock-chart-live/tsconfig.json +1 -1
- package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
- package/examples/typescript/stock-chart-volume-separate-panel/tsconfig.json +1 -1
- package/examples/typescript/venn-diagram/package.json +1 -1
- package/examples/typescript/venn-diagram/tsconfig.json +1 -1
- package/examples/typescript/wordcloud-with-data/package.json +1 -1
- package/examples/typescript/wordcloud-with-data/tsconfig.json +1 -1
- package/examples/typescript/wordcloud-with-text/package.json +1 -1
- package/examples/typescript/wordcloud-with-text/tsconfig.json +1 -1
- package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
- package/examples/typescript/xy-100-percent-stacked-column/tsconfig.json +1 -1
- package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
- package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/tsconfig.json +1 -1
- package/examples/typescript/xy-bubble/package.json +1 -1
- package/examples/typescript/xy-bubble/tsconfig.json +1 -1
- package/examples/typescript/xy-candlestick/package.json +1 -1
- package/examples/typescript/xy-candlestick/tsconfig.json +1 -1
- package/examples/typescript/xy-clustered-column/package.json +1 -1
- package/examples/typescript/xy-clustered-column/tsconfig.json +1 -1
- package/examples/typescript/xy-column/package.json +1 -1
- package/examples/typescript/xy-column/tsconfig.json +1 -1
- package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/typescript/xy-comparing-series-google-analytics-style/tsconfig.json +1 -1
- package/examples/typescript/xy-data-grouping/package.json +1 -1
- package/examples/typescript/xy-data-grouping/tsconfig.json +1 -1
- package/examples/typescript/xy-draggable-range/package.json +1 -1
- package/examples/typescript/xy-draggable-range/tsconfig.json +1 -1
- package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/typescript/xy-drawing-series-with-mouse-or-touch/tsconfig.json +1 -1
- package/examples/typescript/xy-dumbbell plot/package.json +1 -1
- package/examples/typescript/xy-dumbbell plot/tsconfig.json +1 -1
- package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/typescript/xy-evenly-spaced-date-axis/tsconfig.json +1 -1
- package/examples/typescript/xy-line/package.json +1 -1
- package/examples/typescript/xy-line/tsconfig.json +1 -1
- package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
- package/examples/typescript/xy-line-highlight-on-legend-hover/tsconfig.json +1 -1
- package/examples/typescript/xy-live-data/package.json +1 -1
- package/examples/typescript/xy-live-data/tsconfig.json +1 -1
- package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/typescript/xy-multiple-synced-value-axes/tsconfig.json +1 -1
- package/examples/typescript/xy-ohlc/package.json +1 -1
- package/examples/typescript/xy-ohlc/tsconfig.json +1 -1
- package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
- package/examples/typescript/xy-real-time-data-sorting/tsconfig.json +1 -1
- package/examples/typescript/xy-smoothed-line/package.json +1 -1
- package/examples/typescript/xy-smoothed-line/tsconfig.json +1 -1
- package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
- package/examples/typescript/xy-stacked-and-clustered-column/tsconfig.json +1 -1
- package/examples/typescript/xy-stacked-column/package.json +1 -1
- package/examples/typescript/xy-stacked-column/tsconfig.json +1 -1
- package/examples/typescript/xy-stacked-step/package.json +1 -1
- package/examples/typescript/xy-stacked-step/tsconfig.json +1 -1
- package/examples/typescript/xy-stock/package.json +1 -1
- package/examples/typescript/xy-stock/tsconfig.json +1 -1
- package/examples/typescript/xy-stock-comparing/package.json +1 -1
- package/examples/typescript/xy-stock-comparing/tsconfig.json +1 -1
- package/locales/ar.js +1 -1
- package/locales/bg_BG.js +1 -1
- package/locales/bs_BA.js +1 -1
- package/locales/ca_ES.js +1 -1
- package/locales/cs_CZ.js +1 -1
- package/locales/da_DK.js +1 -1
- package/locales/el_GR.js +1 -1
- package/locales/en.js +1 -1
- package/locales/en_CA.js +1 -1
- package/locales/en_US.js +1 -1
- package/locales/et_EE.js +1 -1
- package/locales/fi_FI.js +1 -1
- package/locales/fr_FR.js +1 -1
- package/locales/he_IL.js +1 -1
- package/locales/hi_IN.js +1 -1
- package/locales/hr_HR.js +1 -1
- package/locales/hu_HU.js +1 -1
- package/locales/id_ID.js +1 -1
- package/locales/ja_JP.js +1 -1
- package/locales/ko_KR.js +1 -1
- package/locales/lv_LV.js +1 -1
- package/locales/nb_NO.js +1 -1
- package/locales/nl_NL.js +1 -1
- package/locales/pl_PL.js +1 -1
- package/locales/ro_RO.js +1 -1
- package/locales/sr_RS.js +1 -1
- package/locales/th_TH.js +1 -1
- package/locales/tr_TR.js +1 -1
- package/locales/vi_VN.js +1 -1
- package/locales/zh_Hans.js +1 -1
- package/locales/zh_Hant.js +1 -1
- package/package.json +1 -1
- package/plugins/json.d.ts +1 -0
- package/plugins/json.d.ts.map +1 -1
- package/plugins/json.js +1 -0
- package/plugins/json.js.map +1 -1
- package/examples/javascript/json/index.js +0 -206
- package/examples/typescript/json/index.ts +0 -206
|
@@ -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 { Theme } from \"./Theme\";\nimport type { IPoint } from \"./util/IPoint\";\nimport type { IRenderer, IPointerEvent } from \"./render/backend/Renderer\";\nimport type { Timezone } from \"./util/Timezone\";\n\nimport { Container } from \"./render/Container\";\nimport { Text } from \"./render/Text\";\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\";\nimport * as $type from \"./util/Type\";\n\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\nexport interface IRootSettings {\n\n\t/**\n\t * Indicates whether chart should use \"safe\" resolution on some memory-limiting\n\t * platforms such as Safari.\n\t *\n\t * @default true\n\t */\n\tuseSafeResolution?: boolean;\n\n\t/**\n\t * Allows defining margins around chart area for tooltips to go outside the\n\t * chart itself.\n\t *\n\t * @since 5.2.24\n\t */\n\ttooltipContainerBounds?: { top: number, left: number, right: number, bottom: number };\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 * @ignore\n\t * @todo needs description\n\t */\n\tpublic animationTime: number | null = null;\n\n\tprivate _animations: Array<IAnimation> = [];\n\n\tpublic _renderer: IRenderer;\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\tprotected _tooltipContainerSettings!: { top: number, left: number, right: number, bottom: number };\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 * If set, will format date/time in specific time zone.\n\t *\n\t * The value should be named time zone, e.g.:\n\t * `\"America/Vancouver\"`, `\"Australia/Sydney\"`, `\"UTC\"`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/getting-started/root-element/#Time_zone} for more info\n\t * @since 5.1.0\n\t */\n\tpublic timezone?: Timezone;\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\t * @see {@link https://www.amcharts.com/docs/v5/getting-started/root-element/#Performance} for more info\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 _isShift: boolean | undefined;\n\tprotected _keyboardDragPoint: IPoint | undefined;\n\tprotected _tooltipElementContainer: HTMLDivElement | undefined;\n\tprotected _readerAlertElement: HTMLDivElement | undefined;\n\n\tpublic _logo?: Container;\n\n\tpublic _tooltipDiv: HTMLDivElement | undefined;\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 _fontHash: string = \"\";\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 _htmlElementContainer: HTMLDivElement | undefined;\n\tprotected _htmlEnabledContainers: Container[] = [];\n\n\tprotected constructor(id: string | HTMLElement, settings: IRootSettings = {}, 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\tif (settings.useSafeResolution == null) {\n\t\t\tsettings.useSafeResolution = true;\n\t\t}\n\n\t\tlet resolution;\n\n\t\tif (settings.useSafeResolution) {\n\t\t\tresolution = $utils.getSafeResolution();\n\t\t}\n\n\t\tthis._renderer = new CanvasRenderer(resolution);\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\tinner.style.height = \"100%\";\n\t\tdom.appendChild(inner);\n\n\t\tconst tooltipContainerBounds = settings.tooltipContainerBounds;\n\t\tif (tooltipContainerBounds) {\n\t\t\tthis._tooltipContainerSettings = tooltipContainerBounds;\n\t\t}\n\n\t\tthis._inner = inner;\n\n\t\tthis._updateComputedStyles();\n\n\t\tregistry.rootElements.push(this);\n\t}\n\n\n\n\n\tpublic static new(id: string | HTMLElement, settings?: IRootSettings): Root {\n\t\tconst root = new Root(id, settings, 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\tconst w = this.dom.offsetWidth;\n\t\t\tconst h = this.dom.offsetHeight;\n\t\t\tif ((w <= 150) || (h <= 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 rect = this.dom.getBoundingClientRect();\n\t\tconst width = Math.floor(rect.width);\n\t\tconst height = Math.floor(rect.height);\n\t\tconst rootContainer = Container.new(this, { visible: true, width, height });\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(width, height);\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//renderer.debugGhostView = true;\n\n\t\tthis._initResizeSensor();\n\n\t\t// HTML content holder\n\t\tthis._htmlElementContainer = document.createElement(\"div\");\n\t\tthis._htmlElementContainer.className = \"am5-html-container\";\n\t\tthis._htmlElementContainer.style.position = \"absolute\";\n\t\tthis._htmlElementContainer.style.pointerEvents = \"none\";\n\t\tif (!this._tooltipContainerSettings) {\n\t\t\tthis._htmlElementContainer.style.overflow = \"hidden\";\n\t\t}\n\t\tthis._inner.appendChild(this._htmlElementContainer);\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.className = \"am5-reader-container\";\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.className = \"am5-focus-container\";\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 = width + \"px\";\n\t\tfocusElementContainer.style.height = height + \"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._tooltipElementContainer.className = \"am5-tooltip-container\";\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\n\t\t\tthis._disposers.push($utils.addEventListener(window, \"keydown\", (ev: KeyboardEvent) => {\n\t\t\t\tif (ev.keyCode == 16) {\n\t\t\t\t\tthis._isShift = true;\n\t\t\t\t}\n\t\t\t}));\n\n\t\t\tthis._disposers.push($utils.addEventListener(window, \"keyup\", (ev: KeyboardEvent) => {\n\t\t\t\tif (ev.keyCode == 16) {\n\t\t\t\t\tthis._isShift = false;\n\t\t\t\t}\n\t\t\t}));\n\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 rect = dom.getBoundingClientRect();\n\t\tconst w = Math.floor(rect.width);\n\t\tconst h = Math.floor(rect.height);\n\t\tif (w > 0 && h > 0) {\n\t\t\tconst htmlElementContainer = this._htmlElementContainer!;\n\t\t\thtmlElementContainer.style.width = w + \"px\";\n\t\t\thtmlElementContainer.style.height = h + \"px\";\n\n\t\t\tconst focusElementContainer = this._focusElementContainer!;\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 _renderFrame(currentTime: number): boolean {\n\t\tif (this.events.isEnabled(\"framestarted\")) {\n\t\t\tthis.events.dispatch(\"framestarted\", {\n\t\t\t\ttype: \"framestarted\",\n\t\t\t\ttarget: this,\n\t\t\t\ttimestamp: currentTime,\n\t\t\t});\n\t\t}\n\n\t\tthis._checkComputedStyles();\n\t\tthis._runTickers(currentTime);\n\t\tthis._runAnimations(currentTime);\n\t\tthis._runDirties();\n\t\tthis._render();\n\t\tthis._positionHTMLElements();\n\n\t\tif (this.events.isEnabled(\"frameended\")) {\n\t\t\tthis.events.dispatch(\"frameended\", {\n\t\t\t\ttype: \"frameended\",\n\t\t\t\ttarget: this,\n\t\t\t\ttimestamp: currentTime,\n\t\t\t});\n\t\t}\n\n\n\t\treturn this._tickers.length === 0 &&\n\t\t\tthis._animations.length === 0 &&\n\t\t\t!this._isDirty;\n\t}\n\n\tprivate _runTicker(currentTime: number) {\n\t\tif (!this.isDisposed()) {\n\t\t\tthis.animationTime = currentTime;\n\n\t\t\tconst done = this._renderFrame(currentTime);\n\n\t\t\t// No more work to do\n\t\t\tif (done) {\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\tpublic _runTickerNow() {\n\t\tif (!this.isDisposed()) {\n\t\t\tfor (; ;) {\n\t\t\t\tconst currentTime = performance.now();\n\n\t\t\t\tthis.animationTime = currentTime;\n\n\t\t\t\tconst done = this._renderFrame(currentTime);\n\n\t\t\t\tif (done) {\n\t\t\t\t\tthis.animationTime = null;\n\t\t\t\t\tbreak;\n\t\t\t\t}\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 _markDirty() {\n\t\tthis._isDirty = true;\n\t}\n\n\tpublic _markDirtyRedraw() {\n\t\tthis.events.once(\"frameended\", () => {\n\t\t\tthis._isDirty = true;\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\tpublic markDirtyGlobal(container?: Container): void {\n\t\tif (!container) {\n\t\t\tcontainer = this.container;\n\t\t}\n\t\tconsole.log(this.width());\n\t\tcontainer.walkChildren((child) => {\n\t\t\tif (child instanceof Container) {\n\t\t\t\tthis.markDirtyGlobal(child);\n\t\t\t}\n\t\t\tchild.markDirty();\n\t\t\tchild.markDirtyBounds();\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\t// TODO make this more efficient, maybe just return the renderer's width ?\n\t\treturn Math.floor(this.dom.getBoundingClientRect().width);\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\t// TODO make this more efficient, maybe just return the renderer's height ?\n\t\treturn Math.floor(this.dom.getBoundingClientRect().height);\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 = $utils.stripTags(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\n\n\t}\n\n\tprotected _addTooltip() {\n\t\tif (!this.tooltipContainer) {\n\t\t\tconst tooltipContainer = this._rootContainer.children.push(Container.new(this, {\n\t\t\t\tposition: \"absolute\",\n\t\t\t\tisMeasured: false,\n\t\t\t\twidth: p100,\n\t\t\t\theight: p100,\n\t\t\t\tlayer: this._tooltipContainerSettings ? 35 : 30,\n\t\t\t\tlayerMargin: this._tooltipContainerSettings ? this._tooltipContainerSettings : undefined\n\t\t\t}));\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\t\t$array.remove(this._tabindexes, target);\n\t\tconst focusElement = target.getPrivate(\"focusElement\");\n\t\tif (focusElement) {\n\t\t\tconst container = this._focusElementContainer!;\n\t\t\tcontainer.removeChild(focusElement.dom);\n\t\t\t$array.each(focusElement.disposers, (x) => {\n\t\t\t\tx.dispose();\n\t\t\t});\n\t\t}\n\t}\n\n\tpublic _hideFocusElement(target: Sprite): void {\n\t\tconst focusElement = target.getPrivate(\"focusElement\")!;\n\t\tfocusElement.dom.style.display = \"none\";\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// Jump over hidden elements\n\t\tif (!focused.isVisibleDeep()) {\n\t\t\tthis._focusNext(<HTMLDivElement>ev.target, this._isShift ? -1 : 1);\n\t\t\treturn;\n\t\t}\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 _focusNext(el: HTMLDivElement, direction: 1 | -1): void {\n\t\tvar focusableElements = Array.from(document.querySelectorAll([\n\t\t\t'a[href]',\n\t\t\t'area[href]',\n\t\t\t'button:not([disabled])',\n\t\t\t'details',\n\t\t\t'input:not([disabled])',\n\t\t\t'iframe:not([disabled])',\n\t\t\t'select:not([disabled])',\n\t\t\t'textarea:not([disabled])',\n\t\t\t'[contentEditable=\"\"]',\n\t\t\t'[contentEditable=\"true\"]',\n\t\t\t'[contentEditable=\"TRUE\"]',\n\t\t\t'[tabindex]:not([tabindex^=\"-\"])',\n\t\t\t//':not([disabled])'\n\t\t].join(',')));\n\n\t\tlet index = focusableElements.indexOf(el) + direction;\n\n\t\tif (index < 0) {\n\t\t\tindex = focusableElements.length - 1;\n\t\t}\n\t\telse if (index >= focusableElements.length) {\n\t\t\tindex = 0;\n\t\t}\n\n\t\t(<HTMLElement>focusableElements[index]).focus();\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 = $utils.stripTags(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.top = \"-1000000px\";\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 * Converts root coordinates to document\n\t *\n\t * @param point Document point\n\t * @return Root point\n\t */\n\tpublic rootPointToDocument(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\tprotected _updateComputedStyles(): boolean {\n\t\tconst styles = window.getComputedStyle(this.dom);\n\t\tlet fontHash = \"\";\n\t\t$object.each(styles, (key, val) => {\n\t\t\tif ($type.isString(key) && key.match(/^font/)) {\n\t\t\t\tfontHash += val;\n\t\t\t}\n\t\t})\n\t\tconst changed = fontHash != this._fontHash;\n\t\tif (changed) {\n\t\t\tthis._fontHash = fontHash;\n\t\t}\n\t\treturn changed;\n\t}\n\n\tprotected _checkComputedStyles(): void {\n\t\tif (this._updateComputedStyles()) {\n\t\t\tthis._invalidateLabelBounds(this.container);\n\t\t}\n\t}\n\n\tprotected _invalidateLabelBounds(target: Sprite): void {\n\t\tif (target instanceof Container) {\n\t\t\ttarget.children.each((child) => {\n\t\t\t\tthis._invalidateLabelBounds(child);\n\t\t\t});\n\t\t}\n\t\telse if (target instanceof Text) {\n\t\t\ttarget.markDirtyBounds();\n\t\t}\n\t}\n\n\t/**\n\t * To all the clever heads out there. Yes, we did not make any attempts to\n\t * scramble this.\n\t *\n\t * This is a part of a tool meant for our users to manage their commercial\n\t * licenses for removal of amCharts branding from charts.\n\t *\n\t * The only legit way to do so is to purchase a commercial license for amCharts:\n\t * https://www.amcharts.com/online-store/\n\t *\n\t * Removing or altering this code, or disabling amCharts branding in any other\n\t * way is against the license and thus illegal.\n\t */\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\tpublic _licenseApplied(): void {\n\t\tif (this._logo) {\n\t\t\tthis._logo.set(\"forceHidden\", true);\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic get debugGhostView(): boolean {\n\t\treturn this._renderer.debugGhostView;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic set debugGhostView(value: boolean) {\n\t\tthis._renderer.debugGhostView = value;\n\t}\n\n\t/**\n\t * Set this to `true` if you need chart to require first a tap onto it before\n\t * touch gesture related functionality like zoom/pan is turned on.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/getting-started/root-element/#Touch_related_options} for more info\n\t * @default false\n\t * @since 5.2.9\n\t * @param value Needs a tap to activate touch functions\n\t */\n\tpublic set tapToActivate(value: boolean) {\n\t\tthis._renderer.tapToActivate = value;\n\t}\n\n\t/**\n\t * @return Needs a tap to activate touch functions\n\t */\n\tpublic get tapToActivate(): boolean {\n\t\treturn this._renderer.tapToActivate;\n\t}\n\n\t/**\n\t * If `tapToActivate` is set to `true`, this setting will determine number\n\t * of milliseconds the chart will stay \"active\", before releasing the\n\t * controls back to the page.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/getting-started/root-element/#Touch_related_options} for more info\n\t * @default 3000\n\t * @since 5.2.9\n\t * @param value Timeout\n\t */\n\tpublic set tapToActivateTimeout(value: number) {\n\t\tthis._renderer.tapToActivateTimeout = value;\n\t}\n\n\t/**\n\t * @return Timeout\n\t */\n\tpublic get tapToActivateTimeout(): number {\n\t\treturn this._renderer.tapToActivateTimeout;\n\t}\n\n\tpublic _makeHTMLElement(target: Container): HTMLDivElement {\n\n\t\t// Get container\n\t\tconst container = this._htmlElementContainer!;\n\n\t\t// Init\n\t\tconst htmlElement = document.createElement(\"div\");\n\t\ttarget.setPrivate(\"htmlElement\", htmlElement);\n\n\t\t//htmlElement.tabIndex = this.tabindex;\n\t\thtmlElement.style.position = \"absolute\";\n\t\thtmlElement.style.overflow = \"auto\";\n\t\thtmlElement.style.boxSizing = \"border-box\";\n\t\t$utils.setInteractive(htmlElement, true);\n\n\t\t// Translate events\n\t\tif (target.events.isEnabled(\"click\")) {\n\t\t\tthis._disposers.push($utils.addEventListener<PointerEvent | MouseEvent>(htmlElement, \"click\", (ev: IPointerEvent) => {\n\t\t\t\tconst downEvent = this._renderer.getEvent(ev);\n\t\t\t\ttarget.events.dispatch(\"click\", {\n\t\t\t\t\ttype: \"click\",\n\t\t\t\t\toriginalEvent: downEvent.event,\n\t\t\t\t\tpoint: downEvent.point,\n\t\t\t\t\tsimulated: false,\n\t\t\t\t\ttarget: target\n\t\t\t\t});\n\t\t\t}));\n\t\t}\n\n\t\tthis._positionHTMLElement(target);\n\n\t\tcontainer.append(htmlElement);\n\n\t\t$array.pushOne(this._htmlEnabledContainers, target);\n\n\t\treturn htmlElement;\n\t}\n\n\tpublic _positionHTMLElements(): void {\n\t\t$array.each(this._htmlEnabledContainers, (target) => {\n\t\t\tthis._positionHTMLElement(target);\n\t\t});\n\t}\n\n\tpublic _positionHTMLElement(target: Container): void {\n\t\tconst htmlElement = target.getPrivate(\"htmlElement\");\n\t\tif (htmlElement) {\n\n\t\t\t// Translate settings\n\t\t\tconst visualSettings = [\"paddingTop\", \"paddingRight\", \"paddingBottom\", \"paddingLeft\", \"minWidth\", \"minHeight\", \"maxWidth\", \"maxHeight\"];\n\t\t\t$array.each(visualSettings, (setting: any) => {\n\t\t\t\tconst value = target.get(setting);\n\t\t\t\tif (value) {\n\t\t\t\t\thtmlElement.style[setting] = value + \"px\";\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\thtmlElement.style[setting] = \"\";\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Deal with opacity\n\t\t\tconst opacity = target.compositeOpacity();\n\t\t\tsetTimeout(() => {\n\t\t\t\thtmlElement.style.opacity = opacity + \"\";\n\t\t\t}, 10);\n\n\t\t\tconst visible = target.isVisibleDeep();\n\t\t\tif (visible) {\n\t\t\t\thtmlElement.style.display = \"block\";\n\t\t\t}\n\n\t\t\t// Deal with position\n\t\t\tconst bounds = target.globalBounds();\n\t\t\thtmlElement.style.top = (bounds.top) + \"px\";\n\t\t\thtmlElement.style.left = (bounds.left) + \"px\";\n\n\t\t\t// Use width/height if those are set\n\t\t\tconst width = target.get(\"width\");\n\t\t\tconst height = target.get(\"height\");\n\n\t\t\tlet w: number = 0;\n\t\t\tlet h: number = 0;\n\n\t\t\tif (width) {\n\t\t\t\tw = target.width();\n\t\t\t}\n\n\t\t\tif (height) {\n\t\t\t\th = target.height();\n\t\t\t}\n\n\t\t\tif (!width || !height) {\n\t\t\t\thtmlElement.style.width = \"\";\n\t\t\t\thtmlElement.style.height = \"\";\n\t\t\t\tconst bbox = htmlElement.getBoundingClientRect();\n\t\t\t\tw = bbox.width;\n\t\t\t\th = bbox.height;\n\n\t\t\t\ttarget._adjustedLocalBounds = { left: 0, right: 0, top: 0, bottom: 0 };\n\t\t\t\ttarget.setPrivate(\"minWidth\", w);\n\t\t\t\ttarget.setPrivate(\"minHeight\", h);\n\t\t\t}\n\t\t\telse {\n\t\t\t\ttarget.removePrivate(\"minWidth\");\n\t\t\t\ttarget.removePrivate(\"minHeight\");\n\t\t\t}\n\n\t\t\tif (w > 0) {\n\t\t\t\thtmlElement.style.minWidth = (w) + \"px\";\n\t\t\t}\n\t\t\tif (h > 0) {\n\t\t\t\thtmlElement.style.minHeight = (h) + \"px\";\n\t\t\t}\n\n\t\t\t// Hide or show\n\t\t\tif (!visible || opacity == 0) {\n\t\t\t\thtmlElement.style.display = \"none\";\n\t\t\t}\n\n\t\t}\n\t}\n\n\tpublic _setHTMLContent(target: Container, html: string): void {\n\t\tlet htmlElement = target.getPrivate(\"htmlElement\");\n\t\tif (!htmlElement) {\n\t\t\thtmlElement = this._makeHTMLElement(target);\n\t\t}\n\t\tif (htmlElement.innerHTML != html) {\n\t\t\thtmlElement.innerHTML = html;\n\t\t}\n\t}\n\n\tpublic _removeHTMLContent(target: Container): void {\n\t\tlet htmlElement = target.getPrivate(\"htmlElement\");\n\t\tif (htmlElement) {\n\t\t\tthis._htmlElementContainer!.removeChild(htmlElement);\n\t\t}\n\t\t$array.remove(this._htmlEnabledContainers, target);\n\t}\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 { Theme } from \"./Theme\";\nimport type { IPoint } from \"./util/IPoint\";\nimport type { IRenderer, IPointerEvent } from \"./render/backend/Renderer\";\nimport type { Timezone } from \"./util/Timezone\";\n\nimport { Container } from \"./render/Container\";\nimport { Text } from \"./render/Text\";\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\";\nimport * as $type from \"./util/Type\";\n\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\nexport interface IRootSettings {\n\n\t/**\n\t * Indicates whether chart should use \"safe\" resolution on some memory-limiting\n\t * platforms such as Safari.\n\t *\n\t * @default true\n\t */\n\tuseSafeResolution?: boolean;\n\n\t/**\n\t * Allows defining margins around chart area for tooltips to go outside the\n\t * chart itself.\n\t *\n\t * @since 5.2.24\n\t */\n\ttooltipContainerBounds?: { top: number, left: number, right: number, bottom: number };\n\n\t/**\n\t * Set to `false` to disable all accessibility features.\n\t *\n\t * NOTE: once disabled, accessibility cannot be re-enabled on a live `Root` object.\n\t * \n\t * @default true\n\t * @since 5.3.0\n\t */\n\taccessible?: boolean;\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\tprotected _updateTick: boolean = true;\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 * @ignore\n\t * @todo needs description\n\t */\n\tpublic animationTime: number | null = null;\n\n\tprivate _animations: Array<IAnimation> = [];\n\n\tpublic _renderer: IRenderer;\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\tprotected _tooltipContainerSettings!: { top: number, left: number, right: number, bottom: number };\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 * If set, will format date/time in specific time zone.\n\t *\n\t * The value should be named time zone, e.g.:\n\t * `\"America/Vancouver\"`, `\"Australia/Sydney\"`, `\"UTC\"`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/getting-started/root-element/#Time_zone} for more info\n\t * @since 5.1.0\n\t */\n\tpublic timezone?: Timezone;\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\t * @see {@link https://www.amcharts.com/docs/v5/getting-started/root-element/#Performance} for more info\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 _a11yD: boolean = false;\n\tprotected _focusElementDirty: boolean = false;\n\tprotected _focusElementContainer: HTMLDivElement | undefined;\n\tprotected _focusedSprite: Sprite | undefined;\n\tprotected _isShift: boolean | undefined;\n\tprotected _keyboardDragPoint: IPoint | undefined;\n\tprotected _tooltipElementContainer: HTMLDivElement | undefined;\n\tprotected _readerAlertElement: HTMLDivElement | undefined;\n\n\tpublic _logo?: Container;\n\n\tpublic _tooltipDiv: HTMLDivElement | undefined;\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 _fontHash: string = \"\";\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 _htmlElementContainer: HTMLDivElement | undefined;\n\tprotected _htmlEnabledContainers: Container[] = [];\n\n\tprotected constructor(id: string | HTMLElement, settings: IRootSettings = {}, 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\tif (settings.accessible == false) {\n\t\t\tthis._a11yD = true;\n\t\t}\n\n\t\tif (settings.useSafeResolution == null) {\n\t\t\tsettings.useSafeResolution = true;\n\t\t}\n\n\t\tlet resolution;\n\n\t\tif (settings.useSafeResolution) {\n\t\t\tresolution = $utils.getSafeResolution();\n\t\t}\n\n\t\tthis._renderer = new CanvasRenderer(resolution);\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\tinner.style.height = \"100%\";\n\t\tdom.appendChild(inner);\n\n\t\tconst tooltipContainerBounds = settings.tooltipContainerBounds;\n\t\tif (tooltipContainerBounds) {\n\t\t\tthis._tooltipContainerSettings = tooltipContainerBounds;\n\t\t}\n\n\t\tthis._inner = inner;\n\n\t\tthis._updateComputedStyles();\n\n\t\tregistry.rootElements.push(this);\n\t}\n\n\n\tpublic static new(id: string | HTMLElement, settings?: IRootSettings): Root {\n\t\tconst root = new Root(id, settings, 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\tconst w = this.dom.offsetWidth;\n\t\t\tconst h = this.dom.offsetHeight;\n\t\t\tif ((w <= 150) || (h <= 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 rect = this.dom.getBoundingClientRect();\n\t\tconst width = Math.floor(rect.width);\n\t\tconst height = Math.floor(rect.height);\n\t\tconst rootContainer = Container.new(this, { visible: true, width, height });\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(width, height);\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//renderer.debugGhostView = true;\n\n\t\tthis._initResizeSensor();\n\n\t\t// HTML content holder\n\t\tconst htmlElementContainer = document.createElement(\"div\");\n\t\tthis._htmlElementContainer = htmlElementContainer;\n\t\thtmlElementContainer.className = \"am5-html-container\";\n\t\thtmlElementContainer.style.position = \"absolute\";\n\t\thtmlElementContainer.style.pointerEvents = \"none\";\n\t\tif (!this._tooltipContainerSettings) {\n\t\t\thtmlElementContainer.style.overflow = \"hidden\";\n\t\t}\n\t\tthis._inner.appendChild(htmlElementContainer);\n\n\t\tif (this._a11yD !== true) {\n\n\t\t\t// Create element which is used to make announcements to screen reader\n\t\t\tconst readerAlertElement = document.createElement(\"div\");\n\t\t\treaderAlertElement.className = \"am5-reader-container\";\n\t\t\treaderAlertElement.setAttribute(\"role\", \"alert\");\n\t\t\treaderAlertElement.style.zIndex = \"-100000\";\n\t\t\treaderAlertElement.style.opacity = \"0\";\n\t\t\treaderAlertElement.style.position = \"absolute\";\n\t\t\treaderAlertElement.style.top = \"0\";\n\t\t\tthis._readerAlertElement = readerAlertElement;\n\t\t\tthis._inner.appendChild(this._readerAlertElement);\n\n\t\t\tconst focusElementContainer = document.createElement(\"div\");\n\t\t\tfocusElementContainer.className = \"am5-focus-container\";\n\t\t\tfocusElementContainer.style.position = \"absolute\";\n\t\t\tfocusElementContainer.style.pointerEvents = \"none\";\n\t\t\tfocusElementContainer.style.top = \"0px\";\n\t\t\tfocusElementContainer.style.left = \"0px\";\n\t\t\tfocusElementContainer.style.overflow = \"hidden\";\n\t\t\tfocusElementContainer.style.width = width + \"px\";\n\t\t\tfocusElementContainer.style.height = height + \"px\";\n\n\t\t\tfocusElementContainer.setAttribute(\"role\", \"application\");\n\n\t\t\t$utils.setInteractive(focusElementContainer, false);\n\t\t\tthis._focusElementContainer = focusElementContainer;\n\t\t\tthis._inner.appendChild(this._focusElementContainer);\n\n\t\t\tconst tooltipElementContainer = document.createElement(\"div\");\n\t\t\tthis._tooltipElementContainer = tooltipElementContainer;\n\t\t\ttooltipElementContainer.className = \"am5-tooltip-container\";\n\t\t\tthis._inner.appendChild(tooltipElementContainer);\n\n\t\t\t// Add keyboard events for accessibility, e.g. simulating drag with arrow\n\t\t\t// keys and click with ENTER\n\t\t\tif ($utils.supports(\"keyboardevents\")) {\n\n\t\t\t\tthis._disposers.push($utils.addEventListener(window, \"keydown\", (ev: KeyboardEvent) => {\n\t\t\t\t\tif (ev.keyCode == 16) {\n\t\t\t\t\t\tthis._isShift = true;\n\t\t\t\t\t}\n\t\t\t\t}));\n\n\t\t\t\tthis._disposers.push($utils.addEventListener(window, \"keyup\", (ev: KeyboardEvent) => {\n\t\t\t\t\tif (ev.keyCode == 16) {\n\t\t\t\t\t\tthis._isShift = false;\n\t\t\t\t\t}\n\t\t\t\t}));\n\n\t\t\t\tthis._disposers.push($utils.addEventListener(focusElementContainer, \"keydown\", (ev: KeyboardEvent) => {\n\t\t\t\t\tconst focusedSprite = this._focusedSprite;\n\t\t\t\t\tif (focusedSprite) {\n\t\t\t\t\t\tif (ev.keyCode == 27) {\n\t\t\t\t\t\t\t// ESC pressed - lose current focus\n\t\t\t\t\t\t\t$utils.blur();\n\t\t\t\t\t\t\tthis._focusedSprite = undefined;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlet dragOffsetX = 0;\n\t\t\t\t\t\tlet dragOffsetY = 0;\n\t\t\t\t\t\t// TODO: figure out if using bogus MouseEvent is fine, or it will\n\t\t\t\t\t\t// fail on some platforms\n\t\t\t\t\t\tswitch (ev.keyCode) {\n\t\t\t\t\t\t\tcase 13:\n\t\t\t\t\t\t\t\tev.preventDefault();\n\t\t\t\t\t\t\t\tconst downEvent = renderer.getEvent(new MouseEvent(\"click\"));\n\t\t\t\t\t\t\t\tfocusedSprite.events.dispatch(\"click\", {\n\t\t\t\t\t\t\t\t\ttype: \"click\",\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\treturn;\n\t\t\t\t\t\t\tcase 37:\n\t\t\t\t\t\t\t\tdragOffsetX = -6;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 39:\n\t\t\t\t\t\t\t\tdragOffsetX = 6;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 38:\n\t\t\t\t\t\t\t\tdragOffsetY = -6;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 40:\n\t\t\t\t\t\t\t\tdragOffsetY = 6;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (dragOffsetX != 0 || dragOffsetY != 0) {\n\t\t\t\t\t\t\tev.preventDefault();\n\n\t\t\t\t\t\t\tif (!focusedSprite.isDragging()) {\n\t\t\t\t\t\t\t\t// Start dragging\n\t\t\t\t\t\t\t\tthis._keyboardDragPoint = {\n\t\t\t\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\t\t\t\ty: 0\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst downEvent = renderer.getEvent(new MouseEvent(\"mousedown\", {\n\t\t\t\t\t\t\t\t\tclientX: 0,\n\t\t\t\t\t\t\t\t\tclientY: 0\n\t\t\t\t\t\t\t\t}));\n\n\t\t\t\t\t\t\t\tif (focusedSprite.events.isEnabled(\"pointerdown\")) {\n\t\t\t\t\t\t\t\t\tfocusedSprite.events.dispatch(\"pointerdown\", {\n\t\t\t\t\t\t\t\t\t\ttype: \"pointerdown\",\n\t\t\t\t\t\t\t\t\t\toriginalEvent: downEvent.event,\n\t\t\t\t\t\t\t\t\t\tpoint: downEvent.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\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t// Move focus marker\n\t\t\t\t\t\t\t\t//this._positionFocusElement(focusedSprite);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Move incrementally\n\t\t\t\t\t\t\tconst dragPoint = this._keyboardDragPoint!;\n\t\t\t\t\t\t\tdragPoint.x += dragOffsetX;\n\t\t\t\t\t\t\tdragPoint.y += dragOffsetY;\n\t\t\t\t\t\t\tconst moveEvent = renderer.getEvent(new MouseEvent(\"mousemove\", {\n\t\t\t\t\t\t\t\tclientX: dragPoint.x,\n\t\t\t\t\t\t\t\tclientY: dragPoint.y\n\t\t\t\t\t\t\t}), false);\n\n\t\t\t\t\t\t\tif (focusedSprite.events.isEnabled(\"globalpointermove\")) {\n\t\t\t\t\t\t\t\tfocusedSprite.events.dispatch(\"globalpointermove\", {\n\t\t\t\t\t\t\t\t\ttype: \"globalpointermove\",\n\t\t\t\t\t\t\t\t\toriginalEvent: moveEvent.event,\n\t\t\t\t\t\t\t\t\tpoint: moveEvent.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}\n\t\t\t\t}));\n\n\t\t\t\tthis._disposers.push($utils.addEventListener(focusElementContainer, \"keyup\", (ev: KeyboardEvent) => {\n\t\t\t\t\tif (this._focusedSprite) {\n\t\t\t\t\t\tconst focusedSprite = this._focusedSprite;\n\t\t\t\t\t\tconst keyCode = ev.keyCode;\n\t\t\t\t\t\tswitch (keyCode) {\n\t\t\t\t\t\t\tcase 37:\n\t\t\t\t\t\t\tcase 39:\n\t\t\t\t\t\t\tcase 38:\n\t\t\t\t\t\t\tcase 40:\n\t\t\t\t\t\t\t\tif (focusedSprite.isDragging()) {\n\t\t\t\t\t\t\t\t\t// Simulate drag stop\n\t\t\t\t\t\t\t\t\tconst dragPoint = this._keyboardDragPoint!;\n\t\t\t\t\t\t\t\t\tconst upEvent = renderer.getEvent(new MouseEvent(\"mouseup\", {\n\t\t\t\t\t\t\t\t\t\tclientX: dragPoint.x,\n\t\t\t\t\t\t\t\t\t\tclientY: dragPoint.y\n\t\t\t\t\t\t\t\t\t}));\n\n\t\t\t\t\t\t\t\t\tif (focusedSprite.events.isEnabled(\"globalpointerup\")) {\n\t\t\t\t\t\t\t\t\t\tfocusedSprite.events.dispatch(\"globalpointerup\", {\n\t\t\t\t\t\t\t\t\t\t\ttype: \"globalpointerup\",\n\t\t\t\t\t\t\t\t\t\t\toriginalEvent: upEvent.event,\n\t\t\t\t\t\t\t\t\t\t\tpoint: upEvent.point,\n\t\t\t\t\t\t\t\t\t\t\tsimulated: true,\n\t\t\t\t\t\t\t\t\t\t\ttarget: focusedSprite\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//this._positionFocusElement(focusedSprite);\n\t\t\t\t\t\t\t\t\tthis._keyboardDragPoint = undefined;\n\t\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\t// this._dispatchEvent(\"globalpointerup\", target, upEvent);\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse if (focusedSprite.get(\"focusableGroup\")) {\n\t\t\t\t\t\t\t\t\t// Find next item in focusable group\n\t\t\t\t\t\t\t\t\tconst group = focusedSprite.get(\"focusableGroup\");\n\t\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\t\tlet index = items.indexOf(focusedSprite);\n\t\t\t\t\t\t\t\t\tconst lastIndex = items.length - 1;\n\t\t\t\t\t\t\t\t\tindex += (keyCode == 39 || keyCode == 40) ? 1 : -1;\n\t\t\t\t\t\t\t\t\tif (index < 0) {\n\t\t\t\t\t\t\t\t\t\tindex = lastIndex;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse if (index > lastIndex) {\n\t\t\t\t\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t$utils.focus(items[index].getPrivate(\"focusElement\")!.dom);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\n\t\tthis._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 rect = dom.getBoundingClientRect();\n\t\tconst w = Math.floor(rect.width);\n\t\tconst h = Math.floor(rect.height);\n\t\tif (w > 0 && h > 0) {\n\t\t\tconst htmlElementContainer = this._htmlElementContainer!;\n\t\t\thtmlElementContainer.style.width = w + \"px\";\n\t\t\thtmlElementContainer.style.height = h + \"px\";\n\n\t\t\tif (this._a11yD !== true) {\n\t\t\t\tconst focusElementContainer = this._focusElementContainer!;\n\t\t\t\tfocusElementContainer.style.width = w + \"px\";\n\t\t\t\tfocusElementContainer.style.height = h + \"px\";\n\t\t\t}\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 _renderFrame(currentTime: number): boolean {\n\t\tif (this._updateTick) {\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._checkComputedStyles();\n\t\t\tthis._runTickers(currentTime);\n\t\t\tthis._runAnimations(currentTime);\n\t\t\tthis._runDirties();\n\t\t\tthis._render();\n\t\t\tthis._positionHTMLElements();\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\treturn this._tickers.length === 0 &&\n\t\t\t\tthis._animations.length === 0 &&\n\t\t\t\t!this._isDirty;\n\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tprivate _runTicker(currentTime: number) {\n\t\tif (!this.isDisposed()) {\n\t\t\tthis.animationTime = currentTime;\n\n\t\t\tconst done = this._renderFrame(currentTime);\n\n\t\t\t// No more work to do\n\t\t\tif (done) {\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\tpublic _runTickerNow() {\n\t\tif (!this.isDisposed()) {\n\t\t\tfor (; ;) {\n\t\t\t\tconst currentTime = performance.now();\n\n\t\t\t\tthis.animationTime = currentTime;\n\n\t\t\t\tconst done = this._renderFrame(currentTime);\n\n\t\t\t\tif (done) {\n\t\t\t\t\tthis.animationTime = null;\n\t\t\t\t\tbreak;\n\t\t\t\t}\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\t/**\n\t * Returns whether the root is updating or not.\n\t */\n\tpublic get updateTick(): boolean {\n\t\treturn this._updateTick;\n\t}\n\n\t/**\n\t * Enables or disables the root updating.\n\t */\n\tpublic set updateTick(value: boolean) {\n\t\tthis._updateTick = value;\n\n\t\tif (value) {\n\t\t\tthis._startTicker();\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 _markDirty() {\n\t\tthis._isDirty = true;\n\t}\n\n\tpublic _markDirtyRedraw() {\n\t\tthis.events.once(\"frameended\", () => {\n\t\t\tthis._isDirty = true;\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\tpublic markDirtyGlobal(container?: Container): void {\n\t\tif (!container) {\n\t\t\tcontainer = this.container;\n\t\t}\n\t\tcontainer.walkChildren((child) => {\n\t\t\tif (child instanceof Container) {\n\t\t\t\tthis.markDirtyGlobal(child);\n\t\t\t}\n\t\t\tchild.markDirty();\n\t\t\tchild.markDirtyBounds();\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\t// TODO make this more efficient, maybe just return the renderer's width ?\n\t\treturn Math.floor(this.dom.getBoundingClientRect().width);\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\t// TODO make this more efficient, maybe just return the renderer's height ?\n\t\treturn Math.floor(this.dom.getBoundingClientRect().height);\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\tif (this._a11yD !== true) {\n\t\t\tthis._readerAlertElement!.innerHTML = $utils.stripTags(text);\n\t\t}\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\n\n\t}\n\n\tprotected _addTooltip() {\n\t\tif (!this.tooltipContainer) {\n\t\t\tconst tooltipContainerSettings = this._tooltipContainerSettings;\n\t\t\tconst tooltipContainer = this._rootContainer.children.push(Container.new(this, {\n\t\t\t\tposition: \"absolute\",\n\t\t\t\tisMeasured: false,\n\t\t\t\twidth: p100,\n\t\t\t\theight: p100,\n\t\t\t\tlayer: tooltipContainerSettings ? 35 : 30,\n\t\t\t\tlayerMargin: tooltipContainerSettings ? tooltipContainerSettings : undefined\n\t\t\t}));\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 (this._a11yD == true) {\n\t\t\treturn;\n\t\t}\n\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\tif (this._a11yD == true) {\n\t\t\treturn;\n\t\t}\n\n\t\t$array.remove(this._tabindexes, target);\n\t\tthis._invalidateTabindexes();\n\t}\n\n\tpublic _invalidateTabindexes(): void {\n\t\tif (this._a11yD == true) {\n\t\t\treturn;\n\t\t}\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._a11yD == true) {\n\t\t\treturn;\n\t\t}\n\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\tif (this._a11yD == true) {\n\t\t\treturn;\n\t\t}\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\") || this._a11yD == true) {\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\t\tif (this._a11yD == true) {\n\t\t\treturn;\n\t\t}\n\n\t\t$array.remove(this._tabindexes, target);\n\t\tconst focusElement = target.getPrivate(\"focusElement\");\n\t\tif (focusElement) {\n\t\t\tconst container = this._focusElementContainer!;\n\t\t\tcontainer.removeChild(focusElement.dom);\n\t\t\t$array.each(focusElement.disposers, (x) => {\n\t\t\t\tx.dispose();\n\t\t\t});\n\t\t}\n\t}\n\n\tpublic _hideFocusElement(target: Sprite): void {\n\t\tif (this._a11yD == true) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst focusElement = target.getPrivate(\"focusElement\")!;\n\t\tfocusElement.dom.style.display = \"none\";\n\t}\n\n\tprotected _moveFocusElement(index: number, target: Sprite): void {\n\t\tif (this._a11yD == true) {\n\t\t\treturn;\n\t\t}\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\tif (this._a11yD == true) {\n\t\t\treturn;\n\t\t}\n\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\tif (this._a11yD == true) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Get element\n\t\tconst focused = this._tabindexes[index];\n\n\t\t// Jump over hidden elements\n\t\tif (!focused.isVisibleDeep()) {\n\t\t\tthis._focusNext(<HTMLDivElement>ev.target, this._isShift ? -1 : 1);\n\t\t\treturn;\n\t\t}\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 _focusNext(el: HTMLDivElement, direction: 1 | -1): void {\n\t\tif (this._a11yD == true) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar focusableElements = Array.from(document.querySelectorAll([\n\t\t\t'a[href]',\n\t\t\t'area[href]',\n\t\t\t'button:not([disabled])',\n\t\t\t'details',\n\t\t\t'input:not([disabled])',\n\t\t\t'iframe:not([disabled])',\n\t\t\t'select:not([disabled])',\n\t\t\t'textarea:not([disabled])',\n\t\t\t'[contentEditable=\"\"]',\n\t\t\t'[contentEditable=\"true\"]',\n\t\t\t'[contentEditable=\"TRUE\"]',\n\t\t\t'[tabindex]:not([tabindex^=\"-\"])',\n\t\t\t//':not([disabled])'\n\t\t].join(',')));\n\n\t\tlet index = focusableElements.indexOf(el) + direction;\n\n\t\tif (index < 0) {\n\t\t\tindex = focusableElements.length - 1;\n\t\t}\n\t\telse if (index >= focusableElements.length) {\n\t\t\tindex = 0;\n\t\t}\n\n\t\t(<HTMLElement>focusableElements[index]).focus();\n\t}\n\n\tprotected _handleBlur(ev: FocusEvent, _index: number): void {\n\t\tif (this._a11yD == true) {\n\t\t\treturn;\n\t\t}\n\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\tif (this._a11yD == true) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst text = $utils.stripTags(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.top = \"-1000000px\";\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\n\t\treturn tooltipElement;\n\t}\n\n\tpublic _removeTooltipElement(target: Text): void {\n\t\tif (this._a11yD == true) {\n\t\t\treturn;\n\t\t}\n\t\tconst tooltipElement = target.getPrivate(\"tooltipElement\");\n\t\tif (tooltipElement) {\n\t\t\tconst parent = tooltipElement.parentElement;\n\t\t\tif (parent) {\n\t\t\t\tparent.removeChild(tooltipElement);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _invalidateAccessibility(target: Sprite): void {\n\t\tif (this._a11yD == true) {\n\t\t\treturn;\n\t\t}\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 * Converts root coordinates to document\n\t *\n\t * @param point Document point\n\t * @return Root point\n\t */\n\tpublic rootPointToDocument(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\tprotected _updateComputedStyles(): boolean {\n\t\tconst styles = window.getComputedStyle(this.dom);\n\t\tlet fontHash = \"\";\n\t\t$object.each(styles, (key, val) => {\n\t\t\tif ($type.isString(key) && key.match(/^font/)) {\n\t\t\t\tfontHash += val;\n\t\t\t}\n\t\t})\n\t\tconst changed = fontHash != this._fontHash;\n\t\tif (changed) {\n\t\t\tthis._fontHash = fontHash;\n\t\t}\n\t\treturn changed;\n\t}\n\n\tprotected _checkComputedStyles(): void {\n\t\tif (this._updateComputedStyles()) {\n\t\t\tthis._invalidateLabelBounds(this.container);\n\t\t}\n\t}\n\n\tprotected _invalidateLabelBounds(target: Sprite): void {\n\t\tif (target instanceof Container) {\n\t\t\ttarget.children.each((child) => {\n\t\t\t\tthis._invalidateLabelBounds(child);\n\t\t\t});\n\t\t}\n\t\telse if (target instanceof Text) {\n\t\t\ttarget.markDirtyBounds();\n\t\t}\n\t}\n\n\t/**\n\t * To all the clever heads out there. Yes, we did not make any attempts to\n\t * scramble this.\n\t *\n\t * This is a part of a tool meant for our users to manage their commercial\n\t * licenses for removal of amCharts branding from charts.\n\t *\n\t * The only legit way to do so is to purchase a commercial license for amCharts:\n\t * https://www.amcharts.com/online-store/\n\t *\n\t * Removing or altering this code, or disabling amCharts branding in any other\n\t * way is against the license and thus illegal.\n\t */\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\tpublic _licenseApplied(): void {\n\t\tif (this._logo) {\n\t\t\tthis._logo.set(\"forceHidden\", true);\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic get debugGhostView(): boolean {\n\t\treturn this._renderer.debugGhostView;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic set debugGhostView(value: boolean) {\n\t\tthis._renderer.debugGhostView = value;\n\t}\n\n\t/**\n\t * Set this to `true` if you need chart to require first a tap onto it before\n\t * touch gesture related functionality like zoom/pan is turned on.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/getting-started/root-element/#Touch_related_options} for more info\n\t * @default false\n\t * @since 5.2.9\n\t * @param value Needs a tap to activate touch functions\n\t */\n\tpublic set tapToActivate(value: boolean) {\n\t\tthis._renderer.tapToActivate = value;\n\t}\n\n\t/**\n\t * @return Needs a tap to activate touch functions\n\t */\n\tpublic get tapToActivate(): boolean {\n\t\treturn this._renderer.tapToActivate;\n\t}\n\n\t/**\n\t * If `tapToActivate` is set to `true`, this setting will determine number\n\t * of milliseconds the chart will stay \"active\", before releasing the\n\t * controls back to the page.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/getting-started/root-element/#Touch_related_options} for more info\n\t * @default 3000\n\t * @since 5.2.9\n\t * @param value Timeout\n\t */\n\tpublic set tapToActivateTimeout(value: number) {\n\t\tthis._renderer.tapToActivateTimeout = value;\n\t}\n\n\t/**\n\t * @return Timeout\n\t */\n\tpublic get tapToActivateTimeout(): number {\n\t\treturn this._renderer.tapToActivateTimeout;\n\t}\n\n\tpublic _makeHTMLElement(target: Container): HTMLDivElement {\n\n\t\t// Get container\n\t\tconst container = this._htmlElementContainer!;\n\n\t\t// Init\n\t\tconst htmlElement = document.createElement(\"div\");\n\t\ttarget.setPrivate(\"htmlElement\", htmlElement);\n\n\t\t//htmlElement.tabIndex = this.tabindex;\n\t\thtmlElement.style.position = \"absolute\";\n\t\thtmlElement.style.overflow = \"auto\";\n\t\thtmlElement.style.boxSizing = \"border-box\";\n\t\t$utils.setInteractive(htmlElement, true);\n\n\t\t// Translate events\n\t\tif (target.events.isEnabled(\"click\")) {\n\t\t\tthis._disposers.push($utils.addEventListener<PointerEvent | MouseEvent>(htmlElement, \"click\", (ev: IPointerEvent) => {\n\t\t\t\tconst downEvent = this._renderer.getEvent(ev);\n\t\t\t\ttarget.events.dispatch(\"click\", {\n\t\t\t\t\ttype: \"click\",\n\t\t\t\t\toriginalEvent: downEvent.event,\n\t\t\t\t\tpoint: downEvent.point,\n\t\t\t\t\tsimulated: false,\n\t\t\t\t\ttarget: target\n\t\t\t\t});\n\t\t\t}));\n\t\t}\n\n\t\tthis._positionHTMLElement(target);\n\n\t\tcontainer.append(htmlElement);\n\n\t\t$array.pushOne(this._htmlEnabledContainers, target);\n\n\t\treturn htmlElement;\n\t}\n\n\tpublic _positionHTMLElements(): void {\n\t\t$array.each(this._htmlEnabledContainers, (target) => {\n\t\t\tthis._positionHTMLElement(target);\n\t\t});\n\t}\n\n\tpublic _positionHTMLElement(target: Container): void {\n\t\tconst htmlElement = target.getPrivate(\"htmlElement\");\n\t\tif (htmlElement) {\n\n\t\t\t// Translate settings\n\t\t\tconst visualSettings = [\"paddingTop\", \"paddingRight\", \"paddingBottom\", \"paddingLeft\", \"minWidth\", \"minHeight\", \"maxWidth\", \"maxHeight\"];\n\t\t\t$array.each(visualSettings, (setting: any) => {\n\t\t\t\tconst value = target.get(setting);\n\t\t\t\tif (value) {\n\t\t\t\t\thtmlElement.style[setting] = value + \"px\";\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\thtmlElement.style[setting] = \"\";\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Deal with opacity\n\t\t\tconst opacity = target.compositeOpacity();\n\t\t\tsetTimeout(() => {\n\t\t\t\thtmlElement.style.opacity = opacity + \"\";\n\t\t\t}, 10);\n\n\t\t\tconst visible = target.isVisibleDeep();\n\t\t\tif (visible) {\n\t\t\t\thtmlElement.style.display = \"block\";\n\t\t\t}\n\n\t\t\t// Deal with position\n\t\t\tconst bounds = target.globalBounds();\n\t\t\thtmlElement.style.top = (bounds.top) + \"px\";\n\t\t\thtmlElement.style.left = (bounds.left) + \"px\";\n\n\t\t\t// Use width/height if those are set\n\t\t\tconst width = target.get(\"width\");\n\t\t\tconst height = target.get(\"height\");\n\n\t\t\tlet w: number = 0;\n\t\t\tlet h: number = 0;\n\n\t\t\tif (width) {\n\t\t\t\tw = target.width();\n\t\t\t}\n\n\t\t\tif (height) {\n\t\t\t\th = target.height();\n\t\t\t}\n\n\t\t\tif (!width || !height) {\n\t\t\t\thtmlElement.style.width = \"\";\n\t\t\t\thtmlElement.style.height = \"\";\n\t\t\t\tconst bbox = htmlElement.getBoundingClientRect();\n\t\t\t\tw = bbox.width;\n\t\t\t\th = bbox.height;\n\n\t\t\t\ttarget._adjustedLocalBounds = { left: 0, right: 0, top: 0, bottom: 0 };\n\t\t\t\ttarget.setPrivate(\"minWidth\", w);\n\t\t\t\ttarget.setPrivate(\"minHeight\", h);\n\t\t\t}\n\t\t\telse {\n\t\t\t\ttarget.removePrivate(\"minWidth\");\n\t\t\t\ttarget.removePrivate(\"minHeight\");\n\t\t\t}\n\n\t\t\tif (w > 0) {\n\t\t\t\thtmlElement.style.minWidth = (w) + \"px\";\n\t\t\t}\n\t\t\tif (h > 0) {\n\t\t\t\thtmlElement.style.minHeight = (h) + \"px\";\n\t\t\t}\n\n\t\t\t// Hide or show\n\t\t\tif (!visible || opacity == 0) {\n\t\t\t\thtmlElement.style.display = \"none\";\n\t\t\t}\n\n\t\t}\n\t}\n\n\tpublic _setHTMLContent(target: Container, html: string): void {\n\t\tlet htmlElement = target.getPrivate(\"htmlElement\");\n\t\tif (!htmlElement) {\n\t\t\thtmlElement = this._makeHTMLElement(target);\n\t\t}\n\t\tif (htmlElement.innerHTML != html) {\n\t\t\thtmlElement.innerHTML = html;\n\t\t}\n\t}\n\n\tpublic _removeHTMLContent(target: Container): void {\n\t\tlet htmlElement = target.getPrivate(\"htmlElement\");\n\t\tif (htmlElement) {\n\t\t\tthis._htmlElementContainer!.removeChild(htmlElement);\n\t\t}\n\t\t$array.remove(this._htmlEnabledContainers, target);\n\t}\n}\n"]}
|
package/.internal/core/Theme.js
CHANGED
|
@@ -7,8 +7,8 @@ import * as $array from "./util/Array";
|
|
|
7
7
|
* @see {@link https://www.amcharts.com/docs/v5/concepts/themes/} for more info
|
|
8
8
|
* @important
|
|
9
9
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
export class Theme {
|
|
11
|
+
constructor(root, isReal) {
|
|
12
12
|
Object.defineProperty(this, "_root", {
|
|
13
13
|
enumerable: true,
|
|
14
14
|
configurable: true,
|
|
@@ -35,22 +35,12 @@ var Theme = /** @class */ (function () {
|
|
|
35
35
|
* @param template Template
|
|
36
36
|
* @return Instantiated object
|
|
37
37
|
*/
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
x.setupDefaultRules();
|
|
45
|
-
return x;
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
Object.defineProperty(Theme.prototype, "setupDefaultRules", {
|
|
49
|
-
enumerable: false,
|
|
50
|
-
configurable: true,
|
|
51
|
-
writable: true,
|
|
52
|
-
value: function () { }
|
|
53
|
-
});
|
|
38
|
+
static new(root) {
|
|
39
|
+
const x = (new this(root, true));
|
|
40
|
+
x.setupDefaultRules();
|
|
41
|
+
return x;
|
|
42
|
+
}
|
|
43
|
+
setupDefaultRules() { }
|
|
54
44
|
/**
|
|
55
45
|
* Looks up the rules for a specific theme class.
|
|
56
46
|
*
|
|
@@ -58,14 +48,9 @@ var Theme = /** @class */ (function () {
|
|
|
58
48
|
* @param themeClass Theme class
|
|
59
49
|
* @return Array<IRule<A>>
|
|
60
50
|
*/
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
writable: true,
|
|
65
|
-
value: function (themeClass) {
|
|
66
|
-
return this._rules[themeClass];
|
|
67
|
-
}
|
|
68
|
-
});
|
|
51
|
+
_lookupRules(themeClass) {
|
|
52
|
+
return this._rules[themeClass];
|
|
53
|
+
}
|
|
69
54
|
/**
|
|
70
55
|
* Creates a [[Template]] for specific theme class and tags.
|
|
71
56
|
*
|
|
@@ -77,39 +62,33 @@ var Theme = /** @class */ (function () {
|
|
|
77
62
|
* @param themeTags Theme tags
|
|
78
63
|
* @return Template
|
|
79
64
|
*/
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
themeTags.sort($order.compare);
|
|
91
|
-
var _a = $array.getSortedIndex(rules, function (x) {
|
|
92
|
-
var order = $order.compare(x.tags.length, themeTags.length);
|
|
93
|
-
if (order === 0) {
|
|
94
|
-
return $order.compareArray(x.tags, themeTags, $order.compare);
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
return order;
|
|
98
|
-
}
|
|
99
|
-
}), index = _a.index, found = _a.found;
|
|
100
|
-
if (found) {
|
|
101
|
-
return rules[index].template;
|
|
65
|
+
ruleRaw(themeClass, themeTags = []) {
|
|
66
|
+
let rules = this._rules[themeClass];
|
|
67
|
+
if (!rules) {
|
|
68
|
+
rules = this._rules[themeClass] = [];
|
|
69
|
+
}
|
|
70
|
+
themeTags.sort($order.compare);
|
|
71
|
+
const { index, found } = $array.getSortedIndex(rules, (x) => {
|
|
72
|
+
const order = $order.compare(x.tags.length, themeTags.length);
|
|
73
|
+
if (order === 0) {
|
|
74
|
+
return $order.compareArray(x.tags, themeTags, $order.compare);
|
|
102
75
|
}
|
|
103
76
|
else {
|
|
104
|
-
|
|
105
|
-
rules.splice(index, 0, {
|
|
106
|
-
tags: themeTags,
|
|
107
|
-
template: template,
|
|
108
|
-
});
|
|
109
|
-
return template;
|
|
77
|
+
return order;
|
|
110
78
|
}
|
|
79
|
+
});
|
|
80
|
+
if (found) {
|
|
81
|
+
return rules[index].template;
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
const template = Template.new({});
|
|
85
|
+
rules.splice(index, 0, {
|
|
86
|
+
tags: themeTags,
|
|
87
|
+
template,
|
|
88
|
+
});
|
|
89
|
+
return template;
|
|
111
90
|
}
|
|
112
|
-
}
|
|
91
|
+
}
|
|
113
92
|
/**
|
|
114
93
|
* Creates a [[Template]] for specific theme class and tags.
|
|
115
94
|
*
|
|
@@ -118,16 +97,8 @@ var Theme = /** @class */ (function () {
|
|
|
118
97
|
* @param themeTags Theme tags
|
|
119
98
|
* @return Template
|
|
120
99
|
*/
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
value: function (themeClass, themeTags) {
|
|
126
|
-
if (themeTags === void 0) { themeTags = []; }
|
|
127
|
-
return this.ruleRaw(themeClass, themeTags);
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
return Theme;
|
|
131
|
-
}());
|
|
132
|
-
export { Theme };
|
|
100
|
+
rule(themeClass, themeTags = []) {
|
|
101
|
+
return this.ruleRaw(themeClass, themeTags);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
133
104
|
//# sourceMappingURL=Theme.js.map
|