@amcharts/amcharts5 5.0.8 → 5.0.12

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 (201) hide show
  1. package/.internal/charts/map/GraticuleSeries.js +1 -1
  2. package/.internal/charts/map/GraticuleSeries.js.map +1 -1
  3. package/.internal/charts/map/MapChart.d.ts +3 -0
  4. package/.internal/charts/map/MapChart.d.ts.map +1 -1
  5. package/.internal/charts/map/MapChart.js +30 -9
  6. package/.internal/charts/map/MapChart.js.map +1 -1
  7. package/.internal/charts/map/MapPointSeries.d.ts +2 -0
  8. package/.internal/charts/map/MapPointSeries.d.ts.map +1 -1
  9. package/.internal/charts/map/MapPointSeries.js +1 -1
  10. package/.internal/charts/map/MapPointSeries.js.map +1 -1
  11. package/.internal/charts/radar/RadarColumnSeries.js +1 -1
  12. package/.internal/charts/radar/RadarColumnSeries.js.map +1 -1
  13. package/.internal/charts/xy/XYChart.d.ts.map +1 -1
  14. package/.internal/charts/xy/XYChart.js +8 -1
  15. package/.internal/charts/xy/XYChart.js.map +1 -1
  16. package/.internal/charts/xy/XYChartDefaultTheme.d.ts.map +1 -1
  17. package/.internal/charts/xy/XYChartDefaultTheme.js +25 -4
  18. package/.internal/charts/xy/XYChartDefaultTheme.js.map +1 -1
  19. package/.internal/charts/xy/axes/Axis.d.ts +2 -2
  20. package/.internal/charts/xy/axes/Axis.d.ts.map +1 -1
  21. package/.internal/charts/xy/axes/Axis.js +11 -11
  22. package/.internal/charts/xy/axes/Axis.js.map +1 -1
  23. package/.internal/charts/xy/axes/AxisRenderer.d.ts +4 -4
  24. package/.internal/charts/xy/axes/AxisRenderer.d.ts.map +1 -1
  25. package/.internal/charts/xy/axes/AxisRenderer.js +13 -8
  26. package/.internal/charts/xy/axes/AxisRenderer.js.map +1 -1
  27. package/.internal/charts/xy/axes/CategoryAxis.js +1 -1
  28. package/.internal/charts/xy/axes/CategoryAxis.js.map +1 -1
  29. package/.internal/charts/xy/axes/CategoryDateAxis.js +1 -1
  30. package/.internal/charts/xy/axes/CategoryDateAxis.js.map +1 -1
  31. package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
  32. package/.internal/charts/xy/axes/DateAxis.js +2 -2
  33. package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
  34. package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
  35. package/.internal/charts/xy/axes/ValueAxis.js +38 -34
  36. package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
  37. package/.internal/charts/xy/series/CandlestickSeries.js +1 -1
  38. package/.internal/charts/xy/series/CandlestickSeries.js.map +1 -1
  39. package/.internal/charts/xy/series/ColumnSeries.js +1 -1
  40. package/.internal/charts/xy/series/ColumnSeries.js.map +1 -1
  41. package/.internal/charts/xy/series/LineSeries.js +2 -2
  42. package/.internal/charts/xy/series/LineSeries.js.map +1 -1
  43. package/.internal/charts/xy/series/OHLCSeries.js +1 -1
  44. package/.internal/charts/xy/series/OHLCSeries.js.map +1 -1
  45. package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
  46. package/.internal/charts/xy/series/XYSeries.js +5 -9
  47. package/.internal/charts/xy/series/XYSeries.js.map +1 -1
  48. package/.internal/core/Root.d.ts +6 -0
  49. package/.internal/core/Root.d.ts.map +1 -1
  50. package/.internal/core/Root.js +23 -2
  51. package/.internal/core/Root.js.map +1 -1
  52. package/.internal/core/render/Container.d.ts.map +1 -1
  53. package/.internal/core/render/Container.js +1 -0
  54. package/.internal/core/render/Container.js.map +1 -1
  55. package/.internal/core/render/Label.d.ts +1 -1
  56. package/.internal/core/render/Label.d.ts.map +1 -1
  57. package/.internal/core/render/Label.js +1 -0
  58. package/.internal/core/render/Label.js.map +1 -1
  59. package/.internal/core/render/Series.d.ts.map +1 -1
  60. package/.internal/core/render/Series.js +12 -12
  61. package/.internal/core/render/Series.js.map +1 -1
  62. package/.internal/core/render/Sprite.d.ts +3 -1
  63. package/.internal/core/render/Sprite.d.ts.map +1 -1
  64. package/.internal/core/render/Sprite.js +44 -26
  65. package/.internal/core/render/Sprite.js.map +1 -1
  66. package/.internal/core/render/Text.d.ts +1 -1
  67. package/.internal/core/render/Text.d.ts.map +1 -1
  68. package/.internal/core/render/Text.js.map +1 -1
  69. package/.internal/core/render/Tooltip.d.ts +2 -0
  70. package/.internal/core/render/Tooltip.d.ts.map +1 -1
  71. package/.internal/core/render/Tooltip.js +9 -0
  72. package/.internal/core/render/Tooltip.js.map +1 -1
  73. package/.internal/core/util/Array.d.ts +16 -0
  74. package/.internal/core/util/Array.d.ts.map +1 -1
  75. package/.internal/core/util/Array.js +30 -0
  76. package/.internal/core/util/Array.js.map +1 -1
  77. package/.internal/core/util/Entity.d.ts.map +1 -1
  78. package/.internal/core/util/Entity.js +6 -2
  79. package/.internal/core/util/Entity.js.map +1 -1
  80. package/.internal/core/util/Time.js +1 -1
  81. package/.internal/core/util/Time.js.map +1 -1
  82. package/CHANGELOG.md +45 -0
  83. package/examples/javascript/flow-chord/package.json +1 -1
  84. package/examples/javascript/flow-chord-directed/package.json +1 -1
  85. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  86. package/examples/javascript/flow-sankey/package.json +1 -1
  87. package/examples/javascript/gauge/package.json +1 -1
  88. package/examples/javascript/gauge-bands/package.json +1 -1
  89. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  90. package/examples/javascript/hierarchy-pack/package.json +1 -1
  91. package/examples/javascript/hierarchy-partition/package.json +1 -1
  92. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  93. package/examples/javascript/hierarchy-tree/package.json +1 -1
  94. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  95. package/examples/javascript/map-animating-along-lines/index.js +8 -0
  96. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  97. package/examples/javascript/map-day-and-night/package.json +1 -1
  98. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  99. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  100. package/examples/javascript/map-with-bubbles/package.json +1 -1
  101. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  102. package/examples/javascript/misc-40-charts/package.json +1 -1
  103. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  104. package/examples/javascript/pie-chart/package.json +1 -1
  105. package/examples/javascript/pie-donut-chart/package.json +1 -1
  106. package/examples/javascript/pie-variable-radius/package.json +1 -1
  107. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  108. package/examples/javascript/radar-heat-map/package.json +1 -1
  109. package/examples/javascript/radar-line/package.json +1 -1
  110. package/examples/javascript/radar-time-line/package.json +1 -1
  111. package/examples/javascript/sliced-funnel/package.json +1 -1
  112. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  113. package/examples/javascript/sliced-pyramid/package.json +1 -1
  114. package/examples/javascript/venn-diagram/package.json +1 -1
  115. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  116. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  117. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  118. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  119. package/examples/javascript/xy-bubble/package.json +1 -1
  120. package/examples/javascript/xy-candlestick/package.json +1 -1
  121. package/examples/javascript/xy-clustered-column/package.json +1 -1
  122. package/examples/javascript/xy-column/package.json +1 -1
  123. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  124. package/examples/javascript/xy-data-grouping/package.json +1 -1
  125. package/examples/javascript/xy-draggable-range/index.js +2 -1
  126. package/examples/javascript/xy-draggable-range/package.json +1 -1
  127. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  128. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  129. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  130. package/examples/javascript/xy-line/package.json +1 -1
  131. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  132. package/examples/javascript/xy-live-data/package.json +1 -1
  133. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  134. package/examples/javascript/xy-ohlc/package.json +1 -1
  135. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  136. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  137. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  138. package/examples/javascript/xy-stacked-column/package.json +1 -1
  139. package/examples/javascript/xy-stacked-step/package.json +1 -1
  140. package/examples/javascript/xy-stock/package.json +1 -1
  141. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  142. package/examples/typescript/flow-chord/package.json +1 -1
  143. package/examples/typescript/flow-chord-directed/package.json +1 -1
  144. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  145. package/examples/typescript/flow-sankey/package.json +1 -1
  146. package/examples/typescript/gauge/package.json +1 -1
  147. package/examples/typescript/gauge-bands/package.json +1 -1
  148. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  149. package/examples/typescript/hierarchy-pack/package.json +1 -1
  150. package/examples/typescript/hierarchy-partition/package.json +1 -1
  151. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  152. package/examples/typescript/hierarchy-tree/package.json +1 -1
  153. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  154. package/examples/typescript/map-animating-along-lines/index.ts +8 -0
  155. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  156. package/examples/typescript/map-day-and-night/package.json +1 -1
  157. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  158. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  159. package/examples/typescript/map-with-bubbles/package.json +1 -1
  160. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  161. package/examples/typescript/misc-40-charts/package.json +1 -1
  162. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  163. package/examples/typescript/pie-chart/package.json +1 -1
  164. package/examples/typescript/pie-donut-chart/package.json +1 -1
  165. package/examples/typescript/pie-variable-radius/package.json +1 -1
  166. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  167. package/examples/typescript/radar-heat-map/package.json +1 -1
  168. package/examples/typescript/radar-line/package.json +1 -1
  169. package/examples/typescript/radar-time-line/package.json +1 -1
  170. package/examples/typescript/sliced-funnel/package.json +1 -1
  171. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  172. package/examples/typescript/sliced-pyramid/package.json +1 -1
  173. package/examples/typescript/venn-diagram/package.json +1 -1
  174. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  175. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  176. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  177. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  178. package/examples/typescript/xy-bubble/package.json +1 -1
  179. package/examples/typescript/xy-candlestick/package.json +1 -1
  180. package/examples/typescript/xy-clustered-column/package.json +1 -1
  181. package/examples/typescript/xy-column/package.json +1 -1
  182. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  183. package/examples/typescript/xy-data-grouping/package.json +1 -1
  184. package/examples/typescript/xy-draggable-range/index.ts +2 -1
  185. package/examples/typescript/xy-draggable-range/package.json +1 -1
  186. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  187. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  188. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  189. package/examples/typescript/xy-line/package.json +1 -1
  190. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  191. package/examples/typescript/xy-live-data/package.json +1 -1
  192. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  193. package/examples/typescript/xy-ohlc/package.json +1 -1
  194. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  195. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  196. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  197. package/examples/typescript/xy-stacked-column/package.json +1 -1
  198. package/examples/typescript/xy-stacked-step/package.json +1 -1
  199. package/examples/typescript/xy-stock/package.json +1 -1
  200. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  201. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Entity.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Entity.ts"],"names":[],"mappings":";AAKA,OAAO,EAAa,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,eAAe,EAAU,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAoB,cAAc,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,MAAM,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,MAAM,MAAM,SAAS,CAAC;AAQlC;;;;GAIG;AACH;IAIC,kBAAY,MAAS;QAHrB;;;;;WAAmB;QACnB;;;;mBAAoI,EAAE;WAAC;QAGtI,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;OAIG;;;;;eACH,UAA6C,GAAQ,EAAE,QAAoF;YAC1I,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAErC,IAAI,SAAS,KAAK,SAAS,EAAE;gBAC5B,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;aACtC;YAED,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEzB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAEhC,OAAO,IAAI,QAAQ,CAAC;gBACnB,MAAM,CAAC,WAAW,CAAC,SAAU,EAAE,QAAQ,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;QACJ,CAAC;;IAED;;OAEG;;;;;eACH,UAA8C,GAAQ,EAAE,KAA0B;YACjF,IAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAEvC,IAAI,SAAS,KAAK,SAAS,EAAE;gBAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;oBACrD,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;iBAC/C;aACD;YAED,OAAO,KAAK,CAAC;QACd,CAAC;;IACF,eAAC;AAAD,CAAC,AA3CD,IA2CC;;AA+GD;;;;GAIG;AACH;IAeC,mBAAY,IAAW,EAAE,EAAS,EAAE,QAAgB,EAAE,MAAoB,EAAE,KAAa,EAAE,YAA2B;QAdtH;;;;;WAAqB;QACrB;;;;;WAAmB;QACnB;;;;;WAA0B;QAC1B;;;;;WAA8B;QAC9B;;;;;WAAuB;QACvB;;;;;WAAyE;QACzE;;;;;WAAgC;QAChC;;;;mBAAwB,CAAC;WAAC;QAE1B;;;;mBAA2B,KAAK;WAAC;QACjC;;;;mBAA2B,IAAI;WAAC;QAEhC;;;;mBAAiE,IAAI,eAAe,EAAE;WAAC;QAGtF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;IAC9B,CAAC;IAED,sBAAW,yBAAE;aAAb;YACC,OAAO,IAAI,CAAC,GAAG,CAAC;QACjB,CAAC;;;OAAA;IAED,sBAAW,2BAAI;aAAf;YACC,OAAO,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;;;OAAA;IAED,sBAAW,8BAAO;aAAlB;YACC,OAAO,IAAI,CAAC,QAAQ,CAAC;QACtB,CAAC;;;OAAA;IAED,sBAAW,8BAAO;aAAlB;YACC,OAAO,IAAI,CAAC,QAAQ,CAAC;QACtB,CAAC;;;OAAA;;;;;eAED;YACC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAEtB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;oBACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE;wBAC/B,IAAI,EAAE,SAAS;wBACf,MAAM,EAAE,IAAI;qBACZ,CAAC,CAAC;iBACH;aACD;QACF,CAAC;;;;;;eAED;YACC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACtB,CAAC;;;;;;eAED;YACC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACrB;QACF,CAAC;;IAED,sBAAW,iCAAU;aAArB;YACC,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QACpC,CAAC;;;OAAA;;;;;eAED;YAAA,iBAcC;YAbA,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,OAAO;gBACnC,IAAI,KAAI,CAAC,QAAQ,EAAE;oBAClB,OAAO,EAAE,CAAC;iBAEV;qBAAM;oBACN,IAAM,QAAQ,GAAG;wBAChB,SAAO,CAAC,OAAO,EAAE,CAAC;wBAClB,OAAO,EAAE,CAAC;oBACX,CAAC,CAAC;oBAEF,IAAM,SAAO,GAAG,KAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;iBACpD;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;;;;;;eAED;YACC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpB,EAAE,IAAI,CAAC,MAAM,CAAC;gBACd,OAAO,KAAK,CAAC;aAEb;iBAAM;gBACN,OAAO,IAAI,CAAC;aACZ;QACF,CAAC;;;;;;eAED,UAAY,WAAmB;YAC9B,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;gBAC3B,IAAI,CAAC,KAAK,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAE1C,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE;oBAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;iBAC5B;aACD;YAED,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;QAC7B,CAAC;;;;;;eAED,UAAc,WAAmB;YAChC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;YAC5B,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAChB,CAAC;;;;;;eAED,UAAc,IAAU;YACvB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACpE,CAAC;;IACF,gBAAC;AAAD,CAAC,AApHD,IAoHC;;AAKD;;GAEG;AACH,IAAI,OAAO,GAAG,CAAC,CAAC;AAEhB;;;;GAIG;AACH;IAyBC,kBAAY,QAA+B;QAvB3C;;WAEG;QACH;;;;mBAAqB,EAAE,OAAO;WAAC;QAE/B;;;;;WAAqB;QACrB;;;;mBAA8B,EAAE;WAAC;QAEjC;;;;mBAA6J,EAAE;WAAC;QAChK;;;;mBAAoK,EAAE;WAAC;QAEvK;;;;mBAA0C,EAAE;WAAC;QAC7C;;;;mBAAwD,EAAE;WAAC;QAE3D;;;;mBAA4D,EAAE;WAAC;QAC/D;;;;mBAA0E,EAAE;WAAC;QAC7E;;;;mBAAoC,CAAC;WAAC;QAEtC;;;;mBAA6B,KAAK;WAAC;QAEnC,6BAA6B;QAC7B;;;;mBAAsD,EAAE;WAAC;QAGxD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC3B,CAAC;;;;;eAED;YAAA,iBAKC;YAJA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;gBACvC,KAAI,CAAC,eAAuB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBAC1C,KAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;QACJ,CAAC;;;;;;eAOD,UAAqB,WAAmB;YAAxC,iBA2DC;YA1DA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;gBACvB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAC,GAAG,EAAE,SAAS;oBACpD,IAAI,SAAS,CAAC,QAAQ,EAAE;wBACvB,KAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;qBAEzB;yBAAM,IAAI,SAAS,CAAC,QAAQ,EAAE;wBAC9B,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;wBAE5B,IAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC;wBAElC,IAAI,IAAI,IAAI,CAAC,EAAE;4BACd,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE;gCAC5B,KAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;6BAEnC;iCAAM;gCACN,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gCAC9B,KAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;6BACpC;yBAED;6BAAM;4BACN,KAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;yBACvC;qBACD;gBACF,CAAC,CAAC,CAAC;gBAEH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,UAAC,GAAG,EAAE,SAAS;oBAC3D,IAAI,SAAS,CAAC,QAAQ,EAAE;wBACvB,KAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;qBAEhC;yBAAM,IAAI,SAAS,CAAC,QAAQ,EAAE;wBAC9B,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;wBAE5B,IAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC;wBAElC,IAAI,IAAI,IAAI,CAAC,EAAE;4BACd,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE;gCAC5B,KAAI,CAAC,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;6BAE1C;iCAAM;gCACN,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gCAC9B,KAAI,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;6BAC3C;yBAED;6BAAM;4BACN,KAAI,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;yBAC9C;qBACD;gBACF,CAAC,CAAC,CAAC;gBAEH,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE;oBAC7B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;iBAC3C;gBAED,OAAO,IAAI,CAAC,eAAe,KAAK,CAAC,CAAC;aAElC;iBAAM;gBACN,OAAO,IAAI,CAAC;aACZ;QACF,CAAC;;;;;;eAKD,UAA0D,IAAS;YAClE,IAAI,CAAC,SAAS,EAAE,CAAC;QAClB,CAAC;;;;;;eAED,UAAwE,IAAS;YAChF,IAAI,CAAC,SAAS,EAAE,CAAC;QAClB,CAAC;;IAED;;;;;;;;OAQG;;;;;eACH,UAA+C,GAAQ,EAAE,QAA2E;YAApI,iBAgBC;YAfA,IAAI,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAEtC,IAAI,MAAM,KAAK,SAAS,EAAE;gBACzB,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;aACvC;YAED,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEtB,OAAO,IAAI,QAAQ,CAAC;gBACnB,MAAM,CAAC,WAAW,CAAC,MAAO,EAAE,QAAQ,CAAC,CAAC;gBAEtC,IAAI,MAAO,CAAC,MAAM,KAAK,CAAC,EAAE;oBACzB,OAAO,KAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;iBAChC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;;IAED;;;;;;;;;OASG;;;;;eACH,UAA6D,GAAQ,EAAE,QAAkF;YAAzJ,iBAgBC;YAfA,IAAI,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;YAE7C,IAAI,MAAM,KAAK,SAAS,EAAE;gBACzB,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;aAC9C;YAED,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEtB,OAAO,IAAI,QAAQ,CAAC;gBACnB,MAAM,CAAC,WAAW,CAAC,MAAO,EAAE,QAAQ,CAAC,CAAC;gBAEtC,IAAI,MAAO,CAAC,MAAM,KAAK,CAAC,EAAE;oBACzB,OAAO,KAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;iBACvC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;;IAYD;;OAEG;;;;;eACH,UAAmD,GAAQ,EAAE,QAAc;YAC1E,IAAM,KAAK,GAAS,IAAI,CAAC,SAAU,CAAC,GAAG,CAAC,CAAC;YAEzC,IAAI,KAAK,KAAK,SAAS,EAAE;gBACxB,OAAO,KAAK,CAAC;aAEb;iBAAM;gBACN,OAAO,QAAQ,CAAC;aAChB;QACF,CAAC;;;;;;eAcD,UAAgD,GAAQ,EAAE,QAAc;YACvE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACnC,CAAC;;;;;;eAED,UAAmG,GAAQ,EAAE,KAAY;YAAzH,iBAQC;YAPA,IAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAExC,IAAI,MAAM,KAAK,SAAS,EAAE;gBACzB,MAAM,CAAC,IAAI,CAAC,MAAO,EAAE,UAAC,QAAQ;oBAC7B,QAAQ,CAAC,KAAK,EAAE,KAAI,EAAE,GAAG,CAAC,CAAC;gBAC5B,CAAC,CAAC,CAAC;aACH;QACF,CAAC;;;;;;eAED,UAA0G,GAAQ,EAAE,KAAY;YAAhI,iBAQC;YAPA,IAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;YAE/C,IAAI,MAAM,KAAK,SAAS,EAAE;gBACzB,MAAM,CAAC,IAAI,CAAC,MAAO,EAAE,UAAC,QAAQ;oBAC7B,QAAQ,CAAC,KAAK,EAAE,KAAI,EAAE,GAAG,CAAC,CAAC;gBAC5B,CAAC,CAAC,CAAC;aACH;QACF,CAAC;;IAED;;OAEG;;;;;eACH,UAA2F,GAAQ,EAAE,GAAU,EAAE,KAAY;YAC5H,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;;IAED;;OAEG;;;;;eACH,UAAyF,GAAQ,EAAE,KAAY;YAC9G,IAAM,GAAG,GAAS,IAAI,CAAC,SAAU,CAAC,GAAG,CAAC,CAAC;YAEjC,IAAI,CAAC,SAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAEnC,IAAI,GAAG,KAAK,KAAK,EAAE;gBAClB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;aAC9B;QACF,CAAC;;IAED;;OAEG;;;;;eACH,UAAkD,GAAQ,EAAE,KAA6B;YACxF,IAAM,GAAG,GAAS,IAAI,CAAC,SAAU,CAAC,GAAG,CAAC,CAAC;YAEjC,IAAI,CAAC,SAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAEnC,IAAI,GAAG,KAAK,KAAK,EAAE;gBAClB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC9B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;aACxB;QACF,CAAC;;;;;;eAGD,UAA8D,GAAQ;YACrE,IAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAE/C,IAAI,SAAS,EAAE;gBACd,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBACpC,EAAE,IAAI,CAAC,eAAe,CAAC;gBACvB,SAAS,CAAC,IAAI,EAAE,CAAC;aACjB;QACF,CAAC;;IAED;;;;;;;OAOG;;;;;eACH,UAAsF,GAAQ,EAAE,KAAY;YAC3G,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACtB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACzB,OAAO,KAAK,CAAC;QACd,CAAC;;IAED;;;;;OAKG;;;;;eACH,UAAmD,GAAQ;YAC1D,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE;gBAC1B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAS,IAAI,CAAC,SAAU,CAAC,GAAG,CAAC,CAAC;gBAErD,OAAa,IAAI,CAAC,SAAU,CAAC,GAAG,CAAC,CAAC;gBAElC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,SAAgB,CAAC,CAAC;gBAC1C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;aACxB;YAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;;IAED;;;;OAIG;;;;;eACH;YAAA,iBAIC;YAHA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAC,GAAG;gBAC7C,KAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACJ,CAAC;;IAYD;;;;OAIG;;;;;eACH,UAA8D,GAAQ,EAAE,QAAc;YACrF,IAAM,KAAK,GAAS,IAAI,CAAC,gBAAiB,CAAC,GAAG,CAAC,CAAC;YAEhD,IAAI,KAAK,KAAK,SAAS,EAAE;gBACxB,OAAO,KAAK,CAAC;aAEb;iBAAM;gBACN,OAAO,QAAQ,CAAC;aAChB;QACF,CAAC;;IAED;;OAEG;;;;;eACH,UAAgH,GAAQ,EAAE,GAAU,EAAE,KAAY;YACjJ,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YACrC,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC;;IAED;;OAEG;;;;;eACH,UAA8G,GAAQ,EAAE,KAAY;YACnI,IAAM,GAAG,GAAS,IAAI,CAAC,gBAAiB,CAAC,GAAG,CAAC,CAAC;YAExC,IAAI,CAAC,gBAAiB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAE1C,IAAI,GAAG,KAAK,KAAK,EAAE;gBAClB,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;aACrC;QACF,CAAC;;IAED;;OAEG;;;;;eACH,UAAgE,GAAQ,EAAE,KAAoC;YAC7G,IAAM,GAAG,GAAS,IAAI,CAAC,gBAAiB,CAAC,GAAG,CAAC,CAAC;YAExC,IAAI,CAAC,gBAAiB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAE1C,IAAI,GAAG,KAAK,KAAK,EAAE;gBAClB,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBACrC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;aAC/B;QACF,CAAC;;;;;;eAED,UAA4E,GAAQ;YACnF,IAAM,SAAS,GAAG,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;YAEtD,IAAI,SAAS,EAAE;gBACd,SAAS,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;gBAC3C,EAAE,IAAI,CAAC,eAAe,CAAC;aACvB;QACF,CAAC;;IAED;;OAEG;;;;;eACH,UAA2G,GAAQ,EAAE,KAAY;YAChI,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;YAChC,OAAO,KAAK,CAAC;QACd,CAAC;;IAED;;OAEG;;;;;eACH,UAAiE,GAAQ;YACxE,IAAI,GAAG,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACjC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAS,IAAI,CAAC,gBAAiB,CAAC,GAAG,CAAC,CAAC;gBAEnE,OAAa,IAAI,CAAC,gBAAiB,CAAC,GAAG,CAAC,CAAC;gBAEzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;aAC/B;YAED,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;;IAED;;;;;;;OAOG;;;;;eACH,UAAc,QAAoC;YAAlD,iBAIC;YAHA,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAC,GAAG,EAAE,KAAK;gBACjC,KAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;QACJ,CAAC;;IAED;;;;;;OAMG;;;;;eACH,UAAoD,OAAsD;YACzG,IAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;YACxB,IAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACtB,IAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;YAClC,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;YAEjC,IAAM,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzE,IAAM,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAE9E,IAAI,QAAQ,KAAK,CAAC,EAAE;gBACnB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;aAElB;iBAAM;gBACN,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,EAAE;oBACtC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;iBAElB;qBAAM;oBACN,EAAE,IAAI,CAAC,eAAe,CAAC;oBAEvB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAEpB,IAAM,WAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;oBAEzH,IAAI,CAAC,eAAe,EAAE,CAAC;oBAEvB,OAAO,WAAS,CAAC;iBACjB;aACD;YAED,IAAM,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACzE,SAAS,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,SAAS,CAAC;QAClB,CAAC;;IAED;;OAEG;;;;;eACH,UAAkE,OAA6D;YAC9H,IAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;YACxB,IAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACtB,IAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;YAClC,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;YAEjC,IAAM,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAChF,IAAM,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAE9E,IAAI,QAAQ,KAAK,CAAC,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;aAEzB;iBAAM;gBACN,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,EAAE;oBACtC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;iBAEzB;qBAAM;oBACN,EAAE,IAAI,CAAC,eAAe,CAAC;oBAEvB,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAE3B,IAAM,WAAS,GAAG,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;oBAEhI,IAAI,CAAC,eAAe,EAAE,CAAC;oBAEvB,OAAO,WAAS,CAAC;iBACjB;aACD;YAED,IAAM,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACzE,SAAS,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,SAAS,CAAC;QAClB,CAAC;;;;;;eAED,cAAsB,CAAC;;IAEvB;;;;OAIG;;;;;eACH;YACC,OAAO,IAAI,CAAC,SAAS,CAAC;QACvB,CAAC;;IAED;;OAEG;;;;;eACH;YACC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;aAChB;QACF,CAAC;;IACF,eAAC;AAAD,CAAC,AA7gBD,IA6gBC;;AAED;;;;GAIG;AACH;IAA4B,0BAAQ;IA0CnC;;;;;;;OAOG;IACH,gBAAY,IAAU,EAAE,QAA6B,EAAE,MAAe,EAAE,SAAuC;QAAvC,0BAAA,EAAA,cAAuC;QAA/G,YACC,kBAAM,QAAQ,CAAC,SAMf;QAxDD;;;;;WAAmB;QAEnB;;;;;WAAoB,CAAC,uBAAuB;QAM5C;;;;mBAA8B,IAAI,MAAM,CAAC,KAAI,CAAC;WAAC;QAC/C;;;;mBAAkC,IAAI,QAAQ,CAAC,KAAI,CAAC;WAAC;QACrD;;;;mBAAgE,KAAI,CAAC,aAAa,EAAE;WAAC;QAErF;;;;mBAAoE,EAAE;WAAC;QAEvE;;;;mBAA0C,EAAE;WAAC;QAC7C;;;;mBAAwD,EAAE;WAAC;QAE3D;;;;;WAAgD;QAEhD,2BAA2B;QAC3B;;;;mBAA8C,EAAE;WAAC;QAEjD,qEAAqE;QACrE;;;;;WAAoD;QAEpD,8DAA8D;QAC9D;;;;mBAAsC,EAAE;WAAC;QAEzC,qCAAqC;QACrC;;;;mBAAiD,EAAE;WAAC;QAEpD;;;;mBAAyC,EAAE;WAAC;QAE5C,oDAAoD;QACpD;;;;mBAA+B,IAAI;WAAC;QAKpC;;;;mBAAyF,EAAE;WAAC;QAY3F,IAAI,CAAC,MAAM,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;SAC3E;QACD,KAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,KAAI,CAAC,kBAAkB,GAAG,SAAkC,CAAC;;IAC9D,CAAC;IAED;;;;;;;;OAQG;;;;;eACH,UAAwE,IAAU,EAAE,QAAwB,EAAE,QAAsB;YACnI,IAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAM,CAAC;YAChD,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAC;YACvB,CAAC,CAAC,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,CAAC;QACV,CAAC;;;;;;eAED,UAAyE,IAAU,EAAE,QAAwB,EAAE,SAAkC;YAAlC,0BAAA,EAAA,cAAkC;YAChJ,IAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,CAAM,CAAC;YAC3D,CAAC,CAAC,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,CAAC;QACV,CAAC;;;;;;eAED;YAAA,iBAwBC;YAvBA,IAAI,CAAC,WAAW,EAAE,CAAC;YAEnB,IAAI,WAAW,GAAG,KAAK,CAAC;YAExB,IAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YAEhC,IAAI,QAAQ,EAAE;gBACb,WAAW,GAAG,IAAI,CAAC;gBACnB,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;aAClC;YAED,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAC,QAAQ;gBAC7C,WAAW,GAAG,IAAI,CAAC;gBACnB,QAAQ,CAAC,kBAAkB,CAAC,KAAI,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;YAEH,IAAI,WAAW,EAAE;gBAChB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;aAC5B;YAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAElC,IAAI,CAAC,YAAY,EAAE,CAAC;QACrB,CAAC;;IAED,oEAAoE;IACpE,mHAAmH;;;;;eACnH;YAAA,iBAkBC;YAjBA,IAAI,CAAC,WAAW,EAAE,CAAC;YAEnB,IAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YAEhC,IAAI,QAAQ,EAAE;gBACb,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;aAClC;YAED,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAC,QAAQ;gBAC7C,QAAQ,CAAC,kBAAkB,CAAC,KAAI,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAElC,IAAI,CAAC,YAAY,EAAE,CAAC;YAEpB,IAAI,CAAC,YAAY,EAAE,CAAC;QACrB,CAAC;;;;;;eAED;YACC,OAAO,IAAI,eAAe,EAAE,CAAC;QAC9B,CAAC;;IAKD,sBAAW,8BAAU;QAHrB;;WAEG;aACH;YACC,OAAQ,IAAI,CAAC,WAAmB,CAAC,UAAU,CAAC;QAC7C,CAAC;;;OAAA;IAKD,sBAAW,6BAAS;QAHpB;;WAEG;aACH;YACC,OAAQ,IAAI,CAAC,WAAmB,CAAC,SAAS,CAAC;QAC5C,CAAC;;;OAAA;;;;;eAED;QAEA,CAAC;;;;;;eAED,UAAwD,GAAQ,EAAE,KAA6B;YAC9F,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE;gBAC7B,iBAAM,GAAG,YAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aACtB;QACF,CAAC;;;;;;eAED,UAA2D,GAAQ,EAAE,KAA6B;YACjG,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE;gBAC7B,iBAAM,MAAM,YAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aACzB;QACF,CAAC;;;;;;eAED;YAAA,iBAQC;YAPA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;gBACrC,KAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC1B,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;gBAC5C,KAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACjC,CAAC,CAAC,CAAC;QACJ,CAAC;;IAED;;OAEG;;;;;eACH,UAAoD,GAAQ;YAC3D,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;;IAED;;OAEG;;;;;eACH,UAAkE,GAAQ;YACzE,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;;;;;;eAED,UAA0D,GAAQ;YACjE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACxB,iBAAM,aAAa,YAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;;;;;;eAED,UAAwE,GAAQ;YAC/E,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YAC/B,iBAAM,aAAa,YAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;;IAED;;;;;OAKG;;;;;eACH,UAAiB,IAAY;YAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7C,CAAC;;;;;;eAED,UAA0F,GAAQ,EAAE,QAAW;YAC9G,IAAI,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAE9C,IAAI,SAAS,KAAK,SAAS,EAAE;gBAC5B,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;aAC/C;YAED,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEzB,OAAO,QAAQ,CAAC;QACjB,CAAC;;;;;;eAED,UAAgE,GAAQ;YACvE,IAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAEhD,IAAI,SAAS,KAAK,SAAS,EAAE;gBAC5B,MAAM,CAAC,IAAI,CAAC,SAAU,EAAE,UAAC,QAAQ;oBAChC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACpB,CAAC,CAAC,CAAC;gBAEH,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;aACrC;QACF,CAAC;;IAMD,sBAAW,4BAAQ;aAkBnB;YACC,OAAO,IAAI,CAAC,SAAS,CAAC;QACvB,CAAC;QAxBD;;;WAGG;aACH,UAAoB,KAAiC;YACpD,IAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YAEhC,IAAI,QAAQ,KAAK,KAAK,EAAE;gBACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBAEvB,IAAI,QAAQ,EAAE;oBACb,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;iBACrC;gBAED,IAAI,KAAK,EAAE;oBACV,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;iBAC/B;gBAED,IAAI,CAAC,eAAe,EAAE,CAAC;aACvB;QACF,CAAC;;;OAAA;IAMD;;OAEG;;;;;eACH;YACC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;;;;;;eAED;YACC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;;;;;;eAED;YACC,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;QACjC,CAAC;;;;;;eAED,UAAmB,KAAa,IAAU,CAAC;;;;;;eAC3C,UAA2B,KAAa,EAAE,SAAkB,IAAU,CAAC;;;;;;eAcvE,UAAgD,GAAQ,EAAE,QAAc;YACvE,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAQ,IAAI,CAAC,SAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YAElE,IAAI,KAAK,KAAK,SAAS,EAAE;gBACxB,OAAO,KAAK,CAAC;aAEb;iBAAM;gBACN,OAAO,QAAQ,CAAC;aAChB;QACF,CAAC;;IAED;;;;;;;OAOG;;;;;eACH,UAAsF,GAAQ,EAAE,KAAY;YAC3G,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACjC,OAAO,iBAAM,GAAG,YAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;;IAED;;OAEG;;;;;eACH,UAAyF,GAAQ,EAAE,KAAY;YAC9G,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACjC,iBAAM,MAAM,YAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1B,CAAC;;IAED;;;;;;;OAOG;;;;;eACH,UAA2F,GAAQ,EAAE,KAAY;YAChH,IAAG,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAC;gBAC7B,OAAO,iBAAM,GAAG,YAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aAC7B;YACD,OAAO,KAAK,CAAC;QACd,CAAC;;IAED;;;;;OAKG;;;;;eACH,UAAmD,GAAQ;YAC1D,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;;IAED;;OAEG;;;;;eACH,UAA2G,GAAQ,EAAE,KAAY;YAChI,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACxC,OAAO,iBAAM,UAAU,YAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;;IAED;;OAEG;;;;;eACH,UAA8G,GAAQ,EAAE,KAAY;YACnI,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACxC,iBAAM,aAAa,YAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC;;IAED;;OAEG;;;;;eACH,UAAiE,GAAQ;YACxE,OAAO,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC;;;;;;eAED,UAAiE,QAAwB,EAAE,GAAQ,EAAE,KAA6B;YACjI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE;gBAC/B,IAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBAE3C,IAAI,QAAQ,KAAK,KAAK,EAAE;oBACvB,iBAAM,GAAG,YAAC,GAAG,EAAE,KAAK,CAAC,CAAC;iBACtB;aACD;QACF,CAAC;;;;;;eAED,UAA+E,QAAwB,EAAE,GAAQ,EAAE,KAAoC;YACtJ,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE;gBACtC,IAAM,KAAK,GAAG,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;gBAElD,IAAI,QAAQ,KAAK,KAAK,EAAE;oBACvB,iBAAM,UAAU,YAAC,GAAG,EAAE,KAAK,CAAC,CAAC;iBAC7B;aACD;QACF,CAAC;;;;;;eAED,UAAoE,GAAQ;YAC3E,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE;gBAC/B,IAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBAE3C,IAAI,KAAK,EAAE;oBACV,8DAA8D;oBAC9D,iBAAM,GAAG,YAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAE,CAAC,CAAC;iBAEtC;qBAAM;oBACN,iBAAM,MAAM,YAAC,GAAG,CAAC,CAAC;iBAClB;aACD;QACF,CAAC;;;;;;eAED,UAAkF,GAAQ;YACzF,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE;gBACtC,IAAM,KAAK,GAAG,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;gBAElD,IAAI,KAAK,EAAE;oBACV,8DAA8D;oBAC9D,iBAAM,UAAU,YAAC,GAAG,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;iBAEnD;qBAAM;oBACN,iBAAM,aAAa,YAAC,GAAG,CAAC,CAAC;iBACzB;aACD;QACF,CAAC;;;;;;eAED,UAAuB,CAA2B;YACjD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAC7B,CAAC,CAAC,IAAI,CAAC,CAAC;QACT,CAAC;;IAED,wEAAwE;;;;;eACxE,UAAwB,IAAY;YACnC,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC3C,IAAM,IAAI,GAA6B,EAAE,CAAC;YAE1C,IAAI,CAAC,aAAa,CAAC,UAAC,QAAQ;gBAC3B,IAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAE3C,IAAI,KAAK,EAAE;oBACV,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;iBAC1B;YACF,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,UAAC,GAAG;gBACjC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;oBAC5C,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;iBAClB;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;;;;;;eAED,UAAyB,QAAwB,EAAE,KAAuB;YAA1E,iBAqBC;YApBA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YAE3D,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAC,GAAG,EAAE,KAAK;gBAC3C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE;oBACvD,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;oBAC3B,iBAAM,GAAG,aAAC,GAAG,EAAE,KAAK,CAAC,CAAC;iBACtB;YACF,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,UAAC,GAAG,EAAE,KAAK;gBAClD,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,KAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE;oBACrE,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;oBAClC,iBAAM,UAAU,aAAC,GAAG,EAAE,KAAK,CAAC,CAAC;iBAC7B;YACF,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,KAAK,EAAE;gBACrC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACrB;QACF,CAAC;;IAED;;OAEG;;;;;eACH,UAA8B,CAAwC;YACrE,IAAI,IAAI,CAAC,SAAS,EAAE;gBACnB,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;oBACtB,OAAO,IAAI,CAAC,SAAS,CAAC;iBACtB;aACD;QACF,CAAC;;;;;;eAED,UAAqB,CAAqC;YACzD,IAAI,CAAC,mBAAmB,CAAC,UAAC,QAAQ;gBACjC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACZ,OAAO,KAAK,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;YAExC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;;;;;;eAED,UAAuB,MAAsB;YAA7C,iBA4BC;YA5BsB,uBAAA,EAAA,aAAsB;YAC5C,IAAI,MAAM,EAAE;gBACX,IAAI,CAAC,iBAAiB,EAAE,CAAC;aACzB;YAED,IAAM,KAAK,GAAqB;gBAC/B,QAAQ,EAAE,EAAE;gBACZ,eAAe,EAAE,EAAE;gBACnB,MAAM,EAAE,EAAE;aACV,CAAC;YAEF,IAAI,CAAC,aAAa,CAAC,UAAC,QAAQ;gBAC3B,KAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YAEH,IAAI,MAAM,EAAE;gBACX,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAC,GAAG;oBAChC,IAAI,CAAC,KAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;wBACvD,iBAAM,MAAM,aAAC,GAAG,CAAC,CAAC;qBAClB;gBACF,CAAC,CAAC,CAAC;gBAEH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAC,GAAG;oBACvC,IAAI,CAAC,KAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE;wBACrE,iBAAM,aAAa,aAAC,GAAG,CAAC,CAAC;qBACzB;gBACF,CAAC,CAAC,CAAC;aACH;QACF,CAAC;;;;;;eAED,UAAwB,CAAwC;YAC/D,IAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;YAE1C,IAAI,KAAK,KAAK,SAAS,EAAE;gBACxB,IAAM,OAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;gBAEtD,IAAI,OAAK,KAAK,SAAS,EAAE;oBACxB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;iBAEvC;qBAAM;oBACN,OAAO,OAAK,CAAC;iBACb;aAED;iBAAM;gBACN,OAAO,KAAK,CAAC;aACb;QACF,CAAC;;;;;;eAED,UAAkE,GAAQ;YACzE,OAAO,IAAI,CAAC,aAAa,CAAC,UAAC,QAAQ;gBAClC,OAAO,GAAG,IAAI,QAAQ,CAAC,SAAS,CAAC;YAClC,CAAC,CAAC,CAAC;QACJ,CAAC;;;;;;eAED,UAAgF,GAAQ;YACvF,OAAO,IAAI,CAAC,aAAa,CAAC,UAAC,QAAQ;gBAClC,OAAO,GAAG,IAAI,QAAQ,CAAC,gBAAgB,CAAC;YACzC,CAAC,CAAC,CAAC;QACJ,CAAC;;;;;;eAED;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAC,QAAQ;gBAC7C,QAAQ,CAAC,OAAO,EAAE,CAAC;YACpB,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;QACpC,CAAC;;;;;;eAED;YAAA,iBAMC;YALA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAC,QAAQ;gBACrC,QAAQ,CAAC,qBAAqB,CAAC,KAAI,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5B,CAAC;;;;;;eAED;YAAA,iBA6FC;YA5FA,IAAI,WAAW,GAAG,KAAK,CAAC;YAExB,IAAM,QAAQ,GAAwB,EAAE,CAAC;YAEzC,IAAI,MAAM,GAAwB,EAAE,CAAC;YAErC,IAAM,SAAS,GAAgB,IAAI,GAAG,EAAE,CAAC;YAEzC,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAEvC,IAAI,IAAI,EAAE;gBACT,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,UAAC,GAAG;oBACrB,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC,CAAC,CAAC;aACH;YAED,IAAI,CAAC,YAAY,CAAC,UAAC,MAAM;gBACxB,IAAI,MAAM,KAAK,KAAI,CAAC,KAAK,CAAC,cAAc,EAAE;oBACzC,WAAW,GAAG,IAAI,CAAC;iBACnB;gBAED,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;oBACrC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;iBACrC;gBAED,IAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAEnC,IAAI,KAAK,EAAE;oBACV,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACnB;gBAED,IAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAErC,IAAI,IAAI,EAAE;oBACT,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,UAAC,GAAG;wBACrB,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACpB,CAAC,CAAC,CAAC;iBACH;YACF,CAAC,CAAC,CAAC;YAEH,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAEjC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAExB,IAAI,WAAW,EAAE;gBAChB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,UAAC,IAAI;oBACxC,IAAM,QAAQ,GAAuB,EAAE,CAAC;oBAExC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,UAAC,MAAM;wBAC1B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,UAAC,KAAK;4BACzB,IAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAO,IAAI,CAAC,CAAC;4BAE7C,IAAI,KAAK,EAAE;gCACV,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,UAAC,IAAI;oCAC9B,IAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAC,GAAG;wCACnC,OAAO,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oCAC3B,CAAC,CAAC,CAAC;oCAEH,IAAI,OAAO,EAAE;wCACZ,IAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,UAAC,CAAC;4CACrD,IAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4CAE9D,IAAI,KAAK,KAAK,CAAC,EAAE;gDAChB,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;6CAE9D;iDAAM;gDACN,OAAO,KAAK,CAAC;6CACb;wCACF,CAAC,CAAC,CAAC;wCAEH,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;qCACvC;gCACF,CAAC,CAAC,CAAC;6BACH;wBACF,CAAC,CAAC,CAAC;oBACJ,CAAC,CAAC,CAAC;oBAEH,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAC,IAAI;wBAC1B,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACpC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAI,CAAC,CAAC;oBACxC,CAAC,CAAC,CAAC;gBACJ,CAAC,CAAC,CAAC;aACH;YAED,IAAI,CAAC,eAAe,EAAE,CAAC;YAEvB,IAAI,WAAW,EAAE;gBAChB,2FAA2F;gBAC3F,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;aACvB;YAED,OAAO,WAAW,CAAC;QACpB,CAAC;;;;;;eAED,cAA0B,CAAC;;;;;;eAE3B;YAEC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACvB,IAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;gBAC3B,IAAI,EAAE,EAAE;oBACP,IAAI,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE;wBAC9B,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,EAAE,GAAG,oBAAoB,CAAC,CAAC;qBACpE;oBACD,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;iBACjC;gBAED,IAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;gBACrC,IAAG,MAAM,EAAE;oBACV,OAAO,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;iBACrC;aACD;QACF,CAAC;;;;;;eAED,cAA+B,CAAC;;IAEhC;;OAEG;;;;;eACH,UAAwC,QAAW;YAClD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/B,OAAO,QAAQ,CAAC;QACjB,CAAC;;;;;;eAED;YAAA,iBAgCC;YA/BA,iBAAM,QAAQ,WAAE,CAAC;YAEjB,IAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YAEhC,IAAI,QAAQ,EAAE;gBACb,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;aACrC;YAED,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAC,QAAQ;gBAC7C,QAAQ,CAAC,qBAAqB,CAAC,KAAI,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAEzB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAEtB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAC,CAAC;gBACzB,CAAC,CAAC,OAAO,EAAE,CAAC;YACb,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,UAAC,CAAC,EAAE,SAAS;gBACnD,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,UAAC,QAAQ;oBAC/B,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACpB,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,IAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;YAC3B,IAAI,EAAE,EAAE;gBACP,OAAO,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;aACjC;QACF,CAAC;;IAED;;;;;;OAMG;;;;;eACH,UAAkB,EAAc,EAAE,KAAa;YAA/C,iBAYC;YAXA,IAAM,EAAE,GAAG,UAAU,CAAC;gBACrB,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC7B,EAAE,EAAE,CAAC;YACN,CAAC,EAAE,KAAK,CAAC,CAAC;YAEV,IAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC;gBAC7B,YAAY,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/B,OAAO,QAAQ,CAAC;QACjB,CAAC;;IAED;;OAEG;;;;;eACH,UAAqB,MAAiB;YACrC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;gBACvB,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBACpD,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;oBACf,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;iBACjC;aACD;YAED,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,CAAC;;IAED;;OAEG;;;;;eACH,UAAc,GAAW;YACxB,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9D,CAAC;;IAED;;OAEG;;;;;eACH,UAAc,GAAW;YACxB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;gBACtB,IAAM,IAAI,GAAS,IAAK,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAC9C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;aAC5B;QACF,CAAC;;IAED;;OAEG;;;;;eACH,UAAiB,GAAW;YAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;gBACrB,IAAM,IAAI,GAAS,IAAK,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAC9C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;aAC5B;QACF,CAAC;;;;;;eAED,UAAa,IAAS,EAAE,MAAgB;;YAAE,cAAsB;iBAAtB,UAAsB,EAAtB,qBAAsB,EAAtB,IAAsB;gBAAtB,6BAAsB;;YAC/D,OAAO,CAAA,KAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA,CAAC,SAAS,0BAAC,IAAI,EAAE,MAAM,UAAK,IAAI,IAAE;QAC7D,CAAC;;IASD,sBAAW,wBAAI;QAPf;;;;;;WAMG;aACH;YACC,OAAO,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;;;OAAA;IA1vBD;;;;eAAkC,QAAQ;OAAC;IAC3C;;;;eAA0C,CAAC,QAAQ,CAAC;OAAC;IA2vBtD,aAAC;CAAA,AAjyBD,CAA4B,QAAQ,GAiyBnC;SAjyBY,MAAM","sourcesContent":["import type { Root } from \"../Root\";\nimport type { Template, ApplyState } from \"./Template\";\nimport type { Theme, IRule } from \"../Theme\";\nimport type { ILocale } from \"./Language\";\n\nimport { IDisposer, Disposer } from \"./Disposer\";\nimport { EventDispatcher, Events } from \"./EventDispatcher\";\nimport { Time, IAnimation, getInterpolate } from \"./Animation\";\nimport { States } from \"./States\";\nimport { registry } from \"../Registry\";\n\nimport * as $object from \"./Object\";\nimport * as $ease from \"./Ease\";\nimport * as $array from \"./Array\";\nimport * as $order from \"./Order\";\n\n/**\n * @ignore\n */\nexport type Dirty<A> = { [K in keyof A]?: boolean };\n\n\n/**\n * Allows to dynamically modify setting value of its target element.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/adapters/} for more info\n */\nexport class Adapters<E extends Settings> {\n\tprivate _entity: E;\n\tprivate _callbacks: { [K in keyof E[\"_settings\"]]?: Array<<O extends E[\"_settings\"]>(value: O[K], target?: O, key?: K) => O[K]> } = {};\n\n\tconstructor(entity: E) {\n\t\tthis._entity = entity;\n\t}\n\n\t/**\n\t * Add a function (`callback`) that will modify value for setting `key`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/adapters/} for more info\n\t */\n\tpublic add<Key extends keyof E[\"_settings\"]>(key: Key, callback: <O extends E[\"_settings\"]>(value: O[Key], target?: O, key?: Key) => O[Key]): IDisposer {\n\t\tlet callbacks = this._callbacks[key];\n\n\t\tif (callbacks === undefined) {\n\t\t\tcallbacks = this._callbacks[key] = [];\n\t\t}\n\n\t\tcallbacks.push(callback);\n\n\t\tthis._entity._markDirtyKey(key);\n\n\t\treturn new Disposer(() => {\n\t\t\t$array.removeFirst(callbacks!, callback);\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic fold<Key extends keyof E[\"_settings\"]>(key: Key, value: E[\"_settings\"][Key]): E[\"_settings\"][Key] {\n\t\tconst callbacks = this._callbacks[key];\n\n\t\tif (callbacks !== undefined) {\n\t\t\tfor (let i = 0, len = callbacks.length; i < len; ++i) {\n\t\t\t\tvalue = callbacks[i](value, this._entity, key);\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t}\n}\n\n\nexport interface IEntitySettings {\n\n\t/**\n\t * Tags which can be used by the theme rules.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/themes/} for more info\n\t */\n\tthemeTags?: Array<string>;\n\n\t/**\n\t * Tags which can be used by the theme rules.\n\t *\n\t * These tags only apply to this object, not any children.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/themes/} for more info\n\t */\n\tthemeTagsSelf?: Array<string>;\n\n\t/**\n\t * A list of themes applied to the element.\n\t */\n\tthemes?: Array<Theme>;\n\n\n\t/**\n\t * Duration of transition from one state to another.\n\t */\n\tstateAnimationDuration?:number;\n\n\t/**\n\t * Easing of transition from one state to another.\n\t */\n\tstateAnimationEasing?:$ease.Easing;\n\n\t/**\n\t * A custom string ID for the element.\n\t *\n\t * If set, element can be looked up via `am5.registry.entitiesById`.\n\t *\n\t * Will raise error if an element with the same ID already exists.\n\t */\n\tid?: string;\n\n\t/**\n\t * A storage for any custom user data that needs to be associated with the\n\t * element.\n\t */\n\tuserData?: any;\n\n}\n\nexport interface IEntityPrivate {\n}\n\nexport interface IEntityEvents {\n}\n\n/**\n * Animation options.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/} for more info\n */\nexport interface AnimationOptions<Key, Value> {\n\n\t/**\n\t * A setting key to animate value for.\n\t */\n\tkey: Key,\n\n\t/**\n\t * Initial value to animate from. If not set, will use current value.\n\t */\n\tfrom?: Value;\n\n\t/**\n\t * Target value to animate to.\n\t */\n\tto: Value;\n\n\t/**\n\t * Animation duration in milliseconds.\n\t */\n\tduration: number;\n\n\t/**\n\t * Easing function. Defaults to linear.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/#Easing_functions} for more info\n\t */\n\teasing?: $ease.Easing;\n\n\t/**\n\t * How many times to play the animation. Defaults to 1.\n\t */\n\tloops?: number;\n}\n\nexport interface IAnimationEvents {\n\t/**\n\t * Invoked when animation was stopped, which happens in these situations:\n\t * 1. When the animation reached the end.\n\t * 2. When the `stop()` method is called.\n\t * 3. When a new animation starts for the same key.\n\t * 4. When calling `set` for the same key.\n\t */\n\tstopped: {};\n}\n\n/**\n * Animation object.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/} for more info\n */\nexport class Animation<Value> {\n\tprivate _from: Value;\n\tprivate _to: Value;\n\tprivate _duration: number;\n\tprivate _easing: $ease.Easing;\n\tprivate _loops: number;\n\tprivate _interpolate: <A extends Value>(diff: Time, from: A, to: A) => A;\n\tprivate _oldTime: number | null;\n\tprivate _time: number = 0;\n\n\tpublic _stopped: boolean = false;\n\tpublic _playing: boolean = true;\n\n\tpublic events: EventDispatcher<Events<this, IAnimationEvents>> = new EventDispatcher();\n\n\tconstructor(from: Value, to: Value, duration: number, easing: $ease.Easing, loops: number, startingTime: number | null) {\n\t\tthis._from = from;\n\t\tthis._to = to;\n\t\tthis._duration = duration;\n\t\tthis._easing = easing;\n\t\tthis._loops = loops;\n\t\tthis._interpolate = getInterpolate(from, to);\n\t\tthis._oldTime = startingTime;\n\t}\n\n\tpublic get to() {\n\t\treturn this._to;\n\t}\n\n\tpublic get from() {\n\t\treturn this._from;\n\t}\n\n\tpublic get playing() {\n\t\treturn this._playing;\n\t}\n\n\tpublic get stopped() {\n\t\treturn this._stopped;\n\t}\n\n\tpublic stop(): void {\n\t\tif (!this._stopped) {\n\t\t\tthis._stopped = true;\n\t\t\tthis._playing = false;\n\n\t\t\tif (this.events.isEnabled(\"stopped\")) {\n\t\t\t\tthis.events.dispatch(\"stopped\", {\n\t\t\t\t\ttype: \"stopped\",\n\t\t\t\t\ttarget: this,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic pause(): void {\n\t\tthis._playing = false;\n\t\tthis._oldTime = null;\n\t}\n\n\tpublic play(): void {\n\t\tif (!this._stopped) {\n\t\t\tthis._playing = true;\n\t\t}\n\t}\n\n\tpublic get percentage(): Time {\n\t\treturn this._time / this._duration;\n\t}\n\n\tpublic waitForStop(): Promise<void> {\n\t\treturn new Promise((resolve, _reject) => {\n\t\t\tif (this._stopped) {\n\t\t\t\tresolve();\n\n\t\t\t} else {\n\t\t\t\tconst listener = () => {\n\t\t\t\t\tstopped.dispose();\n\t\t\t\t\tresolve();\n\t\t\t\t};\n\n\t\t\t\tconst stopped = this.events.on(\"stopped\", listener);\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic _checkEnded(): boolean {\n\t\tif (this._loops > 1) {\n\t\t\t--this._loops;\n\t\t\treturn false;\n\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tpublic _run(currentTime: number): void {\n\t\tif (this._oldTime !== null) {\n\t\t\tthis._time += currentTime - this._oldTime;\n\n\t\t\tif (this._time > this._duration) {\n\t\t\t\tthis._time = this._duration;\n\t\t\t}\n\t\t}\n\n\t\tthis._oldTime = currentTime;\n\t}\n\n\tpublic _reset(currentTime: number): void {\n\t\tthis._oldTime = currentTime;\n\t\tthis._time = 0;\n\t}\n\n\tpublic _value(diff: Time): Value {\n\t\treturn this._interpolate(this._easing(diff), this._from, this._to);\n\t}\n}\n\ntype Animated<P> = { [K in keyof P]?: Animation<P[K]> };\n\n\n/**\n * @ignore\n */\nlet counter = 0;\n\n/**\n * Base class for [[Entity]] objects that support Settings.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n */\nexport abstract class Settings implements IDisposer, IAnimation {\n\n\t/**\n\t * Unique ID.\n\t */\n\tpublic uid: number = ++counter;\n\n\tpublic _settings: {};\n\tpublic _privateSettings: {} = {};\n\n\tpublic _settingEvents: { [K in keyof this[\"_settings\"]]?: Array<<V extends this[\"_settings\"][K], O extends this>(value: V, target?: O, key?: K) => void> } = {};\n\tpublic _privateSettingEvents: { [K in keyof this[\"_settings\"]]?: Array<<V extends this[\"_settings\"][K], O extends this>(value: V, target?: O, key?: K) => void> } = {};\n\n\tpublic _prevSettings: this[\"_settings\"] = {};\n\tpublic _prevPrivateSettings: this[\"_privateSettings\"] = {};\n\n\tprotected _animatingSettings: Animated<this[\"_settings\"]> = {};\n\tprotected _animatingPrivateSettings: Animated<this[\"_privateSettings\"]> = {};\n\tprotected _animatingCount: number = 0;\n\n\tprivate _disposed: boolean = false;\n\n\t// TODO move this into Entity\n\tprotected _userProperties: Dirty<this[\"_settings\"]> = {};\n\n\tconstructor(settings: Settings[\"_settings\"]) {\n\t\tthis._settings = settings;\n\t}\n\n\tprotected _checkDirty(): void {\n\t\t$object.keys(this._settings).forEach((key) => {\n\t\t\t(this._userProperties as any)[key] = true;\n\t\t\tthis._markDirtyKey(key);\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic abstract markDirty(): void;\n\n\tpublic _runAnimation(currentTime: number): boolean {\n\t\tif (!this.isDisposed()) {\n\t\t\t$object.each(this._animatingSettings, (key, animation) => {\n\t\t\t\tif (animation._stopped) {\n\t\t\t\t\tthis._stopAnimation(key);\n\n\t\t\t\t} else if (animation._playing) {\n\t\t\t\t\tanimation._run(currentTime);\n\n\t\t\t\t\tconst diff = animation.percentage;\n\n\t\t\t\t\tif (diff >= 1) {\n\t\t\t\t\t\tif (animation._checkEnded()) {\n\t\t\t\t\t\t\tthis.set(key, animation._value(1));\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tanimation._reset(currentTime);\n\t\t\t\t\t\t\tthis._set(key, animation._value(1));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._set(key, animation._value(diff));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$object.each(this._animatingPrivateSettings, (key, animation) => {\n\t\t\t\tif (animation._stopped) {\n\t\t\t\t\tthis._stopAnimationPrivate(key);\n\n\t\t\t\t} else if (animation._playing) {\n\t\t\t\t\tanimation._run(currentTime);\n\n\t\t\t\t\tconst diff = animation.percentage;\n\n\t\t\t\t\tif (diff >= 1) {\n\t\t\t\t\t\tif (animation._checkEnded()) {\n\t\t\t\t\t\t\tthis.setPrivate(key, animation._value(1));\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tanimation._reset(currentTime);\n\t\t\t\t\t\t\tthis._setPrivate(key, animation._value(1));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._setPrivate(key, animation._value(diff));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (this._animatingCount < 0) {\n\t\t\t\tthrow new Error(\"Invalid animation count\");\n\t\t\t}\n\n\t\t\treturn this._animatingCount === 0;\n\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tprotected abstract _startAnimation(): void;\n\tprotected abstract _animationTime(): number | null;\n\n\tpublic _markDirtyKey<Key extends keyof this[\"_settings\"]>(_key: Key) {\n\t\tthis.markDirty();\n\t}\n\n\tpublic _markDirtyPrivateKey<Key extends keyof this[\"_privateSettings\"]>(_key: Key) {\n\t\tthis.markDirty();\n\t}\n\n\t/**\n\t * Sets a callback function to invoke when specific key of settings changes\n\t * or is set.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/events/#Settings_value_change} for more info\n\t * @param key Settings key\n\t * @param callback Callback\n\t * @return Disposer for event\n\t */\n\tpublic on<Key extends keyof this[\"_settings\"]>(key: Key, callback: (value: this[\"_settings\"][Key], target?: this, key?: Key) => void): IDisposer {\n\t\tlet events = this._settingEvents[key];\n\n\t\tif (events === undefined) {\n\t\t\tevents = this._settingEvents[key] = [];\n\t\t}\n\n\t\tevents.push(callback);\n\n\t\treturn new Disposer(() => {\n\t\t\t$array.removeFirst(events!, callback);\n\n\t\t\tif (events!.length === 0) {\n\t\t\t\tdelete this._settingEvents[key];\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Sets a callback function to invoke when specific key of private settings\n\t * changes or is set.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/events/#Settings_value_change} for more info\n\t * @ignore\n\t * @param key Private settings key\n\t * @param callback Callback\n\t * @return Disposer for event\n\t */\n\tpublic onPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key, callback: (value: this[\"_privateSettings\"][Key], target?: this, key?: Key) => void): IDisposer {\n\t\tlet events = this._privateSettingEvents[key];\n\n\t\tif (events === undefined) {\n\t\t\tevents = this._privateSettingEvents[key] = [];\n\t\t}\n\n\t\tevents.push(callback);\n\n\t\treturn new Disposer(() => {\n\t\t\t$array.removeFirst(events!, callback);\n\n\t\t\tif (events!.length === 0) {\n\t\t\t\tdelete this._privateSettingEvents[key];\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getRaw<Key extends keyof this[\"_settings\"], F>(key: Key, fallback: F): NonNullable<this[\"_settings\"][Key]> | F;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getRaw<Key extends keyof this[\"_settings\"]>(key: Key): this[\"_settings\"][Key];\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getRaw<Key extends keyof this[\"_settings\"]>(key: Key, fallback?: any): any {\n\t\tconst value = (<any>this._settings)[key];\n\n\t\tif (value !== undefined) {\n\t\t\treturn value;\n\n\t\t} else {\n\t\t\treturn fallback;\n\t\t}\n\t}\n\n\t/**\n\t * Returns settings value for the specified `key`.\n\t *\n\t * If there is no value, `fallback` ios returned instead (if set)/\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Settings value\n\t * @param callback Fallback value\n\t * @return {any} Value\n\t */\n\tpublic get<Key extends keyof this[\"_settings\"], F>(key: Key, fallback: F): NonNullable<this[\"_settings\"][Key]> | F;\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key): this[\"_settings\"][Key];\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key, fallback?: any): any {\n\t\treturn this.getRaw(key, fallback);\n\t}\n\n\tprotected _sendKeyEvent<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): void {\n\t\tconst events = this._settingEvents[key];\n\n\t\tif (events !== undefined) {\n\t\t\t$array.each(events!, (callback) => {\n\t\t\t\tcallback(value, this, key);\n\t\t\t});\n\t\t}\n\t}\n\n\tprotected _sendPrivateKeyEvent<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): void {\n\t\tconst events = this._privateSettingEvents[key];\n\n\t\tif (events !== undefined) {\n\t\t\t$array.each(events!, (callback) => {\n\t\t\t\tcallback(value, this, key);\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprivate _setRaw<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, old: Value, value: Value) {\n\t\tthis._prevSettings[key] = old;\n\t\tthis._sendKeyEvent(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setRaw<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value) {\n\t\tconst old = (<any>this._settings)[key];\n\n\t\t(<any>this._settings)[key] = value;\n\n\t\tif (old !== value) {\n\t\t\tthis._setRaw(key, old, value);\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprivate _set<Key extends keyof this[\"_settings\"]>(key: Key, value: this[\"_settings\"][Key]) {\n\t\tconst old = (<any>this._settings)[key];\n\n\t\t(<any>this._settings)[key] = value;\n\n\t\tif (old !== value) {\n\t\t\tthis._setRaw(key, old, value);\n\t\t\tthis._markDirtyKey(key);\n\t\t}\n\t}\n\n\n\tprotected _stopAnimation<Key extends keyof this[\"_settings\"]>(key: Key): void {\n\t\tconst animation = this._animatingSettings[key];\n\n\t\tif (animation) {\n\t\t\tdelete this._animatingSettings[key];\n\t\t\t--this._animatingCount;\n\t\t\tanimation.stop();\n\t\t}\n\t}\n\n\t/**\n\t * Sets a setting `value` for the specified `key`, and returns the same `value`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t * @param value Setting value\n\t * @return Setting value\n\t */\n\tpublic set<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._set(key, value);\n\t\tthis._stopAnimation(key);\n\t\treturn value;\n\t}\n\n\t/**\n\t * Removes a setting value for the specified `key`;\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t */\n\tpublic remove<Key extends keyof this[\"_settings\"]>(key: Key): void {\n\t\tif (key in this._settings) {\n\t\t\tthis._prevSettings[key] = (<any>this._settings)[key];\n\n\t\t\tdelete (<any>this._settings)[key];\n\n\t\t\tthis._sendKeyEvent(key, undefined as any);\n\t\t\tthis._markDirtyKey(key);\n\t\t}\n\n\t\tthis._stopAnimation(key);\n\t}\n\n\t/**\n\t * Removes all keys;\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t */\n\tpublic removeAll(): void {\n\t\t$array.each($object.keys(this._settings), (key) => {\n\t\t\tthis.remove(key);\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getPrivate<Key extends keyof this[\"_privateSettings\"], F>(key: Key, fallback: F): NonNullable<this[\"_privateSettings\"][Key]> | F;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key): this[\"_privateSettings\"][Key];\n\n\t/**\n\t * Returns a value of a private setting.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/#Private_settings} for more info\n\t */\n\tpublic getPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key, fallback?: any): any {\n\t\tconst value = (<any>this._privateSettings)[key];\n\n\t\tif (value !== undefined) {\n\t\t\treturn value;\n\n\t\t} else {\n\t\t\treturn fallback;\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprivate _setPrivateRaw<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, old: Value, value: Value) {\n\t\tthis._prevPrivateSettings[key] = old;\n\t\tthis._sendPrivateKeyEvent(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setPrivateRaw<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value) {\n\t\tconst old = (<any>this._privateSettings)[key];\n\n\t\t(<any>this._privateSettings)[key] = value;\n\n\t\tif (old !== value) {\n\t\t\tthis._setPrivateRaw(key, old, value);\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprivate _setPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key, value: this[\"_privateSettings\"][Key]) {\n\t\tconst old = (<any>this._privateSettings)[key];\n\n\t\t(<any>this._privateSettings)[key] = value;\n\n\t\tif (old !== value) {\n\t\t\tthis._setPrivateRaw(key, old, value);\n\t\t\tthis._markDirtyPrivateKey(key);\n\t\t}\n\t}\n\n\tprotected _stopAnimationPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key): void {\n\t\tconst animation = this._animatingPrivateSettings[key];\n\n\t\tif (animation) {\n\t\t\tanimation.stop();\n\t\t\tdelete this._animatingPrivateSettings[key];\n\t\t\t--this._animatingCount;\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setPrivate<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._setPrivate(key, value);\n\t\tthis._stopAnimationPrivate(key);\n\t\treturn value;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic removePrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key): void {\n\t\tif (key in this._privateSettings) {\n\t\t\tthis._prevPrivateSettings[key] = (<any>this._privateSettings)[key];\n\n\t\t\tdelete (<any>this._privateSettings)[key];\n\n\t\t\tthis._markDirtyPrivateKey(key);\n\t\t}\n\n\t\tthis._stopAnimationPrivate(key);\n\t}\n\n\t/**\n\t * Sets multiple settings at once.\n\t *\n\t * `settings` must be an object with key: value pairs.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param settings Settings\n\t */\n\tpublic setAll(settings: Partial<this[\"_settings\"]>) {\n\t\t$object.each(settings, (key, value) => {\n\t\t\tthis.set(key, value);\n\t\t});\n\t}\n\n\t/**\n\t * Animates setting values from current/start values to new ones.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/#Animating_settings} for more info\n\t * @param options Animation options\n\t * @return Animation object\n\t */\n\tpublic animate<Key extends keyof this[\"_settings\"]>(options: AnimationOptions<Key, this[\"_settings\"][Key]>): Animation<this[\"_settings\"][Key]> {\n\t\tconst key = options.key;\n\t\tconst to = options.to;\n\t\tconst duration = options.duration;\n\t\tconst loops = options.loops || 1;\n\n\t\tconst from = (options.from === undefined ? this.get(key) : options.from);\n\t\tconst easing = (options.easing === undefined ? $ease.linear : options.easing);\n\n\t\tif (duration === 0) {\n\t\t\tthis.set(key, to);\n\n\t\t} else {\n\t\t\tif (from === undefined || from === to) {\n\t\t\t\tthis.set(key, to);\n\n\t\t\t} else {\n\t\t\t\t++this._animatingCount;\n\n\t\t\t\tthis.set(key, from);\n\n\t\t\t\tconst animation = this._animatingSettings[key] = new Animation(from, to, duration, easing, loops, this._animationTime());\n\n\t\t\t\tthis._startAnimation();\n\n\t\t\t\treturn animation;\n\t\t\t}\n\t\t}\n\n\t\tconst animation = new Animation(from, to, duration, easing, loops, null);\n\t\tanimation.stop();\n\t\treturn animation;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic animatePrivate<Key extends keyof this[\"_privateSettings\"]>(options: AnimationOptions<Key, this[\"_privateSettings\"][Key]>): Animation<this[\"_privateSettings\"][Key]> {\n\t\tconst key = options.key;\n\t\tconst to = options.to;\n\t\tconst duration = options.duration;\n\t\tconst loops = options.loops || 1;\n\n\t\tconst from = (options.from === undefined ? this.getPrivate(key) : options.from);\n\t\tconst easing = (options.easing === undefined ? $ease.linear : options.easing);\n\n\t\tif (duration === 0) {\n\t\t\tthis.setPrivate(key, to);\n\n\t\t} else {\n\t\t\tif (from === undefined || from === to) {\n\t\t\t\tthis.setPrivate(key, to);\n\n\t\t\t} else {\n\t\t\t\t++this._animatingCount;\n\n\t\t\t\tthis.setPrivate(key, from);\n\n\t\t\t\tconst animation = this._animatingPrivateSettings[key] = new Animation(from, to, duration, easing, loops, this._animationTime());\n\n\t\t\t\tthis._startAnimation();\n\n\t\t\t\treturn animation;\n\t\t\t}\n\t\t}\n\n\t\tconst animation = new Animation(from, to, duration, easing, loops, null);\n\t\tanimation.stop();\n\t\treturn animation;\n\t}\n\n\tprotected _dispose() {}\n\n\t/**\n\t * Returns `true` if this element is disposed.\n\t *\n\t * @return Disposed\n\t */\n\tpublic isDisposed(): boolean {\n\t\treturn this._disposed;\n\t}\n\n\t/**\n\t * Disposes this object.\n\t */\n\tpublic dispose() {\n\t\tif (!this._disposed) {\n\t\t\tthis._disposed = true;\n\t\t\tthis._dispose();\n\t\t}\n\t}\n}\n\n/**\n * Base class.\n *\n * @important\n */\nexport class Entity extends Settings implements IDisposer {\n\tpublic _root: Root;\n\n\tpublic _user_id:any; // for testing purposes\n\n\tdeclare public _settings: IEntitySettings;\n\tdeclare public _privateSettings: IEntityPrivate;\n\tdeclare public _events: IEntityEvents;\n\n\tpublic states: States<this> = new States(this);\n\tpublic adapters: Adapters<this> = new Adapters(this);\n\tpublic events: EventDispatcher<Events<this, this[\"_events\"]>> = this._createEvents();\n\n\tprotected _userPrivateProperties: Dirty<this[\"_privateSettings\"]> = {};\n\n\tpublic _dirty: Dirty<this[\"_settings\"]> = {};\n\tpublic _dirtyPrivate: Dirty<this[\"_privateSettings\"]> = {};\n\n\tprotected _template: Template<this> | undefined;\n\n\t// Templates for the themes\n\tprotected _templates: Array<Template<this>> = [];\n\n\t// Internal templates which can be overridden by the user's templates\n\tprotected _internalTemplates: Array<Template<this>>;\n\n\t// Default themes which can be overridden by the user's themes\n\tpublic _defaultThemes: Array<Theme> = [];\n\n\t// Disposers for all of the templates\n\tprotected _templateDisposers: Array<IDisposer> = [];\n\n\tprotected _disposers: Array<IDisposer> = [];\n\n\t// Whether the template setup function should be run\n\tprotected _runSetup: boolean = true;\n\n\tpublic static className: string = \"Entity\";\n\tpublic static classNames: Array<string> = [\"Entity\"];\n\n\tprotected _disposerProperties: { [Key in keyof this[\"_settings\"]]?: Array<IDisposer> } = {};\n\n\t/**\n\t * IMPORTANT! Do not instantiate this class via `new Class()` syntax.\n\t *\n\t * Use static method `Class.new()` instead.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/getting-started/#New_element_syntax} for more info\n\t * @ignore\n\t */\n\tconstructor(root: Root, settings: Entity[\"_settings\"], isReal: boolean, templates: Array<Template<Entity>> = []) {\n\t\tsuper(settings);\n\t\tif (!isReal) {\n\t\t\tthrow new Error(\"You cannot use `new Class()`, instead use `Class.new()`\");\n\t\t}\n\t\tthis._root = root;\n\t\tthis._internalTemplates = templates as Array<Template<this>>;\n\t}\n\n\t/**\n\t * Use this method to create an instance of this class.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/getting-started/#New_element_syntax} for more info\n\t * @param root Root element\n\t * @param settings Settings\n\t * @param template Template\n\t * @return Instantiated object\n\t */\n\tstatic new<C extends typeof Entity, T extends InstanceType<C>>(this: C, root: Root, settings: T[\"_settings\"], template?: Template<T>): T {\n\t\tconst x = (new this(root, settings, true)) as T;\n\t\tx._template = template;\n\t\tx._afterNew();\n\t\treturn x;\n\t}\n\n\tstatic _new<C extends typeof Entity, T extends InstanceType<C>>(this: C, root: Root, settings: T[\"_settings\"], templates: Array<Template<T>> = []): T {\n\t\tconst x = (new this(root, settings, true, templates)) as T;\n\t\tx._afterNew();\n\t\treturn x;\n\t}\n\n\tprotected _afterNew() {\n\t\tthis._checkDirty();\n\n\t\tlet shouldApply = false;\n\n\t\tconst template = this._template;\n\n\t\tif (template) {\n\t\t\tshouldApply = true;\n\t\t\ttemplate._setObjectTemplate(this);\n\t\t}\n\n\t\t$array.each(this._internalTemplates, (template) => {\n\t\t\tshouldApply = true;\n\t\t\ttemplate._setObjectTemplate(this);\n\t\t});\n\n\t\tif (shouldApply) {\n\t\t\tthis._applyTemplates(false);\n\t\t}\n\n\t\tthis.states.create(\"default\", {});\n\n\t\tthis._setDefaults();\n\t}\n\n\t// This is the same as _afterNew, except it also applies the themes.\n\t// This should only be used for classes which don't have a parent (because they extend from Entity and not Sprite).\n\tprotected _afterNewApplyThemes() {\n\t\tthis._checkDirty();\n\n\t\tconst template = this._template;\n\n\t\tif (template) {\n\t\t\ttemplate._setObjectTemplate(this);\n\t\t}\n\n\t\t$array.each(this._internalTemplates, (template) => {\n\t\t\ttemplate._setObjectTemplate(this);\n\t\t});\n\n\t\tthis.states.create(\"default\", {});\n\n\t\tthis._setDefaults();\n\n\t\tthis._applyThemes();\n\t}\n\n\tprotected _createEvents(): EventDispatcher<Events<this, this[\"_events\"]>> {\n\t\treturn new EventDispatcher();\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic get classNames(): Array<string> {\n\t\treturn (this.constructor as any).classNames;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic get className(): string {\n\t\treturn (this.constructor as any).className;\n\t}\n\n\tprotected _setDefaults(){\n\n\t}\n\n\tpublic _setDefault<Key extends keyof this[\"_settings\"]>(key: Key, value: this[\"_settings\"][Key]) {\n\t\tif (!(key in this._settings)) {\n\t\t\tsuper.set(key, value);\n\t\t}\n\t}\n\n\tpublic _setRawDefault<Key extends keyof this[\"_settings\"]>(key: Key, value: this[\"_settings\"][Key]) {\n\t\tif (!(key in this._settings)) {\n\t\t\tsuper.setRaw(key, value);\n\t\t}\n\t}\n\n\tpublic _clearDirty() {\n\t\t$object.keys(this._dirty).forEach((key) => {\n\t\t\tthis._dirty[key] = false;\n\t\t});\n\n\t\t$object.keys(this._dirtyPrivate).forEach((key) => {\n\t\t\tthis._dirtyPrivate[key] = false;\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic isDirty<Key extends keyof this[\"_settings\"]>(key: Key): boolean {\n\t\treturn !!this._dirty[key];\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic isPrivateDirty<Key extends keyof this[\"_privateSettings\"]>(key: Key): boolean {\n\t\treturn !!this._dirtyPrivate[key];\n\t}\n\n\tpublic _markDirtyKey<Key extends keyof this[\"_settings\"]>(key: Key) {\n\t\tthis._dirty[key] = true;\n\t\tsuper._markDirtyKey(key);\n\t}\n\n\tpublic _markDirtyPrivateKey<Key extends keyof this[\"_privateSettings\"]>(key: Key) {\n\t\tthis._dirtyPrivate[key] = true;\n\t\tsuper._markDirtyKey(key);\n\t}\n\n\t/**\n\t * Checks if element is of certain class (or inherits one).\n\t *\n\t * @param type Class name to check\n\t * @return {boolean} Is of class?\n\t */\n\tpublic isType<A>(type: string): this is A {\n\t\treturn this.classNames.indexOf(type) !== -1;\n\t}\n\n\tprotected _pushPropertyDisposer<Key extends keyof this[\"_settings\"], D extends IDisposer>(key: Key, disposer: D): D {\n\t\tlet disposers = this._disposerProperties[key];\n\n\t\tif (disposers === undefined) {\n\t\t\tdisposers = this._disposerProperties[key] = [];\n\t\t}\n\n\t\tdisposers.push(disposer);\n\n\t\treturn disposer;\n\t}\n\n\tprotected _disposeProperty<Key extends keyof this[\"_settings\"]>(key: Key): void {\n\t\tconst disposers = this._disposerProperties[key];\n\n\t\tif (disposers !== undefined) {\n\t\t\t$array.each(disposers!, (disposer) => {\n\t\t\t\tdisposer.dispose();\n\t\t\t});\n\n\t\t\tdelete this._disposerProperties[key];\n\t\t}\n\t}\n\n\t/**\n\t * @todo needs description\n\t * @param value Template\n\t */\n\tpublic set template(value: Template<this> | undefined) {\n\t\tconst template = this._template;\n\n\t\tif (template !== value) {\n\t\t\tthis._template = value;\n\n\t\t\tif (template) {\n\t\t\t\ttemplate._removeObjectTemplate(this);\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tvalue._setObjectTemplate(this);\n\t\t\t}\n\n\t\t\tthis._applyTemplates();\n\t\t}\n\t}\n\n\tpublic get template(): Template<this> | undefined {\n\t\treturn this._template;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic markDirty() {\n\t\tthis._root._addDirtyEntity(this);\n\t}\n\n\tprotected _startAnimation(): void {\n\t\tthis._root._addAnimation(this);\n\t}\n\n\tprotected _animationTime(): number | null {\n\t\treturn this._root.animationTime;\n\t}\n\n\tpublic _applyState(_name: string): void { }\n\tpublic _applyStateAnimated(_name: string, _duration?: number): void { }\n\n\t/**\n\t * Returns settings value for the specified `key`.\n\t *\n\t * If there is no value, `fallback` is returned instead (if set).\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Settings value\n\t * @param callback Fallback value\n\t * @return Value\n\t */\n\tpublic get<Key extends keyof this[\"_settings\"], F>(key: Key, fallback: F): NonNullable<this[\"_settings\"][Key]> | F;\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key): this[\"_settings\"][Key];\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key, fallback?: any): any {\n\t\tconst value = this.adapters.fold(key, (<any>this._settings)[key]);\n\n\t\tif (value !== undefined) {\n\t\t\treturn value;\n\n\t\t} else {\n\t\t\treturn fallback;\n\t\t}\n\t}\n\n\t/**\n\t * Sets a setting `value` for the specified `key`, and returns the same `value`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t * @param value Setting value\n\t * @return Setting value\n\t */\n\tpublic set<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._userProperties[key] = true;\n\t\treturn super.set(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setRaw<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value) {\n\t\tthis._userProperties[key] = true;\n\t\tsuper.setRaw(key, value);\n\t}\n\n\t/**\n\t * Sets a setting `value` for the specified `key` only if the value for this key was not set previously using set method, and returns the same `value`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t * @param value Setting value\n\t * @return Setting value\n\t */\n\tpublic _setSoft<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): Value {\n\t\tif(!this._userProperties[key]){\n\t\t\treturn super.set(key, value);\n\t\t}\n\t\treturn value;\n\t}\n\n\t/**\n\t * Removes a setting value for the specified `key`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t */\n\tpublic remove<Key extends keyof this[\"_settings\"]>(key: Key) {\n\t\tdelete this._userProperties[key];\n\t\tthis._removeTemplateProperty(key);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setPrivate<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._userPrivateProperties[key] = true;\n\t\treturn super.setPrivate(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setPrivateRaw<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value) {\n\t\tthis._userPrivateProperties[key] = true;\n\t\tsuper.setPrivateRaw(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic removePrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key) {\n\t\tdelete this._userPrivateProperties[key];\n\t\tthis._removeTemplatePrivateProperty(key);\n\t}\n\n\tpublic _setTemplateProperty<Key extends keyof this[\"_settings\"]>(template: Template<this>, key: Key, value: this[\"_settings\"][Key]) {\n\t\tif (!this._userProperties[key]) {\n\t\t\tconst match = this._findTemplateByKey(key);\n\n\t\t\tif (template === match) {\n\t\t\t\tsuper.set(key, value);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _setTemplatePrivateProperty<Key extends keyof this[\"_privateSettings\"]>(template: Template<this>, key: Key, value: this[\"_privateSettings\"][Key]) {\n\t\tif (!this._userPrivateProperties[key]) {\n\t\t\tconst match = this._findTemplateByPrivateKey(key);\n\n\t\t\tif (template === match) {\n\t\t\t\tsuper.setPrivate(key, value);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _removeTemplateProperty<Key extends keyof this[\"_settings\"]>(key: Key) {\n\t\tif (!this._userProperties[key]) {\n\t\t\tconst match = this._findTemplateByKey(key);\n\n\t\t\tif (match) {\n\t\t\t\t// TODO don't stop the animation if the property didn't change\n\t\t\t\tsuper.set(key, match._settings[key]!);\n\n\t\t\t} else {\n\t\t\t\tsuper.remove(key);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _removeTemplatePrivateProperty<Key extends keyof this[\"_privateSettings\"]>(key: Key) {\n\t\tif (!this._userPrivateProperties[key]) {\n\t\t\tconst match = this._findTemplateByPrivateKey(key);\n\n\t\t\tif (match) {\n\t\t\t\t// TODO don't stop the animation if the property didn't change\n\t\t\t\tsuper.setPrivate(key, match._privateSettings[key]);\n\n\t\t\t} else {\n\t\t\t\tsuper.removePrivate(key);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _walkParents(f: (parent: Entity) => void): void {\n\t\tf(this._root._rootContainer);\n\t\tf(this);\n\t}\n\n\t// TODO faster version of this method which is specialized to just 1 key\n\tpublic _applyStateByKey(name: string): void {\n\t\tconst other = this.states.create(name, {});\n\t\tconst seen: Dirty<this[\"_settings\"]> = {};\n\n\t\tthis._eachTemplate((template) => {\n\t\t\tconst state = template.states.lookup(name);\n\n\t\t\tif (state) {\n\t\t\t\tstate._apply(other, seen);\n\t\t\t}\n\t\t});\n\n\t\t$object.each(other._settings, (key) => {\n\t\t\tif (!seen[key] && !other._userSettings[key]) {\n\t\t\t\tother.remove(key);\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected _applyTemplate(template: Template<this>, state: ApplyState<this>): void {\n\t\tthis._templateDisposers.push(template._apply(this, state));\n\n\t\t$object.each(template._settings, (key, value) => {\n\t\t\tif (!state.settings[key] && !this._userProperties[key]) {\n\t\t\t\tstate.settings[key] = true;\n\t\t\t\tsuper.set(key, value);\n\t\t\t}\n\t\t});\n\n\t\t$object.each(template._privateSettings, (key, value) => {\n\t\t\tif (!state.privateSettings[key] && !this._userPrivateProperties[key]) {\n\t\t\t\tstate.privateSettings[key] = true;\n\t\t\t\tsuper.setPrivate(key, value);\n\t\t\t}\n\t\t});\n\n\t\tif (this._runSetup && template.setup) {\n\t\t\tthis._runSetup = false;\n\t\t\ttemplate.setup(this);\n\t\t}\n\t}\n\n\t/**\n\t * Calls the closure with each template and returns the first template which is true\n\t */\n\tprotected _findStaticTemplate(f: (template: Template<this>) => boolean): Template<this> | undefined {\n\t\tif (this._template) {\n\t\t\tif (f(this._template)) {\n\t\t\t\treturn this._template;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _eachTemplate(f: (template: Template<this>) => void): void {\n\t\tthis._findStaticTemplate((template) => {\n\t\t\tf(template);\n\t\t\treturn false;\n\t\t});\n\n\t\t$array.each(this._internalTemplates, f);\n\n\t\t$array.each(this._templates, f);\n\t}\n\n\tpublic _applyTemplates(remove: boolean = true): void {\n\t\tif (remove) {\n\t\t\tthis._disposeTemplates();\n\t\t}\n\n\t\tconst state: ApplyState<this> = {\n\t\t\tsettings: {},\n\t\t\tprivateSettings: {},\n\t\t\tstates: {},\n\t\t};\n\n\t\tthis._eachTemplate((template) => {\n\t\t\tthis._applyTemplate(template, state);\n\t\t});\n\n\t\tif (remove) {\n\t\t\t$object.each(this._settings, (key) => {\n\t\t\t\tif (!this._userProperties[key] && !state.settings[key]) {\n\t\t\t\t\tsuper.remove(key);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$object.each(this._privateSettings, (key) => {\n\t\t\t\tif (!this._userPrivateProperties[key] && !state.privateSettings[key]) {\n\t\t\t\t\tsuper.removePrivate(key);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tprotected _findTemplate(f: (template: Template<this>) => boolean): Template<this> | undefined {\n\t\tconst value = this._findStaticTemplate(f);\n\n\t\tif (value === undefined) {\n\t\t\tconst value = $array.find(this._internalTemplates, f);\n\n\t\t\tif (value === undefined) {\n\t\t\t\treturn $array.find(this._templates, f);\n\n\t\t\t} else {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t} else {\n\t\t\treturn value;\n\t\t}\n\t}\n\n\tprotected _findTemplateByKey<Key extends keyof this[\"_settings\"]>(key: Key): Template<this> | undefined {\n\t\treturn this._findTemplate((template) => {\n\t\t\treturn key in template._settings;\n\t\t});\n\t}\n\n\tprotected _findTemplateByPrivateKey<Key extends keyof this[\"_privateSettings\"]>(key: Key): Template<this> | undefined {\n\t\treturn this._findTemplate((template) => {\n\t\t\treturn key in template._privateSettings;\n\t\t});\n\t}\n\n\tprotected _disposeTemplates() {\n\t\t$array.each(this._templateDisposers, (disposer) => {\n\t\t\tdisposer.dispose();\n\t\t});\n\n\t\tthis._templateDisposers.length = 0;\n\t}\n\n\tprotected _removeTemplates() {\n\t\t$array.each(this._templates, (template) => {\n\t\t\ttemplate._removeObjectTemplate(this);\n\t\t});\n\n\t\tthis._templates.length = 0;\n\t}\n\n\tpublic _applyThemes(): boolean {\n\t\tlet isConnected = false;\n\n\t\tconst defaults: Array<Array<Theme>> = [];\n\n\t\tlet themes: Array<Array<Theme>> = [];\n\n\t\tconst themeTags: Set<string> = new Set();\n\n\t\tconst tags = this.get(\"themeTagsSelf\");\n\n\t\tif (tags) {\n\t\t\t$array.each(tags, (tag) => {\n\t\t\t\tthemeTags.add(tag);\n\t\t\t});\n\t\t}\n\n\t\tthis._walkParents((entity) => {\n\t\t\tif (entity === this._root._rootContainer) {\n\t\t\t\tisConnected = true;\n\t\t\t}\n\n\t\t\tif (entity._defaultThemes.length > 0) {\n\t\t\t\tdefaults.push(entity._defaultThemes);\n\t\t\t}\n\n\t\t\tconst theme = entity.get(\"themes\");\n\n\t\t\tif (theme) {\n\t\t\t\tthemes.push(theme);\n\t\t\t}\n\n\t\t\tconst tags = entity.get(\"themeTags\");\n\n\t\t\tif (tags) {\n\t\t\t\t$array.each(tags, (tag) => {\n\t\t\t\t\tthemeTags.add(tag);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tthemes = defaults.concat(themes);\n\n\t\tthis._removeTemplates();\n\n\t\tif (isConnected) {\n\t\t\t$array.eachReverse(this.classNames, (name) => {\n\t\t\t\tconst allRules: Array<IRule<this>> = [];\n\n\t\t\t\t$array.each(themes, (themes) => {\n\t\t\t\t\t$array.each(themes, (theme) => {\n\t\t\t\t\t\tconst rules = theme._lookupRules<this>(name);\n\n\t\t\t\t\t\tif (rules) {\n\t\t\t\t\t\t\t$array.eachReverse(rules, (rule) => {\n\t\t\t\t\t\t\t\tconst matches = rule.tags.every((tag) => {\n\t\t\t\t\t\t\t\t\treturn themeTags.has(tag);\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tif (matches) {\n\t\t\t\t\t\t\t\t\tconst result = $array.getFirstSortedIndex(allRules, (x) => {\n\t\t\t\t\t\t\t\t\t\tconst order = $order.compare(rule.tags.length, x.tags.length);\n\n\t\t\t\t\t\t\t\t\t\tif (order === 0) {\n\t\t\t\t\t\t\t\t\t\t\treturn $order.compareArray(rule.tags, x.tags, $order.compare);\n\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\treturn order;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tallRules.splice(result.index, 0, rule);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t$array.each(allRules, (rule) => {\n\t\t\t\t\tthis._templates.push(rule.template);\n\t\t\t\t\trule.template._setObjectTemplate(this);\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tthis._applyTemplates();\n\n\t\tif (isConnected) {\n\t\t\t// This causes it to only run the setup function the first time that the themes are applied\n\t\t\tthis._runSetup = false;\n\t\t}\n\n\t\treturn isConnected;\n\t}\n\n\tpublic _changed(): void { }\n\n\tpublic _beforeChanged(): void {\n\n\t\tif (this.isDirty(\"id\")) {\n\t\t\tconst id = this.get(\"id\")!;\n\t\t\tif (id) {\n\t\t\t\tif (registry.entitiesById[id]) {\n\t\t\t\t\tthrow new Error(\"An entity with id \\\"\" + id + \"\\\" already exists.\");\n\t\t\t\t}\n\t\t\t\tregistry.entitiesById[id] = this;\n\t\t\t}\n\n\t\t\tconst prevId = this._prevSettings.id;\n\t\t\tif(prevId) {\n\t\t\t\tdelete registry.entitiesById[prevId];\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _afterChanged(): void { }\n\n\t/**\n\t * @ignore\n\t */\n\tpublic addDisposer<T extends IDisposer>(disposer: T): T {\n\t\tthis._disposers.push(disposer);\n\t\treturn disposer;\n\t}\n\n\tprotected _dispose() {\n\t\tsuper._dispose();\n\n\t\tconst template = this._template;\n\n\t\tif (template) {\n\t\t\ttemplate._removeObjectTemplate(this);\n\t\t}\n\n\t\t$array.each(this._internalTemplates, (template) => {\n\t\t\ttemplate._removeObjectTemplate(this);\n\t\t});\n\n\t\tthis._removeTemplates();\n\t\tthis._disposeTemplates();\n\n\t\tthis.events.dispose();\n\n\t\tthis._disposers.forEach((x) => {\n\t\t\tx.dispose();\n\t\t});\n\n\t\t$object.each(this._disposerProperties, (_, disposers) => {\n\t\t\t$array.each(disposers, (disposer) => {\n\t\t\t\tdisposer.dispose();\n\t\t\t});\n\t\t});\n\n\t\tconst id = this.get(\"id\")!;\n\t\tif (id) {\n\t\t\tdelete registry.entitiesById[id];\n\t\t}\n\t}\n\n\t/**\n\t * Creates and returns a \"disposable\" timeout.\n\t *\n\t * @param fn Callback\n\t * @param delay Delay in milliseconds\n\t * @return Timeout disposer\n\t */\n\tpublic setTimeout(fn: () => void, delay: number): IDisposer {\n\t\tconst id = setTimeout(() => {\n\t\t\tthis.removeDispose(disposer);\n\t\t\tfn();\n\t\t}, delay);\n\n\t\tconst disposer = new Disposer(() => {\n\t\t\tclearTimeout(id);\n\t\t});\n\n\t\tthis._disposers.push(disposer);\n\t\treturn disposer;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic removeDispose(target: IDisposer): void {\n\t\tif (!this.isDisposed()) {\n\t\t\tlet index = $array.indexOf(this._disposers, target);\n\t\t\tif (index > -1) {\n\t\t\t\tthis._disposers.splice(index, 1);\n\t\t\t}\n\t\t}\n\n\t\ttarget.dispose();\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic hasTag(tag: string): boolean {\n\t\treturn $array.indexOf(this.get(\"themeTags\", []), tag) !== -1;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic addTag(tag: string): void {\n\t\tif (!this.hasTag(tag)) {\n\t\t\tconst tags = (<any>this).get(\"themeTags\", []);\n\t\t\ttags.push(tag);\n\t\t\tthis.set(\"themeTags\", tags);\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic removeTag(tag: string): void {\n\t\tif (this.hasTag(tag)) {\n\t\t\tconst tags = (<any>this).get(\"themeTags\", []);\n\t\t\t$array.remove(tags, tag);\n\t\t\tthis.set(\"themeTags\", tags);\n\t\t}\n\t}\n\n\tprotected _t(text: any, locale?: ILocale, ...rest: Array<string>){\n\t\treturn this._root.language.translate(text, locale, ...rest);\n\t}\n\n\t/**\n\t * An instance of [[Root]] object.\n\t *\n\t * @readonly\n\t * @since 5.0.6\n\t * @return Root object\n\t */\n\tpublic get root(): Root {\n\t\treturn this._root;\n\t}\n\n}\n"]}
