@amcharts/amcharts5 5.2.49 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (887) hide show
  1. package/.internal/charts/flow/Chord.js +151 -199
  2. package/.internal/charts/flow/Chord.js.map +1 -1
  3. package/.internal/charts/flow/ChordDirected.js +46 -66
  4. package/.internal/charts/flow/ChordDirected.js.map +1 -1
  5. package/.internal/charts/flow/ChordLink.js +32 -42
  6. package/.internal/charts/flow/ChordLink.js.map +1 -1
  7. package/.internal/charts/flow/ChordLinkDirected.js +17 -29
  8. package/.internal/charts/flow/ChordLinkDirected.js.map +1 -1
  9. package/.internal/charts/flow/ChordNodes.js +70 -86
  10. package/.internal/charts/flow/ChordNodes.js.map +1 -1
  11. package/.internal/charts/flow/ChordNonRibbon.js +63 -91
  12. package/.internal/charts/flow/ChordNonRibbon.js.map +1 -1
  13. package/.internal/charts/flow/Flow.js +289 -356
  14. package/.internal/charts/flow/Flow.js.map +1 -1
  15. package/.internal/charts/flow/FlowDefaultTheme.js +187 -199
  16. package/.internal/charts/flow/FlowDefaultTheme.js.map +1 -1
  17. package/.internal/charts/flow/FlowLink.js +34 -49
  18. package/.internal/charts/flow/FlowLink.js.map +1 -1
  19. package/.internal/charts/flow/FlowNode.js +17 -22
  20. package/.internal/charts/flow/FlowNode.js.map +1 -1
  21. package/.internal/charts/flow/FlowNodes.js +141 -202
  22. package/.internal/charts/flow/FlowNodes.js.map +1 -1
  23. package/.internal/charts/flow/Sankey.js +165 -203
  24. package/.internal/charts/flow/Sankey.js.map +1 -1
  25. package/.internal/charts/flow/SankeyLink.js +207 -229
  26. package/.internal/charts/flow/SankeyLink.js.map +1 -1
  27. package/.internal/charts/flow/SankeyNodes.js +70 -90
  28. package/.internal/charts/flow/SankeyNodes.js.map +1 -1
  29. package/.internal/charts/funnel/FunnelSeries.js +353 -447
  30. package/.internal/charts/funnel/FunnelSeries.js.map +1 -1
  31. package/.internal/charts/funnel/FunnelSlice.js +96 -117
  32. package/.internal/charts/funnel/FunnelSlice.js.map +1 -1
  33. package/.internal/charts/funnel/PictorialStackedSeries.js +59 -79
  34. package/.internal/charts/funnel/PictorialStackedSeries.js.map +1 -1
  35. package/.internal/charts/funnel/PyramidSeries.js +106 -122
  36. package/.internal/charts/funnel/PyramidSeries.js.map +1 -1
  37. package/.internal/charts/funnel/SlicedChart.js +17 -29
  38. package/.internal/charts/funnel/SlicedChart.js.map +1 -1
  39. package/.internal/charts/hierarchy/BreadcrumbBar.js +69 -96
  40. package/.internal/charts/hierarchy/BreadcrumbBar.js.map +1 -1
  41. package/.internal/charts/hierarchy/ForceDirected.js +255 -370
  42. package/.internal/charts/hierarchy/ForceDirected.js.map +1 -1
  43. package/.internal/charts/hierarchy/Hierarchy.js +476 -640
  44. package/.internal/charts/hierarchy/Hierarchy.js.map +1 -1
  45. package/.internal/charts/hierarchy/HierarchyDefaultTheme.js +337 -349
  46. package/.internal/charts/hierarchy/HierarchyDefaultTheme.js.map +1 -1
  47. package/.internal/charts/hierarchy/HierarchyLink.js +43 -61
  48. package/.internal/charts/hierarchy/HierarchyLink.js.map +1 -1
  49. package/.internal/charts/hierarchy/HierarchyNode.js +57 -74
  50. package/.internal/charts/hierarchy/HierarchyNode.js.map +1 -1
  51. package/.internal/charts/hierarchy/LinkedHierarchy.js +229 -323
  52. package/.internal/charts/hierarchy/LinkedHierarchy.js.map +1 -1
  53. package/.internal/charts/hierarchy/LinkedHierarchyNode.js +48 -80
  54. package/.internal/charts/hierarchy/LinkedHierarchyNode.js.map +1 -1
  55. package/.internal/charts/hierarchy/Pack.js +105 -147
  56. package/.internal/charts/hierarchy/Pack.js.map +1 -1
  57. package/.internal/charts/hierarchy/Partition.js +183 -230
  58. package/.internal/charts/hierarchy/Partition.js.map +1 -1
  59. package/.internal/charts/hierarchy/Sunburst.js +259 -323
  60. package/.internal/charts/hierarchy/Sunburst.js.map +1 -1
  61. package/.internal/charts/hierarchy/Tree.js +49 -69
  62. package/.internal/charts/hierarchy/Tree.js.map +1 -1
  63. package/.internal/charts/hierarchy/Treemap.js +168 -209
  64. package/.internal/charts/hierarchy/Treemap.js.map +1 -1
  65. package/.internal/charts/map/GraticuleSeries.js +49 -70
  66. package/.internal/charts/map/GraticuleSeries.js.map +1 -1
  67. package/.internal/charts/map/MapChart.js +587 -751
  68. package/.internal/charts/map/MapChart.js.map +1 -1
  69. package/.internal/charts/map/MapChartDefaultTheme.js +98 -110
  70. package/.internal/charts/map/MapChartDefaultTheme.js.map +1 -1
  71. package/.internal/charts/map/MapLine.js +165 -196
  72. package/.internal/charts/map/MapLine.js.map +1 -1
  73. package/.internal/charts/map/MapLineSeries.js +130 -197
  74. package/.internal/charts/map/MapLineSeries.js.map +1 -1
  75. package/.internal/charts/map/MapPointSeries.d.ts +7 -2
  76. package/.internal/charts/map/MapPointSeries.d.ts.map +1 -1
  77. package/.internal/charts/map/MapPointSeries.js +265 -342
  78. package/.internal/charts/map/MapPointSeries.js.map +1 -1
  79. package/.internal/charts/map/MapPolygon.js +86 -122
  80. package/.internal/charts/map/MapPolygon.js.map +1 -1
  81. package/.internal/charts/map/MapPolygonSeries.d.ts +6 -1
  82. package/.internal/charts/map/MapPolygonSeries.d.ts.map +1 -1
  83. package/.internal/charts/map/MapPolygonSeries.js +110 -170
  84. package/.internal/charts/map/MapPolygonSeries.js.map +1 -1
  85. package/.internal/charts/map/MapSeries.d.ts +9 -3
  86. package/.internal/charts/map/MapSeries.d.ts.map +1 -1
  87. package/.internal/charts/map/MapSeries.js +212 -303
  88. package/.internal/charts/map/MapSeries.js.map +1 -1
  89. package/.internal/charts/map/MapUtils.js +19 -19
  90. package/.internal/charts/map/MapUtils.js.map +1 -1
  91. package/.internal/charts/map/ZoomControl.js +52 -67
  92. package/.internal/charts/map/ZoomControl.js.map +1 -1
  93. package/.internal/charts/percent/PercentChart.js +23 -40
  94. package/.internal/charts/percent/PercentChart.js.map +1 -1
  95. package/.internal/charts/percent/PercentDefaultTheme.js +196 -208
  96. package/.internal/charts/percent/PercentDefaultTheme.js.map +1 -1
  97. package/.internal/charts/percent/PercentSeries.js +378 -549
  98. package/.internal/charts/percent/PercentSeries.js.map +1 -1
  99. package/.internal/charts/pie/PieChart.js +85 -110
  100. package/.internal/charts/pie/PieChart.js.map +1 -1
  101. package/.internal/charts/pie/PieSeries.js +175 -232
  102. package/.internal/charts/pie/PieSeries.js.map +1 -1
  103. package/.internal/charts/radar/AxisRendererCircular.js +219 -307
  104. package/.internal/charts/radar/AxisRendererCircular.js.map +1 -1
  105. package/.internal/charts/radar/AxisRendererRadial.js +188 -276
  106. package/.internal/charts/radar/AxisRendererRadial.js.map +1 -1
  107. package/.internal/charts/radar/ClockHand.js +89 -104
  108. package/.internal/charts/radar/ClockHand.js.map +1 -1
  109. package/.internal/charts/radar/RadarChart.js +142 -201
  110. package/.internal/charts/radar/RadarChart.js.map +1 -1
  111. package/.internal/charts/radar/RadarColumnSeries.js +118 -170
  112. package/.internal/charts/radar/RadarColumnSeries.js.map +1 -1
  113. package/.internal/charts/radar/RadarCursor.js +147 -220
  114. package/.internal/charts/radar/RadarCursor.js.map +1 -1
  115. package/.internal/charts/radar/RadarDefaultTheme.js +85 -97
  116. package/.internal/charts/radar/RadarDefaultTheme.js.map +1 -1
  117. package/.internal/charts/radar/RadarLineSeries.js +71 -113
  118. package/.internal/charts/radar/RadarLineSeries.js.map +1 -1
  119. package/.internal/charts/radar/SmoothedRadarLineSeries.js +33 -55
  120. package/.internal/charts/radar/SmoothedRadarLineSeries.js.map +1 -1
  121. package/.internal/charts/stock/PanelControls.js +49 -60
  122. package/.internal/charts/stock/PanelControls.js.map +1 -1
  123. package/.internal/charts/stock/SettingsModal.js +321 -393
  124. package/.internal/charts/stock/SettingsModal.js.map +1 -1
  125. package/.internal/charts/stock/StockChart.d.ts.map +1 -1
  126. package/.internal/charts/stock/StockChart.js +466 -568
  127. package/.internal/charts/stock/StockChart.js.map +1 -1
  128. package/.internal/charts/stock/StockChartDefaultTheme.d.ts.map +1 -1
  129. package/.internal/charts/stock/StockChartDefaultTheme.js +1162 -1162
  130. package/.internal/charts/stock/StockChartDefaultTheme.js.map +1 -1
  131. package/.internal/charts/stock/StockLegend.js +65 -91
  132. package/.internal/charts/stock/StockLegend.js.map +1 -1
  133. package/.internal/charts/stock/StockPanel.js +87 -119
  134. package/.internal/charts/stock/StockPanel.js.map +1 -1
  135. package/.internal/charts/stock/drawing/AverageSeries.d.ts.map +1 -1
  136. package/.internal/charts/stock/drawing/AverageSeries.js +48 -60
  137. package/.internal/charts/stock/drawing/AverageSeries.js.map +1 -1
  138. package/.internal/charts/stock/drawing/CalloutSeries.d.ts +7 -2
  139. package/.internal/charts/stock/drawing/CalloutSeries.d.ts.map +1 -1
  140. package/.internal/charts/stock/drawing/CalloutSeries.js +90 -95
  141. package/.internal/charts/stock/drawing/CalloutSeries.js.map +1 -1
  142. package/.internal/charts/stock/drawing/DoodleSeries.d.ts.map +1 -1
  143. package/.internal/charts/stock/drawing/DoodleSeries.js +82 -122
  144. package/.internal/charts/stock/drawing/DoodleSeries.js.map +1 -1
  145. package/.internal/charts/stock/drawing/DrawingSeries.d.ts +5 -3
  146. package/.internal/charts/stock/drawing/DrawingSeries.d.ts.map +1 -1
  147. package/.internal/charts/stock/drawing/DrawingSeries.js +519 -712
  148. package/.internal/charts/stock/drawing/DrawingSeries.js.map +1 -1
  149. package/.internal/charts/stock/drawing/EllipseSeries.d.ts +3 -0
  150. package/.internal/charts/stock/drawing/EllipseSeries.d.ts.map +1 -1
  151. package/.internal/charts/stock/drawing/EllipseSeries.js +258 -307
  152. package/.internal/charts/stock/drawing/EllipseSeries.js.map +1 -1
  153. package/.internal/charts/stock/drawing/FibonacciSeries.d.ts +2 -3
  154. package/.internal/charts/stock/drawing/FibonacciSeries.d.ts.map +1 -1
  155. package/.internal/charts/stock/drawing/FibonacciSeries.js +189 -250
  156. package/.internal/charts/stock/drawing/FibonacciSeries.js.map +1 -1
  157. package/.internal/charts/stock/drawing/FibonacciTimezoneSeries.d.ts.map +1 -1
  158. package/.internal/charts/stock/drawing/FibonacciTimezoneSeries.js +108 -103
  159. package/.internal/charts/stock/drawing/FibonacciTimezoneSeries.js.map +1 -1
  160. package/.internal/charts/stock/drawing/HorizontalLineSeries.d.ts +4 -2
  161. package/.internal/charts/stock/drawing/HorizontalLineSeries.d.ts.map +1 -1
  162. package/.internal/charts/stock/drawing/HorizontalLineSeries.js +64 -84
  163. package/.internal/charts/stock/drawing/HorizontalLineSeries.js.map +1 -1
  164. package/.internal/charts/stock/drawing/HorizontalRaySeries.d.ts +2 -1
  165. package/.internal/charts/stock/drawing/HorizontalRaySeries.d.ts.map +1 -1
  166. package/.internal/charts/stock/drawing/HorizontalRaySeries.js +57 -92
  167. package/.internal/charts/stock/drawing/HorizontalRaySeries.js.map +1 -1
  168. package/.internal/charts/stock/drawing/IconSeries.d.ts +2 -4
  169. package/.internal/charts/stock/drawing/IconSeries.d.ts.map +1 -1
  170. package/.internal/charts/stock/drawing/IconSeries.js +112 -112
  171. package/.internal/charts/stock/drawing/IconSeries.js.map +1 -1
  172. package/.internal/charts/stock/drawing/LabelSeries.d.ts +5 -2
  173. package/.internal/charts/stock/drawing/LabelSeries.d.ts.map +1 -1
  174. package/.internal/charts/stock/drawing/LabelSeries.js +151 -172
  175. package/.internal/charts/stock/drawing/LabelSeries.js.map +1 -1
  176. package/.internal/charts/stock/drawing/PolylineSeries.d.ts +1 -0
  177. package/.internal/charts/stock/drawing/PolylineSeries.d.ts.map +1 -1
  178. package/.internal/charts/stock/drawing/PolylineSeries.js +101 -122
  179. package/.internal/charts/stock/drawing/PolylineSeries.js.map +1 -1
  180. package/.internal/charts/stock/drawing/QuadrantLineSeries.d.ts.map +1 -1
  181. package/.internal/charts/stock/drawing/QuadrantLineSeries.js +115 -149
  182. package/.internal/charts/stock/drawing/QuadrantLineSeries.js.map +1 -1
  183. package/.internal/charts/stock/drawing/RectangleSeries.d.ts.map +1 -1
  184. package/.internal/charts/stock/drawing/RectangleSeries.js +117 -155
  185. package/.internal/charts/stock/drawing/RectangleSeries.js.map +1 -1
  186. package/.internal/charts/stock/drawing/RegressionSeries.d.ts.map +1 -1
  187. package/.internal/charts/stock/drawing/RegressionSeries.js +64 -82
  188. package/.internal/charts/stock/drawing/RegressionSeries.js.map +1 -1
  189. package/.internal/charts/stock/drawing/SimpleLineSeries.d.ts +6 -2
  190. package/.internal/charts/stock/drawing/SimpleLineSeries.d.ts.map +1 -1
  191. package/.internal/charts/stock/drawing/SimpleLineSeries.js +233 -303
  192. package/.internal/charts/stock/drawing/SimpleLineSeries.js.map +1 -1
  193. package/.internal/charts/stock/drawing/TrendLineSeries.d.ts.map +1 -1
  194. package/.internal/charts/stock/drawing/TrendLineSeries.js +40 -57
  195. package/.internal/charts/stock/drawing/TrendLineSeries.js.map +1 -1
  196. package/.internal/charts/stock/drawing/VerticalLineSeries.d.ts +3 -1
  197. package/.internal/charts/stock/drawing/VerticalLineSeries.d.ts.map +1 -1
  198. package/.internal/charts/stock/drawing/VerticalLineSeries.js +63 -79
  199. package/.internal/charts/stock/drawing/VerticalLineSeries.js.map +1 -1
  200. package/.internal/charts/stock/indicators/AccumulationDistribution.js +68 -88
  201. package/.internal/charts/stock/indicators/AccumulationDistribution.js.map +1 -1
  202. package/.internal/charts/stock/indicators/AccumulativeSwingIndex.js +107 -127
  203. package/.internal/charts/stock/indicators/AccumulativeSwingIndex.js.map +1 -1
  204. package/.internal/charts/stock/indicators/Aroon.js +85 -110
  205. package/.internal/charts/stock/indicators/Aroon.js.map +1 -1
  206. package/.internal/charts/stock/indicators/AwesomeOscillator.js +68 -88
  207. package/.internal/charts/stock/indicators/AwesomeOscillator.js.map +1 -1
  208. package/.internal/charts/stock/indicators/BollingerBands.js +109 -135
  209. package/.internal/charts/stock/indicators/BollingerBands.js.map +1 -1
  210. package/.internal/charts/stock/indicators/ChaikinMoneyFlow.js +77 -97
  211. package/.internal/charts/stock/indicators/ChaikinMoneyFlow.js.map +1 -1
  212. package/.internal/charts/stock/indicators/ChaikinOscillator.js +75 -95
  213. package/.internal/charts/stock/indicators/ChaikinOscillator.js.map +1 -1
  214. package/.internal/charts/stock/indicators/ChartIndicator.js +86 -102
  215. package/.internal/charts/stock/indicators/ChartIndicator.js.map +1 -1
  216. package/.internal/charts/stock/indicators/CommodityChannelIndex.js +136 -161
  217. package/.internal/charts/stock/indicators/CommodityChannelIndex.js.map +1 -1
  218. package/.internal/charts/stock/indicators/DisparityIndex.js +69 -89
  219. package/.internal/charts/stock/indicators/DisparityIndex.js.map +1 -1
  220. package/.internal/charts/stock/indicators/Indicator.d.ts +1 -2
  221. package/.internal/charts/stock/indicators/Indicator.d.ts.map +1 -1
  222. package/.internal/charts/stock/indicators/Indicator.js +286 -383
  223. package/.internal/charts/stock/indicators/Indicator.js.map +1 -1
  224. package/.internal/charts/stock/indicators/MACD.js +129 -159
  225. package/.internal/charts/stock/indicators/MACD.js.map +1 -1
  226. package/.internal/charts/stock/indicators/MedianPrice.js +56 -71
  227. package/.internal/charts/stock/indicators/MedianPrice.js.map +1 -1
  228. package/.internal/charts/stock/indicators/MovingAverage.js +95 -115
  229. package/.internal/charts/stock/indicators/MovingAverage.js.map +1 -1
  230. package/.internal/charts/stock/indicators/MovingAverageDeviation.js +93 -118
  231. package/.internal/charts/stock/indicators/MovingAverageDeviation.js.map +1 -1
  232. package/.internal/charts/stock/indicators/MovingAverageEnvelope.js +114 -144
  233. package/.internal/charts/stock/indicators/MovingAverageEnvelope.js.map +1 -1
  234. package/.internal/charts/stock/indicators/OnBalanceVolume.js +65 -85
  235. package/.internal/charts/stock/indicators/OnBalanceVolume.js.map +1 -1
  236. package/.internal/charts/stock/indicators/RelativeStrengthIndex.js +162 -187
  237. package/.internal/charts/stock/indicators/RelativeStrengthIndex.js.map +1 -1
  238. package/.internal/charts/stock/indicators/StandardDeviation.js +56 -72
  239. package/.internal/charts/stock/indicators/StandardDeviation.js.map +1 -1
  240. package/.internal/charts/stock/indicators/StochasticOscillator.js +142 -173
  241. package/.internal/charts/stock/indicators/StochasticOscillator.js.map +1 -1
  242. package/.internal/charts/stock/indicators/Trix.js +90 -120
  243. package/.internal/charts/stock/indicators/Trix.js.map +1 -1
  244. package/.internal/charts/stock/indicators/TypicalPrice.js +56 -71
  245. package/.internal/charts/stock/indicators/TypicalPrice.js.map +1 -1
  246. package/.internal/charts/stock/indicators/VWAP.js +78 -98
  247. package/.internal/charts/stock/indicators/VWAP.js.map +1 -1
  248. package/.internal/charts/stock/indicators/Volume.js +55 -75
  249. package/.internal/charts/stock/indicators/Volume.js.map +1 -1
  250. package/.internal/charts/stock/indicators/WilliamsR.js +138 -163
  251. package/.internal/charts/stock/indicators/WilliamsR.js.map +1 -1
  252. package/.internal/charts/stock/indicators/ZigZag.js +141 -161
  253. package/.internal/charts/stock/indicators/ZigZag.js.map +1 -1
  254. package/.internal/charts/stock/toolbar/ColorControl.js +78 -101
  255. package/.internal/charts/stock/toolbar/ColorControl.js.map +1 -1
  256. package/.internal/charts/stock/toolbar/ComparisonControl.js +16 -28
  257. package/.internal/charts/stock/toolbar/ComparisonControl.js.map +1 -1
  258. package/.internal/charts/stock/toolbar/DateRangeSelector.js +1157 -345
  259. package/.internal/charts/stock/toolbar/DateRangeSelector.js.map +1 -1
  260. package/.internal/charts/stock/toolbar/DrawingControl.d.ts +26 -0
  261. package/.internal/charts/stock/toolbar/DrawingControl.d.ts.map +1 -1
  262. package/.internal/charts/stock/toolbar/DrawingControl.js +754 -709
  263. package/.internal/charts/stock/toolbar/DrawingControl.js.map +1 -1
  264. package/.internal/charts/stock/toolbar/DrawingToolControl.js +80 -119
  265. package/.internal/charts/stock/toolbar/DrawingToolControl.js.map +1 -1
  266. package/.internal/charts/stock/toolbar/Dropdown.js +102 -150
  267. package/.internal/charts/stock/toolbar/Dropdown.js.map +1 -1
  268. package/.internal/charts/stock/toolbar/DropdownColors.js +92 -141
  269. package/.internal/charts/stock/toolbar/DropdownColors.js.map +1 -1
  270. package/.internal/charts/stock/toolbar/DropdownList.js +186 -249
  271. package/.internal/charts/stock/toolbar/DropdownList.js.map +1 -1
  272. package/.internal/charts/stock/toolbar/DropdownListControl.js +117 -150
  273. package/.internal/charts/stock/toolbar/DropdownListControl.js.map +1 -1
  274. package/.internal/charts/stock/toolbar/IconControl.js +81 -120
  275. package/.internal/charts/stock/toolbar/IconControl.js.map +1 -1
  276. package/.internal/charts/stock/toolbar/IndicatorControl.d.ts +23 -1
  277. package/.internal/charts/stock/toolbar/IndicatorControl.d.ts.map +1 -1
  278. package/.internal/charts/stock/toolbar/IndicatorControl.js +352 -297
  279. package/.internal/charts/stock/toolbar/IndicatorControl.js.map +1 -1
  280. package/.internal/charts/stock/toolbar/IntervalControl.js +16 -28
  281. package/.internal/charts/stock/toolbar/IntervalControl.js.map +1 -1
  282. package/.internal/charts/stock/toolbar/PeriodSelector.js +141 -189
  283. package/.internal/charts/stock/toolbar/PeriodSelector.js.map +1 -1
  284. package/.internal/charts/stock/toolbar/ResetControl.js +26 -44
  285. package/.internal/charts/stock/toolbar/ResetControl.js.map +1 -1
  286. package/.internal/charts/stock/toolbar/SeriesTypeControl.js +14 -21
  287. package/.internal/charts/stock/toolbar/SeriesTypeControl.js.map +1 -1
  288. package/.internal/charts/stock/toolbar/SettingsControl.js +97 -140
  289. package/.internal/charts/stock/toolbar/SettingsControl.js.map +1 -1
  290. package/.internal/charts/stock/toolbar/StockControl.js +114 -177
  291. package/.internal/charts/stock/toolbar/StockControl.js.map +1 -1
  292. package/.internal/charts/stock/toolbar/StockIcons.js +67 -81
  293. package/.internal/charts/stock/toolbar/StockIcons.js.map +1 -1
  294. package/.internal/charts/stock/toolbar/StockToolbar.js +63 -94
  295. package/.internal/charts/stock/toolbar/StockToolbar.js.map +1 -1
  296. package/.internal/charts/stock/toolbar/StockToolbarCSS.js +11 -11
  297. package/.internal/charts/stock/toolbar/StockToolbarCSS.js.map +1 -1
  298. package/.internal/charts/venn/Venn.js +276 -373
  299. package/.internal/charts/venn/Venn.js.map +1 -1
  300. package/.internal/charts/venn/VennDefaultTheme.js +18 -30
  301. package/.internal/charts/venn/VennDefaultTheme.js.map +1 -1
  302. package/.internal/charts/wordcloud/WordCloud.js +381 -452
  303. package/.internal/charts/wordcloud/WordCloud.js.map +1 -1
  304. package/.internal/charts/wordcloud/WordCloudDefaultTheme.js +35 -48
  305. package/.internal/charts/wordcloud/WordCloudDefaultTheme.js.map +1 -1
  306. package/.internal/charts/xy/XYChart.js +956 -1136
  307. package/.internal/charts/xy/XYChart.js.map +1 -1
  308. package/.internal/charts/xy/XYChartDefaultTheme.d.ts.map +1 -1
  309. package/.internal/charts/xy/XYChartDefaultTheme.js +597 -604
  310. package/.internal/charts/xy/XYChartDefaultTheme.js.map +1 -1
  311. package/.internal/charts/xy/XYChartScrollbar.js +78 -95
  312. package/.internal/charts/xy/XYChartScrollbar.js.map +1 -1
  313. package/.internal/charts/xy/XYCursor.d.ts.map +1 -1
  314. package/.internal/charts/xy/XYCursor.js +468 -608
  315. package/.internal/charts/xy/XYCursor.js.map +1 -1
  316. package/.internal/charts/xy/axes/Axis.d.ts +0 -2
  317. package/.internal/charts/xy/axes/Axis.d.ts.map +1 -1
  318. package/.internal/charts/xy/axes/Axis.js +509 -726
  319. package/.internal/charts/xy/axes/Axis.js.map +1 -1
  320. package/.internal/charts/xy/axes/AxisBullet.js +30 -40
  321. package/.internal/charts/xy/axes/AxisBullet.js.map +1 -1
  322. package/.internal/charts/xy/axes/AxisLabel.js +17 -22
  323. package/.internal/charts/xy/axes/AxisLabel.js.map +1 -1
  324. package/.internal/charts/xy/axes/AxisLabelRadial.js +17 -22
  325. package/.internal/charts/xy/axes/AxisLabelRadial.js.map +1 -1
  326. package/.internal/charts/xy/axes/AxisRenderer.js +186 -302
  327. package/.internal/charts/xy/axes/AxisRenderer.js.map +1 -1
  328. package/.internal/charts/xy/axes/AxisRendererX.js +308 -400
  329. package/.internal/charts/xy/axes/AxisRendererX.js.map +1 -1
  330. package/.internal/charts/xy/axes/AxisRendererY.js +319 -421
  331. package/.internal/charts/xy/axes/AxisRendererY.js.map +1 -1
  332. package/.internal/charts/xy/axes/AxisTick.js +17 -22
  333. package/.internal/charts/xy/axes/AxisTick.js.map +1 -1
  334. package/.internal/charts/xy/axes/CategoryAxis.js +312 -454
  335. package/.internal/charts/xy/axes/CategoryAxis.js.map +1 -1
  336. package/.internal/charts/xy/axes/CategoryDateAxis.js +136 -167
  337. package/.internal/charts/xy/axes/CategoryDateAxis.js.map +1 -1
  338. package/.internal/charts/xy/axes/DateAxis.js +579 -758
  339. package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
  340. package/.internal/charts/xy/axes/DurationAxis.js +92 -128
  341. package/.internal/charts/xy/axes/DurationAxis.js.map +1 -1
  342. package/.internal/charts/xy/axes/GaplessDateAxis.js +207 -254
  343. package/.internal/charts/xy/axes/GaplessDateAxis.js.map +1 -1
  344. package/.internal/charts/xy/axes/Grid.js +19 -31
  345. package/.internal/charts/xy/axes/Grid.js.map +1 -1
  346. package/.internal/charts/xy/axes/ValueAxis.js +848 -1041
  347. package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
  348. package/.internal/charts/xy/series/BaseColumnSeries.js +480 -576
  349. package/.internal/charts/xy/series/BaseColumnSeries.js.map +1 -1
  350. package/.internal/charts/xy/series/Candlestick.js +27 -44
  351. package/.internal/charts/xy/series/Candlestick.js.map +1 -1
  352. package/.internal/charts/xy/series/CandlestickSeries.js +114 -140
  353. package/.internal/charts/xy/series/CandlestickSeries.js.map +1 -1
  354. package/.internal/charts/xy/series/ColumnSeries.js +33 -49
  355. package/.internal/charts/xy/series/ColumnSeries.js.map +1 -1
  356. package/.internal/charts/xy/series/LineSeries.js +447 -548
  357. package/.internal/charts/xy/series/LineSeries.js.map +1 -1
  358. package/.internal/charts/xy/series/OHLC.js +36 -48
  359. package/.internal/charts/xy/series/OHLC.js.map +1 -1
  360. package/.internal/charts/xy/series/OHLCSeries.js +32 -48
  361. package/.internal/charts/xy/series/OHLCSeries.js.map +1 -1
  362. package/.internal/charts/xy/series/SmoothedXLineSeries.js +23 -40
  363. package/.internal/charts/xy/series/SmoothedXLineSeries.js.map +1 -1
  364. package/.internal/charts/xy/series/SmoothedXYLineSeries.js +23 -40
  365. package/.internal/charts/xy/series/SmoothedXYLineSeries.js.map +1 -1
  366. package/.internal/charts/xy/series/SmoothedYLineSeries.js +23 -40
  367. package/.internal/charts/xy/series/SmoothedYLineSeries.js.map +1 -1
  368. package/.internal/charts/xy/series/StepLineSeries.js +114 -131
  369. package/.internal/charts/xy/series/StepLineSeries.js.map +1 -1
  370. package/.internal/charts/xy/series/XYSeries.d.ts +1 -1
  371. package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
  372. package/.internal/charts/xy/series/XYSeries.js +939 -1222
  373. package/.internal/charts/xy/series/XYSeries.js.map +1 -1
  374. package/.internal/core/Classes.d.ts +11 -7
  375. package/.internal/core/Classes.d.ts.map +1 -1
  376. package/.internal/core/Classes.js.map +1 -1
  377. package/.internal/core/Registry.d.ts.map +1 -1
  378. package/.internal/core/Registry.js +6 -8
  379. package/.internal/core/Registry.js.map +1 -1
  380. package/.internal/core/Root.d.ts +20 -0
  381. package/.internal/core/Root.d.ts.map +1 -1
  382. package/.internal/core/Root.js +1006 -1241
  383. package/.internal/core/Root.js.map +1 -1
  384. package/.internal/core/Theme.js +38 -67
  385. package/.internal/core/Theme.js.map +1 -1
  386. package/.internal/core/render/Bullet.js +34 -49
  387. package/.internal/core/render/Bullet.js.map +1 -1
  388. package/.internal/core/render/Button.js +47 -64
  389. package/.internal/core/render/Button.js.map +1 -1
  390. package/.internal/core/render/Chart.js +20 -25
  391. package/.internal/core/render/Chart.js.map +1 -1
  392. package/.internal/core/render/Circle.js +24 -41
  393. package/.internal/core/render/Circle.js.map +1 -1
  394. package/.internal/core/render/Component.js +239 -384
  395. package/.internal/core/render/Component.js.map +1 -1
  396. package/.internal/core/render/Container.d.ts.map +1 -1
  397. package/.internal/core/render/Container.js +444 -548
  398. package/.internal/core/render/Container.js.map +1 -1
  399. package/.internal/core/render/Ellipse.js +24 -41
  400. package/.internal/core/render/Ellipse.js.map +1 -1
  401. package/.internal/core/render/Graphics.d.ts.map +1 -1
  402. package/.internal/core/render/Graphics.js +197 -215
  403. package/.internal/core/render/Graphics.js.map +1 -1
  404. package/.internal/core/render/GridLayout.js +102 -125
  405. package/.internal/core/render/GridLayout.js.map +1 -1
  406. package/.internal/core/render/HeatLegend.js +129 -154
  407. package/.internal/core/render/HeatLegend.js.map +1 -1
  408. package/.internal/core/render/HorizontalLayout.js +79 -91
  409. package/.internal/core/render/HorizontalLayout.js.map +1 -1
  410. package/.internal/core/render/Label.js +109 -150
  411. package/.internal/core/render/Label.js.map +1 -1
  412. package/.internal/core/render/Layout.js +14 -21
  413. package/.internal/core/render/Layout.js.map +1 -1
  414. package/.internal/core/render/Legend.js +230 -282
  415. package/.internal/core/render/Legend.js.map +1 -1
  416. package/.internal/core/render/Line.js +37 -54
  417. package/.internal/core/render/Line.js.map +1 -1
  418. package/.internal/core/render/MonotoneXTension.js +58 -85
  419. package/.internal/core/render/MonotoneXTension.js.map +1 -1
  420. package/.internal/core/render/MonotoneYTension.js +59 -88
  421. package/.internal/core/render/MonotoneYTension.js.map +1 -1
  422. package/.internal/core/render/Picture.js +92 -113
  423. package/.internal/core/render/Picture.js.map +1 -1
  424. package/.internal/core/render/PointedRectangle.js +94 -111
  425. package/.internal/core/render/PointedRectangle.js.map +1 -1
  426. package/.internal/core/render/RadialLabel.js +119 -158
  427. package/.internal/core/render/RadialLabel.js.map +1 -1
  428. package/.internal/core/render/RadialText.js +47 -62
  429. package/.internal/core/render/RadialText.js.map +1 -1
  430. package/.internal/core/render/Rectangle.js +31 -58
  431. package/.internal/core/render/Rectangle.js.map +1 -1
  432. package/.internal/core/render/RoundedRectangle.js +55 -72
  433. package/.internal/core/render/RoundedRectangle.js.map +1 -1
  434. package/.internal/core/render/Scrollbar.js +292 -349
  435. package/.internal/core/render/Scrollbar.js.map +1 -1
  436. package/.internal/core/render/SerialChart.js +64 -85
  437. package/.internal/core/render/SerialChart.js.map +1 -1
  438. package/.internal/core/render/Series.js +472 -660
  439. package/.internal/core/render/Series.js.map +1 -1
  440. package/.internal/core/render/Slice.js +83 -103
  441. package/.internal/core/render/Slice.js.map +1 -1
  442. package/.internal/core/render/Slider.js +25 -42
  443. package/.internal/core/render/Slider.js.map +1 -1
  444. package/.internal/core/render/Sprite.d.ts +17 -1
  445. package/.internal/core/render/Sprite.d.ts.map +1 -1
  446. package/.internal/core/render/Sprite.js +1307 -1777
  447. package/.internal/core/render/Sprite.js.map +1 -1
  448. package/.internal/core/render/SpriteResizer.js +157 -199
  449. package/.internal/core/render/SpriteResizer.js.map +1 -1
  450. package/.internal/core/render/Star.js +37 -54
  451. package/.internal/core/render/Star.js.map +1 -1
  452. package/.internal/core/render/Text.d.ts.map +1 -1
  453. package/.internal/core/render/Text.js +145 -182
  454. package/.internal/core/render/Text.js.map +1 -1
  455. package/.internal/core/render/Tick.js +14 -21
  456. package/.internal/core/render/Tick.js.map +1 -1
  457. package/.internal/core/render/Tooltip.d.ts +0 -1
  458. package/.internal/core/render/Tooltip.d.ts.map +1 -1
  459. package/.internal/core/render/Tooltip.js +272 -333
  460. package/.internal/core/render/Tooltip.js.map +1 -1
  461. package/.internal/core/render/Triangle.js +38 -65
  462. package/.internal/core/render/Triangle.js.map +1 -1
  463. package/.internal/core/render/VerticalLayout.js +79 -91
  464. package/.internal/core/render/VerticalLayout.js.map +1 -1
  465. package/.internal/core/render/backend/CanvasRenderer.d.ts +2 -2
  466. package/.internal/core/render/backend/CanvasRenderer.d.ts.map +1 -1
  467. package/.internal/core/render/backend/CanvasRenderer.js +2806 -3721
  468. package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
  469. package/.internal/core/render/backend/Renderer.d.ts +1 -0
  470. package/.internal/core/render/backend/Renderer.d.ts.map +1 -1
  471. package/.internal/core/render/backend/Renderer.js.map +1 -1
  472. package/.internal/core/render/gradients/Gradient.js +45 -72
  473. package/.internal/core/render/gradients/Gradient.js.map +1 -1
  474. package/.internal/core/render/gradients/LinearGradient.js +53 -65
  475. package/.internal/core/render/gradients/LinearGradient.js.map +1 -1
  476. package/.internal/core/render/gradients/RadialGradient.js +69 -81
  477. package/.internal/core/render/gradients/RadialGradient.js.map +1 -1
  478. package/.internal/core/render/patterns/CirclePattern.js +64 -81
  479. package/.internal/core/render/patterns/CirclePattern.js.map +1 -1
  480. package/.internal/core/render/patterns/LinePattern.js +49 -66
  481. package/.internal/core/render/patterns/LinePattern.js.map +1 -1
  482. package/.internal/core/render/patterns/PathPattern.js +72 -89
  483. package/.internal/core/render/patterns/PathPattern.js.map +1 -1
  484. package/.internal/core/render/patterns/Pattern.js +54 -83
  485. package/.internal/core/render/patterns/Pattern.js.map +1 -1
  486. package/.internal/core/render/patterns/PicturePattern.js +69 -90
  487. package/.internal/core/render/patterns/PicturePattern.js.map +1 -1
  488. package/.internal/core/render/patterns/RectanglePattern.js +65 -82
  489. package/.internal/core/render/patterns/RectanglePattern.js.map +1 -1
  490. package/.internal/core/util/Animation.js +102 -151
  491. package/.internal/core/util/Animation.js.map +1 -1
  492. package/.internal/core/util/Array.js +48 -49
  493. package/.internal/core/util/Array.js.map +1 -1
  494. package/.internal/core/util/AsyncPending.js +15 -15
  495. package/.internal/core/util/AsyncPending.js.map +1 -1
  496. package/.internal/core/util/Benchmark.js +37 -55
  497. package/.internal/core/util/Benchmark.js.map +1 -1
  498. package/.internal/core/util/Children.js +42 -67
  499. package/.internal/core/util/Children.js.map +1 -1
  500. package/.internal/core/util/Color.js +110 -206
  501. package/.internal/core/util/Color.js.map +1 -1
  502. package/.internal/core/util/ColorSet.js +73 -110
  503. package/.internal/core/util/ColorSet.js.map +1 -1
  504. package/.internal/core/util/Counter.js +13 -25
  505. package/.internal/core/util/Counter.js.map +1 -1
  506. package/.internal/core/util/Data.js +28 -70
  507. package/.internal/core/util/Data.js.map +1 -1
  508. package/.internal/core/util/DataParser.js +145 -178
  509. package/.internal/core/util/DataParser.js.map +1 -1
  510. package/.internal/core/util/DataProcessor.js +89 -144
  511. package/.internal/core/util/DataProcessor.js.map +1 -1
  512. package/.internal/core/util/DateFormatter.d.ts.map +1 -1
  513. package/.internal/core/util/DateFormatter.js +795 -901
  514. package/.internal/core/util/DateFormatter.js.map +1 -1
  515. package/.internal/core/util/Disposer.js +82 -159
  516. package/.internal/core/util/Disposer.js.map +1 -1
  517. package/.internal/core/util/Draw.js +27 -27
  518. package/.internal/core/util/Draw.js.map +1 -1
  519. package/.internal/core/util/DurationFormatter.js +343 -409
  520. package/.internal/core/util/DurationFormatter.js.map +1 -1
  521. package/.internal/core/util/Ease.js +6 -6
  522. package/.internal/core/util/Entity.d.ts +5 -1
  523. package/.internal/core/util/Entity.d.ts.map +1 -1
  524. package/.internal/core/util/Entity.js +869 -1442
  525. package/.internal/core/util/Entity.js.map +1 -1
  526. package/.internal/core/util/EventDispatcher.js +216 -346
  527. package/.internal/core/util/EventDispatcher.js.map +1 -1
  528. package/.internal/core/util/InterfaceColors.js +14 -21
  529. package/.internal/core/util/InterfaceColors.js.map +1 -1
  530. package/.internal/core/util/Language.js +63 -123
  531. package/.internal/core/util/Language.js.map +1 -1
  532. package/.internal/core/util/List.js +244 -441
  533. package/.internal/core/util/List.js.map +1 -1
  534. package/.internal/core/util/Math.js +35 -35
  535. package/.internal/core/util/Math.js.map +1 -1
  536. package/.internal/core/util/Matrix.js +56 -95
  537. package/.internal/core/util/Matrix.js.map +1 -1
  538. package/.internal/core/util/Modal.js +103 -147
  539. package/.internal/core/util/Modal.js.map +1 -1
  540. package/.internal/core/util/Net.js +19 -19
  541. package/.internal/core/util/Net.js.map +1 -1
  542. package/.internal/core/util/NumberFormatter.js +393 -442
  543. package/.internal/core/util/NumberFormatter.js.map +1 -1
  544. package/.internal/core/util/Object.js +4 -4
  545. package/.internal/core/util/Object.js.map +1 -1
  546. package/.internal/core/util/Order.js +5 -5
  547. package/.internal/core/util/Order.js.map +1 -1
  548. package/.internal/core/util/Percent.js +65 -90
  549. package/.internal/core/util/Percent.js.map +1 -1
  550. package/.internal/core/util/PopulateString.js +28 -28
  551. package/.internal/core/util/PopulateString.js.map +1 -1
  552. package/.internal/core/util/ResizeSensor.js +76 -116
  553. package/.internal/core/util/ResizeSensor.js.map +1 -1
  554. package/.internal/core/util/States.js +116 -188
  555. package/.internal/core/util/States.js.map +1 -1
  556. package/.internal/core/util/Template.js +203 -364
  557. package/.internal/core/util/Template.js.map +1 -1
  558. package/.internal/core/util/TextFormatter.js +148 -184
  559. package/.internal/core/util/TextFormatter.js.map +1 -1
  560. package/.internal/core/util/Throttler.js +18 -26
  561. package/.internal/core/util/Throttler.js.map +1 -1
  562. package/.internal/core/util/Time.d.ts.map +1 -1
  563. package/.internal/core/util/Time.js +61 -63
  564. package/.internal/core/util/Time.js.map +1 -1
  565. package/.internal/core/util/Timezone.js +35 -57
  566. package/.internal/core/util/Timezone.js.map +1 -1
  567. package/.internal/core/util/Type.js +12 -12
  568. package/.internal/core/util/Type.js.map +1 -1
  569. package/.internal/core/util/Utils.d.ts +17 -0
  570. package/.internal/core/util/Utils.d.ts.map +1 -1
  571. package/.internal/core/util/Utils.js +166 -182
  572. package/.internal/core/util/Utils.js.map +1 -1
  573. package/.internal/core/util/Value.js +14 -30
  574. package/.internal/core/util/Value.js.map +1 -1
  575. package/.internal/plugins/exporting/Annotator.js +139 -265
  576. package/.internal/plugins/exporting/Annotator.js.map +1 -1
  577. package/.internal/plugins/exporting/Exporting.js +1216 -1614
  578. package/.internal/plugins/exporting/Exporting.js.map +1 -1
  579. package/.internal/plugins/exporting/ExportingCSS.js +5 -5
  580. package/.internal/plugins/exporting/ExportingCSS.js.map +1 -1
  581. package/.internal/plugins/exporting/ExportingMenu.js +337 -405
  582. package/.internal/plugins/exporting/ExportingMenu.js.map +1 -1
  583. package/.internal/plugins/json/Classes-script.d.ts +16 -0
  584. package/.internal/plugins/json/Classes-script.d.ts.map +1 -1
  585. package/.internal/plugins/json/Classes-script.js +202 -194
  586. package/.internal/plugins/json/Classes-script.js.map +1 -1
  587. package/.internal/plugins/json/Classes.d.ts +16 -0
  588. package/.internal/plugins/json/Classes.d.ts.map +1 -1
  589. package/.internal/plugins/json/Classes.js +202 -194
  590. package/.internal/plugins/json/Classes.js.map +1 -1
  591. package/.internal/plugins/json/Json.d.ts +42 -2
  592. package/.internal/plugins/json/Json.d.ts.map +1 -1
  593. package/.internal/plugins/json/Json.js +391 -278
  594. package/.internal/plugins/json/Json.js.map +1 -1
  595. package/.internal/plugins/json/Serializer.d.ts +62 -0
  596. package/.internal/plugins/json/Serializer.d.ts.map +1 -0
  597. package/.internal/plugins/json/Serializer.js +137 -0
  598. package/.internal/plugins/json/Serializer.js.map +1 -0
  599. package/.internal/plugins/sliceGrouper/SliceGrouper.js +159 -202
  600. package/.internal/plugins/sliceGrouper/SliceGrouper.js.map +1 -1
  601. package/.internal/themes/AnimatedTheme.js +20 -32
  602. package/.internal/themes/AnimatedTheme.js.map +1 -1
  603. package/.internal/themes/DarkTheme.js +28 -40
  604. package/.internal/themes/DarkTheme.js.map +1 -1
  605. package/.internal/themes/DatavizTheme.js +12 -24
  606. package/.internal/themes/DatavizTheme.js.map +1 -1
  607. package/.internal/themes/DefaultTheme.d.ts.map +1 -1
  608. package/.internal/themes/DefaultTheme.js +803 -813
  609. package/.internal/themes/DefaultTheme.js.map +1 -1
  610. package/.internal/themes/FrozenTheme.js +19 -31
  611. package/.internal/themes/FrozenTheme.js.map +1 -1
  612. package/.internal/themes/KellyTheme.js +31 -43
  613. package/.internal/themes/KellyTheme.js.map +1 -1
  614. package/.internal/themes/MaterialTheme.js +28 -40
  615. package/.internal/themes/MaterialTheme.js.map +1 -1
  616. package/.internal/themes/MicrochartTheme.js +67 -79
  617. package/.internal/themes/MicrochartTheme.js.map +1 -1
  618. package/.internal/themes/MoonriseTheme.js +19 -31
  619. package/.internal/themes/MoonriseTheme.js.map +1 -1
  620. package/.internal/themes/ResponsiveTheme.js +613 -790
  621. package/.internal/themes/ResponsiveTheme.js.map +1 -1
  622. package/.internal/themes/SpiritedTheme.js +19 -31
  623. package/.internal/themes/SpiritedTheme.js.map +1 -1
  624. package/CHANGELOG.md +28 -0
  625. package/examples/javascript/flow-chord/package.json +1 -1
  626. package/examples/javascript/flow-chord-directed/package.json +1 -1
  627. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  628. package/examples/javascript/flow-sankey/package.json +1 -1
  629. package/examples/javascript/gauge/package.json +1 -1
  630. package/examples/javascript/gauge-bands/index.js +3 -1
  631. package/examples/javascript/gauge-bands/package.json +1 -1
  632. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  633. package/examples/javascript/hierarchy-pack/package.json +1 -1
  634. package/examples/javascript/hierarchy-partition/package.json +1 -1
  635. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  636. package/examples/javascript/hierarchy-tree/package.json +1 -1
  637. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  638. package/examples/javascript/jest/package.json +1 -1
  639. package/examples/javascript/{json → json-pie}/README.md +0 -0
  640. package/examples/javascript/{json → json-pie}/index.css +0 -0
  641. package/examples/javascript/json-pie/index.html +12 -0
  642. package/examples/javascript/json-pie/index.js +77 -0
  643. package/examples/javascript/json-pie/package.json +16 -0
  644. package/examples/javascript/{json → json-pie}/webpack.config.js +0 -0
  645. package/examples/{typescript/json → javascript/json-xy}/README.md +0 -0
  646. package/examples/{typescript/json → javascript/json-xy}/index.css +0 -0
  647. package/examples/{typescript/json → javascript/json-xy}/index.html +1 -1
  648. package/examples/javascript/json-xy/index.js +203 -0
  649. package/examples/javascript/{json → json-xy}/package.json +2 -2
  650. package/examples/javascript/json-xy/webpack.config.js +38 -0
  651. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  652. package/examples/javascript/map-day-and-night/package.json +1 -1
  653. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  654. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  655. package/examples/javascript/map-with-bubbles/package.json +1 -1
  656. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  657. package/examples/javascript/misc-40-charts/package.json +1 -1
  658. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  659. package/examples/javascript/pie-chart/package.json +1 -1
  660. package/examples/javascript/pie-donut-chart/package.json +1 -1
  661. package/examples/javascript/pie-variable-radius/package.json +1 -1
  662. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  663. package/examples/javascript/radar-heat-map/index.js +33 -33
  664. package/examples/javascript/radar-heat-map/package.json +1 -1
  665. package/examples/javascript/radar-line/package.json +1 -1
  666. package/examples/javascript/radar-time-line/package.json +1 -1
  667. package/examples/javascript/sliced-funnel/package.json +1 -1
  668. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  669. package/examples/javascript/sliced-pyramid/package.json +1 -1
  670. package/examples/javascript/stock-chart/package.json +1 -1
  671. package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
  672. package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
  673. package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
  674. package/examples/javascript/stock-chart-intraday/package.json +1 -1
  675. package/examples/javascript/stock-chart-live/package.json +1 -1
  676. package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
  677. package/examples/javascript/venn-diagram/package.json +1 -1
  678. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  679. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  680. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  681. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  682. package/examples/javascript/xy-bubble/package.json +1 -1
  683. package/examples/javascript/xy-candlestick/package.json +1 -1
  684. package/examples/javascript/xy-clustered-column/package.json +1 -1
  685. package/examples/javascript/xy-column/package.json +1 -1
  686. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  687. package/examples/javascript/xy-data-grouping/package.json +1 -1
  688. package/examples/javascript/xy-draggable-range/package.json +1 -1
  689. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  690. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  691. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  692. package/examples/javascript/xy-line/package.json +1 -1
  693. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  694. package/examples/javascript/xy-live-data/package.json +1 -1
  695. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  696. package/examples/javascript/xy-ohlc/package.json +1 -1
  697. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  698. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  699. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  700. package/examples/javascript/xy-stacked-column/package.json +1 -1
  701. package/examples/javascript/xy-stacked-step/package.json +1 -1
  702. package/examples/javascript/xy-stock/package.json +1 -1
  703. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  704. package/examples/typescript/flow-chord/package.json +1 -1
  705. package/examples/typescript/flow-chord/tsconfig.json +1 -1
  706. package/examples/typescript/flow-chord-directed/package.json +1 -1
  707. package/examples/typescript/flow-chord-directed/tsconfig.json +1 -1
  708. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  709. package/examples/typescript/flow-chord-non-ribbon/tsconfig.json +1 -1
  710. package/examples/typescript/flow-sankey/package.json +1 -1
  711. package/examples/typescript/flow-sankey/tsconfig.json +1 -1
  712. package/examples/typescript/gauge/package.json +1 -1
  713. package/examples/typescript/gauge/tsconfig.json +1 -1
  714. package/examples/typescript/gauge-bands/index.ts +3 -1
  715. package/examples/typescript/gauge-bands/package.json +1 -1
  716. package/examples/typescript/gauge-bands/tsconfig.json +1 -1
  717. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  718. package/examples/typescript/hierarchy-force-directed/tsconfig.json +1 -1
  719. package/examples/typescript/hierarchy-pack/package.json +1 -1
  720. package/examples/typescript/hierarchy-pack/tsconfig.json +1 -1
  721. package/examples/typescript/hierarchy-partition/package.json +1 -1
  722. package/examples/typescript/hierarchy-partition/tsconfig.json +1 -1
  723. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  724. package/examples/typescript/hierarchy-sunburst/tsconfig.json +1 -1
  725. package/examples/typescript/hierarchy-tree/package.json +1 -1
  726. package/examples/typescript/hierarchy-tree/tsconfig.json +1 -1
  727. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  728. package/examples/typescript/hierarchy-treemap/tsconfig.json +1 -1
  729. package/examples/typescript/jest/package.json +1 -1
  730. package/examples/typescript/jest/tsconfig.json +1 -1
  731. package/examples/typescript/json-pie/README.md +6 -0
  732. package/examples/typescript/json-pie/index.css +11 -0
  733. package/examples/typescript/json-pie/index.html +12 -0
  734. package/examples/typescript/json-pie/index.ts +77 -0
  735. package/examples/typescript/json-pie/package.json +18 -0
  736. package/examples/typescript/{json → json-pie}/tsconfig.json +1 -1
  737. package/examples/typescript/{json → json-pie}/webpack.config.js +0 -0
  738. package/examples/typescript/json-xy/README.md +6 -0
  739. package/examples/typescript/json-xy/index.css +11 -0
  740. package/examples/{javascript/json → typescript/json-xy}/index.html +1 -1
  741. package/examples/typescript/json-xy/index.ts +203 -0
  742. package/examples/typescript/{json → json-xy}/package.json +2 -2
  743. package/examples/typescript/json-xy/tsconfig.json +12 -0
  744. package/examples/typescript/json-xy/webpack.config.js +45 -0
  745. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  746. package/examples/typescript/map-animating-along-lines/tsconfig.json +1 -1
  747. package/examples/typescript/map-day-and-night/package.json +1 -1
  748. package/examples/typescript/map-day-and-night/tsconfig.json +1 -1
  749. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  750. package/examples/typescript/map-globe-rotate-to-country/tsconfig.json +1 -1
  751. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  752. package/examples/typescript/map-globe-with-projected-circles/tsconfig.json +1 -1
  753. package/examples/typescript/map-with-bubbles/package.json +1 -1
  754. package/examples/typescript/map-with-bubbles/tsconfig.json +1 -1
  755. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  756. package/examples/typescript/map-zoom-to-country/tsconfig.json +1 -1
  757. package/examples/typescript/misc-40-charts/package.json +1 -1
  758. package/examples/typescript/misc-40-charts/tsconfig.json +1 -1
  759. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  760. package/examples/typescript/misc-microchart-grid/tsconfig.json +1 -1
  761. package/examples/typescript/pie-chart/package.json +1 -1
  762. package/examples/typescript/pie-chart/tsconfig.json +1 -1
  763. package/examples/typescript/pie-donut-chart/package.json +1 -1
  764. package/examples/typescript/pie-donut-chart/tsconfig.json +1 -1
  765. package/examples/typescript/pie-variable-radius/package.json +1 -1
  766. package/examples/typescript/pie-variable-radius/tsconfig.json +1 -1
  767. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  768. package/examples/typescript/radar-column-iwatch-style/tsconfig.json +1 -1
  769. package/examples/typescript/radar-heat-map/index.ts +33 -33
  770. package/examples/typescript/radar-heat-map/package.json +1 -1
  771. package/examples/typescript/radar-heat-map/tsconfig.json +1 -1
  772. package/examples/typescript/radar-line/package.json +1 -1
  773. package/examples/typescript/radar-line/tsconfig.json +1 -1
  774. package/examples/typescript/radar-time-line/package.json +1 -1
  775. package/examples/typescript/radar-time-line/tsconfig.json +1 -1
  776. package/examples/typescript/sliced-funnel/package.json +1 -1
  777. package/examples/typescript/sliced-funnel/tsconfig.json +1 -1
  778. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  779. package/examples/typescript/sliced-pictorial-stacked/tsconfig.json +1 -1
  780. package/examples/typescript/sliced-pyramid/package.json +1 -1
  781. package/examples/typescript/sliced-pyramid/tsconfig.json +1 -1
  782. package/examples/typescript/stock-chart/package.json +1 -1
  783. package/examples/typescript/stock-chart/tsconfig.json +1 -1
  784. package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
  785. package/examples/typescript/stock-chart-comparing-stocks/tsconfig.json +1 -1
  786. package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
  787. package/examples/typescript/stock-chart-data-granularity/tsconfig.json +1 -1
  788. package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
  789. package/examples/typescript/stock-chart-data-grouping/tsconfig.json +1 -1
  790. package/examples/typescript/stock-chart-intraday/package.json +1 -1
  791. package/examples/typescript/stock-chart-intraday/tsconfig.json +1 -1
  792. package/examples/typescript/stock-chart-live/package.json +1 -1
  793. package/examples/typescript/stock-chart-live/tsconfig.json +1 -1
  794. package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
  795. package/examples/typescript/stock-chart-volume-separate-panel/tsconfig.json +1 -1
  796. package/examples/typescript/venn-diagram/package.json +1 -1
  797. package/examples/typescript/venn-diagram/tsconfig.json +1 -1
  798. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  799. package/examples/typescript/wordcloud-with-data/tsconfig.json +1 -1
  800. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  801. package/examples/typescript/wordcloud-with-text/tsconfig.json +1 -1
  802. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  803. package/examples/typescript/xy-100-percent-stacked-column/tsconfig.json +1 -1
  804. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  805. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/tsconfig.json +1 -1
  806. package/examples/typescript/xy-bubble/package.json +1 -1
  807. package/examples/typescript/xy-bubble/tsconfig.json +1 -1
  808. package/examples/typescript/xy-candlestick/package.json +1 -1
  809. package/examples/typescript/xy-candlestick/tsconfig.json +1 -1
  810. package/examples/typescript/xy-clustered-column/package.json +1 -1
  811. package/examples/typescript/xy-clustered-column/tsconfig.json +1 -1
  812. package/examples/typescript/xy-column/package.json +1 -1
  813. package/examples/typescript/xy-column/tsconfig.json +1 -1
  814. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  815. package/examples/typescript/xy-comparing-series-google-analytics-style/tsconfig.json +1 -1
  816. package/examples/typescript/xy-data-grouping/package.json +1 -1
  817. package/examples/typescript/xy-data-grouping/tsconfig.json +1 -1
  818. package/examples/typescript/xy-draggable-range/package.json +1 -1
  819. package/examples/typescript/xy-draggable-range/tsconfig.json +1 -1
  820. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  821. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/tsconfig.json +1 -1
  822. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  823. package/examples/typescript/xy-dumbbell plot/tsconfig.json +1 -1
  824. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  825. package/examples/typescript/xy-evenly-spaced-date-axis/tsconfig.json +1 -1
  826. package/examples/typescript/xy-line/package.json +1 -1
  827. package/examples/typescript/xy-line/tsconfig.json +1 -1
  828. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  829. package/examples/typescript/xy-line-highlight-on-legend-hover/tsconfig.json +1 -1
  830. package/examples/typescript/xy-live-data/package.json +1 -1
  831. package/examples/typescript/xy-live-data/tsconfig.json +1 -1
  832. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  833. package/examples/typescript/xy-multiple-synced-value-axes/tsconfig.json +1 -1
  834. package/examples/typescript/xy-ohlc/package.json +1 -1
  835. package/examples/typescript/xy-ohlc/tsconfig.json +1 -1
  836. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  837. package/examples/typescript/xy-real-time-data-sorting/tsconfig.json +1 -1
  838. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  839. package/examples/typescript/xy-smoothed-line/tsconfig.json +1 -1
  840. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  841. package/examples/typescript/xy-stacked-and-clustered-column/tsconfig.json +1 -1
  842. package/examples/typescript/xy-stacked-column/package.json +1 -1
  843. package/examples/typescript/xy-stacked-column/tsconfig.json +1 -1
  844. package/examples/typescript/xy-stacked-step/package.json +1 -1
  845. package/examples/typescript/xy-stacked-step/tsconfig.json +1 -1
  846. package/examples/typescript/xy-stock/package.json +1 -1
  847. package/examples/typescript/xy-stock/tsconfig.json +1 -1
  848. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  849. package/examples/typescript/xy-stock-comparing/tsconfig.json +1 -1
  850. package/locales/ar.js +1 -1
  851. package/locales/bg_BG.js +1 -1
  852. package/locales/bs_BA.js +1 -1
  853. package/locales/ca_ES.js +1 -1
  854. package/locales/cs_CZ.js +1 -1
  855. package/locales/da_DK.js +1 -1
  856. package/locales/el_GR.js +1 -1
  857. package/locales/en.js +1 -1
  858. package/locales/en_CA.js +1 -1
  859. package/locales/en_US.js +1 -1
  860. package/locales/et_EE.js +1 -1
  861. package/locales/fi_FI.js +1 -1
  862. package/locales/fr_FR.js +1 -1
  863. package/locales/he_IL.js +1 -1
  864. package/locales/hi_IN.js +1 -1
  865. package/locales/hr_HR.js +1 -1
  866. package/locales/hu_HU.js +1 -1
  867. package/locales/id_ID.js +1 -1
  868. package/locales/ja_JP.js +1 -1
  869. package/locales/ko_KR.js +1 -1
  870. package/locales/lv_LV.js +1 -1
  871. package/locales/nb_NO.js +1 -1
  872. package/locales/nl_NL.js +1 -1
  873. package/locales/pl_PL.js +1 -1
  874. package/locales/ro_RO.js +1 -1
  875. package/locales/sr_RS.js +1 -1
  876. package/locales/th_TH.js +1 -1
  877. package/locales/tr_TR.js +1 -1
  878. package/locales/vi_VN.js +1 -1
  879. package/locales/zh_Hans.js +1 -1
  880. package/locales/zh_Hant.js +1 -1
  881. package/package.json +1 -1
  882. package/plugins/json.d.ts +1 -0
  883. package/plugins/json.d.ts.map +1 -1
  884. package/plugins/json.js +1 -0
  885. package/plugins/json.js.map +1 -1
  886. package/examples/javascript/json/index.js +0 -206
  887. package/examples/typescript/json/index.ts +0 -206
