@amcharts/amcharts5 5.14.3 → 5.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (342) hide show
  1. package/.internal/charts/flow/FlowNodes.d.ts +1 -0
  2. package/.internal/charts/flow/FlowNodes.d.ts.map +1 -1
  3. package/.internal/charts/flow/FlowNodes.js +7 -0
  4. package/.internal/charts/flow/FlowNodes.js.map +1 -1
  5. package/.internal/charts/gantt/Gantt.d.ts +1 -0
  6. package/.internal/charts/gantt/Gantt.d.ts.map +1 -1
  7. package/.internal/charts/gantt/Gantt.js +7 -0
  8. package/.internal/charts/gantt/Gantt.js.map +1 -1
  9. package/.internal/charts/gantt/GanttCategoryAxis.d.ts +1 -0
  10. package/.internal/charts/gantt/GanttCategoryAxis.d.ts.map +1 -1
  11. package/.internal/charts/gantt/GanttCategoryAxis.js +7 -0
  12. package/.internal/charts/gantt/GanttCategoryAxis.js.map +1 -1
  13. package/.internal/charts/hierarchy/Hierarchy.d.ts +1 -0
  14. package/.internal/charts/hierarchy/Hierarchy.d.ts.map +1 -1
  15. package/.internal/charts/hierarchy/Hierarchy.js +7 -0
  16. package/.internal/charts/hierarchy/Hierarchy.js.map +1 -1
  17. package/.internal/charts/map/ClusteredPointSeries.d.ts +2 -2
  18. package/.internal/charts/map/ClusteredPointSeries.d.ts.map +1 -1
  19. package/.internal/charts/map/ClusteredPointSeries.js.map +1 -1
  20. package/.internal/charts/percent/PercentSeries.d.ts +1 -0
  21. package/.internal/charts/percent/PercentSeries.d.ts.map +1 -1
  22. package/.internal/charts/percent/PercentSeries.js +7 -0
  23. package/.internal/charts/percent/PercentSeries.js.map +1 -1
  24. package/.internal/charts/stock/StockChart.js +1 -1
  25. package/.internal/charts/stock/StockChart.js.map +1 -1
  26. package/.internal/charts/stock/StockChartDefaultTheme.d.ts.map +1 -1
  27. package/.internal/charts/stock/StockChartDefaultTheme.js +6 -0
  28. package/.internal/charts/stock/StockChartDefaultTheme.js.map +1 -1
  29. package/.internal/charts/stock/drawing/DrawingSeries.d.ts.map +1 -1
  30. package/.internal/charts/stock/drawing/DrawingSeries.js +2 -2
  31. package/.internal/charts/stock/drawing/DrawingSeries.js.map +1 -1
  32. package/.internal/charts/stock/drawing/IconSeries.js +1 -1
  33. package/.internal/charts/stock/drawing/IconSeries.js.map +1 -1
  34. package/.internal/charts/stock/indicators/AccelerationBands.d.ts +0 -3
  35. package/.internal/charts/stock/indicators/AccelerationBands.d.ts.map +1 -1
  36. package/.internal/charts/stock/indicators/AccelerationBands.js +19 -19
  37. package/.internal/charts/stock/indicators/AccelerationBands.js.map +1 -1
  38. package/.internal/charts/stock/indicators/AccumulationDistribution.d.ts.map +1 -1
  39. package/.internal/charts/stock/indicators/AccumulationDistribution.js +33 -31
  40. package/.internal/charts/stock/indicators/AccumulationDistribution.js.map +1 -1
  41. package/.internal/charts/stock/indicators/AccumulativeSwingIndex.js +1 -1
  42. package/.internal/charts/stock/indicators/AccumulativeSwingIndex.js.map +1 -1
  43. package/.internal/charts/stock/indicators/Aroon.js +2 -2
  44. package/.internal/charts/stock/indicators/Aroon.js.map +1 -1
  45. package/.internal/charts/stock/indicators/AverageTrueRange.js +1 -1
  46. package/.internal/charts/stock/indicators/AverageTrueRange.js.map +1 -1
  47. package/.internal/charts/stock/indicators/AwesomeOscillator.js +1 -1
  48. package/.internal/charts/stock/indicators/AwesomeOscillator.js.map +1 -1
  49. package/.internal/charts/stock/indicators/BollingerBands.js +2 -2
  50. package/.internal/charts/stock/indicators/BollingerBands.js.map +1 -1
  51. package/.internal/charts/stock/indicators/BullBearPower.js +1 -1
  52. package/.internal/charts/stock/indicators/BullBearPower.js.map +1 -1
  53. package/.internal/charts/stock/indicators/ChaikinMoneyFlow.js +1 -1
  54. package/.internal/charts/stock/indicators/ChaikinMoneyFlow.js.map +1 -1
  55. package/.internal/charts/stock/indicators/ChaikinOscillator.js +1 -1
  56. package/.internal/charts/stock/indicators/ChaikinOscillator.js.map +1 -1
  57. package/.internal/charts/stock/indicators/CommodityChannelIndex.js +1 -1
  58. package/.internal/charts/stock/indicators/CommodityChannelIndex.js.map +1 -1
  59. package/.internal/charts/stock/indicators/DisparityIndex.js +1 -1
  60. package/.internal/charts/stock/indicators/DisparityIndex.js.map +1 -1
  61. package/.internal/charts/stock/indicators/HeikinAshi.js +1 -1
  62. package/.internal/charts/stock/indicators/HeikinAshi.js.map +1 -1
  63. package/.internal/charts/stock/indicators/Indicator.d.ts.map +1 -1
  64. package/.internal/charts/stock/indicators/Indicator.js +139 -91
  65. package/.internal/charts/stock/indicators/Indicator.js.map +1 -1
  66. package/.internal/charts/stock/indicators/MACD.js +3 -3
  67. package/.internal/charts/stock/indicators/MACD.js.map +1 -1
  68. package/.internal/charts/stock/indicators/MACross.js +2 -2
  69. package/.internal/charts/stock/indicators/MACross.js.map +1 -1
  70. package/.internal/charts/stock/indicators/MedianPrice.js +1 -1
  71. package/.internal/charts/stock/indicators/MedianPrice.js.map +1 -1
  72. package/.internal/charts/stock/indicators/Momentum.js +1 -1
  73. package/.internal/charts/stock/indicators/Momentum.js.map +1 -1
  74. package/.internal/charts/stock/indicators/MovingAverage.js +1 -1
  75. package/.internal/charts/stock/indicators/MovingAverage.js.map +1 -1
  76. package/.internal/charts/stock/indicators/MovingAverageDeviation.js +1 -1
  77. package/.internal/charts/stock/indicators/MovingAverageDeviation.js.map +1 -1
  78. package/.internal/charts/stock/indicators/MovingAverageEnvelope.js +2 -2
  79. package/.internal/charts/stock/indicators/MovingAverageEnvelope.js.map +1 -1
  80. package/.internal/charts/stock/indicators/OnBalanceVolume.js +1 -1
  81. package/.internal/charts/stock/indicators/OnBalanceVolume.js.map +1 -1
  82. package/.internal/charts/stock/indicators/PVT.js +1 -1
  83. package/.internal/charts/stock/indicators/PVT.js.map +1 -1
  84. package/.internal/charts/stock/indicators/RelativeStrengthIndex.js +3 -3
  85. package/.internal/charts/stock/indicators/RelativeStrengthIndex.js.map +1 -1
  86. package/.internal/charts/stock/indicators/StandardDeviation.js +1 -1
  87. package/.internal/charts/stock/indicators/StandardDeviation.js.map +1 -1
  88. package/.internal/charts/stock/indicators/StochasticMomentumIndex.js +2 -2
  89. package/.internal/charts/stock/indicators/StochasticMomentumIndex.js.map +1 -1
  90. package/.internal/charts/stock/indicators/StochasticOscillator.js +2 -2
  91. package/.internal/charts/stock/indicators/StochasticOscillator.js.map +1 -1
  92. package/.internal/charts/stock/indicators/SuperTrend.js +2 -2
  93. package/.internal/charts/stock/indicators/SuperTrend.js.map +1 -1
  94. package/.internal/charts/stock/indicators/Trix.js +2 -2
  95. package/.internal/charts/stock/indicators/Trix.js.map +1 -1
  96. package/.internal/charts/stock/indicators/TypicalPrice.js +1 -1
  97. package/.internal/charts/stock/indicators/TypicalPrice.js.map +1 -1
  98. package/.internal/charts/stock/indicators/VWAP.js +1 -1
  99. package/.internal/charts/stock/indicators/VWAP.js.map +1 -1
  100. package/.internal/charts/stock/indicators/Volume.d.ts.map +1 -1
  101. package/.internal/charts/stock/indicators/Volume.js +1 -1
  102. package/.internal/charts/stock/indicators/Volume.js.map +1 -1
  103. package/.internal/charts/stock/indicators/VolumeProfile.d.ts.map +1 -1
  104. package/.internal/charts/stock/indicators/VolumeProfile.js +1 -0
  105. package/.internal/charts/stock/indicators/VolumeProfile.js.map +1 -1
  106. package/.internal/charts/stock/indicators/WilliamsR.js +1 -1
  107. package/.internal/charts/stock/indicators/WilliamsR.js.map +1 -1
  108. package/.internal/charts/stock/indicators/ZigZag.js +1 -1
  109. package/.internal/charts/stock/indicators/ZigZag.js.map +1 -1
  110. package/.internal/charts/stock/toolbar/DateRangeSelector.d.ts.map +1 -1
  111. package/.internal/charts/stock/toolbar/DateRangeSelector.js +1 -1
  112. package/.internal/charts/stock/toolbar/DateRangeSelector.js.map +1 -1
  113. package/.internal/charts/stock/toolbar/DrawingControl.d.ts +1 -0
  114. package/.internal/charts/stock/toolbar/DrawingControl.d.ts.map +1 -1
  115. package/.internal/charts/stock/toolbar/DrawingControl.js +8 -1
  116. package/.internal/charts/stock/toolbar/DrawingControl.js.map +1 -1
  117. package/.internal/charts/venn/Venn.d.ts +1 -0
  118. package/.internal/charts/venn/Venn.d.ts.map +1 -1
  119. package/.internal/charts/venn/Venn.js +7 -0
  120. package/.internal/charts/venn/Venn.js.map +1 -1
  121. package/.internal/charts/xy/XYChart.d.ts +1 -0
  122. package/.internal/charts/xy/XYChart.d.ts.map +1 -1
  123. package/.internal/charts/xy/XYChart.js +8 -0
  124. package/.internal/charts/xy/XYChart.js.map +1 -1
  125. package/.internal/charts/xy/axes/AxisRenderer.d.ts.map +1 -1
  126. package/.internal/charts/xy/axes/AxisRenderer.js +6 -1
  127. package/.internal/charts/xy/axes/AxisRenderer.js.map +1 -1
  128. package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
  129. package/.internal/charts/xy/axes/DateAxis.js +18 -14
  130. package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
  131. package/.internal/charts/xy/axes/GaplessDateAxis.d.ts.map +1 -1
  132. package/.internal/charts/xy/axes/GaplessDateAxis.js +6 -4
  133. package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
  134. package/.internal/charts/xy/series/BaseColumnSeries.d.ts.map +1 -1
  135. package/.internal/charts/xy/series/BaseColumnSeries.js +19 -19
  136. package/.internal/charts/xy/series/BaseColumnSeries.js.map +1 -1
  137. package/.internal/charts/xy/series/CandlestickSeries.d.ts.map +1 -1
  138. package/.internal/charts/xy/series/CandlestickSeries.js +0 -1
  139. package/.internal/charts/xy/series/CandlestickSeries.js.map +1 -1
  140. package/.internal/charts/xy/series/LineSeries.d.ts.map +1 -1
  141. package/.internal/charts/xy/series/LineSeries.js +10 -8
  142. package/.internal/charts/xy/series/LineSeries.js.map +1 -1
  143. package/.internal/charts/xy/series/XYSeries.d.ts +2 -0
  144. package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
  145. package/.internal/charts/xy/series/XYSeries.js +28 -28
  146. package/.internal/charts/xy/series/XYSeries.js.map +1 -1
  147. package/.internal/core/Registry.d.ts +7 -1
  148. package/.internal/core/Registry.d.ts.map +1 -1
  149. package/.internal/core/Registry.js +14 -3
  150. package/.internal/core/Registry.js.map +1 -1
  151. package/.internal/core/Root.d.ts.map +1 -1
  152. package/.internal/core/Root.js +43 -4
  153. package/.internal/core/Root.js.map +1 -1
  154. package/.internal/core/render/Component.d.ts +5 -0
  155. package/.internal/core/render/Component.d.ts.map +1 -1
  156. package/.internal/core/render/Component.js +44 -0
  157. package/.internal/core/render/Component.js.map +1 -1
  158. package/.internal/core/render/Container.d.ts +1 -1
  159. package/.internal/core/render/Container.d.ts.map +1 -1
  160. package/.internal/core/render/Container.js +7 -2
  161. package/.internal/core/render/Container.js.map +1 -1
  162. package/.internal/core/render/Series.d.ts +9 -0
  163. package/.internal/core/render/Series.d.ts.map +1 -1
  164. package/.internal/core/render/Series.js +89 -74
  165. package/.internal/core/render/Series.js.map +1 -1
  166. package/.internal/plugins/exporting/ExportingMenu.d.ts +6 -0
  167. package/.internal/plugins/exporting/ExportingMenu.d.ts.map +1 -1
  168. package/.internal/plugins/exporting/ExportingMenu.js +2 -2
  169. package/.internal/plugins/exporting/ExportingMenu.js.map +1 -1
  170. package/.internal/plugins/json/ChartSerializer.d.ts +82 -0
  171. package/.internal/plugins/json/ChartSerializer.d.ts.map +1 -0
  172. package/.internal/plugins/json/ChartSerializer.js +782 -0
  173. package/.internal/plugins/json/ChartSerializer.js.map +1 -0
  174. package/.internal/plugins/json/Json.d.ts.map +1 -1
  175. package/.internal/plugins/json/Json.js +158 -54
  176. package/.internal/plugins/json/Json.js.map +1 -1
  177. package/.internal/plugins/json/Serializer.d.ts +40 -6
  178. package/.internal/plugins/json/Serializer.d.ts.map +1 -1
  179. package/.internal/plugins/json/Serializer.js +97 -24
  180. package/.internal/plugins/json/Serializer.js.map +1 -1
  181. package/CHANGELOG.md +37 -0
  182. package/examples/javascript/flow-arc-horizontal/package.json +1 -1
  183. package/examples/javascript/flow-arc-vertical/package.json +1 -1
  184. package/examples/javascript/flow-chord/package.json +1 -1
  185. package/examples/javascript/flow-chord-directed/package.json +1 -1
  186. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  187. package/examples/javascript/flow-sankey/package.json +1 -1
  188. package/examples/javascript/gantt/package.json +1 -1
  189. package/examples/javascript/gantt-multilevel/package.json +1 -1
  190. package/examples/javascript/gantt-simple/package.json +1 -1
  191. package/examples/javascript/gauge/package.json +1 -1
  192. package/examples/javascript/gauge-bands/package.json +1 -1
  193. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  194. package/examples/javascript/hierarchy-pack/package.json +1 -1
  195. package/examples/javascript/hierarchy-partition/package.json +1 -1
  196. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  197. package/examples/javascript/hierarchy-tree/package.json +1 -1
  198. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  199. package/examples/javascript/hierarchy-voronoi-treemap/package.json +1 -1
  200. package/examples/javascript/jest/package.json +1 -1
  201. package/examples/javascript/json-pie/package.json +1 -1
  202. package/examples/javascript/json-xy/package.json +1 -1
  203. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  204. package/examples/javascript/map-clustered-points/package.json +1 -1
  205. package/examples/javascript/map-day-and-night/package.json +1 -1
  206. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  207. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  208. package/examples/javascript/map-with-bubbles/package.json +1 -1
  209. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  210. package/examples/javascript/misc-40-charts/package.json +1 -1
  211. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  212. package/examples/javascript/pie-chart/package.json +1 -1
  213. package/examples/javascript/pie-donut-chart/package.json +1 -1
  214. package/examples/javascript/pie-variable-radius/package.json +1 -1
  215. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  216. package/examples/javascript/radar-heat-map/package.json +1 -1
  217. package/examples/javascript/radar-line/package.json +1 -1
  218. package/examples/javascript/radar-time-line/package.json +1 -1
  219. package/examples/javascript/sliced-funnel/package.json +1 -1
  220. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  221. package/examples/javascript/sliced-pyramid/package.json +1 -1
  222. package/examples/javascript/stock-chart/package.json +1 -1
  223. package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
  224. package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
  225. package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
  226. package/examples/javascript/stock-chart-intraday/package.json +1 -1
  227. package/examples/javascript/stock-chart-live/package.json +1 -1
  228. package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
  229. package/examples/javascript/timeline-horizontal-serpentine-chart/package.json +1 -1
  230. package/examples/javascript/timeline-linear-process-diagram/package.json +1 -1
  231. package/examples/javascript/timeline-serpentine-chart/package.json +1 -1
  232. package/examples/javascript/timeline-spiral-chart/package.json +1 -1
  233. package/examples/javascript/venn-diagram/package.json +1 -1
  234. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  235. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  236. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  237. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  238. package/examples/javascript/xy-bubble/package.json +1 -1
  239. package/examples/javascript/xy-candlestick/package.json +1 -1
  240. package/examples/javascript/xy-clustered-column/package.json +1 -1
  241. package/examples/javascript/xy-column/package.json +1 -1
  242. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  243. package/examples/javascript/xy-data-grouping/package.json +1 -1
  244. package/examples/javascript/xy-draggable-range/package.json +1 -1
  245. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  246. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  247. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  248. package/examples/javascript/xy-line/package.json +1 -1
  249. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  250. package/examples/javascript/xy-live-data/package.json +1 -1
  251. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  252. package/examples/javascript/xy-ohlc/package.json +1 -1
  253. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  254. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  255. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  256. package/examples/javascript/xy-stacked-column/package.json +1 -1
  257. package/examples/javascript/xy-stacked-step/package.json +1 -1
  258. package/examples/javascript/xy-stock/package.json +1 -1
  259. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  260. package/examples/typescript/flow-arc-horizontal/package.json +1 -1
  261. package/examples/typescript/flow-arc-vertical/package.json +1 -1
  262. package/examples/typescript/flow-chord/package.json +1 -1
  263. package/examples/typescript/flow-chord-directed/package.json +1 -1
  264. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  265. package/examples/typescript/flow-sankey/package.json +1 -1
  266. package/examples/typescript/gantt/package.json +1 -1
  267. package/examples/typescript/gantt-multilevel/package.json +1 -1
  268. package/examples/typescript/gantt-simple/package.json +1 -1
  269. package/examples/typescript/gauge/package.json +1 -1
  270. package/examples/typescript/gauge-bands/package.json +1 -1
  271. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  272. package/examples/typescript/hierarchy-pack/package.json +1 -1
  273. package/examples/typescript/hierarchy-partition/package.json +1 -1
  274. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  275. package/examples/typescript/hierarchy-tree/package.json +1 -1
  276. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  277. package/examples/typescript/hierarchy-voronoi-treemap/package.json +1 -1
  278. package/examples/typescript/jest/package.json +1 -1
  279. package/examples/typescript/json-pie/package.json +1 -1
  280. package/examples/typescript/json-xy/package.json +1 -1
  281. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  282. package/examples/typescript/map-clustered-points/package.json +1 -1
  283. package/examples/typescript/map-day-and-night/package.json +1 -1
  284. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  285. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  286. package/examples/typescript/map-with-bubbles/package.json +1 -1
  287. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  288. package/examples/typescript/misc-40-charts/package.json +1 -1
  289. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  290. package/examples/typescript/pie-chart/package.json +1 -1
  291. package/examples/typescript/pie-donut-chart/package.json +1 -1
  292. package/examples/typescript/pie-variable-radius/package.json +1 -1
  293. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  294. package/examples/typescript/radar-heat-map/package.json +1 -1
  295. package/examples/typescript/radar-line/package.json +1 -1
  296. package/examples/typescript/radar-time-line/package.json +1 -1
  297. package/examples/typescript/sliced-funnel/package.json +1 -1
  298. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  299. package/examples/typescript/sliced-pyramid/package.json +1 -1
  300. package/examples/typescript/stock-chart/package.json +1 -1
  301. package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
  302. package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
  303. package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
  304. package/examples/typescript/stock-chart-intraday/package.json +1 -1
  305. package/examples/typescript/stock-chart-live/package.json +1 -1
  306. package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
  307. package/examples/typescript/timeline-horizontal-serpentine-chart/package.json +1 -1
  308. package/examples/typescript/timeline-linear-process-diagram/package.json +1 -1
  309. package/examples/typescript/timeline-serpentine-chart/package.json +1 -1
  310. package/examples/typescript/timeline-spiral-chart/package.json +1 -1
  311. package/examples/typescript/venn-diagram/package.json +1 -1
  312. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  313. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  314. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  315. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  316. package/examples/typescript/xy-bubble/package.json +1 -1
  317. package/examples/typescript/xy-candlestick/package.json +1 -1
  318. package/examples/typescript/xy-clustered-column/package.json +1 -1
  319. package/examples/typescript/xy-column/package.json +1 -1
  320. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  321. package/examples/typescript/xy-data-grouping/package.json +1 -1
  322. package/examples/typescript/xy-draggable-range/package.json +1 -1
  323. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  324. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  325. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  326. package/examples/typescript/xy-line/package.json +1 -1
  327. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  328. package/examples/typescript/xy-live-data/package.json +1 -1
  329. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  330. package/examples/typescript/xy-ohlc/package.json +1 -1
  331. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  332. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  333. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  334. package/examples/typescript/xy-stacked-column/package.json +1 -1
  335. package/examples/typescript/xy-stacked-step/package.json +1 -1
  336. package/examples/typescript/xy-stock/package.json +1 -1
  337. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  338. package/package.json +4 -4
  339. package/plugins/json.d.ts +1 -0
  340. package/plugins/json.d.ts.map +1 -1
  341. package/plugins/json.js +1 -0
  342. package/plugins/json.js.map +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartSerializer.js","sourceRoot":"","sources":["../../../../../src/.internal/plugins/json/ChartSerializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAiBhD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAA8D,MAAM,cAAc,CAAC;AAEtG,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAClD,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AA8BhD;;;;;GAKG;AACH,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAA/C;;QASC;;;;mBAA6C,KAAK;WAAC;QACnD;;;;mBAAkC,EAAE;WAAC;QACrC;;;;mBAA6B,EAAE;WAAC;QAChC;;;;mBAAiD,EAAE;WAAC;QACpD;;;;mBAA2C,EAAE;WAAC;QAC9C;;;;mBAAqD,EAAE;WAAC;IAozBzD,CAAC;IAlzBU,SAAS;QAClB,KAAK,CAAC,SAAS,EAAE,CAAC;QAClB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QACzC,gDAAgD;QAChD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;YAChC,OAAO;YACP,WAAW;YACX,MAAM;YACN,cAAc;YACd,iBAAiB;YACjB,gBAAgB;YAChB,KAAK;YACL,KAAK;YACL,QAAQ;YACR,SAAS;YACT,eAAe;YACf,YAAY;YACZ,YAAY;YACZ,mBAAmB;YACnB,WAAW;SACX,CAAC,CAAC,CAAC,WAAW;QAEf,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,OAAkC,EAAE,EAAE;YAC7E,IAAI,IAAI,CAAC,yBAAyB,EAAE;gBACnC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;aACxC;YACD,OAAO,OAAO,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,EAAE,CAAC;IACd,CAAC;IAEM,KAAK;QACX,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG;YACb,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,EAAE;SACZ,CAAC;QACF,IAAI,CAAC,SAAS,GAAG;YAChB,SAAS,EAAE,EAAE;YACb,IAAI,EAAE,EAAE;YACR,SAAS,EAAE,EAAE;YACb,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,EAAE;YACd,gBAAgB,EAAE,EAAE;SACpB,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,YAAY,CAAC,MAAiB;QAEpC,0EAA0E;QAC1E,+CAA+C;QAE/C,wBAAwB;QACxB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAE/B,uBAAuB;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAE7C,oCAAoC;QACpC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC5C,IAAI,KAAK,CAAC,MAAM,EAAE;gBACjB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACtB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC,CAAC,CAAC;aACH;QACF,CAAC,CAAC,CAAC;QAEH,UAAU;QACV,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;YACnC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;SAChC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAEO,gBAAgB,CAAC,MAAc;QACtC,+BAA+B;QAC/B,IAAI,MAAW,CAAC;QAEhB,6BAA6B;QAC7B,IAAI,MAAM,CAAC,MAAM,CAAS,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAC/D,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;YACtC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;YACvC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACpC,wDAAwD;YACxD,gCAAgC;SAChC;aACI;YACJ,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAE,CAAC;SAC1C;QAED,2CAA2C;QAC3C,IAAI,MAAM,CAAC,SAAS,KAAK,WAAW,EAAE;YACrC,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAa,EAAE,EAAE;gBACrD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;oBAC3B,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;oBACrD,IAAI,KAAK,CAAC,MAAM,CAAS,QAAQ,CAAC,EAAE;wBACnC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;qBAC5D;yBACI;wBACJ,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;qBACtC;iBACD;YACF,CAAC,CAAC,CAAC;SACH;QAED,0BAA0B;QAC1B,IAAI,MAAM,CAAC,MAAM,CAAc,aAAa,CAAC,EAAE;YAC9C,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACzC;QAED,IAAI,MAAM,CAAC,MAAM,CAAU,SAAS,CAAC,EAAE;YACtC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACrC;QAED,IAAI,MAAM,CAAC,MAAM,CAAW,UAAU,CAAC,EAAE;YACxC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACtC;QAED,IAAI,MAAM,CAAC,MAAM,CAAa,YAAY,CAAC,EAAE;YAC5C,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACxC;QAED,IAAI,MAAM,CAAC,MAAM,CAAa,YAAY,CAAC,EAAE;YAC5C,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACxC;QAED,IAAI,MAAM,CAAC,MAAM,CAAQ,OAAO,CAAC,EAAE;YAClC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACnC;QAED,IAAI,MAAM,CAAC,MAAM,CAAY,WAAW,CAAC,EAAE;YAC1C,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACvC;QAED,0BAA0B;QAC1B,IAAI,MAAM,CAAC,MAAM,CAAY,WAAW,CAAC,EAAE;YAC1C,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAE5C,mEAAmE;YACnE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAW,EAAE,KAAU,EAAE,EAAE;gBAChD,IAAI,KAAK,YAAY,SAAS,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;oBACpD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAA;oBACzC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE,CAAC,CAAA;oBAC3C,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;iBAC3D;YACF,CAAC,CAAC,CAAC;SACH;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAEO,iBAAiB,CAAC,MAAiB;QAC1C,uCAAuC;QACvC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAa,EAAE,EAAE;YACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACxC,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBACvD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aACvC;YAED,IAAI,KAAK,CAAC,MAAM,CAAY,WAAW,CAAC,EAAE;gBACzC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;aAC9B;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,sBAAsB,CAAC,MAAiB,EAAE,MAAW;QAC5D,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAa,EAAE,EAAE;YACtC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;gBACjD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;gBACxC,IAAI,SAAc,CAAC;gBAEnB,mCAAmC;gBACnC,IAAI,KAAK,CAAC,MAAM,CAAS,QAAQ,CAAC,EAAE;oBACnC,gDAAgD;oBAChD,qEAAqE;oBACrE,YAAY;oBACZ,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;oBACtC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;oBAC5C,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;oBAC7C,SAAS,CAAC,UAAU,CAAC,IAAI,GAAG,EAAE,CAAC;oBAC/B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,KAAa,EAAE,EAAE;wBACtD,IAAI,IAAI,YAAY,QAAQ,EAAE;4BAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;4BAC9B,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,GAAG,KAAK,CAAC;yBAClG;6BACI,IAAK,IAAe,CAAC,MAAM,CAAS,QAAQ,CAAC,EAAE;4BACnD,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;yBACxE;6BACI;4BACJ,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;yBACxC;oBACF,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;oBAEvC,qBAAqB;oBACrB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,EAAE;wBACpD,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,kBAAkB,EAAE,gBAAgB;qBACxE,CAAC,CAAC;iBACH;qBACI;oBACJ,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;iBAC3C;gBAED,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC,MAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACxD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAChC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,MAAc,EAAE,MAAW;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,MAAM,GAAQ,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;QAEtC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS,EAAE;YACzB,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7E,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACxC,4CAA4C;YAC5C,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;SAC1D;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC;QAE5D,qBAAqB;QACrB,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE;YACxE,KAAK;YACL,SAAS,EAAE,OAAO,EAAE,SAAS;YAC7B,UAAU;YACV,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO;YACpC,YAAY;YACZ,OAAO,EAAE,SAAS,EAAE,cAAc;YAClC,MAAM;YACN,aAAa,EAAE,UAAU;SACzB,CAAC,CAAC;QAEH,iBAAiB;QACjB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,cAAmB,EAAE,EAAE;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;YACxE,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACpG,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;YACnE,MAAM,gBAAgB,GAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAC9D,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,YAAY,EAAE;gBACjB,4CAA4C;gBAC5C,gBAAgB,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC/E,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAEvE,qBAAqB;gBACrB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;aAC9E;QAEF,CAAC,CAAC,CAAC;QAEH,oBAAoB;QACpB,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,SAAS,EAAE;YAEd,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAS,GAAG,EAAE,CAAC;YACrD,SAAS,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;gBAE/B,oBAAoB;gBACpB,IAAI,QAAQ,GAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvD,IAAI,QAAQ,EAAE;oBACb,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;iBAC1B;qBACI;oBACJ,wCAAwC;oBACxC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAQ,EAAE,KAAU,EAAE,EAAE;wBAC7C,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,EAAE;4BACpE,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;4BAC3C,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;4BACnE,QAAQ,GAAG,GAAG,GAAG,UAAU,CAAC;4BAC5B,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,GAAG,GAAG,GAAG,UAAU,CAAC;4BAC9D,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;4BAC7D,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;yBAClD;oBACF,CAAC,CAAC,CAAC;iBACH;gBACD,IAAI,QAAQ,EAAE;oBACb,MAAM,cAAc,GAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;oBAC1D,cAAc,CAAC,MAAM,GAAG,QAAQ,CAAC;oBACjC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;oBAC9B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBACrE;YACF,CAAC,CAAC,CAAC;SACH;QAED,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAElE,OAAO,QAAQ,CAAC;IACjB,CAAC;IAEO,gBAAgB,CAAC,MAAc,EAAE,MAAW;QACnD,IAAI,MAAM,CAAC,QAAQ,EAAE;YACpB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YACjC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC3C,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAA;YACzC,MAAM,CAAC,UAAU,CAAC,QAAQ,GAAG,GAAG,GAAG,UAAU,CAAC;YAC9C,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;YAC7D,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;SAC5C;QAED,IAAI,MAAM,CAAC,MAAM,CAAY,WAAW,CAAC,EAAE;YAC1C,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAU,EAAE,KAAa,EAAE,EAAE;gBAClD,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE;oBACxD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;iBACrD;YACF,CAAC,CAAC,CAAC;SACH;IACF,CAAC;IAEO,mBAAmB,CAAC,MAAmB,EAAE,MAAW;QAE3D,iBAAiB;QACjB,MAAM,OAAO,GAAQ,EAAE,CAAC;QACxB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAW,EAAE,MAAc,EAAE,EAAE;YAClD,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;YACtC,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,sBAAsB;QACtB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACjD,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,OAAO,CAAC;QAEnC,kBAAkB;QAClB,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAEO,eAAe,CAAC,MAAe,EAAE,MAAW;QAEnD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QAEhD,WAAW;QACX,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,QAAgB,EAAE,EAAE;YACtC,MAAc,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAe,EAAE,MAAc,EAAE,EAAE;gBAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC7C,MAAM,CAAC,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;QAEJ,CAAC,CAAC,CAAC;QAEH,sCAAsC;QACtC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAW,EAAE,MAAc,EAAE,EAAE;YAClD,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;YAC5F,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;YAC5F,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;QACnG,CAAC,CAAC,CAAC;QAEH,6BAA6B;QAC7B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAW,EAAE,MAAc,EAAE,EAAE;YAClD,MAAM,UAAU,GAAI,MAAmB,CAAC,UAAU,CAAC,MAAM,CAAC;YAC1D,IAAI,UAAU,CAAC,MAAM,EAAE;gBACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;oBAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;oBAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC;oBAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;oBAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;oBACjD,MAAM,eAAe,GAAQ;wBAC5B,IAAI,EAAE,GAAG,GAAG,MAAM;wBAClB,MAAM,EAAE,GAAG,GAAG,QAAQ;wBACtB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC;wBAC/D,YAAY,EAAE,WAAW;qBACzB,CAAC;oBACF,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;wBACxD,MAAM,KAAK,GAAI,KAAa,CAAC,GAAG,CAAC,CAAC;wBAClC,IAAI,KAAK,IAAI,KAAK,YAAY,YAAY,EAAE;4BAC3C,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;yBACzE;oBACF,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;iBAC9D;aACD;QACF,CAAC,CAAC,CAAC;QAEH,oCAAoC;QACpC,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;YACnE,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAE,MAAc,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAC1E,IAAI,mBAAmB,EAAE;gBACxB,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;gBACrC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;gBAC1C,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAC;aAC7C;QACF,CAAC,CAAC,CAAC;QAEH,iBAAiB;QACjB,MAAM,MAAM,GAAQ,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,MAAM,EAAE;YACX,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,QAAgB,EAAE,EAAE;gBACvC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC;gBAC3C,IAAI,IAAI,EAAE;oBACT,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBAC1F;gBACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACzD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAEzD,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,MAAW,EAAE,KAAa,EAAE,EAAE;gBACrE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC9F,CAAC,CAAC,CAAC;SACH;QAED,mCAAmC;QACnC,MAAM,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACjF,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAA;QAEjF,wBAAwB;QACxB,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5C,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,CAAmB,kBAAkB,CAAC,EAAE;YAC1E,MAAM,wBAAwB,GAAQ,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC9E,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;YAC1C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;YAC9D,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,GAAG,wBAAwB,CAAC;SACvE;IACF,CAAC;IAEO,YAAY,CAAC,IAAe,EAAE,OAAY,EAAE,SAAmB;QACtE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,cAAc,GAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;QAEhD,WAAW;QACX,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE;YAC1F,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO;SACtC,CAAC,CAAC;QAEH,eAAe;QACf,MAAM,UAAU,GAAI,IAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACrD,IAAI,UAAU,EAAE;YACf,cAAc,CAAC,QAAQ,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SAClF;QAED,cAAc;QACd,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE;YACvD,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;YAClD,cAAc,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAChF,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;SACnF;QAED,cAAc;QACd,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,cAAc,EAAE;YACnB,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9F,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;YAC/D,MAAM,gBAAgB,GAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAC9D,cAAc,CAAC,UAAU,CAAC,MAAM,GAAG,gBAAgB,CAAC;SACpD;QAED,cAAc;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAC1C,IAAI,UAAU,CAAC,MAAM,EAAE;YACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBACzC,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC5B,MAAM,eAAe,GAAQ;oBAC5B,IAAI,EAAE,GAAG,GAAG,MAAM;oBAClB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC;oBAClD,YAAY,EAAE,WAAW;iBACzB,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;aACxD;SACD;QAED,4BAA4B;QAC5B,IAAI,IAAI,CAAC,MAAM,CAAoB,cAAc,CAAC,EAAE;YACnD,IAAI,MAAM,GAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3E,IAAI,MAAM,KAAK,SAAS,EAAE;gBACzB,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC3E,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;gBAClE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;aAC1D;YACD,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;YAClD,cAAc,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC;SAC9C;QACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAExC,IAAI,SAAS,EAAE;YACd,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SAClD;QAED,MAAM,QAAQ,GAAQ,EAAE,CAAC;QACzB,QAAQ,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC;QAClC,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEhC,OAAO,MAAM,CAAC;IACf,CAAC;IAEO,kBAAkB,CAAC,MAAkB,EAAE,OAAY;QAC1D,uEAAuE;QACvE,8BAA8B;QAC9B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAe,EAAE,EAAE;YACrC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACvC,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC7C,IAAI,SAAS,EAAE;gBACd,gBAAgB;gBAChB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACzD,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACtD,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,GAAG,GAAG,GAAG,OAAO,GAAG,kBAAkB,CAAC;gBAE1F,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACtD,OAAO,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAE5D,6BAA6B;gBAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAClD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAClD,IAAI,MAAM,GAAG,MAAM,EAAE;oBACpB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;iBACxH;aACD;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,MAAgB,EAAE,MAAW;QACrD,+BAA+B;QAC/B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAW,EAAE,MAAc,EAAE,EAAE;YAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClD,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAI,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;YACrF,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACpE,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,IAAS,EAAE,EAAE;gBACxC,IAAI,IAAI,CAAC,QAAQ,EAAE;oBAClB,uBAAuB;iBACvB;YACF,CAAC,CAAC,CAAC;YACH,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;gBAChC,OAAO,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC;aACxC;YAED,mBAAmB;YACnB,IAAI,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;gBAClC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBACrD,MAAM,cAAc,GAAG,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;gBACtH,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;gBACnE,MAAM,gBAAgB,GAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC9D,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;oBACzB,gBAAgB,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAC/E,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,eAAe,GAAG,gBAAgB,CAAC;oBACzE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;iBAC9E;aACD;QACF,CAAC,CAAC,CAAC;QAEH,iCAAiC;QACjC,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC/E,OAAO,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC;YACnD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;YAC/D,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC9D,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG;oBAChD,QAAQ,EAAE;wBACT,OAAO,EAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;qBAClE;iBACD,CAAA;YACF,CAAC,CAAC,CAAC;SACH;QAED,4BAA4B;QAC5B,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAC3C,IAAI,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAAE;YACvD,8CAA8C;YAC9C,oEAAoE;YACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,IAAI,QAAQ,CAAC;YAC/D,IAAI,QAAQ,EAAE;gBACb,MAAM,CAAC,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;aACnD;iBACI;gBACJ,MAAM,CAAC,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;aACxC;SACD;IACF,CAAC;IAEO,aAAa,CAAC,MAAa,EAAE,MAAW;QAE/C,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEnC;;;;;;;;;;;;;;;EAeA;IACD,CAAC;IAEO,kBAAkB,CAAC,MAAkB,EAAE,MAAW;QACzD,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAEO,iBAAiB,CAAC,MAAiB,EAAE,MAAW;QACvD,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACxD,IAAI,gBAAgB,EAAE;YACrB,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YACzD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,GAAG,oBAAoB,GAAG,KAAK,CAAC;SAChE;IACF,CAAC;IAEO,kBAAkB,CAAC,MAAW,EAAE,MAAW,EAAE,YAAwB;QAC5E,YAAY,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;YACpC,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE;gBAChB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;gBACjC,MAAM,CAAC,GAAG,CAAC,GAAG;oBACb,UAAU,EAAE;wBACX,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC;qBACvD;iBACD,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;aACjD;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,UAAU,CAAC,MAAW,EAAE,IAAmB;QAClD,IAAI,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;YAC5B,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;gBAC9B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;aACnB;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,UAAU,CAAC,MAAW;QAC7B,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACnC,CAAC;IAEO,gBAAgB,CAAC,GAAQ,EAAE,KAAU;QAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACxC,CAAC;IAEO,eAAe,CAAC,GAAQ;QAC/B,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAEO,gBAAgB,CAAC,GAAQ;QAChC,IAAI,GAAQ,CAAC;QACb,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACvD,IAAI,KAAK,KAAK,GAAG,EAAE;gBAClB,GAAG,GAAG,GAAG,CAAC;gBACV,OAAO,KAAK,CAAC;aACb;YACD,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACZ,CAAC;IAEO,OAAO,CAAC,GAAW,EAAE,EAAU;QACtC,IAAI,KAAU,CAAC;QACf,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,EAAE;YAC1C,IAAI,KAAK,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE;gBAC5B,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;gBAClB,OAAO;aACP;QACF,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACd,CAAC;IAEO,YAAY,CAAC,GAAW,EAAE,EAAU;QAC3C,IAAI,KAAK,GAAW,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,KAAa,EAAE,EAAE;YACzD,IAAI,KAAK,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE;gBAC5B,KAAK,GAAG,KAAK,CAAC;gBACd,OAAO;aACP;QACF,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACd,CAAC;IAEO,QAAQ,CAAC,GAAW,EAAE,KAAU;QACvC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAEO,UAAU,CAAC,GAAW,EAAE,EAAU,EAAE,KAAU;QACrD,MAAM,GAAG,GAAQ,EAAE,CAAC;QACpB,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;QAChB,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,iDAAiD;IACjD,uCAAuC;IACvC,2GAA2G;IAC3G,cAAc;IACd,IAAI;IAEI,WAAW,CAAC,GAAQ;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAChD,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,MAAM,EAAE;gBACrD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aAC1C;YACD,OAAO,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,GAAG,CAAC,CAAC;QAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC;YAChC,IAAI,IAAI,CAAC,CAAC,CAAC,wBAAwB;SACnC;QAED,OAAO,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe;IACxD,CAAC;IAEO,UAAU,CAAC,MAAW,EAAE,GAAW,EAAE,KAAU;QACtD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YACjB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;SACpB;IACF,CAAC;IAEO,QAAQ,CAAC,EAAU;QAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE;YACrC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;SACvB;aACI;YACJ,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;SACrB;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAEO,MAAM,CAAC,EAAU;QACxB,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAEO,kBAAkB,CAAC,KAAU;QACpC,sCAAsC;QACtC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAC7C,OAAO,KAAK,CAAC;SACb;QAED,iBAAiB;QACjB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACzB,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC3C,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBACnD,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;oBAC1C,IAAI,KAAK,EAAE;wBACV,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;qBACnB;iBACD;aACD;YACD,OAAO,KAAK,CAAC;SACb;QAED,iBAAiB;QACjB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACtC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YAEzB,IAAI,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC7C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;aAClB;iBACI,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACxC,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBAClD,IAAI,UAAU,EAAE;oBACf,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;iBAClB;aACD;SACD;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IACxC,CAAC;IAEO,SAAS,CAAC,MAAc;QAC/B,OAAO,MAAM,CAAC,MAAM,CAAS,QAAQ,CAAC,IAAI,MAAM,CAAC,MAAM,CAAa,YAAY,CAAC,CAAC;IACnF,CAAC;IAEO,aAAa,CAAC,OAAe,EAAE,MAAW;QACjD,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACvE,CAAC;;AA9zBD;;;;WAAkC,iBAAiB;GAAC;AACpD;;;;WAA0C,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;GAAC","sourcesContent":["import { Entity } from \"../../core/util/Entity\";\nimport type { Sprite } from \"../../core/render/Sprite\";\nimport type { SerialChart } from \"../../core/render/SerialChart\";\nimport type { Series } from \"../../core/render/Series\";\nimport type { XYChart } from \"../../charts/xy/XYChart\";\nimport type { XYSeries } from \"../../charts/xy/series/XYSeries\";\nimport type { XYChartScrollbar } from \"../../charts/xy/XYChartScrollbar\";\nimport type { MapChart } from \"../../charts/map/MapChart\";\nimport type { CurveChart } from \"../../charts/timeline/CurveChart\";\nimport type { Gantt } from \"../../charts/gantt/Gantt\";\nimport type { StockChart } from \"../../charts/stock/StockChart\";\nimport type { Hierarchy } from \"../../charts/hierarchy/Hierarchy\";\nimport type { Legend } from \"../../core/render/Legend\";\nimport type { HeatLegend } from \"../../core/render/HeatLegend\";\nimport type { Axis } from \"../../charts/xy/axes/Axis\";\nimport type { CategoryAxis } from \"../../charts/xy/axes/CategoryAxis\";\n\nimport { Container } from \"../../core/render/Container\";\nimport { DataItem } from \"../../core/render/Component\";\nimport { ListTemplate } from \"../../core/util/List\";\nimport { Serializer, ISerializerEvents, ISerializerSettings, ISerializerPrivate } from \"./Serializer\";\n\nimport * as $object from \"../../core/util/Object\";\nimport * as $type from \"../../core/util/Type\";\nimport * as $array from \"../../core/util/Array\";\n\nexport interface IChartSerializerSettings extends ISerializerSettings {\n\n\t/**\n\t * Remove empty objects from the output.\n\t *\n\t * @default true\n\t */\n\tremoveEmptyObjects?: boolean;\n\n\t/**\n\t * Include projection settings in the output.\n\t *\n\t * If enabled, the projection function will be included in the output,\n\t * according to the `functionsAs` setting.\n\t *\n\t * @default false\n\t */\n\tincludeProjection?: boolean;\n\n}\n\nexport interface IChartSerializerPrivate extends ISerializerPrivate {\n}\n\nexport interface IChartSerializerEvents extends ISerializerEvents {\n}\n\n\n/**\n * Serializes whole charts into simple objects or JSON.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/serializing/chart-serializer/} for more info\n * @since 5.15.0\n */\nexport class ChartSerializer extends Serializer {\n\n\tpublic static className: string = \"ChartSerializer\";\n\tpublic static classNames: Array<string> = Serializer.classNames.concat([ChartSerializer.className]);\n\n\tdeclare public _settings: IChartSerializerSettings;\n\tdeclare public _privateSettings: IChartSerializerPrivate;\n\tdeclare public _events: IChartSerializerEvents;\n\n\tprivate _disableDataSerialization: boolean = false;\n\tprivate _globalRefs: Array<any> = [];\n\tprivate _internalRefs: any = {};\n\tprivate _counters: { [index: string]: number } = {};\n\tprivate _lists: { [index: string]: any } = {};\n\tprivate _mainRefs: { [index: string]: Array<any> } = {};\n\n\tprotected _afterNew(): void {\n\t\tsuper._afterNew();\n\t\tthis._setSoft(\"maxDepth\", 10);\n\t\tthis._setSoft(\"removeEmptyObjects\", true);\n\t\tthis._setSoft(\"includeEvents\", true);\n\t\tthis._setSoft(\"includeAdapters\", true);\n\t\tthis._setSoft(\"includeStates\", true);\n\t\tthis._setSoft(\"functionsAs\", \"function\");\n\t\t//this._setSoft(\"includeProperties\", [\"label\"]);\n\t\tthis._setSoft(\"excludeSettings\", [\n\t\t\t\"chart\",\n\t\t\t\"themeTags\",\n\t\t\t\"draw\",\n\t\t\t\"curveFactory\",\n\t\t\t\"tooltipDataItem\",\n\t\t\t\"legendDataItem\",\n\t\t\t\"vcx\",\n\t\t\t\"vcy\",\n\t\t\t\"bounds\",\n\t\t\t\"pointTo\",\n\t\t\t\"tooltipTarget\",\n\t\t\t\"translateX\",\n\t\t\t\"translateY\",\n\t\t\t// Handled directly\n\t\t\t\"heatRules\"\n\t\t]); // \"x\", \"y\"\n\n\t\tthis.adapters.add(\"excludeProperties\", (exclude: Array<string> | undefined) => {\n\t\t\tif (this._disableDataSerialization) {\n\t\t\t\treturn (exclude || []).concat([\"data\"]);\n\t\t\t}\n\t\t\treturn exclude;\n\t\t});\n\n\t\tthis.reset();\n\t}\n\n\tpublic reset(): void {\n\t\tthis._disableDataSerialization = false;\n\t\tthis._globalRefs = [];\n\t\tthis._internalRefs = {};\n\t\tthis._counters = {};\n\t\tthis._lists = {\n\t\t\tdata: {},\n\t\t\taxes: {},\n\t\t\tseries: {},\n\t\t\tsprites: {},\n\t\t\telements: {}\n\t\t};\n\t\tthis._mainRefs = {\n\t\t\tfunctions: [],\n\t\t\tdata: [],\n\t\t\ttemplates: [],\n\t\t\taxes: [],\n\t\t\tseries: [],\n\t\t\taxisRanges: [],\n\t\t\tseriesAxisRanges: []\n\t\t};\n\t}\n\n\t/**\n\t * Serializes target object into a simple object.\n\t *\n\t * @param source Target object\n\t * @return Serialized data\n\t */\n\tpublic serializeAll(source: Container): any {\n\n\t\t// This will go as deep in the structure to find either chart or a series,\n\t\t// then will pass on to specialized serializers\n\n\t\t// Map out the structure\n\t\tthis._examineStructure(source);\n\n\t\t// Kick off serializing\n\t\tconst result = this._serializeEntity(source);\n\n\t\t// Finally, add in global references\n\t\tresult.refs = [];\n\t\t$object.each(this._mainRefs, (_key, value) => {\n\t\t\tif (value.length) {\n\t\t\t\tvalue.forEach((item) => {\n\t\t\t\t\tresult.refs.push(item);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\t// Cleanup\n\t\tif (this.get(\"removeEmptyObjects\")) {\n\t\t\tthis._pruneEmptyObjects(result);\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprivate _serializeEntity(source: Entity): any {\n\t\t// Initialize the result object\n\t\tlet result: any;\n\n\t\t// Process series differently\n\t\tif (source.isType<Series>(\"Series\") && !this._isLegend(source)) {\n\t\t\tthis._disableDataSerialization = true;\n\t\t\tresult = this.serialize(source, 0, true);\n\t\t\tthis._disableDataSerialization = false;\n\t\t\tthis._processSeries(source, result);\n\t\t\t// const seriesId = this._processSeries(source, result);\n\t\t\t// this._lists.series[seriesId];\n\t\t}\n\t\telse {\n\t\t\tresult = this.serialize(source, 0, true)!;\n\t\t}\n\n\t\t// Only go deeper if it's a plain Container\n\t\tif (source.className === \"Container\") {\n\t\t\tresult.children = [];\n\t\t\t(source as Container).children.each((child: Sprite) => {\n\t\t\t\tif (!this._isLegend(child)) {\n\t\t\t\t\tconst serializedChild = this._serializeEntity(child);\n\t\t\t\t\tif (child.isType<Series>(\"Series\")) {\n\t\t\t\t\t\tresult.children.push(\"#\" + this._getInternalRef(child.uid));\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tresult.children.push(serializedChild);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// Specialized serializers\n\t\tif (source.isType<SerialChart>(\"SerialChart\")) {\n\t\t\tthis._processSerialChart(source, result);\n\t\t}\n\n\t\tif (source.isType<XYChart>(\"XYChart\")) {\n\t\t\tthis._processXYChart(source, result);\n\t\t}\n\n\t\tif (source.isType<MapChart>(\"MapChart\")) {\n\t\t\tthis._processMapChart(source, result);\n\t\t}\n\n\t\tif (source.isType<CurveChart>(\"CurveChart\")) {\n\t\t\tthis._processCurveChart(source, result);\n\t\t}\n\n\t\tif (source.isType<StockChart>(\"StockChart\")) {\n\t\t\tthis._processStockChart(source, result);\n\t\t}\n\n\t\tif (source.isType<Gantt>(\"Gantt\")) {\n\t\t\tthis._processGantt(source, result);\n\t\t}\n\n\t\tif (source.isType<Hierarchy>(\"Hierarchy\")) {\n\t\t\tthis._processHierarchy(source, result);\n\t\t}\n\n\t\t// Process custom children\n\t\tif (source.isType<Container>(\"Container\")) {\n\t\t\tthis._processCustomChildren(source, result);\n\n\t\t\t// Check for custom children in property-linked internal containers\n\t\t\t$object.each(source, (key: string, child: any) => {\n\t\t\t\tif (child instanceof Container && !key.match(/^\\_/)) {\n\t\t\t\t\tthis._maybeInit(result, \"properties\", {})\n\t\t\t\t\tthis._maybeInit(result.properties, key, {})\n\t\t\t\t\tthis._processCustomChildren(child, result.properties[key]);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprivate _examineStructure(source: Container) {\n\t\t// Collect serializable custom children\n\t\tsource.children.each((child: Sprite) => {\n\t\t\tthis._lists.elements[child.uid] = child;\n\t\t\tif (child.hasTag(\"serialize\") || this._isLegend(child)) {\n\t\t\t\tthis._lists.sprites[child.uid] = child;\n\t\t\t}\n\n\t\t\tif (child.isType<Container>(\"Container\")) {\n\t\t\t\tthis._examineStructure(child);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _processCustomChildren(source: Container, result: any) {\n\t\tsource.children.each((child: Sprite) => {\n\t\t\tif (this._lists.sprites[child.uid] !== undefined) {\n\t\t\t\tdelete this._lists.sprites[child.uid];\n\t\t\t\tthis._maybeInit(result, \"children\", []);\n\t\t\t\tlet childItem: any;\n\n\t\t\t\t// Additional processing for Legend\n\t\t\t\tif (child.isType<Legend>(\"Legend\")) {\n\t\t\t\t\t// Do not let serializer serialize legend's data\n\t\t\t\t\t// It can contain big objects like Series, we'll build the data array\n\t\t\t\t\t// ourselves\n\t\t\t\t\tthis._disableDataSerialization = true;\n\t\t\t\t\tchildItem = this.serialize(child, 0, false);\n\t\t\t\t\tthis._maybeInit(childItem, \"properties\", {});\n\t\t\t\t\tchildItem.properties.data = [];\n\t\t\t\t\tchild.data.values.forEach((item: any, index: number) => {\n\t\t\t\t\t\tif (item instanceof DataItem) {\n\t\t\t\t\t\t\tconst series = item.component;\n\t\t\t\t\t\t\tchildItem.properties.data[index] = \"#\" + this._getInternalRef(series.uid) + \".dataItems.\" + index;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if ((item as Entity).isType<Series>(\"Series\")) {\n\t\t\t\t\t\t\tchildItem.properties.data[index] = \"#\" + this._getInternalRef(item.uid);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tchildItem.properties.data[index] = item;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tthis._disableDataSerialization = false;\n\n\t\t\t\t\t// Populate templates\n\t\t\t\t\tthis._populateTemplates(child, childItem.properties, [\n\t\t\t\t\t\t\"labels\", \"valueLabels\", \"markers\", \"markerRectangles\", \"itemContainers\"\n\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tchildItem = this.serialize(child, 0, true);\n\t\t\t\t}\n\n\t\t\t\tchildItem.index = child.parent!.children.indexOf(child);\n\t\t\t\tresult.children.push(childItem);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _processSeries(series: Series, result: any): string {\n\t\tconst datahash = this._hashObject(series.data.values);\n\t\tlet dataId: any = this._getInternalRef(datahash);\n\t\tconst seriesId = this._getId(\"series\");\n\t\tthis._lists.series[seriesId] = result;\n\n\t\tthis._saveInternalRef(series.uid, seriesId);\n\t\tif (dataId === undefined) {\n\t\t\tdataId = this._getId(\"data\");\n\t\t\tthis._lists.data[dataId] = this.serialize(series.data.values, 0, true, true);\n\t\t\tthis._saveInternalRef(datahash, dataId);\n\t\t\t//_datas[dataId] = this._lists.data[dataId];\n\t\t\tthis._saveRefId(\"data\", dataId, this._lists.data[dataId]);\n\t\t}\n\t\tthis._maybeInit(this._lists.series[seriesId], \"properties\", {});\n\t\tthis._lists.series[seriesId].properties.data = \"#\" + dataId;\n\n\t\t// Populate templates\n\t\tthis._populateTemplates(series, this._lists.series[seriesId].properties, [\n\t\t\t// XY\n\t\t\t\"strokes\", \"fills\", \"columns\",\n\t\t\t// Percent\n\t\t\t\"slices\", \"labels\", \"ticks\", \"links\",\n\t\t\t// Hierarchy\n\t\t\t\"nodes\", \"circles\", \"outerCircles\",\n\t\t\t// Map\n\t\t\t\"mapPolygons\", \"mapLines\"\n\t\t]);\n\n\t\t// Handle bullets\n\t\tseries.bullets.each((bulletFunction: any) => {\n\t\t\tthis._maybeInit(this._lists.series[seriesId].properties, \"bullets\", []);\n\t\t\tconst sampleDataItem = series.dataItems.length ? series.dataItems[0] : new DataItem(series, {}, {});\n\t\t\tconst bullet = bulletFunction(series.root, series, sampleDataItem);\n\t\t\tconst serializedBullet: any = this.serialize(bullet, 0, true);\n\t\t\tconst bulletSprite = bullet.get(\"sprite\");\n\t\t\tif (bulletSprite) {\n\t\t\t\t// Serialize the sprite (including children)\n\t\t\t\tserializedBullet.settings.sprite = this._serializeEntity(bullet.get(\"sprite\"));\n\t\t\t\tthis._lists.series[seriesId].properties.bullets.push(serializedBullet);\n\n\t\t\t\t// Look for templates\n\t\t\t\tthis._processTemplate(bullet.get(\"sprite\"), serializedBullet.settings.sprite);\n\t\t\t}\n\n\t\t});\n\n\t\t// Handle heat rules\n\t\tconst heatRules = series.get(\"heatRules\");\n\t\tif (heatRules) {\n\n\t\t\tthis._lists.series[seriesId].settings.heatRules = [];\n\t\t\theatRules.forEach((rule: any) => {\n\n\t\t\t\t// Figure out target\n\t\t\t\tlet targetId: any = this._findInternalRef(rule.target);\n\t\t\t\tif (targetId) {\n\t\t\t\t\ttargetId = \"#\" + targetId;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Let's search in series template lists\n\t\t\t\t\t$object.each(series, (key: any, value: any) => {\n\t\t\t\t\t\tif (value instanceof ListTemplate && value.template === rule.target) {\n\t\t\t\t\t\t\tconst templateId = this._getId(\"template\");\n\t\t\t\t\t\t\tconst serializedTemplate = this.serialize(value.template, 0, true);\n\t\t\t\t\t\t\ttargetId = \"#\" + templateId;\n\t\t\t\t\t\t\tresult.properties[key].properties.template = \"#\" + templateId;\n\t\t\t\t\t\t\tthis._saveRefId(\"templates\", templateId, serializedTemplate);\n\t\t\t\t\t\t\tthis._saveInternalRef(templateId, value.template);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (targetId) {\n\t\t\t\t\tconst serializedRule: any = this.serialize(rule, 0, true);\n\t\t\t\t\tserializedRule.target = targetId;\n\t\t\t\t\tserializedRule.__parse = true;\n\t\t\t\t\tthis._lists.series[seriesId].settings.heatRules.push(serializedRule);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis._saveRefId(\"series\", seriesId, this._lists.series[seriesId]);\n\t\tthis._processCustomChildren(series, this._lists.series[seriesId]);\n\n\t\treturn seriesId;\n\t}\n\n\tprivate _processTemplate(source: Sprite, result: any): void {\n\t\tif (source.template) {\n\t\t\tconst template = source.template;\n\t\t\tconst templateId = this._getId(\"template\");\n\t\t\tconst serializedTemplate = this.serialize(template, 0, true);\n\t\t\tthis._maybeInit(result, \"properties\", {})\n\t\t\tresult.properties.template = \"#\" + templateId;\n\t\t\tthis._saveRefId(\"templates\", templateId, serializedTemplate);\n\t\t\tthis._saveInternalRef(templateId, template);\n\t\t}\n\n\t\tif (source.isType<Container>(\"Container\")) {\n\t\t\tsource.children.each((child: any, index: number) => {\n\t\t\t\tif (result.children && (result.children.length > index)) {\n\t\t\t\t\tthis._processTemplate(child, result.children[index]);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate _processSerialChart(source: SerialChart, result: any): void {\n\n\t\t// Process series\n\t\tconst _series: any = [];\n\t\tsource.series.each((series: any, _index: number) => {\n\t\t\tthis._disableDataSerialization = true;\n\t\t\tconst serializedSeries = this.serialize(series, 0, true);\n\t\t\tthis._disableDataSerialization = false;\n\t\t\tconst seriesId = this._processSeries(series, serializedSeries);\n\t\t\tthis._lists.series[seriesId];\n\t\t\t_series.push(\"#\" + seriesId);\n\t\t});\n\n\t\t// Add series to chart\n\t\tthis._maybeInit(result, \"properties\", {});\n\t\tthis._maybeInit(result.properties, \"series\", []);\n\t\tresult.properties.series = _series;\n\n\t\t// Custom children\n\t\tthis._processCustomChildren(source, result);\n\t}\n\n\tprivate _processXYChart(source: XYChart, result: any) {\n\n\t\tthis._maybeInit(result.properties, \"xAxes\", []);\n\t\tthis._maybeInit(result.properties, \"yAxes\", []);\n\n\t\t// Add axes\n\t\t[\"x\", \"y\"].forEach((axisType: string) => {\n\t\t\t(source as any)[axisType + \"Axes\"].each((axis: Axis<any>, _index: number) => {\n\t\t\t\tconst axisId = this._processAxis(axis, null);\n\t\t\t\tresult.properties[axisType + \"Axes\"].push(\"#\" + axisId);\n\t\t\t});\n\n\t\t});\n\n\t\t// Populate series with axe references\n\t\tsource.series.each((series: any, _index: number) => {\n\t\t\tconst id = this._getInternalRef(series.uid);\n\t\t\tthis._lists.series[id].settings.xAxis = \"#\" + this._getInternalRef(series.get(\"xAxis\").uid);\n\t\t\tthis._lists.series[id].settings.yAxis = \"#\" + this._getInternalRef(series.get(\"yAxis\").uid);\n\t\t\tthis._lists.series[id].settings.baseAxis = \"#\" + this._getInternalRef(series.get(\"baseAxis\").uid);\n\t\t});\n\n\t\t// Process series axis ranges\n\t\tsource.series.each((series: any, _index: number) => {\n\t\t\tconst axisRanges = (series as XYSeries).axisRanges.values;\n\t\t\tif (axisRanges.length) {\n\t\t\t\tfor (let i = 0; i < axisRanges.length; i++) {\n\t\t\t\t\tconst rangeId = this._getId(\"seriesAxisRange\");\n\t\t\t\t\tconst range = axisRanges[i];\n\t\t\t\t\tconst axis = range.axisDataItem.component;\n\t\t\t\t\tconst axisId = this._getInternalRef(axis.uid)\n\t\t\t\t\tconst seriesId = this._getInternalRef(series.uid)\n\t\t\t\t\tconst serializedRange: any = {\n\t\t\t\t\t\taxis: \"#\" + axisId,\n\t\t\t\t\t\tseries: \"#\" + seriesId,\n\t\t\t\t\t\tsettings: this.serialize(range.axisDataItem._settings, 0, true),\n\t\t\t\t\t\t__parseLogic: \"axisRange\"\n\t\t\t\t\t};\n\t\t\t\t\t[\"fills\", \"strokes\", \"graphics\"].forEach((key: string) => {\n\t\t\t\t\t\tconst value = (range as any)[key];\n\t\t\t\t\t\tif (value && value instanceof ListTemplate) {\n\t\t\t\t\t\t\tserializedRange[key] = this.serialize(value.template._settings, 0, true);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tthis._saveRefId(\"seriesAxisRanges\", rangeId, serializedRange);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// Handle layout for axis containers\n\t\t[\"leftAxesContainer\", \"rightAxesContainer\"].forEach((key: string) => {\n\t\t\tconst serializedContainer = this.serialize((source as any)[key], 0, true);\n\t\t\tif (serializedContainer) {\n\t\t\t\tthis._stripType(serializedContainer);\n\t\t\t\tthis._maybeInit(result, \"properties\", {});\n\t\t\t\tresult.properties[key] = serializedContainer;\n\t\t\t}\n\t\t});\n\n\t\t// Process cursor\n\t\tconst cursor: any = source.get(\"cursor\");\n\t\tif (cursor) {\n\t\t\t[\"x\", \"y\"].forEach((axisType: string) => {\n\t\t\t\tconst axis = cursor.get(axisType + \"Axis\");\n\t\t\t\tif (axis) {\n\t\t\t\t\tresult.settings.cursor.settings[axisType + \"Axis\"] = \"#\" + this._getInternalRef(axis.uid);\n\t\t\t\t}\n\t\t\t\tthis._maybeInit(result.settings.cursor, \"properties\", {});\n\t\t\t});\n\t\t\tresult.settings.cursor.properties.lineX = this.serialize(cursor.lineX);\n\t\t\tresult.settings.cursor.properties.lineY = this.serialize(cursor.lineY);\n\t\t\tthis._stripType(result.settings.cursor.properties.lineX);\n\t\t\tthis._stripType(result.settings.cursor.properties.lineY);\n\n\t\t\tcursor.get(\"snapToSeries\", []).forEach((series: any, index: number) => {\n\t\t\t\tresult.settings.cursor.settings.snapToSeries[index] = \"#\" + this._getInternalRef(series.uid);\n\t\t\t});\n\t\t}\n\n\t\t// Process the rest of the XY stuff\n\t\tresult.properties.zoomOutButton = this.serialize(source.zoomOutButton, 0, false);\n\t\tthis._stripType(result.properties.zoomOutButton);\n\t\tthis._stripKeys(result.properties.zoomOutButton.settings, [\"background\", \"icon\"])\n\n\t\t// Process the scrollbar\n\t\tconst scrollbarX = source.get(\"scrollbarX\");\n\t\tif (scrollbarX && scrollbarX.isType<XYChartScrollbar>(\"XYChartScrollbar\")) {\n\t\t\tconst serializedScrollbarChart: any = this._serializeEntity(scrollbarX.chart);\n\t\t\tthis._stripType(serializedScrollbarChart);\n\t\t\tthis._maybeInit(result.settings.scrollbarX, \"properties\", {});\n\t\t\tresult.settings.scrollbarX.properties.chart = serializedScrollbarChart;\n\t\t}\n\t}\n\n\tprivate _processAxis(axis: Axis<any>, _result: any, stripType?: boolean): string {\n\t\tconst axisId = this._getId(\"axis\");\n\t\tconst serializedAxis: any = this.serialize(axis, 0, true);\n\t\tthis._saveRefId(\"axes\", axisId, serializedAxis);\n\n\t\t// Renderer\n\t\tthis._maybeInit(serializedAxis.settings, \"renderer\", {});\n\t\tthis._maybeInit(serializedAxis.settings.renderer, \"properties\", {});\n\t\tthis._populateTemplates(axis.get(\"renderer\"), serializedAxis.settings.renderer.properties, [\n\t\t\t\"labels\", \"grid\", \"minorGrid\", \"ticks\"\n\t\t]);\n\n\t\t// Axis syncing\n\t\tconst syncedAxis = (axis as any).get(\"syncWithAxis\");\n\t\tif (syncedAxis) {\n\t\t\tserializedAxis.settings.syncWithAxis = \"#\" + this._getInternalRef(syncedAxis.uid);\n\t\t}\n\n\t\t// Axis header\n\t\tif (axis.axisHeader && axis.axisHeader.children.length) {\n\t\t\tthis._maybeInit(serializedAxis, \"properties\", {});\n\t\t\tserializedAxis.properties.axisHeader = this.serialize(axis.axisHeader, 0, true);\n\t\t\tthis._processCustomChildren(axis.axisHeader, serializedAxis.properties.axisHeader);\n\t\t}\n\n\t\t// Axis bullet\n\t\tconst bulletFunction = axis.get(\"bullet\");\n\t\tif (bulletFunction) {\n\t\t\tconst sampleDataItem = axis.dataItems.length ? axis.dataItems[0] : new DataItem(axis, {}, {});\n\t\t\tconst bullet = bulletFunction(axis.root, axis, sampleDataItem);\n\t\t\tconst serializedBullet: any = this.serialize(bullet, 0, true);\n\t\t\tserializedAxis.properties.bullet = serializedBullet;\n\t\t}\n\n\t\t// Axis ranges\n\t\tconst axisRanges = axis.axisRanges.values;\n\t\tif (axisRanges.length) {\n\t\t\tfor (let i = 0; i < axisRanges.length; i++) {\n\t\t\t\tconst rangeId = this._getId(\"axisRange\");\n\t\t\t\tconst range = axisRanges[i];\n\t\t\t\tconst serializedRange: any = {\n\t\t\t\t\taxis: \"#\" + axisId,\n\t\t\t\t\tsettings: this.serialize(range._settings, 0, true),\n\t\t\t\t\t__parseLogic: \"axisRange\"\n\t\t\t\t};\n\t\t\t\tthis._saveRefId(\"axisRanges\", rangeId, serializedRange);\n\t\t\t}\n\t\t}\n\n\t\t// Process CategoryAxis data\n\t\tif (axis.isType<CategoryAxis<any>>(\"CategoryAxis\")) {\n\t\t\tlet dataid: any = this._getInternalRef(this._hashObject(axis.data.values));\n\t\t\tif (dataid === undefined) {\n\t\t\t\tdataid = this._getId(\"data\");\n\t\t\t\tthis._lists.data[dataid] = this.serialize(axis.data.values, 0, true, true);\n\t\t\t\tthis._saveInternalRef(this._hashObject(axis.data.values), dataid);\n\t\t\t\tthis._saveRefId(\"data\", dataid, this._lists.data[dataid]);\n\t\t\t}\n\t\t\tthis._maybeInit(serializedAxis, \"properties\", {});\n\t\t\tserializedAxis.properties.data = \"#\" + dataid;\n\t\t}\n\t\tthis._saveInternalRef(axis.uid, axisId);\n\n\t\tif (stripType) {\n\t\t\tthis._stripType(serializedAxis);\n\t\t\tthis._stripType(serializedAxis.settings.renderer);\n\t\t}\n\n\t\tconst axisItem: any = {};\n\t\taxisItem[axisId] = serializedAxis;\n\t\tthis._processCustomChildren(axis, axisItem[axisId]);\n\t\tthis._globalRefs.push(axisItem);\n\n\t\treturn axisId;\n\t}\n\n\tprivate _processCurveChart(source: CurveChart, _result: any) {\n\t\t// Curve Chart needs special treament, as it's X axis references Y axis\n\t\t// via `yAxis` of its renderer\n\t\tsource.xAxes.each((axis: Axis<any>) => {\n\t\t\tconst xRenderer = axis.get(\"renderer\");\n\t\t\tconst yRenderer = xRenderer.get(\"yRenderer\");\n\t\t\tif (yRenderer) {\n\t\t\t\t// Add reference\n\t\t\t\tconst xAxisId = this._getInternalRef(axis.uid);\n\t\t\t\tconst yAxisId = this._getInternalRef(yRenderer.axis.uid);\n\t\t\t\tconst serializedXAxis = this._getRef(\"axes\", xAxisId);\n\t\t\t\tserializedXAxis.settings.renderer.settings.yRenderer = \"#\" + yAxisId + \".get('renderer')\";\n\n\t\t\t\tconst serializedYAxis = this._getRef(\"axes\", yAxisId);\n\t\t\t\tdelete serializedYAxis.settings.renderer.settings.xRenderer;\n\n\t\t\t\t// Swap positions of the axes\n\t\t\t\tconst xIndex = this._getRefIndex(\"axes\", xAxisId);\n\t\t\t\tconst yIndex = this._getRefIndex(\"axes\", yAxisId);\n\t\t\t\tif (xIndex < yIndex) {\n\t\t\t\t\t[this._mainRefs.axes[xIndex], this._mainRefs.axes[yIndex]] = [this._mainRefs.axes[yIndex], this._mainRefs.axes[xIndex]];\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _processMapChart(source: MapChart, result: any) {\n\t\t// Clean up auto-populated data\n\t\tsource.series.each((series: any, _index: number) => {\n\t\t\tconst seriesId = this._getInternalRef(series.uid);\n\t\t\tconst serializedSeries = this._lists.series[seriesId];\n\t\t\tlet serializedData = this._getRef(\"data\", serializedSeries.properties.data.substr(1))\n\t\t\t$array.keepIf(serializedData, (item: any) => !item.madeFromGeoData);\n\t\t\t$array.map(serializedData, (item: any) => {\n\t\t\t\tif (item.geometry) {\n\t\t\t\t\t//delete item.geometry;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (serializedData.length === 0) {\n\t\t\t\tdelete serializedSeries.properties.data;\n\t\t\t}\n\n\t\t\t// Clustered bullet\n\t\t\tif (series.get(\"clusteredBullet\")) {\n\t\t\t\tconst bulletFunction = series.get(\"clusteredBullet\");\n\t\t\t\tconst sampleDataItem = series.clusteredDataItems.length ? series.clusteredDataItems[0] : new DataItem(series, {}, {});\n\t\t\t\tconst bullet = bulletFunction(series.root, series, sampleDataItem);\n\t\t\t\tconst serializedBullet: any = this.serialize(bullet, 0, true);\n\t\t\t\tif (bullet.get(\"sprite\")) {\n\t\t\t\t\tserializedBullet.settings.sprite = this._serializeEntity(bullet.get(\"sprite\"));\n\t\t\t\t\tthis._lists.series[seriesId].settings.clusteredBullet = serializedBullet;\n\t\t\t\t\tthis._processTemplate(bullet.get(\"sprite\"), serializedBullet.settings.sprite);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// Remove target from ZoomControl\n\t\tif (result.settings.zoomControl && result.settings.zoomControl.settings.target) {\n\t\t\tdelete result.settings.zoomControl.settings.target;\n\t\t\tthis._maybeInit(result.settings.zoomControl, \"properties\", {});\n\t\t\t[\"homeButton\", \"minusButton\", \"plusButton\"].forEach((button) => {\n\t\t\t\tresult.settings.zoomControl.properties[button] = {\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\tvisible: (source.get(\"zoomControl\") as any)[button].get(\"visible\")\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// Handle projection setting\n\t\tconst projection = source.get(\"projection\")\n\t\tif (projection && this.get(\"includeProjection\", false)) {\n\t\t\t// @TODO: use references for functions instead\n\t\t\t//result.settings.projection = \"#\" + this._saveFunction(projection);\n\t\t\tconst asString = this.get(\"functionsAs\", \"string\") == \"string\";\n\t\t\tif (asString) {\n\t\t\t\tresult.settings.projection = projection.toString();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tresult.settings.projection = projection;\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate _processGantt(source: Gantt, result: any) {\n\n\t\tthis._notSupported(source, result);\n\n\t\t/*\n\t\t// Process series and axis data\n\t\tthis._maybeInit(result, \"properties\", {});\n\n\t\t// Process series\n\t\tthis._disableDataSerialization = true;\n\t\tconst serializedSeries = this.serialize(source.series, 0, true);\n\t\tthis._stripType(serializedSeries);\n\t\tresult.properties.series = \"#\" + this._processSeries(source.series, serializedSeries);\n\n\t\t// Process category axis\n\t\tconst serializedYAxis = this.serialize(source.yAxis, 0, true);\n\t\tthis._stripType(serializedYAxis);\n\t\tconst yAxisId = this._processAxis(source.yAxis, serializedYAxis, true);\n\t\tresult.properties.yAxis = \"#\" + yAxisId;\n*/\n\t}\n\n\tprivate _processStockChart(source: StockChart, result: any) {\n\t\tthis._notSupported(source, result);\n\t}\n\n\tprivate _processHierarchy(source: Hierarchy, result: any) {\n\t\tconst selectedDataItem = source.get(\"selectedDataItem\");\n\t\tif (selectedDataItem) {\n\t\t\tconst index = source.dataItems.indexOf(selectedDataItem);\n\t\t\tresult.settings.selectedDataItem = \"@series.dataItems.\" + index;\n\t\t}\n\t}\n\n\tprivate _populateTemplates(source: any, result: any, templateKeys: Array<any>): void {\n\t\ttemplateKeys.forEach((key: string) => {\n\t\t\tif (source[key]) {\n\t\t\t\tthis._maybeInit(result, key, {});\n\t\t\t\tresult[key] = {\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\ttemplate: this.serialize(source[key].template, 0, true)\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tthis._stripType(result[key].properties.template);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _stripKeys(source: any, keys: Array<string>): void {\n\t\tkeys.forEach((key: string) => {\n\t\t\tif (source[key] !== undefined) {\n\t\t\t\tdelete source[key];\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate _stripType(source: any): void {\n\t\tthis._stripKeys(source, [\"type\"]);\n\t}\n\n\tprivate _saveInternalRef(ref: any, value: any): any {\n\t\treturn this._internalRefs[ref] = value;\n\t}\n\n\tprivate _getInternalRef(ref: any): any {\n\t\treturn this._internalRefs[ref];\n\t}\n\n\tprivate _findInternalRef(ref: any): any {\n\t\tlet res: any;\n\t\t$object.eachContinue(this._internalRefs, (key, value) => {\n\t\t\tif (value === ref) {\n\t\t\t\tres = key;\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn true;\n\t\t});\n\t\treturn res;\n\t}\n\n\tprivate _getRef(key: string, id: string): any {\n\t\tlet found: any;\n\t\tthis._mainRefs[key].forEach((value: any) => {\n\t\t\tif (value[id] !== undefined) {\n\t\t\t\tfound = value[id];\n\t\t\t\treturn;\n\t\t\t}\n\t\t});\n\t\treturn found;\n\t}\n\n\tprivate _getRefIndex(key: string, id: string): number {\n\t\tlet found: number = -1;\n\t\tthis._mainRefs[key].forEach((value: any, index: number) => {\n\t\t\tif (value[id] !== undefined) {\n\t\t\t\tfound = index;\n\t\t\t\treturn;\n\t\t\t}\n\t\t});\n\t\treturn found;\n\t}\n\n\tprivate _saveRef(key: string, value: any): void {\n\t\tthis._mainRefs[key].push(value);\n\t}\n\n\tprivate _saveRefId(key: string, id: string, value: any): void {\n\t\tconst ref: any = {};\n\t\tref[id] = value;\n\t\tthis._saveRef(key, ref);\n\t}\n\n\t// private _saveFunction(callback: any): string {\n\t// \tconst id = this._getId(\"function\");\n\t// \tthis._saveRefId(\"functions\", id, this.get(\"functionsAs\") == \"string\" ? callback.toString() : callback);\n\t// \treturn id;\n\t// }\n\n\tprivate _hashObject(obj: any) {\n\t\tconst json = JSON.stringify(obj, (_key, value) => {\n\t\t\tif ($type.isObject(value) && value instanceof Entity) {\n\t\t\t\treturn JSON.stringify(Object.keys(value));\n\t\t\t}\n\t\t\treturn value;\n\t\t});\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < json.length; i++) {\n\t\t\tconst chr = json.charCodeAt(i);\n\t\t\thash = (hash << 5) - hash + chr;\n\t\t\thash |= 0; // convert to 32-bit int\n\t\t}\n\n\t\treturn \"h\" + (hash >>> 0).toString(16); // unsigned hex\n\t}\n\n\tprivate _maybeInit(source: any, key: string, value: any): void {\n\t\tif (!source[key]) {\n\t\t\tsource[key] = value;\n\t\t}\n\t}\n\n\tprivate _counter(id: string): number {\n\t\tif (this._counters[id] === undefined) {\n\t\t\tthis._counters[id] = 0;\n\t\t}\n\t\telse {\n\t\t\tthis._counters[id]++;\n\t\t}\n\t\treturn this._counters[id];\n\t}\n\n\tprivate _getId(id: string): string {\n\t\treturn id + \"-\" + this._counter(id);\n\t}\n\n\tprivate _pruneEmptyObjects(value: any): boolean {\n\t\t// Non-object primitives → never empty\n\t\tif (value === null || !$type.isObject(value)) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Process arrays\n\t\tif ($type.isArray(value)) {\n\t\t\tfor (let i = value.length - 1; i >= 0; i--) {\n\t\t\t\tconst el = value[i];\n\t\t\t\tif (el && $type.isObject(el) && !$type.isArray(el)) {\n\t\t\t\t\tconst empty = this._pruneEmptyObjects(el);\n\t\t\t\t\tif (empty) {\n\t\t\t\t\t\tvalue.splice(i, 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\n\t\t// Regular object\n\t\tfor (const key of $object.keys(value)) {\n\t\t\tconst child = value[key];\n\n\t\t\tif (key === \"states\" && $type.isArray(value)) {\n\t\t\t\tdelete value[key];\n\t\t\t}\n\t\t\telse if (child && $type.isObject(child)) {\n\t\t\t\tconst childEmpty = this._pruneEmptyObjects(child);\n\t\t\t\tif (childEmpty) {\n\t\t\t\t\tdelete value[key];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn Object.keys(value).length === 0;\n\t}\n\n\tprivate _isLegend(source: Entity): boolean {\n\t\treturn source.isType<Legend>(\"Legend\") || source.isType<HeatLegend>(\"HeatLegend\");\n\t}\n\n\tprivate _notSupported(_source: Entity, result: any) {\n\t\tthrow new Error(\"Unsupported type for serialization: \" + result.type);\n\t}\n\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Json.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/plugins/json/Json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAkhBxD,MAAM,WAAW,cAAc;IAC9B,MAAM,CAAC,EAAE,SAAS,CAAC;CACnB;AAED;;;;;GAKG;AACH,qBAAa,UAAU;IACtB,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC;IAEtB;;;;;;;OAOG;gBACS,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO;IAQvC;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,OAAO,UAAU,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC;IAI1F;;;;;OAKG;IACG,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAyBzF;;;;;OAKG;IACG,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;CAG9F;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,CAMhE"}