1
+ {"version":3,"file":"Entity.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Entity.ts"],"names":[],"mappings":";AAKA,OAAO,EAAa,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,eAAe,EAAU,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAoB,cAAc,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,MAAM,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,MAAM,MAAM,SAAS,CAAC;AAQlC;;;;GAIG;AACH;IAIC,kBAAY,MAAS;QAHrB;;;;;WAAmB;QACnB;;;;mBAAoI,EAAE;WAAC;QAGtI,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;OAIG;;;;;eACH,UAA6C,GAAQ,EAAE,QAAoF;YAC1I,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAErC,IAAI,SAAS,KAAK,SAAS,EAAE;gBAC5B,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;aACtC;YAED,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEzB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAEhC,OAAO,IAAI,QAAQ,CAAC;gBACnB,MAAM,CAAC,WAAW,CAAC,SAAU,EAAE,QAAQ,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;QACJ,CAAC;;IAED;;OAEG;;;;;eACH,UAA8C,GAAQ,EAAE,KAA0B;YACjF,IAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAEvC,IAAI,SAAS,KAAK,SAAS,EAAE;gBAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;oBACrD,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;iBAC/C;aACD;YAED,OAAO,KAAK,CAAC;QACd,CAAC;;IACF,eAAC;AAAD,CAAC,AA3CD,IA2CC;;AA+GD;;;;GAIG;AACH;IAeC,mBAAY,IAAW,EAAE,EAAS,EAAE,QAAgB,EAAE,MAAoB,EAAE,KAAa,EAAE,YAA2B;QAdtH;;;;;WAAqB;QACrB;;;;;WAAmB;QACnB;;;;;WAA0B;QAC1B;;;;;WAA8B;QAC9B;;;;;WAAuB;QACvB;;;;;WAAyE;QACzE;;;;;WAAgC;QAChC;;;;mBAAwB,CAAC;WAAC;QAE1B;;;;mBAA2B,KAAK;WAAC;QACjC;;;;mBAA2B,IAAI;WAAC;QAEhC;;;;mBAAiE,IAAI,eAAe,EAAE;WAAC;QAGtF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;IAC9B,CAAC;IAED,sBAAW,yBAAE;aAAb;YACC,OAAO,IAAI,CAAC,GAAG,CAAC;QACjB,CAAC;;;OAAA;IAED,sBAAW,2BAAI;aAAf;YACC,OAAO,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;;;OAAA;IAED,sBAAW,8BAAO;aAAlB;YACC,OAAO,IAAI,CAAC,QAAQ,CAAC;QACtB,CAAC;;;OAAA;IAED,sBAAW,8BAAO;aAAlB;YACC,OAAO,IAAI,CAAC,QAAQ,CAAC;QACtB,CAAC;;;OAAA;;;;;eAED;YACC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAEtB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;oBACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE;wBAC/B,IAAI,EAAE,SAAS;wBACf,MAAM,EAAE,IAAI;qBACZ,CAAC,CAAC;iBACH;aACD;QACF,CAAC;;;;;;eAED;YACC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACtB,CAAC;;;;;;eAED;YACC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACrB;QACF,CAAC;;IAED,sBAAW,iCAAU;aAArB;YACC,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QACpC,CAAC;;;OAAA;;;;;eAED;YAAA,iBAcC;YAbA,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,OAAO;gBACnC,IAAI,KAAI,CAAC,QAAQ,EAAE;oBAClB,OAAO,EAAE,CAAC;iBAEV;qBAAM;oBACN,IAAM,QAAQ,GAAG;wBAChB,SAAO,CAAC,OAAO,EAAE,CAAC;wBAClB,OAAO,EAAE,CAAC;oBACX,CAAC,CAAC;oBAEF,IAAM,SAAO,GAAG,KAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;iBACpD;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;;;;;;eAED;YACC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpB,EAAE,IAAI,CAAC,MAAM,CAAC;gBACd,OAAO,KAAK,CAAC;aAEb;iBAAM;gBACN,OAAO,IAAI,CAAC;aACZ;QACF,CAAC;;;;;;eAED,UAAY,WAAmB;YAC9B,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;gBAC3B,IAAI,CAAC,KAAK,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAE1C,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE;oBAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;iBAC5B;aACD;YAED,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;QAC7B,CAAC;;;;;;eAED,UAAc,WAAmB;YAChC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;YAC5B,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAChB,CAAC;;;;;;eAED,UAAc,IAAU;YACvB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACpE,CAAC;;IACF,gBAAC;AAAD,CAAC,AApHD,IAoHC;;AAKD;;GAEG;AACH,IAAI,OAAO,GAAG,CAAC,CAAC;AAEhB;;;;GAIG;AACH;IAyBC,kBAAY,QAA+B;QAvB3C;;WAEG;QACH;;;;mBAAqB,EAAE,OAAO;WAAC;QAE/B;;;;;WAAqB;QACrB;;;;mBAA8B,EAAE;WAAC;QAEjC;;;;mBAA6J,EAAE;WAAC;QAChK;;;;mBAAoK,EAAE;WAAC;QAEvK;;;;mBAA0C,EAAE;WAAC;QAC7C;;;;mBAAwD,EAAE;WAAC;QAE3D;;;;mBAA4D,EAAE;WAAC;QAC/D;;;;mBAA0E,EAAE;WAAC;QAC7E;;;;mBAAoC,CAAC;WAAC;QAEtC;;;;mBAA6B,KAAK;WAAC;QAEnC,6BAA6B;QAC7B;;;;mBAAsD,EAAE;WAAC;QAGxD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC3B,CAAC;;;;;eAED;YAAA,iBAKC;YAJA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;gBACvC,KAAI,CAAC,eAAuB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBAC1C,KAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;QACJ,CAAC;;;;;;eAOD,UAAqB,WAAmB;YAAxC,iBA2DC;YA1DA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;gBACvB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAC,GAAG,EAAE,SAAS;oBACpD,IAAI,SAAS,CAAC,QAAQ,EAAE;wBACvB,KAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;qBAEzB;yBAAM,IAAI,SAAS,CAAC,QAAQ,EAAE;wBAC9B,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;wBAE5B,IAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC;wBAElC,IAAI,IAAI,IAAI,CAAC,EAAE;4BACd,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE;gCAC5B,KAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;6BAEnC;iCAAM;gCACN,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gCAC9B,KAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;6BACpC;yBAED;6BAAM;4BACN,KAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;yBACvC;qBACD;gBACF,CAAC,CAAC,CAAC;gBAEH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,UAAC,GAAG,EAAE,SAAS;oBAC3D,IAAI,SAAS,CAAC,QAAQ,EAAE;wBACvB,KAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;qBAEhC;yBAAM,IAAI,SAAS,CAAC,QAAQ,EAAE;wBAC9B,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;wBAE5B,IAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC;wBAElC,IAAI,IAAI,IAAI,CAAC,EAAE;4BACd,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE;gCAC5B,KAAI,CAAC,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;6BAE1C;iCAAM;gCACN,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gCAC9B,KAAI,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;6BAC3C;yBAED;6BAAM;4BACN,KAAI,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;yBAC9C;qBACD;gBACF,CAAC,CAAC,CAAC;gBAEH,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE;oBAC7B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;iBAC3C;gBAED,OAAO,IAAI,CAAC,eAAe,KAAK,CAAC,CAAC;aAElC;iBAAM;gBACN,OAAO,IAAI,CAAC;aACZ;QACF,CAAC;;;;;;eAKD,UAA0D,IAAS;YAClE,IAAI,CAAC,SAAS,EAAE,CAAC;QAClB,CAAC;;;;;;eAED,UAAwE,IAAS;YAChF,IAAI,CAAC,SAAS,EAAE,CAAC;QAClB,CAAC;;IAED;;;;;;;;OAQG;;;;;eACH,UAA+C,GAAQ,EAAE,QAA2E;YAApI,iBAgBC;YAfA,IAAI,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAEtC,IAAI,MAAM,KAAK,SAAS,EAAE;gBACzB,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;aACvC;YAED,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEtB,OAAO,IAAI,QAAQ,CAAC;gBACnB,MAAM,CAAC,WAAW,CAAC,MAAO,EAAE,QAAQ,CAAC,CAAC;gBAEtC,IAAI,MAAO,CAAC,MAAM,KAAK,CAAC,EAAE;oBACzB,OAAO,KAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;iBAChC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;;IAED;;;;;;;;;OASG;;;;;eACH,UAA6D,GAAQ,EAAE,QAAkF;YAAzJ,iBAgBC;YAfA,IAAI,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;YAE7C,IAAI,MAAM,KAAK,SAAS,EAAE;gBACzB,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;aAC9C;YAED,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEtB,OAAO,IAAI,QAAQ,CAAC;gBACnB,MAAM,CAAC,WAAW,CAAC,MAAO,EAAE,QAAQ,CAAC,CAAC;gBAEtC,IAAI,MAAO,CAAC,MAAM,KAAK,CAAC,EAAE;oBACzB,OAAO,KAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;iBACvC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;;IAYD;;OAEG;;;;;eACH,UAAmD,GAAQ,EAAE,QAAc;YAC1E,IAAM,KAAK,GAAS,IAAI,CAAC,SAAU,CAAC,GAAG,CAAC,CAAC;YAEzC,IAAI,KAAK,KAAK,SAAS,EAAE;gBACxB,OAAO,KAAK,CAAC;aAEb;iBAAM;gBACN,OAAO,QAAQ,CAAC;aAChB;QACF,CAAC;;;;;;eAcD,UAAgD,GAAQ,EAAE,QAAc;YACvE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACnC,CAAC;;;;;;eAED,UAAmG,GAAQ,EAAE,KAAY;YAAzH,iBAQC;YAPA,IAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAExC,IAAI,MAAM,KAAK,SAAS,EAAE;gBACzB,MAAM,CAAC,IAAI,CAAC,MAAO,EAAE,UAAC,QAAQ;oBAC7B,QAAQ,CAAC,KAAK,EAAE,KAAI,EAAE,GAAG,CAAC,CAAC;gBAC5B,CAAC,CAAC,CAAC;aACH;QACF,CAAC;;;;;;eAED,UAA0G,GAAQ,EAAE,KAAY;YAAhI,iBAQC;YAPA,IAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;YAE/C,IAAI,MAAM,KAAK,SAAS,EAAE;gBACzB,MAAM,CAAC,IAAI,CAAC,MAAO,EAAE,UAAC,QAAQ;oBAC7B,QAAQ,CAAC,KAAK,EAAE,KAAI,EAAE,GAAG,CAAC,CAAC;gBAC5B,CAAC,CAAC,CAAC;aACH;QACF,CAAC;;IAED;;OAEG;;;;;eACH,UAA2F,GAAQ,EAAE,GAAU,EAAE,KAAY;YAC5H,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;;IAED;;OAEG;;;;;eACH,UAAyF,GAAQ,EAAE,KAAY;YAC9G,IAAM,GAAG,GAAS,IAAI,CAAC,SAAU,CAAC,GAAG,CAAC,CAAC;YAEjC,IAAI,CAAC,SAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAEnC,IAAI,GAAG,KAAK,KAAK,EAAE;gBAClB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;aAC9B;QACF,CAAC;;IAED;;OAEG;;;;;eACH,UAAkD,GAAQ,EAAE,KAA6B;YACxF,IAAM,GAAG,GAAS,IAAI,CAAC,SAAU,CAAC,GAAG,CAAC,CAAC;YAEjC,IAAI,CAAC,SAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAEnC,IAAI,GAAG,KAAK,KAAK,EAAE;gBAClB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC9B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;aACxB;QACF,CAAC;;;;;;eAGD,UAA8D,GAAQ;YACrE,IAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAE/C,IAAI,SAAS,EAAE;gBACd,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBACpC,EAAE,IAAI,CAAC,eAAe,CAAC;gBACvB,SAAS,CAAC,IAAI,EAAE,CAAC;aACjB;QACF,CAAC;;IAED;;;;;;;OAOG;;;;;eACH,UAAsF,GAAQ,EAAE,KAAY;YAC3G,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACtB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACzB,OAAO,KAAK,CAAC;QACd,CAAC;;IAED;;;;;OAKG;;;;;eACH,UAAmD,GAAQ;YAC1D,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE;gBAC1B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAS,IAAI,CAAC,SAAU,CAAC,GAAG,CAAC,CAAC;gBAErD,OAAa,IAAI,CAAC,SAAU,CAAC,GAAG,CAAC,CAAC;gBAElC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,SAAgB,CAAC,CAAC;gBAC1C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;aACxB;YAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;;IAED;;;;OAIG;;;;;eACH;YAAA,iBAIC;YAHA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAC,GAAG;gBAC7C,KAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACJ,CAAC;;IAYD;;;;OAIG;;;;;eACH,UAA8D,GAAQ,EAAE,QAAc;YACrF,IAAM,KAAK,GAAS,IAAI,CAAC,gBAAiB,CAAC,GAAG,CAAC,CAAC;YAEhD,IAAI,KAAK,KAAK,SAAS,EAAE;gBACxB,OAAO,KAAK,CAAC;aAEb;iBAAM;gBACN,OAAO,QAAQ,CAAC;aAChB;QACF,CAAC;;IAED;;OAEG;;;;;eACH,UAAgH,GAAQ,EAAE,GAAU,EAAE,KAAY;YACjJ,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YACrC,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC;;IAED;;OAEG;;;;;eACH,UAA8G,GAAQ,EAAE,KAAY;YACnI,IAAM,GAAG,GAAS,IAAI,CAAC,gBAAiB,CAAC,GAAG,CAAC,CAAC;YAExC,IAAI,CAAC,gBAAiB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAE1C,IAAI,GAAG,KAAK,KAAK,EAAE;gBAClB,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;aACrC;QACF,CAAC;;IAED;;OAEG;;;;;eACH,UAAgE,GAAQ,EAAE,KAAoC;YAC7G,IAAM,GAAG,GAAS,IAAI,CAAC,gBAAiB,CAAC,GAAG,CAAC,CAAC;YAExC,IAAI,CAAC,gBAAiB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAE1C,IAAI,GAAG,KAAK,KAAK,EAAE;gBAClB,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBACrC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;aAC/B;QACF,CAAC;;;;;;eAED,UAA4E,GAAQ;YACnF,IAAM,SAAS,GAAG,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;YAEtD,IAAI,SAAS,EAAE;gBACd,SAAS,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;gBAC3C,EAAE,IAAI,CAAC,eAAe,CAAC;aACvB;QACF,CAAC;;IAED;;OAEG;;;;;eACH,UAA2G,GAAQ,EAAE,KAAY;YAChI,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;YAChC,OAAO,KAAK,CAAC;QACd,CAAC;;IAED;;OAEG;;;;;eACH,UAAiE,GAAQ;YACxE,IAAI,GAAG,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACjC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAS,IAAI,CAAC,gBAAiB,CAAC,GAAG,CAAC,CAAC;gBAEnE,OAAa,IAAI,CAAC,gBAAiB,CAAC,GAAG,CAAC,CAAC;gBAEzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;aAC/B;YAED,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;;IAED;;;;;;;OAOG;;;;;eACH,UAAc,QAAoC;YAAlD,iBAIC;YAHA,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAC,GAAG,EAAE,KAAK;gBACjC,KAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;QACJ,CAAC;;IAED;;;;;;OAMG;;;;;eACH,UAAoD,OAAsD;YACzG,IAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;YACxB,IAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACtB,IAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;YAClC,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;YAEjC,IAAM,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzE,IAAM,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAE9E,IAAI,QAAQ,KAAK,CAAC,EAAE;gBACnB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;aAElB;iBAAM;gBACN,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,EAAE;oBACtC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;iBAElB;qBAAM;oBACN,EAAE,IAAI,CAAC,eAAe,CAAC;oBAEvB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAEpB,IAAM,WAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;oBAEzH,IAAI,CAAC,eAAe,EAAE,CAAC;oBAEvB,OAAO,WAAS,CAAC;iBACjB;aACD;YAED,IAAM,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACzE,SAAS,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,SAAS,CAAC;QAClB,CAAC;;IAED;;OAEG;;;;;eACH,UAAkE,OAA6D;YAC9H,IAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;YACxB,IAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACtB,IAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;YAClC,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;YAEjC,IAAM,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAChF,IAAM,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAE9E,IAAI,QAAQ,KAAK,CAAC,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;aAEzB;iBAAM;gBACN,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,EAAE;oBACtC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;iBAEzB;qBAAM;oBACN,EAAE,IAAI,CAAC,eAAe,CAAC;oBAEvB,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAE3B,IAAM,WAAS,GAAG,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;oBAEhI,IAAI,CAAC,eAAe,EAAE,CAAC;oBAEvB,OAAO,WAAS,CAAC;iBACjB;aACD;YAED,IAAM,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACzE,SAAS,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,SAAS,CAAC;QAClB,CAAC;;;;;;eAED,cAAsB,CAAC;;IAEvB;;;;OAIG;;;;;eACH;YACC,OAAO,IAAI,CAAC,SAAS,CAAC;QACvB,CAAC;;IAED;;OAEG;;;;;eACH;YACC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;aAChB;QACF,CAAC;;IACF,eAAC;AAAD,CAAC,AA7gBD,IA6gBC;;AAED;;;;GAIG;AACH;IAA4B,0BAAQ;IA0CnC;;;;;;;OAOG;IACH,gBAAY,IAAU,EAAE,QAA6B,EAAE,MAAe,EAAE,SAAuC;QAAvC,0BAAA,EAAA,cAAuC;QAA/G,YACC,kBAAM,QAAQ,CAAC,SAMf;QAxDD;;;;;WAAmB;QAEnB;;;;;WAAoB,CAAC,uBAAuB;QAM5C;;;;mBAA8B,IAAI,MAAM,CAAC,KAAI,CAAC;WAAC;QAC/C;;;;mBAAkC,IAAI,QAAQ,CAAC,KAAI,CAAC;WAAC;QACrD;;;;mBAAgE,KAAI,CAAC,aAAa,EAAE;WAAC;QAErF;;;;mBAAoE,EAAE;WAAC;QAEvE;;;;mBAA0C,EAAE;WAAC;QAC7C;;;;mBAAwD,EAAE;WAAC;QAE3D;;;;;WAAgD;QAEhD,2BAA2B;QAC3B;;;;mBAA8C,EAAE;WAAC;QAEjD,qEAAqE;QACrE;;;;;WAAoD;QAEpD,8DAA8D;QAC9D;;;;mBAAsC,EAAE;WAAC;QAEzC,qCAAqC;QACrC;;;;mBAAiD,EAAE;WAAC;QAEpD;;;;mBAAyC,EAAE;WAAC;QAE5C,oDAAoD;QACpD;;;;mBAA+B,IAAI;WAAC;QAKpC;;;;mBAAyF,EAAE;WAAC;QAY3F,IAAI,CAAC,MAAM,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;SAC3E;QACD,KAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,KAAI,CAAC,kBAAkB,GAAG,SAAkC,CAAC;;IAC9D,CAAC;IAED;;;;;;;;OAQG;;;;;eACH,UAAwE,IAAU,EAAE,QAAwB,EAAE,QAAsB;YACnI,IAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAM,CAAC;YAChD,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAC;YACvB,CAAC,CAAC,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,CAAC;QACV,CAAC;;;;;;eAED,UAAyE,IAAU,EAAE,QAAwB,EAAE,SAAkC;YAAlC,0BAAA,EAAA,cAAkC;YAChJ,IAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,CAAM,CAAC;YAC3D,CAAC,CAAC,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,CAAC;QACV,CAAC;;;;;;eAED;YAAA,iBAwBC;YAvBA,IAAI,CAAC,WAAW,EAAE,CAAC;YAEnB,IAAI,WAAW,GAAG,KAAK,CAAC;YAExB,IAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YAEhC,IAAI,QAAQ,EAAE;gBACb,WAAW,GAAG,IAAI,CAAC;gBACnB,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;aAClC;YAED,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAC,QAAQ;gBAC7C,WAAW,GAAG,IAAI,CAAC;gBACnB,QAAQ,CAAC,kBAAkB,CAAC,KAAI,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;YAEH,IAAI,WAAW,EAAE;gBAChB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;aAC5B;YAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAElC,IAAI,CAAC,YAAY,EAAE,CAAC;QACrB,CAAC;;IAED,oEAAoE;IACpE,mHAAmH;;;;;eACnH;YAAA,iBAkBC;YAjBA,IAAI,CAAC,WAAW,EAAE,CAAC;YAEnB,IAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YAEhC,IAAI,QAAQ,EAAE;gBACb,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;aAClC;YAED,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAC,QAAQ;gBAC7C,QAAQ,CAAC,kBAAkB,CAAC,KAAI,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAElC,IAAI,CAAC,YAAY,EAAE,CAAC;YAEpB,IAAI,CAAC,YAAY,EAAE,CAAC;QACrB,CAAC;;;;;;eAED;YACC,OAAO,IAAI,eAAe,EAAE,CAAC;QAC9B,CAAC;;IAKD,sBAAW,8BAAU;QAHrB;;WAEG;aACH;YACC,OAAQ,IAAI,CAAC,WAAmB,CAAC,UAAU,CAAC;QAC7C,CAAC;;;OAAA;IAKD,sBAAW,6BAAS;QAHpB;;WAEG;aACH;YACC,OAAQ,IAAI,CAAC,WAAmB,CAAC,SAAS,CAAC;QAC5C,CAAC;;;OAAA;;;;;eAED;QAEA,CAAC;;;;;;eAED,UAAwD,GAAQ,EAAE,KAA6B;YAC9F,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE;gBAC7B,iBAAM,GAAG,YAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aACtB;QACF,CAAC;;;;;;eAED,UAA2D,GAAQ,EAAE,KAA6B;YACjG,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE;gBAC7B,iBAAM,MAAM,YAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aACzB;QACF,CAAC;;;;;;eAED;YAAA,iBAQC;YAPA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;gBACrC,KAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC1B,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;gBAC5C,KAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACjC,CAAC,CAAC,CAAC;QACJ,CAAC;;IAED;;OAEG;;;;;eACH,UAAoD,GAAQ;YAC3D,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;;IAED;;OAEG;;;;;eACH,UAAkE,GAAQ;YACzE,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;;;;;;eAED,UAA0D,GAAQ;YACjE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACxB,iBAAM,aAAa,YAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;;;;;;eAED,UAAwE,GAAQ;YAC/E,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YAC/B,iBAAM,aAAa,YAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;;IAED;;;;;OAKG;;;;;eACH,UAAiB,IAAY;YAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7C,CAAC;;;;;;eAED,UAA0F,GAAQ,EAAE,QAAW;YAC9G,IAAI,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAE9C,IAAI,SAAS,KAAK,SAAS,EAAE;gBAC5B,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;aAC/C;YAED,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEzB,OAAO,QAAQ,CAAC;QACjB,CAAC;;;;;;eAED,UAAgE,GAAQ;YACvE,IAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAEhD,IAAI,SAAS,KAAK,SAAS,EAAE;gBAC5B,MAAM,CAAC,IAAI,CAAC,SAAU,EAAE,UAAC,QAAQ;oBAChC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACpB,CAAC,CAAC,CAAC;gBAEH,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;aACrC;QACF,CAAC;;IAMD,sBAAW,4BAAQ;aAkBnB;YACC,OAAO,IAAI,CAAC,SAAS,CAAC;QACvB,CAAC;QAxBD;;;WAGG;aACH,UAAoB,KAAiC;YACpD,IAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YAEhC,IAAI,QAAQ,KAAK,KAAK,EAAE;gBACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBAEvB,IAAI,QAAQ,EAAE;oBACb,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;iBACrC;gBAED,IAAI,KAAK,EAAE;oBACV,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;iBAC/B;gBAED,IAAI,CAAC,eAAe,EAAE,CAAC;aACvB;QACF,CAAC;;;OAAA;IAMD;;OAEG;;;;;eACH;YACC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;;;;;;eAED;YACC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;;;;;;eAED;YACC,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;QACjC,CAAC;;;;;;eAED,UAAmB,KAAa,IAAU,CAAC;;;;;;eAC3C,UAA2B,KAAa,EAAE,SAAkB,IAAU,CAAC;;;;;;eAcvE,UAAgD,GAAQ,EAAE,QAAc;YACvE,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAQ,IAAI,CAAC,SAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YAElE,IAAI,KAAK,KAAK,SAAS,EAAE;gBACxB,OAAO,KAAK,CAAC;aAEb;iBAAM;gBACN,OAAO,QAAQ,CAAC;aAChB;QACF,CAAC;;IAED;;;;;;;OAOG;;;;;eACH,UAAsF,GAAQ,EAAE,KAAY;YAC3G,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACjC,OAAO,iBAAM,GAAG,YAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;;IAED;;OAEG;;;;;eACH,UAAyF,GAAQ,EAAE,KAAY;YAC9G,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACjC,iBAAM,MAAM,YAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1B,CAAC;;IAED;;;;;;;OAOG;;;;;eACH,UAA2F,GAAQ,EAAE,KAAY;YAChH,IAAG,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAC;gBAC7B,OAAO,iBAAM,GAAG,YAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aAC7B;YACD,OAAO,KAAK,CAAC;QACd,CAAC;;IAED;;;;;OAKG;;;;;eACH,UAAmD,GAAQ;YAC1D,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;;IAED;;OAEG;;;;;eACH,UAA2G,GAAQ,EAAE,KAAY;YAChI,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACxC,OAAO,iBAAM,UAAU,YAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;;IAED;;OAEG;;;;;eACH,UAA8G,GAAQ,EAAE,KAAY;YACnI,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACxC,iBAAM,aAAa,YAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC;;IAED;;OAEG;;;;;eACH,UAAiE,GAAQ;YACxE,OAAO,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC;;;;;;eAED,UAAiE,QAAwB,EAAE,GAAQ,EAAE,KAA6B;YACjI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE;gBAC/B,IAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBAE3C,IAAI,QAAQ,KAAK,KAAK,EAAE;oBACvB,iBAAM,GAAG,YAAC,GAAG,EAAE,KAAK,CAAC,CAAC;iBACtB;aACD;QACF,CAAC;;;;;;eAED,UAA+E,QAAwB,EAAE,GAAQ,EAAE,KAAoC;YACtJ,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE;gBACtC,IAAM,KAAK,GAAG,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;gBAElD,IAAI,QAAQ,KAAK,KAAK,EAAE;oBACvB,iBAAM,UAAU,YAAC,GAAG,EAAE,KAAK,CAAC,CAAC;iBAC7B;aACD;QACF,CAAC;;;;;;eAED,UAAoE,GAAQ;YAC3E,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE;gBAC/B,IAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBAE3C,IAAI,KAAK,EAAE;oBACV,8DAA8D;oBAC9D,iBAAM,GAAG,YAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAE,CAAC,CAAC;iBAEtC;qBAAM;oBACN,iBAAM,MAAM,YAAC,GAAG,CAAC,CAAC;iBAClB;aACD;QACF,CAAC;;;;;;eAED,UAAkF,GAAQ;YACzF,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE;gBACtC,IAAM,KAAK,GAAG,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;gBAElD,IAAI,KAAK,EAAE;oBACV,8DAA8D;oBAC9D,iBAAM,UAAU,YAAC,GAAG,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;iBAEnD;qBAAM;oBACN,iBAAM,aAAa,YAAC,GAAG,CAAC,CAAC;iBACzB;aACD;QACF,CAAC;;;;;;eAED,UAAuB,CAA2B;YACjD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAC7B,CAAC,CAAC,IAAI,CAAC,CAAC;QACT,CAAC;;IAED,wEAAwE;;;;;eACxE,UAAwB,IAAY;YACnC,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC3C,IAAM,IAAI,GAA6B,EAAE,CAAC;YAE1C,IAAI,CAAC,aAAa,CAAC,UAAC,QAAQ;gBAC3B,IAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAE3C,IAAI,KAAK,EAAE;oBACV,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;iBAC1B;YACF,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,UAAC,GAAG;gBACjC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;oBAC5C,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;iBAClB;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;;;;;;eAED,UAAyB,QAAwB,EAAE,KAAuB;YAA1E,iBAqBC;YApBA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YAE3D,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAC,GAAG,EAAE,KAAK;gBAC3C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE;oBACvD,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;oBAC3B,iBAAM,GAAG,aAAC,GAAG,EAAE,KAAK,CAAC,CAAC;iBACtB;YACF,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,UAAC,GAAG,EAAE,KAAK;gBAClD,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,KAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE;oBACrE,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;oBAClC,iBAAM,UAAU,aAAC,GAAG,EAAE,KAAK,CAAC,CAAC;iBAC7B;YACF,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,KAAK,EAAE;gBACrC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACrB;QACF,CAAC;;IAED;;OAEG;;;;;eACH,UAA8B,CAAwC;YACrE,IAAI,IAAI,CAAC,SAAS,EAAE;gBACnB,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;oBACtB,OAAO,IAAI,CAAC,SAAS,CAAC;iBACtB;aACD;QACF,CAAC;;;;;;eAED,UAAqB,CAAqC;YACzD,IAAI,CAAC,mBAAmB,CAAC,UAAC,QAAQ;gBACjC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACZ,OAAO,KAAK,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,+DAA+D;YAC/D,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;YAE/C,sDAAsD;YACtD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;;;;;;eAED,UAAuB,MAAsB;YAA7C,iBA4BC;YA5BsB,uBAAA,EAAA,aAAsB;YAC5C,IAAI,MAAM,EAAE;gBACX,IAAI,CAAC,iBAAiB,EAAE,CAAC;aACzB;YAED,IAAM,KAAK,GAAqB;gBAC/B,QAAQ,EAAE,EAAE;gBACZ,eAAe,EAAE,EAAE;gBACnB,MAAM,EAAE,EAAE;aACV,CAAC;YAEF,IAAI,CAAC,aAAa,CAAC,UAAC,QAAQ;gBAC3B,KAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YAEH,IAAI,MAAM,EAAE;gBACX,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAC,GAAG;oBAChC,IAAI,CAAC,KAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;wBACvD,iBAAM,MAAM,aAAC,GAAG,CAAC,CAAC;qBAClB;gBACF,CAAC,CAAC,CAAC;gBAEH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAC,GAAG;oBACvC,IAAI,CAAC,KAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE;wBACrE,iBAAM,aAAa,aAAC,GAAG,CAAC,CAAC;qBACzB;gBACF,CAAC,CAAC,CAAC;aACH;QACF,CAAC;;;;;;eAED,UAAwB,CAAwC;YAC/D,IAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;YAE1C,IAAI,KAAK,KAAK,SAAS,EAAE;gBACxB,+DAA+D;gBAC/D,IAAM,OAAK,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;gBAE7D,IAAI,OAAK,KAAK,SAAS,EAAE;oBACxB,sDAAsD;oBACtD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;iBAEvC;qBAAM;oBACN,OAAO,OAAK,CAAC;iBACb;aAED;iBAAM;gBACN,OAAO,KAAK,CAAC;aACb;QACF,CAAC;;;;;;eAED,UAAkE,GAAQ;YACzE,OAAO,IAAI,CAAC,aAAa,CAAC,UAAC,QAAQ;gBAClC,OAAO,GAAG,IAAI,QAAQ,CAAC,SAAS,CAAC;YAClC,CAAC,CAAC,CAAC;QACJ,CAAC;;;;;;eAED,UAAgF,GAAQ;YACvF,OAAO,IAAI,CAAC,aAAa,CAAC,UAAC,QAAQ;gBAClC,OAAO,GAAG,IAAI,QAAQ,CAAC,gBAAgB,CAAC;YACzC,CAAC,CAAC,CAAC;QACJ,CAAC;;;;;;eAED;YACC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAC,QAAQ;gBAC7C,QAAQ,CAAC,OAAO,EAAE,CAAC;YACpB,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;QACpC,CAAC;;;;;;eAED;YAAA,iBAMC;YALA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAC,QAAQ;gBACrC,QAAQ,CAAC,qBAAqB,CAAC,KAAI,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5B,CAAC;;;;;;eAED;YAAA,iBA6FC;YA5FA,IAAI,WAAW,GAAG,KAAK,CAAC;YAExB,IAAM,QAAQ,GAAwB,EAAE,CAAC;YAEzC,IAAI,MAAM,GAAwB,EAAE,CAAC;YAErC,IAAM,SAAS,GAAgB,IAAI,GAAG,EAAE,CAAC;YAEzC,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAEvC,IAAI,IAAI,EAAE;gBACT,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,UAAC,GAAG;oBACrB,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC,CAAC,CAAC;aACH;YAED,IAAI,CAAC,YAAY,CAAC,UAAC,MAAM;gBACxB,IAAI,MAAM,KAAK,KAAI,CAAC,KAAK,CAAC,cAAc,EAAE;oBACzC,WAAW,GAAG,IAAI,CAAC;iBACnB;gBAED,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;oBACrC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;iBACrC;gBAED,IAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAEnC,IAAI,KAAK,EAAE;oBACV,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACnB;gBAED,IAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAErC,IAAI,IAAI,EAAE;oBACT,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,UAAC,GAAG;wBACrB,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACpB,CAAC,CAAC,CAAC;iBACH;YACF,CAAC,CAAC,CAAC;YAEH,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAEjC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAExB,IAAI,WAAW,EAAE;gBAChB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,UAAC,IAAI;oBACxC,IAAM,QAAQ,GAAuB,EAAE,CAAC;oBAExC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,UAAC,MAAM;wBAC1B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,UAAC,KAAK;4BACzB,IAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAO,IAAI,CAAC,CAAC;4BAE7C,IAAI,KAAK,EAAE;gCACV,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,UAAC,IAAI;oCAC9B,IAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAC,GAAG;wCACnC,OAAO,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oCAC3B,CAAC,CAAC,CAAC;oCAEH,IAAI,OAAO,EAAE;wCACZ,IAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,UAAC,CAAC;4CACrD,IAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4CAE9D,IAAI,KAAK,KAAK,CAAC,EAAE;gDAChB,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;6CAE9D;iDAAM;gDACN,OAAO,KAAK,CAAC;6CACb;wCACF,CAAC,CAAC,CAAC;wCAEH,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;qCACvC;gCACF,CAAC,CAAC,CAAC;6BACH;wBACF,CAAC,CAAC,CAAC;oBACJ,CAAC,CAAC,CAAC;oBAEH,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAC,IAAI;wBAC1B,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACpC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAI,CAAC,CAAC;oBACxC,CAAC,CAAC,CAAC;gBACJ,CAAC,CAAC,CAAC;aACH;YAED,IAAI,CAAC,eAAe,EAAE,CAAC;YAEvB,IAAI,WAAW,EAAE;gBAChB,2FAA2F;gBAC3F,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;aACvB;YAED,OAAO,WAAW,CAAC;QACpB,CAAC;;;;;;eAED,cAA0B,CAAC;;;;;;eAE3B;YAEC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACvB,IAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;gBAC3B,IAAI,EAAE,EAAE;oBACP,IAAI,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE;wBAC9B,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,EAAE,GAAG,oBAAoB,CAAC,CAAC;qBACpE;oBACD,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;iBACjC;gBAED,IAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;gBACrC,IAAG,MAAM,EAAE;oBACV,OAAO,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;iBACrC;aACD;QACF,CAAC;;;;;;eAED,cAA+B,CAAC;;IAEhC;;OAEG;;;;;eACH,UAAwC,QAAW;YAClD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/B,OAAO,QAAQ,CAAC;QACjB,CAAC;;;;;;eAED;YAAA,iBAgCC;YA/BA,iBAAM,QAAQ,WAAE,CAAC;YAEjB,IAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YAEhC,IAAI,QAAQ,EAAE;gBACb,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;aACrC;YAED,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAC,QAAQ;gBAC7C,QAAQ,CAAC,qBAAqB,CAAC,KAAI,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAEzB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAEtB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAC,CAAC;gBACzB,CAAC,CAAC,OAAO,EAAE,CAAC;YACb,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,UAAC,CAAC,EAAE,SAAS;gBACnD,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,UAAC,QAAQ;oBAC/B,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACpB,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,IAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;YAC3B,IAAI,EAAE,EAAE;gBACP,OAAO,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;aACjC;QACF,CAAC;;IAED;;;;;;OAMG;;;;;eACH,UAAkB,EAAc,EAAE,KAAa;YAA/C,iBAYC;YAXA,IAAM,EAAE,GAAG,UAAU,CAAC;gBACrB,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC7B,EAAE,EAAE,CAAC;YACN,CAAC,EAAE,KAAK,CAAC,CAAC;YAEV,IAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC;gBAC7B,YAAY,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/B,OAAO,QAAQ,CAAC;QACjB,CAAC;;IAED;;OAEG;;;;;eACH,UAAqB,MAAiB;YACrC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;gBACvB,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBACpD,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;oBACf,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;iBACjC;aACD;YAED,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,CAAC;;IAED;;OAEG;;;;;eACH,UAAc,GAAW;YACxB,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9D,CAAC;;IAED;;OAEG;;;;;eACH,UAAc,GAAW;YACxB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;gBACtB,IAAM,IAAI,GAAS,IAAK,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAC9C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;aAC5B;QACF,CAAC;;IAED;;OAEG;;;;;eACH,UAAiB,GAAW;YAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;gBACrB,IAAM,IAAI,GAAS,IAAK,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAC9C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;aAC5B;QACF,CAAC;;;;;;eAED,UAAa,IAAS,EAAE,MAAgB;;YAAE,cAAsB;iBAAtB,UAAsB,EAAtB,qBAAsB,EAAtB,IAAsB;gBAAtB,6BAAsB;;YAC/D,OAAO,CAAA,KAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA,CAAC,SAAS,0BAAC,IAAI,EAAE,MAAM,UAAK,IAAI,IAAE;QAC7D,CAAC;;IASD,sBAAW,wBAAI;QAPf;;;;;;WAMG;aACH;YACC,OAAO,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;;;OAAA;IA9vBD;;;;eAAkC,QAAQ;OAAC;IAC3C;;;;eAA0C,CAAC,QAAQ,CAAC;OAAC;IA+vBtD,aAAC;CAAA,AAryBD,CAA4B,QAAQ,GAqyBnC;SAryBY,MAAM","sourcesContent":["import type { Root } from \"../Root\";\nimport type { Template, ApplyState } from \"./Template\";\nimport type { Theme, IRule } from \"../Theme\";\nimport type { ILocale } from \"./Language\";\n\nimport { IDisposer, Disposer } from \"./Disposer\";\nimport { EventDispatcher, Events } from \"./EventDispatcher\";\nimport { Time, IAnimation, getInterpolate } from \"./Animation\";\nimport { States } from \"./States\";\nimport { registry } from \"../Registry\";\n\nimport * as $object from \"./Object\";\nimport * as $ease from \"./Ease\";\nimport * as $array from \"./Array\";\nimport * as $order from \"./Order\";\n\n/**\n * @ignore\n */\nexport type Dirty<A> = { [K in keyof A]?: boolean };\n\n\n/**\n * Allows to dynamically modify setting value of its target element.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/adapters/} for more info\n */\nexport class Adapters<E extends Settings> {\n\tprivate _entity: E;\n\tprivate _callbacks: { [K in keyof E[\"_settings\"]]?: Array<<O extends E[\"_settings\"]>(value: O[K], target?: O, key?: K) => O[K]> } = {};\n\n\tconstructor(entity: E) {\n\t\tthis._entity = entity;\n\t}\n\n\t/**\n\t * Add a function (`callback`) that will modify value for setting `key`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/adapters/} for more info\n\t */\n\tpublic add<Key extends keyof E[\"_settings\"]>(key: Key, callback: <O extends E[\"_settings\"]>(value: O[Key], target?: O, key?: Key) => O[Key]): IDisposer {\n\t\tlet callbacks = this._callbacks[key];\n\n\t\tif (callbacks === undefined) {\n\t\t\tcallbacks = this._callbacks[key] = [];\n\t\t}\n\n\t\tcallbacks.push(callback);\n\n\t\tthis._entity._markDirtyKey(key);\n\n\t\treturn new Disposer(() => {\n\t\t\t$array.removeFirst(callbacks!, callback);\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic fold<Key extends keyof E[\"_settings\"]>(key: Key, value: E[\"_settings\"][Key]): E[\"_settings\"][Key] {\n\t\tconst callbacks = this._callbacks[key];\n\n\t\tif (callbacks !== undefined) {\n\t\t\tfor (let i = 0, len = callbacks.length; i < len; ++i) {\n\t\t\t\tvalue = callbacks[i](value, this._entity, key);\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t}\n}\n\n\nexport interface IEntitySettings {\n\n\t/**\n\t * Tags which can be used by the theme rules.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/themes/} for more info\n\t */\n\tthemeTags?: Array<string>;\n\n\t/**\n\t * Tags which can be used by the theme rules.\n\t *\n\t * These tags only apply to this object, not any children.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/themes/} for more info\n\t */\n\tthemeTagsSelf?: Array<string>;\n\n\t/**\n\t * A list of themes applied to the element.\n\t */\n\tthemes?: Array<Theme>;\n\n\n\t/**\n\t * Duration of transition from one state to another.\n\t */\n\tstateAnimationDuration?:number;\n\n\t/**\n\t * Easing of transition from one state to another.\n\t */\n\tstateAnimationEasing?:$ease.Easing;\n\n\t/**\n\t * A custom string ID for the element.\n\t *\n\t * If set, element can be looked up via `am5.registry.entitiesById`.\n\t *\n\t * Will raise error if an element with the same ID already exists.\n\t */\n\tid?: string;\n\n\t/**\n\t * A storage for any custom user data that needs to be associated with the\n\t * element.\n\t */\n\tuserData?: any;\n\n}\n\nexport interface IEntityPrivate {\n}\n\nexport interface IEntityEvents {\n}\n\n/**\n * Animation options.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/} for more info\n */\nexport interface AnimationOptions<Key, Value> {\n\n\t/**\n\t * A setting key to animate value for.\n\t */\n\tkey: Key,\n\n\t/**\n\t * Initial value to animate from. If not set, will use current value.\n\t */\n\tfrom?: Value;\n\n\t/**\n\t * Target value to animate to.\n\t */\n\tto: Value;\n\n\t/**\n\t * Animation duration in milliseconds.\n\t */\n\tduration: number;\n\n\t/**\n\t * Easing function. Defaults to linear.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/#Easing_functions} for more info\n\t */\n\teasing?: $ease.Easing;\n\n\t/**\n\t * How many times to play the animation. Defaults to 1.\n\t */\n\tloops?: number;\n}\n\nexport interface IAnimationEvents {\n\t/**\n\t * Invoked when animation was stopped, which happens in these situations:\n\t * 1. When the animation reached the end.\n\t * 2. When the `stop()` method is called.\n\t * 3. When a new animation starts for the same key.\n\t * 4. When calling `set` for the same key.\n\t */\n\tstopped: {};\n}\n\n/**\n * Animation object.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/} for more info\n */\nexport class Animation<Value> {\n\tprivate _from: Value;\n\tprivate _to: Value;\n\tprivate _duration: number;\n\tprivate _easing: $ease.Easing;\n\tprivate _loops: number;\n\tprivate _interpolate: <A extends Value>(diff: Time, from: A, to: A) => A;\n\tprivate _oldTime: number | null;\n\tprivate _time: number = 0;\n\n\tpublic _stopped: boolean = false;\n\tpublic _playing: boolean = true;\n\n\tpublic events: EventDispatcher<Events<this, IAnimationEvents>> = new EventDispatcher();\n\n\tconstructor(from: Value, to: Value, duration: number, easing: $ease.Easing, loops: number, startingTime: number | null) {\n\t\tthis._from = from;\n\t\tthis._to = to;\n\t\tthis._duration = duration;\n\t\tthis._easing = easing;\n\t\tthis._loops = loops;\n\t\tthis._interpolate = getInterpolate(from, to);\n\t\tthis._oldTime = startingTime;\n\t}\n\n\tpublic get to() {\n\t\treturn this._to;\n\t}\n\n\tpublic get from() {\n\t\treturn this._from;\n\t}\n\n\tpublic get playing() {\n\t\treturn this._playing;\n\t}\n\n\tpublic get stopped() {\n\t\treturn this._stopped;\n\t}\n\n\tpublic stop(): void {\n\t\tif (!this._stopped) {\n\t\t\tthis._stopped = true;\n\t\t\tthis._playing = false;\n\n\t\t\tif (this.events.isEnabled(\"stopped\")) {\n\t\t\t\tthis.events.dispatch(\"stopped\", {\n\t\t\t\t\ttype: \"stopped\",\n\t\t\t\t\ttarget: this,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic pause(): void {\n\t\tthis._playing = false;\n\t\tthis._oldTime = null;\n\t}\n\n\tpublic play(): void {\n\t\tif (!this._stopped) {\n\t\t\tthis._playing = true;\n\t\t}\n\t}\n\n\tpublic get percentage(): Time {\n\t\treturn this._time / this._duration;\n\t}\n\n\tpublic waitForStop(): Promise<void> {\n\t\treturn new Promise((resolve, _reject) => {\n\t\t\tif (this._stopped) {\n\t\t\t\tresolve();\n\n\t\t\t} else {\n\t\t\t\tconst listener = () => {\n\t\t\t\t\tstopped.dispose();\n\t\t\t\t\tresolve();\n\t\t\t\t};\n\n\t\t\t\tconst stopped = this.events.on(\"stopped\", listener);\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic _checkEnded(): boolean {\n\t\tif (this._loops > 1) {\n\t\t\t--this._loops;\n\t\t\treturn false;\n\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tpublic _run(currentTime: number): void {\n\t\tif (this._oldTime !== null) {\n\t\t\tthis._time += currentTime - this._oldTime;\n\n\t\t\tif (this._time > this._duration) {\n\t\t\t\tthis._time = this._duration;\n\t\t\t}\n\t\t}\n\n\t\tthis._oldTime = currentTime;\n\t}\n\n\tpublic _reset(currentTime: number): void {\n\t\tthis._oldTime = currentTime;\n\t\tthis._time = 0;\n\t}\n\n\tpublic _value(diff: Time): Value {\n\t\treturn this._interpolate(this._easing(diff), this._from, this._to);\n\t}\n}\n\ntype Animated<P> = { [K in keyof P]?: Animation<P[K]> };\n\n\n/**\n * @ignore\n */\nlet counter = 0;\n\n/**\n * Base class for [[Entity]] objects that support Settings.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n */\nexport abstract class Settings implements IDisposer, IAnimation {\n\n\t/**\n\t * Unique ID.\n\t */\n\tpublic uid: number = ++counter;\n\n\tpublic _settings: {};\n\tpublic _privateSettings: {} = {};\n\n\tpublic _settingEvents: { [K in keyof this[\"_settings\"]]?: Array<<V extends this[\"_settings\"][K], O extends this>(value: V, target?: O, key?: K) => void> } = {};\n\tpublic _privateSettingEvents: { [K in keyof this[\"_settings\"]]?: Array<<V extends this[\"_settings\"][K], O extends this>(value: V, target?: O, key?: K) => void> } = {};\n\n\tpublic _prevSettings: this[\"_settings\"] = {};\n\tpublic _prevPrivateSettings: this[\"_privateSettings\"] = {};\n\n\tprotected _animatingSettings: Animated<this[\"_settings\"]> = {};\n\tprotected _animatingPrivateSettings: Animated<this[\"_privateSettings\"]> = {};\n\tprotected _animatingCount: number = 0;\n\n\tprivate _disposed: boolean = false;\n\n\t// TODO move this into Entity\n\tprotected _userProperties: Dirty<this[\"_settings\"]> = {};\n\n\tconstructor(settings: Settings[\"_settings\"]) {\n\t\tthis._settings = settings;\n\t}\n\n\tprotected _checkDirty(): void {\n\t\t$object.keys(this._settings).forEach((key) => {\n\t\t\t(this._userProperties as any)[key] = true;\n\t\t\tthis._markDirtyKey(key);\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic abstract markDirty(): void;\n\n\tpublic _runAnimation(currentTime: number): boolean {\n\t\tif (!this.isDisposed()) {\n\t\t\t$object.each(this._animatingSettings, (key, animation) => {\n\t\t\t\tif (animation._stopped) {\n\t\t\t\t\tthis._stopAnimation(key);\n\n\t\t\t\t} else if (animation._playing) {\n\t\t\t\t\tanimation._run(currentTime);\n\n\t\t\t\t\tconst diff = animation.percentage;\n\n\t\t\t\t\tif (diff >= 1) {\n\t\t\t\t\t\tif (animation._checkEnded()) {\n\t\t\t\t\t\t\tthis.set(key, animation._value(1));\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tanimation._reset(currentTime);\n\t\t\t\t\t\t\tthis._set(key, animation._value(1));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._set(key, animation._value(diff));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$object.each(this._animatingPrivateSettings, (key, animation) => {\n\t\t\t\tif (animation._stopped) {\n\t\t\t\t\tthis._stopAnimationPrivate(key);\n\n\t\t\t\t} else if (animation._playing) {\n\t\t\t\t\tanimation._run(currentTime);\n\n\t\t\t\t\tconst diff = animation.percentage;\n\n\t\t\t\t\tif (diff >= 1) {\n\t\t\t\t\t\tif (animation._checkEnded()) {\n\t\t\t\t\t\t\tthis.setPrivate(key, animation._value(1));\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tanimation._reset(currentTime);\n\t\t\t\t\t\t\tthis._setPrivate(key, animation._value(1));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._setPrivate(key, animation._value(diff));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (this._animatingCount < 0) {\n\t\t\t\tthrow new Error(\"Invalid animation count\");\n\t\t\t}\n\n\t\t\treturn this._animatingCount === 0;\n\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tprotected abstract _startAnimation(): void;\n\tprotected abstract _animationTime(): number | null;\n\n\tpublic _markDirtyKey<Key extends keyof this[\"_settings\"]>(_key: Key) {\n\t\tthis.markDirty();\n\t}\n\n\tpublic _markDirtyPrivateKey<Key extends keyof this[\"_privateSettings\"]>(_key: Key) {\n\t\tthis.markDirty();\n\t}\n\n\t/**\n\t * Sets a callback function to invoke when specific key of settings changes\n\t * or is set.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/events/#Settings_value_change} for more info\n\t * @param key Settings key\n\t * @param callback Callback\n\t * @return Disposer for event\n\t */\n\tpublic on<Key extends keyof this[\"_settings\"]>(key: Key, callback: (value: this[\"_settings\"][Key], target?: this, key?: Key) => void): IDisposer {\n\t\tlet events = this._settingEvents[key];\n\n\t\tif (events === undefined) {\n\t\t\tevents = this._settingEvents[key] = [];\n\t\t}\n\n\t\tevents.push(callback);\n\n\t\treturn new Disposer(() => {\n\t\t\t$array.removeFirst(events!, callback);\n\n\t\t\tif (events!.length === 0) {\n\t\t\t\tdelete this._settingEvents[key];\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Sets a callback function to invoke when specific key of private settings\n\t * changes or is set.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/events/#Settings_value_change} for more info\n\t * @ignore\n\t * @param key Private settings key\n\t * @param callback Callback\n\t * @return Disposer for event\n\t */\n\tpublic onPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key, callback: (value: this[\"_privateSettings\"][Key], target?: this, key?: Key) => void): IDisposer {\n\t\tlet events = this._privateSettingEvents[key];\n\n\t\tif (events === undefined) {\n\t\t\tevents = this._privateSettingEvents[key] = [];\n\t\t}\n\n\t\tevents.push(callback);\n\n\t\treturn new Disposer(() => {\n\t\t\t$array.removeFirst(events!, callback);\n\n\t\t\tif (events!.length === 0) {\n\t\t\t\tdelete this._privateSettingEvents[key];\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getRaw<Key extends keyof this[\"_settings\"], F>(key: Key, fallback: F): NonNullable<this[\"_settings\"][Key]> | F;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getRaw<Key extends keyof this[\"_settings\"]>(key: Key): this[\"_settings\"][Key];\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getRaw<Key extends keyof this[\"_settings\"]>(key: Key, fallback?: any): any {\n\t\tconst value = (<any>this._settings)[key];\n\n\t\tif (value !== undefined) {\n\t\t\treturn value;\n\n\t\t} else {\n\t\t\treturn fallback;\n\t\t}\n\t}\n\n\t/**\n\t * Returns settings value for the specified `key`.\n\t *\n\t * If there is no value, `fallback` ios returned instead (if set)/\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Settings value\n\t * @param callback Fallback value\n\t * @return {any} Value\n\t */\n\tpublic get<Key extends keyof this[\"_settings\"], F>(key: Key, fallback: F): NonNullable<this[\"_settings\"][Key]> | F;\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key): this[\"_settings\"][Key];\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key, fallback?: any): any {\n\t\treturn this.getRaw(key, fallback);\n\t}\n\n\tprotected _sendKeyEvent<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): void {\n\t\tconst events = this._settingEvents[key];\n\n\t\tif (events !== undefined) {\n\t\t\t$array.each(events!, (callback) => {\n\t\t\t\tcallback(value, this, key);\n\t\t\t});\n\t\t}\n\t}\n\n\tprotected _sendPrivateKeyEvent<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): void {\n\t\tconst events = this._privateSettingEvents[key];\n\n\t\tif (events !== undefined) {\n\t\t\t$array.each(events!, (callback) => {\n\t\t\t\tcallback(value, this, key);\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprivate _setRaw<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, old: Value, value: Value) {\n\t\tthis._prevSettings[key] = old;\n\t\tthis._sendKeyEvent(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setRaw<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value) {\n\t\tconst old = (<any>this._settings)[key];\n\n\t\t(<any>this._settings)[key] = value;\n\n\t\tif (old !== value) {\n\t\t\tthis._setRaw(key, old, value);\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprivate _set<Key extends keyof this[\"_settings\"]>(key: Key, value: this[\"_settings\"][Key]) {\n\t\tconst old = (<any>this._settings)[key];\n\n\t\t(<any>this._settings)[key] = value;\n\n\t\tif (old !== value) {\n\t\t\tthis._setRaw(key, old, value);\n\t\t\tthis._markDirtyKey(key);\n\t\t}\n\t}\n\n\n\tprotected _stopAnimation<Key extends keyof this[\"_settings\"]>(key: Key): void {\n\t\tconst animation = this._animatingSettings[key];\n\n\t\tif (animation) {\n\t\t\tdelete this._animatingSettings[key];\n\t\t\t--this._animatingCount;\n\t\t\tanimation.stop();\n\t\t}\n\t}\n\n\t/**\n\t * Sets a setting `value` for the specified `key`, and returns the same `value`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t * @param value Setting value\n\t * @return Setting value\n\t */\n\tpublic set<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._set(key, value);\n\t\tthis._stopAnimation(key);\n\t\treturn value;\n\t}\n\n\t/**\n\t * Removes a setting value for the specified `key`;\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t */\n\tpublic remove<Key extends keyof this[\"_settings\"]>(key: Key): void {\n\t\tif (key in this._settings) {\n\t\t\tthis._prevSettings[key] = (<any>this._settings)[key];\n\n\t\t\tdelete (<any>this._settings)[key];\n\n\t\t\tthis._sendKeyEvent(key, undefined as any);\n\t\t\tthis._markDirtyKey(key);\n\t\t}\n\n\t\tthis._stopAnimation(key);\n\t}\n\n\t/**\n\t * Removes all keys;\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t */\n\tpublic removeAll(): void {\n\t\t$array.each($object.keys(this._settings), (key) => {\n\t\t\tthis.remove(key);\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getPrivate<Key extends keyof this[\"_privateSettings\"], F>(key: Key, fallback: F): NonNullable<this[\"_privateSettings\"][Key]> | F;\n\n\t/**\n\t * @ignore\n\t */\n\tpublic getPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key): this[\"_privateSettings\"][Key];\n\n\t/**\n\t * Returns a value of a private setting.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/#Private_settings} for more info\n\t */\n\tpublic getPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key, fallback?: any): any {\n\t\tconst value = (<any>this._privateSettings)[key];\n\n\t\tif (value !== undefined) {\n\t\t\treturn value;\n\n\t\t} else {\n\t\t\treturn fallback;\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprivate _setPrivateRaw<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, old: Value, value: Value) {\n\t\tthis._prevPrivateSettings[key] = old;\n\t\tthis._sendPrivateKeyEvent(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setPrivateRaw<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value) {\n\t\tconst old = (<any>this._privateSettings)[key];\n\n\t\t(<any>this._privateSettings)[key] = value;\n\n\t\tif (old !== value) {\n\t\t\tthis._setPrivateRaw(key, old, value);\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tprivate _setPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key, value: this[\"_privateSettings\"][Key]) {\n\t\tconst old = (<any>this._privateSettings)[key];\n\n\t\t(<any>this._privateSettings)[key] = value;\n\n\t\tif (old !== value) {\n\t\t\tthis._setPrivateRaw(key, old, value);\n\t\t\tthis._markDirtyPrivateKey(key);\n\t\t}\n\t}\n\n\tprotected _stopAnimationPrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key): void {\n\t\tconst animation = this._animatingPrivateSettings[key];\n\n\t\tif (animation) {\n\t\t\tanimation.stop();\n\t\t\tdelete this._animatingPrivateSettings[key];\n\t\t\t--this._animatingCount;\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setPrivate<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._setPrivate(key, value);\n\t\tthis._stopAnimationPrivate(key);\n\t\treturn value;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic removePrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key): void {\n\t\tif (key in this._privateSettings) {\n\t\t\tthis._prevPrivateSettings[key] = (<any>this._privateSettings)[key];\n\n\t\t\tdelete (<any>this._privateSettings)[key];\n\n\t\t\tthis._markDirtyPrivateKey(key);\n\t\t}\n\n\t\tthis._stopAnimationPrivate(key);\n\t}\n\n\t/**\n\t * Sets multiple settings at once.\n\t *\n\t * `settings` must be an object with key: value pairs.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param settings Settings\n\t */\n\tpublic setAll(settings: Partial<this[\"_settings\"]>) {\n\t\t$object.each(settings, (key, value) => {\n\t\t\tthis.set(key, value);\n\t\t});\n\t}\n\n\t/**\n\t * Animates setting values from current/start values to new ones.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/#Animating_settings} for more info\n\t * @param options Animation options\n\t * @return Animation object\n\t */\n\tpublic animate<Key extends keyof this[\"_settings\"]>(options: AnimationOptions<Key, this[\"_settings\"][Key]>): Animation<this[\"_settings\"][Key]> {\n\t\tconst key = options.key;\n\t\tconst to = options.to;\n\t\tconst duration = options.duration;\n\t\tconst loops = options.loops || 1;\n\n\t\tconst from = (options.from === undefined ? this.get(key) : options.from);\n\t\tconst easing = (options.easing === undefined ? $ease.linear : options.easing);\n\n\t\tif (duration === 0) {\n\t\t\tthis.set(key, to);\n\n\t\t} else {\n\t\t\tif (from === undefined || from === to) {\n\t\t\t\tthis.set(key, to);\n\n\t\t\t} else {\n\t\t\t\t++this._animatingCount;\n\n\t\t\t\tthis.set(key, from);\n\n\t\t\t\tconst animation = this._animatingSettings[key] = new Animation(from, to, duration, easing, loops, this._animationTime());\n\n\t\t\t\tthis._startAnimation();\n\n\t\t\t\treturn animation;\n\t\t\t}\n\t\t}\n\n\t\tconst animation = new Animation(from, to, duration, easing, loops, null);\n\t\tanimation.stop();\n\t\treturn animation;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic animatePrivate<Key extends keyof this[\"_privateSettings\"]>(options: AnimationOptions<Key, this[\"_privateSettings\"][Key]>): Animation<this[\"_privateSettings\"][Key]> {\n\t\tconst key = options.key;\n\t\tconst to = options.to;\n\t\tconst duration = options.duration;\n\t\tconst loops = options.loops || 1;\n\n\t\tconst from = (options.from === undefined ? this.getPrivate(key) : options.from);\n\t\tconst easing = (options.easing === undefined ? $ease.linear : options.easing);\n\n\t\tif (duration === 0) {\n\t\t\tthis.setPrivate(key, to);\n\n\t\t} else {\n\t\t\tif (from === undefined || from === to) {\n\t\t\t\tthis.setPrivate(key, to);\n\n\t\t\t} else {\n\t\t\t\t++this._animatingCount;\n\n\t\t\t\tthis.setPrivate(key, from);\n\n\t\t\t\tconst animation = this._animatingPrivateSettings[key] = new Animation(from, to, duration, easing, loops, this._animationTime());\n\n\t\t\t\tthis._startAnimation();\n\n\t\t\t\treturn animation;\n\t\t\t}\n\t\t}\n\n\t\tconst animation = new Animation(from, to, duration, easing, loops, null);\n\t\tanimation.stop();\n\t\treturn animation;\n\t}\n\n\tprotected _dispose() {}\n\n\t/**\n\t * Returns `true` if this element is disposed.\n\t *\n\t * @return Disposed\n\t */\n\tpublic isDisposed(): boolean {\n\t\treturn this._disposed;\n\t}\n\n\t/**\n\t * Disposes this object.\n\t */\n\tpublic dispose() {\n\t\tif (!this._disposed) {\n\t\t\tthis._disposed = true;\n\t\t\tthis._dispose();\n\t\t}\n\t}\n}\n\n/**\n * Base class.\n *\n * @important\n */\nexport class Entity extends Settings implements IDisposer {\n\tpublic _root: Root;\n\n\tpublic _user_id:any; // for testing purposes\n\n\tdeclare public _settings: IEntitySettings;\n\tdeclare public _privateSettings: IEntityPrivate;\n\tdeclare public _events: IEntityEvents;\n\n\tpublic states: States<this> = new States(this);\n\tpublic adapters: Adapters<this> = new Adapters(this);\n\tpublic events: EventDispatcher<Events<this, this[\"_events\"]>> = this._createEvents();\n\n\tprotected _userPrivateProperties: Dirty<this[\"_privateSettings\"]> = {};\n\n\tpublic _dirty: Dirty<this[\"_settings\"]> = {};\n\tpublic _dirtyPrivate: Dirty<this[\"_privateSettings\"]> = {};\n\n\tprotected _template: Template<this> | undefined;\n\n\t// Templates for the themes\n\tprotected _templates: Array<Template<this>> = [];\n\n\t// Internal templates which can be overridden by the user's templates\n\tprotected _internalTemplates: Array<Template<this>>;\n\n\t// Default themes which can be overridden by the user's themes\n\tpublic _defaultThemes: Array<Theme> = [];\n\n\t// Disposers for all of the templates\n\tprotected _templateDisposers: Array<IDisposer> = [];\n\n\tprotected _disposers: Array<IDisposer> = [];\n\n\t// Whether the template setup function should be run\n\tprotected _runSetup: boolean = true;\n\n\tpublic static className: string = \"Entity\";\n\tpublic static classNames: Array<string> = [\"Entity\"];\n\n\tprotected _disposerProperties: { [Key in keyof this[\"_settings\"]]?: Array<IDisposer> } = {};\n\n\t/**\n\t * IMPORTANT! Do not instantiate this class via `new Class()` syntax.\n\t *\n\t * Use static method `Class.new()` instead.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/getting-started/#New_element_syntax} for more info\n\t * @ignore\n\t */\n\tconstructor(root: Root, settings: Entity[\"_settings\"], isReal: boolean, templates: Array<Template<Entity>> = []) {\n\t\tsuper(settings);\n\t\tif (!isReal) {\n\t\t\tthrow new Error(\"You cannot use `new Class()`, instead use `Class.new()`\");\n\t\t}\n\t\tthis._root = root;\n\t\tthis._internalTemplates = templates as Array<Template<this>>;\n\t}\n\n\t/**\n\t * Use this method to create an instance of this class.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/getting-started/#New_element_syntax} for more info\n\t * @param root Root element\n\t * @param settings Settings\n\t * @param template Template\n\t * @return Instantiated object\n\t */\n\tstatic new<C extends typeof Entity, T extends InstanceType<C>>(this: C, root: Root, settings: T[\"_settings\"], template?: Template<T>): T {\n\t\tconst x = (new this(root, settings, true)) as T;\n\t\tx._template = template;\n\t\tx._afterNew();\n\t\treturn x;\n\t}\n\n\tstatic _new<C extends typeof Entity, T extends InstanceType<C>>(this: C, root: Root, settings: T[\"_settings\"], templates: Array<Template<T>> = []): T {\n\t\tconst x = (new this(root, settings, true, templates)) as T;\n\t\tx._afterNew();\n\t\treturn x;\n\t}\n\n\tprotected _afterNew() {\n\t\tthis._checkDirty();\n\n\t\tlet shouldApply = false;\n\n\t\tconst template = this._template;\n\n\t\tif (template) {\n\t\t\tshouldApply = true;\n\t\t\ttemplate._setObjectTemplate(this);\n\t\t}\n\n\t\t$array.each(this._internalTemplates, (template) => {\n\t\t\tshouldApply = true;\n\t\t\ttemplate._setObjectTemplate(this);\n\t\t});\n\n\t\tif (shouldApply) {\n\t\t\tthis._applyTemplates(false);\n\t\t}\n\n\t\tthis.states.create(\"default\", {});\n\n\t\tthis._setDefaults();\n\t}\n\n\t// This is the same as _afterNew, except it also applies the themes.\n\t// This should only be used for classes which don't have a parent (because they extend from Entity and not Sprite).\n\tprotected _afterNewApplyThemes() {\n\t\tthis._checkDirty();\n\n\t\tconst template = this._template;\n\n\t\tif (template) {\n\t\t\ttemplate._setObjectTemplate(this);\n\t\t}\n\n\t\t$array.each(this._internalTemplates, (template) => {\n\t\t\ttemplate._setObjectTemplate(this);\n\t\t});\n\n\t\tthis.states.create(\"default\", {});\n\n\t\tthis._setDefaults();\n\n\t\tthis._applyThemes();\n\t}\n\n\tprotected _createEvents(): EventDispatcher<Events<this, this[\"_events\"]>> {\n\t\treturn new EventDispatcher();\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic get classNames(): Array<string> {\n\t\treturn (this.constructor as any).classNames;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic get className(): string {\n\t\treturn (this.constructor as any).className;\n\t}\n\n\tprotected _setDefaults(){\n\n\t}\n\n\tpublic _setDefault<Key extends keyof this[\"_settings\"]>(key: Key, value: this[\"_settings\"][Key]) {\n\t\tif (!(key in this._settings)) {\n\t\t\tsuper.set(key, value);\n\t\t}\n\t}\n\n\tpublic _setRawDefault<Key extends keyof this[\"_settings\"]>(key: Key, value: this[\"_settings\"][Key]) {\n\t\tif (!(key in this._settings)) {\n\t\t\tsuper.setRaw(key, value);\n\t\t}\n\t}\n\n\tpublic _clearDirty() {\n\t\t$object.keys(this._dirty).forEach((key) => {\n\t\t\tthis._dirty[key] = false;\n\t\t});\n\n\t\t$object.keys(this._dirtyPrivate).forEach((key) => {\n\t\t\tthis._dirtyPrivate[key] = false;\n\t\t});\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic isDirty<Key extends keyof this[\"_settings\"]>(key: Key): boolean {\n\t\treturn !!this._dirty[key];\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic isPrivateDirty<Key extends keyof this[\"_privateSettings\"]>(key: Key): boolean {\n\t\treturn !!this._dirtyPrivate[key];\n\t}\n\n\tpublic _markDirtyKey<Key extends keyof this[\"_settings\"]>(key: Key) {\n\t\tthis._dirty[key] = true;\n\t\tsuper._markDirtyKey(key);\n\t}\n\n\tpublic _markDirtyPrivateKey<Key extends keyof this[\"_privateSettings\"]>(key: Key) {\n\t\tthis._dirtyPrivate[key] = true;\n\t\tsuper._markDirtyKey(key);\n\t}\n\n\t/**\n\t * Checks if element is of certain class (or inherits one).\n\t *\n\t * @param type Class name to check\n\t * @return {boolean} Is of class?\n\t */\n\tpublic isType<A>(type: string): this is A {\n\t\treturn this.classNames.indexOf(type) !== -1;\n\t}\n\n\tprotected _pushPropertyDisposer<Key extends keyof this[\"_settings\"], D extends IDisposer>(key: Key, disposer: D): D {\n\t\tlet disposers = this._disposerProperties[key];\n\n\t\tif (disposers === undefined) {\n\t\t\tdisposers = this._disposerProperties[key] = [];\n\t\t}\n\n\t\tdisposers.push(disposer);\n\n\t\treturn disposer;\n\t}\n\n\tprotected _disposeProperty<Key extends keyof this[\"_settings\"]>(key: Key): void {\n\t\tconst disposers = this._disposerProperties[key];\n\n\t\tif (disposers !== undefined) {\n\t\t\t$array.each(disposers!, (disposer) => {\n\t\t\t\tdisposer.dispose();\n\t\t\t});\n\n\t\t\tdelete this._disposerProperties[key];\n\t\t}\n\t}\n\n\t/**\n\t * @todo needs description\n\t * @param value Template\n\t */\n\tpublic set template(value: Template<this> | undefined) {\n\t\tconst template = this._template;\n\n\t\tif (template !== value) {\n\t\t\tthis._template = value;\n\n\t\t\tif (template) {\n\t\t\t\ttemplate._removeObjectTemplate(this);\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tvalue._setObjectTemplate(this);\n\t\t\t}\n\n\t\t\tthis._applyTemplates();\n\t\t}\n\t}\n\n\tpublic get template(): Template<this> | undefined {\n\t\treturn this._template;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic markDirty() {\n\t\tthis._root._addDirtyEntity(this);\n\t}\n\n\tprotected _startAnimation(): void {\n\t\tthis._root._addAnimation(this);\n\t}\n\n\tprotected _animationTime(): number | null {\n\t\treturn this._root.animationTime;\n\t}\n\n\tpublic _applyState(_name: string): void { }\n\tpublic _applyStateAnimated(_name: string, _duration?: number): void { }\n\n\t/**\n\t * Returns settings value for the specified `key`.\n\t *\n\t * If there is no value, `fallback` is returned instead (if set).\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Settings value\n\t * @param callback Fallback value\n\t * @return Value\n\t */\n\tpublic get<Key extends keyof this[\"_settings\"], F>(key: Key, fallback: F): NonNullable<this[\"_settings\"][Key]> | F;\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key): this[\"_settings\"][Key];\n\tpublic get<Key extends keyof this[\"_settings\"]>(key: Key, fallback?: any): any {\n\t\tconst value = this.adapters.fold(key, (<any>this._settings)[key]);\n\n\t\tif (value !== undefined) {\n\t\t\treturn value;\n\n\t\t} else {\n\t\t\treturn fallback;\n\t\t}\n\t}\n\n\t/**\n\t * Sets a setting `value` for the specified `key`, and returns the same `value`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t * @param value Setting value\n\t * @return Setting value\n\t */\n\tpublic set<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._userProperties[key] = true;\n\t\treturn super.set(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setRaw<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value) {\n\t\tthis._userProperties[key] = true;\n\t\tsuper.setRaw(key, value);\n\t}\n\n\t/**\n\t * Sets a setting `value` for the specified `key` only if the value for this key was not set previously using set method, and returns the same `value`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t * @param value Setting value\n\t * @return Setting value\n\t */\n\tpublic _setSoft<Key extends keyof this[\"_settings\"], Value extends this[\"_settings\"][Key]>(key: Key, value: Value): Value {\n\t\tif(!this._userProperties[key]){\n\t\t\treturn super.set(key, value);\n\t\t}\n\t\treturn value;\n\t}\n\n\t/**\n\t * Removes a setting value for the specified `key`.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/settings/} for more info\n\t * @param key Setting key\n\t */\n\tpublic remove<Key extends keyof this[\"_settings\"]>(key: Key) {\n\t\tdelete this._userProperties[key];\n\t\tthis._removeTemplateProperty(key);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setPrivate<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value): Value {\n\t\tthis._userPrivateProperties[key] = true;\n\t\treturn super.setPrivate(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic setPrivateRaw<Key extends keyof this[\"_privateSettings\"], Value extends this[\"_privateSettings\"][Key]>(key: Key, value: Value) {\n\t\tthis._userPrivateProperties[key] = true;\n\t\tsuper.setPrivateRaw(key, value);\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic removePrivate<Key extends keyof this[\"_privateSettings\"]>(key: Key) {\n\t\tdelete this._userPrivateProperties[key];\n\t\tthis._removeTemplatePrivateProperty(key);\n\t}\n\n\tpublic _setTemplateProperty<Key extends keyof this[\"_settings\"]>(template: Template<this>, key: Key, value: this[\"_settings\"][Key]) {\n\t\tif (!this._userProperties[key]) {\n\t\t\tconst match = this._findTemplateByKey(key);\n\n\t\t\tif (template === match) {\n\t\t\t\tsuper.set(key, value);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _setTemplatePrivateProperty<Key extends keyof this[\"_privateSettings\"]>(template: Template<this>, key: Key, value: this[\"_privateSettings\"][Key]) {\n\t\tif (!this._userPrivateProperties[key]) {\n\t\t\tconst match = this._findTemplateByPrivateKey(key);\n\n\t\t\tif (template === match) {\n\t\t\t\tsuper.setPrivate(key, value);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _removeTemplateProperty<Key extends keyof this[\"_settings\"]>(key: Key) {\n\t\tif (!this._userProperties[key]) {\n\t\t\tconst match = this._findTemplateByKey(key);\n\n\t\t\tif (match) {\n\t\t\t\t// TODO don't stop the animation if the property didn't change\n\t\t\t\tsuper.set(key, match._settings[key]!);\n\n\t\t\t} else {\n\t\t\t\tsuper.remove(key);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _removeTemplatePrivateProperty<Key extends keyof this[\"_privateSettings\"]>(key: Key) {\n\t\tif (!this._userPrivateProperties[key]) {\n\t\t\tconst match = this._findTemplateByPrivateKey(key);\n\n\t\t\tif (match) {\n\t\t\t\t// TODO don't stop the animation if the property didn't change\n\t\t\t\tsuper.setPrivate(key, match._privateSettings[key]);\n\n\t\t\t} else {\n\t\t\t\tsuper.removePrivate(key);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _walkParents(f: (parent: Entity) => void): void {\n\t\tf(this._root._rootContainer);\n\t\tf(this);\n\t}\n\n\t// TODO faster version of this method which is specialized to just 1 key\n\tpublic _applyStateByKey(name: string): void {\n\t\tconst other = this.states.create(name, {});\n\t\tconst seen: Dirty<this[\"_settings\"]> = {};\n\n\t\tthis._eachTemplate((template) => {\n\t\t\tconst state = template.states.lookup(name);\n\n\t\t\tif (state) {\n\t\t\t\tstate._apply(other, seen);\n\t\t\t}\n\t\t});\n\n\t\t$object.each(other._settings, (key) => {\n\t\t\tif (!seen[key] && !other._userSettings[key]) {\n\t\t\t\tother.remove(key);\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected _applyTemplate(template: Template<this>, state: ApplyState<this>): void {\n\t\tthis._templateDisposers.push(template._apply(this, state));\n\n\t\t$object.each(template._settings, (key, value) => {\n\t\t\tif (!state.settings[key] && !this._userProperties[key]) {\n\t\t\t\tstate.settings[key] = true;\n\t\t\t\tsuper.set(key, value);\n\t\t\t}\n\t\t});\n\n\t\t$object.each(template._privateSettings, (key, value) => {\n\t\t\tif (!state.privateSettings[key] && !this._userPrivateProperties[key]) {\n\t\t\t\tstate.privateSettings[key] = true;\n\t\t\t\tsuper.setPrivate(key, value);\n\t\t\t}\n\t\t});\n\n\t\tif (this._runSetup && template.setup) {\n\t\t\tthis._runSetup = false;\n\t\t\ttemplate.setup(this);\n\t\t}\n\t}\n\n\t/**\n\t * Calls the closure with each template and returns the first template which is true\n\t */\n\tprotected _findStaticTemplate(f: (template: Template<this>) => boolean): Template<this> | undefined {\n\t\tif (this._template) {\n\t\t\tif (f(this._template)) {\n\t\t\t\treturn this._template;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _eachTemplate(f: (template: Template<this>) => void): void {\n\t\tthis._findStaticTemplate((template) => {\n\t\t\tf(template);\n\t\t\treturn false;\n\t\t});\n\n\t\t// _internalTemplates is sorted with most specific to the right\n\t\t$array.eachReverse(this._internalTemplates, f);\n\n\t\t// _templates is sorted with most specific to the left\n\t\t$array.each(this._templates, f);\n\t}\n\n\tpublic _applyTemplates(remove: boolean = true): void {\n\t\tif (remove) {\n\t\t\tthis._disposeTemplates();\n\t\t}\n\n\t\tconst state: ApplyState<this> = {\n\t\t\tsettings: {},\n\t\t\tprivateSettings: {},\n\t\t\tstates: {},\n\t\t};\n\n\t\tthis._eachTemplate((template) => {\n\t\t\tthis._applyTemplate(template, state);\n\t\t});\n\n\t\tif (remove) {\n\t\t\t$object.each(this._settings, (key) => {\n\t\t\t\tif (!this._userProperties[key] && !state.settings[key]) {\n\t\t\t\t\tsuper.remove(key);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$object.each(this._privateSettings, (key) => {\n\t\t\t\tif (!this._userPrivateProperties[key] && !state.privateSettings[key]) {\n\t\t\t\t\tsuper.removePrivate(key);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tprotected _findTemplate(f: (template: Template<this>) => boolean): Template<this> | undefined {\n\t\tconst value = this._findStaticTemplate(f);\n\n\t\tif (value === undefined) {\n\t\t\t// _internalTemplates is sorted with most specific to the right\n\t\t\tconst value = $array.findReverse(this._internalTemplates, f);\n\n\t\t\tif (value === undefined) {\n\t\t\t\t// _templates is sorted with most specific to the left\n\t\t\t\treturn $array.find(this._templates, f);\n\n\t\t\t} else {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t} else {\n\t\t\treturn value;\n\t\t}\n\t}\n\n\tprotected _findTemplateByKey<Key extends keyof this[\"_settings\"]>(key: Key): Template<this> | undefined {\n\t\treturn this._findTemplate((template) => {\n\t\t\treturn key in template._settings;\n\t\t});\n\t}\n\n\tprotected _findTemplateByPrivateKey<Key extends keyof this[\"_privateSettings\"]>(key: Key): Template<this> | undefined {\n\t\treturn this._findTemplate((template) => {\n\t\t\treturn key in template._privateSettings;\n\t\t});\n\t}\n\n\tprotected _disposeTemplates() {\n\t\t$array.each(this._templateDisposers, (disposer) => {\n\t\t\tdisposer.dispose();\n\t\t});\n\n\t\tthis._templateDisposers.length = 0;\n\t}\n\n\tprotected _removeTemplates() {\n\t\t$array.each(this._templates, (template) => {\n\t\t\ttemplate._removeObjectTemplate(this);\n\t\t});\n\n\t\tthis._templates.length = 0;\n\t}\n\n\tpublic _applyThemes(): boolean {\n\t\tlet isConnected = false;\n\n\t\tconst defaults: Array<Array<Theme>> = [];\n\n\t\tlet themes: Array<Array<Theme>> = [];\n\n\t\tconst themeTags: Set<string> = new Set();\n\n\t\tconst tags = this.get(\"themeTagsSelf\");\n\n\t\tif (tags) {\n\t\t\t$array.each(tags, (tag) => {\n\t\t\t\tthemeTags.add(tag);\n\t\t\t});\n\t\t}\n\n\t\tthis._walkParents((entity) => {\n\t\t\tif (entity === this._root._rootContainer) {\n\t\t\t\tisConnected = true;\n\t\t\t}\n\n\t\t\tif (entity._defaultThemes.length > 0) {\n\t\t\t\tdefaults.push(entity._defaultThemes);\n\t\t\t}\n\n\t\t\tconst theme = entity.get(\"themes\");\n\n\t\t\tif (theme) {\n\t\t\t\tthemes.push(theme);\n\t\t\t}\n\n\t\t\tconst tags = entity.get(\"themeTags\");\n\n\t\t\tif (tags) {\n\t\t\t\t$array.each(tags, (tag) => {\n\t\t\t\t\tthemeTags.add(tag);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tthemes = defaults.concat(themes);\n\n\t\tthis._removeTemplates();\n\n\t\tif (isConnected) {\n\t\t\t$array.eachReverse(this.classNames, (name) => {\n\t\t\t\tconst allRules: Array<IRule<this>> = [];\n\n\t\t\t\t$array.each(themes, (themes) => {\n\t\t\t\t\t$array.each(themes, (theme) => {\n\t\t\t\t\t\tconst rules = theme._lookupRules<this>(name);\n\n\t\t\t\t\t\tif (rules) {\n\t\t\t\t\t\t\t$array.eachReverse(rules, (rule) => {\n\t\t\t\t\t\t\t\tconst matches = rule.tags.every((tag) => {\n\t\t\t\t\t\t\t\t\treturn themeTags.has(tag);\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tif (matches) {\n\t\t\t\t\t\t\t\t\tconst result = $array.getFirstSortedIndex(allRules, (x) => {\n\t\t\t\t\t\t\t\t\t\tconst order = $order.compare(rule.tags.length, x.tags.length);\n\n\t\t\t\t\t\t\t\t\t\tif (order === 0) {\n\t\t\t\t\t\t\t\t\t\t\treturn $order.compareArray(rule.tags, x.tags, $order.compare);\n\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\treturn order;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tallRules.splice(result.index, 0, rule);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t$array.each(allRules, (rule) => {\n\t\t\t\t\tthis._templates.push(rule.template);\n\t\t\t\t\trule.template._setObjectTemplate(this);\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tthis._applyTemplates();\n\n\t\tif (isConnected) {\n\t\t\t// This causes it to only run the setup function the first time that the themes are applied\n\t\t\tthis._runSetup = false;\n\t\t}\n\n\t\treturn isConnected;\n\t}\n\n\tpublic _changed(): void { }\n\n\tpublic _beforeChanged(): void {\n\n\t\tif (this.isDirty(\"id\")) {\n\t\t\tconst id = this.get(\"id\")!;\n\t\t\tif (id) {\n\t\t\t\tif (registry.entitiesById[id]) {\n\t\t\t\t\tthrow new Error(\"An entity with id \\\"\" + id + \"\\\" already exists.\");\n\t\t\t\t}\n\t\t\t\tregistry.entitiesById[id] = this;\n\t\t\t}\n\n\t\t\tconst prevId = this._prevSettings.id;\n\t\t\tif(prevId) {\n\t\t\t\tdelete registry.entitiesById[prevId];\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic _afterChanged(): void { }\n\n\t/**\n\t * @ignore\n\t */\n\tpublic addDisposer<T extends IDisposer>(disposer: T): T {\n\t\tthis._disposers.push(disposer);\n\t\treturn disposer;\n\t}\n\n\tprotected _dispose() {\n\t\tsuper._dispose();\n\n\t\tconst template = this._template;\n\n\t\tif (template) {\n\t\t\ttemplate._removeObjectTemplate(this);\n\t\t}\n\n\t\t$array.each(this._internalTemplates, (template) => {\n\t\t\ttemplate._removeObjectTemplate(this);\n\t\t});\n\n\t\tthis._removeTemplates();\n\t\tthis._disposeTemplates();\n\n\t\tthis.events.dispose();\n\n\t\tthis._disposers.forEach((x) => {\n\t\t\tx.dispose();\n\t\t});\n\n\t\t$object.each(this._disposerProperties, (_, disposers) => {\n\t\t\t$array.each(disposers, (disposer) => {\n\t\t\t\tdisposer.dispose();\n\t\t\t});\n\t\t});\n\n\t\tconst id = this.get(\"id\")!;\n\t\tif (id) {\n\t\t\tdelete registry.entitiesById[id];\n\t\t}\n\t}\n\n\t/**\n\t * Creates and returns a \"disposable\" timeout.\n\t *\n\t * @param fn Callback\n\t * @param delay Delay in milliseconds\n\t * @return Timeout disposer\n\t */\n\tpublic setTimeout(fn: () => void, delay: number): IDisposer {\n\t\tconst id = setTimeout(() => {\n\t\t\tthis.removeDispose(disposer);\n\t\t\tfn();\n\t\t}, delay);\n\n\t\tconst disposer = new Disposer(() => {\n\t\t\tclearTimeout(id);\n\t\t});\n\n\t\tthis._disposers.push(disposer);\n\t\treturn disposer;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic removeDispose(target: IDisposer): void {\n\t\tif (!this.isDisposed()) {\n\t\t\tlet index = $array.indexOf(this._disposers, target);\n\t\t\tif (index > -1) {\n\t\t\t\tthis._disposers.splice(index, 1);\n\t\t\t}\n\t\t}\n\n\t\ttarget.dispose();\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic hasTag(tag: string): boolean {\n\t\treturn $array.indexOf(this.get(\"themeTags\", []), tag) !== -1;\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic addTag(tag: string): void {\n\t\tif (!this.hasTag(tag)) {\n\t\t\tconst tags = (<any>this).get(\"themeTags\", []);\n\t\t\ttags.push(tag);\n\t\t\tthis.set(\"themeTags\", tags);\n\t\t}\n\t}\n\n\t/**\n\t * @ignore\n\t */\n\tpublic removeTag(tag: string): void {\n\t\tif (this.hasTag(tag)) {\n\t\t\tconst tags = (<any>this).get(\"themeTags\", []);\n\t\t\t$array.remove(tags, tag);\n\t\t\tthis.set(\"themeTags\", tags);\n\t\t}\n\t}\n\n\tprotected _t(text: any, locale?: ILocale, ...rest: Array<string>){\n\t\treturn this._root.language.translate(text, locale, ...rest);\n\t}\n\n\t/**\n\t * An instance of [[Root]] object.\n\t *\n\t * @readonly\n\t * @since 5.0.6\n\t * @return Root object\n\t */\n\tpublic get root(): Root {\n\t\treturn this._root;\n\t}\n\n}\n"]}
@@ -24,7 +24,7 @@ export var timeUnitDurations = {
24
24
  hour: 3600000,
25
25
  day: 86400000,
26
26
  week: 604800000,
27
- month: 2592000000,
27
+ month: 365.242 / 12 * 86400000,
28
28
  year: 31536000000
29
29
  };
