@amcharts/amcharts5 5.1.7 → 5.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. package/.internal/charts/flow/ChordLink.d.ts +12 -0
  2. package/.internal/charts/flow/ChordLink.d.ts.map +1 -1
  3. package/.internal/charts/flow/ChordLink.js.map +1 -1
  4. package/.internal/charts/flow/Flow.d.ts +2 -0
  5. package/.internal/charts/flow/Flow.d.ts.map +1 -1
  6. package/.internal/charts/flow/Flow.js +17 -0
  7. package/.internal/charts/flow/Flow.js.map +1 -1
  8. package/.internal/charts/flow/FlowNodes.d.ts +7 -0
  9. package/.internal/charts/flow/FlowNodes.d.ts.map +1 -1
  10. package/.internal/charts/flow/FlowNodes.js +7 -0
  11. package/.internal/charts/flow/FlowNodes.js.map +1 -1
  12. package/.internal/charts/flow/Sankey.d.ts.map +1 -1
  13. package/.internal/charts/flow/Sankey.js +59 -57
  14. package/.internal/charts/flow/Sankey.js.map +1 -1
  15. package/.internal/charts/funnel/FunnelSeries.d.ts +9 -0
  16. package/.internal/charts/funnel/FunnelSeries.d.ts.map +1 -1
  17. package/.internal/charts/funnel/FunnelSeries.js.map +1 -1
  18. package/.internal/charts/hierarchy/Hierarchy.d.ts +36 -0
  19. package/.internal/charts/hierarchy/Hierarchy.d.ts.map +1 -1
  20. package/.internal/charts/hierarchy/Hierarchy.js.map +1 -1
  21. package/.internal/charts/map/MapChart.d.ts +2 -0
  22. package/.internal/charts/map/MapChart.d.ts.map +1 -1
  23. package/.internal/charts/map/MapChart.js +30 -3
  24. package/.internal/charts/map/MapChart.js.map +1 -1
  25. package/.internal/charts/map/MapPointSeries.d.ts +6 -0
  26. package/.internal/charts/map/MapPointSeries.d.ts.map +1 -1
  27. package/.internal/charts/map/MapPointSeries.js.map +1 -1
  28. package/.internal/charts/percent/PercentSeries.d.ts +18 -0
  29. package/.internal/charts/percent/PercentSeries.d.ts.map +1 -1
  30. package/.internal/charts/percent/PercentSeries.js.map +1 -1
  31. package/.internal/charts/pie/PieSeries.d.ts +3 -0
  32. package/.internal/charts/pie/PieSeries.d.ts.map +1 -1
  33. package/.internal/charts/pie/PieSeries.js.map +1 -1
  34. package/.internal/charts/radar/AxisRendererCircular.d.ts +12 -0
  35. package/.internal/charts/radar/AxisRendererCircular.d.ts.map +1 -1
  36. package/.internal/charts/radar/AxisRendererCircular.js.map +1 -1
  37. package/.internal/charts/radar/AxisRendererRadial.d.ts +12 -0
  38. package/.internal/charts/radar/AxisRendererRadial.d.ts.map +1 -1
  39. package/.internal/charts/radar/AxisRendererRadial.js.map +1 -1
  40. package/.internal/charts/radar/RadarChart.d.ts +2 -0
  41. package/.internal/charts/radar/RadarChart.d.ts.map +1 -1
  42. package/.internal/charts/radar/RadarChart.js +14 -0
  43. package/.internal/charts/radar/RadarChart.js.map +1 -1
  44. package/.internal/charts/radar/RadarColumnSeries.d.ts +15 -0
  45. package/.internal/charts/radar/RadarColumnSeries.d.ts.map +1 -1
  46. package/.internal/charts/radar/RadarColumnSeries.js.map +1 -1
  47. package/.internal/charts/radar/RadarCursor.d.ts +12 -0
  48. package/.internal/charts/radar/RadarCursor.d.ts.map +1 -1
  49. package/.internal/charts/radar/RadarCursor.js.map +1 -1
  50. package/.internal/charts/wordcloud/WordCloud.d.ts +3 -0
  51. package/.internal/charts/wordcloud/WordCloud.d.ts.map +1 -1
  52. package/.internal/charts/wordcloud/WordCloud.js.map +1 -1
  53. package/.internal/charts/xy/XYChart.d.ts +45 -0
  54. package/.internal/charts/xy/XYChart.d.ts.map +1 -1
  55. package/.internal/charts/xy/XYChart.js +225 -17
  56. package/.internal/charts/xy/XYChart.js.map +1 -1
  57. package/.internal/charts/xy/XYChartDefaultTheme.js +3 -3
  58. package/.internal/charts/xy/XYChartDefaultTheme.js.map +1 -1
  59. package/.internal/charts/xy/XYCursor.d.ts.map +1 -1
  60. package/.internal/charts/xy/XYCursor.js +8 -1
  61. package/.internal/charts/xy/XYCursor.js.map +1 -1
  62. package/.internal/charts/xy/axes/Axis.js +1 -1
  63. package/.internal/charts/xy/axes/Axis.js.map +1 -1
  64. package/.internal/charts/xy/axes/AxisLabel.d.ts.map +1 -1
  65. package/.internal/charts/xy/axes/AxisLabel.js.map +1 -1
  66. package/.internal/charts/xy/axes/AxisRenderer.d.ts +3 -0
  67. package/.internal/charts/xy/axes/AxisRenderer.d.ts.map +1 -1
  68. package/.internal/charts/xy/axes/AxisRenderer.js.map +1 -1
  69. package/.internal/charts/xy/axes/AxisRendererX.d.ts.map +1 -1
  70. package/.internal/charts/xy/axes/AxisRendererX.js +7 -2
  71. package/.internal/charts/xy/axes/AxisRendererX.js.map +1 -1
  72. package/.internal/charts/xy/axes/AxisRendererY.js +2 -2
  73. package/.internal/charts/xy/axes/AxisRendererY.js.map +1 -1
  74. package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
  75. package/.internal/charts/xy/axes/DateAxis.js +4 -1
  76. package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
  77. package/.internal/charts/xy/axes/DurationAxis.d.ts +5 -0
  78. package/.internal/charts/xy/axes/DurationAxis.d.ts.map +1 -1
  79. package/.internal/charts/xy/axes/DurationAxis.js.map +1 -1
  80. package/.internal/charts/xy/axes/GaplessDateAxis.d.ts +3 -0
  81. package/.internal/charts/xy/axes/GaplessDateAxis.d.ts.map +1 -1
  82. package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
  83. package/.internal/charts/xy/axes/ValueAxis.d.ts +75 -0
  84. package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
  85. package/.internal/charts/xy/axes/ValueAxis.js +110 -71
  86. package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
  87. package/.internal/charts/xy/series/BaseColumnSeries.d.ts.map +1 -1
  88. package/.internal/charts/xy/series/BaseColumnSeries.js +9 -0
  89. package/.internal/charts/xy/series/BaseColumnSeries.js.map +1 -1
  90. package/.internal/charts/xy/series/Candlestick.d.ts +27 -0
  91. package/.internal/charts/xy/series/Candlestick.d.ts.map +1 -1
  92. package/.internal/charts/xy/series/Candlestick.js.map +1 -1
  93. package/.internal/charts/xy/series/CandlestickSeries.d.ts +6 -1
  94. package/.internal/charts/xy/series/CandlestickSeries.d.ts.map +1 -1
  95. package/.internal/charts/xy/series/CandlestickSeries.js.map +1 -1
  96. package/.internal/charts/xy/series/ColumnSeries.d.ts +3 -0
  97. package/.internal/charts/xy/series/ColumnSeries.d.ts.map +1 -1
  98. package/.internal/charts/xy/series/ColumnSeries.js.map +1 -1
  99. package/.internal/charts/xy/series/LineSeries.d.ts.map +1 -1
  100. package/.internal/charts/xy/series/LineSeries.js +3 -0
  101. package/.internal/charts/xy/series/LineSeries.js.map +1 -1
  102. package/.internal/charts/xy/series/OHLCSeries.d.ts +3 -0
  103. package/.internal/charts/xy/series/OHLCSeries.d.ts.map +1 -1
  104. package/.internal/charts/xy/series/OHLCSeries.js.map +1 -1
  105. package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
  106. package/.internal/charts/xy/series/XYSeries.js +6 -0
  107. package/.internal/charts/xy/series/XYSeries.js.map +1 -1
  108. package/.internal/core/Classes.d.ts +14 -8
  109. package/.internal/core/Classes.d.ts.map +1 -1
  110. package/.internal/core/Classes.js.map +1 -1
  111. package/.internal/core/Root.d.ts.map +1 -1
  112. package/.internal/core/Root.js +1 -0
  113. package/.internal/core/Root.js.map +1 -1
  114. package/.internal/core/render/Graphics.d.ts +2 -0
  115. package/.internal/core/render/Graphics.d.ts.map +1 -1
  116. package/.internal/core/render/Graphics.js +1 -1
  117. package/.internal/core/render/Graphics.js.map +1 -1
  118. package/.internal/core/render/Legend.d.ts.map +1 -1
  119. package/.internal/core/render/Legend.js +7 -0
  120. package/.internal/core/render/Legend.js.map +1 -1
  121. package/.internal/core/render/Series.d.ts.map +1 -1
  122. package/.internal/core/render/Series.js +11 -7
  123. package/.internal/core/render/Series.js.map +1 -1
  124. package/.internal/core/render/Sprite.d.ts.map +1 -1
  125. package/.internal/core/render/Sprite.js +15 -1
  126. package/.internal/core/render/Sprite.js.map +1 -1
  127. package/.internal/core/render/VerticalLayout.js +1 -1
  128. package/.internal/core/render/VerticalLayout.js.map +1 -1
  129. package/.internal/core/render/backend/CanvasRenderer.d.ts +4 -5
  130. package/.internal/core/render/backend/CanvasRenderer.d.ts.map +1 -1
  131. package/.internal/core/render/backend/CanvasRenderer.js +66 -35
  132. package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
  133. package/.internal/core/render/backend/Renderer.d.ts +1 -0
  134. package/.internal/core/render/backend/Renderer.d.ts.map +1 -1
  135. package/.internal/core/render/backend/Renderer.js.map +1 -1
  136. package/.internal/core/util/Benchmark.js +1 -1
  137. package/.internal/core/util/Benchmark.js.map +1 -1
  138. package/.internal/core/util/Entity.d.ts +1 -1
  139. package/.internal/core/util/Entity.d.ts.map +1 -1
  140. package/.internal/core/util/Entity.js +1 -1
  141. package/.internal/core/util/Entity.js.map +1 -1
  142. package/.internal/core/util/Language.js +3 -3
  143. package/.internal/core/util/Language.js.map +1 -1
  144. package/.internal/core/util/PopulateString.js +12 -2
  145. package/.internal/core/util/PopulateString.js.map +1 -1
  146. package/.internal/core/util/ResizeSensor.d.ts.map +1 -1
  147. package/.internal/core/util/ResizeSensor.js +2 -3
  148. package/.internal/core/util/ResizeSensor.js.map +1 -1
  149. package/.internal/core/util/Template.d.ts +1 -1
  150. package/.internal/core/util/Template.d.ts.map +1 -1
  151. package/.internal/core/util/Template.js.map +1 -1
  152. package/.internal/core/util/Time.d.ts +1 -0
  153. package/.internal/core/util/Time.d.ts.map +1 -1
  154. package/.internal/core/util/Time.js +12 -0
  155. package/.internal/core/util/Time.js.map +1 -1
  156. package/.internal/core/util/Utils.js +1 -1
  157. package/.internal/core/util/Utils.js.map +1 -1
  158. package/.internal/plugins/exporting/Exporting.d.ts +0 -4
  159. package/.internal/plugins/exporting/Exporting.d.ts.map +1 -1
  160. package/.internal/plugins/exporting/Exporting.js +4 -49
  161. package/.internal/plugins/exporting/Exporting.js.map +1 -1
  162. package/.internal/plugins/json/Classes-script.d.ts +271 -0
  163. package/.internal/plugins/json/Classes-script.d.ts.map +1 -0
  164. package/.internal/plugins/json/Classes-script.js +139 -0
  165. package/.internal/plugins/json/Classes-script.js.map +1 -0
  166. package/.internal/plugins/json/Classes.d.ts +271 -0
  167. package/.internal/plugins/json/Classes.d.ts.map +1 -0
  168. package/.internal/plugins/json/Classes.js +139 -0
  169. package/.internal/plugins/json/Classes.js.map +1 -0
  170. package/.internal/plugins/json/Json.d.ts +7 -0
  171. package/.internal/plugins/json/Json.d.ts.map +1 -0
  172. package/.internal/plugins/json/Json.js +266 -0
  173. package/.internal/plugins/json/Json.js.map +1 -0
  174. package/CHANGELOG.md +51 -0
  175. package/examples/javascript/flow-chord/package.json +1 -1
  176. package/examples/javascript/flow-chord-directed/package.json +1 -1
  177. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  178. package/examples/javascript/flow-sankey/package.json +1 -1
  179. package/examples/javascript/gauge/package.json +1 -1
  180. package/examples/javascript/gauge-bands/package.json +1 -1
  181. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  182. package/examples/javascript/hierarchy-pack/package.json +1 -1
  183. package/examples/javascript/hierarchy-partition/package.json +1 -1
  184. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  185. package/examples/javascript/hierarchy-tree/package.json +1 -1
  186. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  187. package/examples/javascript/json/README.md +6 -0
  188. package/examples/javascript/json/index.css +11 -0
  189. package/examples/javascript/json/index.html +12 -0
  190. package/examples/javascript/json/index.js +94 -0
  191. package/examples/javascript/json/package.json +16 -0
  192. package/examples/javascript/json/webpack.config.js +38 -0
  193. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  194. package/examples/javascript/map-day-and-night/package.json +1 -1
  195. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  196. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  197. package/examples/javascript/map-with-bubbles/package.json +1 -1
  198. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  199. package/examples/javascript/misc-40-charts/package.json +1 -1
  200. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  201. package/examples/javascript/pie-chart/package.json +1 -1
  202. package/examples/javascript/pie-donut-chart/package.json +1 -1
  203. package/examples/javascript/pie-variable-radius/package.json +1 -1
  204. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  205. package/examples/javascript/radar-heat-map/package.json +1 -1
  206. package/examples/javascript/radar-line/package.json +1 -1
  207. package/examples/javascript/radar-time-line/package.json +1 -1
  208. package/examples/javascript/sliced-funnel/package.json +1 -1
  209. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  210. package/examples/javascript/sliced-pyramid/package.json +1 -1
  211. package/examples/javascript/venn-diagram/package.json +1 -1
  212. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  213. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  214. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  215. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  216. package/examples/javascript/xy-bubble/package.json +1 -1
  217. package/examples/javascript/xy-candlestick/package.json +1 -1
  218. package/examples/javascript/xy-clustered-column/package.json +1 -1
  219. package/examples/javascript/xy-column/package.json +1 -1
  220. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  221. package/examples/javascript/xy-data-grouping/package.json +1 -1
  222. package/examples/javascript/xy-draggable-range/package.json +1 -1
  223. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  224. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  225. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  226. package/examples/javascript/xy-line/package.json +1 -1
  227. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  228. package/examples/javascript/xy-live-data/package.json +1 -1
  229. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  230. package/examples/javascript/xy-ohlc/package.json +1 -1
  231. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  232. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  233. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  234. package/examples/javascript/xy-stacked-column/package.json +1 -1
  235. package/examples/javascript/xy-stacked-step/package.json +1 -1
  236. package/examples/javascript/xy-stock/package.json +1 -1
  237. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  238. package/examples/typescript/flow-chord/package.json +1 -1
  239. package/examples/typescript/flow-chord-directed/package.json +1 -1
  240. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  241. package/examples/typescript/flow-sankey/package.json +1 -1
  242. package/examples/typescript/gauge/package.json +1 -1
  243. package/examples/typescript/gauge-bands/package.json +1 -1
  244. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  245. package/examples/typescript/hierarchy-pack/package.json +1 -1
  246. package/examples/typescript/hierarchy-partition/package.json +1 -1
  247. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  248. package/examples/typescript/hierarchy-tree/package.json +1 -1
  249. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  250. package/examples/typescript/json/README.md +6 -0
  251. package/examples/typescript/json/index.css +11 -0
  252. package/examples/typescript/json/index.html +12 -0
  253. package/examples/typescript/json/index.ts +94 -0
  254. package/examples/typescript/json/package.json +18 -0
  255. package/examples/typescript/json/tsconfig.json +12 -0
  256. package/examples/typescript/json/webpack.config.js +45 -0
  257. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  258. package/examples/typescript/map-day-and-night/package.json +1 -1
  259. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  260. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  261. package/examples/typescript/map-with-bubbles/package.json +1 -1
  262. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  263. package/examples/typescript/misc-40-charts/package.json +1 -1
  264. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  265. package/examples/typescript/pie-chart/package.json +1 -1
  266. package/examples/typescript/pie-donut-chart/package.json +1 -1
  267. package/examples/typescript/pie-variable-radius/package.json +1 -1
  268. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  269. package/examples/typescript/radar-heat-map/package.json +1 -1
  270. package/examples/typescript/radar-line/package.json +1 -1
  271. package/examples/typescript/radar-time-line/package.json +1 -1
  272. package/examples/typescript/sliced-funnel/package.json +1 -1
  273. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  274. package/examples/typescript/sliced-pyramid/package.json +1 -1
  275. package/examples/typescript/venn-diagram/package.json +1 -1
  276. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  277. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  278. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  279. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  280. package/examples/typescript/xy-bubble/package.json +1 -1
  281. package/examples/typescript/xy-candlestick/package.json +1 -1
  282. package/examples/typescript/xy-clustered-column/package.json +1 -1
  283. package/examples/typescript/xy-column/package.json +1 -1
  284. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  285. package/examples/typescript/xy-data-grouping/package.json +1 -1
  286. package/examples/typescript/xy-draggable-range/package.json +1 -1
  287. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  288. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  289. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  290. package/examples/typescript/xy-line/package.json +1 -1
  291. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  292. package/examples/typescript/xy-live-data/package.json +1 -1
  293. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  294. package/examples/typescript/xy-ohlc/package.json +1 -1
  295. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  296. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  297. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  298. package/examples/typescript/xy-stacked-column/package.json +1 -1
  299. package/examples/typescript/xy-stacked-step/package.json +1 -1
  300. package/examples/typescript/xy-stock/package.json +1 -1
  301. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  302. package/index.d.ts +4 -0
  303. package/index.d.ts.map +1 -1
  304. package/index.js +4 -0
  305. package/index.js.map +1 -1
  306. package/locales/lt_LT.js +25 -25
  307. package/locales/lt_LT.js.map +1 -1
  308. package/package.json +10 -9
  309. package/plugins/json.d.ts +2 -0
  310. package/plugins/json.d.ts.map +1 -0
  311. package/plugins/json.js +2 -0
  312. package/plugins/json.js.map +1 -0
  313. package/xy.d.ts +1 -0
  314. package/xy.d.ts.map +1 -1
  315. package/xy.js +1 -0
  316. package/xy.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Entity.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Entity.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Root } from \"../Root\";\nimport type { Template, ApplyState } from \"./Template\";\nimport type { Theme, IRule } from \"../Theme\";\nimport type { ILocale } from \"./Language\";\n\nimport { IDisposer, Disposer } from \"./Disposer\";\nimport { EventDispatcher, Events } from \"./EventDispatcher\";\nimport { Time, IAnimation, getInterpolate } from \"./Animation\";\nimport { States } from \"./States\";\nimport { registry } from \"../Registry\";\n\nimport * as $object from \"./Object\";\nimport * as $ease from \"./Ease\";\nimport * as $array from \"./Array\";\nimport * as $order from \"./Order\";\n\n/**\n * @ignore\n */\nexport type Dirty<A> = { [K in keyof A]?: boolean };\n\n\n/**\n * Allows to dynamically modify setting value of its target element.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/adapters/} for more info\n */\nexport class Adapters<E extends Settings> {\n\tprivate _entity: E;\n\tprivate _callbacks: { [K in keyof E[\"_settings\"]]?: Array<<O extends E[\"_settings\"]>(value: O[K], target?: O, key?: K) => O[K]> } = {};\n\tprivate _disabled: { [K in keyof E[\"_settings\"]]?: boolean } = {};\n\n\tconstructor(entity: E) {\n\t\tthis._entity = entity;\n\t}\n\n\t/**\n\t * Add a function (`callback`) that will modify value for setting `key`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/adapters/} for more info\n\t */\n\tpublic add<Key extends keyof E[\"_settings\"]>(key: Key, callback: <O extends E[\"_settings\"]>(value: O[Key], target?: O, key?: Key) => O[Key]): IDisposer {\n\t\tlet callbacks = this._callbacks[key];\n\n\t\tif (callbacks === undefined) {\n\t\t\tcallbacks = this._callbacks[key] = [];\n\t\t}\n\n\t\tcallbacks.push(callback);\n\n\t\tthis._entity._markDirtyKey(key);\n\n\t\treturn new Disposer(() => {\n\t\t\tif ($array.removeFirst(callbacks!, callback)) {\n\t\t\t\tthis._entity._markDirtyKey(key);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Removes all adapters for the specific key.\n\t *\n\t * @since 5.1.0\n\t */\n\tpublic remove<Key extends keyof E[\"_settings\"]>(key: Key) {\n\t\tconst callbacks = this._callbacks[key];\n\n\t\tif (callbacks !== undefined) {\n\t\t\tdelete this._callbacks[key];\n\n\t\t\tif (callbacks.length !== 0) {\n\t\t\t\tthis._entity._markDirtyKey(key);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Enables (previously disabled) adapters for specific key.\n\t *\n\t * @since 5.1.0\n\t */\n\tpublic enable<Key extends keyof E[\"_settings\"]>(key: Key) {\n\t\tif (this._disabled[key]) {\n\t\t\tdelete this._disabled[key];\n\t\t\tthis._entity._markDirtyKey(key);\n\t\t}\n\t}\n\n\t/**\n\t * Disables all adapters for specific key.\n\t *\n\t * @since 5.1.0\n\t */\n\tpublic disable<Key extends keyof E[\"_settings\"]>(key: Key) {\n\t\tif (!this._disabled[key]) {\n\t\t\tthis._disabled[key] = true;\n\t\t\tthis._entity._markDirtyKey(key);\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic fold<Key extends keyof E[\"_settings\"]>(key: Key, value: E[\"_settings\"][Key]): E[\"_settings\"][Key] {\n\t\tif (!this._disabled[key]) {\n\t\t\tconst callbacks = this._callbacks[key];\n\n\t\t\tif (callbacks !== undefined) {\n\t\t\t\tfor (let i = 0, len = callbacks.length; i < len; ++i) {\n\t\t\t\t\tvalue = callbacks[i](value, this._entity, key);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t}\n}\n\n\nexport interface IEntitySettings {\n\n\t/**\n\t * Tags which can be used by the theme rules.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/themes/} for more info\n\t */\n\tthemeTags?: Array<string>;\n\n\t/**\n\t * Tags which can be used by the theme rules.\n\t *\n\t * These tags only apply to this object, not any children.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/themes/} for more info\n\t */\n\tthemeTagsSelf?: Array<string>;\n\n\t/**\n\t * A list of themes applied to the element.\n\t */\n\tthemes?: Array<Theme>;\n\n\n\t/**\n\t * Duration of transition from one state to another.\n\t */\n\tstateAnimationDuration?:number;\n\n\t/**\n\t * Easing of transition from one state to another.\n\t */\n\tstateAnimationEasing?:$ease.Easing;\n\n\t/**\n\t * A custom string ID for the element.\n\t *\n\t * If set, element can be looked up via `am5.registry.entitiesById`.\n\t *\n\t * Will raise error if an element with the same ID already exists.\n\t */\n\tid?: string;\n\n\t/**\n\t * A storage for any custom user data that needs to be associated with the\n\t * element.\n\t */\n\tuserData?: any;\n\n}\n\nexport interface IEntityPrivate {\n}\n\nexport interface IEntityEvents {\n}\n\n/**\n * Animation options.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/} for more info\n */\nexport interface AnimationOptions<Key, Value> {\n\n\t/**\n\t * A setting key to animate value for.\n\t */\n\tkey: Key,\n\n\t/**\n\t * Initial value to animate from. If not set, will use current value.\n\t */\n\tfrom?: Value;\n\n\t/**\n\t * Target value to animate to.\n\t */\n\tto: Value;\n\n\t/**\n\t * Animation duration in milliseconds.\n\t */\n\tduration: number;\n\n\t/**\n\t * Easing function. Defaults to linear.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/#Easing_functions} for more info\n\t */\n\teasing?: $ease.Easing;\n\n\t/**\n\t * How many times to play the animation. Defaults to 1.\n\t */\n\tloops?: number;\n}\n\nexport interface IAnimationEvents {\n\t/**\n\t * Invoked when animation was stopped, which happens in these situations:\n\t * 1. When the animation reached the end.\n\t * 2. When the `stop()` method is called.\n\t * 3. When a new animation starts for the same key.\n\t * 4. When calling `set` for the same key.\n\t */\n\tstopped: {};\n}\n\n/**\n * Animation object.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/} for more info\n */\nexport class Animation<Value> {\n\tprivate _from: Value;\n\tprivate _to: Value;\n\tprivate _duration: number;\n\tprivate _easing: $ease.Easing;\n\tprivate _loops: number;\n\tprivate _interpolate: <A extends Value>(diff: Time, from: A, to: A) => A;\n\tprivate _oldTime: number | null;\n\tprivate _time: number = 0;\n\n\tpublic _stopped: boolean = false;\n\tpublic _playing: boolean = true;\n\n\tpublic events: EventDispatcher<Events<this, IAnimationEvents>> = new EventDispatcher();\n\n\tconstructor(from: Value, to: Value, duration: number, easing: $ease.Easing, loops: number, startingTime: number | null) {\n\t\tthis._from = from;\n\t\tthis._to = to;\n\t\tthis._duration = duration;\n\t\tthis._easing = easing;\n\t\tthis._loops = loops;\n\t\tthis._interpolate = getInterpolate(from, to);\n\t\tthis._oldTime = startingTime;\n\t}\n\n\tpublic get to() {\n\t\treturn this._to;\n\t}\n\n\tpublic get from() {\n\t\treturn this._from;\n\t}\n\n\tpublic get playing() {\n\t\treturn this._playing;\n\t}\n\n\tpublic get stopped() {\n\t\treturn this._stopped;\n\t}\n\n\tpublic stop(): void {\n\t\tif (!this._stopped) {\n\t\t\tthis._stopped = true;\n\t\t\tthis._playing = false;\n\n\t\t\tif (this.events.isEnabled(\"stopped\")) {\n\t\t\t\tthis.events.dispatch(\"stopped\", {\n\t\t\t\t\ttype: \"stopped\",\n\t\t\t\t\ttarget: this,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic pause(): void {\n\t\tthis._playing = false;\n\t\tthis._oldTime = null;\n\t}\n\n\tpublic play(): void {\n\t\tif (!this._stopped) {\n\t\t\tthis._playing = true;\n\t\t}\n\t}\n\n\tpublic get percentage(): Time {\n\t\treturn this._time / this._duration;\n\t}\n\n\tpublic waitForStop(): Promise<void> {\n\t\treturn new Promise((resolve, _reject) => {\n\t\t\tif (this._stopped) {\n\t\t\t\tresolve();\n\n\t\t\t} else {\n\t\t\t\tconst listener = () => {\n\t\t\t\t\tstopped.dispose();\n\t\t\t\t\tresolve();\n\t\t\t\t};\n\n\t\t\t\tconst stopped = this.events.on(\"stopped\", listener);\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic _checkEnded(): boolean {\n\t\tif (this._loops > 1) {\n\t\t\t--this._loops;\n\t\t\treturn false;\n\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tpublic _run(currentTime: number): void {\n\t\tif (this._oldTime !== null) {\n\t\t\tthis._time += currentTime - this._oldTime;\n\n\t\t\tif (this._time > this._duration) {\n\t\t\t\tthis._time = this._duration;\n\t\t\t}\n\t\t}\n\n\t\tthis._oldTime = currentTime;\n\t}\n\n\tpublic _reset(currentTime: number): void {\n\t\tthis._oldTime = currentTime;\n\t\tthis._time = 0;\n\t}\n\n\tpublic _value(diff: Time): Value {\n\t\treturn this._interpolate(this._easing(diff), this._from, this._to);\n\t}\n}\n\ntype Animated<P> = { [K in keyof P]?: Animation<P[K]> };\n\n\n/**\n * @ignore\n */\nlet counter = 0;\n\n/**\n * Base class for [[Entity]] objects that support Settings.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n */\nexport abstract class Settings implements IDisposer, IAnimation {\n\n\t/**\n\t * Unique ID.\n\t */\n\tpublic uid: number = ++counter;\n\n\tpublic _settings: {};\n\tpublic _privateSettings: {} = {};\n\n\tpublic _settingEvents: { [K in keyof this[\"_settings\"]]?: Array<<V extends this[\"_settings\"][K], O extends this>(value: V, target?: O, key?: K) => void> } = {};\n\tpublic _privateSettingEvents: { [K in keyof this[\"_settings\"]]?: Array<<V extends this[\"_settings\"][K], O extends this>(value: V, target?: O, key?: K) => void> } = {};\n\n\tpublic _prevSettings: this[\"_settings\"] = {};\n\tpublic _prevPrivateSettings: this[\"_privateSettings\"] = {};\n\n\tprotected _animatingSettings: Animated<this[\"_settings\"]> = {};\n\tprotected _animatingPrivateSettings: Animated<this[\"_privateSettings\"]> = {};\n\tprotected _animatingCount: number = 0;\n\n\tprivate _disposed: boolean = false;\n\n\t// TODO move this into Entity\n\tprotected _userProperties: Dirty<this[\"_settings\"]> = {};\n\n\tconstructor(settings: Settings[\"_settings\"]) {\n\t\tthis._settings = settings;\n\t}\n\n\tprotected _checkDirty(): void {\n\t\t$object.keys(this._settings).forEach((key) => {\n\t\t\t(this._userProperties as any)[key] = true;\n\t\t\tthis._markDirtyKey(key);\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic abstract markDirty(): void;\n\n\tpublic _runAnimation(currentTime: number): boolean {\n\t\tif (!this.isDisposed()) {\n\t\t\t$object.each(this._animatingSettings, (key, animation) => {\n\t\t\t\tif (animation._stopped) {\n\t\t\t\t\tthis._stopAnimation(key);\n\n\t\t\t\t} else if (animation._playing) {\n\t\t\t\t\tanimation._run(currentTime);\n\n\t\t\t\t\tconst diff = animation.percentage;\n\n\t\t\t\t\tif (diff >= 1) {\n\t\t\t\t\t\tif (animation._checkEnded()) {\n\t\t\t\t\t\t\tthis.set(key, animation._value(1));\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tanimation._reset(currentTime);\n\t\t\t\t\t\t\tthis._set(key, animation._value(1));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._set(key, animation._value(diff));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$object.each(this._animatingPrivateSettings, (key, animation) => {\n\t\t\t\tif (animation._stopped) {\n\t\t\t\t\tthis._stopAnimationPrivate(key);\n\n\t\t\t\t} else if (animation._playing) {\n\t\t\t\t\tanimation._run(currentTime);\n\n\t\t\t\t\tconst diff = animation.percentage;\n\n\t\t\t\t\tif (diff >= 1) {\n\t\t\t\t\t\tif (animation._checkEnded()) {\n\t\t\t\t\t\t\tthis.setPrivate(key, animation._value(1));\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tanimation._reset(currentTime);\n\t\t\t\t\t\t\tthis._setPrivate(key, animation._value(1));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._setPrivate(key, animation._value(diff));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (this._animatingCount < 0) {\n\t\t\t\tthrow new Error(\"Invalid animation count\");\n\t\t\t}\n\n\t\t\treturn this._animatingCount === 0;\n\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tprotected abstract _startAnimation(): void;\n\tprotected abstract _animationTime(): number | null;\n\n\tpublic _markDirtyKey<Key extends keyof this[\"_settings\"]>(_key: Key) {\n\t\tthis.markDirty();\n\t}\n\n\tpublic _markDirtyPrivateKey<Key extends keyof this[\"_privateSettings\"]>(_key: Key) {\n\t\tthis.markDirty();\n\t}\n\n\t/**\n\t * Sets a callback function to invoke when specific key of settings changes\n\t * or is set.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/events/#Settings_value_change} for more info\n\t * @param key Settings key\n\t * @param callback Callback\n\t * @return Disposer for event\n\t */\n\tpublic on<Key extends keyof this[\"_settings\"]>(key: Key, callback: (value: this[\"_settings\"][Key], target?: this, key?: Key) => void): IDisposer {\n\t\tlet events = this._settingEvents[key];\n\n\t\tif (events === undefined) {\n\t\t\tevents = this._settingEvents[key] = [];\n\t\t}\n\n\t\tevents.push(callback);\n\n\t\treturn new Disposer(() => {\n\t\t\t$array.removeFirst(events!, callback);\n\n\t\t\tif (events!.length === 0) {\n\t\t\t\tdelete this._settingEvents[key];\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Sets a callback function to invoke when specific key of private settings\n\t * changes or is set.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/events/#Settings_value_change} for more info\n\t * @ignore\n\t * @param key Private settings key\n\t * @param callback Callback\n\t * @return Disposer for event\n\t */\n\tpublic onPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key, callback: (value: this[\"_privateSettings\"][Key], target?: this, key?: Key) => void): IDisposer {\n\t\tlet events = this._privateSettingEvents[key];\n\n\t\tif (events === undefined) {\n\t\t\tevents = this._privateSettingEvents[key] = [];\n\t\t}\n\n\t\tevents.push(callback);\n\n\t\treturn new Disposer(() => {\n\t\t\t$array.removeFirst(events!, callback);\n\n\t\t\tif (events!.length === 0) {\n\t\t\t\tdelete this._privateSettingEvents[key];\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getRaw<Key extends keyof this[\"_settings\"], F>(key: Key, fallback: F): NonNullable<this[\"_settings\"][Key]> | F;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getRaw<Key extends keyof this[\"_settings\"]>(key: Key): this[\"_settings\"][Key];\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getRaw<Key extends keyof this[\"_settings\"]>(key: Key, fallback?: any): any {\n\t\tconst value = (<any>this._settings)[key];\n\n\t\tif (value !== undefined) {\n\t\t\treturn value;\n\n\t\t} else {\n\t\t\treturn fallback;\n\t\t}\n\t}\n\n\t/**\n\t * Returns settings value for the specified `key`.\n\t *\n\t * If there is no value, `fallback` is returned instead (if set).\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Settings value\n\t * @param callback Fallback value\n\t * @return {any} Value\n\t */\n\tpublic get<Key extends keyof this[\"_settings\"], F>(key: Key, fallback: F): NonNullable<this[\"_settings\"][Key]> | F;\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key): this[\"_settings\"][Key];\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key, fallback?: any): any {\n\t\treturn this.getRaw(key, fallback);\n\t}\n\n\tprotected _sendKeyEvent<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): void {\n\t\tconst events = this._settingEvents[key];\n\n\t\tif (events !== undefined) {\n\t\t\t$array.each(events!, (callback) => {\n\t\t\t\tcallback(value, this, key);\n\t\t\t});\n\t\t}\n\t}\n\n\tprotected _sendPrivateKeyEvent<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): void {\n\t\tconst events = this._privateSettingEvents[key];\n\n\t\tif (events !== undefined) {\n\t\t\t$array.each(events!, (callback) => {\n\t\t\t\tcallback(value, this, key);\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprivate _setRaw<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, old: Value, value: Value) {\n\t\tthis._prevSettings[key] = old;\n\t\tthis._sendKeyEvent(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setRaw<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value) {\n\t\tconst old = (<any>this._settings)[key];\n\n\t\t(<any>this._settings)[key] = value;\n\n\t\tif (old !== value) {\n\t\t\tthis._setRaw(key, old, value);\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprivate _set<Key extends keyof this[\"_settings\"]>(key: Key, value: this[\"_settings\"][Key]) {\n\t\tconst old = (<any>this._settings)[key];\n\n\t\t(<any>this._settings)[key] = value;\n\n\t\tif (old !== value) {\n\t\t\tthis._setRaw(key, old, value);\n\t\t\tthis._markDirtyKey(key);\n\t\t}\n\t}\n\n\n\tprotected _stopAnimation<Key extends keyof this[\"_settings\"]>(key: Key): void {\n\t\tconst animation = this._animatingSettings[key];\n\n\t\tif (animation) {\n\t\t\tdelete this._animatingSettings[key];\n\t\t\t--this._animatingCount;\n\t\t\tanimation.stop();\n\t\t}\n\t}\n\n\t/**\n\t * Sets a setting `value` for the specified `key`, and returns the same `value`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t * @param value Setting value\n\t * @return Setting value\n\t */\n\tpublic set<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._set(key, value);\n\t\tthis._stopAnimation(key);\n\t\treturn value;\n\t}\n\n\t/**\n\t * Removes a setting value for the specified `key`;\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t */\n\tpublic remove<Key extends keyof this[\"_settings\"]>(key: Key): void {\n\t\tif (key in this._settings) {\n\t\t\tthis._prevSettings[key] = (<any>this._settings)[key];\n\n\t\t\tdelete (<any>this._settings)[key];\n\n\t\t\tthis._sendKeyEvent(key, undefined as any);\n\t\t\tthis._markDirtyKey(key);\n\t\t}\n\n\t\tthis._stopAnimation(key);\n\t}\n\n\t/**\n\t * Removes all keys;\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t */\n\tpublic removeAll(): void {\n\t\t$array.each($object.keys(this._settings), (key) => {\n\t\t\tthis.remove(key);\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getPrivate<Key extends keyof this[\"_privateSettings\"], F>(key: Key, fallback: F): NonNullable<this[\"_privateSettings\"][Key]> | F;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key): this[\"_privateSettings\"][Key];\n\n\t/**\n\t * Returns a value of a private setting.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/#Private_settings} for more info\n\t */\n\tpublic getPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key, fallback?: any): any {\n\t\tconst value = (<any>this._privateSettings)[key];\n\n\t\tif (value !== undefined) {\n\t\t\treturn value;\n\n\t\t} else {\n\t\t\treturn fallback;\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprivate _setPrivateRaw<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, old: Value, value: Value) {\n\t\tthis._prevPrivateSettings[key] = old;\n\t\tthis._sendPrivateKeyEvent(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setPrivateRaw<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value) {\n\t\tconst old = (<any>this._privateSettings)[key];\n\n\t\t(<any>this._privateSettings)[key] = value;\n\n\t\tif (old !== value) {\n\t\t\tthis._setPrivateRaw(key, old, value);\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprivate _setPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key, value: this[\"_privateSettings\"][Key]) {\n\t\tconst old = (<any>this._privateSettings)[key];\n\n\t\t(<any>this._privateSettings)[key] = value;\n\n\t\tif (old !== value) {\n\t\t\tthis._setPrivateRaw(key, old, value);\n\t\t\tthis._markDirtyPrivateKey(key);\n\t\t}\n\t}\n\n\tprotected _stopAnimationPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key): void {\n\t\tconst animation = this._animatingPrivateSettings[key];\n\n\t\tif (animation) {\n\t\t\tanimation.stop();\n\t\t\tdelete this._animatingPrivateSettings[key];\n\t\t\t--this._animatingCount;\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setPrivate<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._setPrivate(key, value);\n\t\tthis._stopAnimationPrivate(key);\n\t\treturn value;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic removePrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key): void {\n\t\tif (key in this._privateSettings) {\n\t\t\tthis._prevPrivateSettings[key] = (<any>this._privateSettings)[key];\n\n\t\t\tdelete (<any>this._privateSettings)[key];\n\n\t\t\tthis._markDirtyPrivateKey(key);\n\t\t}\n\n\t\tthis._stopAnimationPrivate(key);\n\t}\n\n\t/**\n\t * Sets multiple settings at once.\n\t *\n\t * `settings` must be an object with key: value pairs.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param settings Settings\n\t */\n\tpublic setAll(settings: Partial<this[\"_settings\"]>) {\n\t\t$object.each(settings, (key, value) => {\n\t\t\tthis.set(key, value);\n\t\t});\n\t}\n\n\t/**\n\t * Animates setting values from current/start values to new ones.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/#Animating_settings} for more info\n\t * @param options Animation options\n\t * @return Animation object\n\t */\n\tpublic animate<Key extends keyof this[\"_settings\"]>(options: AnimationOptions<Key, this[\"_settings\"][Key]>): Animation<this[\"_settings\"][Key]> {\n\t\tconst key = options.key;\n\t\tconst to = options.to;\n\t\tconst duration = options.duration || 0;\n\t\tconst loops = options.loops || 1;\n\n\t\tconst from = (options.from === undefined ? this.get(key) : options.from);\n\t\tconst easing = (options.easing === undefined ? $ease.linear : options.easing);\n\n\t\tif (duration === 0) {\n\t\t\tthis.set(key, to);\n\n\t\t} else {\n\t\t\tif (from === undefined || from === to) {\n\t\t\t\tthis.set(key, to);\n\n\t\t\t} else {\n\t\t\t\t++this._animatingCount;\n\n\t\t\t\tthis.set(key, from);\n\n\t\t\t\tconst animation = this._animatingSettings[key] = new Animation(from, to, duration, easing, loops, this._animationTime());\n\n\t\t\t\tthis._startAnimation();\n\n\t\t\t\treturn animation;\n\t\t\t}\n\t\t}\n\n\t\tconst animation = new Animation(from, to, duration, easing, loops, null);\n\t\tanimation.stop();\n\t\treturn animation;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic animatePrivate<Key extends keyof this[\"_privateSettings\"]>(options: AnimationOptions<Key, this[\"_privateSettings\"][Key]>): Animation<this[\"_privateSettings\"][Key]> {\n\t\tconst key = options.key;\n\t\tconst to = options.to;\n\t\tconst duration = options.duration || 0;\n\t\tconst loops = options.loops || 1;\n\n\t\tconst from = (options.from === undefined ? this.getPrivate(key) : options.from);\n\t\tconst easing = (options.easing === undefined ? $ease.linear : options.easing);\n\n\t\tif (duration === 0) {\n\t\t\tthis.setPrivate(key, to);\n\n\t\t} else {\n\t\t\tif (from === undefined || from === to) {\n\t\t\t\tthis.setPrivate(key, to);\n\n\t\t\t} else {\n\t\t\t\t++this._animatingCount;\n\n\t\t\t\tthis.setPrivate(key, from);\n\n\t\t\t\tconst animation = this._animatingPrivateSettings[key] = new Animation(from, to, duration, easing, loops, this._animationTime());\n\n\t\t\t\tthis._startAnimation();\n\n\t\t\t\treturn animation;\n\t\t\t}\n\t\t}\n\n\t\tconst animation = new Animation(from, to, duration, easing, loops, null);\n\t\tanimation.stop();\n\t\treturn animation;\n\t}\n\n\tprotected _dispose() {}\n\n\t/**\n\t * Returns `true` if this element is disposed.\n\t *\n\t * @return Disposed\n\t */\n\tpublic isDisposed(): boolean {\n\t\treturn this._disposed;\n\t}\n\n\t/**\n\t * Disposes this object.\n\t */\n\tpublic dispose() {\n\t\tif (!this._disposed) {\n\t\t\tthis._disposed = true;\n\t\t\tthis._dispose();\n\t\t}\n\t}\n}\n\n/**\n * Base class.\n *\n * @important\n */\nexport class Entity extends Settings implements IDisposer {\n\tpublic _root: Root;\n\n\tpublic _user_id:any; // for testing purposes\n\n\tdeclare public _settings: IEntitySettings;\n\tdeclare public _privateSettings: IEntityPrivate;\n\tdeclare public _events: IEntityEvents;\n\n\tpublic states: States<this> = new States(this);\n\tpublic adapters: Adapters<this> = new Adapters(this);\n\tpublic events: EventDispatcher<Events<this, this[\"_events\"]>> = this._createEvents();\n\n\tprotected _userPrivateProperties: Dirty<this[\"_privateSettings\"]> = {};\n\n\tpublic _dirty: Dirty<this[\"_settings\"]> = {};\n\tpublic _dirtyPrivate: Dirty<this[\"_privateSettings\"]> = {};\n\n\tprotected _template: Template<this> | undefined;\n\n\t// Templates for the themes\n\tprotected _templates: Array<Template<this>> = [];\n\n\t// Internal templates which can be overridden by the user's templates\n\tprotected _internalTemplates: Array<Template<this>>;\n\n\t// Default themes which can be overridden by the user's themes\n\tpublic _defaultThemes: Array<Theme> = [];\n\n\t// Disposers for all of the templates\n\tprotected _templateDisposers: Array<IDisposer> = [];\n\n\tprotected _disposers: Array<IDisposer> = [];\n\n\t// Whether the template setup function should be run\n\tprotected _runSetup: boolean = true;\n\n\tpublic static className: string = \"Entity\";\n\tpublic static classNames: Array<string> = [\"Entity\"];\n\n\tprotected _disposerProperties: { [Key in keyof this[\"_settings\"]]?: Array<IDisposer> } = {};\n\n\t/**\n\t * IMPORTANT! Do not instantiate this class via `new Class()` syntax.\n\t *\n\t * Use static method `Class.new()` instead.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/getting-started/#New_element_syntax} for more info\n\t * @ignore\n\t */\n\tconstructor(root: Root, settings: Entity[\"_settings\"], isReal: boolean, templates: Array<Template<Entity>> = []) {\n\t\tsuper(settings);\n\t\tif (!isReal) {\n\t\t\tthrow new Error(\"You cannot use `new Class()`, instead use `Class.new()`\");\n\t\t}\n\t\tthis._root = root;\n\t\tthis._internalTemplates = templates as Array<Template<this>>;\n\t}\n\n\t/**\n\t * Use this method to create an instance of this class.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/getting-started/#New_element_syntax} for more info\n\t * @param root Root element\n\t * @param settings Settings\n\t * @param template Template\n\t * @return Instantiated object\n\t */\n\tstatic new<C extends typeof Entity, T extends InstanceType<C>>(this: C, root: Root, settings: T[\"_settings\"], template?: Template<T>): T {\n\t\tconst x = (new this(root, settings, true)) as T;\n\t\tx._template = template;\n\t\tx._afterNew();\n\t\treturn x;\n\t}\n\n\tstatic _new<C extends typeof Entity, T extends InstanceType<C>>(this: C, root: Root, settings: T[\"_settings\"], templates: Array<Template<T>> = []): T {\n\t\tconst x = (new this(root, settings, true, templates)) as T;\n\t\tx._afterNew();\n\t\treturn x;\n\t}\n\n\tprotected _afterNew() {\n\t\tthis._checkDirty();\n\n\t\tlet shouldApply = false;\n\n\t\tconst template = this._template;\n\n\t\tif (template) {\n\t\t\tshouldApply = true;\n\t\t\ttemplate._setObjectTemplate(this);\n\t\t}\n\n\t\t$array.each(this._internalTemplates, (template) => {\n\t\t\tshouldApply = true;\n\t\t\ttemplate._setObjectTemplate(this);\n\t\t});\n\n\t\tif (shouldApply) {\n\t\t\tthis._applyTemplates(false);\n\t\t}\n\n\t\tthis.states.create(\"default\", {});\n\n\t\tthis._setDefaults();\n\t}\n\n\t// This is the same as _afterNew, except it also applies the themes.\n\t// This should only be used for classes which don't have a parent (because they extend from Entity and not Sprite).\n\tprotected _afterNewApplyThemes() {\n\t\tthis._checkDirty();\n\n\t\tconst template = this._template;\n\n\t\tif (template) {\n\t\t\ttemplate._setObjectTemplate(this);\n\t\t}\n\n\t\t$array.each(this._internalTemplates, (template) => {\n\t\t\ttemplate._setObjectTemplate(this);\n\t\t});\n\n\t\tthis.states.create(\"default\", {});\n\n\t\tthis._setDefaults();\n\n\t\tthis._applyThemes();\n\t}\n\n\tprotected _createEvents(): EventDispatcher<Events<this, this[\"_events\"]>> {\n\t\treturn new EventDispatcher();\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic get classNames(): Array<string> {\n\t\treturn (this.constructor as any).classNames;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic get className(): string {\n\t\treturn (this.constructor as any).className;\n\t}\n\n\tprotected _setDefaults(){\n\n\t}\n\n\tpublic _setDefault<Key extends keyof this[\"_settings\"]>(key: Key, value: this[\"_settings\"][Key]) {\n\t\tif (!(key in this._settings)) {\n\t\t\tsuper.set(key, value);\n\t\t}\n\t}\n\n\tpublic _setRawDefault<Key extends keyof this[\"_settings\"]>(key: Key, value: this[\"_settings\"][Key]) {\n\t\tif (!(key in this._settings)) {\n\t\t\tsuper.setRaw(key, value);\n\t\t}\n\t}\n\n\tpublic _clearDirty() {\n\t\t$object.keys(this._dirty).forEach((key) => {\n\t\t\tthis._dirty[key] = false;\n\t\t});\n\n\t\t$object.keys(this._dirtyPrivate).forEach((key) => {\n\t\t\tthis._dirtyPrivate[key] = false;\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic isDirty<Key extends keyof this[\"_settings\"]>(key: Key): boolean {\n\t\treturn !!this._dirty[key];\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic isPrivateDirty<Key extends keyof this[\"_privateSettings\"]>(key: Key): boolean {\n\t\treturn !!this._dirtyPrivate[key];\n\t}\n\n\tpublic _markDirtyKey<Key extends keyof this[\"_settings\"]>(key: Key) {\n\t\tthis._dirty[key] = true;\n\t\tsuper._markDirtyKey(key);\n\t}\n\n\tpublic _markDirtyPrivateKey<Key extends keyof this[\"_privateSettings\"]>(key: Key) {\n\t\tthis._dirtyPrivate[key] = true;\n\t\tsuper._markDirtyKey(key);\n\t}\n\n\t/**\n\t * Checks if element is of certain class (or inherits one).\n\t *\n\t * @param type Class name to check\n\t * @return {boolean} Is of class?\n\t */\n\tpublic isType<A>(type: string): this is A {\n\t\treturn this.classNames.indexOf(type) !== -1;\n\t}\n\n\tprotected _pushPropertyDisposer<Key extends keyof this[\"_settings\"], D extends IDisposer>(key: Key, disposer: D): D {\n\t\tlet disposers = this._disposerProperties[key];\n\n\t\tif (disposers === undefined) {\n\t\t\tdisposers = this._disposerProperties[key] = [];\n\t\t}\n\n\t\tdisposers.push(disposer);\n\n\t\treturn disposer;\n\t}\n\n\tprotected _disposeProperty<Key extends keyof this[\"_settings\"]>(key: Key): void {\n\t\tconst disposers = this._disposerProperties[key];\n\n\t\tif (disposers !== undefined) {\n\t\t\t$array.each(disposers!, (disposer) => {\n\t\t\t\tdisposer.dispose();\n\t\t\t});\n\n\t\t\tdelete this._disposerProperties[key];\n\t\t}\n\t}\n\n\t/**\n\t * @todo needs description\n\t * @param value Template\n\t */\n\tpublic set template(value: Template<this> | undefined) {\n\t\tconst template = this._template;\n\n\t\tif (template !== value) {\n\t\t\tthis._template = value;\n\n\t\t\tif (template) {\n\t\t\t\ttemplate._removeObjectTemplate(this);\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tvalue._setObjectTemplate(this);\n\t\t\t}\n\n\t\t\tthis._applyTemplates();\n\t\t}\n\t}\n\n\tpublic get template(): Template<this> | undefined {\n\t\treturn this._template;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic markDirty() {\n\t\tthis._root._addDirtyEntity(this);\n\t}\n\n\tprotected _startAnimation(): void {\n\t\tthis._root._addAnimation(this);\n\t}\n\n\tprotected _animationTime(): number | null {\n\t\treturn this._root.animationTime;\n\t}\n\n\tpublic _applyState(_name: string): void { }\n\tpublic _applyStateAnimated(_name: string, _duration?: number): void { }\n\n\t/**\n\t * Returns settings value for the specified `key`.\n\t *\n\t * If there is no value, `fallback` is returned instead (if set).\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Settings value\n\t * @param callback Fallback value\n\t * @return Value\n\t */\n\tpublic get<Key extends keyof this[\"_settings\"], F>(key: Key, fallback: F): NonNullable<this[\"_settings\"][Key]> | F;\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key): this[\"_settings\"][Key];\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key, fallback?: any): any {\n\t\tconst value = this.adapters.fold(key, (<any>this._settings)[key]);\n\n\t\tif (value !== undefined) {\n\t\t\treturn value;\n\n\t\t} else {\n\t\t\treturn fallback;\n\t\t}\n\t}\n\n\t/**\n\t * Sets a setting `value` for the specified `key`, and returns the same `value`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t * @param value Setting value\n\t * @return Setting value\n\t */\n\tpublic set<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._userProperties[key] = true;\n\t\treturn super.set(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setRaw<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value) {\n\t\tthis._userProperties[key] = true;\n\t\tsuper.setRaw(key, value);\n\t}\n\n\t/**\n\t * Sets a setting `value` for the specified `key` only if the value for this key was not set previously using set method, and returns the same `value`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t * @param value Setting value\n\t * @return Setting value\n\t */\n\tpublic _setSoft<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): Value {\n\t\tif(!this._userProperties[key]){\n\t\t\treturn super.set(key, value);\n\t\t}\n\t\treturn value;\n\t}\n\n\t/**\n\t * Removes a setting value for the specified `key`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t */\n\tpublic remove<Key extends keyof this[\"_settings\"]>(key: Key) {\n\t\tdelete this._userProperties[key];\n\t\tthis._removeTemplateProperty(key);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setPrivate<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._userPrivateProperties[key] = true;\n\t\treturn super.setPrivate(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setPrivateRaw<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value) {\n\t\tthis._userPrivateProperties[key] = true;\n\t\tsuper.setPrivateRaw(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic removePrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key) {\n\t\tdelete this._userPrivateProperties[key];\n\t\tthis._removeTemplatePrivateProperty(key);\n\t}\n\n\tpublic _setTemplateProperty<Key extends keyof this[\"_settings\"]>(template: Template<this>, key: Key, value: this[\"_settings\"][Key]) {\n\t\tif (!this._userProperties[key]) {\n\t\t\tconst match = this._findTemplateByKey(key);\n\n\t\t\tif (template === match) {\n\t\t\t\tsuper.set(key, value);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _setTemplatePrivateProperty<Key extends keyof this[\"_privateSettings\"]>(template: Template<this>, key: Key, value: this[\"_privateSettings\"][Key]) {\n\t\tif (!this._userPrivateProperties[key]) {\n\t\t\tconst match = this._findTemplateByPrivateKey(key);\n\n\t\t\tif (template === match) {\n\t\t\t\tsuper.setPrivate(key, value);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _removeTemplateProperty<Key extends keyof this[\"_settings\"]>(key: Key) {\n\t\tif (!this._userProperties[key]) {\n\t\t\tconst match = this._findTemplateByKey(key);\n\n\t\t\tif (match) {\n\t\t\t\t// TODO don't stop the animation if the property didn't change\n\t\t\t\tsuper.set(key, match._settings[key]!);\n\n\t\t\t} else {\n\t\t\t\tsuper.remove(key);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _removeTemplatePrivateProperty<Key extends keyof this[\"_privateSettings\"]>(key: Key) {\n\t\tif (!this._userPrivateProperties[key]) {\n\t\t\tconst match = this._findTemplateByPrivateKey(key);\n\n\t\t\tif (match) {\n\t\t\t\t// TODO don't stop the animation if the property didn't change\n\t\t\t\tsuper.setPrivate(key, match._privateSettings[key]);\n\n\t\t\t} else {\n\t\t\t\tsuper.removePrivate(key);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _walkParents(f: (parent: Entity) => void): void {\n\t\tf(this._root._rootContainer);\n\t\tf(this);\n\t}\n\n\t// TODO faster version of this method which is specialized to just 1 key\n\tpublic _applyStateByKey(name: string): void {\n\t\tconst other = this.states.create(name, {});\n\t\tconst seen: Dirty<this[\"_settings\"]> = {};\n\n\t\tthis._eachTemplate((template) => {\n\t\t\tconst state = template.states.lookup(name);\n\n\t\t\tif (state) {\n\t\t\t\tstate._apply(other, seen);\n\t\t\t}\n\t\t});\n\n\t\t$object.each(other._settings, (key) => {\n\t\t\tif (!seen[key] && !other._userSettings[key]) {\n\t\t\t\tother.remove(key);\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected _applyTemplate(template: Template<this>, state: ApplyState<this>): void {\n\t\tthis._templateDisposers.push(template._apply(this, state));\n\n\t\t$object.each(template._settings, (key, value) => {\n\t\t\tif (!state.settings[key] && !this._userProperties[key]) {\n\t\t\t\tstate.settings[key] = true;\n\t\t\t\tsuper.set(key, value);\n\t\t\t}\n\t\t});\n\n\t\t$object.each(template._privateSettings, (key, value) => {\n\t\t\tif (!state.privateSettings[key] && !this._userPrivateProperties[key]) {\n\t\t\t\tstate.privateSettings[key] = true;\n\t\t\t\tsuper.setPrivate(key, value);\n\t\t\t}\n\t\t});\n\n\t\tif (this._runSetup && template.setup) {\n\t\t\tthis._runSetup = false;\n\t\t\ttemplate.setup(this);\n\t\t}\n\t}\n\n\t/**\n\t * Calls the closure with each template and returns the first template which is true\n\t */\n\tprotected _findStaticTemplate(f: (template: Template<this>) => boolean): Template<this> | undefined {\n\t\tif (this._template) {\n\t\t\tif (f(this._template)) {\n\t\t\t\treturn this._template;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _eachTemplate(f: (template: Template<this>) => void): void {\n\t\tthis._findStaticTemplate((template) => {\n\t\t\tf(template);\n\t\t\treturn false;\n\t\t});\n\n\t\t// _internalTemplates is sorted with most specific to the right\n\t\t$array.eachReverse(this._internalTemplates, f);\n\n\t\t// _templates is sorted with most specific to the left\n\t\t$array.each(this._templates, f);\n\t}\n\n\tpublic _applyTemplates(remove: boolean = true): void {\n\t\tif (remove) {\n\t\t\tthis._disposeTemplates();\n\t\t}\n\n\t\tconst state: ApplyState<this> = {\n\t\t\tsettings: {},\n\t\t\tprivateSettings: {},\n\t\t\tstates: {},\n\t\t};\n\n\t\tthis._eachTemplate((template) => {\n\t\t\tthis._applyTemplate(template, state);\n\t\t});\n\n\t\tif (remove) {\n\t\t\t$object.each(this._settings, (key) => {\n\t\t\t\tif (!this._userProperties[key] && !state.settings[key]) {\n\t\t\t\t\tsuper.remove(key);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$object.each(this._privateSettings, (key) => {\n\t\t\t\tif (!this._userPrivateProperties[key] && !state.privateSettings[key]) {\n\t\t\t\t\tsuper.removePrivate(key);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tprotected _findTemplate(f: (template: Template<this>) => boolean): Template<this> | undefined {\n\t\tconst value = this._findStaticTemplate(f);\n\n\t\tif (value === undefined) {\n\t\t\t// _internalTemplates is sorted with most specific to the right\n\t\t\tconst value = $array.findReverse(this._internalTemplates, f);\n\n\t\t\tif (value === undefined) {\n\t\t\t\t// _templates is sorted with most specific to the left\n\t\t\t\treturn $array.find(this._templates, f);\n\n\t\t\t} else {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t} else {\n\t\t\treturn value;\n\t\t}\n\t}\n\n\tprotected _findTemplateByKey<Key extends keyof this[\"_settings\"]>(key: Key): Template<this> | undefined {\n\t\treturn this._findTemplate((template) => {\n\t\t\treturn key in template._settings;\n\t\t});\n\t}\n\n\tprotected _findTemplateByPrivateKey<Key extends keyof this[\"_privateSettings\"]>(key: Key): Template<this> | undefined {\n\t\treturn this._findTemplate((template) => {\n\t\t\treturn key in template._privateSettings;\n\t\t});\n\t}\n\n\tprotected _disposeTemplates() {\n\t\t$array.each(this._templateDisposers, (disposer) => {\n\t\t\tdisposer.dispose();\n\t\t});\n\n\t\tthis._templateDisposers.length = 0;\n\t}\n\n\tprotected _removeTemplates() {\n\t\t$array.each(this._templates, (template) => {\n\t\t\ttemplate._removeObjectTemplate(this);\n\t\t});\n\n\t\tthis._templates.length = 0;\n\t}\n\n\tpublic _applyThemes(): boolean {\n\t\tlet isConnected = false;\n\n\t\tconst defaults: Array<Array<Theme>> = [];\n\n\t\tlet themes: Array<Array<Theme>> = [];\n\n\t\tconst themeTags: Set<string> = new Set();\n\n\t\tconst tags = this.get(\"themeTagsSelf\");\n\n\t\tif (tags) {\n\t\t\t$array.each(tags, (tag) => {\n\t\t\t\tthemeTags.add(tag);\n\t\t\t});\n\t\t}\n\n\t\tthis._walkParents((entity) => {\n\t\t\tif (entity === this._root._rootContainer) {\n\t\t\t\tisConnected = true;\n\t\t\t}\n\n\t\t\tif (entity._defaultThemes.length > 0) {\n\t\t\t\tdefaults.push(entity._defaultThemes);\n\t\t\t}\n\n\t\t\tconst theme = entity.get(\"themes\");\n\n\t\t\tif (theme) {\n\t\t\t\tthemes.push(theme);\n\t\t\t}\n\n\t\t\tconst tags = entity.get(\"themeTags\");\n\n\t\t\tif (tags) {\n\t\t\t\t$array.each(tags, (tag) => {\n\t\t\t\t\tthemeTags.add(tag);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tthemes = defaults.concat(themes);\n\n\t\tthis._removeTemplates();\n\n\t\tif (isConnected) {\n\t\t\t$array.eachReverse(this.classNames, (name) => {\n\t\t\t\tconst allRules: Array<IRule<this>> = [];\n\n\t\t\t\t$array.each(themes, (themes) => {\n\t\t\t\t\t$array.each(themes, (theme) => {\n\t\t\t\t\t\tconst rules = theme._lookupRules<this>(name);\n\n\t\t\t\t\t\tif (rules) {\n\t\t\t\t\t\t\t$array.eachReverse(rules, (rule) => {\n\t\t\t\t\t\t\t\tconst matches = rule.tags.every((tag) => {\n\t\t\t\t\t\t\t\t\treturn themeTags.has(tag);\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tif (matches) {\n\t\t\t\t\t\t\t\t\tconst result = $array.getFirstSortedIndex(allRules, (x) => {\n\t\t\t\t\t\t\t\t\t\tconst order = $order.compare(rule.tags.length, x.tags.length);\n\n\t\t\t\t\t\t\t\t\t\tif (order === 0) {\n\t\t\t\t\t\t\t\t\t\t\treturn $order.compareArray(rule.tags, x.tags, $order.compare);\n\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\treturn order;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tallRules.splice(result.index, 0, rule);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t$array.each(allRules, (rule) => {\n\t\t\t\t\tthis._templates.push(rule.template);\n\t\t\t\t\trule.template._setObjectTemplate(this);\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tthis._applyTemplates();\n\n\t\tif (isConnected) {\n\t\t\t// This causes it to only run the setup function the first time that the themes are applied\n\t\t\tthis._runSetup = false;\n\t\t}\n\n\t\treturn isConnected;\n\t}\n\n\tpublic _changed(): void { }\n\n\tpublic _beforeChanged(): void {\n\n\t\tif (this.isDirty(\"id\")) {\n\t\t\tconst id = this.get(\"id\")!;\n\t\t\tif (id) {\n\t\t\t\tif (registry.entitiesById[id]) {\n\t\t\t\t\tthrow new Error(\"An entity with id \\\"\" + id + \"\\\" already exists.\");\n\t\t\t\t}\n\t\t\t\tregistry.entitiesById[id] = this;\n\t\t\t}\n\n\t\t\tconst prevId = this._prevSettings.id;\n\t\t\tif(prevId) {\n\t\t\t\tdelete registry.entitiesById[prevId];\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _afterChanged(): void { }\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 _dispose() {\n\t\tsuper._dispose();\n\n\t\tconst template = this._template;\n\n\t\tif (template) {\n\t\t\ttemplate._removeObjectTemplate(this);\n\t\t}\n\n\t\t$array.each(this._internalTemplates, (template) => {\n\t\t\ttemplate._removeObjectTemplate(this);\n\t\t});\n\n\t\tthis._removeTemplates();\n\t\tthis._disposeTemplates();\n\n\t\tthis.events.dispose();\n\n\t\tthis._disposers.forEach((x) => {\n\t\t\tx.dispose();\n\t\t});\n\n\t\t$object.each(this._disposerProperties, (_, disposers) => {\n\t\t\t$array.each(disposers, (disposer) => {\n\t\t\t\tdisposer.dispose();\n\t\t\t});\n\t\t});\n\n\t\tconst id = this.get(\"id\")!;\n\t\tif (id) {\n\t\t\tdelete registry.entitiesById[id];\n\t\t}\n\t}\n\n\t/**\n\t * Creates and returns a \"disposable\" timeout.\n\t *\n\t * @param fn Callback\n\t * @param delay Delay in milliseconds\n\t * @return Timeout disposer\n\t */\n\tpublic setTimeout(fn: () => void, delay: number): IDisposer {\n\t\tconst id = setTimeout(() => {\n\t\t\tthis.removeDispose(disposer);\n\t\t\tfn();\n\t\t}, delay);\n\n\t\tconst disposer = new Disposer(() => {\n\t\t\tclearTimeout(id);\n\t\t});\n\n\t\tthis._disposers.push(disposer);\n\t\treturn disposer;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic removeDispose(target: IDisposer): void {\n\t\tif (!this.isDisposed()) {\n\t\t\tlet index = $array.indexOf(this._disposers, target);\n\t\t\tif (index > -1) {\n\t\t\t\tthis._disposers.splice(index, 1);\n\t\t\t}\n\t\t}\n\n\t\ttarget.dispose();\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic hasTag(tag: string): boolean {\n\t\treturn $array.indexOf(this.get(\"themeTags\", []), tag) !== -1;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic addTag(tag: string): void {\n\t\tif (!this.hasTag(tag)) {\n\t\t\tconst tags = (<any>this).get(\"themeTags\", []);\n\t\t\ttags.push(tag);\n\t\t\tthis.set(\"themeTags\", tags);\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic removeTag(tag: string): void {\n\t\tif (this.hasTag(tag)) {\n\t\t\tconst tags = (<any>this).get(\"themeTags\", []);\n\t\t\t$array.remove(tags, tag);\n\t\t\tthis.set(\"themeTags\", tags);\n\t\t}\n\t}\n\n\tprotected _t(text: any, locale?: ILocale, ...rest: Array<string>){\n\t\treturn this._root.language.translate(text, locale, ...rest);\n\t}\n\n\t/**\n\t * An instance of [[Root]] object.\n\t *\n\t * @readonly\n\t * @since 5.0.6\n\t * @return Root object\n\t */\n\tpublic get root(): Root {\n\t\treturn this._root;\n\t}\n\n}\n"]}