1
+ {"version":3,"file":"Json.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/plugins/json/Json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AA2pBxD,MAAM,WAAW,cAAc;IAC9B,MAAM,CAAC,EAAE,SAAS,CAAC;CACnB;AAED;;;;;GAKG;AACH,qBAAa,UAAU;IACtB,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC;IAEtB;;;;;;;OAOG;gBACS,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO;IAQvC;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,OAAO,UAAU,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC;IAI1F;;;;;OAKG;IACG,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAyBzF;;;;;OAKG;IACG,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;CAG9F;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,CAMhE"}
@@ -5,6 +5,7 @@ import { Container } from "../../core/render/Container";
5
5
  import { Color } from "../../core/util/Color";
6
6
  import { Percent } from "../../core/util/Percent";
7
7
  import { Template } from "../../core/util/Template";
8
+ import { ListData } from "../../core/util/Data";
8
9
  import * as $type from "../../core/util/Type";
9
10
  import * as $array from "../../core/util/Array";
10
11
  import * as $object from "../../core/util/Object";
@@ -12,6 +13,9 @@ import classes from "./Classes";
12
13
  function isObject(value) {
13
14
  return $type.isObject(value);
14
15
  }
16
+ function isObjectParsed(value) {
17
+ return value instanceof Entity || value instanceof Color || value instanceof Percent || value instanceof Template;
18
+ }
15
19
  function lookupRef(refs, name) {
16
20
  let i = refs.length;
17
21
  while (i--) {
@@ -72,10 +76,15 @@ function mergeEntity(entity, parsed) {
72
76
  entity.adapters.add(adapter.key, adapter.callback);
73
77
  });
74
78
  }