30
30
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Time.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Time.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * ============================================================================\n * IMPORTS\n * ============================================================================\n * @hidden\n */\nimport * as $type from \"./Type\";\nimport * as $utils from \"./Utils\";\n\n\nexport type TimeUnit = \"millisecond\" | \"second\" | \"minute\" | \"hour\" | \"day\" | \"week\" | \"month\" | \"year\";\n\nexport interface ITimeInterval {\n\ttimeUnit: TimeUnit;\n\tcount: number;\n}\n\n\nexport function sleep(ms: number): Promise<void> {\n\treturn new Promise((resolve, _reject) => {\n\t\tsetTimeout(resolve, ms);\n\t});\n}\n\n\n/**\n * Maps time period names to their numeric representations in milliseconds.\n *\n * @ignore Exclude from docs\n */\nexport let timeUnitDurations: { [Key in TimeUnit]: number } = {\n\tmillisecond: 1,\n\tsecond: 1000,\n\tminute: 60000,\n\thour: 3600000,\n\tday: 86400000,\n\tweek: 604800000,\n\tmonth: 2592000000,\n\tyear: 31536000000\n};\n\n/**\n * Returns the next time unit that goes after source `unit`.\n *\n * E.g. \"hour\" is the next unit after \"minute\", etc.\n *\n * @ignore Exclude from docs\n * @param unit Source time unit\n * @return Next time unit\n */\nexport function getNextUnit(unit: TimeUnit): TimeUnit | undefined {\n\tswitch (unit) {\n\t\tcase \"year\":\n\t\t\treturn;\n\t\tcase \"month\":\n\t\t\treturn \"year\";\n\n\t\tcase \"week\":\n\t\t\treturn \"month\";\n\n\t\tcase \"day\":\n\t\t\treturn \"month\"; // not a mistake\n\n\t\tcase \"hour\":\n\t\t\treturn \"day\";\n\n\t\tcase \"minute\":\n\t\t\treturn \"hour\";\n\n\t\tcase \"second\":\n\t\t\treturn \"minute\"\n\n\t\tcase \"millisecond\":\n\t\t\treturn \"second\";\n\t}\n}\n\n/**\n * Returns number of milliseconds in the `count` of time `unit`.\n *\n * Available units: \"millisecond\", \"second\", \"minute\", \"hour\", \"day\", \"week\",\n * \"month\", and \"year\".\n *\n * @ignore Exclude from docs\n * @param unit Time unit\n * @param count Number of units\n * @return Milliseconds\n */\nexport function getDuration(unit: TimeUnit, count?: number): number {\n\tif (count == null) {\n\t\tcount = 1;\n\t}\n\treturn timeUnitDurations[unit] * count;\n}\n\n/**\n * @ignore\n */\nexport function getIntervalDuration(interval: ITimeInterval | undefined) {\n\tif (interval) {\n\t\treturn timeUnitDurations[interval.timeUnit] * interval.count;\n\t}\n\treturn 0;\n}\n\n/**\n * Returns current `Date` object.\n *\n * @return Current date\n */\nexport function now(): Date {\n\treturn new Date();\n}\n\n/**\n * Returns current timestamp.\n *\n * @return Current timestamp\n */\nexport function getTime(): number {\n\treturn now().getTime();\n}\n\n/**\n * Returns a copy of the `Date` object.\n *\n * @ignore Exclude from docs\n * @param date Source date\n * @return Copy\n */\nexport function copy(date: Date): Date {\n\treturn new Date(date.getTime()); // todo: check if this is ok. new Date(date) used to strip milliseconds on FF in v3\n}\n\n/**\n * Checks if the `unit` part of two `Date` objects do not match. Two dates\n * represent a \"range\" of time, rather the same time date.\n *\n * @ignore Exclude from docs\n * @param dateOne Date 1\n * @param dateTwo Date 2\n * @param unit Time unit to check\n * @return Range?\n */\nexport function checkChange(dateOne: Date, dateTwo: Date, unit: TimeUnit, utc?: boolean): boolean {\n\n\tconst timeOne = dateOne.getTime();\n\tconst timeTwo = dateTwo.getTime();\n\n\t// quick\n\tif ((timeTwo - timeOne) > getDuration(unit, 1.2)) {\n\t\treturn true;\n\t}\n\n\tdateOne = new Date(timeOne);\n\tdateTwo = new Date(timeTwo);\n\n\tlet timeZoneOffset1 = 0;\n\tlet timeZoneOffset2 = 0;\n\n\tif (!utc && unit != \"millisecond\") {\n\t\ttimeZoneOffset1 = dateOne.getTimezoneOffset();\n\t\tdateOne.setUTCMinutes(dateOne.getUTCMinutes() - timeZoneOffset1);\n\n\t\ttimeZoneOffset2 = dateTwo.getTimezoneOffset();\n\t\tdateTwo.setUTCMinutes(dateTwo.getUTCMinutes() - timeZoneOffset2);\n\t}\n\n\tlet changed = false;\n\tswitch (unit) {\n\t\tcase \"year\":\n\t\t\tif (dateOne.getUTCFullYear() != dateTwo.getUTCFullYear()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"month\":\n\t\t\tif (dateOne.getUTCFullYear() != dateTwo.getUTCFullYear()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\telse if (dateOne.getUTCMonth() != dateTwo.getUTCMonth()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"day\":\n\t\t\tif (dateOne.getUTCMonth() != dateTwo.getUTCMonth()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\telse if (dateOne.getUTCDate() != dateTwo.getUTCDate()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\tcase \"hour\":\n\t\t\tif (dateOne.getUTCHours() != dateTwo.getUTCHours()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"minute\":\n\t\t\tif (dateOne.getUTCMinutes() != dateTwo.getUTCMinutes()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\tcase \"second\":\n\t\t\tif (dateOne.getUTCSeconds() != dateTwo.getUTCSeconds()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"millisecond\":\n\t\t\tif (dateOne.getTime() != dateTwo.getTime()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tbreak;\n\t}\n\n\tif (changed) {\n\t\treturn true;\n\t}\n\n\tlet nextUnit: $type.Optional<TimeUnit> = getNextUnit(unit);\n\tif (nextUnit) {\n\t\tdateOne.setUTCMinutes(dateOne.getUTCMinutes() + timeZoneOffset1);\n\t\tdateTwo.setUTCMinutes(dateTwo.getUTCMinutes() + timeZoneOffset2);\n\t\treturn checkChange(dateOne, dateTwo, nextUnit, utc);\n\t}\n\telse {\n\t\treturn false;\n\t}\n}\n\n/**\n * Adds `count` of time `unit` to the source date. Returns a modified `Date` object.\n *\n * @ignore Exclude from docs\n * @param date Source date\n * @param unit Time unit\n * @param count Number of units to add\n * @return Modified date\n */\nexport function add(date: Date, unit: TimeUnit, count: number, utc?: boolean): Date {\n\tlet timeZoneOffset = 0;\n\n\tif (!utc && unit != \"millisecond\") {\n\t\ttimeZoneOffset = date.getTimezoneOffset();\n\t\tdate.setUTCMinutes(date.getUTCMinutes() - timeZoneOffset);\n\t}\n\n\tswitch (unit) {\n\t\tcase \"day\":\n\t\t\tlet day: number = date.getUTCDate();\n\t\t\tdate.setUTCDate(day + count);\n\t\t\tbreak;\n\n\t\tcase \"second\":\n\t\t\tlet seconds: number = date.getUTCSeconds();\n\t\t\tdate.setUTCSeconds(seconds + count);\n\t\t\tbreak;\n\n\t\tcase \"millisecond\":\n\t\t\tlet milliseconds: number = date.getUTCMilliseconds();\n\t\t\tdate.setUTCMilliseconds(milliseconds + count);\n\t\t\tbreak;\n\n\t\tcase \"hour\":\n\t\t\tlet hours: number = date.getUTCHours();\n\t\t\tdate.setUTCHours(hours + count);\n\t\t\tbreak;\n\n\t\tcase \"minute\":\n\t\t\tlet minutes: number = date.getUTCMinutes();\n\t\t\tdate.setUTCMinutes(minutes + count);\n\t\t\tbreak;\n\n\t\tcase \"year\":\n\t\t\tlet year: number = date.getUTCFullYear();\n\t\t\tdate.setUTCFullYear(year + count);\n\t\t\tbreak;\n\n\t\tcase \"month\":\n\t\t\tlet month: number = date.getUTCMonth();\n\t\t\tdate.setUTCMonth(month + count);\n\t\t\tbreak;\n\n\t\tcase \"week\":\n\t\t\tlet wday: number = date.getUTCDate();\n\t\t\tdate.setUTCDate(wday + count * 7);\n\t\t\tbreak;\n\t}\n\tif (!utc && unit != \"millisecond\") {\n\t\tdate.setUTCMinutes(date.getUTCMinutes() + timeZoneOffset);\n\n\t\tif (unit == \"day\" || unit == \"week\" || unit == \"month\" || unit == \"year\") {\n\t\t\tlet newTimeZoneOffset = date.getTimezoneOffset();\n\t\t\tif (newTimeZoneOffset != timeZoneOffset) {\n\t\t\t\tlet diff = newTimeZoneOffset - timeZoneOffset;\n\n\t\t\t\tdate.setUTCMinutes(date.getUTCMinutes() + diff);\n\t\t\t\t// solves issues if newe time falls back to old time zone\n\t\t\t\tif (date.getTimezoneOffset() != newTimeZoneOffset) {\n\t\t\t\t\tdate.setUTCMinutes(date.getUTCMinutes() - diff);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn date;\n}\n\n/**\n * \"Rounds\" the date to specific time unit.\n *\n * @ignore Exclude from docs\n * @param date Source date\n * @param unit Time unit\n * @param count Number of units to round to\n * @param firstDateOfWeek First day of week\n * @return New date\n */\nexport function round(date: Date, unit: TimeUnit, count: number, firstDateOfWeek?: number, utc?: boolean, firstDate?: Date): Date {\n\n\tif (!$type.isNumber(count)) {\n\t\tcount = 1;\n\t}\n\n\tlet timeZoneOffset = 0;\n\n\tif (!utc && unit != \"millisecond\") {\n\t\ttimeZoneOffset = date.getTimezoneOffset();\n\t\tdate.setUTCMinutes(date.getUTCMinutes() - timeZoneOffset);\n\t}\n\n\tswitch (unit) {\n\n\t\tcase \"day\":\n\t\t\tlet day = date.getUTCDate();\n\n\t\t\tif (count > 1) {\n\t\t\t\t//\tday = Math.floor(day / count) * count;\n\t\t\t\tif (firstDate) {\n\t\t\t\t\tfirstDate = round(firstDate, \"day\", 1);\n\n\t\t\t\t\tlet difference = date.getTime() - firstDate.getTime();\n\t\t\t\t\tlet unitCount = Math.floor(difference / getDuration(\"day\") / count);\n\t\t\t\t\tlet duration = getDuration(\"day\", unitCount * count);\n\t\t\t\t\tdate.setTime(firstDate.getTime() + duration - timeZoneOffset * getDuration(\"minute\"));\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tdate.setUTCDate(day);\n\t\t\t}\n\t\t\tdate.setUTCHours(0, 0, 0, 0);\n\n\t\t\tbreak;\n\n\t\tcase \"second\":\n\t\t\tlet seconds = date.getUTCSeconds();\n\t\t\tif (count > 1) {\n\t\t\t\tseconds = Math.floor(seconds / count) * count;\n\t\t\t}\n\t\t\tdate.setUTCSeconds(seconds, 0);\n\t\t\tbreak;\n\n\t\tcase \"millisecond\":\n\t\t\tif (count == 1) {\n\t\t\t\treturn date; // much better for perf!\n\t\t\t}\n\n\t\t\tlet milliseconds = date.getUTCMilliseconds();\n\t\t\tmilliseconds = Math.floor(milliseconds / count) * count;\n\t\t\tdate.setUTCMilliseconds(milliseconds);\n\t\t\tbreak;\n\n\t\tcase \"hour\":\n\n\t\t\tlet hours = date.getUTCHours();\n\t\t\tif (count > 1) {\n\t\t\t\thours = Math.floor(hours / count) * count;\n\t\t\t}\n\t\t\tdate.setUTCHours(hours, 0, 0, 0);\n\n\t\t\tbreak;\n\n\t\tcase \"minute\":\n\n\t\t\tlet minutes = date.getUTCMinutes();\n\t\t\tmilliseconds = date.getUTCMilliseconds();\n\t\t\tif (count > 1) {\n\t\t\t\tminutes = Math.floor(minutes / count) * count;\n\t\t\t}\n\n\t\t\tdate.setUTCMinutes(minutes, 0, 0);\n\n\t\t\tbreak;\n\n\t\tcase \"month\":\n\n\t\t\tlet month = date.getUTCMonth();\n\t\t\tif (count > 1) {\n\t\t\t\tmonth = Math.floor(month / count) * count;\n\t\t\t}\n\n\t\t\tdate.setUTCMonth(month, 1);\n\t\t\tdate.setUTCHours(0, 0, 0, 0);\n\n\t\t\tbreak;\n\n\t\tcase \"year\":\n\n\t\t\tlet year = date.getUTCFullYear();\n\t\t\tif (count > 1) {\n\t\t\t\tyear = Math.floor(year / count) * count;\n\t\t\t}\n\t\t\tdate.setUTCFullYear(year, 0, 1);\n\t\t\tdate.setUTCHours(0, 0, 0, 0);\n\n\t\t\t//let nonUTCDateY = new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n\t\t\t//timeZoneOffset = nonUTCDateY.getTimezoneOffset();\n\n\t\t\tbreak;\n\n\n\t\tcase \"week\":\n\n\t\t\tlet wday = date.getUTCDate();\n\t\t\tlet weekDay = date.getUTCDay();\n\n\t\t\tif (!$type.isNumber(firstDateOfWeek)) {\n\t\t\t\tfirstDateOfWeek = 1;\n\t\t\t}\n\n\t\t\t// todo: rounding when count is not 1\n\t\t\tif (weekDay >= firstDateOfWeek) {\n\t\t\t\twday = wday - weekDay + firstDateOfWeek;\n\t\t\t} else {\n\t\t\t\twday = wday - (7 + weekDay) + firstDateOfWeek;\n\t\t\t}\n\n\t\t\tdate.setUTCDate(wday);\n\t\t\tdate.setUTCHours(0, 0, 0, 0);\n\n\t\t\tbreak;\n\t}\n\tif (!utc && unit != \"millisecond\") {\n\t\tdate.setUTCMinutes(date.getUTCMinutes() + timeZoneOffset);\n\n\t\tif (unit == \"day\" || unit == \"week\" || unit == \"month\" || unit == \"year\") {\n\t\t\tlet newTimeZoneOffset = date.getTimezoneOffset();\n\t\t\tif (newTimeZoneOffset != timeZoneOffset) {\n\t\t\t\tlet diff = newTimeZoneOffset - timeZoneOffset;\n\n\t\t\t\tdate.setUTCMinutes(date.getUTCMinutes() + diff);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn date;\n}\n\n/**\n * Returns a new `Date` object which corresponds to the source date in a\n * specific timezone.\n *\n * @since 4.10.1\n * @param date Source date\n * @param timezone Timezone identifier\n * @return Recalculated new Date\n */\nexport function setTimezone(date: Date, timezone: string): Date {\n\tconst d = new Date(date.toLocaleString(\"en-US\", { timeZone: timezone }));\n\treturn d;\n}\n\n/**\n * @ignore\n */\nexport function chooseInterval(index: number, duration: number, gridCount: number, intervals: Array<ITimeInterval>): ITimeInterval {\n\tlet gridInterval: ITimeInterval = intervals[index];\n\tlet intervalDuration = getIntervalDuration(gridInterval);\n\n\tlet lastIndex = intervals.length - 1;\n\tif (index >= lastIndex) {\n\t\treturn { ...intervals[lastIndex] };\n\t}\n\n\tlet count = Math.ceil(duration / intervalDuration);\n\n\tif (duration < intervalDuration && index > 0) {\n\t\treturn { ...intervals[index - 1] };\n\t}\n\tif (count <= gridCount) {\n\t\treturn { ...intervals[index] };\n\t} else {\n\t\tif (index + 1 < intervals.length) {\n\t\t\treturn chooseInterval(index + 1, duration, gridCount, intervals);\n\t\t} else {\n\t\t\treturn { ...intervals[index] };\n\t\t}\n\t}\n}\n\n/**\n * @ignore\n */\nexport function getUnitValue(date: Date, unit: TimeUnit) {\n\tswitch (unit) {\n\t\tcase \"day\":\n\t\t\treturn date.getDate();\n\t\tcase \"second\":\n\t\t\treturn date.getSeconds();\n\t\tcase \"millisecond\":\n\t\t\treturn date.getMilliseconds();\n\t\tcase \"hour\":\n\t\t\treturn date.getHours();\n\t\tcase \"minute\":\n\t\t\treturn date.getMinutes();\n\t\tcase \"month\":\n\t\t\treturn date.getMonth();\n\t\tcase \"year\":\n\t\t\treturn date.getFullYear();\n\t\tcase \"week\":\n\t\t\treturn $utils.getWeek(date);\n\t}\n}\n\n"]}
1
+ {"version":3,"file":"Time.js","sourceRoot":"","sources":["../../../../../src/.internal/core/util/Time.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * ============================================================================\n * IMPORTS\n * ============================================================================\n * @hidden\n */\nimport * as $type from \"./Type\";\nimport * as $utils from \"./Utils\";\n\n\nexport type TimeUnit = \"millisecond\" | \"second\" | \"minute\" | \"hour\" | \"day\" | \"week\" | \"month\" | \"year\";\n\nexport interface ITimeInterval {\n\ttimeUnit: TimeUnit;\n\tcount: number;\n}\n\n\nexport function sleep(ms: number): Promise<void> {\n\treturn new Promise((resolve, _reject) => {\n\t\tsetTimeout(resolve, ms);\n\t});\n}\n\n\n/**\n * Maps time period names to their numeric representations in milliseconds.\n *\n * @ignore Exclude from docs\n */\nexport let timeUnitDurations: { [Key in TimeUnit]: number } = {\n\tmillisecond: 1,\n\tsecond: 1000,\n\tminute: 60000,\n\thour: 3600000,\n\tday: 86400000,\n\tweek: 604800000,\n\tmonth: 365.242 / 12 * 86400000,\n\tyear: 31536000000\n};\n\n/**\n * Returns the next time unit that goes after source `unit`.\n *\n * E.g. \"hour\" is the next unit after \"minute\", etc.\n *\n * @ignore Exclude from docs\n * @param unit Source time unit\n * @return Next time unit\n */\nexport function getNextUnit(unit: TimeUnit): TimeUnit | undefined {\n\tswitch (unit) {\n\t\tcase \"year\":\n\t\t\treturn;\n\t\tcase \"month\":\n\t\t\treturn \"year\";\n\n\t\tcase \"week\":\n\t\t\treturn \"month\";\n\n\t\tcase \"day\":\n\t\t\treturn \"month\"; // not a mistake\n\n\t\tcase \"hour\":\n\t\t\treturn \"day\";\n\n\t\tcase \"minute\":\n\t\t\treturn \"hour\";\n\n\t\tcase \"second\":\n\t\t\treturn \"minute\"\n\n\t\tcase \"millisecond\":\n\t\t\treturn \"second\";\n\t}\n}\n\n/**\n * Returns number of milliseconds in the `count` of time `unit`.\n *\n * Available units: \"millisecond\", \"second\", \"minute\", \"hour\", \"day\", \"week\",\n * \"month\", and \"year\".\n *\n * @ignore Exclude from docs\n * @param unit Time unit\n * @param count Number of units\n * @return Milliseconds\n */\nexport function getDuration(unit: TimeUnit, count?: number): number {\n\tif (count == null) {\n\t\tcount = 1;\n\t}\n\treturn timeUnitDurations[unit] * count;\n}\n\n/**\n * @ignore\n */\nexport function getIntervalDuration(interval: ITimeInterval | undefined) {\n\tif (interval) {\n\t\treturn timeUnitDurations[interval.timeUnit] * interval.count;\n\t}\n\treturn 0;\n}\n\n/**\n * Returns current `Date` object.\n *\n * @return Current date\n */\nexport function now(): Date {\n\treturn new Date();\n}\n\n/**\n * Returns current timestamp.\n *\n * @return Current timestamp\n */\nexport function getTime(): number {\n\treturn now().getTime();\n}\n\n/**\n * Returns a copy of the `Date` object.\n *\n * @ignore Exclude from docs\n * @param date Source date\n * @return Copy\n */\nexport function copy(date: Date): Date {\n\treturn new Date(date.getTime()); // todo: check if this is ok. new Date(date) used to strip milliseconds on FF in v3\n}\n\n/**\n * Checks if the `unit` part of two `Date` objects do not match. Two dates\n * represent a \"range\" of time, rather the same time date.\n *\n * @ignore Exclude from docs\n * @param dateOne Date 1\n * @param dateTwo Date 2\n * @param unit Time unit to check\n * @return Range?\n */\nexport function checkChange(dateOne: Date, dateTwo: Date, unit: TimeUnit, utc?: boolean): boolean {\n\n\tconst timeOne = dateOne.getTime();\n\tconst timeTwo = dateTwo.getTime();\n\n\t// quick\n\tif ((timeTwo - timeOne) > getDuration(unit, 1.2)) {\n\t\treturn true;\n\t}\n\n\tdateOne = new Date(timeOne);\n\tdateTwo = new Date(timeTwo);\n\n\tlet timeZoneOffset1 = 0;\n\tlet timeZoneOffset2 = 0;\n\n\tif (!utc && unit != \"millisecond\") {\n\t\ttimeZoneOffset1 = dateOne.getTimezoneOffset();\n\t\tdateOne.setUTCMinutes(dateOne.getUTCMinutes() - timeZoneOffset1);\n\n\t\ttimeZoneOffset2 = dateTwo.getTimezoneOffset();\n\t\tdateTwo.setUTCMinutes(dateTwo.getUTCMinutes() - timeZoneOffset2);\n\t}\n\n\tlet changed = false;\n\tswitch (unit) {\n\t\tcase \"year\":\n\t\t\tif (dateOne.getUTCFullYear() != dateTwo.getUTCFullYear()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"month\":\n\t\t\tif (dateOne.getUTCFullYear() != dateTwo.getUTCFullYear()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\telse if (dateOne.getUTCMonth() != dateTwo.getUTCMonth()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"day\":\n\t\t\tif (dateOne.getUTCMonth() != dateTwo.getUTCMonth()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\telse if (dateOne.getUTCDate() != dateTwo.getUTCDate()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\tcase \"hour\":\n\t\t\tif (dateOne.getUTCHours() != dateTwo.getUTCHours()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"minute\":\n\t\t\tif (dateOne.getUTCMinutes() != dateTwo.getUTCMinutes()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\tcase \"second\":\n\t\t\tif (dateOne.getUTCSeconds() != dateTwo.getUTCSeconds()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"millisecond\":\n\t\t\tif (dateOne.getTime() != dateTwo.getTime()) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\tbreak;\n\t}\n\n\tif (changed) {\n\t\treturn true;\n\t}\n\n\tlet nextUnit: $type.Optional<TimeUnit> = getNextUnit(unit);\n\tif (nextUnit) {\n\t\tdateOne.setUTCMinutes(dateOne.getUTCMinutes() + timeZoneOffset1);\n\t\tdateTwo.setUTCMinutes(dateTwo.getUTCMinutes() + timeZoneOffset2);\n\t\treturn checkChange(dateOne, dateTwo, nextUnit, utc);\n\t}\n\telse {\n\t\treturn false;\n\t}\n}\n\n/**\n * Adds `count` of time `unit` to the source date. Returns a modified `Date` object.\n *\n * @ignore Exclude from docs\n * @param date Source date\n * @param unit Time unit\n * @param count Number of units to add\n * @return Modified date\n */\nexport function add(date: Date, unit: TimeUnit, count: number, utc?: boolean): Date {\n\tlet timeZoneOffset = 0;\n\n\tif (!utc && unit != \"millisecond\") {\n\t\ttimeZoneOffset = date.getTimezoneOffset();\n\t\tdate.setUTCMinutes(date.getUTCMinutes() - timeZoneOffset);\n\t}\n\n\tswitch (unit) {\n\t\tcase \"day\":\n\t\t\tlet day: number = date.getUTCDate();\n\t\t\tdate.setUTCDate(day + count);\n\t\t\tbreak;\n\n\t\tcase \"second\":\n\t\t\tlet seconds: number = date.getUTCSeconds();\n\t\t\tdate.setUTCSeconds(seconds + count);\n\t\t\tbreak;\n\n\t\tcase \"millisecond\":\n\t\t\tlet milliseconds: number = date.getUTCMilliseconds();\n\t\t\tdate.setUTCMilliseconds(milliseconds + count);\n\t\t\tbreak;\n\n\t\tcase \"hour\":\n\t\t\tlet hours: number = date.getUTCHours();\n\t\t\tdate.setUTCHours(hours + count);\n\t\t\tbreak;\n\n\t\tcase \"minute\":\n\t\t\tlet minutes: number = date.getUTCMinutes();\n\t\t\tdate.setUTCMinutes(minutes + count);\n\t\t\tbreak;\n\n\t\tcase \"year\":\n\t\t\tlet year: number = date.getUTCFullYear();\n\t\t\tdate.setUTCFullYear(year + count);\n\t\t\tbreak;\n\n\t\tcase \"month\":\n\t\t\tlet month: number = date.getUTCMonth();\n\t\t\tdate.setUTCMonth(month + count);\n\t\t\tbreak;\n\n\t\tcase \"week\":\n\t\t\tlet wday: number = date.getUTCDate();\n\t\t\tdate.setUTCDate(wday + count * 7);\n\t\t\tbreak;\n\t}\n\tif (!utc && unit != \"millisecond\") {\n\t\tdate.setUTCMinutes(date.getUTCMinutes() + timeZoneOffset);\n\n\t\tif (unit == \"day\" || unit == \"week\" || unit == \"month\" || unit == \"year\") {\n\t\t\tlet newTimeZoneOffset = date.getTimezoneOffset();\n\t\t\tif (newTimeZoneOffset != timeZoneOffset) {\n\t\t\t\tlet diff = newTimeZoneOffset - timeZoneOffset;\n\n\t\t\t\tdate.setUTCMinutes(date.getUTCMinutes() + diff);\n\t\t\t\t// solves issues if newe time falls back to old time zone\n\t\t\t\tif (date.getTimezoneOffset() != newTimeZoneOffset) {\n\t\t\t\t\tdate.setUTCMinutes(date.getUTCMinutes() - diff);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn date;\n}\n\n/**\n * \"Rounds\" the date to specific time unit.\n *\n * @ignore Exclude from docs\n * @param date Source date\n * @param unit Time unit\n * @param count Number of units to round to\n * @param firstDateOfWeek First day of week\n * @return New date\n */\nexport function round(date: Date, unit: TimeUnit, count: number, firstDateOfWeek?: number, utc?: boolean, firstDate?: Date): Date {\n\n\tif (!$type.isNumber(count)) {\n\t\tcount = 1;\n\t}\n\n\tlet timeZoneOffset = 0;\n\n\tif (!utc && unit != \"millisecond\") {\n\t\ttimeZoneOffset = date.getTimezoneOffset();\n\t\tdate.setUTCMinutes(date.getUTCMinutes() - timeZoneOffset);\n\t}\n\n\tswitch (unit) {\n\n\t\tcase \"day\":\n\t\t\tlet day = date.getUTCDate();\n\n\t\t\tif (count > 1) {\n\t\t\t\t//\tday = Math.floor(day / count) * count;\n\t\t\t\tif (firstDate) {\n\t\t\t\t\tfirstDate = round(firstDate, \"day\", 1);\n\n\t\t\t\t\tlet difference = date.getTime() - firstDate.getTime();\n\t\t\t\t\tlet unitCount = Math.floor(difference / getDuration(\"day\") / count);\n\t\t\t\t\tlet duration = getDuration(\"day\", unitCount * count);\n\t\t\t\t\tdate.setTime(firstDate.getTime() + duration - timeZoneOffset * getDuration(\"minute\"));\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tdate.setUTCDate(day);\n\t\t\t}\n\t\t\tdate.setUTCHours(0, 0, 0, 0);\n\n\t\t\tbreak;\n\n\t\tcase \"second\":\n\t\t\tlet seconds = date.getUTCSeconds();\n\t\t\tif (count > 1) {\n\t\t\t\tseconds = Math.floor(seconds / count) * count;\n\t\t\t}\n\t\t\tdate.setUTCSeconds(seconds, 0);\n\t\t\tbreak;\n\n\t\tcase \"millisecond\":\n\t\t\tif (count == 1) {\n\t\t\t\treturn date; // much better for perf!\n\t\t\t}\n\n\t\t\tlet milliseconds = date.getUTCMilliseconds();\n\t\t\tmilliseconds = Math.floor(milliseconds / count) * count;\n\t\t\tdate.setUTCMilliseconds(milliseconds);\n\t\t\tbreak;\n\n\t\tcase \"hour\":\n\n\t\t\tlet hours = date.getUTCHours();\n\t\t\tif (count > 1) {\n\t\t\t\thours = Math.floor(hours / count) * count;\n\t\t\t}\n\t\t\tdate.setUTCHours(hours, 0, 0, 0);\n\n\t\t\tbreak;\n\n\t\tcase \"minute\":\n\n\t\t\tlet minutes = date.getUTCMinutes();\n\t\t\tmilliseconds = date.getUTCMilliseconds();\n\t\t\tif (count > 1) {\n\t\t\t\tminutes = Math.floor(minutes / count) * count;\n\t\t\t}\n\n\t\t\tdate.setUTCMinutes(minutes, 0, 0);\n\n\t\t\tbreak;\n\n\t\tcase \"month\":\n\n\t\t\tlet month = date.getUTCMonth();\n\t\t\tif (count > 1) {\n\t\t\t\tmonth = Math.floor(month / count) * count;\n\t\t\t}\n\n\t\t\tdate.setUTCMonth(month, 1);\n\t\t\tdate.setUTCHours(0, 0, 0, 0);\n\n\t\t\tbreak;\n\n\t\tcase \"year\":\n\n\t\t\tlet year = date.getUTCFullYear();\n\t\t\tif (count > 1) {\n\t\t\t\tyear = Math.floor(year / count) * count;\n\t\t\t}\n\t\t\tdate.setUTCFullYear(year, 0, 1);\n\t\t\tdate.setUTCHours(0, 0, 0, 0);\n\n\t\t\t//let nonUTCDateY = new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n\t\t\t//timeZoneOffset = nonUTCDateY.getTimezoneOffset();\n\n\t\t\tbreak;\n\n\n\t\tcase \"week\":\n\n\t\t\tlet wday = date.getUTCDate();\n\t\t\tlet weekDay = date.getUTCDay();\n\n\t\t\tif (!$type.isNumber(firstDateOfWeek)) {\n\t\t\t\tfirstDateOfWeek = 1;\n\t\t\t}\n\n\t\t\t// todo: rounding when count is not 1\n\t\t\tif (weekDay >= firstDateOfWeek) {\n\t\t\t\twday = wday - weekDay + firstDateOfWeek;\n\t\t\t} else {\n\t\t\t\twday = wday - (7 + weekDay) + firstDateOfWeek;\n\t\t\t}\n\n\t\t\tdate.setUTCDate(wday);\n\t\t\tdate.setUTCHours(0, 0, 0, 0);\n\n\t\t\tbreak;\n\t}\n\tif (!utc && unit != \"millisecond\") {\n\t\tdate.setUTCMinutes(date.getUTCMinutes() + timeZoneOffset);\n\n\t\tif (unit == \"day\" || unit == \"week\" || unit == \"month\" || unit == \"year\") {\n\t\t\tlet newTimeZoneOffset = date.getTimezoneOffset();\n\t\t\tif (newTimeZoneOffset != timeZoneOffset) {\n\t\t\t\tlet diff = newTimeZoneOffset - timeZoneOffset;\n\n\t\t\t\tdate.setUTCMinutes(date.getUTCMinutes() + diff);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn date;\n}\n\n/**\n * Returns a new `Date` object which corresponds to the source date in a\n * specific timezone.\n *\n * @since 4.10.1\n * @param date Source date\n * @param timezone Timezone identifier\n * @return Recalculated new Date\n */\nexport function setTimezone(date: Date, timezone: string): Date {\n\tconst d = new Date(date.toLocaleString(\"en-US\", { timeZone: timezone }));\n\treturn d;\n}\n\n/**\n * @ignore\n */\nexport function chooseInterval(index: number, duration: number, gridCount: number, intervals: Array<ITimeInterval>): ITimeInterval {\n\tlet gridInterval: ITimeInterval = intervals[index];\n\tlet intervalDuration = getIntervalDuration(gridInterval);\n\n\tlet lastIndex = intervals.length - 1;\n\tif (index >= lastIndex) {\n\t\treturn { ...intervals[lastIndex] };\n\t}\n\n\tlet count = Math.ceil(duration / intervalDuration);\n\n\tif (duration < intervalDuration && index > 0) {\n\t\treturn { ...intervals[index - 1] };\n\t}\n\tif (count <= gridCount) {\n\t\treturn { ...intervals[index] };\n\t} else {\n\t\tif (index + 1 < intervals.length) {\n\t\t\treturn chooseInterval(index + 1, duration, gridCount, intervals);\n\t\t} else {\n\t\t\treturn { ...intervals[index] };\n\t\t}\n\t}\n}\n\n/**\n * @ignore\n */\nexport function getUnitValue(date: Date, unit: TimeUnit) {\n\tswitch (unit) {\n\t\tcase \"day\":\n\t\t\treturn date.getDate();\n\t\tcase \"second\":\n\t\t\treturn date.getSeconds();\n\t\tcase \"millisecond\":\n\t\t\treturn date.getMilliseconds();\n\t\tcase \"hour\":\n\t\t\treturn date.getHours();\n\t\tcase \"minute\":\n\t\t\treturn date.getMinutes();\n\t\tcase \"month\":\n\t\t\treturn date.getMonth();\n\t\tcase \"year\":\n\t\t\treturn date.getFullYear();\n\t\tcase \"week\":\n\t\t\treturn $utils.getWeek(date);\n\t}\n}\n\n"]}
package/CHANGELOG.md CHANGED
@@ -5,6 +5,51 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
5
5
  Please note, that this project, while following numbering syntax, it DOES NOT