@@ -1 +1 @@
1
- {"version":3,"file":"Exporting.js","sourceRoot":"","sources":["../../../../../src/.internal/plugins/exporting/Exporting.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,MAAM,EAAkD,MAAM,wBAAwB,CAAA;AAC/F,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEjD,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAClD,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAehD;;;;GAIG;AACH,IAAI,cAA4B,CAAC;AAEjC;;;;;;;GAOG;AACH,SAAe,QAAQ;;;;;wBACd,qBAAM,OAAO,CAAC,GAAG,CAAC;wBACzB,MAAM,CAAC,iCAAiC,CAAC,0BAA0B,CAAC;wBACpE,MAAM,CAAC,iCAAiC,CAAC,qBAAqB,CAAC;qBAC/D,CAAC,EAAA;;oBAHE,CAAC,GAAG,SAGN;oBACE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBACf,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBACf,MAAM,GAAQ,MAAM,CAAC;oBAC3B,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;oBACtC,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC;oBACvC,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC;oBAChC,sBAAO,OAAO,EAAC;;;;CACf;AAskBD;;;;GAIG;AACH;IAA+B,6BAAM;IAArC;;IAqsDA,CAAC;IA7rDA,+DAA+D;IAC/D,iCAAiC;;;;;eAEjC;YACC,iBAAM,SAAS,WAAE,CAAC;YAClB,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAC3C,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACxC,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YACzC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YACtC,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAC1C,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YACvC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7E,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/E,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,kBAAkB,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;YACtI,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;YACtE,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACvG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3E,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1E,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACrG,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;YAE7E,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;;;;;;eAED;YACC,iBAAM,cAAc,WAAE,CAAC;YAEvB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACzB,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC9B,IAAI,IAAI,EAAE;oBACT,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;oBAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC3B;aACD;QACF,CAAC;;;;;;eAED,UAA4B,MAAwB,EAAE,OAAiC;YACtF,IAAM,UAAU,GAAQ,OAAO,CAAC,IAAI,CAAO,IAAK,CAAC,GAAG,CAAC,MAAM,GAAG,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9E,IAAI,OAAO,EAAE;gBACZ,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,UAAC,GAAG,EAAE,KAAK;oBAChC,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACzB,CAAC,CAAC,CAAC;aACH;YACD,OAAO,UAAU,CAAC;QACnB,CAAC;;IAED;;;;;OAKG;;;;;eACH,UAAsB,MAAwB,EAAE,aAAuC;;;;;;4BAChF,GAAG,GAAG,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;4BAC3C,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;4BACvD,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;4BAC9D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE;gCACvC,IAAI,EAAE,iBAAiB;gCACvB,MAAM,EAAE,MAAM;gCACd,OAAO,EAAE,OAAO;gCAChB,QAAQ,EAAE,QAAQ;gCAClB,MAAM,EAAE,IAAI;6BACZ,CAAC,CAAC;4BACS,qBAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAA;;4BAAxC,GAAG,GAAG,SAAkC;4BAC9C,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,OAAO,IAA2B,OAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;;;;;SACpF;;IAED;;;;OAIG;;;;;eACH,UAAmB,aAAsC;;;;;;4BAClD,OAAO,GAA2B,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;4BACvF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE;gCACpC,IAAI,EAAE,cAAc;gCACpB,MAAM,EAAE,OAAO;gCACf,OAAO,EAAE,OAAO;gCAChB,MAAM,EAAE,IAAI;6BACZ,CAAC,CAAC;4BACS,qBAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,IAAI,KAAK,EAAE,OAAO,CAAC,EAAA;;4BAA9D,GAAG,GAAG,SAAwD;4BACpE,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;;;;;SACpD;;IAED;;;;;;OAMG;;;;;eACH,UAAoB,MAAwB,EAAE,aAAuC;;;;oBAC9E,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;oBAC9D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE;wBACrC,IAAI,EAAE,eAAe;wBACrB,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE,OAAO;wBAChB,MAAM,EAAE,IAAI;qBACZ,CAAC,CAAC;oBAEH,oDAAoD;oBACpD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;oBAEvB,OAAO,GAA6B,EAAE,CAAC;oBAC3C,QAAQ,MAAM,EAAE;wBACf,KAAK,KAAK,CAAC;wBACX,KAAK,KAAK;4BACT,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;4BAC5C,MAAM;wBACP,KAAK,MAAM;4BACV,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;4BACnC,MAAM;wBACP,KAAK,KAAK;4BACT,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;4BAClC,MAAM;wBACP,KAAK,MAAM;4BACV,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;4BACnC,MAAM;wBACP,KAAK,MAAM;4BACV,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;4BACnC,MAAM;wBACP,KAAK,KAAK;4BACT,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;4BAClC,MAAM;wBACP,KAAK,SAAS;4BACb,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;4BACtC,MAAM;qBACP;oBACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE;wBACtC,IAAI,EAAE,gBAAgB;wBACtB,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE,OAAO;wBAChB,MAAM,EAAE,IAAI;qBACZ,CAAC,CAAC;oBACH,sBAAO,OAAO,EAAC;;;SACf;;IAED;;;;OAIG;IAEH;;;;;;OAMG;;;;;eACH,UAAyB,MAA6B,EAAE,aAAsC;;;;;;4BACvF,OAAO,GAAQ,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;4BACpD,qBAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAA;;4BAAtC,MAAM,GAAG,SAA6B;4BACtC,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;4BACjF,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;4BAC3B,sBAAO,IAAI,EAAC;;;;SACZ;;IAED;;;;;OAKG;;;;;eACH,UAA0B,aAAsC;;;;;;4BACzD,OAAO,GAAQ,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;4BACtD,qBAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAA;;4BAAtC,MAAM,GAAG,SAA6B;4BACtC,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;4BACnF,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;4BAC3B,sBAAO,IAAI,EAAC;;;;SACZ;;IAED;;;;;OAKG;;;;;eACH,UAAuB,OAA+B;;;;oBAC/C,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACzF,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;oBAG5C,UAAU,GAAG,CAAC,CAAC;oBACf,SAAS,GAAG,CAAC,CAAC;oBACd,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC;oBAC/B,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC;oBACjC,UAAU,GAAG,CAAC,CAAC;oBACf,WAAW,GAAG,CAAC,CAAC;oBAEd,MAAM,GAAU,EAAE,CAAC;oBAEzB,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,UAAC,SAAS;wBAElC,iBAAiB;wBACjB,IAAI,KAA4B,CAAC;wBAEjC,IAAI,SAAS,YAAY,IAAI,EAAE;4BAC9B,KAAK,GAAG;gCACP,MAAM,EAAE,SAAS;gCACjB,QAAQ,EAAE,QAAQ;6BAClB,CAAC;yBAEF;6BAAM;4BACN,KAAK,GAA0B,SAAS,CAAC;yBACzC;wBAED,eAAe;wBACf,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC;wBAC5C,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;wBACvC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;wBAC3C,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;wBAC7C,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;wBAEzC,IAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;wBAEpG,IAAM,UAAU,GAAG,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC;wBAC5E,IAAM,WAAW,GAAG,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC;wBAE9E,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,EAAE;4BAC5B,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;4BAC5E,SAAS,IAAI,WAAW,CAAC;yBAEzB;6BAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,OAAO,EAAE;4BACrC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;4BAC/E,UAAU,IAAI,UAAU,CAAC;yBAEzB;6BAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,MAAM,EAAE;4BACpC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;4BAC/E,UAAU,IAAI,UAAU,CAAC;yBAEzB;6BAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE;4BACvC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;4BAC5E,WAAW,IAAI,WAAW,CAAC;yBAC3B;wBAED,MAAM,CAAC,IAAI,CAAC;4BACX,MAAM,EAAE,WAAW;4BACnB,QAAQ,EAAE,KAAK,CAAC,QAAQ;4BACxB,IAAI,EAAE,KAAK,CAAC,UAAU;4BACtB,GAAG,EAAE,KAAK,CAAC,SAAS;4BACpB,KAAK,EAAE,UAAU;4BACjB,MAAM,EAAE,WAAW;yBACnB,CAAC,CAAC;oBAEJ,CAAC,CAAC,CAAC;oBAEG,SAAS,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAE7C,SAAS,CAAC,KAAK,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;oBACxD,SAAS,CAAC,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,WAAW,CAAC;oBAEpD,GAAG,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAE,CAAC;oBAGlC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;oBACnF,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;oBAE3D,IAAI,UAAU,EAAE;wBACf,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;wBACpD,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;qBACtD;oBAEG,IAAI,GAAG,UAAU,CAAC;oBAClB,GAAG,GAAG,SAAS,CAAC;oBAChB,KAAK,GAAG,IAAI,GAAG,WAAW,CAAC;oBAC3B,MAAM,GAAG,GAAG,GAAG,YAAY,CAAC;oBAEhC,gCAAgC;oBAChC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,UAAC,KAAK;wBACzB,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,EAAE;4BAC5B,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC;4BACpB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;yBAEtE;6BAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,OAAO,EAAE;4BACrC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;4BACvE,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;yBAErB;6BAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,MAAM,EAAE;4BACpC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC;4BACpB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;yBAEtE;6BAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE;4BACvC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;4BACzE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;yBACvB;wBAED,mCAAmC;oBACpC,CAAC,CAAC,CAAC;oBAEH,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;oBAEjD,sBAAO,SAAS,EAAC;;;SACjB;;IAED;;;;OAIG;IAEH;;;;;OAKG;;;;;eACH,UAAwB,aAAqC;;;;;;4BACrD,KAAA,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,GAAG,CAAA;4BAAG,KAAA,kBAAkB,CAAA;4BAAC,qBAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAA;gCAA9I,sBAAO,KAAmF,kBAAmB,SAAiC,EAAC,EAAC;;;;SAChJ;;IAED;;;;;OAKG;;;;;eACH,UAAqB,aAAqC;;;;;oBACnD,OAAO,GAAQ,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;oBACnE,sBAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,UAAC,IAAI,EAAE,KAAK;4BAC5F,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gCAC1B,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,UAAC,KAAK,EAAE,IAAI;oCAC/B,KAAK,CAAC,KAAK,CAAC,GAAG,KAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;gCAClE,CAAC,CAAC,CAAC;6BACH;4BACD,OAAO,KAAK,CAAC;wBACd,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAC;;;SACnB;;IAED;;;;OAIG;IAEH;;;;;OAKG;;;;;eACH,UAAuB,aAAoC;;;;;;4BACnD,KAAA,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,GAAG,CAAA;4BAAG,KAAA,kBAAkB,CAAA;4BAAC,qBAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAA;gCAA5I,sBAAO,KAAkF,kBAAmB,SAAgC,EAAC,EAAC;;;;SAC9I;;IAED;;;;;OAKG;;;;;eACH,UAAoB,aAAoC;;;;;oBACjD,OAAO,GAAQ,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;oBAG9D,GAAG,GAAG,EAAE,CAAC;oBAGT,EAAE,GAAG,EAAE,CAAC;oBACN,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;oBAGpC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBAE5C,0CAA0C;oBAC1C,IAAI,OAAO,CAAC,KAAK,EAAE;wBAGZ,oBAA4B,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;wBAElE,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,UAAC,GAAG,EAAE,GAAG;4BACxC,IAAI,OAAO,GAAG,EAAE,CAAC;4BACjB,IAAI,OAAO,CAAC,cAAc,EAAE;gCAC3B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;6BAClB;4BACD,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;gCAChD,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gCAC7B,OAAO,CAAC,IAAI,CAAC,KAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;6BACzE;4BACD,GAAG,IAAI,EAAE,GAAG,KAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;4BAC9D,EAAE,GAAG,IAAI,CAAC;wBACX,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC;4BACP,IAAI,EAAE,GAAG,iBAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;4BACpC,IAAI,EAAE,GAAG,iBAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;4BACpC,IAAI,EAAE,GAAG,EAAE,EAAE;gCACZ,OAAO,CAAC,CAAC,CAAC;6BACV;iCACI,IAAI,EAAE,GAAG,EAAE,EAAE;gCACjB,OAAO,CAAC,CAAA;6BACR;4BACD,OAAO,CAAC,CAAC;wBACV,CAAC,CAAC,CAAC;qBAEH;yBAEI;wBACJ,KAAS,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;4BAC5C,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;4BACvD,IAAI,OAAO,CAAC,OAAO,EAAE;gCACpB,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;6BACrB;iCACI;gCACJ,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC;6BAChB;4BACD,EAAE,GAAG,IAAI,CAAC;yBACV;wBAED,oBAAoB;wBACpB,IAAI,OAAO,CAAC,cAAc,EAAE;4BAC3B,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;yBACtE;qBACD;oBAED,sBAAO,GAAG,EAAC;;;SAEX;;IAED;;OAEG;;;;;eACH,UAAiB,GAAQ,EAAE,OAA6B,EAAE,UAAe,EAAE,IAAqB;YAAhG,iBAwDC;YAxD0E,qBAAA,EAAA,YAAqB;YAE/F,OAAO;YACP,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,GAAG,CAAC;YACzC,IAAI,KAAK,GAAU,EAAE,CAAC;YAEtB,cAAc;YACd,IAAI,CAAC,UAAU,EAAE;gBAChB,UAAU,GAAG,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,UAAC,GAAG,EAAE,KAAK;oBAC5B,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACzB,CAAC,CAAC,CAAC;aACH;YAED,oBAAoB;YACpB,IAAM,eAAe,GAAa,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;YAElE,wBAAwB;YACxB,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,UAAC,GAAG,EAAE,KAAK;gBAE1C,YAAY;gBACZ,IAAI,KAAK,GAAG,KAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;gBAE3D,2BAA2B;gBAC3B,4EAA4E;gBAC5E;;mBAEG;gBAEH,gBAAgB;gBAChB,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBAE3E,+BAA+B;gBAC/B,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC;gBACjB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAEhC,6BAA6B;gBAC7B,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,GAAG,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;oBACrF,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;iBAC1B;gBAED,cAAc;gBACd,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC;gBACP,IAAI,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACpC,IAAI,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACpC,IAAI,EAAE,GAAG,EAAE,EAAE;oBACZ,OAAO,CAAC,CAAC;iBACT;qBACI,IAAI,EAAE,GAAG,EAAE,EAAE;oBACjB,OAAO,CAAC,CAAC,CAAA;iBACT;gBACD,OAAO,CAAC,CAAC;YACV,CAAC,CAAC,CAAC;YAEH,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;;IAED;;;;OAIG;IAEH;;;;;OAKG;;;;;eACH,UAAwB,aAAqC;;;;;;4BACrD,KAAA,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,GAAG,CAAA;4BAAG,KAAA,kBAAkB,CAAA;4BAAC,qBAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAA;gCAA9I,sBAAO,KAAmF,kBAAmB,SAAiC,EAAC,EAAC;;;;SAChJ;;IAED;;;;;OAKG;;;;;eACH,UAAqB,aAAqC;;;;;oBACnD,OAAO,GAAQ,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;oBAG/D,IAAI,GAAG,SAAS,CAAC;oBACrB,IAAI,OAAO,CAAC,UAAU,EAAE;wBACvB,IAAI,GAAG,iBAAiB,GAAG,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC;qBACtD;oBAGK,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBACrC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBAE5C,0CAA0C;oBAC1C,IAAI,OAAO,CAAC,KAAK,EAAE;wBAGZ,oBAA4B,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;wBAElE,IAAI,IAAI,WAAW,CAAC;wBAEpB,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,UAAC,GAAG,EAAE,GAAG;4BACxC,IAAI,OAAO,GAAG,EAAE,CAAC;4BACjB,IAAI,OAAO,CAAC,cAAc,EAAE;gCAC3B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;6BAClB;4BACD,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;gCAChD,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gCAC7B,OAAO,CAAC,IAAI,CAAC,KAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;6BACzE;4BACD,IAAI,IAAI,IAAI,GAAG,KAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;wBACnE,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC;4BACP,IAAI,EAAE,GAAG,iBAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;4BACpC,IAAI,EAAE,GAAG,iBAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;4BACpC,IAAI,EAAE,GAAG,EAAE,EAAE;gCACZ,OAAO,CAAC,CAAC,CAAC;6BACV;iCACI,IAAI,EAAE,GAAG,EAAE,EAAE;gCACjB,OAAO,CAAC,CAAA;6BACR;4BACD,OAAO,CAAC,CAAC;wBACV,CAAC,CAAC,CAAC;wBAEH,IAAI,IAAI,YAAY,CAAC;qBAErB;yBAEI;wBACJ,oBAAoB;wBACpB,IAAI,OAAO,CAAC,cAAc,EAAE;4BAC3B,IAAI,IAAI,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,YAAY,CAAC;yBACnG;wBAED,IAAI,IAAI,WAAW,CAAC;wBAEpB,KAAS,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;4BAChD,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;yBAC7D;wBAED,IAAI,IAAI,YAAY,CAAC;qBACrB;oBAED,IAAI,IAAI,YAAY,CAAC;oBAErB,sBAAO,IAAI,EAAC;;;SAEZ;;IAED;;OAEG;;;;;eACH,UAAkB,GAAQ,EAAE,OAA8B,EAAE,UAAe,EAAE,IAAqB,EAAE,SAA0B;YAA9H,iBAiEC;YAjE4E,qBAAA,EAAA,YAAqB;YAAE,0BAAA,EAAA,iBAA0B;YAE7H,cAAc;YACd,IAAI,IAAI,GAAG,QAAQ,CAAC;YACpB,IAAI,OAAO,CAAC,QAAQ,EAAE;gBACrB,IAAI,GAAG,gBAAgB,GAAG,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;aACnD;YAED,cAAc;YACd,IAAI,CAAC,UAAU,EAAE;gBAChB,UAAU,GAAG,GAAG,CAAC;aACjB;YAED,oBAAoB;YACpB,IAAM,eAAe,GAAa,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;YAElE,YAAY;YACZ,IAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAEpC,wBAAwB;YACxB,IAAI,KAAK,GAAG,IAAI,CAAC;YACjB,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,UAAC,GAAG,EAAE,KAAK;gBAE1C,YAAY;gBACZ,IAAI,KAAK,GAAG,KAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;gBAE3D,gBAAgB;gBAChB,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBAE3E,uBAAuB;gBACvB,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC;gBACjB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,UAAS,CAAS;oBAC/D,OAAO,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBACrC,CAAC,CAAC,CAAC;gBAEH,mBAAmB;gBACnB,IAAI,MAAM,GAAG,GAAG,CAAC;gBACjB,IAAI,OAAO,CAAC,KAAK,IAAI,KAAK,EAAE;oBAC3B,MAAM,GAAG,IAAI,CAAC;iBACd;gBAED,WAAW;gBACX,IAAI,OAAO,CAAC,SAAS,EAAE;oBACtB,IAAI,IAAI,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC,SAAS,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,GAAG,CAAC;iBAClG;qBACI;oBACJ,IAAI,IAAI,SAAS,GAAG,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,GAAG,CAAC;iBAC9D;gBAED,KAAK,GAAG,KAAK,CAAC;YACf,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC;gBACP,IAAI,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACpC,IAAI,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACpC,IAAI,EAAE,GAAG,EAAE,EAAE;oBACZ,OAAO,CAAC,CAAC;iBACT;qBACI,IAAI,EAAE,GAAG,EAAE,EAAE;oBACjB,OAAO,CAAC,CAAC,CAAA;iBACT;gBACD,OAAO,CAAC,CAAC;YACV,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,WAAW,CAAC;YAEpB,OAAO,IAAI,CAAC;QACb,CAAC;;IAED;;;;OAIG;IAEH;;;;;OAKG;;;;;eACH,UAAwB,aAAqC;;;;;;4BACrD,KAAA,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,GAAG,CAAA;4BAAG,KAAA,kBAAkB,CAAA;4BAAC,qBAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAA;gCAA9I,sBAAO,KAAmF,kBAAmB,SAAiC,EAAC,EAAC;;;;SAChJ;;IAED;;;;;OAKG;;;;;eACH,UAAqB,aAAqC;;;;;;;4BAEnD,OAAO,GAAQ,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;4BAGxD,qBAAM,IAAI,CAAC,UAAU,EAAE,EAAA;;4BAA9B,IAAI,GAAG,SAAuB;4BAG9B,SAAS,GAAG;gCACf,QAAQ,EAAE,MAAM;gCAChB,OAAO,EAAE,KAAK;gCACd,IAAI,EAAE,QAAQ;gCACd,sBAAsB;6BACtB,CAAC;4BAGE,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BAG9E,EAAE,GAAG;gCACR,UAAU,EAAO,CAAC,SAAS,CAAC;gCAC5B,MAAM,EAAO,EAAE;6BACf,CAAC;4BAGE,MAAM,GAAe,EAAE,CAAC;4BAGtB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;4BACrC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;4BAE5C,0CAA0C;4BAC1C,IAAI,OAAO,CAAC,KAAK,EAAE;gCAGZ,oBAA4B,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;gCAElE,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,UAAC,GAAG,EAAE,GAAG;oCACxC,IAAI,OAAO,GAAG,EAAE,CAAC;oCACjB,IAAI,OAAO,CAAC,cAAc,EAAE;wCAC3B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;qCAClB;oCACD,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;wCAChD,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wCAC7B,OAAO,CAAC,IAAI,CAAC,KAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;qCACzE;oCACD,MAAM,CAAC,IAAI,CAAC,KAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;gCACjE,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC;oCACP,mBAAmB;oCACnB,IAAI,EAAE,GAAG,iBAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oCACpC,IAAI,EAAE,GAAG,iBAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oCACpC,IAAI,EAAE,GAAG,EAAE,EAAE;wCACZ,OAAO,CAAC,CAAC;qCACT;yCACI,IAAI,EAAE,GAAG,EAAE,EAAE;wCACjB,OAAO,CAAC,CAAC,CAAA;qCACT;oCACD,OAAO,CAAC,CAAC;gCACV,CAAC,CAAC,CAAC;6BAEH;iCAEI;gCACJ,oBAAoB;gCACpB,IAAI,OAAO,CAAC,cAAc,EAAE;oCAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;iCACnE;gCAED,YAAY;gCACZ,KAAS,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;oCAChD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;iCAC3D;6BACD;4BAED,4BAA4B;4BAC5B,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;4BAEvD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE;gCACrC,IAAI,EAAE,eAAe;gCACrB,MAAM,EAAE,MAAM;gCACd,OAAO,EAAE,OAAO;gCAChB,QAAQ,EAAE,EAAE;gCACZ,eAAe,EAAE,SAAS;gCAC1B,IAAI,EAAE,IAAI;gCACV,MAAM,EAAE,IAAI;6BACZ,CAAC,CAAC;4BAEH,sBAAO,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC,EAAC;;;;SACjC;;;;;;eAED,UAAiC,IAAY;YAC5C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7D,CAAC;;IAED;;OAEG;;;;;eACH,UAAkB,GAAQ,EAAE,OAA8B,EAAE,UAAe,EAAE,IAAqB;YAAlG,iBAqCC;YArC4E,qBAAA,EAAA,YAAqB;YAEjG,OAAO;YACP,IAAI,KAAK,GAAU,EAAE,CAAC;YAEtB,cAAc;YACd,IAAI,CAAC,UAAU,EAAE;gBAChB,UAAU,GAAG,GAAG,CAAC;aACjB;YAED,oBAAoB;YACpB,IAAM,eAAe,GAAa,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;YAElE,wBAAwB;YACxB,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,UAAC,GAAG,EAAE,KAAK;gBAE1C,YAAY;gBACZ,IAAI,KAAK,GAAG,KAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;gBAE3D,gBAAgB;gBAChB,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBAEjF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC;gBACP,mBAAmB;gBACnB,IAAI,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACpC,IAAI,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACpC,IAAI,EAAE,GAAG,EAAE,EAAE;oBACZ,OAAO,CAAC,CAAC;iBACT;qBACI,IAAI,EAAE,GAAG,EAAE,EAAE;oBACjB,OAAO,CAAC,CAAC,CAAA;iBACT;gBACD,OAAO,CAAC,CAAC;YACV,CAAC,CAAC,CAAC;YAEH,OAAO,KAAK,CAAC;QACd,CAAC;;IAGD;;OAEG;;;;;eACH;;;;gCACQ,qBAAM,MAAM,CAAC,8BAA8B,CAAC,4BAA4B,CAAC,EAAA;gCAAhF,sBAAO,SAAyE,EAAC;;;;SACjF;;IAED;;OAEG;;;;;eACH;YACC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;;IAED;;;;OAIG;IAEH;;;;;OAKG;;;;;eACH,UAAuB,aAAoC;;;;;;4BACnD,KAAA,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,GAAG,CAAA;4BAAG,KAAA,kBAAkB,CAAA;4BAAC,qBAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,EAAA;gCAAlJ,sBAAO,KAAkF,kBAAmB,SAAsC,EAAC,EAAC;;;;SACpJ;;IAED;;;;;OAKG;;;;;eACH,UAA2B,aAAqC;;;;;;4BACxD,KAAA,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,GAAG,CAAA;4BAAG,KAAA,kBAAkB,CAAA;4BAAC,qBAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,EAAA;gCAAzJ,sBAAO,KAAkF,kBAAmB,SAA6C,EAAC,EAAC;;;;SAC3J;;IAED;;;;;;OAMG;;;;;eACH,UAAoB,aAAoC,EAAE,YAA4B,EAAE,WAA4B;YAA1D,6BAAA,EAAA,mBAA4B;YAAE,4BAAA,EAAA,mBAA4B;;gBA+EnH,SAAS,OAAO,CAAC,IAAW;oBAC3B,IAAM,KAAK,GAA+B,EAAE,CAAC;oBAE7C,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;oBAChC,GAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;oBAE3C,IAAI,IAAI,CAAC,IAAI,EAAE;wBACd,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;wBAC5B,GAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;qBAEvC;yBAAM;wBACN,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;qBAC9B;oBAED,IAAI,IAAI,CAAC,OAAO,EAAE;wBACjB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;wBAClC,GAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;qBAE7C;yBAAM;wBACN,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;qBACjC;oBAED,IAAI,IAAI,CAAC,WAAW,EAAE;wBACrB,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;wBAC1C,GAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;qBAErD;yBAAM;wBACN,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;qBACrC;oBAED,KAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;gBAC3B,CAAC;;;;;;4BA5GK,OAAO,GAAQ,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;4BAC5D,WAAW,GAAQ,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;4BACpE,WAAW,GAA6B,OAAO,CAAC,eAAe,IAAI,UAAU,CAAC;iCAIhF,YAAY,EAAZ,wBAAY;4BACP,qBAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,IAAI,KAAK,EAAE,OAAO,CAAC,EAAA;;4BAArE,KAAK,GAAG,SAA6D,CAAC;;gCAIvD,qBAAM,IAAI,CAAC,UAAU,EAAE,EAAA;;4BAAjC,OAAO,GAAG,SAAuB;4BAGjC,cAAc,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;4BAGpC,GAAG,GAAG;gCACT,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;gCAClC,eAAe,EAAE,WAAW;gCAC5B,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,cAAc;gCAClD,YAAY,EAAE;oCACb,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;iCAClD;gCACD,kBAAkB;gCAClB,OAAO,EAAO,EAAE;6BAChB,CAAC;4BAGI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;4BAE5B,WAAW,GAAG,CAAC,CAAC;4BAEpB,IAAI,KAAK,EAAE;gCACV,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;oCAChB,IAAI,EAAE,KAAK;oCACX,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;oCAChC,IAAI,EAAE,IAAI;oCACV,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;iCACrB,CAAC,CAAC;gCAEH,qCAAqC;gCACrC,WAAW,IAAI,EAAE,CAAC;6BAClB;4BAED,gBAAgB;4BAChB,IAAI,OAAO,CAAC,MAAM,EAAE;gCACnB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;oCAChB,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI;oCAC3D,QAAQ,EAAE,OAAO,CAAC,QAAQ;oCAC1B,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;iCACrB,CAAC,CAAC;gCAEH,mCAAmC;gCACnC,WAAW,IAAI,EAAE,CAAC;6BAClB;4BAED,YAAY;4BACZ,IAAI,YAAY,IAAI,KAAM,EAAE;gCAC3B,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;oCAChB,KAAK,EAAE,KAAM;oCACb,SAAS,EAAE,OAAO,CAAC,KAAK,IAAI,MAAM;oCAClC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC;iCACjF,CAAC,CAAC;6BACH;iCAGG,CAAA,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAA,EAAtD,wBAAsD;4BACzD,KAAA,CAAA,KAAA,GAAG,CAAC,OAAO,CAAA,CAAC,IAAI,CAAA;;4BACR,qBAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAA;;4BAD1C,eACC,QAAK,GAAE,SAAkC;oCACzC,WAAQ,GAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;yCAC/B,CAAC;;;4BAGA,KAAK,GAA2D,IAAI,CAAC;4BACrE,GAAG,GAAsC,IAAI,CAAC;4BAmClD,IAAI,OAAO,CAAC,IAAI,EAAE;gCACjB,KAAK,GAAG,EAAE,CAAC;gCACX,GAAG,GAAG,EAAE,CAAC;gCACT,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gCAEtB,IAAI,OAAO,CAAC,UAAU,EAAE;oCACvB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;iCACzC;6BACD;4BAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE;gCACnC,IAAI,EAAE,aAAa;gCACnB,MAAM,EAAE,KAAK;gCACb,OAAO,EAAE,OAAO;gCAChB,GAAG,EAAE,GAAG;gCACR,MAAM,EAAE,IAAI;6BACZ,CAAC,CAAC;4BAEH,aAAa;4BACb,sBAAO,IAAI,OAAO,CAAS,UAAC,OAAO,EAAE,MAAM;oCAC1C,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,UAAC,GAAW;wCAC9D,OAAO,CAAC,GAAG,CAAC,CAAC;oCACd,CAAC,CAAC,CAAC;gCACJ,CAAC,CAAC,EAAC;;;;SACH;;IAED;;OAEG;;;;;eACH,UAAwB,aAAqC;;;;;oBAEtD,OAAO,GAAQ,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;oBAGlE,OAAO,GAAQ;wBAClB,MAAM,EAAO,EAAE;qBACf,CAAC;oBAGI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBACrC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBAE5C,0CAA0C;oBAC1C,IAAI,OAAO,CAAC,KAAK,EAAE;wBAGZ,oBAA4B,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;wBAElE,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,UAAC,GAAG,EAAE,GAAG;4BACxC,IAAI,OAAO,GAAG,EAAE,CAAC;4BACjB,IAAI,OAAO,CAAC,cAAc,EAAE;gCAC3B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;6BAClB;4BACD,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;gCAChD,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gCAC7B,OAAO,CAAC,IAAI,CAAC,KAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;6BACzE;4BACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;wBAC1E,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC;4BACP,mBAAmB;4BACnB,IAAI,EAAE,GAAG,iBAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;4BACpC,IAAI,EAAE,GAAG,iBAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;4BACpC,IAAI,EAAE,GAAG,EAAE,EAAE;gCACZ,OAAO,CAAC,CAAC;6BACT;iCACI,IAAI,EAAE,GAAG,EAAE,EAAE;gCACjB,OAAO,CAAC,CAAC,CAAA;6BACT;4BACD,OAAO,CAAC,CAAC;wBACV,CAAC,CAAC,CAAC;qBAEH;yBAEI;wBAEJ,oBAAoB;wBACpB,IAAI,OAAO,CAAC,cAAc,EAAE;4BAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;4BAC5E,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;yBACvB;wBAED,KAAS,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;4BAChD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;yBACpE;qBAED;oBAED,sBAAO,OAAO,EAAC;;;SAEf;;IAED;;OAEG;;;;;eACH,UAAqB,GAAQ,EAAE,OAA8B,EAAE,UAAgB,EAAE,IAAqB;YAAtG,iBAuCC;YAvCgF,qBAAA,EAAA,YAAqB;YAErG,OAAO;YACP,IAAI,KAAK,GAAU,EAAE,CAAC;YAEtB,cAAc;YACd,IAAI,CAAC,UAAU,EAAE;gBAChB,UAAU,GAAG,GAAG,CAAC;aACjB;YAED,oBAAoB;YACpB,IAAM,eAAe,GAAa,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;YAElE,wBAAwB;YACxB,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,UAAC,GAAG,EAAE,KAAK;gBAE1C,YAAY;gBACZ,IAAI,KAAK,GAAG,KAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;gBAE3D,gBAAgB;gBAChB,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC3E,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC;gBAEjB,cAAc;gBACd,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC,EAAE,UAAC,CAAC,EAAE,CAAC;gBACP,mBAAmB;gBACnB,IAAI,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACpC,IAAI,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACpC,IAAI,EAAE,GAAG,EAAE,EAAE;oBACZ,OAAO,CAAC,CAAC;iBACT;qBACI,IAAI,EAAE,GAAG,EAAE,EAAE;oBACjB,OAAO,CAAC,CAAC,CAAA;iBACT;gBACD,OAAO,CAAC,CAAC;YACV,CAAC,CAAC,CAAC;YAEH,OAAO,KAAK,CAAC;QACd,CAAC;;IAED;;;;;OAKG;;;;;eACH;YACC,IAAI,cAAc,KAAK,SAAS,EAAE;gBACjC,cAAc,GAAG,QAAQ,EAAE,CAAC;aAC5B;YAED,OAAO,cAAc,CAAC;QACvB,CAAC;;IAED;;OAEG;;;;;eACH,UAAsB,QAAmB,EAAE,OAA0B,EAAE,WAAuB,EAAE,WAAkD;YAA3E,4BAAA,EAAA,eAAuB;YAAE,4BAAA,EAAA,wBAAkD;YAEjJ,gBAAgB;YAChB,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9B,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBAC5B,UAAU,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;aAClD;iBACI,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;gBAC7B,UAAU,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9D;iBACI,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;gBAC7B,UAAU,GAAG,OAAO,CAAC;aACrB;YAED,8BAA8B;YAC9B,IAAI,KAAK,GAAG;gBACX,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;gBACzB,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;gBACzB,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;gBACtB,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;gBACtB,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;gBACtB,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;gBACrB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACpB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACpB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACpB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACpB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACpB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACpB,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;gBACpB,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;gBACtB,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;gBACtB,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;gBACtB,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;gBACtB,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;gBACrB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACpB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACpB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACpB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACpB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACpB,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;gBACpB,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;gBACtB,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;gBACtB,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;gBACtB,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;gBACrB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACpB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACpB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACpB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACpB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACpB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACpB,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;gBACpB,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;gBACvB,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;gBACvB,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;gBACvB,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;gBACtB,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACrB,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;gBACxB,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;gBACxB,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;gBACxB,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;gBACvB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACtB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBAC3B,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACvB,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;gBACxB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACxB,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;aAC1B,CAAC;YAEF,iBAAiB;YACjB,IAAI,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC9B,IAAI,WAAW,IAAI,WAAW,EAAE;gBAC/B,OAAO,CAAC,OAAO,EAAE,CAAC;aAClB;YACD,OAAO,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC5C,OAAO,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;YAC1D,OAAO,OAAO,CAAC;QAChB,CAAC;;IAED;;;;OAIG;IAEH;;;;;UAKG;;;;;eACH;YACC,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACtE,CAAC;;IAED;;;;;;;OAOG;;;;;eACH,UAAe,MAAwB,EAAE,aAAqC,EAAE,YAA6B;YAA7G,iBAiCC;YAjC+E,6BAAA,EAAA,oBAA6B;YAC5G,IAAM,OAAO,GAAQ,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;YACnE,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YAC9C,IAAI,IAAI,GAAQ,UAAU,CAAC;YAE3B,mDAAmD;YACnD,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC1C,IAAI,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;gBAC5C,IAAI,GAAG,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,UAAC,GAAG;oBAC3B,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;wBACxB,IAAM,QAAM,GAAQ,EAAE,CAAA;wBACtB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,UAAC,KAAK,EAAE,KAAK;4BACrC,IAAI,UAAW,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE;gCAC/B,QAAM,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,KAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;6BAC/F;wBACF,CAAC,CAAC,CAAC;wBACH,IAAI,CAAC,IAAI,CAAC,QAAM,CAAC,CAAC;qBAClB;gBACF,CAAC,CAAC,CAAC;aACH;YAED,IAAM,KAAK,GAAQ;gBAClB,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,IAAI;aACZ,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;YAE7C,OAAO,KAAK,CAAC,IAAI,CAAC;QACnB,CAAC;;IAED;;OAEG;;;;;eACH,UAAqB,IAAS;YAC7B,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACxC,IAAI,CAAC,UAAU,EAAE;gBAChB,UAAU,GAAG,EAAE,CAAC;gBAChB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;oBACvC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,UAAC,GAAG;wBACrB,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,UAAC,GAAG,EAAE,MAAM;4BAC7B,IAAI,UAAW,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;gCAC7B,UAAW,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;6BACvB;wBACF,CAAC,CAAC,CAAC;oBACJ,CAAC,CAAC,CAAC;iBACH;aACD;YACD,OAAO,UAAW,CAAC;QACpB,CAAC;;IAED;;OAEG;;;;;eACH,UAAyB,MAAc,EAAE,KAAU,EAAE,OAA8B;YAClF,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QAChD,CAAC;;IAED;;OAEG;;;;;eACH,UAA8B,KAAU,EAAE,KAAU,EAAE,OAA8B,EAAE,YAAsB;YAE3G,mCAAmC;YACnC,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE;gBAC7B,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;oBAC5B,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;iBACxB;qBACI,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;oBAChE,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;iBAC1E;qBACI,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;oBACrC,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;iBACxG;aACD;YAED,IAAI,KAAK,YAAY,IAAI,EAAE;gBAC1B,IAAI,OAAO,CAAC,aAAa,EAAE;oBAC1B,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;iBACxB;qBACI,IAAI,OAAO,CAAC,SAAS,EAAE;oBAC3B,IAAI,CAAC,YAAY,EAAE;wBAClB,KAAK,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;qBAC/B;iBACD;qBACI;oBACJ,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;iBACvE;aACD;YAED,OAAO,KAAK,CAAC;QACd,CAAC;;IAED;;OAEG;;;;;eACH,UAAmB,KAAa;YAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACtD,CAAC;;IAED;;OAEG;;;;;eACH,UAAsB,KAAa;YAClC,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACzD,CAAC;;IAED;;OAEG;;;;;eACH,UAAuB,KAAa;YACnC,OAAO,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1D,CAAC;;IAED;;OAEG;;;;;eACH,UAAsB,IAAsB;YAC3C,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,QAAQ,IAAI,EAAE;gBACb,KAAK,KAAK;oBACT,WAAW,GAAG,QAAQ,GAAG,IAAI,CAAC;oBAC9B,MAAM;gBACP,KAAK,KAAK;oBACT,WAAW,GAAG,YAAY,CAAC;oBAC3B,MAAM;gBACP,KAAK,KAAK;oBACT,WAAW,GAAG,UAAU,CAAC;oBACzB,MAAM;gBACP,KAAK,MAAM;oBACV,WAAW,GAAG,kBAAkB,CAAC;oBACjC,MAAM;gBACP,KAAK,MAAM;oBACV,WAAW,GAAG,WAAW,CAAC;oBAC1B,MAAM;gBACP,KAAK,KAAK,CAAC;gBACX,KAAK,SAAS;oBACb,WAAW,GAAG,iBAAiB,CAAC;oBAChC,MAAM;gBACP,KAAK,MAAM;oBACV,WAAW,GAAG,mEAAmE,CAAC;oBAClF,MAAM;gBACP;oBACC,WAAW,GAAG,0BAA0B,CAAC;aAC1C;YAED,OAAO,WAAW,CAAC;QACpB,CAAC;;;;;;eAED;YACC,IAAI,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACnC,OAAO,MAAM,CAAC;QACf,CAAC;;;;;;eAED,UAAwB,MAAyB;YAChD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;;IAGD;;OAEG;;;;;eACH,UAA2B,OAAgB;YAE1C,kCAAkC;YAClC,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,IAAI,YAAY,GAAG,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;YAEtG,gBAAgB;YAChB,IAAI,YAAY,CAAC,KAAK,CAAC,yBAAyB,CAAC,IAAI,YAAY,IAAI,aAAa,EAAE;gBACnF,OAAO,GAAG,CAAC,CAAC;aACZ;YAED,IAAI,OAAO,IAAI,CAAC,EAAE;gBACjB,IAAI,QAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA,kCAAkC;gBAErE,4CAA4C;gBAC5C,IAAI,QAAM,EAAE;oBACX,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAM,CAAC,CAAC;iBACxC;qBACI;oBACJ,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;iBAC/B;aACD;iBACI;gBACJ,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;aACnC;QAEF,CAAC;;IAED;;;;;;;OAOG;;;;;eACH,UAAkB,GAAW,EAAE,QAAgB,EAAE,MAAuB;YAAvB,uBAAA,EAAA,cAAuB;YAEvE,IAAI,IAAI,CAAC,mBAAmB,EAAE,EAAE;gBAE/B;;;mBAGG;gBACH,IAAI,MAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACvC,MAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAI,CAAC,CAAC;gBAEhC,yDAAyD;gBACzD,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC3B,IAAI,WAAW,GAAG,KAAM,CAAC,KAAK,EAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAEvD,GAAG,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;gBAEjE,IAAI,CAAC,eAAe,EAAE,kBAAkB,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE;oBAC9F,IAAI;wBACH,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;wBACxB,GAAG,GAAG,OAAO,CAAC;qBACd;oBAAC,OAAO,CAAC,EAAE;wBACX,qEAAqE;wBACrE,OAAO,KAAK,CAAC;qBACb;iBACD;qBACI;oBACJ,IAAI,MAAM,EAAE;wBACX,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC;qBACrB;oBACD,IAAI,MAAI,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;oBAClD,IAAI,KAAG,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,MAAI,CAAC,CAAC;oBAC3C,MAAI,CAAC,IAAI,GAAG,KAAG,CAAC;oBAChB,MAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBACzB,MAAI,CAAC,KAAK,EAAE,CAAC;oBACb,UAAU,CAAC;wBACV,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAI,CAAC,CAAC;wBAChC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,KAAG,CAAC,CAAC;oBACjC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACR,OAAO,IAAI,CAAC;iBACZ;gBAED,yBAAyB;gBACzB,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;oBACpC,IAAI,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBACjC,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;iBACpB;gBAED,IAAI,MAAM,EAAE;oBACX,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACzC;gBACD,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;gBACpE,IAAI,KAAG,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC3C,MAAI,CAAC,IAAI,GAAG,KAAG,CAAC;gBAChB,MAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAI,CAAC,CAAC;gBAChC,MAAI,CAAC,KAAK,EAAE,CAAC;gBACb,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAI,CAAC,CAAC;gBAChC,UAAU,CAAC;oBACV,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,KAAG,CAAC,CAAC;gBACjC,CAAC,EAAE,GAAG,CAAC,CAAC;aAER;iBAEI,IAAI,IAAI,CAAC,mBAAmB,EAAE,EAAE;gBAEpC;;mBAEG;gBAEH,IAAI,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACvC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACzB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;gBAChB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aAEhC;iBACI;gBAEJ;;;;mBAIG;gBACH,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;aAC3B;YAED,OAAO,IAAI,CAAC;QAEb,CAAC;;IAED;;OAEG;;;;;eACH;YACC,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACnC,CAAC;;IAED;;OAEG;;;;;eACH;YACC,IAAI,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,GAAG,GAAG,OAAO,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC;YAC5C,OAAO,GAAG,CAAC;QACZ,CAAC;;IAED;;OAEG;;;;;eACH;YACC,OAAO,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC;QAC5B,CAAC;;IAGD;;;;OAIG;IAEH;;;;;;;OAOG;;;;;eACH,UAAqB,IAAY,EAAE,aAAsC,EAAE,KAAc;YACxF,IAAM,OAAO,GAA2B,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YACvF,IAAI,OAAO,CAAC,WAAW,IAAI,KAAK,EAAE;gBACjC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;aACxC;iBACI;gBACJ,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;aAC3C;QAEF,CAAC;;;;;;eAED,UAAuB,IAAY,EAAE,aAAsC,EAAE,KAAc;YAC1F,IAAM,OAAO,GAA2B,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YACvF,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC;YAEjC,8BAA8B;YAC9B,IAAI,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;YAE3E,gDAAgD;YAChD,IAAI,IAAI,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE;gBAC1E,SAAS,EAAE,MAAM;gBACjB,UAAU,EAAE,OAAO;gBACnB,YAAY,EAAE,QAAQ;gBACtB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,2CAA2C;aACvD,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAErB,iBAAiB;YACjB,IAAI,aAAqB,CAAC;YAC1B,IAAI,KAAK,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,EAAE;gBACxC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;gBAC/B,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;aACvB;YAED,gCAAgC;YAChC,IAAI,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;YACtB,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;YAC5B,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;YAC5B,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;YAChC,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;YACjC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;YACxB,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAE/B,QAAQ;YACR,IAAI,CAAC,UAAU,CAAC;gBACT,MAAO,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC,EAAE,EAAE,CAAC,CAAC;YAEP,sDAAsD;YACtD,IAAI,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAO,MAAO,CAAC,QAAQ,CAAC;YACpF,IAAI,KAAK,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE;gBAC5B,KAAK,GAAG,IAAI,CAAC;aACb;iBACI,IAAI,KAAK,GAAG,GAAG,EAAE;gBACrB,KAAK,GAAG,GAAG,CAAC;aACZ;YAED,qEAAqE;YACrE,IAAI,CAAC,UAAU,CAAC;gBAEf,eAAe;gBACf,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAE/B,0BAA0B;gBAC1B;;;;;mBAKG;gBACH,IAAI,CAAC,OAAO,EAAE,CAAC;gBAEf,gBAAgB;gBAChB,IAAI,aAAa,EAAE;oBAClB,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;iBAChC;gBAED,iDAAiD;gBACjD,QAAQ,CAAC,eAAe,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;YAEvE,CAAC,EAAE,KAAK,IAAI,GAAG,CAAC,CAAC;QAElB,CAAC;;;;;;eAED,UAA0B,IAAY,EAAE,aAAsC,EAAE,KAAc;YAC7F,IAAM,OAAO,GAA2B,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YACvF,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC;YAEjC,mBAAmB;YACnB,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;YACnC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAElC,6BAA6B;YAC7B,MAAM,CAAC,aAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,CAAC,aAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YAEvC,gCAAgC;YAChC,IAAI,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;YACtB,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;YAC5B,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;YAC1B,IAAI,KAAK,EAAE;gBACV,MAAM,CAAC,aAAc,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;aAC7C;YACD,MAAM,CAAC,aAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAE/C,MAAO,CAAC,IAAI,GAAG;gBACpB,MAAM,CAAC,aAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACtD,CAAC,CAAC;YAEF,QAAQ;YACR,IAAI,CAAC,UAAU,CAAC;gBACf,IAAI;oBACH,IAAI,CAAO,MAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE;wBACtE,MAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;qBACpC;iBACD;gBAAC,OAAO,CAAC,EAAE;oBACL,MAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;iBACpC;YACF,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;YAEhB,sDAAsD;YACtD,IAAI,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAO,MAAO,CAAC,QAAQ,CAAC;YACpF,IAAI,KAAK,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE;gBAC5B,KAAK,GAAG,IAAI,CAAC;aACb;iBACI,IAAI,KAAK,GAAG,GAAG,EAAE;gBACrB,KAAK,GAAG,GAAG,CAAC;aACZ;YAED,qEAAqE;YACrE,IAAI,CAAC,UAAU,CAAC;gBAEf,eAAe;gBACf,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAEnC,CAAC,EAAE,KAAK,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC;QAEvB,CAAC;;IAED;;;;OAIG;;;;;eACH;YAAA,iBAaC;YAZA,IAAM,GAAG,GAAuB,EAAE,CAAC;YACnC,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,UAAC,MAAM;gBAC1H,IAAM,OAAO,GAAG,KAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAC/C,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,EAAE;oBAC9B,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,eAAe,CAAC,EAAE;wBACrG,GAAG,CAAC,IAAI,CAAmB,MAAM,CAAC,CAAC;qBACnC;iBACD;YACF,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,CAAC;QACZ,CAAC;;IAED;;;;OAIG;;;;;eACH;YACC,IAAM,GAAG,GAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACjD,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;gBAC7C,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACjB;YACD,OAAO,GAAG,CAAC;QACZ,CAAC;;IAlsDD;;;;eAAkC,WAAW;OAAC;IAC9C;;;;eAA0C,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;OAAC;IAmsD3F,gBAAC;CAAA,AArsDD,CAA+B,MAAM,GAqsDpC;SArsDY,SAAS","sourcesContent":["import type { ExportingMenu } from \"./ExportingMenu\"\nimport type { TimeUnit } from \"../../core/util/Time\";\n\nimport { Entity, IEntitySettings, IEntityPrivate, IEntityEvents } from \"../../core/util/Entity\"\nimport { Color } from \"../../core/util/Color\";\nimport { Root } from \"../../core/Root\"\nimport { StyleRule } from \"../../core/util/Utils\"\n\nimport * as $array from \"../../core/util/Array\";\nimport * as $object from \"../../core/util/Object\";\nimport * as $type from \"../../core/util/Type\";\nimport * as $utils from \"../../core/util/Utils\";\n\nexport interface IFile {\n\tpath: string;\n\tbytes: string;\n}\n\nexport interface IFont {\n\tname: string;\n\tnormal: IFile;\n\tbold?: IFile;\n\titalics?: IFile;\n\tbolditalics?: IFile;\n}\n\n/**\n * This is used to cache the pdfmake loading.\n *\n * @ignore\n */\nlet pdfmakePromise: Promise<any>;\n\n/**\n * Loads pdfmake dynamic module\n *\n * This is an asynchronous function. Check the description of `getImage()`\n * for description and example usage.\n *\n * @ignore\n */\nasync function _pdfmake(): Promise<any> {\n\tlet a = await Promise.all([\n\t\timport(/* webpackChunkName: \"pdfmake\" */ \"pdfmake/build/pdfmake.js\"),\n\t\timport(/* webpackChunkName: \"pdfmake\" */ \"./pdfmake/vfs_fonts\")\n\t]);\n\tlet pdfmake = a[0];\n\tlet vfs_fonts = a[1];\n\tconst global = <any>window;\n\tglobal.pdfMake = global.pdfMake || {};\n\tglobal.pdfMake.vfs = vfs_fonts.default;\n\tpdfmake.vfs = vfs_fonts.default;\n\treturn pdfmake;\n}\n\nexport type ExportingTypes = \"image\" | \"data\" | \"print\";\nexport type ExportingFormats = \"png\" | \"jpg\" | \"canvas\" | \"pdf\" | \"xlsx\" | \"csv\" | \"json\" | \"html\" | \"pdfdata\" | \"print\";\nexport type ExportingImageFormats = \"png\" | \"jpg\";\n\nexport interface IExportingImageSource {\n\n\t/**\n\t * A root object of an extra chart to add in export.\n\t */\n\tsource: Root;\n\n\t/**\n\t * Top margin in pixels.\n\t */\n\tmarginTop?: number;\n\n\t/**\n\t * Right margin in pixels.\n\t */\n\tmarginRight?: number;\n\n\t/**\n\t * Bottom margin in pixels.\n\t */\n\tmarginBottom?: number;\n\n\t/**\n\t * Left margin in pixels.\n\t */\n\tmarginLeft?: number;\n\n\t/**\n\t * Position to place extra image in releation to the main chart.\n\t *\n\t * @default \"bottom\"\n\t */\n\tposition?: \"left\" | \"right\" | \"top\" | \"bottom\";\n\n\t/**\n\t * Crop extra image if it's larger than the main chart.\n\t */\n\tcrop?: boolean;\n\n}\n\nexport interface IExportingSettings extends IEntitySettings {\n\n\t/**\n\t * A reference to [[ExportingMenu]] object.\n\t */\n\tmenu?: ExportingMenu;\n\n\t/**\n\t * Export will try to determine background color based on the DOM styles.\n\t *\n\t * You can use this setting to explicitly specify background color for\n\t * exported images.\n\t */\n\tbackgroundColor?: Color;\n\n\t/**\n\t * Opacity of the exported image background.\n\t *\n\t * * 0 - fully transparent.\n\t * * 1 - fully opaque (default).\n\t *\n\t * NOTE: some image formats like JPEG do not support transparency.\n\t * \n\t * @since 5.2.34\n\t */\n\tbackgroundOpacity?: number;\n\n\t/**\n\t * A string to prefix exported files with.\n\t *\n\t * @default \"chart\"\n\t */\n\tfilePrefix?: string;\n\n\t/**\n\t * Chart title. Used for print, PDF and Excel exports.\n\t */\n\ttitle?: string;\n\n\t/**\n\t * Charset to use for export.\n\t *\n\t * @default \"utf-8\"\n\t */\n\tcharset?: string;\n\n\t/**\n\t * Fields to include in data export.\n\t *\n\t * Key - field in data.\n\t * Value - column name.\n\t */\n\tdataFields?: { [index: string]: string },\n\n\t/**\n\t * Specifies the order of fields to export in data.\n\t */\n\tdataFieldsOrder?: string[],\n\n\t/**\n\t * Fields in data that are numeric.\n\t */\n\tnumericFields?: string[],\n\n\t/**\n\t * Use this number format on numeric values.\n\t */\n\tnumberFormat?: string | Intl.NumberFormatOptions,\n\n\t/**\n\t * Fields in data that have date/time value.\n\t */\n\tdateFields?: string[],\n\n\t/**\n\t * Use this date format on date values.\n\t */\n\tdateFormat?: string | Intl.DateTimeFormatOptions,\n\n\t/**\n\t * Fields in data that need to be formatted as \"duration\" as per `durationFormat`.\n\t *\n\t * @since 5.0.16\n\t */\n\tdurationFields?: string[],\n\n\t/**\n\t * Format to use when formatting values in `durationFields`.\n\t *\n\t * If not set, will use `durationFormat` as set in [[DurationFormatter]] of\n\t * the root element.\n\t * \n\t * @since 5.0.16\n\t */\n\tdurationFormat?: string,\n\n\t/**\n\t * Time unit to assume duration values are in.\n\t *\n\t * If not set, will use `baseUnit` as set in [[DurationFormatter]] of\n\t * the root element.\n\t * \n\t * @since 5.0.16\n\t */\n\tdurationUnit?: TimeUnit;\n\n\t/**\n\t * Include these images or other charts in image exports.\n\t */\n\textraImages?: Array<Root | IExportingImageSource>;\n\n\t/**\n\t * Data to export.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/exporting/#Exporting_data} for more info\n\t */\n\tdataSource?: any;\n\n\t/**\n\t * PNG format options.\n\t */\n\tpngOptions?: IExportingImageOptions;\n\n\t/**\n\t * JPEG format options.\n\t */\n\tjpgOptions?: IExportingImageOptions;\n\n\t/**\n\t * Canvas format options.\n\t */\n\tcanvasOptions?: IExportingImageOptions;\n\n\t/**\n\t * PDF format options.\n\t */\n\tpdfOptions?: IExportingPDFOptions;\n\n\t/**\n\t * PDF with data table format options.\n\t */\n\tpdfdataOptions?: IExportingDataOptions;\n\n\t/**\n\t * XSLX format options.\n\t */\n\txlsxOptions?: IExportingXLSXOptions;\n\n\t/**\n\t * CSV format options.\n\t */\n\tcsvOptions?: IExportingCSVOptions;\n\n\t/**\n\t * JSON format options.\n\t */\n\tjsonOptions?: IExportingJSONOptions;\n\n\t/**\n\t * HTML format options.\n\t */\n\thtmlOptions?: IExportingHTMLOptions;\n\n\t/**\n\t * Print options.\n\t */\n\tprintOptions?: IExportingPrintOptions;\n\n}\n\nexport interface IExportingPrivate extends IEntityPrivate {\n}\n\nexport interface IExportEvent {\n\n\t/**\n\t * Format.\n\t */\n\tformat: ExportingFormats,\n\n\t/**\n\t * Format options.\n\t */\n\toptions: IExportingFormatOptions\n\n}\n\nexport interface IExportingEvents extends IEntityEvents {\n\n\t/**\n\t * Invoked when export starts.\n\t */\n\texportstarted: IExportEvent;\n\n\t/**\n\t * Invoked when export finishes.\n\t */\n\texportfinished: IExportEvent;\n\n\t/**\n\t * Invoked when download of the export starts.\n\t */\n\tdownloadstarted: IExportEvent & {\n\t\tfileName: string,\n\t};\n\n\t/**\n\t * Invoked when print starts.\n\t */\n\tprintstarted: IExportEvent;\n\n\t/**\n\t * Invoked when data finishes pre-processing for export.\n\t */\n\tdataprocessed: IExportEvent & {\n\t\tdata: any\n\t}\n\n\t/**\n\t * Invoked when XLSX export finishes preparing a workbook.\n\t *\n\t * At this point it can still be modified for export.\n\t */\n\tworkbookready: IExportEvent & {\n\t\tworkbook: any,\n\t\tworkbookOptions: any,\n\t\txlsx: any\n\t}\n\n\t/**\n\t * Invoked when PDF export finishes preparing a document.\n\t *\n\t * At this point it can still be modified for export.\n\t */\n\tpdfdocready: IExportEvent & {\n\t\tdoc: any\n\t}\n\n}\n\nexport interface IExportingFormatOptions {\n\n\t/**\n\t * If set to `true`, this format will not appear in [[ExportMenu]].\n\t */\n\tdisabled?: boolean;\n\n}\n\nexport interface IExportingImageOptions extends IExportingFormatOptions {\n\n\t/**\n\t * Quality of the exported image: 0 to 1.\n\t */\n\tquality?: number;\n\n\t/**\n\t * Export images with hardware resolution (`false`), or the way they appear\n\t * on screen (`true`).\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/exporting/exporting-images/#Pixel_ratio} for more info\n\t * @default false\n\t */\n\tmaintainPixelRatio?: boolean;\n\n\t/**\n\t * Minimal width of exported image, in pixels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/exporting/exporting-images/#Sizing_exported_image} for more info\n\t */\n\tminWidth?: number;\n\n\t/**\n\t * Maximal width of exported image, in pixels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/exporting/exporting-images/#Sizing_exported_image} for more info\n\t */\n\tmaxWidth?: number;\n\n\t/**\n\t * Minimal height of exported image, in pixels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/exporting/exporting-images/#Sizing_exported_image} for more info\n\t */\n\tminHeight?: number;\n\n\t/**\n\t * Maximal height of exported image, in pixels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/exporting/exporting-images/#Sizing_exported_image} for more info\n\t */\n\tmaxHeight?: number;\n\n}\n\nexport interface IExportingPrintOptions extends IExportingImageOptions {\n\n\t/**\n\t * A delay in milliseconds to wait before initiating print.\n\t *\n\t * This delay is necessary to ensure DOM is prepared and repainted before\n\t * print dialog kicks in.\n\t *\n\t * @default 500\n\t */\n\tdelay?: number;\n\n\t/**\n\t * Method to use for printing.\n\t *\n\t * If one fails for your particular setup, try the other.\n\t *\n\t * \"css\" - inserts dynamic CSS that hides everything, except the image being printed.\n\t * \"iframe\" - creates a dynamic `<iframe>` with the image, then prints it.\n\t *\n\t * @default \"iframe\"\n\t */\n\tprintMethod?: \"css\" | \"iframe\";\n\n\t/**\n\t * Image format to use for printing.\n\t *\n\t * @default \"png\"\n\t */\n\timageFormat?: \"png\" | \"jpg\";\n\n}\n\n/**\n * Available PDF page sizes.\n */\nexport type pageSizes = \"4A0\" | \"2A0\" | \"A0\" | \"A1\" | \"A2\" | \"A3\" | \"A4\" | \"A5\" | \"A6\" | \"A7\" | \"A8\" | \"A9\" | \"A10\" |\n\t\"B0\" | \"B1\" | \"B2\" | \"B3\" | \"B4\" | \"B5\" | \"B6\" | \"B7\" | \"B8\" | \"B9\" | \"B10\" |\n\t\"C0\" | \"C1\" | \"C2\" | \"C3\" | \"C4\" | \"C5\" | \"C6\" | \"C7\" | \"C8\" | \"C9\" | \"C10\" |\n\t\"RA0\" | \"RA1\" | \"RA2\" | \"RA3\" | \"RA4\" |\n\t\"SRA0\" | \"SRA1\" | \"SRA2\" | \"SRA3\" | \"SRA4\" |\n\t\"EXECUTIVE\" | \"FOLIO\" | \"LEGAL\" | \"LETTER\" | \"TABLOID\";\n\nexport interface IExportingPDFOptions extends IExportingImageOptions {\n\n\t/**\n\t * Include data into PDF\n\t */\n\tincludeData?: boolean;\n\n\t/**\n\t * An image format to use for embedded images in PDF.\n\t *\n\t * See `imageFormats` in [[Export_module]].\n\t */\n\timageFormat?: \"png\" | \"jpg\";\n\n\t/**\n\t * Font size to use for all texts.\n\t */\n\tfontSize?: number;\n\n\t/**\n\t * Alignment of the chart image in PDF.\n\t *\n\t * Supported options: `\"left\"` (default), `\"center\"`, `\"right\"`.\n\t *\n\t * @default left\n\t */\n\talign?: \"left\" | \"center\" | \"middle\";\n\n\t/**\n\t * Whether to add a URL of the web page the chart has been exported from.\n\t *\n\t * @default true\n\t */\n\taddURL?: boolean;\n\n\t/**\n\t * Page size of the exported PDF.\n\t */\n\tpageSize?: pageSizes;\n\n\t/**\n\t * Page orientation.\n\t */\n\tpageOrientation?: \"landscape\" | \"portrait\";\n\n\t/**\n\t * Page margins.\n\t *\n\t * Can be one of the following:\n\t *\n\t * A single number, in which case it will act as margin setting\n\t * for all four edges of the page.\n\t *\n\t * An array of two numbers `[ horizontal, vertical ]`.\n\t *\n\t * An array of four numbers `[ left, top, right, bottom ]`.\n\t */\n\tpageMargins?: number | number[];\n\n\t/**\n\t * Font which should be used for the export.\n\t *\n\t * Default font used for PDF includes only Latin-based and Cyrilic\n\t * characters. If you are exporting text in other languages, you might need\n\t * to use some other export font.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/exporting/exporting-pdf/#Fonts} for more info\n\t */\n\tfont?: IFont;\n\n\t/**\n\t * Additional optional fonts which can be used on individual elements.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/exporting/exporting-pdf/#Fonts} for more info\n\t */\n\textraFonts?: Array<IFont>;\n\n}\n\nexport interface IExportingDataOptions extends IExportingFormatOptions {\n\n\t/**\n\t * Replace empty values with this string.\n\t */\n\temptyAs?: string;\n\n\t/**\n\t * Use timestamps instead of formatted dates.\n\t *\n\t * @default false\n\t */\n\tuseTimestamps?: boolean;\n\n\t/**\n\t * Use client's locale when formatting dates.\n\t *\n\t * @default false\n\t */\n\tuseLocale?: boolean;\n\n\t/**\n\t * If set to `true` will pivot the able so that columns are horizontal.\n\t */\n\tpivot?: boolean;\n\n\t/**\n\t * Will add a line with column names in CSV/HTML/PDF tables.\n\t */\n\taddColumnNames?: boolean;\n\n}\n\nexport interface IExportingJSONOptions extends IExportingDataOptions {\n\n\t/**\n\t * If set to a number, each line will be indented by X spaces, maintaining\n\t * hierarchy.\n\t *\n\t * If set to a string, will use that string to indent.\n\t *\n\t * @default 2\n\t */\n\tindent?: string | number;\n\n\t/**\n\t * If set to `true` and `dataFields` are set to `true`, will rename keys in\n\t * data.\n\t *\n\t * @default true\n\t */\n\trenameFields?: boolean;\n\n}\n\nexport interface IExportingCSVOptions extends IExportingDataOptions {\n\n\t/**\n\t * Column separator.\n\t *\n\t * @default \",\"\n\t */\n\tseparator?: string;\n\n\t/**\n\t * Force all values to be included in quotes, including numeric.\n\t *\n\t * @default false\n\t */\n\tforceQuotes?: boolean;\n\n\t/**\n\t * Reverse order of the records in data.\n\t *\n\t * @default false\n\t */\n\treverse?: boolean;\n\n\t/**\n\t * Add BOM character to output file, so that it can be used with UTF-8\n\t * characters properly in Excel.\n\t *\n\t * @default false\n\t * @since 5.1.0\n\t */\n\taddBOM?: boolean;\n\n}\n\nexport interface IExportingHTMLOptions extends IExportingDataOptions {\n\n\t/**\n\t * A `class` attribute for `<table>` tag.\n\t */\n\ttableClass?: string;\n\n\t/**\n\t * A `class` attribute for `<tr>` tags.\n\t */\n\trowClass?: string;\n\n\t/**\n\t * A `class` attribute for `<th>` tags.\n\t */\n\theaderClass?: string;\n\n\t/**\n\t * A `class` attribute for `<td>` tags.\n\t */\n\tcellClass?: string;\n\n}\n\nexport interface IExportingXLSXOptions extends IExportingDataOptions {\n\t// @todo\n\t//sheets?: string[];\n}\n\n/**\n * A plugin that can be used to export chart snapshots and data.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/exporting/} for more info\n */\nexport class Exporting extends Entity {\n\tpublic static className: string = \"Exporting\";\n\tpublic static classNames: Array<string> = Entity.classNames.concat([Exporting.className]);\n\n\tdeclare public _settings: IExportingSettings;\n\tdeclare public _privateSettings: IExportingPrivate;\n\tdeclare public _events: IExportingEvents;\n\n\t//public extraImages: Array<Root | IExportingImageSource> = [];\n\t//public dataSources: any[] = [];\n\n\tprotected _afterNew() {\n\t\tsuper._afterNew();\n\t\tthis._setRawDefault(\"filePrefix\", \"chart\");\n\t\tthis._setRawDefault(\"charset\", \"utf-8\");\n\t\tthis._setRawDefault(\"numericFields\", []);\n\t\tthis._setRawDefault(\"dateFields\", []);\n\t\tthis._setRawDefault(\"durationFields\", []);\n\t\tthis._setRawDefault(\"extraImages\", []);\n\t\tthis._setRawDefault(\"pngOptions\", { quality: 1, maintainPixelRatio: false });\n\t\tthis._setRawDefault(\"jpgOptions\", { quality: 0.8, maintainPixelRatio: false });\n\t\tthis._setRawDefault(\"printOptions\", { quality: 1, maintainPixelRatio: false, delay: 500, printMethod: \"iframe\", imageFormat: \"png\" });\n\t\tthis._setRawDefault(\"jsonOptions\", { indent: 2, renameFields: true });\n\t\tthis._setRawDefault(\"csvOptions\", { separator: \",\", addColumnNames: true, emptyAs: \"\", addBOM: true });\n\t\tthis._setRawDefault(\"htmlOptions\", { emptyAs: \"-\", addColumnNames: true });\n\t\tthis._setRawDefault(\"xlsxOptions\", { emptyAs: \"\", addColumnNames: true });\n\t\tthis._setRawDefault(\"pdfOptions\", { fontSize: 14, imageFormat: \"png\", align: \"left\", addURL: true });\n\t\tthis._setRawDefault(\"pdfdataOptions\", { emptyAs: \"\", addColumnNames: true });\n\n\t\tthis._root.addDisposer(this);\n\t}\n\n\tpublic _beforeChanged() {\n\t\tsuper._beforeChanged();\n\n\t\tif (this.isDirty(\"menu\")) {\n\t\t\tconst menu = this.get(\"menu\");\n\t\t\tif (menu) {\n\t\t\t\tmenu.set(\"exporting\", this);\n\t\t\t\tthis._disposers.push(menu);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _getFormatOptions(format: ExportingFormats, options?: IExportingFormatOptions): IExportingFormatOptions {\n\t\tconst newOptions: any = $object.copy((<any>this).get(format + \"Options\", {}));\n\t\tif (options) {\n\t\t\t$object.each(options, (key, value) => {\n\t\t\t\tnewOptions[key] = value;\n\t\t\t});\n\t\t}\n\t\treturn newOptions;\n\t}\n\n\t/**\n\t * Triggers a download of the chart/data in specific format.\n\t *\n\t * @param format Format\n\t * @param customOptions Format options\n\t */\n\tpublic async download(format: ExportingFormats, customOptions?: IExportingFormatOptions) {\n\t\tconst ext = format == \"pdfdata\" ? \"pdf\" : format;\n\t\tconst fileName = this.get(\"filePrefix\", \"chart\") + \".\" + ext;\n\t\tconst options = this._getFormatOptions(format, customOptions);\n\t\tthis.events.dispatch(\"downloadstarted\", {\n\t\t\ttype: \"downloadstarted\",\n\t\t\tformat: format,\n\t\t\toptions: options,\n\t\t\tfileName: fileName,\n\t\t\ttarget: this\n\t\t});\n\t\tconst uri = await this.export(format, options);\n\t\tthis.streamFile(uri, fileName, (options && (<IExportingCSVOptions>options).addBOM));\n\t}\n\n\t/**\n\t * Triggers print of the chart.\n\t *\n\t * @param customOptions Print options\n\t */\n\tpublic async print(customOptions?: IExportingPrintOptions) {\n\t\tconst options = <IExportingPrintOptions>this._getFormatOptions(\"print\", customOptions);\n\t\tthis.events.dispatch(\"printstarted\", {\n\t\t\ttype: \"printstarted\",\n\t\t\tformat: \"print\",\n\t\t\toptions: options,\n\t\t\ttarget: this\n\t\t});\n\t\tconst uri = await this.export(options.imageFormat || \"png\", options);\n\t\tthis.initiatePrint(uri, options, this.get(\"title\"));\n\t}\n\n\t/**\n\t * Returns data uri of the chart/data in specific format.\n\t *\n\t * @param format Format\n\t * @param customOptions Format options\n\t * @return Promise\n\t */\n\tpublic async export(format: ExportingFormats, customOptions?: IExportingFormatOptions): Promise<string> {\n\t\tconst options = this._getFormatOptions(format, customOptions);\n\t\tthis.events.dispatch(\"exportstarted\", {\n\t\t\ttype: \"exportstarted\",\n\t\t\tformat: format,\n\t\t\toptions: options,\n\t\t\ttarget: this\n\t\t});\n\n\t\t// Force any randering to complete before proceeding\n\t\tthis._root._runTickerNow();\n\n\t\tlet promise: Promise<string> | string = \"\";\n\t\tswitch (format) {\n\t\t\tcase \"png\":\n\t\t\tcase \"jpg\":\n\t\t\t\tpromise = this.exportImage(format, options);\n\t\t\t\tbreak;\n\t\t\tcase \"json\":\n\t\t\t\tpromise = this.exportJSON(options);\n\t\t\t\tbreak;\n\t\t\tcase \"csv\":\n\t\t\t\tpromise = this.exportCSV(options);\n\t\t\t\tbreak;\n\t\t\tcase \"html\":\n\t\t\t\tpromise = this.exportHTML(options);\n\t\t\t\tbreak;\n\t\t\tcase \"xlsx\":\n\t\t\t\tpromise = this.exportXLSX(options);\n\t\t\t\tbreak;\n\t\t\tcase \"pdf\":\n\t\t\t\tpromise = this.exportPDF(options);\n\t\t\t\tbreak;\n\t\t\tcase \"pdfdata\":\n\t\t\t\tpromise = this.exportPDFData(options);\n\t\t\t\tbreak;\n\t\t}\n\t\tthis.events.dispatch(\"exportfinished\", {\n\t\t\ttype: \"exportfinished\",\n\t\t\tformat: format,\n\t\t\toptions: options,\n\t\t\ttarget: this\n\t\t});\n\t\treturn promise;\n\t}\n\n\t/**\n\t * ==========================================================================\n\t * Images\n\t * ==========================================================================\n\t */\n\n\t/**\n\t * Returns chart image as a data:uri.\n\t *\n\t * @param format Image format\n\t * @param customOptions Format options\n\t * @return Promise\n\t */\n\tpublic async exportImage(format: ExportingImageFormats, customOptions?: IExportingImageOptions): Promise<string> {\n\t\tconst options: any = this._getFormatOptions(format, customOptions);\n\t\tconst canvas = await this.getCanvas(options);\n\t\tconst data = canvas.toDataURL(this.getContentType(format), options.quality || 1);\n\t\tthis.disposeCanvas(canvas);\n\t\treturn data;\n\t}\n\n\t/**\n\t * Returns canvas data.\n\t *\n\t * @param customOptions Image options\n\t * @return Promise\n\t */\n\tpublic async exportCanvas(customOptions?: IExportingImageOptions): Promise<string> {\n\t\tconst options: any = this._getFormatOptions(\"canvas\", customOptions);\n\t\tconst canvas = await this.getCanvas(options);\n\t\tconst data = canvas.toDataURL(this.getContentType(\"canvas\"), options.quality || 1);\n\t\tthis.disposeCanvas(canvas);\n\t\treturn data;\n\t}\n\n\t/**\n\t * Returns a `<canvas>` element with snapshot of the chart.\n\t *\n\t * @param options Image options\n\t * @return Promise\n\t */\n\tpublic async getCanvas(options: IExportingImageOptions): Promise<HTMLCanvasElement> {\n\t\tconst mainCanvas = this._root._renderer.getCanvas(this._root._rootContainer._display, options);\n\t\tconst extraImages = this.get(\"extraImages\", []);\n\n\t\t// Add other canvases\n\t\tlet middleLeft = 0;\n\t\tlet middleTop = 0;\n\t\tlet middleWidth = mainCanvas.width;\n\t\tlet middleHeight = mainCanvas.height;\n\t\tlet extraRight = 0;\n\t\tlet extraBottom = 0;\n\n\t\tconst extras: any[] = [];\n\n\t\t$array.each(extraImages, (extraRoot) => {\n\n\t\t\t// Get that extra\n\t\t\tlet extra: IExportingImageSource;\n\n\t\t\tif (extraRoot instanceof Root) {\n\t\t\t\textra = {\n\t\t\t\t\tsource: extraRoot,\n\t\t\t\t\tposition: \"bottom\"\n\t\t\t\t};\n\n\t\t\t} else {\n\t\t\t\textra = <IExportingImageSource>extraRoot;\n\t\t\t}\n\n\t\t\t// Set defaults\n\t\t\textra.position = extra.position || \"bottom\";\n\t\t\textra.marginTop = extra.marginTop || 0;\n\t\t\textra.marginRight = extra.marginRight || 0;\n\t\t\textra.marginBottom = extra.marginBottom || 0;\n\t\t\textra.marginLeft = extra.marginLeft || 0;\n\n\t\t\tconst extraCanvas = extra.source._renderer.getCanvas(extra.source._rootContainer._display, options);\n\n\t\t\tconst extraWidth = extraCanvas.width + extra.marginLeft + extra.marginRight;\n\t\t\tconst extraHeight = extraCanvas.height + extra.marginTop + extra.marginBottom;\n\n\t\t\tif (extra.position == \"top\") {\n\t\t\t\tmiddleWidth = extra.crop ? middleHeight : Math.max(middleWidth, extraWidth);\n\t\t\t\tmiddleTop += extraHeight;\n\n\t\t\t} else if (extra.position == \"right\") {\n\t\t\t\tmiddleHeight = extra.crop ? middleHeight : Math.max(middleHeight, extraHeight);\n\t\t\t\textraRight += extraWidth;\n\n\t\t\t} else if (extra.position == \"left\") {\n\t\t\t\tmiddleHeight = extra.crop ? middleHeight : Math.max(middleHeight, extraHeight);\n\t\t\t\tmiddleLeft += extraWidth;\n\n\t\t\t} else if (extra.position === \"bottom\") {\n\t\t\t\tmiddleWidth = extra.crop ? middleHeight : Math.max(middleWidth, extraWidth);\n\t\t\t\textraBottom += extraHeight;\n\t\t\t}\n\n\t\t\textras.push({\n\t\t\t\tcanvas: extraCanvas,\n\t\t\t\tposition: extra.position,\n\t\t\t\tleft: extra.marginLeft,\n\t\t\t\ttop: extra.marginTop,\n\t\t\t\twidth: extraWidth,\n\t\t\t\theight: extraHeight\n\t\t\t});\n\n\t\t});\n\n\t\tconst newCanvas = this.getDisposableCanvas();\n\n\t\tnewCanvas.width = middleLeft + middleWidth + extraRight;\n\t\tnewCanvas.height = middleTop + middleHeight + extraBottom;\n\n\t\tconst ctx = newCanvas.getContext(\"2d\")!;\n\n\t\t// Get background\n\t\tconst background = this.get(\"backgroundColor\", this.findBackgroundColor(this._root.dom));\n\t\tconst backgroundOpacity = this.get(\"backgroundOpacity\", 1);\n\n\t\tif (background) {\n\t\t\tctx.fillStyle = background.toCSS(backgroundOpacity);\n\t\t\tctx.fillRect(0, 0, newCanvas.width, newCanvas.height);\n\t\t}\n\n\t\tlet left = middleLeft;\n\t\tlet top = middleTop;\n\t\tlet right = left + middleWidth;\n\t\tlet bottom = top + middleHeight;\n\n\t\t// Radiates outwards from center\n\t\t$array.each(extras, (extra) => {\n\t\t\tif (extra.position == \"top\") {\n\t\t\t\ttop -= extra.height;\n\t\t\t\tctx.drawImage(extra.canvas, middleLeft + extra.left, top + extra.top);\n\n\t\t\t} else if (extra.position == \"right\") {\n\t\t\t\tctx.drawImage(extra.canvas, right + extra.left, middleTop + extra.top);\n\t\t\t\tright += extra.width;\n\n\t\t\t} else if (extra.position == \"left\") {\n\t\t\t\tleft -= extra.width;\n\t\t\t\tctx.drawImage(extra.canvas, left + extra.left, middleTop + extra.top);\n\n\t\t\t} else if (extra.position === \"bottom\") {\n\t\t\t\tctx.drawImage(extra.canvas, middleLeft + extra.left, bottom + extra.top);\n\t\t\t\tbottom += extra.height;\n\t\t\t}\n\n\t\t\t//this.disposeCanvas(extra.canvas);\n\t\t});\n\n\t\tctx.drawImage(mainCanvas, middleLeft, middleTop);\n\n\t\treturn newCanvas;\n\t}\n\n\t/**\n\t * ==========================================================================\n\t * JSON\n\t * ==========================================================================\n\t */\n\n\t/**\n\t * Returns a data:uri representation of a JSON file with chart data.\n\t *\n\t * @param customOptions Format options\n\t * @return Promise\n\t */\n\tpublic async exportJSON(customOptions?: IExportingJSONOptions): Promise<string> {\n\t\treturn \"data:\" + this.getContentType(\"json\") + \";\" + this.get(\"charset\", \"utf-8\") + \",\" + encodeURIComponent(await this.getJSON(customOptions));\n\t}\n\n\t/**\n\t * Returns data in JSON format.\n\t *\n\t * @param customOptions Format options\n\t * @return Promise\n\t */\n\tpublic async getJSON(customOptions?: IExportingJSONOptions): Promise<string> {\n\t\tconst options: any = this._getFormatOptions(\"json\", customOptions);\n\t\treturn JSON.stringify(this.getData(\"json\", customOptions, options.renameFields), (_key, value) => {\n\t\t\tif ($type.isObject(value)) {\n\t\t\t\t$object.each(value, (field, item) => {\n\t\t\t\t\tvalue[field] = this.convertToSpecialFormat(field, item, options);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn value;\n\t\t}, options.indent);\n\t}\n\n\t/**\n\t * ==========================================================================\n\t * CSV\n\t * ==========================================================================\n\t */\n\n\t/**\n\t * Returns a data:uri representation of a CSV file with chart data.\n\t *\n\t * @param customOptions Format options\n\t * @return Promise\n\t */\n\tpublic async exportCSV(customOptions?: IExportingCSVOptions): Promise<string> {\n\t\treturn \"data:\" + this.getContentType(\"csv\") + \";\" + this.get(\"charset\", \"utf-8\") + \",\" + encodeURIComponent(await this.getCSV(customOptions));\n\t}\n\n\t/**\n\t * Returns a CSV with export data.\n\t *\n\t * @param customOptions CSV options\n\t * @return Promise\n\t */\n\tpublic async getCSV(customOptions?: IExportingCSVOptions): Promise<string> {\n\t\tconst options: any = this._getFormatOptions(\"csv\", customOptions);\n\n\t\t// Init output\n\t\tlet csv = \"\";\n\n\t\t// Add rows\n\t\tlet br = \"\";\n\t\tconst data = this.getData(\"csv\", options);\n\n\t\t// Data fields\n\t\tconst dataFields = this.getDataFields(data);\n\n\t\t// Vertical or horizontal (default) layout\n\t\tif (options.pivot) {\n\n\t\t\t// Data fields order\n\t\t\tconst dataFieldsOrder: string[] = this.get(\"dataFieldsOrder\", []);\n\n\t\t\t$object.eachOrdered(dataFields, (key, val) => {\n\t\t\t\tlet dataRow = [];\n\t\t\t\tif (options.addColumnNames) {\n\t\t\t\t\tdataRow.push(val);\n\t\t\t\t}\n\t\t\t\tfor (let len = data.length, i = 0; i < len; i++) {\n\t\t\t\t\tlet dataValue = data[i][key];\n\t\t\t\t\tdataRow.push(this.convertToSpecialFormat(key, dataValue, options, true));\n\t\t\t\t}\n\t\t\t\tcsv += br + this.getCSVRow(dataRow, options, undefined, true);\n\t\t\t\tbr = \"\\n\";\n\t\t\t}, (a, b) => {\n\t\t\t\tlet ai = dataFieldsOrder.indexOf(a);\n\t\t\t\tlet bi = dataFieldsOrder.indexOf(b);\n\t\t\t\tif (ai > bi) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t\telse if (ai < bi) {\n\t\t\t\t\treturn 1\n\t\t\t\t}\n\t\t\t\treturn 0;\n\t\t\t});\n\n\t\t}\n\n\t\telse {\n\t\t\tfor (let len = data.length, i = 0; i < len; i++) {\n\t\t\t\tlet row = this.getCSVRow(data[i], options, dataFields);\n\t\t\t\tif (options.reverse) {\n\t\t\t\t\tcsv = row + br + csv;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcsv += br + row;\n\t\t\t\t}\n\t\t\t\tbr = \"\\n\";\n\t\t\t}\n\n\t\t\t// Add column names?\n\t\t\tif (options.addColumnNames) {\n\t\t\t\tcsv = this.getCSVRow(dataFields, options, undefined, true) + br + csv;\n\t\t\t}\n\t\t}\n\n\t\treturn csv;\n\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getCSVRow(row: any, options: IExportingCSVOptions, dataFields: any, asIs: boolean = false): string {\n\n\t\t// Init\n\t\tlet separator = options.separator || \",\";\n\t\tlet items: any[] = [];\n\n\t\t// Data fields\n\t\tif (!dataFields) {\n\t\t\tdataFields = {};\n\t\t\t$object.each(row, (key, value) => {\n\t\t\t\tdataFields[key] = value;\n\t\t\t});\n\t\t}\n\n\t\t// Data fields order\n\t\tconst dataFieldsOrder: string[] = this.get(\"dataFieldsOrder\", []);\n\n\t\t// Process each row item\n\t\t$object.eachOrdered(dataFields, (key, _name) => {\n\n\t\t\t// Get value\n\t\t\tlet value = this.convertEmptyValue(key, row[key], options);\n\n\t\t\t// Check if we need to skip\n\t\t\t// This is no longer required because we are iterating via dataFields anyway\n\t\t\t/*if (this.dataFields != null && this.dataFields[key] == null) {\n\t\t\t\treturn;\n\t\t\t}*/\n\n\t\t\t// Convert dates\n\t\t\tlet item = asIs ? value : this.convertToSpecialFormat(key, value, options);\n\n\t\t\t// Cast and escape doublequotes\n\t\t\titem = \"\" + item;\n\t\t\titem = item.replace(/\"/g, '\"\"');\n\n\t\t\t// Enclose into double quotes\n\t\t\tif (options.forceQuotes || (item.search(new RegExp(\"\\\"|\\n|\" + separator, \"g\")) >= 0)) {\n\t\t\t\titem = \"\\\"\" + item + \"\\\"\";\n\t\t\t}\n\n\t\t\t// Add to item\n\t\t\titems.push(item);\n\t\t}, (a, b) => {\n\t\t\tlet ai = dataFieldsOrder.indexOf(a);\n\t\t\tlet bi = dataFieldsOrder.indexOf(b);\n\t\t\tif (ai > bi) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\telse if (ai < bi) {\n\t\t\t\treturn -1\n\t\t\t}\n\t\t\treturn 0;\n\t\t});\n\n\t\treturn items.join(separator);\n\t}\n\n\t/**\n\t * ==========================================================================\n\t * HTML\n\t * ==========================================================================\n\t */\n\n\t/**\n\t * Returns a data:uri representation of an HTML file with chart data.\n\t *\n\t * @param customOptions Format options\n\t * @return Promise\n\t */\n\tpublic async exportHTML(customOptions?: IExportingHTMLOptions): Promise<string> {\n\t\treturn \"data:\" + this.getContentType(\"html\") + \";\" + this.get(\"charset\", \"utf-8\") + \",\" + encodeURIComponent(await this.getHTML(customOptions));\n\t}\n\n\t/**\n\t * Returns an HTML with a table with export data.\n\t *\n\t * @param customOptions HTML options\n\t * @return Promise\n\t */\n\tpublic async getHTML(customOptions?: IExportingHTMLOptions): Promise<string> {\n\t\tconst options: any = this._getFormatOptions(\"html\", customOptions);\n\n\t\t// Init output\n\t\tlet html = \"<table>\";\n\t\tif (options.tableClass) {\n\t\t\thtml = \"<table class=\\\"\" + options.tableClass + \"\\\">\";\n\t\t}\n\n\t\t// Get data\n\t\tconst data = this.getData(\"html\", options);\n\t\tconst dataFields = this.getDataFields(data);\n\n\t\t// Vertical or horizontal (default) layout\n\t\tif (options.pivot) {\n\n\t\t\t// Data fields order\n\t\t\tconst dataFieldsOrder: string[] = this.get(\"dataFieldsOrder\", []);\n\n\t\t\thtml += \"\\n<tbody>\";\n\n\t\t\t$object.eachOrdered(dataFields, (key, val) => {\n\t\t\t\tlet dataRow = [];\n\t\t\t\tif (options.addColumnNames) {\n\t\t\t\t\tdataRow.push(val);\n\t\t\t\t}\n\t\t\t\tfor (let len = data.length, i = 0; i < len; i++) {\n\t\t\t\t\tlet dataValue = data[i][key];\n\t\t\t\t\tdataRow.push(this.convertToSpecialFormat(key, dataValue, options, true));\n\t\t\t\t}\n\t\t\t\thtml += \"\\n\" + this.getHTMLRow(dataRow, options, undefined, true);\n\t\t\t}, (a, b) => {\n\t\t\t\tlet ai = dataFieldsOrder.indexOf(a);\n\t\t\t\tlet bi = dataFieldsOrder.indexOf(b);\n\t\t\t\tif (ai > bi) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t\telse if (ai < bi) {\n\t\t\t\t\treturn 1\n\t\t\t\t}\n\t\t\t\treturn 0;\n\t\t\t});\n\n\t\t\thtml += \"\\n</tbody>\";\n\n\t\t}\n\n\t\telse {\n\t\t\t// Add column names?\n\t\t\tif (options.addColumnNames) {\n\t\t\t\thtml += \"\\n<thead>\\n\" + this.getHTMLRow(dataFields, options, undefined, true, true) + \"\\n</thead>\";\n\t\t\t}\n\n\t\t\thtml += \"\\n<tbody>\";\n\n\t\t\tfor (let len = data.length, i = 0; i < len; i++) {\n\t\t\t\thtml += \"\\n\" + this.getHTMLRow(data[i], options, dataFields);\n\t\t\t}\n\n\t\t\thtml += \"\\n</tbody>\";\n\t\t}\n\n\t\thtml += \"\\n</table>\";\n\n\t\treturn html;\n\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getHTMLRow(row: any, options: IExportingHTMLOptions, dataFields: any, asIs: boolean = false, headerRow: boolean = false): string {\n\n\t\t// Init output\n\t\tlet html = \"\\t<tr>\";\n\t\tif (options.rowClass) {\n\t\t\thtml = \"\\t<tr class=\\\"\" + options.rowClass + \"\\\">\";\n\t\t}\n\n\t\t// Data fields\n\t\tif (!dataFields) {\n\t\t\tdataFields = row;\n\t\t}\n\n\t\t// Data fields order\n\t\tconst dataFieldsOrder: string[] = this.get(\"dataFieldsOrder\", []);\n\n\t\t// th or dh?\n\t\tconst tag = headerRow ? \"th\" : \"td\";\n\n\t\t// Process each row item\n\t\tlet first = true;\n\t\t$object.eachOrdered(dataFields, (key, _name) => {\n\n\t\t\t// Get value\n\t\t\tlet value = this.convertEmptyValue(key, row[key], options);\n\n\t\t\t// Convert dates\n\t\t\tlet item = asIs ? value : this.convertToSpecialFormat(key, value, options);\n\n\t\t\t// Escape HTML entities\n\t\t\titem = \"\" + item;\n\t\t\titem = item.replace(/[\\u00A0-\\u9999<>\\&]/gim, function(i: string) {\n\t\t\t\treturn \"&#\" + i.charCodeAt(0) + \";\";\n\t\t\t});\n\n\t\t\t// Which tag to use\n\t\t\tlet useTag = tag;\n\t\t\tif (options.pivot && first) {\n\t\t\t\tuseTag = \"th\";\n\t\t\t}\n\n\t\t\t// Add cell\n\t\t\tif (options.cellClass) {\n\t\t\t\thtml += \"\\n\\t\\t<\" + useTag + \" class=\\\"\" + options.cellClass + \"\\\">\" + item + \"</\" + useTag + \">\";\n\t\t\t}\n\t\t\telse {\n\t\t\t\thtml += \"\\n\\t\\t<\" + useTag + \">\" + item + \"</\" + useTag + \">\";\n\t\t\t}\n\n\t\t\tfirst = false;\n\t\t}, (a, b) => {\n\t\t\tlet ai = dataFieldsOrder.indexOf(a);\n\t\t\tlet bi = dataFieldsOrder.indexOf(b);\n\t\t\tif (ai > bi) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\telse if (ai < bi) {\n\t\t\t\treturn -1\n\t\t\t}\n\t\t\treturn 0;\n\t\t});\n\n\t\thtml += \"\\n\\t</tr>\";\n\n\t\treturn html;\n\t}\n\n\t/**\n\t * ==========================================================================\n\t * XLSX\n\t * ==========================================================================\n\t */\n\n\t/**\n\t * Returns a data:uri representation of an XLSX file with chart data.\n\t *\n\t * @param customOptions Format options\n\t * @return Promise\n\t */\n\tpublic async exportXLSX(customOptions?: IExportingXLSXOptions): Promise<string> {\n\t\treturn \"data:\" + this.getContentType(\"xlsx\") + \";\" + this.get(\"charset\", \"utf-8\") + \",\" + encodeURIComponent(await this.getXLSX(customOptions));\n\t}\n\n\t/**\n\t * Returns a data:uri of XLSX data.\n\t *\n\t * @param customOptions Format options\n\t * @return Promise\n\t */\n\tpublic async getXLSX(customOptions?: IExportingXLSXOptions): Promise<string> {\n\n\t\tconst options: any = this._getFormatOptions(\"xlsx\", customOptions);\n\n\t\t// Load xlsx\n\t\tlet XLSX = await this.getXLSXLib();\n\n\t\t// Create workbook options\n\t\tlet wbOptions = {\n\t\t\tbookType: \"xlsx\",\n\t\t\tbookSST: false,\n\t\t\ttype: \"base64\",\n\t\t\t//dateNF: 'yyyy-mm-dd'\n\t\t};\n\n\t\t// Get sheet name\n\t\tlet sheetName = this._normalizeExcelSheetName(this.get(\"title\", this._t(\"Data\")));\n\n\t\t// Create a workbook\n\t\tlet wb = {\n\t\t\tSheetNames: <any>[sheetName],\n\t\t\tSheets: <any>{}\n\t\t};\n\n\t\t// Init worksheet data\n\t\tlet wsData: Array<any> = [];\n\n\t\t// Get data\n\t\tconst data = this.getData(\"html\", options);\n\t\tconst dataFields = this.getDataFields(data);\n\n\t\t// Vertical or horizontal (default) layout\n\t\tif (options.pivot) {\n\n\t\t\t// Data fields order\n\t\t\tconst dataFieldsOrder: string[] = this.get(\"dataFieldsOrder\", []);\n\n\t\t\t$object.eachOrdered(dataFields, (key, val) => {\n\t\t\t\tlet dataRow = [];\n\t\t\t\tif (options.addColumnNames) {\n\t\t\t\t\tdataRow.push(val);\n\t\t\t\t}\n\t\t\t\tfor (let len = data.length, i = 0; i < len; i++) {\n\t\t\t\t\tlet dataValue = data[i][key];\n\t\t\t\t\tdataRow.push(this.convertToSpecialFormat(key, dataValue, options, true));\n\t\t\t\t}\n\t\t\t\twsData.push(this.getXLSXRow(dataRow, options, undefined, true));\n\t\t\t}, (a, b) => {\n\t\t\t\t//console.log(a, b)\n\t\t\t\tlet ai = dataFieldsOrder.indexOf(a);\n\t\t\t\tlet bi = dataFieldsOrder.indexOf(b);\n\t\t\t\tif (ai > bi) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t\telse if (ai < bi) {\n\t\t\t\t\treturn -1\n\t\t\t\t}\n\t\t\t\treturn 0;\n\t\t\t});\n\n\t\t}\n\n\t\telse {\n\t\t\t// Add column names?\n\t\t\tif (options.addColumnNames) {\n\t\t\t\twsData.push(this.getXLSXRow(dataFields, options, undefined, true));\n\t\t\t}\n\n\t\t\t// Add lines\n\t\t\tfor (let len = data.length, i = 0; i < len; i++) {\n\t\t\t\twsData.push(this.getXLSXRow(data[i], options, dataFields));\n\t\t\t}\n\t\t}\n\n\t\t// Create sheet and add data\n\t\twb.Sheets[sheetName] = XLSX.utils.aoa_to_sheet(wsData);\n\n\t\tthis.events.dispatch(\"workbookready\", {\n\t\t\ttype: \"workbookready\",\n\t\t\tformat: \"xlsx\",\n\t\t\toptions: options,\n\t\t\tworkbook: wb,\n\t\t\tworkbookOptions: wbOptions,\n\t\t\txlsx: XLSX,\n\t\t\ttarget: this\n\t\t});\n\n\t\treturn XLSX.write(wb, wbOptions);\n\t}\n\n\tprivate _normalizeExcelSheetName(name: string): string {\n\t\tname = name.replace(/([:\\\\\\/?*\\[\\]]+)/g, \" \");\n\t\treturn name.length > 30 ? name.substr(0, 30) + \"...\" : name;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getXLSXRow(row: any, options: IExportingXLSXOptions, dataFields: any, asIs: boolean = false): any[] {\n\n\t\t// Init\n\t\tlet items: any[] = [];\n\n\t\t// Data fields\n\t\tif (!dataFields) {\n\t\t\tdataFields = row;\n\t\t}\n\n\t\t// Data fields order\n\t\tconst dataFieldsOrder: string[] = this.get(\"dataFieldsOrder\", []);\n\n\t\t// Process each row item\n\t\t$object.eachOrdered(dataFields, (key, _name) => {\n\n\t\t\t// Get value\n\t\t\tlet value = this.convertEmptyValue(key, row[key], options);\n\n\t\t\t// Convert dates\n\t\t\tlet item = asIs ? value : this.convertToSpecialFormat(key, value, options, true);\n\n\t\t\titems.push(item);\n\t\t}, (a, b) => {\n\t\t\t//console.log(a, b)\n\t\t\tlet ai = dataFieldsOrder.indexOf(a);\n\t\t\tlet bi = dataFieldsOrder.indexOf(b);\n\t\t\tif (ai > bi) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\telse if (ai < bi) {\n\t\t\t\treturn -1\n\t\t\t}\n\t\t\treturn 0;\n\t\t});\n\n\t\treturn items;\n\t}\n\n\n\t/**\n\t * @ignore\n\t */\n\tprivate async _xlsx(): Promise<any> {\n\t\treturn await import(/* webpackChunkName: \"xlsx\" */ \"xlsx/dist/xlsx.core.min.js\");\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getXLSXLib(): Promise<any> {\n\t\treturn this._xlsx();\n\t}\n\n\t/**\n\t * ==========================================================================\n\t * PDF\n\t * ==========================================================================\n\t */\n\n\t/**\n\t * Returns a data:uri representation of a PDF file with chart image.\n\t *\n\t * @param customOptions Format options\n\t * @return Promise\n\t */\n\tpublic async exportPDF(customOptions?: IExportingPDFOptions): Promise<string> {\n\t\treturn \"data:\" + this.getContentType(\"pdf\") + \";\" + this.get(\"charset\", \"utf-8\") + \",\" + encodeURIComponent(await this.getPDF(customOptions, true));\n\t}\n\n\t/**\n\t * Returns a data:uri representation of a PDF file with chart data.\n\t *\n\t * @param customOptions Format options\n\t * @return Promise\n\t */\n\tpublic async exportPDFData(customOptions?: IExportingDataOptions): Promise<string> {\n\t\treturn \"data:\" + this.getContentType(\"pdf\") + \";\" + this.get(\"charset\", \"utf-8\") + \",\" + encodeURIComponent(await this.getPDF(customOptions, false, true));\n\t}\n\n\t/**\n\t * Returns Base64-encoded binary data for a PDF file.\n\t * @param customOptions PDF options\n\t * @param includeImage Include chart snapshot\n\t * @param includeData Include data\n\t * @return Promise\n\t */\n\tpublic async getPDF(customOptions?: IExportingPDFOptions, includeImage: boolean = true, includeData: boolean = false): Promise<string> {\n\n\t\tconst options: any = this._getFormatOptions(\"pdf\", customOptions);\n\t\tconst dataOptions: any = this._getFormatOptions(\"pdfdata\", customOptions);\n\t\tconst orientation: \"landscape\" | \"portrait\" = options.pageOrientation || \"portrait\";\n\n\t\t// Get image\n\t\tlet image: string;\n\t\tif (includeImage) {\n\t\t\timage = await this.exportImage(options.imageFormat || \"png\", options);\n\t\t}\n\t\t// Load pdfmake\n\n\t\tconst pdfmake = await this.getPdfmake();\n\n\t\t// Defaults\n\t\tconst defaultMargins = [30, 30, 30, 30];\n\n\t\t// Init content for PDF\n\t\tlet doc = {\n\t\t\tpageSize: options.pageSize || \"A4\",\n\t\t\tpageOrientation: orientation,\n\t\t\tpageMargins: options.pageMargins || defaultMargins,\n\t\t\tdefaultStyle: {\n\t\t\t\tfont: options.font ? options.font.name : undefined\n\t\t\t},\n\t\t\t//header: <any>[],\n\t\t\tcontent: <any>[]\n\t\t};\n\n\t\t// Should we add title?\n\t\tconst title = this.get(\"title\");\n\n\t\tlet extraMargin = 0;\n\n\t\tif (title) {\n\t\t\tdoc.content.push({\n\t\t\t\ttext: title,\n\t\t\t\tfontSize: options.fontSize || 14,\n\t\t\t\tbold: true,\n\t\t\t\tmargin: [0, 0, 0, 15]\n\t\t\t});\n\n\t\t\t// Add some leftover margin for title\n\t\t\textraMargin += 50;\n\t\t}\n\n\t\t// Add page URL?\n\t\tif (options.addURL) {\n\t\t\tdoc.content.push({\n\t\t\t\ttext: this._t(\"Saved from\") + \": \" + document.location.href,\n\t\t\t\tfontSize: options.fontSize,\n\t\t\t\tmargin: [0, 0, 0, 15]\n\t\t\t});\n\n\t\t\t// Add some leftover margin for URL\n\t\t\textraMargin += 50;\n\t\t}\n\n\t\t// Add image\n\t\tif (includeImage && image!) {\n\t\t\tdoc.content.push({\n\t\t\t\timage: image!,\n\t\t\t\talignment: options.align || \"left\",\n\t\t\t\tfit: this.getPageSizeFit(doc.pageSize, doc.pageMargins, extraMargin, orientation)\n\t\t\t});\n\t\t}\n\n\t\t// Add data\n\t\tif ((includeData || options.includeData) && this.hasData()) {\n\t\t\tdoc.content.push({\n\t\t\t\ttable: await this.getPDFData(dataOptions),\n\t\t\t\tfontSize: options.fontSize || 14\n\t\t\t});\n\t\t}\n\n\t\tlet fonts: { [name: string]: { [types: string]: string } } | null = null;\n\t\tlet vfs: { [path: string]: string } | null = null;\n\n\t\tfunction addFont(font: IFont) {\n\t\t\tconst paths: { [path: string]: string } = {};\n\n\t\t\tpaths.normal = font.normal.path;\n\t\t\tvfs![font.normal.path] = font.normal.bytes;\n\n\t\t\tif (font.bold) {\n\t\t\t\tpaths.bold = font.bold.path;\n\t\t\t\tvfs![font.bold.path] = font.bold.bytes;\n\n\t\t\t} else {\n\t\t\t\tpaths.bold = font.normal.path;\n\t\t\t}\n\n\t\t\tif (font.italics) {\n\t\t\t\tpaths.italics = font.italics.path;\n\t\t\t\tvfs![font.italics.path] = font.italics.bytes;\n\n\t\t\t} else {\n\t\t\t\tpaths.italics = font.normal.path;\n\t\t\t}\n\n\t\t\tif (font.bolditalics) {\n\t\t\t\tpaths.bolditalics = font.bolditalics.path;\n\t\t\t\tvfs![font.bolditalics.path] = font.bolditalics.bytes;\n\n\t\t\t} else {\n\t\t\t\tpaths.bolditalics = font.normal.path;\n\t\t\t}\n\n\t\t\tfonts![font.name] = paths;\n\t\t}\n\n\t\tif (options.font) {\n\t\t\tfonts = {};\n\t\t\tvfs = {};\n\t\t\taddFont(options.font);\n\n\t\t\tif (options.extraFonts) {\n\t\t\t\t$array.each(options.extraFonts, addFont);\n\t\t\t}\n\t\t}\n\n\t\tthis.events.dispatch(\"pdfdocready\", {\n\t\t\ttype: \"pdfdocready\",\n\t\t\tformat: \"pdf\",\n\t\t\toptions: options,\n\t\t\tdoc: doc,\n\t\t\ttarget: this\n\t\t});\n\n\t\t// Create PDF\n\t\treturn new Promise<string>((success, _error) => {\n\t\t\tpdfmake.createPdf(doc, null, fonts, vfs).getBase64((uri: string) => {\n\t\t\t\tsuccess(uri);\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic async getPDFData(customOptions?: IExportingDataOptions): Promise<any> {\n\n\t\tconst options: any = this._getFormatOptions(\"pdfdata\", customOptions);\n\n\t\t// Init output\n\t\tlet content = <any>{\n\t\t\t\"body\": <any>[]\n\t\t};\n\n\t\t// Get data\n\t\tconst data = this.getData(\"html\", options);\n\t\tconst dataFields = this.getDataFields(data);\n\n\t\t// Vertical or horizontal (default) layout\n\t\tif (options.pivot) {\n\n\t\t\t// Data fields order\n\t\t\tconst dataFieldsOrder: string[] = this.get(\"dataFieldsOrder\", []);\n\n\t\t\t$object.eachOrdered(dataFields, (key, val) => {\n\t\t\t\tlet dataRow = [];\n\t\t\t\tif (options.addColumnNames) {\n\t\t\t\t\tdataRow.push(val);\n\t\t\t\t}\n\t\t\t\tfor (let len = data.length, i = 0; i < len; i++) {\n\t\t\t\t\tlet dataValue = data[i][key];\n\t\t\t\t\tdataRow.push(this.convertToSpecialFormat(key, dataValue, options, true));\n\t\t\t\t}\n\t\t\t\tcontent.body.push(this.getPDFDataRow(dataRow, options, undefined, true));\n\t\t\t}, (a, b) => {\n\t\t\t\t//console.log(a, b)\n\t\t\t\tlet ai = dataFieldsOrder.indexOf(a);\n\t\t\t\tlet bi = dataFieldsOrder.indexOf(b);\n\t\t\t\tif (ai > bi) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t\telse if (ai < bi) {\n\t\t\t\t\treturn -1\n\t\t\t\t}\n\t\t\t\treturn 0;\n\t\t\t});\n\n\t\t}\n\n\t\telse {\n\n\t\t\t// Add column names?\n\t\t\tif (options.addColumnNames) {\n\t\t\t\tcontent.body.push(this.getPDFDataRow(dataFields, options, undefined, true));\n\t\t\t\tcontent.headerRows = 1;\n\t\t\t}\n\n\t\t\tfor (let len = data.length, i = 0; i < len; i++) {\n\t\t\t\tcontent.body.push(this.getPDFDataRow(data[i], options, dataFields));\n\t\t\t}\n\n\t\t}\n\n\t\treturn content;\n\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getPDFDataRow(row: any, options: IExportingDataOptions, dataFields?: any, asIs: boolean = false): Array<string> {\n\n\t\t// Init\n\t\tlet items: any[] = [];\n\n\t\t// Data fields\n\t\tif (!dataFields) {\n\t\t\tdataFields = row;\n\t\t}\n\n\t\t// Data fields order\n\t\tconst dataFieldsOrder: string[] = this.get(\"dataFieldsOrder\", []);\n\n\t\t// Process each row item\n\t\t$object.eachOrdered(dataFields, (key, _name) => {\n\n\t\t\t// Get value\n\t\t\tlet value = this.convertEmptyValue(key, row[key], options);\n\n\t\t\t// Convert dates\n\t\t\tlet item = asIs ? value : this.convertToSpecialFormat(key, value, options);\n\t\t\titem = \"\" + item;\n\n\t\t\t// Add to item\n\t\t\titems.push(item);\n\t\t}, (a, b) => {\n\t\t\t//console.log(a, b)\n\t\t\tlet ai = dataFieldsOrder.indexOf(a);\n\t\t\tlet bi = dataFieldsOrder.indexOf(b);\n\t\t\tif (ai > bi) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\telse if (ai < bi) {\n\t\t\t\treturn -1\n\t\t\t}\n\t\t\treturn 0;\n\t\t});\n\n\t\treturn items;\n\t}\n\n\t/**\n\t * Returns pdfmake instance.\n\t *\n\t * @ignore\n\t * @return Instance of pdfmake\n\t */\n\tpublic getPdfmake(): Promise<any> {\n\t\tif (pdfmakePromise === undefined) {\n\t\t\tpdfmakePromise = _pdfmake();\n\t\t}\n\n\t\treturn pdfmakePromise;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getPageSizeFit(pageSize: pageSizes, margins: number | number[], extraMargin: number = 0, orientation: \"landscape\" | \"portrait\" = \"portrait\"): number[] {\n\n\t\t// Check margins\n\t\tlet newMargins = [0, 0, 0, 0];\n\t\tif ($type.isNumber(margins)) {\n\t\t\tnewMargins = [margins, margins, margins, margins];\n\t\t}\n\t\telse if (margins.length == 2) {\n\t\t\tnewMargins = [margins[0], margins[1], margins[0], margins[1]];\n\t\t}\n\t\telse if (margins.length == 4) {\n\t\t\tnewMargins = margins;\n\t\t}\n\n\t\t// Define available page sizes\n\t\tlet sizes = {\n\t\t\t\"4A0\": [4767.87, 6740.79],\n\t\t\t\"2A0\": [3370.39, 4767.87],\n\t\t\tA0: [2383.94, 3370.39],\n\t\t\tA1: [1683.78, 2383.94],\n\t\t\tA2: [1190.55, 1683.78],\n\t\t\tA3: [841.89, 1190.55],\n\t\t\tA4: [595.28, 841.89],\n\t\t\tA5: [419.53, 595.28],\n\t\t\tA6: [297.64, 419.53],\n\t\t\tA7: [209.76, 297.64],\n\t\t\tA8: [147.40, 209.76],\n\t\t\tA9: [104.88, 147.40],\n\t\t\tA10: [73.70, 104.88],\n\t\t\tB0: [2834.65, 4008.19],\n\t\t\tB1: [2004.09, 2834.65],\n\t\t\tB2: [1417.32, 2004.09],\n\t\t\tB3: [1000.63, 1417.32],\n\t\t\tB4: [708.66, 1000.63],\n\t\t\tB5: [498.90, 708.66],\n\t\t\tB6: [354.33, 498.90],\n\t\t\tB7: [249.45, 354.33],\n\t\t\tB8: [175.75, 249.45],\n\t\t\tB9: [124.72, 175.75],\n\t\t\tB10: [87.87, 124.72],\n\t\t\tC0: [2599.37, 3676.54],\n\t\t\tC1: [1836.85, 2599.37],\n\t\t\tC2: [1298.27, 1836.85],\n\t\t\tC3: [918.43, 1298.27],\n\t\t\tC4: [649.13, 918.43],\n\t\t\tC5: [459.21, 649.13],\n\t\t\tC6: [323.15, 459.21],\n\t\t\tC7: [229.61, 323.15],\n\t\t\tC8: [161.57, 229.61],\n\t\t\tC9: [113.39, 161.57],\n\t\t\tC10: [79.37, 113.39],\n\t\t\tRA0: [2437.80, 3458.27],\n\t\t\tRA1: [1729.13, 2437.80],\n\t\t\tRA2: [1218.90, 1729.13],\n\t\t\tRA3: [864.57, 1218.90],\n\t\t\tRA4: [609.45, 864.57],\n\t\t\tSRA0: [2551.18, 3628.35],\n\t\t\tSRA1: [1814.17, 2551.18],\n\t\t\tSRA2: [1275.59, 1814.17],\n\t\t\tSRA3: [907.09, 1275.59],\n\t\t\tSRA4: [637.80, 907.09],\n\t\t\tEXECUTIVE: [521.86, 756.00],\n\t\t\tFOLIO: [612.00, 936.00],\n\t\t\tLEGAL: [612.00, 1008.00],\n\t\t\tLETTER: [612.00, 792.00],\n\t\t\tTABLOID: [792.00, 1224.00]\n\t\t};\n\n\t\t// Calculate size\n\t\tlet fitSize = sizes[pageSize];\n\t\tif (orientation == \"landscape\") {\n\t\t\tfitSize.reverse();\n\t\t}\n\t\tfitSize[0] -= newMargins[0] + newMargins[2];\n\t\tfitSize[1] -= newMargins[1] + newMargins[3] + extraMargin;\n\t\treturn fitSize;\n\t}\n\n\t/**\n\t * ==========================================================================\n\t * Data\n\t * ==========================================================================\n\t */\n\n\t/**\n\t\t* Returns `true` if `dataSource` is set, and the contents are proper\n\t\t* data (array).\n\t\t*\n\t\t* @return Has data?\n\t\t*/\n\tpublic hasData(): boolean {\n\t\tconst dataSource = this.get(\"dataSource\");\n\t\treturn $type.isArray(dataSource) && dataSource.length ? true : false;\n\t}\n\n\t/**\n\t * Returns processed data according to format options.\n\t *\n\t * @param format Format\n\t * @param customOptions Format options\n\t * @param renameFields Should fields be renamed?\n\t * @return Processed data\n\t */\n\tpublic getData(format: ExportingFormats, customOptions?: IExportingDataOptions, renameFields: boolean = false): any {\n\t\tconst options: any = this._getFormatOptions(format, customOptions);\n\t\tconst dataSource = this.get(\"dataSource\", []);\n\t\tlet data: any = dataSource;\n\n\t\t// Re-generate the data based on data fields if set\n\t\tconst dataFields = this.get(\"dataFields\");\n\t\tif (dataFields && $type.isArray(dataSource)) {\n\t\t\tdata = [];\n\t\t\t$array.each(dataSource, (row) => {\n\t\t\t\tif ($type.isObject(row)) {\n\t\t\t\t\tconst newRow: any = {}\n\t\t\t\t\t$object.each(dataFields, (field, value) => {\n\t\t\t\t\t\tif (dataFields![field] != null) {\n\t\t\t\t\t\t\tnewRow[renameFields ? value : field] = this.convertToSpecialFormat(field, row[field], options);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tdata.push(newRow);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tconst event: any = {\n\t\t\ttype: \"dataprocessed\",\n\t\t\tformat: format,\n\t\t\toptions: options,\n\t\t\tdata: data,\n\t\t\ttarget: this\n\t\t};\n\n\t\tthis.events.dispatch(\"dataprocessed\", event);\n\n\t\treturn event.data;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getDataFields(data: any): { [index: string]: string } {\n\t\tlet dataFields = this.get(\"dataFields\");\n\t\tif (!dataFields) {\n\t\t\tdataFields = {};\n\t\t\tif ($type.isArray(data) && data.length) {\n\t\t\t\t$array.each(data, (row) => {\n\t\t\t\t\t$object.each(row, (key, _value) => {\n\t\t\t\t\t\tif (dataFields![key] == null) {\n\t\t\t\t\t\t\tdataFields![key] = key;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn dataFields!;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic convertEmptyValue(_field: string, value: any, options: IExportingDataOptions): any {\n\t\treturn value != null ? value : options.emptyAs;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic convertToSpecialFormat(field: any, value: any, options: IExportingDataOptions, keepOriginal?: boolean): any {\n\n\t\t// Is this a timestamp or duration?\n\t\tif (typeof value == \"number\") {\n\t\t\tif (this.isDateField(field)) {\n\t\t\t\tvalue = new Date(value);\n\t\t\t}\n\t\t\telse if (this.isNumericField(field) && this.get(\"numberFormat\")) {\n\t\t\t\treturn this._root.numberFormatter.format(value, this.get(\"numberFormat\"));\n\t\t\t}\n\t\t\telse if (this.isDurationField(field)) {\n\t\t\t\treturn this._root.durationFormatter.format(value, this.get(\"durationFormat\"), this.get(\"durationUnit\"));\n\t\t\t}\n\t\t}\n\n\t\tif (value instanceof Date) {\n\t\t\tif (options.useTimestamps) {\n\t\t\t\tvalue = value.getTime();\n\t\t\t}\n\t\t\telse if (options.useLocale) {\n\t\t\t\tif (!keepOriginal) {\n\t\t\t\t\tvalue = value.toLocaleString();\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvalue = this._root.dateFormatter.format(value, this.get(\"dateFormat\"));\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic isDateField(field: string): boolean {\n\t\treturn this.get(\"dateFields\")!.indexOf(field) !== -1;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic isNumericField(field: string): boolean {\n\t\treturn this.get(\"numericFields\")!.indexOf(field) !== -1;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic isDurationField(field: string): boolean {\n\t\treturn this.get(\"durationFields\")!.indexOf(field) !== -1;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getContentType(type: ExportingFormats): string {\n\t\tlet contentType = \"\";\n\t\tswitch (type) {\n\t\t\tcase \"png\":\n\t\t\t\tcontentType = \"image/\" + type;\n\t\t\t\tbreak;\n\t\t\tcase \"jpg\":\n\t\t\t\tcontentType = \"image/jpeg\";\n\t\t\t\tbreak;\n\t\t\tcase \"csv\":\n\t\t\t\tcontentType = \"text/csv\";\n\t\t\t\tbreak;\n\t\t\tcase \"json\":\n\t\t\t\tcontentType = \"application/json\";\n\t\t\t\tbreak;\n\t\t\tcase \"html\":\n\t\t\t\tcontentType = \"text/html\";\n\t\t\t\tbreak;\n\t\t\tcase \"pdf\":\n\t\t\tcase \"pdfdata\":\n\t\t\t\tcontentType = \"application/pdf\";\n\t\t\t\tbreak;\n\t\t\tcase \"xlsx\":\n\t\t\t\tcontentType = \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tcontentType = \"application/octet-stream\";\n\t\t}\n\n\t\treturn contentType;\n\t}\n\n\tprotected getDisposableCanvas(): HTMLCanvasElement {\n\t\tlet canvas = document.createElement(\"canvas\");\n\t\tcanvas.style.position = \"fixed\";\n\t\tcanvas.style.top = \"-10000px\";\n\t\tthis._root.dom.appendChild(canvas);\n\t\treturn canvas;\n\t}\n\n\tprotected disposeCanvas(canvas: HTMLCanvasElement): void {\n\t\tthis._root.dom.removeChild(canvas);\n\t}\n\n\n\t/**\n\t * @ignore\n\t */\n\tpublic findBackgroundColor(element: Element): Color {\n\n\t\t// Check if element has styles set\n\t\tlet opacity = 1;\n\t\tlet currentColor = getComputedStyle(element, \"background-color\").getPropertyValue(\"background-color\");\n\n\t\t// Check opacity\n\t\tif (currentColor.match(/[^,]*,[^,]*,[^,]*,[ ]?0/) || currentColor == \"transparent\") {\n\t\t\topacity = 0;\n\t\t}\n\n\t\tif (opacity == 0) {\n\t\t\tlet parent = element.parentElement;// || <Element>element.parentNode;\n\n\t\t\t// Completely transparent. Look for a parent\n\t\t\tif (parent) {\n\t\t\t\treturn this.findBackgroundColor(parent);\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn Color.fromHex(0xffffff);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\treturn Color.fromCSS(currentColor);\n\t\t}\n\n\t}\n\n\t/**\n\t * Triggers download of the file.\n\t *\n\t * @param uri data:uri with file content\n\t * @param fileName File name\n\t * @param addBOM Should download include byte order mark?\n\t * @return Promise\n\t */\n\tpublic streamFile(uri: string, fileName: string, addBOM: boolean = false): boolean {\n\n\t\tif (this.blobDownloadSupport()) {\n\n\t\t\t/**\n\t\t\t * Supports Blob object.\n\t\t\t * Use it.\n\t\t\t */\n\t\t\tlet link = document.createElement(\"a\");\n\t\t\tlink.download = fileName;\n\t\t\tdocument.body.appendChild(link);\n\n\t\t\t// Extract content type and get pure data without headers\n\t\t\tlet parts = uri.split(\";\");\n\t\t\tlet contentType = parts!.shift()!.replace(/data:/, \"\");\n\n\t\t\turi = decodeURIComponent(parts.join(\";\").replace(/^[^,]*,/, \"\"));\n\n\t\t\tif ([\"image/svg+xml\", \"application/json\", \"text/csv\", \"text/html\"].indexOf(contentType) == -1) {\n\t\t\t\ttry {\n\t\t\t\t\tlet decoded = atob(uri);\n\t\t\t\t\turi = decoded;\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// Error occurred, meaning string was not Base64-encoded. Do nothing.\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (addBOM) {\n\t\t\t\t\turi = \"\\ufeff\" + uri;\n\t\t\t\t}\n\t\t\t\tlet blob = new Blob([uri], { type: contentType });\n\t\t\t\tlet url = window.URL.createObjectURL(blob);\n\t\t\t\tlink.href = url;\n\t\t\t\tlink.download = fileName;\n\t\t\t\tlink.click();\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tdocument.body.removeChild(link);\n\t\t\t\t\twindow.URL.revokeObjectURL(url);\n\t\t\t\t}, 100);\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Dissect uri into array\n\t\t\tlet chars = new Array(uri.length);\n\t\t\tfor (let i = 0; i < uri.length; ++i) {\n\t\t\t\tlet charCode = uri.charCodeAt(i);\n\t\t\t\tchars[i] = charCode;\n\t\t\t}\n\n\t\t\tif (addBOM) {\n\t\t\t\tchars = [0xEF, 0xBB, 0xBF].concat(chars);\n\t\t\t}\n\t\t\tlet blob = new Blob([new Uint8Array(chars)], { type: contentType });\n\t\t\tlet url = window.URL.createObjectURL(blob);\n\t\t\tlink.href = url;\n\t\t\tlink.download = fileName;\n\t\t\tdocument.body.appendChild(link);\n\t\t\tlink.click();\n\t\t\tdocument.body.removeChild(link);\n\t\t\tsetTimeout(() => {\n\t\t\t\twindow.URL.revokeObjectURL(url);\n\t\t\t}, 100);\n\n\t\t}\n\n\t\telse if (this.linkDownloadSupport()) {\n\n\t\t\t/**\n\t\t\t * For regular browsers, we create a link then simulate a click on it\n\t\t\t */\n\n\t\t\tlet link = document.createElement(\"a\");\n\t\t\tlink.download = fileName;\n\t\t\tlink.href = uri;\n\t\t\tdocument.body.appendChild(link);\n\t\t\tlink.click();\n\t\t\tdocument.body.removeChild(link);\n\n\t\t}\n\t\telse {\n\n\t\t\t/**\n\t\t\t * Something else - perhaps a mobile.\n\t\t\t * Let's just display it in the same page.\n\t\t\t * (hey we don't like it either)\n\t\t\t */\n\t\t\twindow.location.href = uri;\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic downloadSupport(): boolean {\n\t\treturn this.linkDownloadSupport();\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic linkDownloadSupport(): boolean {\n\t\tlet a = document.createElement(\"a\");\n\t\tlet res = typeof a.download !== \"undefined\";\n\t\treturn res;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic blobDownloadSupport(): boolean {\n\t\treturn window.Blob != null;\n\t}\n\n\n\t/**\n\t * ==========================================================================\n\t * Print\n\t * ==========================================================================\n\t */\n\n\t/**\n\t * Initiates print of the chart.\n\t *\n\t * @param data data:uri for the image\n\t * @param options Options\n\t * @param title Optional title to use (uses window's title by default)\n\t * @return Promise\n\t */\n\tpublic initiatePrint(data: string, customOptions?: IExportingPrintOptions, title?: string): void {\n\t\tconst options = <IExportingPrintOptions>this._getFormatOptions(\"print\", customOptions);\n\t\tif (options.printMethod == \"css\") {\n\t\t\tthis._printViaCSS(data, options, title);\n\t\t}\n\t\telse {\n\t\t\tthis._printViaIframe(data, options, title);\n\t\t}\n\n\t}\n\n\tprotected _printViaCSS(data: string, customOptions?: IExportingPrintOptions, title?: string): void {\n\t\tconst options = <IExportingPrintOptions>this._getFormatOptions(\"print\", customOptions);\n\t\tlet delay = options.delay || 500;\n\n\t\t//Save current scroll position\n\t\tlet scroll = document.documentElement.scrollTop || document.body.scrollTop;\n\n\t\t// Hide all document nodes by applyin custom CSS\n\t\tlet rule = new StyleRule($utils.getShadowRoot(this._root.dom), \"body > *\", {\n\t\t\t\"display\": \"none\",\n\t\t\t\"position\": \"fixed\",\n\t\t\t\"visibility\": \"hidden\",\n\t\t\t\"opacity\": \"0\",\n\t\t\t\"clipPath\": \"polygon(0px 0px,0px 0px,0px 0px,0px 0px);\"\n\t\t}, this._root.nonce);\n\n\t\t// Replace title?\n\t\tlet originalTitle: string;\n\t\tif (title && document && document.title) {\n\t\t\toriginalTitle = document.title;\n\t\t\tdocument.title = title;\n\t\t}\n\n\t\t// Create and add exported image\n\t\tlet img = new Image();\n\t\timg.src = data;\n\t\timg.style.maxWidth = \"100%\";\n\t\timg.style.display = \"block\";\n\t\timg.style.position = \"relative\";\n\t\timg.style.visibility = \"visible\";\n\t\timg.style.opacity = \"1\";\n\t\timg.style.clipPath = \"none\";\n\t\tdocument.body.appendChild(img);\n\n\t\t// Print\n\t\tthis.setTimeout(() => {\n\t\t\t(<any>window).print();\n\t\t}, 50);\n\n\t\t// Delay needs to be at least a second for iOS devices\n\t\tlet isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !(<any>window).MSStream;\n\t\tif (isIOS && (delay < 1000)) {\n\t\t\tdelay = 1000;\n\t\t}\n\t\telse if (delay < 100) {\n\t\t\tdelay = 100;\n\t\t}\n\n\t\t// Delay function that resets back the document the way ot was before\n\t\tthis.setTimeout(() => {\n\n\t\t\t// Remove image\n\t\t\tdocument.body.removeChild(img);\n\n\t\t\t// Reset back all elements\n\t\t\t/*for (let len = items.length, i = 0; i < len; i++) {\n\t\t\t\tlet item = <HTMLElement>items[i];\n\t\t\t\tif ($dom.isElement(item)) {\n\t\t\t\t\titem.style.display = states[i];\n\t\t\t\t}\n\t\t\t}*/\n\t\t\trule.dispose();\n\n\t\t\t// Restore title\n\t\t\tif (originalTitle) {\n\t\t\t\tdocument.title = document.title;\n\t\t\t}\n\n\t\t\t// Scroll back the document the way it was before\n\t\t\tdocument.documentElement.scrollTop = document.body.scrollTop = scroll;\n\n\t\t}, delay || 500);\n\n\t}\n\n\tprotected _printViaIframe(data: string, customOptions?: IExportingPrintOptions, title?: string): void {\n\t\tconst options = <IExportingPrintOptions>this._getFormatOptions(\"print\", customOptions);\n\t\tlet delay = options.delay || 500;\n\n\t\t// Create an iframe\n\t\tconst iframe = document.createElement(\"iframe\");\n\t\tiframe.style.visibility = \"hidden\";\n\t\tdocument.body.appendChild(iframe);\n\n\t\t// This is needed for FireFox\n\t\tiframe.contentWindow!.document.open();\n\t\tiframe.contentWindow!.document.close();\n\n\t\t// Create and add exported image\n\t\tlet img = new Image();\n\t\timg.src = data;\n\t\timg.style.maxWidth = \"100%\";\n\t\timg.style.height = \"auto\";\n\t\tif (title) {\n\t\t\tiframe.contentWindow!.document.title = title;\n\t\t}\n\t\tiframe.contentWindow!.document.body.appendChild(img);\n\n\t\t(<any>iframe).load = function() {\n\t\t\tiframe.contentWindow!.document.body.appendChild(img);\n\t\t};\n\n\t\t// Print\n\t\tthis.setTimeout(() => {\n\t\t\ttry {\n\t\t\t\tif (!(<any>iframe).contentWindow.document.execCommand(\"print\", false, null)) {\n\t\t\t\t\t(<any>iframe).contentWindow.print();\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t(<any>iframe).contentWindow.print();\n\t\t\t}\n\t\t}, delay || 50);\n\n\t\t// Delay needs to be at least a second for iOS devices\n\t\tlet isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !(<any>window).MSStream;\n\t\tif (isIOS && (delay < 1000)) {\n\t\t\tdelay = 1000;\n\t\t}\n\t\telse if (delay < 100) {\n\t\t\tdelay = 100;\n\t\t}\n\n\t\t// Delay function that resets back the document the way ot was before\n\t\tthis.setTimeout(() => {\n\n\t\t\t// Remove image\n\t\t\tdocument.body.removeChild(iframe);\n\n\t\t}, delay + 50 || 100);\n\n\t}\n\n\t/**\n\t * Returns a list of formats that can be exported in current browser.\n\t *\n\t * @return Formats\n\t */\n\tpublic supportedFormats(): ExportingFormats[] {\n\t\tconst res: ExportingFormats[] = [];\n\t\tconst hasData = this.hasData();\n\t\tconst downloadSupport = this.downloadSupport();\n\t\t$array.each(<ExportingFormats[]>[\"png\", \"jpg\", \"canvas\", \"pdf\", \"xlsx\", \"csv\", \"json\", \"html\", \"pdfdata\", \"print\"], (format) => {\n\t\t\tconst options = this._getFormatOptions(format);\n\t\t\tif (options.disabled !== true) {\n\t\t\t\tif ([\"xlsx\", \"csv\", \"json\", \"html\", \"pdfdata\"].indexOf(format) == -1 || (hasData && downloadSupport)) {\n\t\t\t\t\tres.push(<ExportingFormats>format);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn res;\n\t}\n\n\t/**\n\t * Returns a list of supported export types: image or print.\n\t *\n\t * @return Supported types\n\t */\n\tpublic supportedExportTypes(): ExportingTypes[] {\n\t\tconst res: ExportingTypes[] = [\"image\", \"print\"];\n\t\tif (this.downloadSupport() && this.hasData()) {\n\t\t\tres.push(\"data\");\n\t\t}\n\t\treturn res;\n\t}\n\n}\n"]}
1
+ {"version":3,"file":"Exporting.js","sourceRoot":"","sources":["../../../../../src/.internal/plugins/exporting/Exporting.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ExportingMenu } from \"./ExportingMenu\"\nimport type { TimeUnit } from \"../../core/util/Time\";\n\nimport { Entity, IEntitySettings, IEntityPrivate, IEntityEvents } from \"../../core/util/Entity\"\nimport { Color } from \"../../core/util/Color\";\nimport { Root } from \"../../core/Root\"\nimport { StyleRule } from \"../../core/util/Utils\"\n\nimport * as $array from \"../../core/util/Array\";\nimport * as $object from \"../../core/util/Object\";\nimport * as $type from \"../../core/util/Type\";\nimport * as $utils from \"../../core/util/Utils\";\n\nexport interface IFile {\n\tpath: string;\n\tbytes: string;\n}\n\nexport interface IFont {\n\tname: string;\n\tnormal: IFile;\n\tbold?: IFile;\n\titalics?: IFile;\n\tbolditalics?: IFile;\n}\n\n/**\n * This is used to cache the pdfmake loading.\n *\n * @ignore\n */\nlet pdfmakePromise: Promise<any>;\n\n/**\n * Loads pdfmake dynamic module\n *\n * This is an asynchronous function. Check the description of `getImage()`\n * for description and example usage.\n *\n * @ignore\n */\nasync function _pdfmake(): Promise<any> {\n\tlet a = await Promise.all([\n\t\timport(/* webpackChunkName: \"pdfmake\" */ \"pdfmake/build/pdfmake.js\"),\n\t\timport(/* webpackChunkName: \"pdfmake\" */ \"./pdfmake/vfs_fonts\")\n\t]);\n\tlet pdfmake = a[0];\n\tlet vfs_fonts = a[1];\n\tconst global = <any>window;\n\tglobal.pdfMake = global.pdfMake || {};\n\tglobal.pdfMake.vfs = vfs_fonts.default;\n\tpdfmake.vfs = vfs_fonts.default;\n\treturn pdfmake;\n}\n\nexport type ExportingTypes = \"image\" | \"data\" | \"print\";\nexport type ExportingFormats = \"png\" | \"jpg\" | \"canvas\" | \"pdf\" | \"xlsx\" | \"csv\" | \"json\" | \"html\" | \"pdfdata\" | \"print\";\nexport type ExportingImageFormats = \"png\" | \"jpg\";\n\nexport interface IExportingImageSource {\n\n\t/**\n\t * A root object of an extra chart to add in export.\n\t */\n\tsource: Root;\n\n\t/**\n\t * Top margin in pixels.\n\t */\n\tmarginTop?: number;\n\n\t/**\n\t * Right margin in pixels.\n\t */\n\tmarginRight?: number;\n\n\t/**\n\t * Bottom margin in pixels.\n\t */\n\tmarginBottom?: number;\n\n\t/**\n\t * Left margin in pixels.\n\t */\n\tmarginLeft?: number;\n\n\t/**\n\t * Position to place extra image in releation to the main chart.\n\t *\n\t * @default \"bottom\"\n\t */\n\tposition?: \"left\" | \"right\" | \"top\" | \"bottom\";\n\n\t/**\n\t * Crop extra image if it's larger than the main chart.\n\t */\n\tcrop?: boolean;\n\n}\n\nexport interface IExportingSettings extends IEntitySettings {\n\n\t/**\n\t * A reference to [[ExportingMenu]] object.\n\t */\n\tmenu?: ExportingMenu;\n\n\t/**\n\t * Export will try to determine background color based on the DOM styles.\n\t *\n\t * You can use this setting to explicitly specify background color for\n\t * exported images.\n\t */\n\tbackgroundColor?: Color;\n\n\t/**\n\t * Opacity of the exported image background.\n\t *\n\t * * 0 - fully transparent.\n\t * * 1 - fully opaque (default).\n\t *\n\t * NOTE: some image formats like JPEG do not support transparency.\n\t * \n\t * @since 5.2.34\n\t */\n\tbackgroundOpacity?: number;\n\n\t/**\n\t * A string to prefix exported files with.\n\t *\n\t * @default \"chart\"\n\t */\n\tfilePrefix?: string;\n\n\t/**\n\t * Chart title. Used for print, PDF and Excel exports.\n\t */\n\ttitle?: string;\n\n\t/**\n\t * Charset to use for export.\n\t *\n\t * @default \"utf-8\"\n\t */\n\tcharset?: string;\n\n\t/**\n\t * Fields to include in data export.\n\t *\n\t * Key - field in data.\n\t * Value - column name.\n\t */\n\tdataFields?: { [index: string]: string },\n\n\t/**\n\t * Specifies the order of fields to export in data.\n\t */\n\tdataFieldsOrder?: string[],\n\n\t/**\n\t * Fields in data that are numeric.\n\t */\n\tnumericFields?: string[],\n\n\t/**\n\t * Use this number format on numeric values.\n\t */\n\tnumberFormat?: string | Intl.NumberFormatOptions,\n\n\t/**\n\t * Fields in data that have date/time value.\n\t */\n\tdateFields?: string[],\n\n\t/**\n\t * Use this date format on date values.\n\t */\n\tdateFormat?: string | Intl.DateTimeFormatOptions,\n\n\t/**\n\t * Fields in data that need to be formatted as \"duration\" as per `durationFormat`.\n\t *\n\t * @since 5.0.16\n\t */\n\tdurationFields?: string[],\n\n\t/**\n\t * Format to use when formatting values in `durationFields`.\n\t *\n\t * If not set, will use `durationFormat` as set in [[DurationFormatter]] of\n\t * the root element.\n\t * \n\t * @since 5.0.16\n\t */\n\tdurationFormat?: string,\n\n\t/**\n\t * Time unit to assume duration values are in.\n\t *\n\t * If not set, will use `baseUnit` as set in [[DurationFormatter]] of\n\t * the root element.\n\t * \n\t * @since 5.0.16\n\t */\n\tdurationUnit?: TimeUnit;\n\n\t/**\n\t * Include these images or other charts in image exports.\n\t */\n\textraImages?: Array<Root | IExportingImageSource>;\n\n\t/**\n\t * Data to export.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/exporting/#Exporting_data} for more info\n\t */\n\tdataSource?: any;\n\n\t/**\n\t * PNG format options.\n\t */\n\tpngOptions?: IExportingImageOptions;\n\n\t/**\n\t * JPEG format options.\n\t */\n\tjpgOptions?: IExportingImageOptions;\n\n\t/**\n\t * Canvas format options.\n\t */\n\tcanvasOptions?: IExportingImageOptions;\n\n\t/**\n\t * PDF format options.\n\t */\n\tpdfOptions?: IExportingPDFOptions;\n\n\t/**\n\t * PDF with data table format options.\n\t */\n\tpdfdataOptions?: IExportingDataOptions;\n\n\t/**\n\t * XSLX format options.\n\t */\n\txlsxOptions?: IExportingXLSXOptions;\n\n\t/**\n\t * CSV format options.\n\t */\n\tcsvOptions?: IExportingCSVOptions;\n\n\t/**\n\t * JSON format options.\n\t */\n\tjsonOptions?: IExportingJSONOptions;\n\n\t/**\n\t * HTML format options.\n\t */\n\thtmlOptions?: IExportingHTMLOptions;\n\n\t/**\n\t * Print options.\n\t */\n\tprintOptions?: IExportingPrintOptions;\n\n}\n\nexport interface IExportingPrivate extends IEntityPrivate {\n}\n\nexport interface IExportEvent {\n\n\t/**\n\t * Format.\n\t */\n\tformat: ExportingFormats,\n\n\t/**\n\t * Format options.\n\t */\n\toptions: IExportingFormatOptions\n\n}\n\nexport interface IExportingEvents extends IEntityEvents {\n\n\t/**\n\t * Invoked when export starts.\n\t */\n\texportstarted: IExportEvent;\n\n\t/**\n\t * Invoked when export finishes.\n\t */\n\texportfinished: IExportEvent;\n\n\t/**\n\t * Invoked when download of the export starts.\n\t */\n\tdownloadstarted: IExportEvent & {\n\t\tfileName: string,\n\t};\n\n\t/**\n\t * Invoked when print starts.\n\t */\n\tprintstarted: IExportEvent;\n\n\t/**\n\t * Invoked when data finishes pre-processing for export.\n\t */\n\tdataprocessed: IExportEvent & {\n\t\tdata: any\n\t}\n\n\t/**\n\t * Invoked when XLSX export finishes preparing a workbook.\n\t *\n\t * At this point it can still be modified for export.\n\t */\n\tworkbookready: IExportEvent & {\n\t\tworkbook: any,\n\t\tworkbookOptions: any,\n\t\txlsx: any\n\t}\n\n\t/**\n\t * Invoked when PDF export finishes preparing a document.\n\t *\n\t * At this point it can still be modified for export.\n\t */\n\tpdfdocready: IExportEvent & {\n\t\tdoc: any\n\t}\n\n}\n\nexport interface IExportingFormatOptions {\n\n\t/**\n\t * If set to `true`, this format will not appear in [[ExportMenu]].\n\t */\n\tdisabled?: boolean;\n\n}\n\nexport interface IExportingImageOptions extends IExportingFormatOptions {\n\n\t/**\n\t * Quality of the exported image: 0 to 1.\n\t */\n\tquality?: number;\n\n\t/**\n\t * Export images with hardware resolution (`false`), or the way they appear\n\t * on screen (`true`).\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/exporting/exporting-images/#Pixel_ratio} for more info\n\t * @default false\n\t */\n\tmaintainPixelRatio?: boolean;\n\n\t/**\n\t * Minimal width of exported image, in pixels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/exporting/exporting-images/#Sizing_exported_image} for more info\n\t */\n\tminWidth?: number;\n\n\t/**\n\t * Maximal width of exported image, in pixels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/exporting/exporting-images/#Sizing_exported_image} for more info\n\t */\n\tmaxWidth?: number;\n\n\t/**\n\t * Minimal height of exported image, in pixels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/exporting/exporting-images/#Sizing_exported_image} for more info\n\t */\n\tminHeight?: number;\n\n\t/**\n\t * Maximal height of exported image, in pixels.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/exporting/exporting-images/#Sizing_exported_image} for more info\n\t */\n\tmaxHeight?: number;\n\n}\n\nexport interface IExportingPrintOptions extends IExportingImageOptions {\n\n\t/**\n\t * A delay in milliseconds to wait before initiating print.\n\t *\n\t * This delay is necessary to ensure DOM is prepared and repainted before\n\t * print dialog kicks in.\n\t *\n\t * @default 500\n\t */\n\tdelay?: number;\n\n\t/**\n\t * Method to use for printing.\n\t *\n\t * If one fails for your particular setup, try the other.\n\t *\n\t * \"css\" - inserts dynamic CSS that hides everything, except the image being printed.\n\t * \"iframe\" - creates a dynamic `<iframe>` with the image, then prints it.\n\t *\n\t * @default \"iframe\"\n\t */\n\tprintMethod?: \"css\" | \"iframe\";\n\n\t/**\n\t * Image format to use for printing.\n\t *\n\t * @default \"png\"\n\t */\n\timageFormat?: \"png\" | \"jpg\";\n\n}\n\n/**\n * Available PDF page sizes.\n */\nexport type pageSizes = \"4A0\" | \"2A0\" | \"A0\" | \"A1\" | \"A2\" | \"A3\" | \"A4\" | \"A5\" | \"A6\" | \"A7\" | \"A8\" | \"A9\" | \"A10\" |\n\t\"B0\" | \"B1\" | \"B2\" | \"B3\" | \"B4\" | \"B5\" | \"B6\" | \"B7\" | \"B8\" | \"B9\" | \"B10\" |\n\t\"C0\" | \"C1\" | \"C2\" | \"C3\" | \"C4\" | \"C5\" | \"C6\" | \"C7\" | \"C8\" | \"C9\" | \"C10\" |\n\t\"RA0\" | \"RA1\" | \"RA2\" | \"RA3\" | \"RA4\" |\n\t\"SRA0\" | \"SRA1\" | \"SRA2\" | \"SRA3\" | \"SRA4\" |\n\t\"EXECUTIVE\" | \"FOLIO\" | \"LEGAL\" | \"LETTER\" | \"TABLOID\";\n\nexport interface IExportingPDFOptions extends IExportingImageOptions {\n\n\t/**\n\t * Include data into PDF\n\t */\n\tincludeData?: boolean;\n\n\t/**\n\t * An image format to use for embedded images in PDF.\n\t *\n\t * See `imageFormats` in [[Export_module]].\n\t */\n\timageFormat?: \"png\" | \"jpg\";\n\n\t/**\n\t * Font size to use for all texts.\n\t */\n\tfontSize?: number;\n\n\t/**\n\t * Alignment of the chart image in PDF.\n\t *\n\t * Supported options: `\"left\"` (default), `\"center\"`, `\"right\"`.\n\t *\n\t * @default left\n\t */\n\talign?: \"left\" | \"center\" | \"middle\";\n\n\t/**\n\t * Whether to add a URL of the web page the chart has been exported from.\n\t *\n\t * @default true\n\t */\n\taddURL?: boolean;\n\n\t/**\n\t * Page size of the exported PDF.\n\t */\n\tpageSize?: pageSizes;\n\n\t/**\n\t * Page orientation.\n\t */\n\tpageOrientation?: \"landscape\" | \"portrait\";\n\n\t/**\n\t * Page margins.\n\t *\n\t * Can be one of the following:\n\t *\n\t * A single number, in which case it will act as margin setting\n\t * for all four edges of the page.\n\t *\n\t * An array of two numbers `[ horizontal, vertical ]`.\n\t *\n\t * An array of four numbers `[ left, top, right, bottom ]`.\n\t */\n\tpageMargins?: number | number[];\n\n\t/**\n\t * Font which should be used for the export.\n\t *\n\t * Default font used for PDF includes only Latin-based and Cyrilic\n\t * characters. If you are exporting text in other languages, you might need\n\t * to use some other export font.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/exporting/exporting-pdf/#Fonts} for more info\n\t */\n\tfont?: IFont;\n\n\t/**\n\t * Additional optional fonts which can be used on individual elements.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/exporting/exporting-pdf/#Fonts} for more info\n\t */\n\textraFonts?: Array<IFont>;\n\n}\n\nexport interface IExportingDataOptions extends IExportingFormatOptions {\n\n\t/**\n\t * Replace empty values with this string.\n\t */\n\temptyAs?: string;\n\n\t/**\n\t * Use timestamps instead of formatted dates.\n\t *\n\t * @default false\n\t */\n\tuseTimestamps?: boolean;\n\n\t/**\n\t * Use client's locale when formatting dates.\n\t *\n\t * @default false\n\t */\n\tuseLocale?: boolean;\n\n\t/**\n\t * If set to `true` will pivot the able so that columns are horizontal.\n\t */\n\tpivot?: boolean;\n\n\t/**\n\t * Will add a line with column names in CSV/HTML/PDF tables.\n\t */\n\taddColumnNames?: boolean;\n\n}\n\nexport interface IExportingJSONOptions extends IExportingDataOptions {\n\n\t/**\n\t * If set to a number, each line will be indented by X spaces, maintaining\n\t * hierarchy.\n\t *\n\t * If set to a string, will use that string to indent.\n\t *\n\t * @default 2\n\t */\n\tindent?: string | number;\n\n\t/**\n\t * If set to `true` and `dataFields` are set to `true`, will rename keys in\n\t * data.\n\t *\n\t * @default true\n\t */\n\trenameFields?: boolean;\n\n}\n\nexport interface IExportingCSVOptions extends IExportingDataOptions {\n\n\t/**\n\t * Column separator.\n\t *\n\t * @default \",\"\n\t */\n\tseparator?: string;\n\n\t/**\n\t * Force all values to be included in quotes, including numeric.\n\t *\n\t * @default false\n\t */\n\tforceQuotes?: boolean;\n\n\t/**\n\t * Reverse order of the records in data.\n\t *\n\t * @default false\n\t */\n\treverse?: boolean;\n\n\t/**\n\t * Add BOM character to output file, so that it can be used with UTF-8\n\t * characters properly in Excel.\n\t *\n\t * @default false\n\t * @since 5.1.0\n\t */\n\taddBOM?: boolean;\n\n}\n\nexport interface IExportingHTMLOptions extends IExportingDataOptions {\n\n\t/**\n\t * A `class` attribute for `<table>` tag.\n\t */\n\ttableClass?: string;\n\n\t/**\n\t * A `class` attribute for `<tr>` tags.\n\t */\n\trowClass?: string;\n\n\t/**\n\t * A `class` attribute for `<th>` tags.\n\t */\n\theaderClass?: string;\n\n\t/**\n\t * A `class` attribute for `<td>` tags.\n\t */\n\tcellClass?: string;\n\n}\n\nexport interface IExportingXLSXOptions extends IExportingDataOptions {\n\t// @todo\n\t//sheets?: string[];\n}\n\n/**\n * A plugin that can be used to export chart snapshots and data.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/exporting/} for more info\n */\nexport class Exporting extends Entity {\n\tpublic static className: string = \"Exporting\";\n\tpublic static classNames: Array<string> = Entity.classNames.concat([Exporting.className]);\n\n\tdeclare public _settings: IExportingSettings;\n\tdeclare public _privateSettings: IExportingPrivate;\n\tdeclare public _events: IExportingEvents;\n\n\t//public extraImages: Array<Root | IExportingImageSource> = [];\n\t//public dataSources: any[] = [];\n\n\tprotected _afterNew() {\n\t\tsuper._afterNew();\n\t\tthis._setRawDefault(\"filePrefix\", \"chart\");\n\t\tthis._setRawDefault(\"charset\", \"utf-8\");\n\t\tthis._setRawDefault(\"numericFields\", []);\n\t\tthis._setRawDefault(\"dateFields\", []);\n\t\tthis._setRawDefault(\"durationFields\", []);\n\t\tthis._setRawDefault(\"extraImages\", []);\n\t\tthis._setRawDefault(\"pngOptions\", { quality: 1, maintainPixelRatio: false });\n\t\tthis._setRawDefault(\"jpgOptions\", { quality: 0.8, maintainPixelRatio: false });\n\t\tthis._setRawDefault(\"printOptions\", { quality: 1, maintainPixelRatio: false, delay: 500, printMethod: \"iframe\", imageFormat: \"png\" });\n\t\tthis._setRawDefault(\"jsonOptions\", { indent: 2, renameFields: true });\n\t\tthis._setRawDefault(\"csvOptions\", { separator: \",\", addColumnNames: true, emptyAs: \"\", addBOM: true });\n\t\tthis._setRawDefault(\"htmlOptions\", { emptyAs: \"-\", addColumnNames: true });\n\t\tthis._setRawDefault(\"xlsxOptions\", { emptyAs: \"\", addColumnNames: true });\n\t\tthis._setRawDefault(\"pdfOptions\", { fontSize: 14, imageFormat: \"png\", align: \"left\", addURL: true });\n\t\tthis._setRawDefault(\"pdfdataOptions\", { emptyAs: \"\", addColumnNames: true });\n\n\t\tthis._root.addDisposer(this);\n\t}\n\n\tpublic _beforeChanged() {\n\t\tsuper._beforeChanged();\n\n\t\tif (this.isDirty(\"menu\")) {\n\t\t\tconst menu = this.get(\"menu\");\n\t\t\tif (menu) {\n\t\t\t\tmenu.set(\"exporting\", this);\n\t\t\t\tthis._disposers.push(menu);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _getFormatOptions(format: ExportingFormats, options?: IExportingFormatOptions): IExportingFormatOptions {\n\t\tconst newOptions: any = $object.copy((<any>this).get(format + \"Options\", {}));\n\t\tif (options) {\n\t\t\t$object.each(options, (key, value) => {\n\t\t\t\tnewOptions[key] = value;\n\t\t\t});\n\t\t}\n\t\treturn newOptions;\n\t}\n\n\t/**\n\t * Triggers a download of the chart/data in specific format.\n\t *\n\t * @param format Format\n\t * @param customOptions Format options\n\t */\n\tpublic async download(format: ExportingFormats, customOptions?: IExportingFormatOptions) {\n\t\tconst ext = format == \"pdfdata\" ? \"pdf\" : format;\n\t\tconst fileName = this.get(\"filePrefix\", \"chart\") + \".\" + ext;\n\t\tconst options = this._getFormatOptions(format, customOptions);\n\t\tthis.events.dispatch(\"downloadstarted\", {\n\t\t\ttype: \"downloadstarted\",\n\t\t\tformat: format,\n\t\t\toptions: options,\n\t\t\tfileName: fileName,\n\t\t\ttarget: this\n\t\t});\n\t\tconst uri = await this.export(format, options);\n\t\tthis.streamFile(uri, fileName, (options && (<IExportingCSVOptions>options).addBOM));\n\t}\n\n\t/**\n\t * Triggers print of the chart.\n\t *\n\t * @param customOptions Print options\n\t */\n\tpublic async print(customOptions?: IExportingPrintOptions) {\n\t\tconst options = <IExportingPrintOptions>this._getFormatOptions(\"print\", customOptions);\n\t\tthis.events.dispatch(\"printstarted\", {\n\t\t\ttype: \"printstarted\",\n\t\t\tformat: \"print\",\n\t\t\toptions: options,\n\t\t\ttarget: this\n\t\t});\n\t\tconst uri = await this.export(options.imageFormat || \"png\", options);\n\t\tthis.initiatePrint(uri, options, this.get(\"title\"));\n\t}\n\n\t/**\n\t * Returns data uri of the chart/data in specific format.\n\t *\n\t * @param format Format\n\t * @param customOptions Format options\n\t * @return Promise\n\t */\n\tpublic async export(format: ExportingFormats, customOptions?: IExportingFormatOptions): Promise<string> {\n\t\tconst options = this._getFormatOptions(format, customOptions);\n\t\tthis.events.dispatch(\"exportstarted\", {\n\t\t\ttype: \"exportstarted\",\n\t\t\tformat: format,\n\t\t\toptions: options,\n\t\t\ttarget: this\n\t\t});\n\n\t\t// Force any randering to complete before proceeding\n\t\tthis._root._runTickerNow();\n\n\t\tlet promise: Promise<string> | string = \"\";\n\t\tswitch (format) {\n\t\t\tcase \"png\":\n\t\t\tcase \"jpg\":\n\t\t\t\tpromise = this.exportImage(format, options);\n\t\t\t\tbreak;\n\t\t\tcase \"json\":\n\t\t\t\tpromise = this.exportJSON(options);\n\t\t\t\tbreak;\n\t\t\tcase \"csv\":\n\t\t\t\tpromise = this.exportCSV(options);\n\t\t\t\tbreak;\n\t\t\tcase \"html\":\n\t\t\t\tpromise = this.exportHTML(options);\n\t\t\t\tbreak;\n\t\t\tcase \"xlsx\":\n\t\t\t\tpromise = this.exportXLSX(options);\n\t\t\t\tbreak;\n\t\t\tcase \"pdf\":\n\t\t\t\tpromise = this.exportPDF(options);\n\t\t\t\tbreak;\n\t\t\tcase \"pdfdata\":\n\t\t\t\tpromise = this.exportPDFData(options);\n\t\t\t\tbreak;\n\t\t}\n\t\tthis.events.dispatch(\"exportfinished\", {\n\t\t\ttype: \"exportfinished\",\n\t\t\tformat: format,\n\t\t\toptions: options,\n\t\t\ttarget: this\n\t\t});\n\t\treturn promise;\n\t}\n\n\t/**\n\t * ==========================================================================\n\t * Images\n\t * ==========================================================================\n\t */\n\n\t/**\n\t * Returns chart image as a data:uri.\n\t *\n\t * @param format Image format\n\t * @param customOptions Format options\n\t * @return Promise\n\t */\n\tpublic async exportImage(format: ExportingImageFormats, customOptions?: IExportingImageOptions): Promise<string> {\n\t\tconst options: any = this._getFormatOptions(format, customOptions);\n\t\tconst canvas = await this.getCanvas(options);\n\t\tconst data = canvas.toDataURL(this.getContentType(format), options.quality || 1);\n\t\tthis.disposeCanvas(canvas);\n\t\treturn data;\n\t}\n\n\t/**\n\t * Returns canvas data.\n\t *\n\t * @param customOptions Image options\n\t * @return Promise\n\t */\n\tpublic async exportCanvas(customOptions?: IExportingImageOptions): Promise<string> {\n\t\tconst options: any = this._getFormatOptions(\"canvas\", customOptions);\n\t\tconst canvas = await this.getCanvas(options);\n\t\tconst data = canvas.toDataURL(this.getContentType(\"canvas\"), options.quality || 1);\n\t\tthis.disposeCanvas(canvas);\n\t\treturn data;\n\t}\n\n\t/**\n\t * Returns a `<canvas>` element with snapshot of the chart.\n\t *\n\t * @param options Image options\n\t * @return Promise\n\t */\n\tpublic async getCanvas(options: IExportingImageOptions): Promise<HTMLCanvasElement> {\n\t\tconst mainCanvas = this._root._renderer.getCanvas(this._root._rootContainer._display, options);\n\t\tconst extraImages = this.get(\"extraImages\", []);\n\n\t\t// Add other canvases\n\t\tlet middleLeft = 0;\n\t\tlet middleTop = 0;\n\t\tlet middleWidth = mainCanvas.width;\n\t\tlet middleHeight = mainCanvas.height;\n\t\tlet extraRight = 0;\n\t\tlet extraBottom = 0;\n\n\t\tconst extras: any[] = [];\n\n\t\t$array.each(extraImages, (extraRoot) => {\n\n\t\t\t// Get that extra\n\t\t\tlet extra: IExportingImageSource;\n\n\t\t\tif (extraRoot instanceof Root) {\n\t\t\t\textra = {\n\t\t\t\t\tsource: extraRoot,\n\t\t\t\t\tposition: \"bottom\"\n\t\t\t\t};\n\n\t\t\t} else {\n\t\t\t\textra = <IExportingImageSource>extraRoot;\n\t\t\t}\n\n\t\t\t// Set defaults\n\t\t\textra.position = extra.position || \"bottom\";\n\t\t\textra.marginTop = extra.marginTop || 0;\n\t\t\textra.marginRight = extra.marginRight || 0;\n\t\t\textra.marginBottom = extra.marginBottom || 0;\n\t\t\textra.marginLeft = extra.marginLeft || 0;\n\n\t\t\tconst extraCanvas = extra.source._renderer.getCanvas(extra.source._rootContainer._display, options);\n\n\t\t\tconst extraWidth = extraCanvas.width + extra.marginLeft + extra.marginRight;\n\t\t\tconst extraHeight = extraCanvas.height + extra.marginTop + extra.marginBottom;\n\n\t\t\tif (extra.position == \"top\") {\n\t\t\t\tmiddleWidth = extra.crop ? middleHeight : Math.max(middleWidth, extraWidth);\n\t\t\t\tmiddleTop += extraHeight;\n\n\t\t\t} else if (extra.position == \"right\") {\n\t\t\t\tmiddleHeight = extra.crop ? middleHeight : Math.max(middleHeight, extraHeight);\n\t\t\t\textraRight += extraWidth;\n\n\t\t\t} else if (extra.position == \"left\") {\n\t\t\t\tmiddleHeight = extra.crop ? middleHeight : Math.max(middleHeight, extraHeight);\n\t\t\t\tmiddleLeft += extraWidth;\n\n\t\t\t} else if (extra.position === \"bottom\") {\n\t\t\t\tmiddleWidth = extra.crop ? middleHeight : Math.max(middleWidth, extraWidth);\n\t\t\t\textraBottom += extraHeight;\n\t\t\t}\n\n\t\t\textras.push({\n\t\t\t\tcanvas: extraCanvas,\n\t\t\t\tposition: extra.position,\n\t\t\t\tleft: extra.marginLeft,\n\t\t\t\ttop: extra.marginTop,\n\t\t\t\twidth: extraWidth,\n\t\t\t\theight: extraHeight\n\t\t\t});\n\n\t\t});\n\n\t\tconst newCanvas = this.getDisposableCanvas();\n\n\t\tnewCanvas.width = middleLeft + middleWidth + extraRight;\n\t\tnewCanvas.height = middleTop + middleHeight + extraBottom;\n\n\t\tconst ctx = newCanvas.getContext(\"2d\")!;\n\n\t\t// Get background\n\t\tconst background = this.get(\"backgroundColor\", this.findBackgroundColor(this._root.dom));\n\t\tconst backgroundOpacity = this.get(\"backgroundOpacity\", 1);\n\n\t\tif (background) {\n\t\t\tctx.fillStyle = background.toCSS(backgroundOpacity);\n\t\t\tctx.fillRect(0, 0, newCanvas.width, newCanvas.height);\n\t\t}\n\n\t\tlet left = middleLeft;\n\t\tlet top = middleTop;\n\t\tlet right = left + middleWidth;\n\t\tlet bottom = top + middleHeight;\n\n\t\t// Radiates outwards from center\n\t\t$array.each(extras, (extra) => {\n\t\t\tif (extra.position == \"top\") {\n\t\t\t\ttop -= extra.height;\n\t\t\t\tctx.drawImage(extra.canvas, middleLeft + extra.left, top + extra.top);\n\n\t\t\t} else if (extra.position == \"right\") {\n\t\t\t\tctx.drawImage(extra.canvas, right + extra.left, middleTop + extra.top);\n\t\t\t\tright += extra.width;\n\n\t\t\t} else if (extra.position == \"left\") {\n\t\t\t\tleft -= extra.width;\n\t\t\t\tctx.drawImage(extra.canvas, left + extra.left, middleTop + extra.top);\n\n\t\t\t} else if (extra.position === \"bottom\") {\n\t\t\t\tctx.drawImage(extra.canvas, middleLeft + extra.left, bottom + extra.top);\n\t\t\t\tbottom += extra.height;\n\t\t\t}\n\n\t\t\t//this.disposeCanvas(extra.canvas);\n\t\t});\n\n\t\tctx.drawImage(mainCanvas, middleLeft, middleTop);\n\n\t\treturn newCanvas;\n\t}\n\n\t/**\n\t * ==========================================================================\n\t * JSON\n\t * ==========================================================================\n\t */\n\n\t/**\n\t * Returns a data:uri representation of a JSON file with chart data.\n\t *\n\t * @param customOptions Format options\n\t * @return Promise\n\t */\n\tpublic async exportJSON(customOptions?: IExportingJSONOptions): Promise<string> {\n\t\treturn \"data:\" + this.getContentType(\"json\") + \";\" + this.get(\"charset\", \"utf-8\") + \",\" + encodeURIComponent(await this.getJSON(customOptions));\n\t}\n\n\t/**\n\t * Returns data in JSON format.\n\t *\n\t * @param customOptions Format options\n\t * @return Promise\n\t */\n\tpublic async getJSON(customOptions?: IExportingJSONOptions): Promise<string> {\n\t\tconst options: any = this._getFormatOptions(\"json\", customOptions);\n\t\treturn JSON.stringify(this.getData(\"json\", customOptions, options.renameFields), (_key, value) => {\n\t\t\tif ($type.isObject(value)) {\n\t\t\t\t$object.each(value, (field, item) => {\n\t\t\t\t\tvalue[field] = this.convertToSpecialFormat(field, item, options);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn value;\n\t\t}, options.indent);\n\t}\n\n\t/**\n\t * ==========================================================================\n\t * CSV\n\t * ==========================================================================\n\t */\n\n\t/**\n\t * Returns a data:uri representation of a CSV file with chart data.\n\t *\n\t * @param customOptions Format options\n\t * @return Promise\n\t */\n\tpublic async exportCSV(customOptions?: IExportingCSVOptions): Promise<string> {\n\t\treturn \"data:\" + this.getContentType(\"csv\") + \";\" + this.get(\"charset\", \"utf-8\") + \",\" + encodeURIComponent(await this.getCSV(customOptions));\n\t}\n\n\t/**\n\t * Returns a CSV with export data.\n\t *\n\t * @param customOptions CSV options\n\t * @return Promise\n\t */\n\tpublic async getCSV(customOptions?: IExportingCSVOptions): Promise<string> {\n\t\tconst options: any = this._getFormatOptions(\"csv\", customOptions);\n\n\t\t// Init output\n\t\tlet csv = \"\";\n\n\t\t// Add rows\n\t\tlet br = \"\";\n\t\tconst data = this.getData(\"csv\", options);\n\n\t\t// Data fields\n\t\tconst dataFields = this.getDataFields(data);\n\n\t\t// Vertical or horizontal (default) layout\n\t\tif (options.pivot) {\n\n\t\t\t// Data fields order\n\t\t\tconst dataFieldsOrder: string[] = this.get(\"dataFieldsOrder\", []);\n\n\t\t\t$object.eachOrdered(dataFields, (key, val) => {\n\t\t\t\tlet dataRow = [];\n\t\t\t\tif (options.addColumnNames) {\n\t\t\t\t\tdataRow.push(val);\n\t\t\t\t}\n\t\t\t\tfor (let len = data.length, i = 0; i < len; i++) {\n\t\t\t\t\tlet dataValue = data[i][key];\n\t\t\t\t\tdataRow.push(this.convertToSpecialFormat(key, dataValue, options, true));\n\t\t\t\t}\n\t\t\t\tcsv += br + this.getCSVRow(dataRow, options, undefined, true);\n\t\t\t\tbr = \"\\n\";\n\t\t\t}, (a, b) => {\n\t\t\t\tlet ai = dataFieldsOrder.indexOf(a);\n\t\t\t\tlet bi = dataFieldsOrder.indexOf(b);\n\t\t\t\tif (ai > bi) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t\telse if (ai < bi) {\n\t\t\t\t\treturn 1\n\t\t\t\t}\n\t\t\t\treturn 0;\n\t\t\t});\n\n\t\t}\n\n\t\telse {\n\t\t\tfor (let len = data.length, i = 0; i < len; i++) {\n\t\t\t\tlet row = this.getCSVRow(data[i], options, dataFields);\n\t\t\t\tif (options.reverse) {\n\t\t\t\t\tcsv = row + br + csv;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcsv += br + row;\n\t\t\t\t}\n\t\t\t\tbr = \"\\n\";\n\t\t\t}\n\n\t\t\t// Add column names?\n\t\t\tif (options.addColumnNames) {\n\t\t\t\tcsv = this.getCSVRow(dataFields, options, undefined, true) + br + csv;\n\t\t\t}\n\t\t}\n\n\t\treturn csv;\n\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getCSVRow(row: any, options: IExportingCSVOptions, dataFields: any, asIs: boolean = false): string {\n\n\t\t// Init\n\t\tlet separator = options.separator || \",\";\n\t\tlet items: any[] = [];\n\n\t\t// Data fields\n\t\tif (!dataFields) {\n\t\t\tdataFields = {};\n\t\t\t$object.each(row, (key, value) => {\n\t\t\t\tdataFields[key] = value;\n\t\t\t});\n\t\t}\n\n\t\t// Data fields order\n\t\tconst dataFieldsOrder: string[] = this.get(\"dataFieldsOrder\", []);\n\n\t\t// Process each row item\n\t\t$object.eachOrdered(dataFields, (key, _name) => {\n\n\t\t\t// Get value\n\t\t\tlet value = this.convertEmptyValue(key, row[key], options);\n\n\t\t\t// Check if we need to skip\n\t\t\t// This is no longer required because we are iterating via dataFields anyway\n\t\t\t/*if (this.dataFields != null && this.dataFields[key] == null) {\n\t\t\t\treturn;\n\t\t\t}*/\n\n\t\t\t// Convert dates\n\t\t\tlet item = asIs ? value : this.convertToSpecialFormat(key, value, options);\n\n\t\t\t// Cast and escape doublequotes\n\t\t\titem = \"\" + item;\n\t\t\titem = item.replace(/\"/g, '\"\"');\n\n\t\t\t// Enclose into double quotes\n\t\t\tif (options.forceQuotes || (item.search(new RegExp(\"\\\"|\\n|\" + separator, \"g\")) >= 0)) {\n\t\t\t\titem = \"\\\"\" + item + \"\\\"\";\n\t\t\t}\n\n\t\t\t// Add to item\n\t\t\titems.push(item);\n\t\t}, (a, b) => {\n\t\t\tlet ai = dataFieldsOrder.indexOf(a);\n\t\t\tlet bi = dataFieldsOrder.indexOf(b);\n\t\t\tif (ai > bi) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\telse if (ai < bi) {\n\t\t\t\treturn -1\n\t\t\t}\n\t\t\treturn 0;\n\t\t});\n\n\t\treturn items.join(separator);\n\t}\n\n\t/**\n\t * ==========================================================================\n\t * HTML\n\t * ==========================================================================\n\t */\n\n\t/**\n\t * Returns a data:uri representation of an HTML file with chart data.\n\t *\n\t * @param customOptions Format options\n\t * @return Promise\n\t */\n\tpublic async exportHTML(customOptions?: IExportingHTMLOptions): Promise<string> {\n\t\treturn \"data:\" + this.getContentType(\"html\") + \";\" + this.get(\"charset\", \"utf-8\") + \",\" + encodeURIComponent(await this.getHTML(customOptions));\n\t}\n\n\t/**\n\t * Returns an HTML with a table with export data.\n\t *\n\t * @param customOptions HTML options\n\t * @return Promise\n\t */\n\tpublic async getHTML(customOptions?: IExportingHTMLOptions): Promise<string> {\n\t\tconst options: any = this._getFormatOptions(\"html\", customOptions);\n\n\t\t// Init output\n\t\tlet html = \"<table>\";\n\t\tif (options.tableClass) {\n\t\t\thtml = \"<table class=\\\"\" + options.tableClass + \"\\\">\";\n\t\t}\n\n\t\t// Get data\n\t\tconst data = this.getData(\"html\", options);\n\t\tconst dataFields = this.getDataFields(data);\n\n\t\t// Vertical or horizontal (default) layout\n\t\tif (options.pivot) {\n\n\t\t\t// Data fields order\n\t\t\tconst dataFieldsOrder: string[] = this.get(\"dataFieldsOrder\", []);\n\n\t\t\thtml += \"\\n<tbody>\";\n\n\t\t\t$object.eachOrdered(dataFields, (key, val) => {\n\t\t\t\tlet dataRow = [];\n\t\t\t\tif (options.addColumnNames) {\n\t\t\t\t\tdataRow.push(val);\n\t\t\t\t}\n\t\t\t\tfor (let len = data.length, i = 0; i < len; i++) {\n\t\t\t\t\tlet dataValue = data[i][key];\n\t\t\t\t\tdataRow.push(this.convertToSpecialFormat(key, dataValue, options, true));\n\t\t\t\t}\n\t\t\t\thtml += \"\\n\" + this.getHTMLRow(dataRow, options, undefined, true);\n\t\t\t}, (a, b) => {\n\t\t\t\tlet ai = dataFieldsOrder.indexOf(a);\n\t\t\t\tlet bi = dataFieldsOrder.indexOf(b);\n\t\t\t\tif (ai > bi) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t\telse if (ai < bi) {\n\t\t\t\t\treturn 1\n\t\t\t\t}\n\t\t\t\treturn 0;\n\t\t\t});\n\n\t\t\thtml += \"\\n</tbody>\";\n\n\t\t}\n\n\t\telse {\n\t\t\t// Add column names?\n\t\t\tif (options.addColumnNames) {\n\t\t\t\thtml += \"\\n<thead>\\n\" + this.getHTMLRow(dataFields, options, undefined, true, true) + \"\\n</thead>\";\n\t\t\t}\n\n\t\t\thtml += \"\\n<tbody>\";\n\n\t\t\tfor (let len = data.length, i = 0; i < len; i++) {\n\t\t\t\thtml += \"\\n\" + this.getHTMLRow(data[i], options, dataFields);\n\t\t\t}\n\n\t\t\thtml += \"\\n</tbody>\";\n\t\t}\n\n\t\thtml += \"\\n</table>\";\n\n\t\treturn html;\n\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getHTMLRow(row: any, options: IExportingHTMLOptions, dataFields: any, asIs: boolean = false, headerRow: boolean = false): string {\n\n\t\t// Init output\n\t\tlet html = \"\\t<tr>\";\n\t\tif (options.rowClass) {\n\t\t\thtml = \"\\t<tr class=\\\"\" + options.rowClass + \"\\\">\";\n\t\t}\n\n\t\t// Data fields\n\t\tif (!dataFields) {\n\t\t\tdataFields = row;\n\t\t}\n\n\t\t// Data fields order\n\t\tconst dataFieldsOrder: string[] = this.get(\"dataFieldsOrder\", []);\n\n\t\t// th or dh?\n\t\tconst tag = headerRow ? \"th\" : \"td\";\n\n\t\t// Process each row item\n\t\tlet first = true;\n\t\t$object.eachOrdered(dataFields, (key, _name) => {\n\n\t\t\t// Get value\n\t\t\tlet value = this.convertEmptyValue(key, row[key], options);\n\n\t\t\t// Convert dates\n\t\t\tlet item = asIs ? value : this.convertToSpecialFormat(key, value, options);\n\n\t\t\t// Escape HTML entities\n\t\t\titem = \"\" + item;\n\t\t\titem = item.replace(/[\\u00A0-\\u9999<>\\&]/gim, function(i: string) {\n\t\t\t\treturn \"&#\" + i.charCodeAt(0) + \";\";\n\t\t\t});\n\n\t\t\t// Which tag to use\n\t\t\tlet useTag = tag;\n\t\t\tif (options.pivot && first) {\n\t\t\t\tuseTag = \"th\";\n\t\t\t}\n\n\t\t\t// Add cell\n\t\t\tif (options.cellClass) {\n\t\t\t\thtml += \"\\n\\t\\t<\" + useTag + \" class=\\\"\" + options.cellClass + \"\\\">\" + item + \"</\" + useTag + \">\";\n\t\t\t}\n\t\t\telse {\n\t\t\t\thtml += \"\\n\\t\\t<\" + useTag + \">\" + item + \"</\" + useTag + \">\";\n\t\t\t}\n\n\t\t\tfirst = false;\n\t\t}, (a, b) => {\n\t\t\tlet ai = dataFieldsOrder.indexOf(a);\n\t\t\tlet bi = dataFieldsOrder.indexOf(b);\n\t\t\tif (ai > bi) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\telse if (ai < bi) {\n\t\t\t\treturn -1\n\t\t\t}\n\t\t\treturn 0;\n\t\t});\n\n\t\thtml += \"\\n\\t</tr>\";\n\n\t\treturn html;\n\t}\n\n\t/**\n\t * ==========================================================================\n\t * XLSX\n\t * ==========================================================================\n\t */\n\n\t/**\n\t * Returns a data:uri representation of an XLSX file with chart data.\n\t *\n\t * @param customOptions Format options\n\t * @return Promise\n\t */\n\tpublic async exportXLSX(customOptions?: IExportingXLSXOptions): Promise<string> {\n\t\treturn \"data:\" + this.getContentType(\"xlsx\") + \";\" + this.get(\"charset\", \"utf-8\") + \",\" + encodeURIComponent(await this.getXLSX(customOptions));\n\t}\n\n\t/**\n\t * Returns a data:uri of XLSX data.\n\t *\n\t * @param customOptions Format options\n\t * @return Promise\n\t */\n\tpublic async getXLSX(customOptions?: IExportingXLSXOptions): Promise<string> {\n\n\t\tconst options: any = this._getFormatOptions(\"xlsx\", customOptions);\n\n\t\t// Load xlsx\n\t\tlet XLSX = await this.getXLSXLib();\n\n\t\t// Create workbook options\n\t\tlet wbOptions = {\n\t\t\tbookType: \"xlsx\",\n\t\t\tbookSST: false,\n\t\t\ttype: \"base64\",\n\t\t\t//dateNF: 'yyyy-mm-dd'\n\t\t};\n\n\t\t// Get sheet name\n\t\tlet sheetName = this._normalizeExcelSheetName(this.get(\"title\", this._t(\"Data\")));\n\n\t\t// Create a workbook\n\t\tlet wb = {\n\t\t\tSheetNames: <any>[sheetName],\n\t\t\tSheets: <any>{}\n\t\t};\n\n\t\t// Init worksheet data\n\t\tlet wsData: Array<any> = [];\n\n\t\t// Get data\n\t\tconst data = this.getData(\"html\", options);\n\t\tconst dataFields = this.getDataFields(data);\n\n\t\t// Vertical or horizontal (default) layout\n\t\tif (options.pivot) {\n\n\t\t\t// Data fields order\n\t\t\tconst dataFieldsOrder: string[] = this.get(\"dataFieldsOrder\", []);\n\n\t\t\t$object.eachOrdered(dataFields, (key, val) => {\n\t\t\t\tlet dataRow = [];\n\t\t\t\tif (options.addColumnNames) {\n\t\t\t\t\tdataRow.push(val);\n\t\t\t\t}\n\t\t\t\tfor (let len = data.length, i = 0; i < len; i++) {\n\t\t\t\t\tlet dataValue = data[i][key];\n\t\t\t\t\tdataRow.push(this.convertToSpecialFormat(key, dataValue, options, true));\n\t\t\t\t}\n\t\t\t\twsData.push(this.getXLSXRow(dataRow, options, undefined, true));\n\t\t\t}, (a, b) => {\n\t\t\t\t//console.log(a, b)\n\t\t\t\tlet ai = dataFieldsOrder.indexOf(a);\n\t\t\t\tlet bi = dataFieldsOrder.indexOf(b);\n\t\t\t\tif (ai > bi) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t\telse if (ai < bi) {\n\t\t\t\t\treturn -1\n\t\t\t\t}\n\t\t\t\treturn 0;\n\t\t\t});\n\n\t\t}\n\n\t\telse {\n\t\t\t// Add column names?\n\t\t\tif (options.addColumnNames) {\n\t\t\t\twsData.push(this.getXLSXRow(dataFields, options, undefined, true));\n\t\t\t}\n\n\t\t\t// Add lines\n\t\t\tfor (let len = data.length, i = 0; i < len; i++) {\n\t\t\t\twsData.push(this.getXLSXRow(data[i], options, dataFields));\n\t\t\t}\n\t\t}\n\n\t\t// Create sheet and add data\n\t\twb.Sheets[sheetName] = XLSX.utils.aoa_to_sheet(wsData);\n\n\t\tthis.events.dispatch(\"workbookready\", {\n\t\t\ttype: \"workbookready\",\n\t\t\tformat: \"xlsx\",\n\t\t\toptions: options,\n\t\t\tworkbook: wb,\n\t\t\tworkbookOptions: wbOptions,\n\t\t\txlsx: XLSX,\n\t\t\ttarget: this\n\t\t});\n\n\t\treturn XLSX.write(wb, wbOptions);\n\t}\n\n\tprivate _normalizeExcelSheetName(name: string): string {\n\t\tname = name.replace(/([:\\\\\\/?*\\[\\]]+)/g, \" \");\n\t\treturn name.length > 30 ? name.substr(0, 30) + \"...\" : name;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getXLSXRow(row: any, options: IExportingXLSXOptions, dataFields: any, asIs: boolean = false): any[] {\n\n\t\t// Init\n\t\tlet items: any[] = [];\n\n\t\t// Data fields\n\t\tif (!dataFields) {\n\t\t\tdataFields = row;\n\t\t}\n\n\t\t// Data fields order\n\t\tconst dataFieldsOrder: string[] = this.get(\"dataFieldsOrder\", []);\n\n\t\t// Process each row item\n\t\t$object.eachOrdered(dataFields, (key, _name) => {\n\n\t\t\t// Get value\n\t\t\tlet value = this.convertEmptyValue(key, row[key], options);\n\n\t\t\t// Convert dates\n\t\t\tlet item = asIs ? value : this.convertToSpecialFormat(key, value, options, true);\n\n\t\t\titems.push(item);\n\t\t}, (a, b) => {\n\t\t\t//console.log(a, b)\n\t\t\tlet ai = dataFieldsOrder.indexOf(a);\n\t\t\tlet bi = dataFieldsOrder.indexOf(b);\n\t\t\tif (ai > bi) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\telse if (ai < bi) {\n\t\t\t\treturn -1\n\t\t\t}\n\t\t\treturn 0;\n\t\t});\n\n\t\treturn items;\n\t}\n\n\n\t/**\n\t * @ignore\n\t */\n\tprivate async _xlsx(): Promise<any> {\n\t\treturn await import(/* webpackChunkName: \"xlsx\" */ \"xlsx/dist/xlsx.core.min.js\");\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getXLSXLib(): Promise<any> {\n\t\treturn this._xlsx();\n\t}\n\n\t/**\n\t * ==========================================================================\n\t * PDF\n\t * ==========================================================================\n\t */\n\n\t/**\n\t * Returns a data:uri representation of a PDF file with chart image.\n\t *\n\t * @param customOptions Format options\n\t * @return Promise\n\t */\n\tpublic async exportPDF(customOptions?: IExportingPDFOptions): Promise<string> {\n\t\treturn \"data:\" + this.getContentType(\"pdf\") + \";\" + this.get(\"charset\", \"utf-8\") + \",\" + encodeURIComponent(await this.getPDF(customOptions, true));\n\t}\n\n\t/**\n\t * Returns a data:uri representation of a PDF file with chart data.\n\t *\n\t * @param customOptions Format options\n\t * @return Promise\n\t */\n\tpublic async exportPDFData(customOptions?: IExportingDataOptions): Promise<string> {\n\t\treturn \"data:\" + this.getContentType(\"pdf\") + \";\" + this.get(\"charset\", \"utf-8\") + \",\" + encodeURIComponent(await this.getPDF(customOptions, false, true));\n\t}\n\n\t/**\n\t * Returns Base64-encoded binary data for a PDF file.\n\t * @param customOptions PDF options\n\t * @param includeImage Include chart snapshot\n\t * @param includeData Include data\n\t * @return Promise\n\t */\n\tpublic async getPDF(customOptions?: IExportingPDFOptions, includeImage: boolean = true, includeData: boolean = false): Promise<string> {\n\n\t\tconst options: any = this._getFormatOptions(\"pdf\", customOptions);\n\t\tconst dataOptions: any = this._getFormatOptions(\"pdfdata\", customOptions);\n\t\tconst orientation: \"landscape\" | \"portrait\" = options.pageOrientation || \"portrait\";\n\n\t\t// Get image\n\t\tlet image: string;\n\t\tif (includeImage) {\n\t\t\timage = await this.exportImage(options.imageFormat || \"png\", options);\n\t\t}\n\t\t// Load pdfmake\n\n\t\tconst pdfmake = await this.getPdfmake();\n\n\t\t// Defaults\n\t\tconst defaultMargins = [30, 30, 30, 30];\n\n\t\t// Init content for PDF\n\t\tlet doc = {\n\t\t\tpageSize: options.pageSize || \"A4\",\n\t\t\tpageOrientation: orientation,\n\t\t\tpageMargins: options.pageMargins || defaultMargins,\n\t\t\tdefaultStyle: {\n\t\t\t\tfont: options.font ? options.font.name : undefined\n\t\t\t},\n\t\t\t//header: <any>[],\n\t\t\tcontent: <any>[]\n\t\t};\n\n\t\t// Should we add title?\n\t\tconst title = this.get(\"title\");\n\n\t\tlet extraMargin = 0;\n\n\t\tif (title) {\n\t\t\tdoc.content.push({\n\t\t\t\ttext: title,\n\t\t\t\tfontSize: options.fontSize || 14,\n\t\t\t\tbold: true,\n\t\t\t\tmargin: [0, 0, 0, 15]\n\t\t\t});\n\n\t\t\t// Add some leftover margin for title\n\t\t\textraMargin += 50;\n\t\t}\n\n\t\t// Add page URL?\n\t\tif (options.addURL) {\n\t\t\tdoc.content.push({\n\t\t\t\ttext: this._t(\"Saved from\") + \": \" + document.location.href,\n\t\t\t\tfontSize: options.fontSize,\n\t\t\t\tmargin: [0, 0, 0, 15]\n\t\t\t});\n\n\t\t\t// Add some leftover margin for URL\n\t\t\textraMargin += 50;\n\t\t}\n\n\t\t// Add image\n\t\tif (includeImage && image!) {\n\t\t\tdoc.content.push({\n\t\t\t\timage: image!,\n\t\t\t\talignment: options.align || \"left\",\n\t\t\t\tfit: this.getPageSizeFit(doc.pageSize, doc.pageMargins, extraMargin, orientation)\n\t\t\t});\n\t\t}\n\n\t\t// Add data\n\t\tif ((includeData || options.includeData) && this.hasData()) {\n\t\t\tdoc.content.push({\n\t\t\t\ttable: await this.getPDFData(dataOptions),\n\t\t\t\tfontSize: options.fontSize || 14\n\t\t\t});\n\t\t}\n\n\t\tlet fonts: { [name: string]: { [types: string]: string } } | null = null;\n\t\tlet vfs: { [path: string]: string } | null = null;\n\n\t\tfunction addFont(font: IFont) {\n\t\t\tconst paths: { [path: string]: string } = {};\n\n\t\t\tpaths.normal = font.normal.path;\n\t\t\tvfs![font.normal.path] = font.normal.bytes;\n\n\t\t\tif (font.bold) {\n\t\t\t\tpaths.bold = font.bold.path;\n\t\t\t\tvfs![font.bold.path] = font.bold.bytes;\n\n\t\t\t} else {\n\t\t\t\tpaths.bold = font.normal.path;\n\t\t\t}\n\n\t\t\tif (font.italics) {\n\t\t\t\tpaths.italics = font.italics.path;\n\t\t\t\tvfs![font.italics.path] = font.italics.bytes;\n\n\t\t\t} else {\n\t\t\t\tpaths.italics = font.normal.path;\n\t\t\t}\n\n\t\t\tif (font.bolditalics) {\n\t\t\t\tpaths.bolditalics = font.bolditalics.path;\n\t\t\t\tvfs![font.bolditalics.path] = font.bolditalics.bytes;\n\n\t\t\t} else {\n\t\t\t\tpaths.bolditalics = font.normal.path;\n\t\t\t}\n\n\t\t\tfonts![font.name] = paths;\n\t\t}\n\n\t\tif (options.font) {\n\t\t\tfonts = {};\n\t\t\tvfs = {};\n\t\t\taddFont(options.font);\n\n\t\t\tif (options.extraFonts) {\n\t\t\t\t$array.each(options.extraFonts, addFont);\n\t\t\t}\n\t\t}\n\n\t\tthis.events.dispatch(\"pdfdocready\", {\n\t\t\ttype: \"pdfdocready\",\n\t\t\tformat: \"pdf\",\n\t\t\toptions: options,\n\t\t\tdoc: doc,\n\t\t\ttarget: this\n\t\t});\n\n\t\t// Create PDF\n\t\treturn new Promise<string>((success, _error) => {\n\t\t\tpdfmake.createPdf(doc, null, fonts, vfs).getBase64((uri: string) => {\n\t\t\t\tsuccess(uri);\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic async getPDFData(customOptions?: IExportingDataOptions): Promise<any> {\n\n\t\tconst options: any = this._getFormatOptions(\"pdfdata\", customOptions);\n\n\t\t// Init output\n\t\tlet content = <any>{\n\t\t\t\"body\": <any>[]\n\t\t};\n\n\t\t// Get data\n\t\tconst data = this.getData(\"html\", options);\n\t\tconst dataFields = this.getDataFields(data);\n\n\t\t// Vertical or horizontal (default) layout\n\t\tif (options.pivot) {\n\n\t\t\t// Data fields order\n\t\t\tconst dataFieldsOrder: string[] = this.get(\"dataFieldsOrder\", []);\n\n\t\t\t$object.eachOrdered(dataFields, (key, val) => {\n\t\t\t\tlet dataRow = [];\n\t\t\t\tif (options.addColumnNames) {\n\t\t\t\t\tdataRow.push(val);\n\t\t\t\t}\n\t\t\t\tfor (let len = data.length, i = 0; i < len; i++) {\n\t\t\t\t\tlet dataValue = data[i][key];\n\t\t\t\t\tdataRow.push(this.convertToSpecialFormat(key, dataValue, options, true));\n\t\t\t\t}\n\t\t\t\tcontent.body.push(this.getPDFDataRow(dataRow, options, undefined, true));\n\t\t\t}, (a, b) => {\n\t\t\t\t//console.log(a, b)\n\t\t\t\tlet ai = dataFieldsOrder.indexOf(a);\n\t\t\t\tlet bi = dataFieldsOrder.indexOf(b);\n\t\t\t\tif (ai > bi) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t\telse if (ai < bi) {\n\t\t\t\t\treturn -1\n\t\t\t\t}\n\t\t\t\treturn 0;\n\t\t\t});\n\n\t\t}\n\n\t\telse {\n\n\t\t\t// Add column names?\n\t\t\tif (options.addColumnNames) {\n\t\t\t\tcontent.body.push(this.getPDFDataRow(dataFields, options, undefined, true));\n\t\t\t\tcontent.headerRows = 1;\n\t\t\t}\n\n\t\t\tfor (let len = data.length, i = 0; i < len; i++) {\n\t\t\t\tcontent.body.push(this.getPDFDataRow(data[i], options, dataFields));\n\t\t\t}\n\n\t\t}\n\n\t\treturn content;\n\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getPDFDataRow(row: any, options: IExportingDataOptions, dataFields?: any, asIs: boolean = false): Array<string> {\n\n\t\t// Init\n\t\tlet items: any[] = [];\n\n\t\t// Data fields\n\t\tif (!dataFields) {\n\t\t\tdataFields = row;\n\t\t}\n\n\t\t// Data fields order\n\t\tconst dataFieldsOrder: string[] = this.get(\"dataFieldsOrder\", []);\n\n\t\t// Process each row item\n\t\t$object.eachOrdered(dataFields, (key, _name) => {\n\n\t\t\t// Get value\n\t\t\tlet value = this.convertEmptyValue(key, row[key], options);\n\n\t\t\t// Convert dates\n\t\t\tlet item = asIs ? value : this.convertToSpecialFormat(key, value, options);\n\t\t\titem = \"\" + item;\n\n\t\t\t// Add to item\n\t\t\titems.push(item);\n\t\t}, (a, b) => {\n\t\t\t//console.log(a, b)\n\t\t\tlet ai = dataFieldsOrder.indexOf(a);\n\t\t\tlet bi = dataFieldsOrder.indexOf(b);\n\t\t\tif (ai > bi) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\telse if (ai < bi) {\n\t\t\t\treturn -1\n\t\t\t}\n\t\t\treturn 0;\n\t\t});\n\n\t\treturn items;\n\t}\n\n\t/**\n\t * Returns pdfmake instance.\n\t *\n\t * @ignore\n\t * @return Instance of pdfmake\n\t */\n\tpublic getPdfmake(): Promise<any> {\n\t\tif (pdfmakePromise === undefined) {\n\t\t\tpdfmakePromise = _pdfmake();\n\t\t}\n\n\t\treturn pdfmakePromise;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getPageSizeFit(pageSize: pageSizes, margins: number | number[], extraMargin: number = 0, orientation: \"landscape\" | \"portrait\" = \"portrait\"): number[] {\n\n\t\t// Check margins\n\t\tlet newMargins = [0, 0, 0, 0];\n\t\tif ($type.isNumber(margins)) {\n\t\t\tnewMargins = [margins, margins, margins, margins];\n\t\t}\n\t\telse if (margins.length == 2) {\n\t\t\tnewMargins = [margins[0], margins[1], margins[0], margins[1]];\n\t\t}\n\t\telse if (margins.length == 4) {\n\t\t\tnewMargins = margins;\n\t\t}\n\n\t\t// Define available page sizes\n\t\tlet sizes = {\n\t\t\t\"4A0\": [4767.87, 6740.79],\n\t\t\t\"2A0\": [3370.39, 4767.87],\n\t\t\tA0: [2383.94, 3370.39],\n\t\t\tA1: [1683.78, 2383.94],\n\t\t\tA2: [1190.55, 1683.78],\n\t\t\tA3: [841.89, 1190.55],\n\t\t\tA4: [595.28, 841.89],\n\t\t\tA5: [419.53, 595.28],\n\t\t\tA6: [297.64, 419.53],\n\t\t\tA7: [209.76, 297.64],\n\t\t\tA8: [147.40, 209.76],\n\t\t\tA9: [104.88, 147.40],\n\t\t\tA10: [73.70, 104.88],\n\t\t\tB0: [2834.65, 4008.19],\n\t\t\tB1: [2004.09, 2834.65],\n\t\t\tB2: [1417.32, 2004.09],\n\t\t\tB3: [1000.63, 1417.32],\n\t\t\tB4: [708.66, 1000.63],\n\t\t\tB5: [498.90, 708.66],\n\t\t\tB6: [354.33, 498.90],\n\t\t\tB7: [249.45, 354.33],\n\t\t\tB8: [175.75, 249.45],\n\t\t\tB9: [124.72, 175.75],\n\t\t\tB10: [87.87, 124.72],\n\t\t\tC0: [2599.37, 3676.54],\n\t\t\tC1: [1836.85, 2599.37],\n\t\t\tC2: [1298.27, 1836.85],\n\t\t\tC3: [918.43, 1298.27],\n\t\t\tC4: [649.13, 918.43],\n\t\t\tC5: [459.21, 649.13],\n\t\t\tC6: [323.15, 459.21],\n\t\t\tC7: [229.61, 323.15],\n\t\t\tC8: [161.57, 229.61],\n\t\t\tC9: [113.39, 161.57],\n\t\t\tC10: [79.37, 113.39],\n\t\t\tRA0: [2437.80, 3458.27],\n\t\t\tRA1: [1729.13, 2437.80],\n\t\t\tRA2: [1218.90, 1729.13],\n\t\t\tRA3: [864.57, 1218.90],\n\t\t\tRA4: [609.45, 864.57],\n\t\t\tSRA0: [2551.18, 3628.35],\n\t\t\tSRA1: [1814.17, 2551.18],\n\t\t\tSRA2: [1275.59, 1814.17],\n\t\t\tSRA3: [907.09, 1275.59],\n\t\t\tSRA4: [637.80, 907.09],\n\t\t\tEXECUTIVE: [521.86, 756.00],\n\t\t\tFOLIO: [612.00, 936.00],\n\t\t\tLEGAL: [612.00, 1008.00],\n\t\t\tLETTER: [612.00, 792.00],\n\t\t\tTABLOID: [792.00, 1224.00]\n\t\t};\n\n\t\t// Calculate size\n\t\tlet fitSize = sizes[pageSize];\n\t\tif (orientation == \"landscape\") {\n\t\t\tfitSize.reverse();\n\t\t}\n\t\tfitSize[0] -= newMargins[0] + newMargins[2];\n\t\tfitSize[1] -= newMargins[1] + newMargins[3] + extraMargin;\n\t\treturn fitSize;\n\t}\n\n\t/**\n\t * ==========================================================================\n\t * Data\n\t * ==========================================================================\n\t */\n\n\t/**\n\t\t* Returns `true` if `dataSource` is set, and the contents are proper\n\t\t* data (array).\n\t\t*\n\t\t* @return Has data?\n\t\t*/\n\tpublic hasData(): boolean {\n\t\tconst dataSource = this.get(\"dataSource\");\n\t\treturn $type.isArray(dataSource) && dataSource.length ? true : false;\n\t}\n\n\t/**\n\t * Returns processed data according to format options.\n\t *\n\t * @param format Format\n\t * @param customOptions Format options\n\t * @param renameFields Should fields be renamed?\n\t * @return Processed data\n\t */\n\tpublic getData(format: ExportingFormats, customOptions?: IExportingDataOptions, renameFields: boolean = false): any {\n\t\tconst options: any = this._getFormatOptions(format, customOptions);\n\t\tconst dataSource = this.get(\"dataSource\", []);\n\t\tlet data: any = dataSource;\n\n\t\t// Re-generate the data based on data fields if set\n\t\tconst dataFields = this.get(\"dataFields\");\n\t\tif (dataFields && $type.isArray(dataSource)) {\n\t\t\tdata = [];\n\t\t\t$array.each(dataSource, (row) => {\n\t\t\t\tif ($type.isObject(row)) {\n\t\t\t\t\tconst newRow: any = {}\n\t\t\t\t\t$object.each(dataFields, (field, value) => {\n\t\t\t\t\t\tif (dataFields![field] != null) {\n\t\t\t\t\t\t\tnewRow[renameFields ? value : field] = this.convertToSpecialFormat(field, row[field], options);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tdata.push(newRow);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tconst event: any = {\n\t\t\ttype: \"dataprocessed\",\n\t\t\tformat: format,\n\t\t\toptions: options,\n\t\t\tdata: data,\n\t\t\ttarget: this\n\t\t};\n\n\t\tthis.events.dispatch(\"dataprocessed\", event);\n\n\t\treturn event.data;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getDataFields(data: any): { [index: string]: string } {\n\t\tlet dataFields = this.get(\"dataFields\");\n\t\tif (!dataFields) {\n\t\t\tdataFields = {};\n\t\t\tif ($type.isArray(data) && data.length) {\n\t\t\t\t$array.each(data, (row) => {\n\t\t\t\t\t$object.each(row, (key, _value) => {\n\t\t\t\t\t\tif (dataFields![key] == null) {\n\t\t\t\t\t\t\tdataFields![key] = key;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn dataFields!;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic convertEmptyValue(_field: string, value: any, options: IExportingDataOptions): any {\n\t\treturn value != null ? value : options.emptyAs;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic convertToSpecialFormat(field: any, value: any, options: IExportingDataOptions, keepOriginal?: boolean): any {\n\n\t\t// Is this a timestamp or duration?\n\t\tif (typeof value == \"number\") {\n\t\t\tif (this.isDateField(field)) {\n\t\t\t\tvalue = new Date(value);\n\t\t\t}\n\t\t\telse if (this.isNumericField(field) && this.get(\"numberFormat\")) {\n\t\t\t\treturn this._root.numberFormatter.format(value, this.get(\"numberFormat\"));\n\t\t\t}\n\t\t\telse if (this.isDurationField(field)) {\n\t\t\t\treturn this._root.durationFormatter.format(value, this.get(\"durationFormat\"), this.get(\"durationUnit\"));\n\t\t\t}\n\t\t}\n\n\t\tif (value instanceof Date) {\n\t\t\tif (options.useTimestamps) {\n\t\t\t\tvalue = value.getTime();\n\t\t\t}\n\t\t\telse if (options.useLocale) {\n\t\t\t\tif (!keepOriginal) {\n\t\t\t\t\tvalue = value.toLocaleString();\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvalue = this._root.dateFormatter.format(value, this.get(\"dateFormat\"));\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic isDateField(field: string): boolean {\n\t\treturn this.get(\"dateFields\")!.indexOf(field) !== -1;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic isNumericField(field: string): boolean {\n\t\treturn this.get(\"numericFields\")!.indexOf(field) !== -1;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic isDurationField(field: string): boolean {\n\t\treturn this.get(\"durationFields\")!.indexOf(field) !== -1;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getContentType(type: ExportingFormats): string {\n\t\tlet contentType = \"\";\n\t\tswitch (type) {\n\t\t\tcase \"png\":\n\t\t\t\tcontentType = \"image/\" + type;\n\t\t\t\tbreak;\n\t\t\tcase \"jpg\":\n\t\t\t\tcontentType = \"image/jpeg\";\n\t\t\t\tbreak;\n\t\t\tcase \"csv\":\n\t\t\t\tcontentType = \"text/csv\";\n\t\t\t\tbreak;\n\t\t\tcase \"json\":\n\t\t\t\tcontentType = \"application/json\";\n\t\t\t\tbreak;\n\t\t\tcase \"html\":\n\t\t\t\tcontentType = \"text/html\";\n\t\t\t\tbreak;\n\t\t\tcase \"pdf\":\n\t\t\tcase \"pdfdata\":\n\t\t\t\tcontentType = \"application/pdf\";\n\t\t\t\tbreak;\n\t\t\tcase \"xlsx\":\n\t\t\t\tcontentType = \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tcontentType = \"application/octet-stream\";\n\t\t}\n\n\t\treturn contentType;\n\t}\n\n\tprotected getDisposableCanvas(): HTMLCanvasElement {\n\t\tlet canvas = document.createElement(\"canvas\");\n\t\tcanvas.style.position = \"fixed\";\n\t\tcanvas.style.top = \"-10000px\";\n\t\tthis._root.dom.appendChild(canvas);\n\t\treturn canvas;\n\t}\n\n\tprotected disposeCanvas(canvas: HTMLCanvasElement): void {\n\t\tthis._root.dom.removeChild(canvas);\n\t}\n\n\n\t/**\n\t * @ignore\n\t */\n\tpublic findBackgroundColor(element: Element): Color {\n\n\t\t// Check if element has styles set\n\t\tlet opacity = 1;\n\t\tlet currentColor = getComputedStyle(element, \"background-color\").getPropertyValue(\"background-color\");\n\n\t\t// Check opacity\n\t\tif (currentColor.match(/[^,]*,[^,]*,[^,]*,[ ]?0/) || currentColor == \"transparent\") {\n\t\t\topacity = 0;\n\t\t}\n\n\t\tif (opacity == 0) {\n\t\t\tlet parent = element.parentElement;// || <Element>element.parentNode;\n\n\t\t\t// Completely transparent. Look for a parent\n\t\t\tif (parent) {\n\t\t\t\treturn this.findBackgroundColor(parent);\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn Color.fromHex(0xffffff);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\treturn Color.fromCSS(currentColor);\n\t\t}\n\n\t}\n\n\t/**\n\t * Triggers download of the file.\n\t *\n\t * @param uri data:uri with file content\n\t * @param fileName File name\n\t * @param addBOM Should download include byte order mark?\n\t * @return Promise\n\t */\n\tpublic streamFile(uri: string, fileName: string, addBOM: boolean = false): boolean {\n\n\t\tif (this.blobDownloadSupport()) {\n\n\t\t\t/**\n\t\t\t * Supports Blob object.\n\t\t\t * Use it.\n\t\t\t */\n\t\t\tlet link = document.createElement(\"a\");\n\t\t\tlink.download = fileName;\n\t\t\tdocument.body.appendChild(link);\n\n\t\t\t// Extract content type and get pure data without headers\n\t\t\tlet parts = uri.split(\";\");\n\t\t\tlet contentType = parts!.shift()!.replace(/data:/, \"\");\n\n\t\t\turi = decodeURIComponent(parts.join(\";\").replace(/^[^,]*,/, \"\"));\n\n\t\t\tif ([\"image/svg+xml\", \"application/json\", \"text/csv\", \"text/html\"].indexOf(contentType) == -1) {\n\t\t\t\ttry {\n\t\t\t\t\tlet decoded = atob(uri);\n\t\t\t\t\turi = decoded;\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// Error occurred, meaning string was not Base64-encoded. Do nothing.\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (addBOM) {\n\t\t\t\t\turi = \"\\ufeff\" + uri;\n\t\t\t\t}\n\t\t\t\tlet blob = new Blob([uri], { type: contentType });\n\t\t\t\tlet url = window.URL.createObjectURL(blob);\n\t\t\t\tlink.href = url;\n\t\t\t\tlink.download = fileName;\n\t\t\t\tlink.click();\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tdocument.body.removeChild(link);\n\t\t\t\t\twindow.URL.revokeObjectURL(url);\n\t\t\t\t}, 100);\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Dissect uri into array\n\t\t\tlet chars = new Array(uri.length);\n\t\t\tfor (let i = 0; i < uri.length; ++i) {\n\t\t\t\tlet charCode = uri.charCodeAt(i);\n\t\t\t\tchars[i] = charCode;\n\t\t\t}\n\n\t\t\tif (addBOM) {\n\t\t\t\tchars = [0xEF, 0xBB, 0xBF].concat(chars);\n\t\t\t}\n\t\t\tlet blob = new Blob([new Uint8Array(chars)], { type: contentType });\n\t\t\tlet url = window.URL.createObjectURL(blob);\n\t\t\tlink.href = url;\n\t\t\tlink.download = fileName;\n\t\t\tdocument.body.appendChild(link);\n\t\t\tlink.click();\n\t\t\tdocument.body.removeChild(link);\n\t\t\tsetTimeout(() => {\n\t\t\t\twindow.URL.revokeObjectURL(url);\n\t\t\t}, 100);\n\n\t\t}\n\n\t\telse if (this.linkDownloadSupport()) {\n\n\t\t\t/**\n\t\t\t * For regular browsers, we create a link then simulate a click on it\n\t\t\t */\n\n\t\t\tlet link = document.createElement(\"a\");\n\t\t\tlink.download = fileName;\n\t\t\tlink.href = uri;\n\t\t\tdocument.body.appendChild(link);\n\t\t\tlink.click();\n\t\t\tdocument.body.removeChild(link);\n\n\t\t}\n\t\telse {\n\n\t\t\t/**\n\t\t\t * Something else - perhaps a mobile.\n\t\t\t * Let's just display it in the same page.\n\t\t\t * (hey we don't like it either)\n\t\t\t */\n\t\t\twindow.location.href = uri;\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic downloadSupport(): boolean {\n\t\treturn this.linkDownloadSupport();\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic linkDownloadSupport(): boolean {\n\t\tlet a = document.createElement(\"a\");\n\t\tlet res = typeof a.download !== \"undefined\";\n\t\treturn res;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic blobDownloadSupport(): boolean {\n\t\treturn window.Blob != null;\n\t}\n\n\n\t/**\n\t * ==========================================================================\n\t * Print\n\t * ==========================================================================\n\t */\n\n\t/**\n\t * Initiates print of the chart.\n\t *\n\t * @param data data:uri for the image\n\t * @param options Options\n\t * @param title Optional title to use (uses window's title by default)\n\t * @return Promise\n\t */\n\tpublic initiatePrint(data: string, customOptions?: IExportingPrintOptions, title?: string): void {\n\t\tconst options = <IExportingPrintOptions>this._getFormatOptions(\"print\", customOptions);\n\t\tif (options.printMethod == \"css\") {\n\t\t\tthis._printViaCSS(data, options, title);\n\t\t}\n\t\telse {\n\t\t\tthis._printViaIframe(data, options, title);\n\t\t}\n\n\t}\n\n\tprotected _printViaCSS(data: string, customOptions?: IExportingPrintOptions, title?: string): void {\n\t\tconst options = <IExportingPrintOptions>this._getFormatOptions(\"print\", customOptions);\n\t\tlet delay = options.delay || 500;\n\n\t\t//Save current scroll position\n\t\tlet scroll = document.documentElement.scrollTop || document.body.scrollTop;\n\n\t\t// Hide all document nodes by applyin custom CSS\n\t\tlet rule = new StyleRule($utils.getShadowRoot(this._root.dom), \"body > *\", {\n\t\t\t\"display\": \"none\",\n\t\t\t\"position\": \"fixed\",\n\t\t\t\"visibility\": \"hidden\",\n\t\t\t\"opacity\": \"0\",\n\t\t\t\"clipPath\": \"polygon(0px 0px,0px 0px,0px 0px,0px 0px);\"\n\t\t}, this._root.nonce);\n\n\t\t// Replace title?\n\t\tlet originalTitle: string;\n\t\tif (title && document && document.title) {\n\t\t\toriginalTitle = document.title;\n\t\t\tdocument.title = title;\n\t\t}\n\n\t\t// Create and add exported image\n\t\tlet img = new Image();\n\t\timg.src = data;\n\t\timg.style.maxWidth = \"100%\";\n\t\timg.style.display = \"block\";\n\t\timg.style.position = \"relative\";\n\t\timg.style.visibility = \"visible\";\n\t\timg.style.opacity = \"1\";\n\t\timg.style.clipPath = \"none\";\n\t\tdocument.body.appendChild(img);\n\n\t\t// Print\n\t\tthis.setTimeout(() => {\n\t\t\t(<any>window).print();\n\t\t}, 50);\n\n\t\t// Delay needs to be at least a second for iOS devices\n\t\tlet isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !(<any>window).MSStream;\n\t\tif (isIOS && (delay < 1000)) {\n\t\t\tdelay = 1000;\n\t\t}\n\t\telse if (delay < 100) {\n\t\t\tdelay = 100;\n\t\t}\n\n\t\t// Delay function that resets back the document the way ot was before\n\t\tthis.setTimeout(() => {\n\n\t\t\t// Remove image\n\t\t\tdocument.body.removeChild(img);\n\n\t\t\t// Reset back all elements\n\t\t\t/*for (let len = items.length, i = 0; i < len; i++) {\n\t\t\t\tlet item = <HTMLElement>items[i];\n\t\t\t\tif ($dom.isElement(item)) {\n\t\t\t\t\titem.style.display = states[i];\n\t\t\t\t}\n\t\t\t}*/\n\t\t\trule.dispose();\n\n\t\t\t// Restore title\n\t\t\tif (originalTitle) {\n\t\t\t\tdocument.title = document.title;\n\t\t\t}\n\n\t\t\t// Scroll back the document the way it was before\n\t\t\tdocument.documentElement.scrollTop = document.body.scrollTop = scroll;\n\n\t\t}, delay || 500);\n\n\t}\n\n\tprotected _printViaIframe(data: string, customOptions?: IExportingPrintOptions, title?: string): void {\n\t\tconst options = <IExportingPrintOptions>this._getFormatOptions(\"print\", customOptions);\n\t\tlet delay = options.delay || 500;\n\n\t\t// Create an iframe\n\t\tconst iframe = document.createElement(\"iframe\");\n\t\tiframe.style.visibility = \"hidden\";\n\t\tdocument.body.appendChild(iframe);\n\n\t\t// This is needed for FireFox\n\t\tiframe.contentWindow!.document.open();\n\t\tiframe.contentWindow!.document.close();\n\n\t\t// Create and add exported image\n\t\tlet img = new Image();\n\t\timg.src = data;\n\t\timg.style.maxWidth = \"100%\";\n\t\timg.style.height = \"auto\";\n\t\tif (title) {\n\t\t\tiframe.contentWindow!.document.title = title;\n\t\t}\n\t\tiframe.contentWindow!.document.body.appendChild(img);\n\n\t\t(<any>iframe).load = function() {\n\t\t\tiframe.contentWindow!.document.body.appendChild(img);\n\t\t};\n\n\t\t// Print\n\t\tthis.setTimeout(() => {\n\t\t\ttry {\n\t\t\t\tif (!(<any>iframe).contentWindow.document.execCommand(\"print\", false, null)) {\n\t\t\t\t\t(<any>iframe).contentWindow.print();\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t(<any>iframe).contentWindow.print();\n\t\t\t}\n\t\t}, delay || 50);\n\n\t\t// Delay needs to be at least a second for iOS devices\n\t\tlet isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !(<any>window).MSStream;\n\t\tif (isIOS && (delay < 1000)) {\n\t\t\tdelay = 1000;\n\t\t}\n\t\telse if (delay < 100) {\n\t\t\tdelay = 100;\n\t\t}\n\n\t\t// Delay function that resets back the document the way ot was before\n\t\tthis.setTimeout(() => {\n\n\t\t\t// Remove image\n\t\t\tdocument.body.removeChild(iframe);\n\n\t\t}, delay + 50 || 100);\n\n\t}\n\n\t/**\n\t * Returns a list of formats that can be exported in current browser.\n\t *\n\t * @return Formats\n\t */\n\tpublic supportedFormats(): ExportingFormats[] {\n\t\tconst res: ExportingFormats[] = [];\n\t\tconst hasData = this.hasData();\n\t\tconst downloadSupport = this.downloadSupport();\n\t\t$array.each(<ExportingFormats[]>[\"png\", \"jpg\", \"canvas\", \"pdf\", \"xlsx\", \"csv\", \"json\", \"html\", \"pdfdata\", \"print\"], (format) => {\n\t\t\tconst options = this._getFormatOptions(format);\n\t\t\tif (options.disabled !== true) {\n\t\t\t\tif ([\"xlsx\", \"csv\", \"json\", \"html\", \"pdfdata\"].indexOf(format) == -1 || (hasData && downloadSupport)) {\n\t\t\t\t\tres.push(<ExportingFormats>format);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn res;\n\t}\n\n\t/**\n\t * Returns a list of supported export types: image or print.\n\t *\n\t * @return Supported types\n\t */\n\tpublic supportedExportTypes(): ExportingTypes[] {\n\t\tconst res: ExportingTypes[] = [\"image\", \"print\"];\n\t\tif (this.downloadSupport() && this.hasData()) {\n\t\t\tres.push(\"data\");\n\t\t}\n\t\treturn res;\n\t}\n\n}\n"]}
@@ -3,16 +3,16 @@ import { MultiDisposer, CounterDisposer } from "../../core/util/Disposer";
3
3
  /**
4
4
  * @ignore
5
5
  */
6
- var rules;
6
+ let rules;
7
7
  /**
8
8
  * @ignore
9
9
  */
10
10
  export default function (element, root, _prefix) {
11
11
  //const newPrefix = (prefix ? prefix : "am5");
12
12
  //let colorSet = new InterfaceColorSet();
13
- var ic = root.interfaceColors;
13
+ const ic = root.interfaceColors;
14
14
  if (!rules) {
15
- var disposer_1 = new MultiDisposer([
15
+ const disposer = new MultiDisposer([
16
16
  /*new StyleRule(".${newPrefix}-menu", {
17
17
  "opacity": "0.3",
18
18
  "transition": "all 100ms ease-in-out",
@@ -119,9 +119,9 @@ export default function (element, root, _prefix) {
119
119
  // "right": "5px",
120
120
  // })
121
121
  ]);
122
- rules = new CounterDisposer(function () {
122
+ rules = new CounterDisposer(() => {
123
123
  rules = undefined;
124
- disposer_1.dispose();
124
+ disposer.dispose();
125
125
  });
126
126
  }
127
127
  return rules.increment();