79
+ if (parsed.states) {
80
+ $array.each(parsed.states, (state) => {
81
+ entity.states.create(state.key, state.settings);
82
+ });
83
+ }
75
84
  if (entity instanceof Container) {
76
85
  if (parsed.children) {
77
86
  parsed.children.forEach((child) => {
78
- if (child.index == null) {
87
+ if (child.index == null || child.index >= entity.children.length) {
79
88
  entity.children.push(child.value);
80
89
  }
81
90
  else {
@@ -130,7 +139,14 @@ class ParserState {
130
139
  }
131
140
  storeClass(name) {
132
141
  return __awaiter(this, void 0, void 0, function* () {
142
+ if (name === "Template") {
143
+ // Do nothing
144
+ return;
145
+ }
133
146
  const promise = classes[name];
147
+ if (promise == null) {
148
+ throw new Error("Unknown object type `" + name + "`");
149
+ }
134
150
  this._cache[name] = (yield promise());
135
151
  });
136
152
  }
@@ -146,30 +162,33 @@ class ParserState {
146
162
  yield Promise.all($array.map(array, (x) => this.parseAsync(x)));
147
163
  });
148
164
  }
149
- parseAsyncObject(object) {
165
+ parseAsyncObjectKey(key, value) {
150
166
  return __awaiter(this, void 0, void 0, function* () {
151
- yield Promise.all($array.map($object.keys(object), (key) => this.parseAsync(object[key])));
152
- });
153
- }
154
- parseAsyncSettings(object) {
155
- return __awaiter(this, void 0, void 0, function* () {
156
- yield Promise.all($array.map($object.keys(object), (key) => this.parseAsyncSetting(key, object[key])));
157
- });
158
- }
159
- parseAsyncSetting(key, value) {
160
- return __awaiter(this, void 0, void 0, function* () {
161
- if (key !== "geoJSON") {
167
+ if (key === "type") {
168
+ if ($type.isString(value)) {
169
+ yield this.cacheClass(value);
170
+ }
171
+ else {
172
+ yield this.parseAsync(value);
173
+ }
174
+ }
175
+ else if (key === "geoJSON" || key === "geometry") {
176
+ // Do nothing
177
+ }
178
+ else {
162
179
  yield this.parseAsync(value);
163
180
  }
164
181
  });
165
182
  }
166
- parseAsyncRefs(refs) {
183
+ parseAsyncObject(object) {
167
184
  return __awaiter(this, void 0, void 0, function* () {
168
- if ($type.isArray(refs)) {
169
- yield Promise.all($array.map(refs, (x) => this.parseAsyncRefs(x)));
170
- }
171
- else {
172
- yield this.parseAsyncObject(refs);
185
+ switch (object.type) {
186
+ case "Color":
187
+ case "Percent":
188
+ // Do nothing
189
+ break;
190
+ default:
191
+ yield Promise.all($array.map($object.keys(object), (key) => this.parseAsyncObjectKey(key, object[key])));
173
192
  }
174
193
  });
175
194
  }
@@ -179,26 +198,10 @@ class ParserState {
179
198
  yield this.parseAsyncArray(value);
180
199
  }
181
200
  else if (isObject(value)) {
182
- if (value.type === "Color" || value.type === "Percent") {
183
- // Do nothing
184
- }
185
- else if (value.type === "Template") {
186
- yield Promise.all([
187
- (value.refs ? this.parseAsyncRefs(value.refs) : Promise.resolve(undefined)),
188
- (value.settings ? this.parseAsyncObject(value.settings) : Promise.resolve(undefined)),
189
- ]);
190
- }
191
- else if (value.__parse === true) {
192
- yield this.parseAsyncObject(value);
193
- }
194
- else if (value.__parse !== false) {
195
- yield Promise.all([
196
- (value.type ? this.cacheClass(value.type) : Promise.resolve(undefined)),
197
- (value.refs ? this.parseAsyncRefs(value.refs) : Promise.resolve(undefined)),
198
- (value.settings ? this.parseAsyncSettings(value.settings) : Promise.resolve(undefined)),
199
- (value.properties ? this.parseAsyncObject(value.properties) : Promise.resolve(undefined)),
200
- (value.children ? this.parseAsyncArray(value.children) : Promise.resolve(undefined)),
201
- ]);
201
+ if (!isObjectParsed(value)) {
202
+ if (value.__parse === true || value.__parse !== false) {
203
+ yield this.parseAsyncObject(value);
204
+ }
202
205
  }
203
206
  }
204
207
  });
@@ -230,6 +233,16 @@ class ParserState {
230
233
  return root.gridLayout;
231
234
  }
232
235
  }
236
+ if (key === "clusteredBullet") {
237
+ return (_, series) => {
238
+ const newRefs = refs.concat([{ "@series": series }]);
239
+ return this.parse(root, value, newRefs);
240
+ };
241
+ }
242
+ if (key === "projection") {
243
+ // @todo: implement
244
+ return value;
245
+ }
233
246
  if (key === "geoJSON") {
234
247
  return value;
235
248
  }
@@ -245,6 +258,18 @@ class ParserState {
245
258
  });
246
259
  return settings;
247
260
  }
261
+ parseState(root, object, refs) {
262
+ return {
263
+ key: object.key,
264
+ settings: this.parseSettings(root, object.settings, refs),
265
+ };
266
+ }
267
+ parseAdapter(root, object, refs) {
268
+ return {
269
+ key: object.key,
270
+ callback: this.parse(root, object.callback, refs),
271
+ };
272
+ }
248
273
  parseProperties(root, object, refs) {
249
274
  return $array.map($object.keys(object), (key) => {
250
275
  const rawValue = object[key];
@@ -256,9 +281,14 @@ class ParserState {
256
281
  if (parsed.isValue) {
257
282
  // Merge Array into List
258
283
  if ($type.isArray(parsed.value)) {
259
- $array.each(parsed.value, (value) => {
260
- old.push(value);
261
- });
284
+ if (old instanceof ListData) {
285
+ old.setAll(parsed.value);
286
+ }
287
+ else {
288
+ $array.each(parsed.value, (value) => {
289
+ old.push(value);
290
+ });
291
+ }
262
292
  }
263
293
  else {
264
294
  entity[key] = parsed.value;
@@ -299,16 +329,65 @@ class ParserState {
299
329
  });
300
330
  });
301
331
  }
332
+ else if (key === "bullet") {
333
+ entity.set("bullet", (_, axis) => {
334
+ const newRefs = refs.concat([{ "@axis": axis }]);
335
+ return this.parse(root, rawValue, newRefs);
336
+ });
337
+ }
302
338
  else {
303
339
  run();
304
340
  }
305
341
  };
306
342
  });
307
343
  }
344
+ parseAxisRange(root, value, refs) {
345
+ const settings = this.parseSettings(root, value.settings, refs);
346
+ return {
347
+ isValue: false,
348
+ type: undefined,
349
+ construct: undefined,
350
+ settings,
351
+ adapters: undefined,
352
+ states: undefined,
353
+ children: undefined,
354
+ properties: undefined,
355
+ index: undefined,
356
+ value,
357
+ };
358
+ }
308
359
  parseRefsObject(root, object, refs) {
309
360
  const newRefs = {};
310
- $array.each($object.keys(object), (key) => {
311
- newRefs["#" + key] = this.parse(root, object[key], refs);
361
+ $object.each(object, (key, value) => {
362
+ if (value.__parseLogic == "axisRange" || value.__parseLogic == "seriesAxisRange") {
363
+ // Parse axis range
364
+ const parsed = this.parseAxisRange(root, value, refs);
365
+ const axis = lookupRef(refs, value.axis);
366
+ const axisDataItem = axis.makeDataItem({});
367
+ // Apply settings to data item
368
+ mergeExisting(axisDataItem, parsed);
369
+ let seriesRange;
370
+ const series = value.series ? lookupRef(refs, value.series) : undefined;
371
+ if (series) {
372
+ seriesRange = series.createAxisRange(axisDataItem);
373
+ }
374
+ else {
375
+ axis.createAxisRange(axisDataItem);
376
+ }
377
+ // Set series range settings
378
+ if (seriesRange) {
379
+ ["fills", "strokes", "graphics"].forEach((targetKey) => {
380
+ if (seriesRange[targetKey] !== undefined && value[targetKey] !== undefined) {
381
+ value[targetKey].__parse = true;
382
+ const parsedSetting = this.parse(root, value[targetKey], refs);
383
+ seriesRange[targetKey].template.setAll(parsedSetting);
384
+ }
385
+ });
386
+ }
387
+ }
388
+ else {
389
+ newRefs["#" + key] = this.parse(root, value, refs);
390
+ }
312
391
  });
313
392
  return newRefs;
314
393
  }
@@ -354,19 +433,45 @@ class ParserState {
354
433
  const settings = (value.settings ? this.parseSettings(root, value.settings, refs) : undefined);
355
434
  const properties = (value.properties ? this.parseProperties(root, value.properties, refs) : undefined);
356
435
  const children = (value.children ? this.parseChildren(root, value.children, refs) : undefined);
436
+ const states = (value.states ? $array.map(value.states, (value) => this.parseState(root, value, refs)) : undefined);
437
+ const adapters = (value.adapters ? $array.map(value.adapters, (value) => this.parseAdapter(root, value, refs)) : undefined);
357
438
  const index = (value.index == null ? undefined : value.index);
358
439
  return {
359
440
  isValue: false,
360
441
  type: value.type,
361
442
  construct,
362
443
  settings,
363
- adapters: value.adapters,
444
+ adapters,
445
+ states,
364
446
  children,
365
447
  properties,
366
448
  index,
367
449
  value,
368
450
  };
369
451
  }
452
+ parseTemplate(root, value, refs) {
453
+ if (value.refs) {
454
+ refs = this.parseRefs(root, value.refs, refs);
455
+ }
456
+ const settings = (value.settings ? this.parseSettings(root, value.settings, refs) : {});
457
+ const template = Template.new(settings);
458
+ const states = (value.states ? $array.map(value.states, (value) => this.parseState(root, value, refs)) : undefined);
459
+ const adapters = (value.adapters ? $array.map(value.adapters, (value) => this.parseAdapter(root, value, refs)) : undefined);
460
+ if (adapters) {
461
+ $array.each(adapters, (adapter) => {
462
+ template.adapters.add(adapter.key, adapter.callback);
463
+ });
464
+ }
465
+ if (states) {
466
+ $array.each(states, (state) => {
467
+ template.states.create(state.key, state.settings);
468
+ });
469
+ }
470
+ return {
471
+ isValue: true,
472
+ value: template,
473
+ };
474
+ }
370
475
  parseValue(root, value, refs) {
371
476
  if (value instanceof Entity) {
372
477
  return { isValue: true, value: value };
@@ -378,7 +483,13 @@ class ParserState {
378
483
  };
379
484
  }
380
485
  else if (isObject(value)) {
381
- if (value.type === "Color") {
486
+ if (isObjectParsed(value)) {
487
+ return {
488
+ isValue: true,
489
+ value,
490
+ };
491
+ }
492
+ else if (value.type === "Color") {
382
493
  return {
383
494
  isValue: true,
384
495
  value: Color.fromAny(value.value),
@@ -391,14 +502,7 @@ class ParserState {
391
502
  };
392
503
  }
393
504
  else if (value.type === "Template") {
394
- if (value.refs) {
395
- refs = this.parseRefs(root, value.refs, refs);
396
- }
397
- const settings = (value.settings ? this.parseSettings(root, value.settings, refs) : {});
398
- return {
399
- isValue: true,
400
- value: Template.new(settings),
401
- };
505
+ return this.parseTemplate(root, value, refs);
402
506
  }
403
507
  else if (value.__parse === true) {
404
508
  return {