6
6
  adhere to [Semantic Versioning](http://semver.org/spec/v2.0.0.html) rules.
7
7
 
8
+ ## [5.0.12] - 2021-11-24
9
+
10
+ ### Added
11
+ - `latitudeField` and `longitudeField` added to `MapPointSeries` for an easier way to add data.
12
+
13
+ ### Changed
14
+ - Tooltip arrangement algorithm with many XY series was improved.
15
+
16
+ ### Fixed
17
+ - Axis fill rule of `DateAxis` sometimes skipped an interval or was drawn two fills in a row. Also, with months as interval between grids, the end of the fill was not at exact position where it should have been.
18
+ - When setting new data for a series, if new data has less items than series had before, a JS error could occur.
19
+
20
+
21
+ ## [5.0.11] - 2021-11-23
22
+
23
+ ### Added
24
+ - New `fps` property on `Root` which defines the maximum FPS that it will run at. Set it 30 or lower if performance is an issue.
25
+ - `"range"` theme tag is now added to all axis range elements (axisFill, grid, tick and label) so you could target specific theme rules.
26
+ - `"range"` and `"series"` theme tag is now added to all series axis range elements (axisFill, grid, tick and label) so you could target specific theme rules.
27
+
28
+ ### Changed
29
+ - A `axisFill` of an axis range will not be shown unless its `visible: true` setting is set.
30
+
31
+ ### Fixed
32
+ - Adapter for `text` of a `Label` was not kicking in when data item of its `Tooltip` (or other parent of a Label) was changed.
33
+ - Legend marker/label was not returning to a default state when clicked on a disabled item in some cases when Animated theme was not used.
34
+ - Axis range fill tooltip was being shown in a wrong position.
35
+
36
+
37
+ ## [5.0.10] - 2021-11-22
38
+
39
+ ### Fixed
40
+ - `LineSeries`' strokes in an axis range were using wrong template, which could result incorrect colors or other settings (since 5.0.9).
41
+ - When data was updated on a live chart and the chart was not fully zoomed-out, some unnecessary Y axis animation used to happen after data update.
42
+
43
+
44
+ ## [5.0.9] - 2021-11-22
45
+
46
+ ### Changed
47
+ - `maxTooltipDistance` in `XYCursor` now accepts `-1` value, which means that only single tooltip will be shown, even if multiple data items share the same value.
48
+
49
+ ### Fixed
50
+ - `GraticuleSeries` was broken.
51
+
52
+
8
53
  ## [5.0.8] - 2021-11-21
9
54
 
10
55
  ### Changed
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-flow-chord",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.0.8",
6
+ "@amcharts/amcharts5": "^5.0.12",
7
7
  "source-map-loader": "^3.0.0",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^4.1.0",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-flow-chord-directed",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.0.8",
6
+ "@amcharts/amcharts5": "^5.0.12",
7
7
  "source-map-loader": "^3.0.0",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^4.1.0",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-flow-chord-non-ribbon",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.0.8",
6
+ "@amcharts/amcharts5": "^5.0.12",
7
7
  "source-map-loader": "^3.0.0",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^4.1.0",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-flow-sankey",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.0.8",
6
+ "@amcharts/amcharts5": "^5.0.12",
7
7
  "source-map-loader": "^3.0.0",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^4.1.0",
@@ -3,7 +3,7 @@
3
3
  "name": "amcharts5-example-gauge",
4
4
  "version": "0.1.0",
5
5
  "devDependencies": {
6
- "@amcharts/amcharts5": "^5.0.8",
6
+ "@amcharts/amcharts5": "^5.0.12",
7
7
  "source-map-loader": "^3.0.0",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^4.1.0",