1
+ {"version":3,"file":"Entity.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Entity.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Root } from \"../Root\";\nimport type { Template, ApplyState } from \"./Template\";\nimport type { Theme, IRule } from \"../Theme\";\nimport type { ILocale } from \"./Language\";\n\nimport { IDisposer, Disposer } from \"./Disposer\";\nimport { EventDispatcher, Events } from \"./EventDispatcher\";\nimport { Time, IAnimation, getInterpolate } from \"./Animation\";\nimport { States } from \"./States\";\nimport { registry } from \"../Registry\";\n\nimport * as $object from \"./Object\";\nimport * as $ease from \"./Ease\";\nimport * as $array from \"./Array\";\nimport * as $order from \"./Order\";\n\n/**\n * @ignore\n */\nexport type Dirty<A> = { [K in keyof A]?: boolean };\n\n\n/**\n * Allows to dynamically modify setting value of its target element.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/adapters/} for more info\n */\nexport class Adapters<E extends Settings> {\n\tprivate _entity: E;\n\tprivate _callbacks: { [K in keyof E[\"_settings\"]]?: Array<<O extends E>(value: O[\"_settings\"][K], target: O, key: K) => O[\"_settings\"][K]> } = {};\n\tprivate _disabled: { [K in keyof E[\"_settings\"]]?: boolean } = {};\n\n\tconstructor(entity: E) {\n\t\tthis._entity = entity;\n\t}\n\n\t/**\n\t * Add a function (`callback`) that will modify value for setting `key`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/adapters/} for more info\n\t */\n\tpublic add<Key extends keyof E[\"_settings\"]>(key: Key, callback: (value: E[\"_settings\"][Key], target: E, key: Key) => E[\"_settings\"][Key]): IDisposer {\n\t\tlet callbacks = this._callbacks[key];\n\n\t\tif (callbacks === undefined) {\n\t\t\tcallbacks = this._callbacks[key] = [];\n\t\t}\n\n\t\tcallbacks.push(callback);\n\n\t\tthis._entity._markDirtyKey(key);\n\n\t\treturn new Disposer(() => {\n\t\t\tif ($array.removeFirst(callbacks!, callback)) {\n\t\t\t\tthis._entity._markDirtyKey(key);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Removes all adapters for the specific key.\n\t *\n\t * @since 5.1.0\n\t */\n\tpublic remove<Key extends keyof E[\"_settings\"]>(key: Key) {\n\t\tconst callbacks = this._callbacks[key];\n\n\t\tif (callbacks !== undefined) {\n\t\t\tdelete this._callbacks[key];\n\n\t\t\tif (callbacks.length !== 0) {\n\t\t\t\tthis._entity._markDirtyKey(key);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Enables (previously disabled) adapters for specific key.\n\t *\n\t * @since 5.1.0\n\t */\n\tpublic enable<Key extends keyof E[\"_settings\"]>(key: Key) {\n\t\tif (this._disabled[key]) {\n\t\t\tdelete this._disabled[key];\n\t\t\tthis._entity._markDirtyKey(key);\n\t\t}\n\t}\n\n\t/**\n\t * Disables all adapters for specific key.\n\t *\n\t * @since 5.1.0\n\t */\n\tpublic disable<Key extends keyof E[\"_settings\"]>(key: Key) {\n\t\tif (!this._disabled[key]) {\n\t\t\tthis._disabled[key] = true;\n\t\t\tthis._entity._markDirtyKey(key);\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic fold<Key extends keyof E[\"_settings\"]>(key: Key, value: E[\"_settings\"][Key]): E[\"_settings\"][Key] {\n\t\tif (!this._disabled[key]) {\n\t\t\tconst callbacks = this._callbacks[key];\n\n\t\t\tif (callbacks !== undefined) {\n\t\t\t\tfor (let i = 0, len = callbacks.length; i < len; ++i) {\n\t\t\t\t\tvalue = callbacks[i](value, this._entity, key);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t}\n}\n\n\nexport interface IEntitySettings {\n\n\t/**\n\t * Tags which can be used by the theme rules.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/themes/} for more info\n\t */\n\tthemeTags?: Array<string>;\n\n\t/**\n\t * Tags which can be used by the theme rules.\n\t *\n\t * These tags only apply to this object, not any children.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/themes/} for more info\n\t */\n\tthemeTagsSelf?: Array<string>;\n\n\t/**\n\t * A list of themes applied to the element.\n\t */\n\tthemes?: Array<Theme>;\n\n\n\t/**\n\t * Duration of transition from one state to another.\n\t */\n\tstateAnimationDuration?:number;\n\n\t/**\n\t * Easing of transition from one state to another.\n\t */\n\tstateAnimationEasing?:$ease.Easing;\n\n\t/**\n\t * A custom string ID for the element.\n\t *\n\t * If set, element can be looked up via `am5.registry.entitiesById`.\n\t *\n\t * Will raise error if an element with the same ID already exists.\n\t */\n\tid?: string;\n\n\t/**\n\t * A storage for any custom user data that needs to be associated with the\n\t * element.\n\t */\n\tuserData?: any;\n\n}\n\nexport interface IEntityPrivate {\n}\n\nexport interface IEntityEvents {\n}\n\n/**\n * Animation options.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/} for more info\n */\nexport interface AnimationOptions<Key, Value> {\n\n\t/**\n\t * A setting key to animate value for.\n\t */\n\tkey: Key,\n\n\t/**\n\t * Initial value to animate from. If not set, will use current value.\n\t */\n\tfrom?: Value;\n\n\t/**\n\t * Target value to animate to.\n\t */\n\tto: Value;\n\n\t/**\n\t * Animation duration in milliseconds.\n\t */\n\tduration: number;\n\n\t/**\n\t * Easing function. Defaults to linear.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/#Easing_functions} for more info\n\t */\n\teasing?: $ease.Easing;\n\n\t/**\n\t * How many times to play the animation. Defaults to 1.\n\t */\n\tloops?: number;\n}\n\nexport interface IAnimationEvents {\n\t/**\n\t * Invoked when animation was stopped, which happens in these situations:\n\t * 1. When the animation reached the end.\n\t * 2. When the `stop()` method is called.\n\t * 3. When a new animation starts for the same key.\n\t * 4. When calling `set` for the same key.\n\t */\n\tstopped: {};\n}\n\n/**\n * Animation object.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/} for more info\n */\nexport class Animation<Value> {\n\tprivate _from: Value;\n\tprivate _to: Value;\n\tprivate _duration: number;\n\tprivate _easing: $ease.Easing;\n\tprivate _loops: number;\n\tprivate _interpolate: <A extends Value>(diff: Time, from: A, to: A) => A;\n\tprivate _oldTime: number | null;\n\tprivate _time: number = 0;\n\n\tpublic _stopped: boolean = false;\n\tpublic _playing: boolean = true;\n\n\tpublic events: EventDispatcher<Events<this, IAnimationEvents>> = new EventDispatcher();\n\n\tconstructor(from: Value, to: Value, duration: number, easing: $ease.Easing, loops: number, startingTime: number | null) {\n\t\tthis._from = from;\n\t\tthis._to = to;\n\t\tthis._duration = duration;\n\t\tthis._easing = easing;\n\t\tthis._loops = loops;\n\t\tthis._interpolate = getInterpolate(from, to);\n\t\tthis._oldTime = startingTime;\n\t}\n\n\tpublic get to() {\n\t\treturn this._to;\n\t}\n\n\tpublic get from() {\n\t\treturn this._from;\n\t}\n\n\tpublic get playing() {\n\t\treturn this._playing;\n\t}\n\n\tpublic get stopped() {\n\t\treturn this._stopped;\n\t}\n\n\tpublic stop(): void {\n\t\tif (!this._stopped) {\n\t\t\tthis._stopped = true;\n\t\t\tthis._playing = false;\n\n\t\t\tif (this.events.isEnabled(\"stopped\")) {\n\t\t\t\tthis.events.dispatch(\"stopped\", {\n\t\t\t\t\ttype: \"stopped\",\n\t\t\t\t\ttarget: this,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic pause(): void {\n\t\tthis._playing = false;\n\t\tthis._oldTime = null;\n\t}\n\n\tpublic play(): void {\n\t\tif (!this._stopped) {\n\t\t\tthis._playing = true;\n\t\t}\n\t}\n\n\tpublic get percentage(): Time {\n\t\treturn this._time / this._duration;\n\t}\n\n\tpublic waitForStop(): Promise<void> {\n\t\treturn new Promise((resolve, _reject) => {\n\t\t\tif (this._stopped) {\n\t\t\t\tresolve();\n\n\t\t\t} else {\n\t\t\t\tconst listener = () => {\n\t\t\t\t\tstopped.dispose();\n\t\t\t\t\tresolve();\n\t\t\t\t};\n\n\t\t\t\tconst stopped = this.events.on(\"stopped\", listener);\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic _checkEnded(): boolean {\n\t\tif (this._loops > 1) {\n\t\t\t--this._loops;\n\t\t\treturn false;\n\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tpublic _run(currentTime: number): void {\n\t\tif (this._oldTime !== null) {\n\t\t\tthis._time += currentTime - this._oldTime;\n\n\t\t\tif (this._time > this._duration) {\n\t\t\t\tthis._time = this._duration;\n\t\t\t}\n\t\t}\n\n\t\tthis._oldTime = currentTime;\n\t}\n\n\tpublic _reset(currentTime: number): void {\n\t\tthis._oldTime = currentTime;\n\t\tthis._time = 0;\n\t}\n\n\tpublic _value(diff: Time): Value {\n\t\treturn this._interpolate(this._easing(diff), this._from, this._to);\n\t}\n}\n\ntype Animated<P> = { [K in keyof P]?: Animation<P[K]> };\n\n\n/**\n * @ignore\n */\nlet counter = 0;\n\n/**\n * Base class for [[Entity]] objects that support Settings.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n */\nexport abstract class Settings implements IDisposer, IAnimation {\n\n\t/**\n\t * Unique ID.\n\t */\n\tpublic uid: number = ++counter;\n\n\tpublic _settings: {};\n\tpublic _privateSettings: {} = {};\n\n\tpublic _settingEvents: { [K in keyof this[\"_settings\"]]?: Array<<V extends this[\"_settings\"][K], O extends this>(value: V, target?: O, key?: K) => void> } = {};\n\tpublic _privateSettingEvents: { [K in keyof this[\"_settings\"]]?: Array<<V extends this[\"_settings\"][K], O extends this>(value: V, target?: O, key?: K) => void> } = {};\n\n\tpublic _prevSettings: this[\"_settings\"] = {};\n\tpublic _prevPrivateSettings: this[\"_privateSettings\"] = {};\n\n\tprotected _animatingSettings: Animated<this[\"_settings\"]> = {};\n\tprotected _animatingPrivateSettings: Animated<this[\"_privateSettings\"]> = {};\n\tprotected _animatingCount: number = 0;\n\n\tprivate _disposed: boolean = false;\n\n\t// TODO move this into Entity\n\tprotected _userProperties: Dirty<this[\"_settings\"]> = {};\n\n\tconstructor(settings: Settings[\"_settings\"]) {\n\t\tthis._settings = settings;\n\t}\n\n\tprotected _checkDirty(): void {\n\t\t$object.keys(this._settings).forEach((key) => {\n\t\t\t(this._userProperties as any)[key] = true;\n\t\t\tthis._markDirtyKey(key);\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic abstract markDirty(): void;\n\n\tpublic _runAnimation(currentTime: number): boolean {\n\t\tif (!this.isDisposed()) {\n\t\t\t$object.each(this._animatingSettings, (key, animation) => {\n\t\t\t\tif (animation._stopped) {\n\t\t\t\t\tthis._stopAnimation(key);\n\n\t\t\t\t} else if (animation._playing) {\n\t\t\t\t\tanimation._run(currentTime);\n\n\t\t\t\t\tconst diff = animation.percentage;\n\n\t\t\t\t\tif (diff >= 1) {\n\t\t\t\t\t\tif (animation._checkEnded()) {\n\t\t\t\t\t\t\tthis.set(key, animation._value(1));\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tanimation._reset(currentTime);\n\t\t\t\t\t\t\tthis._set(key, animation._value(1));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._set(key, animation._value(diff));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$object.each(this._animatingPrivateSettings, (key, animation) => {\n\t\t\t\tif (animation._stopped) {\n\t\t\t\t\tthis._stopAnimationPrivate(key);\n\n\t\t\t\t} else if (animation._playing) {\n\t\t\t\t\tanimation._run(currentTime);\n\n\t\t\t\t\tconst diff = animation.percentage;\n\n\t\t\t\t\tif (diff >= 1) {\n\t\t\t\t\t\tif (animation._checkEnded()) {\n\t\t\t\t\t\t\tthis.setPrivate(key, animation._value(1));\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tanimation._reset(currentTime);\n\t\t\t\t\t\t\tthis._setPrivate(key, animation._value(1));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._setPrivate(key, animation._value(diff));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (this._animatingCount < 0) {\n\t\t\t\tthrow new Error(\"Invalid animation count\");\n\t\t\t}\n\n\t\t\treturn this._animatingCount === 0;\n\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tprotected abstract _startAnimation(): void;\n\tprotected abstract _animationTime(): number | null;\n\n\tpublic _markDirtyKey<Key extends keyof this[\"_settings\"]>(_key: Key) {\n\t\tthis.markDirty();\n\t}\n\n\tpublic _markDirtyPrivateKey<Key extends keyof this[\"_privateSettings\"]>(_key: Key) {\n\t\tthis.markDirty();\n\t}\n\n\t/**\n\t * Sets a callback function to invoke when specific key of settings changes\n\t * or is set.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/events/#Settings_value_change} for more info\n\t * @param key Settings key\n\t * @param callback Callback\n\t * @return Disposer for event\n\t */\n\tpublic on<Key extends keyof this[\"_settings\"]>(key: Key, callback: (value: this[\"_settings\"][Key], target?: this, key?: Key) => void): IDisposer {\n\t\tlet events = this._settingEvents[key];\n\n\t\tif (events === undefined) {\n\t\t\tevents = this._settingEvents[key] = [];\n\t\t}\n\n\t\tevents.push(callback);\n\n\t\treturn new Disposer(() => {\n\t\t\t$array.removeFirst(events!, callback);\n\n\t\t\tif (events!.length === 0) {\n\t\t\t\tdelete this._settingEvents[key];\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Sets a callback function to invoke when specific key of private settings\n\t * changes or is set.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/events/#Settings_value_change} for more info\n\t * @ignore\n\t * @param key Private settings key\n\t * @param callback Callback\n\t * @return Disposer for event\n\t */\n\tpublic onPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key, callback: (value: this[\"_privateSettings\"][Key], target?: this, key?: Key) => void): IDisposer {\n\t\tlet events = this._privateSettingEvents[key];\n\n\t\tif (events === undefined) {\n\t\t\tevents = this._privateSettingEvents[key] = [];\n\t\t}\n\n\t\tevents.push(callback);\n\n\t\treturn new Disposer(() => {\n\t\t\t$array.removeFirst(events!, callback);\n\n\t\t\tif (events!.length === 0) {\n\t\t\t\tdelete this._privateSettingEvents[key];\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getRaw<Key extends keyof this[\"_settings\"], F>(key: Key, fallback: F): NonNullable<this[\"_settings\"][Key]> | F;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getRaw<Key extends keyof this[\"_settings\"]>(key: Key): this[\"_settings\"][Key];\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getRaw<Key extends keyof this[\"_settings\"]>(key: Key, fallback?: any): any {\n\t\tconst value = (<any>this._settings)[key];\n\n\t\tif (value !== undefined) {\n\t\t\treturn value;\n\n\t\t} else {\n\t\t\treturn fallback;\n\t\t}\n\t}\n\n\t/**\n\t * Returns settings value for the specified `key`.\n\t *\n\t * If there is no value, `fallback` is returned instead (if set).\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Settings value\n\t * @param callback Fallback value\n\t * @return {any} Value\n\t */\n\tpublic get<Key extends keyof this[\"_settings\"], F>(key: Key, fallback: F): NonNullable<this[\"_settings\"][Key]> | F;\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key): this[\"_settings\"][Key];\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key, fallback?: any): any {\n\t\treturn this.getRaw(key, fallback);\n\t}\n\n\tprotected _sendKeyEvent<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): void {\n\t\tconst events = this._settingEvents[key];\n\n\t\tif (events !== undefined) {\n\t\t\t$array.each(events!, (callback) => {\n\t\t\t\tcallback(value, this, key);\n\t\t\t});\n\t\t}\n\t}\n\n\tprotected _sendPrivateKeyEvent<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): void {\n\t\tconst events = this._privateSettingEvents[key];\n\n\t\tif (events !== undefined) {\n\t\t\t$array.each(events!, (callback) => {\n\t\t\t\tcallback(value, this, key);\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprivate _setRaw<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, old: Value, value: Value) {\n\t\tthis._prevSettings[key] = old;\n\t\tthis._sendKeyEvent(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setRaw<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value) {\n\t\tconst old = (<any>this._settings)[key];\n\n\t\t(<any>this._settings)[key] = value;\n\n\t\tif (old !== value) {\n\t\t\tthis._setRaw(key, old, value);\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprivate _set<Key extends keyof this[\"_settings\"]>(key: Key, value: this[\"_settings\"][Key]) {\n\t\tconst old = (<any>this._settings)[key];\n\n\t\t(<any>this._settings)[key] = value;\n\n\t\tif (old !== value) {\n\t\t\tthis._setRaw(key, old, value);\n\t\t\tthis._markDirtyKey(key);\n\t\t}\n\t}\n\n\n\tprotected _stopAnimation<Key extends keyof this[\"_settings\"]>(key: Key): void {\n\t\tconst animation = this._animatingSettings[key];\n\n\t\tif (animation) {\n\t\t\tdelete this._animatingSettings[key];\n\t\t\t--this._animatingCount;\n\t\t\tanimation.stop();\n\t\t}\n\t}\n\n\t/**\n\t * Sets a setting `value` for the specified `key`, and returns the same `value`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t * @param value Setting value\n\t * @return Setting value\n\t */\n\tpublic set<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._set(key, value);\n\t\tthis._stopAnimation(key);\n\t\treturn value;\n\t}\n\n\t/**\n\t * Removes a setting value for the specified `key`;\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t */\n\tpublic remove<Key extends keyof this[\"_settings\"]>(key: Key): void {\n\t\tif (key in this._settings) {\n\t\t\tthis._prevSettings[key] = (<any>this._settings)[key];\n\n\t\t\tdelete (<any>this._settings)[key];\n\n\t\t\tthis._sendKeyEvent(key, undefined as any);\n\t\t\tthis._markDirtyKey(key);\n\t\t}\n\n\t\tthis._stopAnimation(key);\n\t}\n\n\t/**\n\t * Removes all keys;\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t */\n\tpublic removeAll(): void {\n\t\t$array.each($object.keys(this._settings), (key) => {\n\t\t\tthis.remove(key);\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getPrivate<Key extends keyof this[\"_privateSettings\"], F>(key: Key, fallback: F): NonNullable<this[\"_privateSettings\"][Key]> | F;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key): this[\"_privateSettings\"][Key];\n\n\t/**\n\t * Returns a value of a private setting.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/#Private_settings} for more info\n\t */\n\tpublic getPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key, fallback?: any): any {\n\t\tconst value = (<any>this._privateSettings)[key];\n\n\t\tif (value !== undefined) {\n\t\t\treturn value;\n\n\t\t} else {\n\t\t\treturn fallback;\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprivate _setPrivateRaw<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, old: Value, value: Value) {\n\t\tthis._prevPrivateSettings[key] = old;\n\t\tthis._sendPrivateKeyEvent(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setPrivateRaw<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value) {\n\t\tconst old = (<any>this._privateSettings)[key];\n\n\t\t(<any>this._privateSettings)[key] = value;\n\n\t\tif (old !== value) {\n\t\t\tthis._setPrivateRaw(key, old, value);\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprivate _setPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key, value: this[\"_privateSettings\"][Key]) {\n\t\tconst old = (<any>this._privateSettings)[key];\n\n\t\t(<any>this._privateSettings)[key] = value;\n\n\t\tif (old !== value) {\n\t\t\tthis._setPrivateRaw(key, old, value);\n\t\t\tthis._markDirtyPrivateKey(key);\n\t\t}\n\t}\n\n\tprotected _stopAnimationPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key): void {\n\t\tconst animation = this._animatingPrivateSettings[key];\n\n\t\tif (animation) {\n\t\t\tanimation.stop();\n\t\t\tdelete this._animatingPrivateSettings[key];\n\t\t\t--this._animatingCount;\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setPrivate<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._setPrivate(key, value);\n\t\tthis._stopAnimationPrivate(key);\n\t\treturn value;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic removePrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key): void {\n\t\tif (key in this._privateSettings) {\n\t\t\tthis._prevPrivateSettings[key] = (<any>this._privateSettings)[key];\n\n\t\t\tdelete (<any>this._privateSettings)[key];\n\n\t\t\tthis._markDirtyPrivateKey(key);\n\t\t}\n\n\t\tthis._stopAnimationPrivate(key);\n\t}\n\n\t/**\n\t * Sets multiple settings at once.\n\t *\n\t * `settings` must be an object with key: value pairs.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param settings Settings\n\t */\n\tpublic setAll(settings: Partial<this[\"_settings\"]>) {\n\t\t$object.each(settings, (key, value) => {\n\t\t\tthis.set(key, value);\n\t\t});\n\t}\n\n\t/**\n\t * Animates setting values from current/start values to new ones.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/#Animating_settings} for more info\n\t * @param options Animation options\n\t * @return Animation object\n\t */\n\tpublic animate<Key extends keyof this[\"_settings\"]>(options: AnimationOptions<Key, this[\"_settings\"][Key]>): Animation<this[\"_settings\"][Key]> {\n\t\tconst key = options.key;\n\t\tconst to = options.to;\n\t\tconst duration = options.duration || 0;\n\t\tconst loops = options.loops || 1;\n\n\t\tconst from = (options.from === undefined ? this.get(key) : options.from);\n\t\tconst easing = (options.easing === undefined ? $ease.linear : options.easing);\n\n\t\tif (duration === 0) {\n\t\t\tthis.set(key, to);\n\n\t\t} else {\n\t\t\tif (from === undefined || from === to) {\n\t\t\t\tthis.set(key, to);\n\n\t\t\t} else {\n\t\t\t\t++this._animatingCount;\n\n\t\t\t\tthis.set(key, from);\n\n\t\t\t\tconst animation = this._animatingSettings[key] = new Animation(from, to, duration, easing, loops, this._animationTime());\n\n\t\t\t\tthis._startAnimation();\n\n\t\t\t\treturn animation;\n\t\t\t}\n\t\t}\n\n\t\tconst animation = new Animation(from, to, duration, easing, loops, null);\n\t\tanimation.stop();\n\t\treturn animation;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic animatePrivate<Key extends keyof this[\"_privateSettings\"]>(options: AnimationOptions<Key, this[\"_privateSettings\"][Key]>): Animation<this[\"_privateSettings\"][Key]> {\n\t\tconst key = options.key;\n\t\tconst to = options.to;\n\t\tconst duration = options.duration || 0;\n\t\tconst loops = options.loops || 1;\n\n\t\tconst from = (options.from === undefined ? this.getPrivate(key) : options.from);\n\t\tconst easing = (options.easing === undefined ? $ease.linear : options.easing);\n\n\t\tif (duration === 0) {\n\t\t\tthis.setPrivate(key, to);\n\n\t\t} else {\n\t\t\tif (from === undefined || from === to) {\n\t\t\t\tthis.setPrivate(key, to);\n\n\t\t\t} else {\n\t\t\t\t++this._animatingCount;\n\n\t\t\t\tthis.setPrivate(key, from);\n\n\t\t\t\tconst animation = this._animatingPrivateSettings[key] = new Animation(from, to, duration, easing, loops, this._animationTime());\n\n\t\t\t\tthis._startAnimation();\n\n\t\t\t\treturn animation;\n\t\t\t}\n\t\t}\n\n\t\tconst animation = new Animation(from, to, duration, easing, loops, null);\n\t\tanimation.stop();\n\t\treturn animation;\n\t}\n\n\tprotected _dispose() {}\n\n\t/**\n\t * Returns `true` if this element is disposed.\n\t *\n\t * @return Disposed\n\t */\n\tpublic isDisposed(): boolean {\n\t\treturn this._disposed;\n\t}\n\n\t/**\n\t * Disposes this object.\n\t */\n\tpublic dispose() {\n\t\tif (!this._disposed) {\n\t\t\tthis._disposed = true;\n\t\t\tthis._dispose();\n\t\t}\n\t}\n}\n\n/**\n * Base class.\n *\n * @important\n */\nexport class Entity extends Settings implements IDisposer {\n\tpublic _root: Root;\n\n\tpublic _user_id:any; // for testing purposes\n\n\tdeclare public _settings: IEntitySettings;\n\tdeclare public _privateSettings: IEntityPrivate;\n\tdeclare public _events: IEntityEvents;\n\n\tpublic states: States<this> = new States(this);\n\tpublic adapters: Adapters<this> = new Adapters(this);\n\tpublic events: EventDispatcher<Events<this, this[\"_events\"]>> = this._createEvents();\n\n\tprotected _userPrivateProperties: Dirty<this[\"_privateSettings\"]> = {};\n\n\tpublic _dirty: Dirty<this[\"_settings\"]> = {};\n\tpublic _dirtyPrivate: Dirty<this[\"_privateSettings\"]> = {};\n\n\tprotected _template: Template<this> | undefined;\n\n\t// Templates for the themes\n\tprotected _templates: Array<Template<this>> = [];\n\n\t// Internal templates which can be overridden by the user's templates\n\tprotected _internalTemplates: Array<Template<this>>;\n\n\t// Default themes which can be overridden by the user's themes\n\tpublic _defaultThemes: Array<Theme> = [];\n\n\t// Disposers for all of the templates\n\tprotected _templateDisposers: Array<IDisposer> = [];\n\n\tprotected _disposers: Array<IDisposer> = [];\n\n\t// Whether the template setup function should be run\n\tprotected _runSetup: boolean = true;\n\n\tpublic static className: string = \"Entity\";\n\tpublic static classNames: Array<string> = [\"Entity\"];\n\n\tprotected _disposerProperties: { [Key in keyof this[\"_settings\"]]?: Array<IDisposer> } = {};\n\n\t/**\n\t * IMPORTANT! Do not instantiate this class via `new Class()` syntax.\n\t *\n\t * Use static method `Class.new()` instead.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/getting-started/#New_element_syntax} for more info\n\t * @ignore\n\t */\n\tconstructor(root: Root, settings: Entity[\"_settings\"], isReal: boolean, templates: Array<Template<Entity>> = []) {\n\t\tsuper(settings);\n\t\tif (!isReal) {\n\t\t\tthrow new Error(\"You cannot use `new Class()`, instead use `Class.new()`\");\n\t\t}\n\t\tthis._root = root;\n\t\tthis._internalTemplates = templates as Array<Template<this>>;\n\t}\n\n\t/**\n\t * Use this method to create an instance of this class.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/getting-started/#New_element_syntax} for more info\n\t * @param root Root element\n\t * @param settings Settings\n\t * @param template Template\n\t * @return Instantiated object\n\t */\n\tstatic new<C extends typeof Entity, T extends InstanceType<C>>(this: C, root: Root, settings: T[\"_settings\"], template?: Template<T>): T {\n\t\tconst x = (new this(root, settings, true)) as T;\n\t\tx._template = template;\n\t\tx._afterNew();\n\t\treturn x;\n\t}\n\n\tstatic _new<C extends typeof Entity, T extends InstanceType<C>>(this: C, root: Root, settings: T[\"_settings\"], templates: Array<Template<T>> = []): T {\n\t\tconst x = (new this(root, settings, true, templates)) as T;\n\t\tx._afterNew();\n\t\treturn x;\n\t}\n\n\tprotected _afterNew() {\n\t\tthis._checkDirty();\n\n\t\tlet shouldApply = false;\n\n\t\tconst template = this._template;\n\n\t\tif (template) {\n\t\t\tshouldApply = true;\n\t\t\ttemplate._setObjectTemplate(this);\n\t\t}\n\n\t\t$array.each(this._internalTemplates, (template) => {\n\t\t\tshouldApply = true;\n\t\t\ttemplate._setObjectTemplate(this);\n\t\t});\n\n\t\tif (shouldApply) {\n\t\t\tthis._applyTemplates(false);\n\t\t}\n\n\t\tthis.states.create(\"default\", {});\n\n\t\tthis._setDefaults();\n\t}\n\n\t// This is the same as _afterNew, except it also applies the themes.\n\t// This should only be used for classes which don't have a parent (because they extend from Entity and not Sprite).\n\tprotected _afterNewApplyThemes() {\n\t\tthis._checkDirty();\n\n\t\tconst template = this._template;\n\n\t\tif (template) {\n\t\t\ttemplate._setObjectTemplate(this);\n\t\t}\n\n\t\t$array.each(this._internalTemplates, (template) => {\n\t\t\ttemplate._setObjectTemplate(this);\n\t\t});\n\n\t\tthis.states.create(\"default\", {});\n\n\t\tthis._setDefaults();\n\n\t\tthis._applyThemes();\n\t}\n\n\tprotected _createEvents(): EventDispatcher<Events<this, this[\"_events\"]>> {\n\t\treturn new EventDispatcher();\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic get classNames(): Array<string> {\n\t\treturn (this.constructor as any).classNames;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic get className(): string {\n\t\treturn (this.constructor as any).className;\n\t}\n\n\tprotected _setDefaults(){\n\n\t}\n\n\tpublic _setDefault<Key extends keyof this[\"_settings\"]>(key: Key, value: this[\"_settings\"][Key]) {\n\t\tif (!(key in this._settings)) {\n\t\t\tsuper.set(key, value);\n\t\t}\n\t}\n\n\tpublic _setRawDefault<Key extends keyof this[\"_settings\"]>(key: Key, value: this[\"_settings\"][Key]) {\n\t\tif (!(key in this._settings)) {\n\t\t\tsuper.setRaw(key, value);\n\t\t}\n\t}\n\n\tpublic _clearDirty() {\n\t\t$object.keys(this._dirty).forEach((key) => {\n\t\t\tthis._dirty[key] = false;\n\t\t});\n\n\t\t$object.keys(this._dirtyPrivate).forEach((key) => {\n\t\t\tthis._dirtyPrivate[key] = false;\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic isDirty<Key extends keyof this[\"_settings\"]>(key: Key): boolean {\n\t\treturn !!this._dirty[key];\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic isPrivateDirty<Key extends keyof this[\"_privateSettings\"]>(key: Key): boolean {\n\t\treturn !!this._dirtyPrivate[key];\n\t}\n\n\tpublic _markDirtyKey<Key extends keyof this[\"_settings\"]>(key: Key) {\n\t\tthis._dirty[key] = true;\n\t\tsuper._markDirtyKey(key);\n\t}\n\n\tpublic _markDirtyPrivateKey<Key extends keyof this[\"_privateSettings\"]>(key: Key) {\n\t\tthis._dirtyPrivate[key] = true;\n\t\tsuper._markDirtyKey(key);\n\t}\n\n\t/**\n\t * Checks if element is of certain class (or inherits one).\n\t *\n\t * @param type Class name to check\n\t * @return {boolean} Is of class?\n\t */\n\tpublic isType<A>(type: string): this is A {\n\t\treturn this.classNames.indexOf(type) !== -1;\n\t}\n\n\tprotected _pushPropertyDisposer<Key extends keyof this[\"_settings\"], D extends IDisposer>(key: Key, disposer: D): D {\n\t\tlet disposers = this._disposerProperties[key];\n\n\t\tif (disposers === undefined) {\n\t\t\tdisposers = this._disposerProperties[key] = [];\n\t\t}\n\n\t\tdisposers.push(disposer);\n\n\t\treturn disposer;\n\t}\n\n\tprotected _disposeProperty<Key extends keyof this[\"_settings\"]>(key: Key): void {\n\t\tconst disposers = this._disposerProperties[key];\n\n\t\tif (disposers !== undefined) {\n\t\t\t$array.each(disposers!, (disposer) => {\n\t\t\t\tdisposer.dispose();\n\t\t\t});\n\n\t\t\tdelete this._disposerProperties[key];\n\t\t}\n\t}\n\n\t/**\n\t * @todo needs description\n\t * @param value Template\n\t */\n\tpublic set template(value: Template<this> | undefined) {\n\t\tconst template = this._template;\n\n\t\tif (template !== value) {\n\t\t\tthis._template = value;\n\n\t\t\tif (template) {\n\t\t\t\ttemplate._removeObjectTemplate(this);\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tvalue._setObjectTemplate(this);\n\t\t\t}\n\n\t\t\tthis._applyTemplates();\n\t\t}\n\t}\n\n\tpublic get template(): Template<this> | undefined {\n\t\treturn this._template;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic markDirty() {\n\t\tthis._root._addDirtyEntity(this);\n\t}\n\n\tprotected _startAnimation(): void {\n\t\tthis._root._addAnimation(this);\n\t}\n\n\tprotected _animationTime(): number | null {\n\t\treturn this._root.animationTime;\n\t}\n\n\tpublic _applyState(_name: string): void { }\n\tpublic _applyStateAnimated(_name: string, _duration?: number): void { }\n\n\t/**\n\t * Returns settings value for the specified `key`.\n\t *\n\t * If there is no value, `fallback` is returned instead (if set).\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Settings value\n\t * @param callback Fallback value\n\t * @return Value\n\t */\n\tpublic get<Key extends keyof this[\"_settings\"], F>(key: Key, fallback: F): NonNullable<this[\"_settings\"][Key]> | F;\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key): this[\"_settings\"][Key];\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key, fallback?: any): any {\n\t\tconst value = this.adapters.fold(key, (<any>this._settings)[key]);\n\n\t\tif (value !== undefined) {\n\t\t\treturn value;\n\n\t\t} else {\n\t\t\treturn fallback;\n\t\t}\n\t}\n\n\t/**\n\t * Sets a setting `value` for the specified `key`, and returns the same `value`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t * @param value Setting value\n\t * @return Setting value\n\t */\n\tpublic set<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._userProperties[key] = true;\n\t\treturn super.set(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setRaw<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value) {\n\t\tthis._userProperties[key] = true;\n\t\tsuper.setRaw(key, value);\n\t}\n\n\t/**\n\t * Sets a setting `value` for the specified `key` only if the value for this key was not set previously using set method, and returns the same `value`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t * @param value Setting value\n\t * @return Setting value\n\t */\n\tpublic _setSoft<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): Value {\n\t\tif(!this._userProperties[key]){\n\t\t\treturn super.set(key, value);\n\t\t}\n\t\treturn value;\n\t}\n\n\t/**\n\t * Removes a setting value for the specified `key`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t */\n\tpublic remove<Key extends keyof this[\"_settings\"]>(key: Key) {\n\t\tdelete this._userProperties[key];\n\t\tthis._removeTemplateProperty(key);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setPrivate<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._userPrivateProperties[key] = true;\n\t\treturn super.setPrivate(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setPrivateRaw<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value) {\n\t\tthis._userPrivateProperties[key] = true;\n\t\tsuper.setPrivateRaw(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic removePrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key) {\n\t\tdelete this._userPrivateProperties[key];\n\t\tthis._removeTemplatePrivateProperty(key);\n\t}\n\n\tpublic _setTemplateProperty<Key extends keyof this[\"_settings\"]>(template: Template<this>, key: Key, value: this[\"_settings\"][Key]) {\n\t\tif (!this._userProperties[key]) {\n\t\t\tconst match = this._findTemplateByKey(key);\n\n\t\t\tif (template === match) {\n\t\t\t\tsuper.set(key, value);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _setTemplatePrivateProperty<Key extends keyof this[\"_privateSettings\"]>(template: Template<this>, key: Key, value: this[\"_privateSettings\"][Key]) {\n\t\tif (!this._userPrivateProperties[key]) {\n\t\t\tconst match = this._findTemplateByPrivateKey(key);\n\n\t\t\tif (template === match) {\n\t\t\t\tsuper.setPrivate(key, value);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _removeTemplateProperty<Key extends keyof this[\"_settings\"]>(key: Key) {\n\t\tif (!this._userProperties[key]) {\n\t\t\tconst match = this._findTemplateByKey(key);\n\n\t\t\tif (match) {\n\t\t\t\t// TODO don't stop the animation if the property didn't change\n\t\t\t\tsuper.set(key, match._settings[key]!);\n\n\t\t\t} else {\n\t\t\t\tsuper.remove(key);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _removeTemplatePrivateProperty<Key extends keyof this[\"_privateSettings\"]>(key: Key) {\n\t\tif (!this._userPrivateProperties[key]) {\n\t\t\tconst match = this._findTemplateByPrivateKey(key);\n\n\t\t\tif (match) {\n\t\t\t\t// TODO don't stop the animation if the property didn't change\n\t\t\t\tsuper.setPrivate(key, match._privateSettings[key]);\n\n\t\t\t} else {\n\t\t\t\tsuper.removePrivate(key);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _walkParents(f: (parent: Entity) => void): void {\n\t\tf(this._root._rootContainer);\n\t\tf(this);\n\t}\n\n\t// TODO faster version of this method which is specialized to just 1 key\n\tpublic _applyStateByKey(name: string): void {\n\t\tconst other = this.states.create(name, {});\n\t\tconst seen: Dirty<this[\"_settings\"]> = {};\n\n\t\tthis._eachTemplate((template) => {\n\t\t\tconst state = template.states.lookup(name);\n\n\t\t\tif (state) {\n\t\t\t\tstate._apply(other, seen);\n\t\t\t}\n\t\t});\n\n\t\t$object.each(other._settings, (key) => {\n\t\t\tif (!seen[key] && !other._userSettings[key]) {\n\t\t\t\tother.remove(key);\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected _applyTemplate(template: Template<this>, state: ApplyState<this>): void {\n\t\tthis._templateDisposers.push(template._apply(this, state));\n\n\t\t$object.each(template._settings, (key, value) => {\n\t\t\tif (!state.settings[key] && !this._userProperties[key]) {\n\t\t\t\tstate.settings[key] = true;\n\t\t\t\tsuper.set(key, value);\n\t\t\t}\n\t\t});\n\n\t\t$object.each(template._privateSettings, (key, value) => {\n\t\t\tif (!state.privateSettings[key] && !this._userPrivateProperties[key]) {\n\t\t\t\tstate.privateSettings[key] = true;\n\t\t\t\tsuper.setPrivate(key, value);\n\t\t\t}\n\t\t});\n\n\t\tif (this._runSetup && template.setup) {\n\t\t\tthis._runSetup = false;\n\t\t\ttemplate.setup(this);\n\t\t}\n\t}\n\n\t/**\n\t * Calls the closure with each template and returns the first template which is true\n\t */\n\tprotected _findStaticTemplate(f: (template: Template<this>) => boolean): Template<this> | undefined {\n\t\tif (this._template) {\n\t\t\tif (f(this._template)) {\n\t\t\t\treturn this._template;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _eachTemplate(f: (template: Template<this>) => void): void {\n\t\tthis._findStaticTemplate((template) => {\n\t\t\tf(template);\n\t\t\treturn false;\n\t\t});\n\n\t\t// _internalTemplates is sorted with most specific to the right\n\t\t$array.eachReverse(this._internalTemplates, f);\n\n\t\t// _templates is sorted with most specific to the left\n\t\t$array.each(this._templates, f);\n\t}\n\n\tpublic _applyTemplates(remove: boolean = true): void {\n\t\tif (remove) {\n\t\t\tthis._disposeTemplates();\n\t\t}\n\n\t\tconst state: ApplyState<this> = {\n\t\t\tsettings: {},\n\t\t\tprivateSettings: {},\n\t\t\tstates: {},\n\t\t};\n\n\t\tthis._eachTemplate((template) => {\n\t\t\tthis._applyTemplate(template, state);\n\t\t});\n\n\t\tif (remove) {\n\t\t\t$object.each(this._settings, (key) => {\n\t\t\t\tif (!this._userProperties[key] && !state.settings[key]) {\n\t\t\t\t\tsuper.remove(key);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$object.each(this._privateSettings, (key) => {\n\t\t\t\tif (!this._userPrivateProperties[key] && !state.privateSettings[key]) {\n\t\t\t\t\tsuper.removePrivate(key);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tprotected _findTemplate(f: (template: Template<this>) => boolean): Template<this> | undefined {\n\t\tconst value = this._findStaticTemplate(f);\n\n\t\tif (value === undefined) {\n\t\t\t// _internalTemplates is sorted with most specific to the right\n\t\t\tconst value = $array.findReverse(this._internalTemplates, f);\n\n\t\t\tif (value === undefined) {\n\t\t\t\t// _templates is sorted with most specific to the left\n\t\t\t\treturn $array.find(this._templates, f);\n\n\t\t\t} else {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t} else {\n\t\t\treturn value;\n\t\t}\n\t}\n\n\tprotected _findTemplateByKey<Key extends keyof this[\"_settings\"]>(key: Key): Template<this> | undefined {\n\t\treturn this._findTemplate((template) => {\n\t\t\treturn key in template._settings;\n\t\t});\n\t}\n\n\tprotected _findTemplateByPrivateKey<Key extends keyof this[\"_privateSettings\"]>(key: Key): Template<this> | undefined {\n\t\treturn this._findTemplate((template) => {\n\t\t\treturn key in template._privateSettings;\n\t\t});\n\t}\n\n\tprotected _disposeTemplates() {\n\t\t$array.each(this._templateDisposers, (disposer) => {\n\t\t\tdisposer.dispose();\n\t\t});\n\n\t\tthis._templateDisposers.length = 0;\n\t}\n\n\tprotected _removeTemplates() {\n\t\t$array.each(this._templates, (template) => {\n\t\t\ttemplate._removeObjectTemplate(this);\n\t\t});\n\n\t\tthis._templates.length = 0;\n\t}\n\n\tpublic _applyThemes(): boolean {\n\t\tlet isConnected = false;\n\n\t\tconst defaults: Array<Array<Theme>> = [];\n\n\t\tlet themes: Array<Array<Theme>> = [];\n\n\t\tconst themeTags: Set<string> = new Set();\n\n\t\tconst tags = this.get(\"themeTagsSelf\");\n\n\t\tif (tags) {\n\t\t\t$array.each(tags, (tag) => {\n\t\t\t\tthemeTags.add(tag);\n\t\t\t});\n\t\t}\n\n\t\tthis._walkParents((entity) => {\n\t\t\tif (entity === this._root._rootContainer) {\n\t\t\t\tisConnected = true;\n\t\t\t}\n\n\t\t\tif (entity._defaultThemes.length > 0) {\n\t\t\t\tdefaults.push(entity._defaultThemes);\n\t\t\t}\n\n\t\t\tconst theme = entity.get(\"themes\");\n\n\t\t\tif (theme) {\n\t\t\t\tthemes.push(theme);\n\t\t\t}\n\n\t\t\tconst tags = entity.get(\"themeTags\");\n\n\t\t\tif (tags) {\n\t\t\t\t$array.each(tags, (tag) => {\n\t\t\t\t\tthemeTags.add(tag);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tthemes = defaults.concat(themes);\n\n\t\tthis._removeTemplates();\n\n\t\tif (isConnected) {\n\t\t\t$array.eachReverse(this.classNames, (name) => {\n\t\t\t\tconst allRules: Array<IRule<this>> = [];\n\n\t\t\t\t$array.each(themes, (themes) => {\n\t\t\t\t\t$array.each(themes, (theme) => {\n\t\t\t\t\t\tconst rules = theme._lookupRules<this>(name);\n\n\t\t\t\t\t\tif (rules) {\n\t\t\t\t\t\t\t$array.eachReverse(rules, (rule) => {\n\t\t\t\t\t\t\t\tconst matches = rule.tags.every((tag) => {\n\t\t\t\t\t\t\t\t\treturn themeTags.has(tag);\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tif (matches) {\n\t\t\t\t\t\t\t\t\tconst result = $array.getFirstSortedIndex(allRules, (x) => {\n\t\t\t\t\t\t\t\t\t\tconst order = $order.compare(rule.tags.length, x.tags.length);\n\n\t\t\t\t\t\t\t\t\t\tif (order === 0) {\n\t\t\t\t\t\t\t\t\t\t\treturn $order.compareArray(rule.tags, x.tags, $order.compare);\n\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\treturn order;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tallRules.splice(result.index, 0, rule);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t$array.each(allRules, (rule) => {\n\t\t\t\t\tthis._templates.push(rule.template);\n\t\t\t\t\trule.template._setObjectTemplate(this);\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tthis._applyTemplates();\n\n\t\tif (isConnected) {\n\t\t\t// This causes it to only run the setup function the first time that the themes are applied\n\t\t\tthis._runSetup = false;\n\t\t}\n\n\t\treturn isConnected;\n\t}\n\n\tpublic _changed(): void { }\n\n\tpublic _beforeChanged(): void {\n\n\t\tif (this.isDirty(\"id\")) {\n\t\t\tconst id = this.get(\"id\")!;\n\t\t\tif (id) {\n\t\t\t\tif (registry.entitiesById[id]) {\n\t\t\t\t\tthrow new Error(\"An entity with id \\\"\" + id + \"\\\" already exists.\");\n\t\t\t\t}\n\t\t\t\tregistry.entitiesById[id] = this;\n\t\t\t}\n\n\t\t\tconst prevId = this._prevSettings.id;\n\t\t\tif(prevId) {\n\t\t\t\tdelete registry.entitiesById[prevId];\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _afterChanged(): void { }\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 _dispose() {\n\t\tsuper._dispose();\n\n\t\tconst template = this._template;\n\n\t\tif (template) {\n\t\t\ttemplate._removeObjectTemplate(this);\n\t\t}\n\n\t\t$array.each(this._internalTemplates, (template) => {\n\t\t\ttemplate._removeObjectTemplate(this);\n\t\t});\n\n\t\tthis._removeTemplates();\n\t\tthis._disposeTemplates();\n\n\t\tthis.events.dispose();\n\n\t\tthis._disposers.forEach((x) => {\n\t\t\tx.dispose();\n\t\t});\n\n\t\t$object.each(this._disposerProperties, (_, disposers) => {\n\t\t\t$array.each(disposers, (disposer) => {\n\t\t\t\tdisposer.dispose();\n\t\t\t});\n\t\t});\n\n\t\tconst id = this.get(\"id\")!;\n\t\tif (id) {\n\t\t\tdelete registry.entitiesById[id];\n\t\t}\n\t}\n\n\t/**\n\t * Creates and returns a \"disposable\" timeout.\n\t *\n\t * @param fn Callback\n\t * @param delay Delay in milliseconds\n\t * @return Timeout disposer\n\t */\n\tpublic setTimeout(fn: () => void, delay: number): IDisposer {\n\t\tconst id = setTimeout(() => {\n\t\t\tthis.removeDispose(disposer);\n\t\t\tfn();\n\t\t}, delay);\n\n\t\tconst disposer = new Disposer(() => {\n\t\t\tclearTimeout(id);\n\t\t});\n\n\t\tthis._disposers.push(disposer);\n\t\treturn disposer;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic removeDispose(target: IDisposer): void {\n\t\tif (!this.isDisposed()) {\n\t\t\tlet index = $array.indexOf(this._disposers, target);\n\t\t\tif (index > -1) {\n\t\t\t\tthis._disposers.splice(index, 1);\n\t\t\t}\n\t\t}\n\n\t\ttarget.dispose();\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic hasTag(tag: string): boolean {\n\t\treturn $array.indexOf(this.get(\"themeTags\", []), tag) !== -1;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic addTag(tag: string): void {\n\t\tif (!this.hasTag(tag)) {\n\t\t\tconst tags = (<any>this).get(\"themeTags\", []);\n\t\t\ttags.push(tag);\n\t\t\tthis.set(\"themeTags\", tags);\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic removeTag(tag: string): void {\n\t\tif (this.hasTag(tag)) {\n\t\t\tconst tags = (<any>this).get(\"themeTags\", []);\n\t\t\t$array.remove(tags, tag);\n\t\t\tthis.set(\"themeTags\", tags);\n\t\t}\n\t}\n\n\tprotected _t(text: any, locale?: ILocale, ...rest: Array<string>){\n\t\treturn this._root.language.translate(text, locale, ...rest);\n\t}\n\n\t/**\n\t * An instance of [[Root]] object.\n\t *\n\t * @readonly\n\t * @since 5.0.6\n\t * @return Root object\n\t */\n\tpublic get root(): Root {\n\t\treturn this._root;\n\t}\n\n}\n"]}
@@ -45,7 +45,7 @@ var Language = /** @class */ (function (_super) {
45
45
  }
46
46
  else if (locale !== this.getPrivate("defaultLocale")) {
47
47
  // Try to look in default language
48
- return this.translate.apply(this, __spreadArray([prompt, this.getPrivate("defaultLocale")], __read(rest)));
48
+ return this.translate.apply(this, __spreadArray([prompt, this.getPrivate("defaultLocale")], __read(rest), false));
49
49
  }
50
50
  // Replace %1, %2, etc params
51
51
  if (rest.length) {
@@ -66,7 +66,7 @@ var Language = /** @class */ (function (_super) {
66
66
  for (var _i = 2; _i < arguments.length; _i++) {
67
67
  rest[_i - 2] = arguments[_i];
68
68
  }
69
- return this.translate.apply(this, __spreadArray([prompt, locale], __read(rest)));
69
+ return this.translate.apply(this, __spreadArray([prompt, locale], __read(rest), false));
70
70
  }
71
71
  });
72
72
  Object.defineProperty(Language.prototype, "setTranslationAny", {
@@ -87,7 +87,7 @@ var Language = /** @class */ (function (_super) {
87
87
  for (var _i = 2; _i < arguments.length; _i++) {
88
88
  rest[_i - 2] = arguments[_i];
89
89
  }
90
- var translation = this.translate.apply(this, __spreadArray([prompt, locale], __read(rest)));
90
+ var translation = this.translate.apply(this, __spreadArray([prompt, locale], __read(rest), false));
91
91
  return translation == prompt ? "" : translation;
92
92
  }
93
93
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Language.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Language.ts"],"names":[],"mappings":"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","sourcesContent":["import { Entity, IEntitySettings, IEntityPrivate } from \"./Entity\"\nimport * as $array from \"./Array\"\nimport en from \"../../../locales/en\";\n\n/**\n * Defines properties that exist for the locale.\n *\n * @ignore\n */\nexport interface ILocaleSettings {\n\t\"firstDayOfWeek\"?: number,\n\n\t// number formatter related\n\t\"_decimalSeparator\"?: string;\n\t\"_thousandSeparator\"?: string;\n\n\t\"_big_number_suffix_3\"?: string;\n\t\"_big_number_suffix_6\"?: string;\n\t\"_big_number_suffix_9\"?: string;\n\t\"_big_number_suffix_12\"?: string;\n\t\"_big_number_suffix_15\"?: string;\n\t\"_big_number_suffix_18\"?: string;\n\t\"_big_number_suffix_21\"?: string;\n\t\"_big_number_suffix_24\"?: string;\n\n\t\"_small_number_suffix_24\"?: string;\n\t\"_small_number_suffix_21\"?: string;\n\t\"_small_number_suffix_18\"?: string;\n\t\"_small_number_suffix_15\"?: string;\n\t\"_small_number_suffix_12\"?: string;\n\t\"_small_number_suffix_9\"?: string;\n\t\"_small_number_suffix_6\"?: string;\n\t\"_small_number_suffix_3\"?: string;\n\n\t\"_byte_suffix_B\"?: string;\n\t\"_byte_suffix_KB\"?: string;\n\t\"_byte_suffix_MB\"?: string;\n\t\"_byte_suffix_GB\"?: string;\n\t\"_byte_suffix_TB\"?: string;\n\t\"_byte_suffix_PB\"?: string;\n\n\t// Default date formats for various periods\n\t\"_date\"?: string;\n\t\"_date_millisecond\"?: string;\n\t\"_date_millisecond_full\"?: string;\n\t\"_date_second\"?: string;\n\t\"_date_second_full\"?: string;\n\t\"_date_minute\"?: string;\n\t\"_date_minute_full\"?: string;\n\t\"_date_hour\"?: string;\n\t\"_date_hour_full\"?: string;\n\t\"_date_day\"?: string;\n\t\"_date_day_full\"?: string;\n\t\"_date_week\"?: string;\n\t\"_date_week_full\"?: string;\n\t\"_date_month\"?: string;\n\t\"_date_month_full\"?: string;\n\t\"_date_year\"?: string;\n\n\t// Default duration formats for various base units\n\t\"_duration_millisecond\"?: string;\n\t\"_duration_millisecond_second\"?: string;\n\t\"_duration_millisecond_minute\"?: string;\n\t\"_duration_millisecond_hour\"?: string;\n\t\"_duration_millisecond_day\"?: string;\n\t\"_duration_millisecond_week\"?: string;\n\t\"_duration_millisecond_month\"?: string;\n\t\"_duration_millisecond_year\"?: string;\n\n\t\"_duration_second\"?: string;\n\t\"_duration_second_minute\"?: string;\n\t\"_duration_second_hour\"?: string;\n\t\"_duration_second_day\"?: string;\n\t\"_duration_second_week\"?: string;\n\t\"_duration_second_month\"?: string;\n\t\"_duration_second_year\"?: string;\n\n\t\"_duration_minute\"?: string;\n\t\"_duration_minute_hour\"?: string;\n\t\"_duration_minute_day\"?: string;\n\t\"_duration_minute_week\"?: string;\n\t\"_duration_minute_month\"?: string;\n\t\"_duration_minute_year\"?: string;\n\n\t\"_duration_hour\"?: string;\n\t\"_duration_hour_day\"?: string;\n\t\"_duration_hour_week\"?: string;\n\t\"_duration_hour_month\"?: string;\n\t\"_duration_hour_year\"?: string;\n\n\t\"_duration_day\"?: string;\n\t\"_duration_day_week\"?: string;\n\t\"_duration_day_month\"?: string;\n\t\"_duration_day_year\"?: string;\n\n\t\"_duration_week\"?: string;\n\t\"_duration_week_month\"?: string;\n\t\"_duration_week_year\"?: string;\n\n\t\"_duration_month\"?: string;\n\t\"_duration_month_year\"?: string;\n\n\t\"_duration_year\"?: string;\n\n\t// Era\n\t\"_era_ad\"?: string;\n\t\"_era_bc\"?: string;\n\n\t// Period\n\t\"A\"?: string;\n\t\"P\"?: string;\n\t\"AM\"?: string;\n\t\"PM\"?: string;\n\t\"A.M.\"?: string;\n\t\"P.M.\"?: string;\n\n\t// Dates\n\t\"January\"?: string;\n\t\"February\"?: string;\n\t\"March\"?: string;\n\t\"April\"?: string;\n\t\"May\"?: string;\n\t\"June\"?: string;\n\t\"July\"?: string;\n\t\"August\"?: string;\n\t\"September\"?: string;\n\t\"October\"?: string;\n\t\"November\"?: string;\n\t\"December\"?: string;\n\t\"Jan\"?: string;\n\t\"Feb\"?: string;\n\t\"Mar\"?: string;\n\t\"Apr\"?: string;\n\t\"May(short)\"?: string;\n\t\"Jun\"?: string;\n\t\"Jul\"?: string;\n\t\"Aug\"?: string;\n\t\"Sep\"?: string;\n\t\"Oct\"?: string;\n\t\"Nov\"?: string;\n\t\"Dec\"?: string;\n\t\"Sunday\"?: string;\n\t\"Monday\"?: string;\n\t\"Tuesday\"?: string;\n\t\"Wednesday\"?: string;\n\t\"Thursday\"?: string;\n\t\"Friday\"?: string;\n\t\"Saturday\"?: string;\n\t\"Sun\"?: string;\n\t\"Mon\"?: string;\n\t\"Tue\"?: string;\n\t\"Wed\"?: string;\n\t\"Thu\"?: string;\n\t\"Fri\"?: string;\n\t\"Sat\"?: string;\n\n\t// Chart elements\n\t\"Zoom Out\"?: string;\n\t\"Play\"?: string;\n\t\"Stop\"?: string;\n\t\"Legend\"?: string;\n\t\"Press ENTER to toggle\"?: string;\n\t\"Loading\"?: string;\n\t\"%1 shown\"?: string;\n\t\"%1 hidden\"?: string;\n\n\t// Chart types\n\t\"Chart\"?: string;\n\t\"Serial chart\"?: string;\n\t\"X/Y chart\"?: string;\n\t\"Pie chart\"?: string;\n\t\"Sunburst chart\"?: string;\n\t\"Gauge chart\"?: string;\n\t\"Radar chart\"?: string;\n\t\"Sankey diagram\"?: string;\n\t\"Flow diagram\"?: string;\n\t\"Chord diagram\"?: string;\n\t\"TreeMap chart\"?: string;\n\t\"Force directed tree\"?: string;\n\t\"Sliced chart\"?: string;\n\n\t// Series types\n\t\"Series\"?: string;\n\t\"Candlestick Series\"?: string;\n\t\"OHLC Series\"?: string;\n\t\"Column Series\"?: string;\n\t\"Line Series\"?: string;\n\t\"Pie Slice Series\"?: string;\n\t\"Funnel Series\"?: string;\n\t\"Pyramid Series\"?: string;\n\t\"X/Y Series\"?: string;\n\n\t// Map-related\n\t\"Map\"?: string;\n\t\"Press ENTER to zoom in\"?: string;\n\t\"Press ENTER to zoom out\"?: string;\n\t\"Use arrow keys to zoom in and out\"?: string;\n\t\"Use plus and minus keys on your keyboard to zoom in and out\"?: string;\n\t\"Home\"?: string;\n\t\"Zoom level changed to %1\"?: string;\n\n\t// Export-related\n\t\"Export\"?: string;\n\t\"Image\"?: string;\n\t\"Data\"?: string;\n\t\"Print\"?: string;\n\t\"Press ENTER or use arrow keys to navigate\"?: string;\n\t\"Press ENTER to open\"?: string;\n\t\"Press ENTER to print.\"?: string;\n\t\"Press ENTER to export as %1.\"?: string;\n\t\"(Press ESC to close this message)\"?: string;\n\t\"Image Export Complete\"?: string;\n\t\"Export operation took longer than expected. Something might have gone wrong.\"?: string;\n\t\"Saved from\"?: string;\n\t\"PNG\"?: string;\n\t\"JPG\"?: string;\n\t\"GIF\"?: string;\n\t\"SVG\"?: string;\n\t\"PDF\"?: string;\n\t\"JSON\"?: string;\n\t\"CSV\"?: string;\n\t\"XLSX\"?: string;\n\t\"HTML\"?: string;\n\n\t// Scrollbar-related\n\t\"Use TAB to select grip buttons or left and right arrows to change selection\"?: string;\n\t\"Use left and right arrows to move selection\"?: string;\n\t\"Use left and right arrows to move left selection\"?: string;\n\t\"Use left and right arrows to move right selection\"?: string;\n\t\"Use TAB select grip buttons or up and down arrows to change selection\"?: string;\n\t\"Use up and down arrows to move selection\"?: string;\n\t\"Use up and down arrows to move lower selection\"?: string;\n\t\"Use up and down arrows to move upper selection\"?: string;\n\t\"From %1 to %2\"?: string;\n\t\"From %1\"?: string;\n\t\"To %1\"?: string;\n\n\t// Data loader-related\n\t\"No parser available for file: %1\"?: string;\n\t\"Error parsing file: %1\"?: string;\n\t\"Unable to load file: %1\"?: string;\n\t\"Invalid date\"?: string;\n\n\t// Common actions\n\t\"Close\"?: string;\n\t\"Minimize\"?: string;\n\n\t\"Venn Series\"?: string;\n\t\"Venn Diagram\"?: string;\n}\n\n/**\n * Defines functions that exist for the locale.\n *\n * @ignore\n */\nexport interface ILocaleFunctions {\n\t// ordinal function\n\t\"_dateOrd\": (day: number) => string;\n}\n\n/**\n * Defines all of the defaults for locale properties.\n * @ignore\n */\nexport interface ILocaleDefault extends ILocaleSettings, ILocaleFunctions { }\n\n/**\n * Defines locale interface.\n *\n * @ignore\n */\nexport interface ILocale extends Partial<ILocaleDefault> { };\n\nexport interface ILanguageSettings extends IEntitySettings {\n}\n\nexport interface ILanguagePrivate extends IEntityPrivate {\n\n\t/**\n\t * A locale for International English (default).\n\t */\n\tdefaultLocale: ILocale;\n\n}\n\nexport class Language extends Entity {\n\tdeclare public _settings: ILanguageSettings;\n\tdeclare public _privateSettings: ILanguagePrivate;\n\n\tprotected _setDefaults() {\n\t\tthis.setPrivate(\"defaultLocale\", en);\n\t\tsuper._setDefaults();\n\t}\n\n\tpublic translate<Key extends keyof ILocaleSettings>(prompt: Key, locale?: ILocale, ...rest: Array<string>): string {\n\n\t\t// Get langauge\n\t\tif (!locale) {\n\t\t\tlocale = this._root.locale || this.getPrivate(\"defaultLocale\");\n\t\t}\n\n\t\t// Init translation\n\t\tlet translation: string = prompt;\n\t\tlet value = locale[prompt];\n\n\t\t// Try to look for the translation\n\t\tif (value === null) {\n\t\t\ttranslation = \"\";\n\t\t}\n\t\telse if (value != null) {\n\t\t\t// It might be an empty string\n\t\t\tif (value) {\n\t\t\t\ttranslation = <string>value!;\n\t\t\t}\n\t\t}\n\t\telse if (locale !== this.getPrivate(\"defaultLocale\")) {\n\t\t\t// Try to look in default language\n\t\t\treturn this.translate(prompt, this.getPrivate(\"defaultLocale\"), ...rest);\n\t\t}\n\n\t\t// Replace %1, %2, etc params\n\t\tif (rest.length) {\n\t\t\tfor (let len = rest.length, i = 0; i < len; ++i) {\n\t\t\t\ttranslation = translation.split(\"%\" + (i + 1)).join(rest[i]);\n\t\t\t}\n\t\t}\n\n\t\t// Return the translation\n\t\treturn translation;\n\t}\n\n\tpublic translateAny(prompt: string, locale?: ILocale, ...rest: Array<string>): string {\n\t\treturn this.translate(<any>prompt, locale, ...rest);\n\t}\n\n\tpublic setTranslationAny(prompt: string, translation: string, locale?: ILocale): void {\n\t\tconst localeTarget = locale || this._root.locale;\n\t\t(<any>localeTarget)[prompt] = translation;\n\t}\n\n\tpublic translateEmpty<Key extends keyof ILocaleSettings>(prompt: Key, locale?: ILocale, ...rest: Array<string>): string {\n\t\tlet translation = this.translate(prompt, locale, ...rest);\n\t\treturn translation == prompt ? \"\" : translation;\n\t}\n\n\tpublic translateFunc<Key extends keyof ILocaleFunctions>(prompt: Key, locale?: ILocale): ILocaleFunctions[Key] {\n\n\t\tif ((<any>this._root.locale)[prompt]) {\n\t\t\treturn (<any>this._root.locale)[prompt];\n\t\t}\n\n\t\t// Try to look in default language\n\t\tif (locale !== this.getPrivate(\"defaultLocale\")) {\n\t\t\treturn this.translateFunc(prompt, this.getPrivate(\"defaultLocale\"));\n\t\t}\n\n\t\t// Fail - return empty function\n\t\treturn (): string => {\n\t\t\treturn \"\";\n\t\t};\n\t}\n\n\tpublic translateAll<Key extends keyof ILocaleSettings>(list: Array<Key>, locale?: ILocale): Array<string> {\n\t\t// Translate all items in the list\n\t\tif (!this.isDefault()) {\n\t\t\treturn $array.map(list, (x) => this.translate(x, locale));\n\n\t\t} else {\n\t\t\treturn list;\n\t\t}\n\t}\n\n\t/**\n\t * Returns `true` if the currently selected locale is a default locale.\n\t *\n\t * @return `true` if locale is default; `false` if it is not.\n\t */\n\tpublic isDefault(): boolean {\n\t\treturn this.getPrivate(\"defaultLocale\") === this._root.locale;\n\t}\n\n}\n"]}
1
+ {"version":3,"file":"Language.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Language.ts"],"names":[],"mappings":"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","sourcesContent":["import { Entity, IEntitySettings, IEntityPrivate } from \"./Entity\"\nimport * as $array from \"./Array\"\nimport en from \"../../../locales/en\";\n\n/**\n * Defines properties that exist for the locale.\n *\n * @ignore\n */\nexport interface ILocaleSettings {\n\t\"firstDayOfWeek\"?: number,\n\n\t// number formatter related\n\t\"_decimalSeparator\"?: string;\n\t\"_thousandSeparator\"?: string;\n\n\t\"_big_number_suffix_3\"?: string;\n\t\"_big_number_suffix_6\"?: string;\n\t\"_big_number_suffix_9\"?: string;\n\t\"_big_number_suffix_12\"?: string;\n\t\"_big_number_suffix_15\"?: string;\n\t\"_big_number_suffix_18\"?: string;\n\t\"_big_number_suffix_21\"?: string;\n\t\"_big_number_suffix_24\"?: string;\n\n\t\"_small_number_suffix_24\"?: string;\n\t\"_small_number_suffix_21\"?: string;\n\t\"_small_number_suffix_18\"?: string;\n\t\"_small_number_suffix_15\"?: string;\n\t\"_small_number_suffix_12\"?: string;\n\t\"_small_number_suffix_9\"?: string;\n\t\"_small_number_suffix_6\"?: string;\n\t\"_small_number_suffix_3\"?: string;\n\n\t\"_byte_suffix_B\"?: string;\n\t\"_byte_suffix_KB\"?: string;\n\t\"_byte_suffix_MB\"?: string;\n\t\"_byte_suffix_GB\"?: string;\n\t\"_byte_suffix_TB\"?: string;\n\t\"_byte_suffix_PB\"?: string;\n\n\t// Default date formats for various periods\n\t\"_date\"?: string;\n\t\"_date_millisecond\"?: string;\n\t\"_date_millisecond_full\"?: string;\n\t\"_date_second\"?: string;\n\t\"_date_second_full\"?: string;\n\t\"_date_minute\"?: string;\n\t\"_date_minute_full\"?: string;\n\t\"_date_hour\"?: string;\n\t\"_date_hour_full\"?: string;\n\t\"_date_day\"?: string;\n\t\"_date_day_full\"?: string;\n\t\"_date_week\"?: string;\n\t\"_date_week_full\"?: string;\n\t\"_date_month\"?: string;\n\t\"_date_month_full\"?: string;\n\t\"_date_year\"?: string;\n\n\t// Default duration formats for various base units\n\t\"_duration_millisecond\"?: string;\n\t\"_duration_millisecond_second\"?: string;\n\t\"_duration_millisecond_minute\"?: string;\n\t\"_duration_millisecond_hour\"?: string;\n\t\"_duration_millisecond_day\"?: string;\n\t\"_duration_millisecond_week\"?: string;\n\t\"_duration_millisecond_month\"?: string;\n\t\"_duration_millisecond_year\"?: string;\n\n\t\"_duration_second\"?: string;\n\t\"_duration_second_minute\"?: string;\n\t\"_duration_second_hour\"?: string;\n\t\"_duration_second_day\"?: string;\n\t\"_duration_second_week\"?: string;\n\t\"_duration_second_month\"?: string;\n\t\"_duration_second_year\"?: string;\n\n\t\"_duration_minute\"?: string;\n\t\"_duration_minute_hour\"?: string;\n\t\"_duration_minute_day\"?: string;\n\t\"_duration_minute_week\"?: string;\n\t\"_duration_minute_month\"?: string;\n\t\"_duration_minute_year\"?: string;\n\n\t\"_duration_hour\"?: string;\n\t\"_duration_hour_day\"?: string;\n\t\"_duration_hour_week\"?: string;\n\t\"_duration_hour_month\"?: string;\n\t\"_duration_hour_year\"?: string;\n\n\t\"_duration_day\"?: string;\n\t\"_duration_day_week\"?: string;\n\t\"_duration_day_month\"?: string;\n\t\"_duration_day_year\"?: string;\n\n\t\"_duration_week\"?: string;\n\t\"_duration_week_month\"?: string;\n\t\"_duration_week_year\"?: string;\n\n\t\"_duration_month\"?: string;\n\t\"_duration_month_year\"?: string;\n\n\t\"_duration_year\"?: string;\n\n\t// Era\n\t\"_era_ad\"?: string;\n\t\"_era_bc\"?: string;\n\n\t// Period\n\t\"A\"?: string;\n\t\"P\"?: string;\n\t\"AM\"?: string;\n\t\"PM\"?: string;\n\t\"A.M.\"?: string;\n\t\"P.M.\"?: string;\n\n\t// Dates\n\t\"January\"?: string;\n\t\"February\"?: string;\n\t\"March\"?: string;\n\t\"April\"?: string;\n\t\"May\"?: string;\n\t\"June\"?: string;\n\t\"July\"?: string;\n\t\"August\"?: string;\n\t\"September\"?: string;\n\t\"October\"?: string;\n\t\"November\"?: string;\n\t\"December\"?: string;\n\t\"Jan\"?: string;\n\t\"Feb\"?: string;\n\t\"Mar\"?: string;\n\t\"Apr\"?: string;\n\t\"May(short)\"?: string;\n\t\"Jun\"?: string;\n\t\"Jul\"?: string;\n\t\"Aug\"?: string;\n\t\"Sep\"?: string;\n\t\"Oct\"?: string;\n\t\"Nov\"?: string;\n\t\"Dec\"?: string;\n\t\"Sunday\"?: string;\n\t\"Monday\"?: string;\n\t\"Tuesday\"?: string;\n\t\"Wednesday\"?: string;\n\t\"Thursday\"?: string;\n\t\"Friday\"?: string;\n\t\"Saturday\"?: string;\n\t\"Sun\"?: string;\n\t\"Mon\"?: string;\n\t\"Tue\"?: string;\n\t\"Wed\"?: string;\n\t\"Thu\"?: string;\n\t\"Fri\"?: string;\n\t\"Sat\"?: string;\n\n\t// Chart elements\n\t\"Zoom Out\"?: string;\n\t\"Play\"?: string;\n\t\"Stop\"?: string;\n\t\"Legend\"?: string;\n\t\"Press ENTER to toggle\"?: string;\n\t\"Loading\"?: string;\n\t\"%1 shown\"?: string;\n\t\"%1 hidden\"?: string;\n\n\t// Chart types\n\t\"Chart\"?: string;\n\t\"Serial chart\"?: string;\n\t\"X/Y chart\"?: string;\n\t\"Pie chart\"?: string;\n\t\"Sunburst chart\"?: string;\n\t\"Gauge chart\"?: string;\n\t\"Radar chart\"?: string;\n\t\"Sankey diagram\"?: string;\n\t\"Flow diagram\"?: string;\n\t\"Chord diagram\"?: string;\n\t\"TreeMap chart\"?: string;\n\t\"Force directed tree\"?: string;\n\t\"Sliced chart\"?: string;\n\n\t// Series types\n\t\"Series\"?: string;\n\t\"Candlestick Series\"?: string;\n\t\"OHLC Series\"?: string;\n\t\"Column Series\"?: string;\n\t\"Line Series\"?: string;\n\t\"Pie Slice Series\"?: string;\n\t\"Funnel Series\"?: string;\n\t\"Pyramid Series\"?: string;\n\t\"X/Y Series\"?: string;\n\n\t// Map-related\n\t\"Map\"?: string;\n\t\"Press ENTER to zoom in\"?: string;\n\t\"Press ENTER to zoom out\"?: string;\n\t\"Use arrow keys to zoom in and out\"?: string;\n\t\"Use plus and minus keys on your keyboard to zoom in and out\"?: string;\n\t\"Home\"?: string;\n\t\"Zoom level changed to %1\"?: string;\n\n\t// Export-related\n\t\"Export\"?: string;\n\t\"Image\"?: string;\n\t\"Data\"?: string;\n\t\"Print\"?: string;\n\t\"Press ENTER or use arrow keys to navigate\"?: string;\n\t\"Press ENTER to open\"?: string;\n\t\"Press ENTER to print.\"?: string;\n\t\"Press ENTER to export as %1.\"?: string;\n\t\"(Press ESC to close this message)\"?: string;\n\t\"Image Export Complete\"?: string;\n\t\"Export operation took longer than expected. Something might have gone wrong.\"?: string;\n\t\"Saved from\"?: string;\n\t\"PNG\"?: string;\n\t\"JPG\"?: string;\n\t\"GIF\"?: string;\n\t\"SVG\"?: string;\n\t\"PDF\"?: string;\n\t\"JSON\"?: string;\n\t\"CSV\"?: string;\n\t\"XLSX\"?: string;\n\t\"HTML\"?: string;\n\n\t// Scrollbar-related\n\t\"Use TAB to select grip buttons or left and right arrows to change selection\"?: string;\n\t\"Use left and right arrows to move selection\"?: string;\n\t\"Use left and right arrows to move left selection\"?: string;\n\t\"Use left and right arrows to move right selection\"?: string;\n\t\"Use TAB select grip buttons or up and down arrows to change selection\"?: string;\n\t\"Use up and down arrows to move selection\"?: string;\n\t\"Use up and down arrows to move lower selection\"?: string;\n\t\"Use up and down arrows to move upper selection\"?: string;\n\t\"From %1 to %2\"?: string;\n\t\"From %1\"?: string;\n\t\"To %1\"?: string;\n\n\t// Data loader-related\n\t\"No parser available for file: %1\"?: string;\n\t\"Error parsing file: %1\"?: string;\n\t\"Unable to load file: %1\"?: string;\n\t\"Invalid date\"?: string;\n\n\t// Common actions\n\t\"Close\"?: string;\n\t\"Minimize\"?: string;\n\n\t\"Venn Series\"?: string;\n\t\"Venn Diagram\"?: string;\n}\n\n/**\n * Defines functions that exist for the locale.\n *\n * @ignore\n */\nexport interface ILocaleFunctions {\n\t// ordinal function\n\t\"_dateOrd\": (day: number) => string;\n}\n\n/**\n * Defines all of the defaults for locale properties.\n * @ignore\n */\nexport interface ILocaleDefault extends ILocaleSettings, ILocaleFunctions { }\n\n/**\n * Defines locale interface.\n *\n * @ignore\n */\nexport interface ILocale extends Partial<ILocaleDefault> { };\n\nexport interface ILanguageSettings extends IEntitySettings {\n}\n\nexport interface ILanguagePrivate extends IEntityPrivate {\n\n\t/**\n\t * A locale for International English (default).\n\t */\n\tdefaultLocale: ILocale;\n\n}\n\nexport class Language extends Entity {\n\tdeclare public _settings: ILanguageSettings;\n\tdeclare public _privateSettings: ILanguagePrivate;\n\n\tprotected _setDefaults() {\n\t\tthis.setPrivate(\"defaultLocale\", en);\n\t\tsuper._setDefaults();\n\t}\n\n\tpublic translate<Key extends keyof ILocaleSettings>(prompt: Key, locale?: ILocale, ...rest: Array<string>): string {\n\n\t\t// Get langauge\n\t\tif (!locale) {\n\t\t\tlocale = this._root.locale || this.getPrivate(\"defaultLocale\");\n\t\t}\n\n\t\t// Init translation\n\t\tlet translation: string = prompt;\n\t\tlet value = locale[prompt];\n\n\t\t// Try to look for the translation\n\t\tif (value === null) {\n\t\t\ttranslation = \"\";\n\t\t}\n\t\telse if (value != null) {\n\t\t\t// It might be an empty string\n\t\t\tif (value) {\n\t\t\t\ttranslation = <string>value!;\n\t\t\t}\n\t\t}\n\t\telse if (locale !== this.getPrivate(\"defaultLocale\")) {\n\t\t\t// Try to look in default language\n\t\t\treturn this.translate(prompt, this.getPrivate(\"defaultLocale\"), ...rest);\n\t\t}\n\n\t\t// Replace %1, %2, etc params\n\t\tif (rest.length) {\n\t\t\tfor (let len = rest.length, i = 0; i < len; ++i) {\n\t\t\t\ttranslation = translation.split(\"%\" + (i + 1)).join(rest[i]);\n\t\t\t}\n\t\t}\n\n\t\t// Return the translation\n\t\treturn translation;\n\t}\n\n\tpublic translateAny(prompt: string, locale?: ILocale, ...rest: Array<string>): string {\n\t\treturn this.translate(<any>prompt, locale, ...rest);\n\t}\n\n\tpublic setTranslationAny(prompt: string, translation: string, locale?: ILocale): void {\n\t\tconst localeTarget = locale || this._root.locale;\n\t\t(<any>localeTarget)[prompt] = translation;\n\t}\n\n\tpublic translateEmpty<Key extends keyof ILocaleSettings>(prompt: Key, locale?: ILocale, ...rest: Array<string>): string {\n\t\tlet translation = this.translate(prompt, locale, ...rest);\n\t\treturn translation == prompt ? \"\" : translation;\n\t}\n\n\tpublic translateFunc<Key extends keyof ILocaleFunctions>(prompt: Key, locale?: ILocale): ILocaleFunctions[Key] {\n\n\t\tif ((<any>this._root.locale)[prompt]) {\n\t\t\treturn (<any>this._root.locale)[prompt];\n\t\t}\n\n\t\t// Try to look in default language\n\t\tif (locale !== this.getPrivate(\"defaultLocale\")) {\n\t\t\treturn this.translateFunc(prompt, this.getPrivate(\"defaultLocale\"));\n\t\t}\n\n\t\t// Fail - return empty function\n\t\treturn (): string => {\n\t\t\treturn \"\";\n\t\t};\n\t}\n\n\tpublic translateAll<Key extends keyof ILocaleSettings>(list: Array<Key>, locale?: ILocale): Array<string> {\n\t\t// Translate all items in the list\n\t\tif (!this.isDefault()) {\n\t\t\treturn $array.map(list, (x) => this.translate(x, locale));\n\n\t\t} else {\n\t\t\treturn list;\n\t\t}\n\t}\n\n\t/**\n\t * Returns `true` if the currently selected locale is a default locale.\n\t *\n\t * @return `true` if locale is default; `false` if it is not.\n\t */\n\tpublic isDefault(): boolean {\n\t\treturn this.getPrivate(\"defaultLocale\") === this._root.locale;\n\t}\n\n}\n"]}
@@ -153,10 +153,20 @@ function getTagValueFromObject(target, parts, object, format) {
153
153
  if (part.prop) {
154
154
  // Regular property
155
155
  if (current instanceof Sprite) {
156
- current = current.get(part.prop) || current.getPrivate(part.prop) || current[part.prop] || getCustomDataValue(current, part.prop);
156
+ var tmp = current.get(part.prop);
157
+ if (tmp == null)
158
+ tmp = current.getPrivate(part.prop);
159
+ if (tmp == null)
160
+ tmp = current[part.prop];
161
+ if (tmp == null)
162
+ tmp = getCustomDataValue(current, part.prop);
163
+ current = tmp;
157
164
  }
158
165
  else if (current.get) {
159
- current = current.get(part.prop) || current[part.prop];
166
+ var tmp = current.get(part.prop);
167
+ if (tmp == null)
168
+ tmp = current[part.prop];
169
+ current = tmp;
160
170
  }
161
171
  else {
162
172
  current = current[part.prop];
@@ -1 +1 @@
1
- {"version":3,"file":"PopulateString.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/PopulateString.ts"],"names":[],"mappings":"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","sourcesContent":["/** @ignore *//** */\n\nimport * as $type from \"./Type\";\nimport * as $utils from \"./Utils\";\nimport { Sprite } from \"../render/Sprite\";\nimport { TextFormatter } from \"./TextFormatter\";\n\n/**\n * @ignore\n */\nexport function populateString(target: Sprite, string: string): string {\n\tif (string != null) {\n\t\tstring = \"\" + string;\n\t\tstring = TextFormatter.escape(string);\n\t\tlet tags = string.match(/\\{([^}]+)\\}/g);\n\t\tlet i;\n\t\tif (tags) {\n\t\t\tfor (i = 0; i < tags.length; i++) {\n\t\t\t\tlet tag = tags[i].replace(/\\{([^}]+)\\}/, \"$1\");\n\t\t\t\tlet value = getTagValue(target, tag, \"\");\n\n\t\t\t\tif (value == null) {\n\t\t\t\t\tvalue = \"\";\n\t\t\t\t}\n\n\t\t\t\tstring = string.split(tags[i]).join(value);\n\t\t\t}\n\t\t}\n\t\tstring = TextFormatter.unescape(string);\n\t}\n\telse {\n\t\tstring = \"\";\n\t}\n\n\t// TODO: apply adapter?\n\treturn string;\n}\n\n/**\n * @ignore\n */\nfunction getTagValue(target: Sprite, tagName: string, format?: string): string {\n\tlet value: any;\n\tconst dataItem = target.dataItem;\n\n\t// Parse parts\n\tlet parts: any[] = [];\n\tlet reg = /([^.]+)\\(([^)]*)\\)|([^.]+)/g;;\n\tlet matches;\n\n\twhile (true) {\n\t\tmatches = reg.exec(tagName);\n\n\t\tif (matches === null) {\n\t\t\tbreak;\n\t\t}\n\n\t\tif (matches[3]) {\n\t\t\t// Simple property\n\t\t\tparts.push({\n\t\t\t\tprop: matches[3]\n\t\t\t});\n\n\t\t\t// Check if maybe we should force a formatter on this value\n\t\t\tconst dateFields = target.getDateFormatter().get(\"dateFields\", []);\n\t\t\tconst numericFields = target.getNumberFormatter().get(\"numericFields\", []);\n\t\t\tconst durationFields = target.getDurationFormatter().get(\"durationFields\", []);\n\t\t\tif ((<any>dateFields).indexOf(matches[3]) !== -1) {\n\t\t\t\tparts.push({\n\t\t\t\t\tmethod: \"formatDate\",\n\t\t\t\t\tparams: []\n\t\t\t\t});\n\t\t\t}\n\t\t\telse if ((<any>numericFields).indexOf(matches[3]) !== -1) {\n\t\t\t\tparts.push({\n\t\t\t\t\tmethod: \"formatNumber\",\n\t\t\t\t\tparams: []\n\t\t\t\t});\n\t\t\t}\n\t\t\telse if ((<any>durationFields).indexOf(matches[3]) !== -1) {\n\t\t\t\tparts.push({\n\t\t\t\t\tmethod: \"formatDuration\",\n\t\t\t\t\tparams: []\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// Method\n\t\t\t// Parse parameters\n\t\t\tlet params: any[] = [];\n\t\t\tif ($utils.trim(matches[2]) != \"\") {\n\t\t\t\tlet reg2 = /'([^']*)'|\"([^\"]*)\"|([0-9\\-]+)/g;\n\t\t\t\tlet matches2;\n\n\t\t\t\twhile (true) {\n\t\t\t\t\tmatches2 = reg2.exec(matches[2]);\n\n\t\t\t\t\tif (matches2 === null) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tparams.push(matches2[1] || matches2[2] || matches2[3])\n\t\t\t\t}\n\t\t\t}\n\t\t\tparts.push({\n\t\t\t\tmethod: matches[1],\n\t\t\t\tparams: params\n\t\t\t})\n\t\t}\n\t}\n\n\t// Check if we can retrieve the value from data item\n\tif (dataItem) {\n\n\n\t\t// Check values\n\t\tvalue = getTagValueFromObject(target, parts, dataItem._settings);\n\n\t\t// Check properties\n\t\tif (value == null || $type.isObject(value)) { // isObject helps to solve problem with date axis, as for example dateX will get dateX from values object and won't get to the dateX date.\n\t\t\tvalue = getTagValueFromObject(target, parts, dataItem);\n\t\t}\n\n\t\t// Check data context\n\t\tlet dataContext: any = dataItem.dataContext;\n\n\t\tif (value == null && dataContext) {\n\t\t\tvalue = getTagValueFromObject(target, parts, dataContext);\n\n\t\t\t// Maybe it's a literal dot-separated name of the key in dataContext?\n\t\t\tif (value == null) {\n\t\t\t\tvalue = getTagValueFromObject(target, [{\n\t\t\t\t\tprop: tagName\n\t\t\t\t}], dataContext);\n\t\t\t}\n\n\t\t\t// scond data context level sometimes exist (tree map)\n\t\t\tif (value == null && dataContext.dataContext) {\n\t\t\t\tvalue = getTagValueFromObject(target, parts, dataContext.dataContext);\n\t\t\t}\n\t\t}\n\n\t\t// Check component's data item\n\t\tif (value == null && dataItem.component && dataItem.component.dataItem !== dataItem) {\n\t\t\tvalue = getTagValue(dataItem.component, tagName, format);\n\t\t}\n\t}\n\n\t// Check sprite's properties\n\tif (value == null) {\n\t\tvalue = getTagValueFromObject(target, parts, target);\n\t}\n\n\t// Finally, check the parent\n\tif (value == null && target.parent) {\n\t\tvalue = getTagValue(target.parent, tagName, format);\n\t}\n\n\treturn value;\n}\n\n/**\n * @ignore\n */\nfunction getCustomDataValue(target: Sprite, prop: string): any {\n\tconst customData = target.getPrivate(\"customData\");\n\tif ($type.isObject(customData)) {\n\t\treturn (<any>customData)[prop];\n\t}\n}\n\n/**\n * @ignore\n */\nfunction getTagValueFromObject(target: Sprite, parts: any[], object: any, format?: string): any {\n\tlet current: any = object;\n\tlet formatApplied = false;\n\tfor (let i = 0, len = parts.length; i < len; i++) {\n\t\tlet part = parts[i];\n\t\tif (part.prop) {\n\t\t\t// Regular property\n\t\t\tif (current instanceof Sprite) {\n\t\t\t\tcurrent = current.get(part.prop) || current.getPrivate(part.prop) || (<any>current)[part.prop] || getCustomDataValue(current, part.prop);\n\t\t\t}\n\t\t\telse if (current.get) {\n\t\t\t\tcurrent = current.get(part.prop) || (<any>current)[part.prop];\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcurrent = current[part.prop];\n\t\t\t}\n\t\t\tif (current == null) {\n\t\t\t\t// Not set, return undefined\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// Method\n\n\t\t\tswitch (part.method) {\n\t\t\t\tcase \"formatNumber\":\n\t\t\t\t\tlet numberValue = $type.toNumber(current);\n\t\t\t\t\tif (numberValue != null) {\n\t\t\t\t\t\tcurrent = target.getNumberFormatter().format(\n\t\t\t\t\t\t\tnumberValue,\n\t\t\t\t\t\t\tformat || part.params[0] || undefined\n\t\t\t\t\t\t);\n\t\t\t\t\t\tformatApplied = true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"formatDate\":\n\t\t\t\t\tlet dateValue = $type.toDate(current);\n\t\t\t\t\tif (!$type.isDate(dateValue) || $type.isNaN(dateValue.getTime())) {\n\t\t\t\t\t\t// Was not able to get date out of value, quitting and letting\n\t\t\t\t\t\t// calling method try another value\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (dateValue != null) {\n\t\t\t\t\t\tcurrent = target.getDateFormatter().format(\n\t\t\t\t\t\t\tdateValue,\n\t\t\t\t\t\t\tformat || part.params[0] || undefined\n\t\t\t\t\t\t);\n\t\t\t\t\t\tformatApplied = true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"formatDuration\":\n\t\t\t\t\tlet durationValue = $type.toNumber(current);\n\t\t\t\t\tif (durationValue != null) {\n\t\t\t\t\t\tcurrent = target.getDurationFormatter().format(\n\t\t\t\t\t\t\tdurationValue,\n\t\t\t\t\t\t\tformat || part.params[0] || undefined,\n\t\t\t\t\t\t\tpart.params[1] || undefined\n\t\t\t\t\t\t);\n\t\t\t\t\t\tformatApplied = true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"urlEncode\":\n\t\t\t\tcase \"encodeURIComponent\":\n\t\t\t\t\tcurrent = encodeURIComponent(current);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tif (current[part.method]) {\n\t\t\t\t\t\tcurrent[part.method].apply(object, part.params);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Apply default format if it wasn't applied explicitly\n\tif (!formatApplied) {\n\n\t\tlet formatParts = [{\n\t\t\tmethod: \"\",\n\t\t\tparams: format\n\t\t}];\n\n\t\tif (format == null) {\n\n\t\t\t// Format is not set\n\t\t\t// Determine from the type of the value\n\t\t\tif ($type.isNumber(current)) {\n\t\t\t\tformatParts[0].method = \"formatNumber\";\n\t\t\t\tformatParts[0].params = \"\";\n\t\t\t}\n\t\t\telse if ($type.isDate(current)) {\n\t\t\t\tformatParts[0].method = \"formatDate\";\n\t\t\t\tformatParts[0].params = \"\";\n\t\t\t}\n\n\t\t}\n\t\telse {\n\n\t\t\t// Format set\n\t\t\t// Try to determine formatter based on the format\n\t\t\tlet formatterType: string = $utils.getFormat(format);\n\n\t\t\t// format\n\t\t\tif (formatterType === \"number\") {\n\t\t\t\tformatParts[0].method = \"formatNumber\";\n\t\t\t}\n\t\t\telse if (formatterType === \"date\") {\n\t\t\t\tformatParts[0].method = \"formatDate\";\n\t\t\t}\n\t\t\telse if (formatterType === \"duration\") {\n\t\t\t\tformatParts[0].method = \"formatDuration\";\n\t\t\t}\n\n\t\t}\n\n\t\t// Apply format\n\t\tif (formatParts[0].method) {\n\t\t\tcurrent = getTagValueFromObject(target, formatParts, current);\n\t\t}\n\n\t}\n\n\treturn current;\n}"]}
1
+ {"version":3,"file":"PopulateString.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/PopulateString.ts"],"names":[],"mappings":"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","sourcesContent":["/** @ignore *//** */\n\nimport * as $type from \"./Type\";\nimport * as $utils from \"./Utils\";\nimport { Sprite } from \"../render/Sprite\";\nimport { TextFormatter } from \"./TextFormatter\";\n\n/**\n * @ignore\n */\nexport function populateString(target: Sprite, string: string): string {\n\tif (string != null) {\n\t\tstring = \"\" + string;\n\t\tstring = TextFormatter.escape(string);\n\t\tlet tags = string.match(/\\{([^}]+)\\}/g);\n\t\tlet i;\n\t\tif (tags) {\n\t\t\tfor (i = 0; i < tags.length; i++) {\n\t\t\t\tlet tag = tags[i].replace(/\\{([^}]+)\\}/, \"$1\");\n\t\t\t\tlet value = getTagValue(target, tag, \"\");\n\n\t\t\t\tif (value == null) {\n\t\t\t\t\tvalue = \"\";\n\t\t\t\t}\n\n\t\t\t\tstring = string.split(tags[i]).join(value);\n\t\t\t}\n\t\t}\n\t\tstring = TextFormatter.unescape(string);\n\t}\n\telse {\n\t\tstring = \"\";\n\t}\n\n\t// TODO: apply adapter?\n\treturn string;\n}\n\n/**\n * @ignore\n */\nfunction getTagValue(target: Sprite, tagName: string, format?: string): string {\n\tlet value: any;\n\tconst dataItem = target.dataItem;\n\n\t// Parse parts\n\tlet parts: any[] = [];\n\tlet reg = /([^.]+)\\(([^)]*)\\)|([^.]+)/g;;\n\tlet matches;\n\n\twhile (true) {\n\t\tmatches = reg.exec(tagName);\n\n\t\tif (matches === null) {\n\t\t\tbreak;\n\t\t}\n\n\t\tif (matches[3]) {\n\t\t\t// Simple property\n\t\t\tparts.push({\n\t\t\t\tprop: matches[3]\n\t\t\t});\n\n\t\t\t// Check if maybe we should force a formatter on this value\n\t\t\tconst dateFields = target.getDateFormatter().get(\"dateFields\", []);\n\t\t\tconst numericFields = target.getNumberFormatter().get(\"numericFields\", []);\n\t\t\tconst durationFields = target.getDurationFormatter().get(\"durationFields\", []);\n\t\t\tif ((<any>dateFields).indexOf(matches[3]) !== -1) {\n\t\t\t\tparts.push({\n\t\t\t\t\tmethod: \"formatDate\",\n\t\t\t\t\tparams: []\n\t\t\t\t});\n\t\t\t}\n\t\t\telse if ((<any>numericFields).indexOf(matches[3]) !== -1) {\n\t\t\t\tparts.push({\n\t\t\t\t\tmethod: \"formatNumber\",\n\t\t\t\t\tparams: []\n\t\t\t\t});\n\t\t\t}\n\t\t\telse if ((<any>durationFields).indexOf(matches[3]) !== -1) {\n\t\t\t\tparts.push({\n\t\t\t\t\tmethod: \"formatDuration\",\n\t\t\t\t\tparams: []\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// Method\n\t\t\t// Parse parameters\n\t\t\tlet params: any[] = [];\n\t\t\tif ($utils.trim(matches[2]) != \"\") {\n\t\t\t\tlet reg2 = /'([^']*)'|\"([^\"]*)\"|([0-9\\-]+)/g;\n\t\t\t\tlet matches2;\n\n\t\t\t\twhile (true) {\n\t\t\t\t\tmatches2 = reg2.exec(matches[2]);\n\n\t\t\t\t\tif (matches2 === null) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tparams.push(matches2[1] || matches2[2] || matches2[3])\n\t\t\t\t}\n\t\t\t}\n\t\t\tparts.push({\n\t\t\t\tmethod: matches[1],\n\t\t\t\tparams: params\n\t\t\t})\n\t\t}\n\t}\n\n\t// Check if we can retrieve the value from data item\n\tif (dataItem) {\n\n\n\t\t// Check values\n\t\tvalue = getTagValueFromObject(target, parts, dataItem._settings);\n\n\t\t// Check properties\n\t\tif (value == null || $type.isObject(value)) { // isObject helps to solve problem with date axis, as for example dateX will get dateX from values object and won't get to the dateX date.\n\t\t\tvalue = getTagValueFromObject(target, parts, dataItem);\n\t\t}\n\n\t\t// Check data context\n\t\tlet dataContext: any = dataItem.dataContext;\n\n\t\tif (value == null && dataContext) {\n\t\t\tvalue = getTagValueFromObject(target, parts, dataContext);\n\n\t\t\t// Maybe it's a literal dot-separated name of the key in dataContext?\n\t\t\tif (value == null) {\n\t\t\t\tvalue = getTagValueFromObject(target, [{\n\t\t\t\t\tprop: tagName\n\t\t\t\t}], dataContext);\n\t\t\t}\n\n\t\t\t// scond data context level sometimes exist (tree map)\n\t\t\tif (value == null && dataContext.dataContext) {\n\t\t\t\tvalue = getTagValueFromObject(target, parts, dataContext.dataContext);\n\t\t\t}\n\t\t}\n\n\t\t// Check component's data item\n\t\tif (value == null && dataItem.component && dataItem.component.dataItem !== dataItem) {\n\t\t\tvalue = getTagValue(dataItem.component, tagName, format);\n\t\t}\n\t}\n\n\t// Check sprite's properties\n\tif (value == null) {\n\t\tvalue = getTagValueFromObject(target, parts, target);\n\t}\n\n\t// Finally, check the parent\n\tif (value == null && target.parent) {\n\t\tvalue = getTagValue(target.parent, tagName, format);\n\t}\n\n\treturn value;\n}\n\n/**\n * @ignore\n */\nfunction getCustomDataValue(target: Sprite, prop: string): any {\n\tconst customData = target.getPrivate(\"customData\");\n\tif ($type.isObject(customData)) {\n\t\treturn (<any>customData)[prop];\n\t}\n}\n\n/**\n * @ignore\n */\nfunction getTagValueFromObject(target: Sprite, parts: any[], object: any, format?: string): any {\n\tlet current: any = object;\n\tlet formatApplied = false;\n\tfor (let i = 0, len = parts.length; i < len; i++) {\n\t\tlet part = parts[i];\n\t\tif (part.prop) {\n\t\t\t// Regular property\n\t\t\tif (current instanceof Sprite) {\n\t\t\t\tlet tmp = current.get(part.prop);\n\t\t\t\tif (tmp == null) tmp = current.getPrivate(part.prop);\n\t\t\t\tif (tmp == null) tmp = (<any>current)[part.prop];\n\t\t\t\tif (tmp == null) tmp = getCustomDataValue(current, part.prop);\n\t\t\t\tcurrent = tmp;\n\t\t\t}\n\t\t\telse if (current.get) {\n\t\t\t\tlet tmp = current.get(part.prop);\n\t\t\t\tif (tmp == null) tmp = (<any>current)[part.prop];\n\t\t\t\tcurrent = tmp;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcurrent = current[part.prop];\n\t\t\t}\n\n\t\t\tif (current == null) {\n\t\t\t\t// Not set, return undefined\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// Method\n\n\t\t\tswitch (part.method) {\n\t\t\t\tcase \"formatNumber\":\n\t\t\t\t\tlet numberValue = $type.toNumber(current);\n\t\t\t\t\tif (numberValue != null) {\n\t\t\t\t\t\tcurrent = target.getNumberFormatter().format(\n\t\t\t\t\t\t\tnumberValue,\n\t\t\t\t\t\t\tformat || part.params[0] || undefined\n\t\t\t\t\t\t);\n\t\t\t\t\t\tformatApplied = true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"formatDate\":\n\t\t\t\t\tlet dateValue = $type.toDate(current);\n\t\t\t\t\tif (!$type.isDate(dateValue) || $type.isNaN(dateValue.getTime())) {\n\t\t\t\t\t\t// Was not able to get date out of value, quitting and letting\n\t\t\t\t\t\t// calling method try another value\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (dateValue != null) {\n\t\t\t\t\t\tcurrent = target.getDateFormatter().format(\n\t\t\t\t\t\t\tdateValue,\n\t\t\t\t\t\t\tformat || part.params[0] || undefined\n\t\t\t\t\t\t);\n\t\t\t\t\t\tformatApplied = true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"formatDuration\":\n\t\t\t\t\tlet durationValue = $type.toNumber(current);\n\t\t\t\t\tif (durationValue != null) {\n\t\t\t\t\t\tcurrent = target.getDurationFormatter().format(\n\t\t\t\t\t\t\tdurationValue,\n\t\t\t\t\t\t\tformat || part.params[0] || undefined,\n\t\t\t\t\t\t\tpart.params[1] || undefined\n\t\t\t\t\t\t);\n\t\t\t\t\t\tformatApplied = true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"urlEncode\":\n\t\t\t\tcase \"encodeURIComponent\":\n\t\t\t\t\tcurrent = encodeURIComponent(current);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tif (current[part.method]) {\n\t\t\t\t\t\tcurrent[part.method].apply(object, part.params);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Apply default format if it wasn't applied explicitly\n\tif (!formatApplied) {\n\n\t\tlet formatParts = [{\n\t\t\tmethod: \"\",\n\t\t\tparams: format\n\t\t}];\n\n\t\tif (format == null) {\n\n\t\t\t// Format is not set\n\t\t\t// Determine from the type of the value\n\t\t\tif ($type.isNumber(current)) {\n\t\t\t\tformatParts[0].method = \"formatNumber\";\n\t\t\t\tformatParts[0].params = \"\";\n\t\t\t}\n\t\t\telse if ($type.isDate(current)) {\n\t\t\t\tformatParts[0].method = \"formatDate\";\n\t\t\t\tformatParts[0].params = \"\";\n\t\t\t}\n\n\t\t}\n\t\telse {\n\n\t\t\t// Format set\n\t\t\t// Try to determine formatter based on the format\n\t\t\tlet formatterType: string = $utils.getFormat(format);\n\n\t\t\t// format\n\t\t\tif (formatterType === \"number\") {\n\t\t\t\tformatParts[0].method = \"formatNumber\";\n\t\t\t}\n\t\t\telse if (formatterType === \"date\") {\n\t\t\t\tformatParts[0].method = \"formatDate\";\n\t\t\t}\n\t\t\telse if (formatterType === \"duration\") {\n\t\t\t\tformatParts[0].method = \"formatDuration\";\n\t\t\t}\n\n\t\t}\n\n\t\t// Apply format\n\t\tif (formatParts[0].method) {\n\t\t\tcurrent = getTagValueFromObject(target, formatParts, current);\n\t\t}\n\n\t}\n\n\treturn current;\n}"]}