@amcharts/amcharts5 5.0.17 → 5.0.21

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 (230) hide show
  1. package/.internal/charts/map/MapLineSeries.d.ts +6 -1
  2. package/.internal/charts/map/MapLineSeries.d.ts.map +1 -1
  3. package/.internal/charts/map/MapLineSeries.js +11 -6
  4. package/.internal/charts/map/MapLineSeries.js.map +1 -1
  5. package/.internal/charts/map/MapPointSeries.d.ts +6 -1
  6. package/.internal/charts/map/MapPointSeries.d.ts.map +1 -1
  7. package/.internal/charts/map/MapPointSeries.js +7 -2
  8. package/.internal/charts/map/MapPointSeries.js.map +1 -1
  9. package/.internal/charts/map/MapPolygonSeries.d.ts +6 -1
  10. package/.internal/charts/map/MapPolygonSeries.d.ts.map +1 -1
  11. package/.internal/charts/map/MapPolygonSeries.js +7 -2
  12. package/.internal/charts/map/MapPolygonSeries.js.map +1 -1
  13. package/.internal/charts/percent/PercentSeries.d.ts +2 -0
  14. package/.internal/charts/percent/PercentSeries.d.ts.map +1 -1
  15. package/.internal/charts/percent/PercentSeries.js +21 -0
  16. package/.internal/charts/percent/PercentSeries.js.map +1 -1
  17. package/.internal/charts/xy/XYChart.d.ts +4 -0
  18. package/.internal/charts/xy/XYChart.d.ts.map +1 -1
  19. package/.internal/charts/xy/XYChart.js +3 -0
  20. package/.internal/charts/xy/XYChart.js.map +1 -1
  21. package/.internal/charts/xy/XYCursor.d.ts +6 -0
  22. package/.internal/charts/xy/XYCursor.d.ts.map +1 -1
  23. package/.internal/charts/xy/XYCursor.js +4 -0
  24. package/.internal/charts/xy/XYCursor.js.map +1 -1
  25. package/.internal/charts/xy/axes/CategoryDateAxis.d.ts.map +1 -1
  26. package/.internal/charts/xy/axes/CategoryDateAxis.js +4 -1
  27. package/.internal/charts/xy/axes/CategoryDateAxis.js.map +1 -1
  28. package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
  29. package/.internal/charts/xy/axes/DateAxis.js +4 -1
  30. package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
  31. package/.internal/charts/xy/series/LineSeries.d.ts +1 -0
  32. package/.internal/charts/xy/series/LineSeries.d.ts.map +1 -1
  33. package/.internal/charts/xy/series/LineSeries.js +14 -2
  34. package/.internal/charts/xy/series/LineSeries.js.map +1 -1
  35. package/.internal/charts/xy/series/XYSeries.d.ts +4 -0
  36. package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
  37. package/.internal/charts/xy/series/XYSeries.js +4 -1
  38. package/.internal/charts/xy/series/XYSeries.js.map +1 -1
  39. package/.internal/core/Classes.d.ts +2 -0
  40. package/.internal/core/Classes.d.ts.map +1 -1
  41. package/.internal/core/Classes.js.map +1 -1
  42. package/.internal/core/render/Component.d.ts +6 -1
  43. package/.internal/core/render/Component.d.ts.map +1 -1
  44. package/.internal/core/render/Component.js +8 -3
  45. package/.internal/core/render/Component.js.map +1 -1
  46. package/.internal/core/render/Container.d.ts.map +1 -1
  47. package/.internal/core/render/Container.js +5 -0
  48. package/.internal/core/render/Container.js.map +1 -1
  49. package/.internal/core/render/Ellipse.d.ts +28 -0
  50. package/.internal/core/render/Ellipse.d.ts.map +1 -0
  51. package/.internal/core/render/Ellipse.js +51 -0
  52. package/.internal/core/render/Ellipse.js.map +1 -0
  53. package/.internal/core/render/GridLayout.d.ts.map +1 -1
  54. package/.internal/core/render/GridLayout.js +2 -2
  55. package/.internal/core/render/GridLayout.js.map +1 -1
  56. package/.internal/core/render/HorizontalLayout.d.ts.map +1 -1
  57. package/.internal/core/render/HorizontalLayout.js +14 -0
  58. package/.internal/core/render/HorizontalLayout.js.map +1 -1
  59. package/.internal/core/render/Legend.d.ts +3 -2
  60. package/.internal/core/render/Legend.d.ts.map +1 -1
  61. package/.internal/core/render/Legend.js +13 -5
  62. package/.internal/core/render/Legend.js.map +1 -1
  63. package/.internal/core/render/Line.js +1 -1
  64. package/.internal/core/render/Line.js.map +1 -1
  65. package/.internal/core/render/Series.d.ts +2 -2
  66. package/.internal/core/render/Series.d.ts.map +1 -1
  67. package/.internal/core/render/Series.js +5 -4
  68. package/.internal/core/render/Series.js.map +1 -1
  69. package/.internal/core/render/Slice.d.ts.map +1 -1
  70. package/.internal/core/render/Slice.js +3 -1
  71. package/.internal/core/render/Slice.js.map +1 -1
  72. package/.internal/core/render/Sprite.d.ts +11 -2
  73. package/.internal/core/render/Sprite.d.ts.map +1 -1
  74. package/.internal/core/render/Sprite.js +40 -17
  75. package/.internal/core/render/Sprite.js.map +1 -1
  76. package/.internal/core/render/VerticalLayout.d.ts.map +1 -1
  77. package/.internal/core/render/VerticalLayout.js +14 -0
  78. package/.internal/core/render/VerticalLayout.js.map +1 -1
  79. package/.internal/core/render/backend/CanvasRenderer.d.ts +9 -4
  80. package/.internal/core/render/backend/CanvasRenderer.d.ts.map +1 -1
  81. package/.internal/core/render/backend/CanvasRenderer.js +145 -40
  82. package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
  83. package/.internal/core/render/backend/Renderer.d.ts +2 -0
  84. package/.internal/core/render/backend/Renderer.d.ts.map +1 -1
  85. package/.internal/core/render/backend/Renderer.js.map +1 -1
  86. package/.internal/core/util/ColorSet.d.ts +0 -1
  87. package/.internal/core/util/ColorSet.d.ts.map +1 -1
  88. package/.internal/core/util/ColorSet.js +1 -12
  89. package/.internal/core/util/ColorSet.js.map +1 -1
  90. package/.internal/core/util/Entity.js +2 -2
  91. package/.internal/core/util/Entity.js.map +1 -1
  92. package/.internal/core/util/TextFormatter.js +2 -2
  93. package/.internal/core/util/TextFormatter.js.map +1 -1
  94. package/.internal/core/util/Time.d.ts +7 -6
  95. package/.internal/core/util/Time.d.ts.map +1 -1
  96. package/.internal/core/util/Time.js +7 -6
  97. package/.internal/core/util/Time.js.map +1 -1
  98. package/.internal/plugins/exporting/Exporting.d.ts.map +1 -1
  99. package/.internal/plugins/exporting/Exporting.js +0 -4
  100. package/.internal/plugins/exporting/Exporting.js.map +1 -1
  101. package/.internal/plugins/sliceGrouper/SliceGrouper.d.ts +76 -0
  102. package/.internal/plugins/sliceGrouper/SliceGrouper.d.ts.map +1 -0
  103. package/.internal/plugins/sliceGrouper/SliceGrouper.js +241 -0
  104. package/.internal/plugins/sliceGrouper/SliceGrouper.js.map +1 -0
  105. package/.internal/themes/ResponsiveTheme.js +4 -4
  106. package/.internal/themes/ResponsiveTheme.js.map +1 -1
  107. package/CHANGELOG.md +56 -0
  108. package/examples/javascript/flow-chord/package.json +1 -1
  109. package/examples/javascript/flow-chord-directed/package.json +1 -1
  110. package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
  111. package/examples/javascript/flow-sankey/package.json +1 -1
  112. package/examples/javascript/gauge/package.json +1 -1
  113. package/examples/javascript/gauge-bands/package.json +1 -1
  114. package/examples/javascript/hierarchy-force-directed/package.json +1 -1
  115. package/examples/javascript/hierarchy-pack/package.json +1 -1
  116. package/examples/javascript/hierarchy-partition/package.json +1 -1
  117. package/examples/javascript/hierarchy-sunburst/package.json +1 -1
  118. package/examples/javascript/hierarchy-tree/package.json +1 -1
  119. package/examples/javascript/hierarchy-treemap/package.json +1 -1
  120. package/examples/javascript/map-animating-along-lines/package.json +1 -1
  121. package/examples/javascript/map-day-and-night/package.json +1 -1
  122. package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
  123. package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
  124. package/examples/javascript/map-with-bubbles/package.json +1 -1
  125. package/examples/javascript/map-zoom-to-country/package.json +1 -1
  126. package/examples/javascript/misc-40-charts/package.json +1 -1
  127. package/examples/javascript/misc-microchart-grid/package.json +1 -1
  128. package/examples/javascript/pie-chart/package.json +1 -1
  129. package/examples/javascript/pie-donut-chart/package.json +1 -1
  130. package/examples/javascript/pie-variable-radius/package.json +1 -1
  131. package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
  132. package/examples/javascript/radar-heat-map/package.json +1 -1
  133. package/examples/javascript/radar-line/package.json +1 -1
  134. package/examples/javascript/radar-time-line/package.json +1 -1
  135. package/examples/javascript/sliced-funnel/package.json +1 -1
  136. package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
  137. package/examples/javascript/sliced-pyramid/package.json +1 -1
  138. package/examples/javascript/venn-diagram/package.json +1 -1
  139. package/examples/javascript/wordcloud-with-data/package.json +1 -1
  140. package/examples/javascript/wordcloud-with-text/package.json +1 -1
  141. package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
  142. package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  143. package/examples/javascript/xy-bubble/package.json +1 -1
  144. package/examples/javascript/xy-candlestick/package.json +1 -1
  145. package/examples/javascript/xy-clustered-column/package.json +1 -1
  146. package/examples/javascript/xy-column/package.json +1 -1
  147. package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
  148. package/examples/javascript/xy-data-grouping/package.json +1 -1
  149. package/examples/javascript/xy-draggable-range/package.json +1 -1
  150. package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  151. package/examples/javascript/xy-dumbbell plot/package.json +1 -1
  152. package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
  153. package/examples/javascript/xy-line/package.json +1 -1
  154. package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
  155. package/examples/javascript/xy-live-data/package.json +1 -1
  156. package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
  157. package/examples/javascript/xy-ohlc/package.json +1 -1
  158. package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
  159. package/examples/javascript/xy-smoothed-line/package.json +1 -1
  160. package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
  161. package/examples/javascript/xy-stacked-column/package.json +1 -1
  162. package/examples/javascript/xy-stacked-step/package.json +1 -1
  163. package/examples/javascript/xy-stock/package.json +1 -1
  164. package/examples/javascript/xy-stock-comparing/package.json +1 -1
  165. package/examples/typescript/flow-chord/package.json +1 -1
  166. package/examples/typescript/flow-chord-directed/package.json +1 -1
  167. package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
  168. package/examples/typescript/flow-sankey/package.json +1 -1
  169. package/examples/typescript/gauge/package.json +1 -1
  170. package/examples/typescript/gauge-bands/package.json +1 -1
  171. package/examples/typescript/hierarchy-force-directed/package.json +1 -1
  172. package/examples/typescript/hierarchy-pack/package.json +1 -1
  173. package/examples/typescript/hierarchy-partition/package.json +1 -1
  174. package/examples/typescript/hierarchy-sunburst/package.json +1 -1
  175. package/examples/typescript/hierarchy-tree/package.json +1 -1
  176. package/examples/typescript/hierarchy-treemap/package.json +1 -1
  177. package/examples/typescript/map-animating-along-lines/package.json +1 -1
  178. package/examples/typescript/map-day-and-night/package.json +1 -1
  179. package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
  180. package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
  181. package/examples/typescript/map-with-bubbles/package.json +1 -1
  182. package/examples/typescript/map-zoom-to-country/package.json +1 -1
  183. package/examples/typescript/misc-40-charts/package.json +1 -1
  184. package/examples/typescript/misc-microchart-grid/package.json +1 -1
  185. package/examples/typescript/pie-chart/package.json +1 -1
  186. package/examples/typescript/pie-donut-chart/package.json +1 -1
  187. package/examples/typescript/pie-variable-radius/package.json +1 -1
  188. package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
  189. package/examples/typescript/radar-heat-map/package.json +1 -1
  190. package/examples/typescript/radar-line/package.json +1 -1
  191. package/examples/typescript/radar-time-line/package.json +1 -1
  192. package/examples/typescript/sliced-funnel/package.json +1 -1
  193. package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
  194. package/examples/typescript/sliced-pyramid/package.json +1 -1
  195. package/examples/typescript/venn-diagram/package.json +1 -1
  196. package/examples/typescript/wordcloud-with-data/package.json +1 -1
  197. package/examples/typescript/wordcloud-with-text/package.json +1 -1
  198. package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
  199. package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
  200. package/examples/typescript/xy-bubble/package.json +1 -1
  201. package/examples/typescript/xy-candlestick/package.json +1 -1
  202. package/examples/typescript/xy-clustered-column/package.json +1 -1
  203. package/examples/typescript/xy-column/package.json +1 -1
  204. package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
  205. package/examples/typescript/xy-data-grouping/package.json +1 -1
  206. package/examples/typescript/xy-draggable-range/package.json +1 -1
  207. package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
  208. package/examples/typescript/xy-dumbbell plot/package.json +1 -1
  209. package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
  210. package/examples/typescript/xy-line/package.json +1 -1
  211. package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
  212. package/examples/typescript/xy-live-data/package.json +1 -1
  213. package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
  214. package/examples/typescript/xy-ohlc/package.json +1 -1
  215. package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
  216. package/examples/typescript/xy-smoothed-line/package.json +1 -1
  217. package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
  218. package/examples/typescript/xy-stacked-column/package.json +1 -1
  219. package/examples/typescript/xy-stacked-step/package.json +1 -1
  220. package/examples/typescript/xy-stock/package.json +1 -1
  221. package/examples/typescript/xy-stock-comparing/package.json +1 -1
  222. package/index.d.ts +1 -0
  223. package/index.d.ts.map +1 -1
  224. package/index.js +1 -0
  225. package/index.js.map +1 -1
  226. package/package.json +1 -1
  227. package/plugins/sliceGrouper.d.ts +2 -0
  228. package/plugins/sliceGrouper.d.ts.map +1 -0
  229. package/plugins/sliceGrouper.js +2 -0
  230. package/plugins/sliceGrouper.js.map +1 -0
@@ -0,0 +1,76 @@
1
+ import type { DataItem } from "../../core/render/Component";
2
+ import type { PercentSeries, IPercentSeriesDataItem } from "../../charts/percent/PercentSeries";
3
+ import type { Legend } from "../../core/render/Legend";
4
+ import { Button } from "../../core/render/Button";
5
+ import { Entity, IEntitySettings, IEntityPrivate, IEntityEvents } from "../../core/util/Entity";
6
+ export interface ISliceGrouperSettings extends IEntitySettings {
7
+ /**
8
+ * A series that will be used to group slices on.
9
+ */
10
+ series?: PercentSeries;
11
+ /**
12
+ * If set, plugin will try to manipulate the items in legend, such as
13
+ * adding group slice, hiding items for small slices, etc.
14
+ */
15
+ legend?: Legend;
16
+ /**
17
+ * Any slice which has percent value less than this setting will be grouped.
18
+ *
19
+ * @default 5
20
+ */
21
+ threshold?: number;
22
+ /**
23
+ * If set, only X first slices will be left as they are. The rest of the
24
+ * slices will be grouped.
25
+ */
26
+ limit?: number;
27
+ /**
28
+ * Name (category) of the group slice.
29
+ *
30
+ * @default "Other"
31
+ */
32
+ groupName?: string;
33
+ /**
34
+ * What happens when group slice is clicked.
35
+ *
36
+ * * `"none"` (default) - nothing.
37
+ * * `"break"` - underlying small slices are shown.
38
+ * * `"zoom"` - series shows only small slies (big ones are hidden).
39
+ */
40
+ clickBehavior?: "none" | "break" | "zoom";
41
+ }
42
+ export interface ISliceGrouperPrivate extends IEntityPrivate {
43
+ groupDataItem?: DataItem<IPercentSeriesDataItem>;
44
+ normalDataItems?: DataItem<IPercentSeriesDataItem>[];
45
+ smallDataItems?: DataItem<IPercentSeriesDataItem>[];
46
+ }
47
+ export interface ISliceGrouperEvents extends IEntityEvents {
48
+ }
49
+ /**
50
+ * A plugin that can be used to automatically group small slices on percent
51
+ * charts into a single slice.
52
+ *
53
+ * @see {@link https://www.amcharts.com/docs/v5/charts/percent-charts/grouping-slices/} for more info
54
+ */
55
+ export declare class SliceGrouper extends Entity {
56
+ static className: string;
57
+ static classNames: Array<string>;
58
+ _settings: ISliceGrouperSettings;
59
+ _privateSettings: ISliceGrouperPrivate;
60
+ _events: ISliceGrouperEvents;
61
+ /**
62
+ * A button that is shown when chart small buttons are visible.
63
+ */
64
+ zoomOutButton?: Button;
65
+ protected _afterNew(): void;
66
+ private initZoomButton;
67
+ private handleData;
68
+ /**
69
+ * Resets slice setup to original grouping state.
70
+ */
71
+ zoomOut(): void;
72
+ private updateGroupDataItem;
73
+ private handleClick;
74
+ _beforeChanged(): void;
75
+ }
76
+ //# sourceMappingURL=SliceGrouper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SliceGrouper.d.ts","sourceRoot":"","sources":["../../../../../src/.internal/plugins/sliceGrouper/SliceGrouper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAChG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAK/F,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAE7D;;OAEG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC;IAEvB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;CAE1C;AAED,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC3D,aAAa,CAAC,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IACjD,eAAe,CAAC,EAAE,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;IACrD,cAAc,CAAC,EAAE,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;CACpD;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;CACzD;AAGD;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,MAAM;IACvC,OAAc,SAAS,EAAE,MAAM,CAAkB;IACjD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAsD;IAE9E,SAAS,EAAE,qBAAqB,CAAC;IACjC,gBAAgB,EAAE,oBAAoB,CAAC;IACvC,OAAO,EAAE,mBAAmB,CAAC;IAE5C;;OAEG;IACI,aAAa,CAAC,EAAE,MAAM,CAAC;IAG9B,SAAS,CAAC,SAAS,IAAI,IAAI;IAS3B,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,UAAU;IA4ElB;;OAEG;IACI,OAAO,IAAI,IAAI;IAwBtB,OAAO,CAAC,mBAAmB;IAyB3B,OAAO,CAAC,WAAW;IA2BZ,cAAc;CAcrB"}
@@ -0,0 +1,241 @@
1
+ import { __extends } from "tslib";
2
+ import { Button } from "../../core/render/Button";
3
+ import { Graphics } from "../../core/render/Graphics";
4
+ import { Entity } from "../../core/util/Entity";
5
+ import * as $array from "../../core/util/Array";
6
+ /**
7
+ * A plugin that can be used to automatically group small slices on percent
8
+ * charts into a single slice.
9
+ *
10
+ * @see {@link https://www.amcharts.com/docs/v5/charts/percent-charts/grouping-slices/} for more info
11
+ */
12
+ var SliceGrouper = /** @class */ (function (_super) {
13
+ __extends(SliceGrouper, _super);
14
+ function SliceGrouper() {
15
+ var _this = _super !== null && _super.apply(this, arguments) || this;
16
+ /**
17
+ * A button that is shown when chart small buttons are visible.
18
+ */
19
+ Object.defineProperty(_this, "zoomOutButton", {
20
+ enumerable: true,
21
+ configurable: true,
22
+ writable: true,
23
+ value: void 0
24
+ });
25
+ return _this;
26
+ }
27
+ Object.defineProperty(SliceGrouper.prototype, "_afterNew", {
28
+ enumerable: false,
29
+ configurable: true,
30
+ writable: true,
31
+ value: function () {
32
+ _super.prototype._afterNew.call(this);
33
+ this._setRawDefault("threshold", 5);
34
+ this._setRawDefault("groupName", "Other");
35
+ this._setRawDefault("clickBehavior", "none");
36
+ this.initZoomButton();
37
+ this._root.addDisposer(this);
38
+ }
39
+ });
40
+ Object.defineProperty(SliceGrouper.prototype, "initZoomButton", {
41
+ enumerable: false,
42
+ configurable: true,
43
+ writable: true,
44
+ value: function () {
45
+ var _this = this;
46
+ var clickBehavior = this.get("clickBehavior");
47
+ if (clickBehavior !== "none") {
48
+ var container = this.root.tooltipContainer;
49
+ this.zoomOutButton = container.children.push(Button.new(this._root, {
50
+ themeTags: ["zoom"],
51
+ icon: Graphics.new(this._root, {
52
+ themeTags: ["button", "icon"]
53
+ })
54
+ }));
55
+ this.zoomOutButton.hide();
56
+ this.zoomOutButton.events.on("click", function () {
57
+ _this.zoomOut();
58
+ });
59
+ }
60
+ }
61
+ });
62
+ Object.defineProperty(SliceGrouper.prototype, "handleData", {
63
+ enumerable: false,
64
+ configurable: true,
65
+ writable: true,
66
+ value: function () {
67
+ var _this = this;
68
+ var series = this.get("series");
69
+ if (series) {
70
+ // Create group data item if not yet available
71
+ var groupDataItem_1 = this.getPrivate("groupDataItem");
72
+ if (!groupDataItem_1) {
73
+ var legend = this.get("legend");
74
+ var categoryField = series.get("categoryField", "category");
75
+ var valueField = series.get("valueField", "value");
76
+ // Add slice
77
+ var groupSliceData = {};
78
+ groupSliceData[categoryField] = this.get("groupName", "");
79
+ groupSliceData[valueField] = 0;
80
+ series.data.push(groupSliceData);
81
+ groupDataItem_1 = series.dataItems[series.dataItems.length - 1];
82
+ groupDataItem_1.get("slice").events.on("click", function () {
83
+ _this.handleClick();
84
+ });
85
+ this.setPrivate("groupDataItem", groupDataItem_1);
86
+ // Add to legend
87
+ if (legend) {
88
+ legend.data.push(groupDataItem_1);
89
+ //const legendDataItem = groupDataItem.get("legendDataItem");
90
+ groupDataItem_1.on("visible", function (visible) {
91
+ if (visible) {
92
+ _this.zoomOut();
93
+ }
94
+ });
95
+ }
96
+ }
97
+ // Recalculate group value and decorate small slices as necessary
98
+ var threshold_1 = this.get("threshold", 0);
99
+ var limit_1 = this.get("limit", 1000);
100
+ var normalDataItems_1 = [];
101
+ var smallDataItems_1 = [];
102
+ var groupValue_1 = 0;
103
+ if (threshold_1 || limit_1) {
104
+ $array.each(series.dataItems, function (item, index) {
105
+ var legendDataItem = item.get("legendDataItem");
106
+ if (((item.get("valuePercentTotal") <= threshold_1) || (index > (limit_1 - 1))) && groupDataItem_1 !== item) {
107
+ groupValue_1 += item.get("value", 0);
108
+ smallDataItems_1.push(item);
109
+ item.hide(0);
110
+ if (legendDataItem) {
111
+ legendDataItem.get("itemContainer").hide(0);
112
+ }
113
+ }
114
+ else {
115
+ normalDataItems_1.push(item);
116
+ if (legendDataItem) {
117
+ legendDataItem.get("itemContainer").show(0);
118
+ }
119
+ }
120
+ });
121
+ this.setPrivate("normalDataItems", normalDataItems_1);
122
+ this.setPrivate("smallDataItems", smallDataItems_1);
123
+ this.updateGroupDataItem(groupValue_1);
124
+ }
125
+ }
126
+ }
127
+ });
128
+ /**
129
+ * Resets slice setup to original grouping state.
130
+ */
131
+ Object.defineProperty(SliceGrouper.prototype, "zoomOut", {
132
+ enumerable: false,
133
+ configurable: true,
134
+ writable: true,
135
+ value: function () {
136
+ var groupDataItem = this.getPrivate("groupDataItem");
137
+ if (groupDataItem) {
138
+ groupDataItem.show();
139
+ }
140
+ var clickBehavior = this.get("clickBehavior");
141
+ if (clickBehavior == "zoom") {
142
+ var normalDataItems = this.getPrivate("normalDataItems", []);
143
+ $array.each(normalDataItems, function (item, _index) {
144
+ item.show();
145
+ });
146
+ }
147
+ var smallDataItems = this.getPrivate("smallDataItems", []);
148
+ $array.each(smallDataItems, function (item, _index) {
149
+ item.hide();
150
+ });
151
+ if (this.zoomOutButton) {
152
+ this.zoomOutButton.hide();
153
+ }
154
+ }
155
+ });
156
+ Object.defineProperty(SliceGrouper.prototype, "updateGroupDataItem", {
157
+ enumerable: false,
158
+ configurable: true,
159
+ writable: true,
160
+ value: function (groupValue) {
161
+ var series = this.get("series");
162
+ if (series) {
163
+ var groupSliceData = {};
164
+ var categoryField = series.get("categoryField", "category");
165
+ var valueField = series.get("valueField", "value");
166
+ groupSliceData[categoryField] = this.get("groupName", "");
167
+ groupSliceData[valueField] = groupValue;
168
+ series.data.setIndex(series.data.length - 1, groupSliceData);
169
+ var groupDataItem = this.getPrivate("groupDataItem");
170
+ if (groupValue == 0) {
171
+ groupDataItem.hide(0);
172
+ }
173
+ else if (groupDataItem.isHidden()) {
174
+ groupDataItem.show();
175
+ }
176
+ var clickBehavior = this.get("clickBehavior");
177
+ if (clickBehavior != "none") {
178
+ groupDataItem.get("slice").set("toggleKey", "none");
179
+ }
180
+ }
181
+ }
182
+ });
183
+ Object.defineProperty(SliceGrouper.prototype, "handleClick", {
184
+ enumerable: false,
185
+ configurable: true,
186
+ writable: true,
187
+ value: function () {
188
+ var clickBehavior = this.get("clickBehavior");
189
+ var smallDataItems = this.getPrivate("smallDataItems");
190
+ if (clickBehavior == "none" || (smallDataItems && smallDataItems.length == 0)) {
191
+ return;
192
+ }
193
+ var series = this.get("series");
194
+ var groupDataItem = this.getPrivate("groupDataItem");
195
+ // Hide group slice
196
+ groupDataItem.hide();
197
+ // Reveal small slices
198
+ $array.each(series.dataItems, function (item) {
199
+ if (smallDataItems.indexOf(item) !== -1) {
200
+ item.show();
201
+ }
202
+ else if (clickBehavior == "zoom") {
203
+ item.hide();
204
+ }
205
+ });
206
+ this.zoomOutButton.show();
207
+ }
208
+ });
209
+ Object.defineProperty(SliceGrouper.prototype, "_beforeChanged", {
210
+ enumerable: false,
211
+ configurable: true,
212
+ writable: true,
213
+ value: function () {
214
+ var _this = this;
215
+ _super.prototype._beforeChanged.call(this);
216
+ if (this.isDirty("series")) {
217
+ var series = this.get("series");
218
+ if (series) {
219
+ series.events.on("datavalidated", function (_ev) {
220
+ _this.handleData();
221
+ });
222
+ }
223
+ }
224
+ }
225
+ });
226
+ Object.defineProperty(SliceGrouper, "className", {
227
+ enumerable: true,
228
+ configurable: true,
229
+ writable: true,
230
+ value: "SliceGrouper"
231
+ });
232
+ Object.defineProperty(SliceGrouper, "classNames", {
233
+ enumerable: true,
234
+ configurable: true,
235
+ writable: true,
236
+ value: Entity.classNames.concat([SliceGrouper.className])
237
+ });
238
+ return SliceGrouper;
239
+ }(Entity));
240
+ export { SliceGrouper };
241
+ //# sourceMappingURL=SliceGrouper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SliceGrouper.js","sourceRoot":"","sources":["../../../../../src/.internal/plugins/sliceGrouper/SliceGrouper.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataItem } from \"../../core/render/Component\";\nimport type { PercentSeries, IPercentSeriesDataItem } from \"../../charts/percent/PercentSeries\";\nimport type { Legend } from \"../../core/render/Legend\";\n\nimport { Button } from \"../../core/render/Button\";\nimport { Graphics } from \"../../core/render/Graphics\";\nimport { Entity, IEntitySettings, IEntityPrivate, IEntityEvents } from \"../../core/util/Entity\"\n\nimport * as $array from \"../../core/util/Array\";\n\n\nexport interface ISliceGrouperSettings extends IEntitySettings {\n\n\t/**\n\t * A series that will be used to group slices on.\n\t */\n\tseries?: PercentSeries;\n\n\t/**\n\t * If set, plugin will try to manipulate the items in legend, such as\n\t * adding group slice, hiding items for small slices, etc.\n\t */\n\tlegend?: Legend;\n\n\t/**\n\t * Any slice which has percent value less than this setting will be grouped.\n\t * \n\t * @default 5\n\t */\n\tthreshold?: number;\n\n\t/**\n\t * If set, only X first slices will be left as they are. The rest of the\n\t * slices will be grouped.\n\t */\n\tlimit?: number;\n\n\t/**\n\t * Name (category) of the group slice.\n\t *\n\t * @default \"Other\"\n\t */\n\tgroupName?: string;\n\n\t/**\n\t * What happens when group slice is clicked.\n\t *\n\t * * `\"none\"` (default) - nothing.\n\t * * `\"break\"` - underlying small slices are shown.\n\t * * `\"zoom\"` - series shows only small slies (big ones are hidden).\n\t */\n\tclickBehavior?: \"none\" | \"break\" | \"zoom\";\n\n}\n\nexport interface ISliceGrouperPrivate extends IEntityPrivate {\n\tgroupDataItem?: DataItem<IPercentSeriesDataItem>;\n\tnormalDataItems?: DataItem<IPercentSeriesDataItem>[];\n\tsmallDataItems?: DataItem<IPercentSeriesDataItem>[];\n}\n\nexport interface ISliceGrouperEvents extends IEntityEvents {\n}\n\n\n/**\n * A plugin that can be used to automatically group small slices on percent\n * charts into a single slice.\n *\n * @see {@link https://www.amcharts.com/docs/v5/charts/percent-charts/grouping-slices/} for more info\n */\nexport class SliceGrouper extends Entity {\n\tpublic static className: string = \"SliceGrouper\";\n\tpublic static classNames: Array<string> = Entity.classNames.concat([SliceGrouper.className]);\n\n\tdeclare public _settings: ISliceGrouperSettings;\n\tdeclare public _privateSettings: ISliceGrouperPrivate;\n\tdeclare public _events: ISliceGrouperEvents;\n\n\t/**\n\t * A button that is shown when chart small buttons are visible.\n\t */\n\tpublic zoomOutButton?: Button;\n\n\n\tprotected _afterNew(): void {\n\t\tsuper._afterNew();\n\t\tthis._setRawDefault(\"threshold\", 5);\n\t\tthis._setRawDefault(\"groupName\", \"Other\");\n\t\tthis._setRawDefault(\"clickBehavior\", \"none\");\n\t\tthis.initZoomButton();\n\t\tthis._root.addDisposer(this);\n\t}\n\n\tprivate initZoomButton(): void {\n\t\tconst clickBehavior = this.get(\"clickBehavior\");\n\t\tif (clickBehavior !== \"none\") {\n\t\t\tconst container = this.root.tooltipContainer;\n\t\t\tthis.zoomOutButton = container.children.push(Button.new(this._root, {\n\t\t\t\tthemeTags: [\"zoom\"],\n\t\t\t\ticon: Graphics.new(this._root, {\n\t\t\t\t\tthemeTags: [\"button\", \"icon\"]\n\t\t\t\t})\n\t\t\t}));\n\t\t\tthis.zoomOutButton.hide();\n\t\t\tthis.zoomOutButton.events.on(\"click\", () => {\n\t\t\t\tthis.zoomOut();\n\t\t\t});\n\t\t}\n\n\t}\n\n\tprivate handleData(): void {\n\t\tconst series = this.get(\"series\");\n\n\t\tif (series) {\n\n\t\t\t// Create group data item if not yet available\n\t\t\tlet groupDataItem = this.getPrivate(\"groupDataItem\");\n\t\t\tif (!groupDataItem) {\n\n\t\t\t\tconst legend = this.get(\"legend\");\n\t\t\t\tconst categoryField = series.get(\"categoryField\", \"category\");\n\t\t\t\tconst valueField = series.get(\"valueField\", \"value\");\n\n\t\t\t\t// Add slice\n\t\t\t\tconst groupSliceData: any = {};\n\t\t\t\tgroupSliceData[categoryField] = this.get(\"groupName\", \"\");\n\t\t\t\tgroupSliceData[valueField] = 0;\n\t\t\t\tseries.data.push(groupSliceData);\n\n\t\t\t\tgroupDataItem = series.dataItems[series.dataItems.length - 1];\n\n\t\t\t\tgroupDataItem.get(\"slice\").events.on(\"click\", () => {\n\t\t\t\t\tthis.handleClick();\n\t\t\t\t});\n\n\t\t\t\tthis.setPrivate(\"groupDataItem\", groupDataItem);\n\n\t\t\t\t// Add to legend\n\t\t\t\tif (legend) {\n\t\t\t\t\tlegend.data.push(groupDataItem);\n\n\t\t\t\t\t//const legendDataItem = groupDataItem.get(\"legendDataItem\");\n\t\t\t\t\tgroupDataItem.on(\"visible\", (visible) => {\n\t\t\t\t\t\tif (visible) {\n\t\t\t\t\t\t\tthis.zoomOut();\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Recalculate group value and decorate small slices as necessary\n\t\t\tconst threshold = this.get(\"threshold\", 0);\n\t\t\tconst limit = this.get(\"limit\", 1000);\n\t\t\tconst normalDataItems: any = [];\n\t\t\tconst smallDataItems: any = [];\n\t\t\tlet groupValue = 0;\n\t\t\tif (threshold || limit) {\n\n\t\t\t\t$array.each(series.dataItems, (item, index) => {\n\t\t\t\t\tconst legendDataItem = item.get(\"legendDataItem\");\n\t\t\t\t\tif (((item.get(\"valuePercentTotal\") <= threshold) || (index > (limit - 1))) && groupDataItem !== item) {\n\t\t\t\t\t\tgroupValue += item.get(\"value\", 0);\n\t\t\t\t\t\tsmallDataItems.push(item);\n\t\t\t\t\t\titem.hide(0);\n\t\t\t\t\t\tif (legendDataItem) {\n\t\t\t\t\t\t\tlegendDataItem.get(\"itemContainer\").hide(0);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tnormalDataItems.push(item);\n\t\t\t\t\t\tif (legendDataItem) {\n\t\t\t\t\t\t\tlegendDataItem.get(\"itemContainer\").show(0);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tthis.setPrivate(\"normalDataItems\", normalDataItems);\n\t\t\t\tthis.setPrivate(\"smallDataItems\", smallDataItems);\n\t\t\t\tthis.updateGroupDataItem(groupValue);\n\n\t\t\t}\n\n\t\t}\n\t}\n\n\t/**\n\t * Resets slice setup to original grouping state.\n\t */\n\tpublic zoomOut(): void {\n\t\tconst groupDataItem = this.getPrivate(\"groupDataItem\");\n\t\tif (groupDataItem) {\n\t\t\tgroupDataItem.show();\n\t\t}\n\n\t\tconst clickBehavior = this.get(\"clickBehavior\");\n\t\tif (clickBehavior == \"zoom\") {\n\t\t\tconst normalDataItems: any = this.getPrivate(\"normalDataItems\", []);\n\t\t\t$array.each(normalDataItems, (item: any, _index) => {\n\t\t\t\titem.show();\n\t\t\t});\n\t\t}\n\n\t\tconst smallDataItems: any = this.getPrivate(\"smallDataItems\", []);\n\t\t$array.each(smallDataItems, (item: any, _index) => {\n\t\t\titem.hide();\n\t\t});\n\n\t\tif (this.zoomOutButton) {\n\t\t\tthis.zoomOutButton.hide();\n\t\t}\n\t}\n\n\tprivate updateGroupDataItem(groupValue: number): void {\n\t\tconst series = this.get(\"series\");\n\t\tif (series) {\n\t\t\tconst groupSliceData: any = {};\n\t\t\tconst categoryField = series.get(\"categoryField\", \"category\");\n\t\t\tconst valueField = series.get(\"valueField\", \"value\");\n\t\t\tgroupSliceData[categoryField] = this.get(\"groupName\", \"\");\n\t\t\tgroupSliceData[valueField] = groupValue;\n\t\t\tseries.data.setIndex(series.data.length - 1, groupSliceData);\n\n\t\t\tconst groupDataItem = this.getPrivate(\"groupDataItem\");\n\t\t\tif (groupValue == 0) {\n\t\t\t\tgroupDataItem!.hide(0);\n\t\t\t}\n\t\t\telse if (groupDataItem!.isHidden()) {\n\t\t\t\tgroupDataItem!.show();\n\t\t\t}\n\n\t\t\tconst clickBehavior = this.get(\"clickBehavior\");\n\t\t\tif (clickBehavior != \"none\") {\n\t\t\t\tgroupDataItem!.get(\"slice\").set(\"toggleKey\", \"none\");\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate handleClick(): void {\n\t\tconst clickBehavior = this.get(\"clickBehavior\");\n\t\tconst smallDataItems = this.getPrivate(\"smallDataItems\");\n\n\t\tif (clickBehavior == \"none\" || (smallDataItems && smallDataItems.length == 0)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst series = this.get(\"series\");\n\t\tconst groupDataItem = this.getPrivate(\"groupDataItem\");\n\n\t\t// Hide group slice\n\t\tgroupDataItem!.hide();\n\n\t\t// Reveal small slices\n\t\t$array.each(series!.dataItems, (item) => {\n\t\t\tif (smallDataItems!.indexOf(item) !== -1) {\n\t\t\t\titem.show();\n\t\t\t}\n\t\t\telse if (clickBehavior == \"zoom\") {\n\t\t\t\titem.hide();\n\t\t\t}\n\t\t});\n\n\t\tthis.zoomOutButton!.show();\n\t}\n\n\tpublic _beforeChanged() {\n\t\tsuper._beforeChanged();\n\n\t\tif (this.isDirty(\"series\")) {\n\t\t\tconst series = this.get(\"series\");\n\t\t\tif (series) {\n\t\t\t\tseries.events.on(\"datavalidated\", (_ev) => {\n\t\t\t\t\tthis.handleData();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t}\n\n}"]}
@@ -277,10 +277,10 @@ var ResponsiveTheme = /** @class */ (function (_super) {
277
277
  rule.template = this.rule(rule.name, rule.tags);
278
278
  }
279
279
  rule._dp = new MultiDisposer([
280
- this._root._rootContainer.on("width", function (_width) { if (_this._isUsed()) {
280
+ this._root._rootContainer.onPrivate("width", function (_width) { if (_this._isUsed()) {
281
281
  _this._applyRule(rule);
282
282
  } }),
283
- this._root._rootContainer.on("height", function (_height) { if (_this._isUsed()) {
283
+ this._root._rootContainer.onPrivate("height", function (_height) { if (_this._isUsed()) {
284
284
  _this._applyRule(rule);
285
285
  } })
286
286
  ]);
@@ -318,8 +318,8 @@ var ResponsiveTheme = /** @class */ (function (_super) {
318
318
  configurable: true,
319
319
  writable: true,
320
320
  value: function (rule) {
321
- var w = this._root._rootContainer.get("width");
322
- var h = this._root._rootContainer.get("height");
321
+ var w = this._root._rootContainer.getPrivate("width");
322
+ var h = this._root._rootContainer.getPrivate("height");
323
323
  var relevant = rule.relevant.call(rule, w, h);
324
324
  var applied = rule.applied;
325
325
  if (relevant) {
@@ -1 +1 @@
1
- {"version":3,"file":"ResponsiveTheme.js","sourceRoot":"","sources":["../../../../src/.internal/themes/ResponsiveTheme.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AA4D7C;;;;;GAKG;AACH;IAAqC,mCAAK;IAA1C;QAAA,qEAosBC;QApkBA;;WAEG;QACH;;;;mBAA4C,EAAE;WAAC;;IAikBhD,CAAC;IAzrBA,8EAA8E;;;;;eAE9E,UAAgB,KAAa,EAAE,OAAe;YAC7C,OAAO,KAAK,IAAI,eAAe,CAAC,GAAG,CAAC;QACrC,CAAC;;;;;;eAED,UAAe,KAAa,EAAE,OAAe;YAC5C,OAAO,KAAK,IAAI,eAAe,CAAC,EAAE,CAAC;QACpC,CAAC;;;;;;eAED,UAAc,KAAa,EAAE,OAAe;YAC3C,OAAO,KAAK,IAAI,eAAe,CAAC,CAAC,CAAC;QACnC,CAAC;;;;;;eAED,UAAc,KAAa,EAAE,OAAe;YAC3C,OAAO,KAAK,IAAI,eAAe,CAAC,CAAC,CAAC;QACnC,CAAC;;;;;;eAED,UAAc,KAAa,EAAE,OAAe;YAC3C,OAAO,KAAK,IAAI,eAAe,CAAC,CAAC,CAAC;QACnC,CAAC;;;;;;eAED,UAAe,KAAa,EAAE,OAAe;YAC5C,OAAO,KAAK,IAAI,eAAe,CAAC,EAAE,CAAC;QACpC,CAAC;;;;;;eAED,UAAgB,KAAa,EAAE,OAAe;YAC7C,OAAO,KAAK,IAAI,eAAe,CAAC,GAAG,CAAC;QACrC,CAAC;;;;;;eAGD,UAAiB,MAAc,EAAE,MAAc;YAC9C,OAAO,MAAM,IAAI,eAAe,CAAC,GAAG,CAAC;QACtC,CAAC;;;;;;eAED,UAAgB,MAAc,EAAE,MAAc;YAC7C,OAAO,MAAM,IAAI,eAAe,CAAC,EAAE,CAAC;QACrC,CAAC;;;;;;eAED,UAAe,MAAc,EAAE,MAAc;YAC5C,OAAO,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC;QACpC,CAAC;;;;;;eAED,UAAe,MAAc,EAAE,MAAc;YAC5C,OAAO,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC;QACpC,CAAC;;;;;;eAED,UAAe,MAAc,EAAE,MAAc;YAC5C,OAAO,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC;QACpC,CAAC;;;;;;eAED,UAAgB,MAAc,EAAE,MAAc;YAC7C,OAAO,MAAM,IAAI,eAAe,CAAC,EAAE,CAAC;QACrC,CAAC;;;;;;eAED,UAAiB,MAAc,EAAE,MAAc;YAC9C,OAAO,MAAM,IAAI,eAAe,CAAC,GAAG,CAAC;QACtC,CAAC;;;;;;eAGD,UAAa,KAAa,EAAE,MAAc;YACzC,OAAO,CAAC,KAAK,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC;QAC1E,CAAC;;;;;;eAED,UAAY,KAAa,EAAE,MAAc;YACxC,OAAO,CAAC,KAAK,IAAI,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;;;;;;eAED,UAAW,KAAa,EAAE,MAAc;YACvC,OAAO,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QACtE,CAAC;;;;;;eAED,UAAW,KAAa,EAAE,MAAc;YACvC,OAAO,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QACtE,CAAC;;;;;;eAED,UAAW,KAAa,EAAE,MAAc;YACvC,OAAO,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QACtE,CAAC;;;;;;eAED,UAAY,KAAa,EAAE,MAAc;YACxC,OAAO,CAAC,KAAK,IAAI,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;;;;;;eAED,UAAa,KAAa,EAAE,MAAc;YACzC,OAAO,CAAC,KAAK,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC;QAC1E,CAAC;;;;;;eAGD,UAAgB,KAAa,EAAE,MAAc;YAC5C,OAAO,CAAC,KAAK,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC;QAC1E,CAAC;;;;;;eAED,UAAe,KAAa,EAAE,MAAc;YAC3C,OAAO,CAAC,KAAK,IAAI,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;;;;;;eAED,UAAc,KAAa,EAAE,MAAc;YAC1C,OAAO,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QACtE,CAAC;;;;;;eAED,UAAc,KAAa,EAAE,MAAc;YAC1C,OAAO,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QACtE,CAAC;;;;;;eAED,UAAc,KAAa,EAAE,MAAc;YAC1C,OAAO,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QACtE,CAAC;;;;;;eAED,UAAe,KAAa,EAAE,MAAc;YAC3C,OAAO,CAAC,KAAK,IAAI,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;;;;;;eAED,UAAgB,KAAa,EAAE,MAAc;YAC5C,OAAO,CAAC,KAAK,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC;QAC1E,CAAC;;IAOD;;OAEG;;;;;eACH,UAA2D,IAAU;YACpE,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAoB,CAAC;QAClD,CAAC;;IAED;;;;;;OAMG;;;;;eACH,UAAe,IAAqB;YAApC,iBAaC;YAZA,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAChC,IAAI,CAAC,QAAQ,GAAS,IAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;aACvD;YAED,IAAI,CAAC,GAAG,GAAG,IAAI,aAAa,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,MAAM,IAAO,IAAI,KAAI,CAAC,OAAO,EAAE,EAAE;oBAAE,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;iBAAE,CAAC,CAAC,CAAC;gBACrG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAC,OAAO,IAAO,IAAI,KAAI,CAAC,OAAO,EAAE,EAAE;oBAAE,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;iBAAE,CAAC,CAAC,CAAC;aACvG,CAAC,CAAC;YAEH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtB,OAAO,IAAI,CAAC;QACb,CAAC;;IAED;;;;OAIG;;;;;eACH,UAAkB,IAAqB;YACtC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;YAC1C,IAAI,IAAI,CAAC,GAAG,EAAE;gBACb,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;aACnB;QACF,CAAC;;;;;;eAED;YACC,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,CAAC;;;;;;eAED,UAAqB,IAAqB;YACzC,IAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACjD,IAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAU,CAAC,EAAU,CAAC,CAAC,CAAC;YAChE,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC7B,IAAI,QAAQ,EAAE;gBACb,IAAI,CAAC,OAAO,EAAE;oBACb,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;oBACpB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;wBACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBACpC;oBACD,IAAI,IAAI,CAAC,QAAQ,EAAE;wBAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACzB;iBACD;aACD;iBACI,IAAI,OAAO,EAAE;gBACjB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,IAAI,CAAC,QAAQ,EAAE;oBAClB,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;iBAC1B;gBACD,IAAI,IAAI,CAAC,QAAQ,EAAE;oBAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACzB;aACD;QACF,CAAC;;IAED;;OAEG;;;;;eACH;YAAA,iBAmfC;YAlfA,iBAAM,iBAAiB,WAAE,CAAC;YAE1B,IAAM,OAAO,GAAG,UAAC,IAAqB,IAAK,OAAA,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAlB,CAAkB,CAAC;YAE9D;;;;eAIG;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,eAAe,CAAC,QAAQ;gBAClC,QAAQ,EAAE;oBACT,WAAW,EAAE,CAAC;oBACd,YAAY,EAAE,CAAC;iBACf;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,eAAe,CAAC,SAAS;gBACnC,QAAQ,EAAE;oBACT,UAAU,EAAE,CAAC;oBACb,aAAa,EAAE,CAAC;iBAChB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,eAAe,CAAC,IAAI;gBAC9B,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,eAAe,CAAC,IAAI;gBAC9B,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,CAAC,UAAU,CAAC;gBAClB,QAAQ,EAAE,eAAe,CAAC,OAAO;gBACjC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,CAAC,YAAY,CAAC;gBACpB,QAAQ,EAAE,eAAe,CAAC,QAAQ;gBAClC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC;gBAC7B,QAAQ,EAAE,eAAe,CAAC,OAAO;gBACjC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC;gBAC3B,QAAQ,EAAE,eAAe,CAAC,OAAO;gBACjC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,QAAQ,CAAC;gBAChB,QAAQ,EAAE,eAAe,CAAC,OAAO;gBACjC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAGH;;;;eAIG;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,eAAe;gBACrB,QAAQ,EAAE,eAAe,CAAC,QAAQ;gBAClC,QAAQ,EAAE;oBACT,MAAM,EAAE,IAAI;iBACZ;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,eAAe;gBACrB,QAAQ,EAAE,eAAe,CAAC,OAAO;gBACjC,QAAQ,EAAE;oBACT,MAAM,EAAE,IAAI;iBACZ;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,oBAAoB;gBAC1B,QAAQ,EAAE,eAAe,CAAC,QAAQ;gBAClC,QAAQ,EAAE;oBACT,WAAW,EAAE,GAAG;oBAChB,WAAW,EAAE,GAAG;iBAChB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,CAAC,GAAG,CAAC;gBACX,QAAQ,EAAE,eAAe,CAAC,OAAO;gBACjC,QAAQ,EAAE;oBACT,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,GAAG;iBAChB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,CAAC,GAAG,CAAC;gBACX,QAAQ,EAAE,eAAe,CAAC,SAAS;gBACnC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,CAAC,GAAG,CAAC;gBACX,QAAQ,EAAE,eAAe,CAAC,QAAQ;gBAClC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,CAAC,GAAG,CAAC;gBACX,QAAQ,EAAE,eAAe,CAAC,QAAQ;gBAClC,QAAQ,EAAE;oBACT,MAAM,EAAE,IAAI;oBACZ,WAAW,EAAE,GAAG;oBAChB,WAAW,EAAE,GAAG;iBAChB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,CAAC,GAAG,CAAC;gBACX,QAAQ,EAAE,eAAe,CAAC,QAAQ;gBAClC,QAAQ,EAAE;oBACT,MAAM,EAAE,IAAI;oBACZ,WAAW,EAAE,GAAG;oBAChB,WAAW,EAAE,GAAG;iBAChB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,eAAe,CAAC,QAAQ;gBAClC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAGH;;;;eAIG;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,CAAC,QAAQ,CAAC;gBAChB,QAAQ,EAAE,eAAe,CAAC,OAAO;gBACjC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,CAAC,UAAU,CAAC;gBAClB,QAAQ,EAAE,eAAe,CAAC,MAAM;gBAChC,QAAQ,EAAE;oBACT,MAAM,EAAE,IAAI;iBACZ;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,eAAe,CAAC,MAAM;gBAChC,QAAQ,EAAE;oBACT,MAAM,EAAE,IAAI;iBACZ;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,CAAC,UAAU,CAAC;gBAClB,QAAQ,EAAE,eAAe,CAAC,OAAO;gBACjC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,CAAC,UAAU,CAAC;gBAClB,QAAQ,EAAE,eAAe,CAAC,OAAO;gBACjC,QAAQ,EAAE;oBACT,MAAM,EAAE,IAAI;iBACZ;aACD,CAAC,CAAC;YAGH;;;;eAIG;YACH,OAAO,CAAC;gBACP,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,eAAe,CAAC,OAAO;gBACjC,QAAQ,EAAE;oBACT,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;iBACnB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,eAAe,CAAC,MAAM;gBAChC,QAAQ,EAAE;oBACT,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;iBACnB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,CAAC,KAAK,CAAC;gBACb,QAAQ,EAAE,eAAe,CAAC,OAAO;gBACjC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,CAAC,KAAK,CAAC;gBACb,QAAQ,EAAE,eAAe,CAAC,MAAM;gBAChC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,CAAC,KAAK,CAAC;gBACb,QAAQ,EAAE,eAAe,CAAC,OAAO;gBACjC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,CAAC,KAAK,CAAC;gBACb,QAAQ,EAAE,eAAe,CAAC,MAAM;gBAChC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAGH;;;;eAIG;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,cAAc;gBACpB,QAAQ,EAAE,eAAe,CAAC,MAAM;gBAChC,QAAQ,EAAE;oBACT,WAAW,EAAE,KAAK;iBAClB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;gBAC5B,QAAQ,EAAE,eAAe,CAAC,MAAM;gBAChC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;gBAC5B,QAAQ,EAAE,eAAe,CAAC,MAAM;gBAChC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;gBAC9B,QAAQ,EAAE,eAAe,CAAC,OAAO;gBACjC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;gBAC9B,QAAQ,EAAE,eAAe,CAAC,OAAO;gBACjC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAGH;;;;eAIG;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,eAAe;gBACrB,QAAQ,EAAE,eAAe,CAAC,MAAM;gBAChC,QAAQ,EAAE;oBACT,WAAW,EAAE,KAAK;iBAClB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;gBAC7B,QAAQ,EAAE,eAAe,CAAC,MAAM;gBAChC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;gBAC7B,QAAQ,EAAE,eAAe,CAAC,MAAM;gBAChC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;gBAC/B,QAAQ,EAAE,eAAe,CAAC,OAAO;gBACjC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;gBAC/B,QAAQ,EAAE,eAAe,CAAC,OAAO;gBACjC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAGH;;;;eAIG;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,wBAAwB;gBAC9B,QAAQ,EAAE,eAAe,CAAC,MAAM;gBAChC,QAAQ,EAAE;oBACT,WAAW,EAAE,KAAK;iBAClB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;gBAC/B,QAAQ,EAAE,eAAe,CAAC,MAAM;gBAChC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;gBAC/B,QAAQ,EAAE,eAAe,CAAC,MAAM;gBAChC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC;gBACjC,QAAQ,EAAE,eAAe,CAAC,OAAO;gBACjC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC;gBACjC,QAAQ,EAAE,eAAe,CAAC,OAAO;gBACjC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAGH;;;;eAIG;YAEH,qBAAqB;YAErB;;;;eAIG;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC;gBAC5B,QAAQ,EAAE,eAAe,CAAC,MAAM;gBAChC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;gBAC1B,QAAQ,EAAE,eAAe,CAAC,OAAO;gBACjC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,eAAe,CAAC,OAAO;gBACjC,QAAQ,EAAE;oBACT,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;iBACnB;aACD,CAAC,CAAC;YAGH;;;;eAIG;YAEH,OAAO,CAAC;gBACP,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC;gBAC3B,QAAQ,EAAE,eAAe,CAAC,OAAO;gBACjC,QAAQ,EAAE;oBACT,WAAW,EAAE,IAAI;iBACjB;aACD,CAAC,CAAC;QAEJ,CAAC;;IAjsBD,0BAA0B;IACnB;;;;eAAM,GAAG;OAAC;IACV;;;;eAAK,GAAG;OAAC;IACT;;;;eAAI,GAAG;OAAC;IACR;;;;eAAI,GAAG;OAAC;IACR;;;;eAAI,GAAG;OAAC;IACR;;;;eAAK,GAAG;OAAC;IACT;;;;eAAM,IAAI;OAAC;IA2rBnB,sBAAC;CAAA,AApsBD,CAAqC,KAAK,GAosBzC;SApsBY,eAAe","sourcesContent":["import { Theme } from \"../core/Theme\";\nimport type { Root } from \"../core/Root\";\nimport { MultiDisposer } from \"../core/util/Disposer\";\nimport { p100, percent } from \"../core/util/Percent\";\nimport type { Template } from \"../core/util/Template\";\nimport * as $array from \"../core/util/Array\";\n\n/**\n * An interface describing resonsive rule.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/responsive/} for more info\n * @important\n */\nexport interface IResponsiveRule {\n\n\t/**\n\t * A class name of the elements to apply rule to.\n\t */\n\tname?: string;\n\n\t/**\n\t * A class group of the elements to apply rule to.\n\t */\n\ttags?: string | string[];\n\n\t/**\n\t * Settings to apply when activating the responsive rule.\n\t */\n\tsettings?: any;\n\n\t/**\n\t * A callback function which should check and return `true` if rule is\n\t * applicable for current situation.\n\t */\n\trelevant: (width: number, height: number) => boolean;\n\n\t/**\n\t * A custom callback function which is called when applying the rule.\n\t */\n\tapplying?: () => void;\n\n\t/**\n\t * A custom callback function which is called when removing the rule.\n\t */\n\tremoving?: () => void;\n\n\t/**\n\t * Indicates if rule is currently applied.\n\t * @readonly\n\t */\n\tapplied?: boolean;\n\n\t/**\n\t * Reference to [[Template]] object associated with the rule.\n\t * @readonly\n\t */\n\ttemplate?: Template<any>;\n\n\t/**\n\t * @ignore\n\t */\n\t_dp?: MultiDisposer;\n\n}\n\n/**\n * A configurable theme that dynamically adapts chart settings for best fit\n * in available space.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/responsive/} for more info\n */\nexport class ResponsiveTheme extends Theme {\n\n\t// Named pixel breakpoints\n\tstatic XXS = 100;\n\tstatic XS = 200;\n\tstatic S = 300;\n\tstatic M = 400;\n\tstatic L = 600;\n\tstatic XL = 800;\n\tstatic XXL = 1000;\n\n\t// Breakpoint functions (for use in `relevant` clause of the responsive rules)\n\n\tstatic widthXXS(width: number, _height: number): boolean {\n\t\treturn width <= ResponsiveTheme.XXS;\n\t}\n\n\tstatic widthXS(width: number, _height: number): boolean {\n\t\treturn width <= ResponsiveTheme.XS;\n\t}\n\n\tstatic widthS(width: number, _height: number): boolean {\n\t\treturn width <= ResponsiveTheme.S;\n\t}\n\n\tstatic widthM(width: number, _height: number): boolean {\n\t\treturn width <= ResponsiveTheme.M;\n\t}\n\n\tstatic widthL(width: number, _height: number): boolean {\n\t\treturn width <= ResponsiveTheme.L;\n\t}\n\n\tstatic widthXL(width: number, _height: number): boolean {\n\t\treturn width <= ResponsiveTheme.XL;\n\t}\n\n\tstatic widthXXL(width: number, _height: number): boolean {\n\t\treturn width <= ResponsiveTheme.XXL;\n\t}\n\n\n\tstatic heightXXS(_width: number, height: number): boolean {\n\t\treturn height <= ResponsiveTheme.XXS;\n\t}\n\n\tstatic heightXS(_width: number, height: number): boolean {\n\t\treturn height <= ResponsiveTheme.XS;\n\t}\n\n\tstatic heightS(_width: number, height: number): boolean {\n\t\treturn height <= ResponsiveTheme.S;\n\t}\n\n\tstatic heightM(_width: number, height: number): boolean {\n\t\treturn height <= ResponsiveTheme.M;\n\t}\n\n\tstatic heightL(_width: number, height: number): boolean {\n\t\treturn height <= ResponsiveTheme.L;\n\t}\n\n\tstatic heightXL(_width: number, height: number): boolean {\n\t\treturn height <= ResponsiveTheme.XL;\n\t}\n\n\tstatic heightXXL(_width: number, height: number): boolean {\n\t\treturn height <= ResponsiveTheme.XXL;\n\t}\n\n\n\tstatic isXXS(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.XXS) && (height <= ResponsiveTheme.XXS);\n\t}\n\n\tstatic isXS(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.XS) && (height <= ResponsiveTheme.XS);\n\t}\n\n\tstatic isS(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.S) && (height <= ResponsiveTheme.S);\n\t}\n\n\tstatic isM(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.M) && (height <= ResponsiveTheme.M);\n\t}\n\n\tstatic isL(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.L) && (height <= ResponsiveTheme.L);\n\t}\n\n\tstatic isXL(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.XL) && (height <= ResponsiveTheme.XL);\n\t}\n\n\tstatic isXXL(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.XXL) && (height <= ResponsiveTheme.XXL);\n\t}\n\n\n\tstatic maybeXXS(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.XXS) || (height <= ResponsiveTheme.XXS);\n\t}\n\n\tstatic maybeXS(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.XS) || (height <= ResponsiveTheme.XS);\n\t}\n\n\tstatic maybeS(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.S) || (height <= ResponsiveTheme.S);\n\t}\n\n\tstatic maybeM(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.M) || (height <= ResponsiveTheme.M);\n\t}\n\n\tstatic maybeL(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.L) || (height <= ResponsiveTheme.L);\n\t}\n\n\tstatic maybeXL(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.XL) || (height <= ResponsiveTheme.XL);\n\t}\n\n\tstatic maybeXXL(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.XXL) || (height <= ResponsiveTheme.XXL);\n\t}\n\n\t/**\n\t * Currently added rules.\n\t */\n\tpublic responsiveRules: IResponsiveRule[] = [];\n\n\t/**\n\t * Instantiates the theme without adding default respomsive rules.\n\t */\n\tstatic newEmpty<T extends typeof ResponsiveTheme>(this: T, root: Root): InstanceType<T> {\n\t\treturn (new this(root, true)) as InstanceType<T>;\n\t}\n\n\t/**\n\t * Adds a responsive rule as well as retuns it.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/responsive/} for more info\n\t * @param rule Responsive rule\n\t * @return Responsive rule\n\t */\n\tpublic addRule(rule: IResponsiveRule): IResponsiveRule {\n\t\tif (rule.name && !rule.template) {\n\t\t\trule.template = (<any>this).rule(rule.name, rule.tags);\n\t\t}\n\n\t\trule._dp = new MultiDisposer([\n\t\t\tthis._root._rootContainer.on(\"width\", (_width) => { if (this._isUsed()) { this._applyRule(rule); } }),\n\t\t\tthis._root._rootContainer.on(\"height\", (_height) => { if (this._isUsed()) { this._applyRule(rule); } })\n\t\t]);\n\n\t\tthis.responsiveRules.push(rule);\n\t\tthis._applyRule(rule);\n\t\treturn rule;\n\t}\n\n\t/**\n\t * Removes the responsive rule.\n\t *\n\t * @param rule Responsive rule\n\t */\n\tpublic removeRule(rule: IResponsiveRule): void {\n\t\t$array.remove(this.responsiveRules, rule);\n\t\tif (rule._dp) {\n\t\t\trule._dp.dispose();\n\t\t}\n\t}\n\n\tprotected _isUsed(): boolean {\n\t\treturn this._root._rootContainer.get(\"themes\")!.indexOf(this) !== -1;\n\t}\n\n\tprotected _applyRule(rule: IResponsiveRule): void {\n\t\tconst w = this._root._rootContainer.get(\"width\");\n\t\tconst h = this._root._rootContainer.get(\"height\");\n\t\tconst relevant = rule.relevant.call(rule, <number>w, <number>h);\n\t\tconst applied = rule.applied;\n\t\tif (relevant) {\n\t\t\tif (!applied) {\n\t\t\t\trule.applied = true;\n\t\t\t\tif (rule.template && rule.settings) {\n\t\t\t\t\trule.template.setAll(rule.settings);\n\t\t\t\t}\n\t\t\t\tif (rule.applying) {\n\t\t\t\t\trule.applying.call(rule);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse if (applied) {\n\t\t\trule.applied = false;\n\t\t\tif (rule.template) {\n\t\t\t\trule.template.removeAll();\n\t\t\t}\n\t\t\tif (rule.removing) {\n\t\t\t\trule.removing.call(rule);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Adds default rules for various chart types and most standard scenarios.\n\t */\n\tprotected setupDefaultRules(): void {\n\t\tsuper.setupDefaultRules();\n\n\t\tconst addRule = (rule: IResponsiveRule) => this.addRule(rule);\n\n\t\t/**\n\t\t * ========================================================================\n\t\t * Universal\n\t\t * ========================================================================\n\t\t */\n\n\t\taddRule({\n\t\t\tname: \"Chart\",\n\t\t\trelevant: ResponsiveTheme.widthXXS,\n\t\t\tsettings: {\n\t\t\t\tpaddingLeft: 0,\n\t\t\t\tpaddingRight: 0\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Chart\",\n\t\t\trelevant: ResponsiveTheme.heightXXS,\n\t\t\tsettings: {\n\t\t\t\tpaddingTop: 0,\n\t\t\t\tpaddingBottom: 0\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Bullet\",\n\t\t\trelevant: ResponsiveTheme.isXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Legend\",\n\t\t\trelevant: ResponsiveTheme.isXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"HeatLegend\",\n\t\t\ttags: [\"vertical\"],\n\t\t\trelevant: ResponsiveTheme.widthXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"HeatLegend\",\n\t\t\ttags: [\"horizontal\"],\n\t\t\trelevant: ResponsiveTheme.heightXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Label\",\n\t\t\ttags: [\"heatlegend\", \"start\"],\n\t\t\trelevant: ResponsiveTheme.maybeXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Label\",\n\t\t\ttags: [\"heatlegend\", \"end\"],\n\t\t\trelevant: ResponsiveTheme.maybeXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Button\",\n\t\t\ttags: [\"resize\"],\n\t\t\trelevant: ResponsiveTheme.maybeXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\n\t\t/**\n\t\t * ========================================================================\n\t\t * XY\n\t\t * ========================================================================\n\t\t */\n\n\t\taddRule({\n\t\t\tname: \"AxisRendererX\",\n\t\t\trelevant: ResponsiveTheme.heightXS,\n\t\t\tsettings: {\n\t\t\t\tinside: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"AxisRendererY\",\n\t\t\trelevant: ResponsiveTheme.widthXS,\n\t\t\tsettings: {\n\t\t\t\tinside: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"AxisRendererXLabel\",\n\t\t\trelevant: ResponsiveTheme.heightXS,\n\t\t\tsettings: {\n\t\t\t\tminPosition: 0.1,\n\t\t\t\tmaxPosition: 0.9\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"AxisLabel\",\n\t\t\ttags: [\"y\"],\n\t\t\trelevant: ResponsiveTheme.widthXS,\n\t\t\tsettings: {\n\t\t\t\tcenterY: p100,\n\t\t\t\tmaxPosition: 0.9\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"AxisLabel\",\n\t\t\ttags: [\"x\"],\n\t\t\trelevant: ResponsiveTheme.heightXXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"AxisLabel\",\n\t\t\ttags: [\"y\"],\n\t\t\trelevant: ResponsiveTheme.widthXXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"AxisTick\",\n\t\t\ttags: [\"x\"],\n\t\t\trelevant: ResponsiveTheme.heightXS,\n\t\t\tsettings: {\n\t\t\t\tinside: true,\n\t\t\t\tminPosition: 0.1,\n\t\t\t\tmaxPosition: 0.9\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"AxisTick\",\n\t\t\ttags: [\"y\"],\n\t\t\trelevant: ResponsiveTheme.widthXXS,\n\t\t\tsettings: {\n\t\t\t\tinside: true,\n\t\t\t\tminPosition: 0.1,\n\t\t\t\tmaxPosition: 0.9\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Grid\",\n\t\t\trelevant: ResponsiveTheme.maybeXXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\n\t\t/**\n\t\t * ========================================================================\n\t\t * Radar\n\t\t * ========================================================================\n\t\t */\n\n\t\taddRule({\n\t\t\tname: \"RadialLabel\",\n\t\t\ttags: [\"radial\"],\n\t\t\trelevant: ResponsiveTheme.maybeXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"RadialLabel\",\n\t\t\ttags: [\"circular\"],\n\t\t\trelevant: ResponsiveTheme.maybeS,\n\t\t\tsettings: {\n\t\t\t\tinside: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"AxisTick\",\n\t\t\trelevant: ResponsiveTheme.maybeS,\n\t\t\tsettings: {\n\t\t\t\tinside: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"RadialLabel\",\n\t\t\ttags: [\"circular\"],\n\t\t\trelevant: ResponsiveTheme.maybeXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"AxisTick\",\n\t\t\ttags: [\"circular\"],\n\t\t\trelevant: ResponsiveTheme.maybeXS,\n\t\t\tsettings: {\n\t\t\t\tinside: true\n\t\t\t}\n\t\t});\n\n\n\t\t/**\n\t\t * ========================================================================\n\t\t * Pie\n\t\t * ========================================================================\n\t\t */\n\t\taddRule({\n\t\t\tname: \"PieChart\",\n\t\t\trelevant: ResponsiveTheme.maybeXS,\n\t\t\tsettings: {\n\t\t\t\tradius: percent(99)\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"PieChart\",\n\t\t\trelevant: ResponsiveTheme.widthM,\n\t\t\tsettings: {\n\t\t\t\tradius: percent(99)\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"RadialLabel\",\n\t\t\ttags: [\"pie\"],\n\t\t\trelevant: ResponsiveTheme.maybeXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"RadialLabel\",\n\t\t\ttags: [\"pie\"],\n\t\t\trelevant: ResponsiveTheme.widthM,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Tick\",\n\t\t\ttags: [\"pie\"],\n\t\t\trelevant: ResponsiveTheme.maybeXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Tick\",\n\t\t\ttags: [\"pie\"],\n\t\t\trelevant: ResponsiveTheme.widthM,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\n\t\t/**\n\t\t * ========================================================================\n\t\t * Funnel\n\t\t * ========================================================================\n\t\t */\n\n\t\taddRule({\n\t\t\tname: \"FunnelSeries\",\n\t\t\trelevant: ResponsiveTheme.widthM,\n\t\t\tsettings: {\n\t\t\t\talignLabels: false\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Label\",\n\t\t\ttags: [\"funnel\", \"vertical\"],\n\t\t\trelevant: ResponsiveTheme.widthL,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Tick\",\n\t\t\ttags: [\"funnel\", \"vertical\"],\n\t\t\trelevant: ResponsiveTheme.widthL,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Label\",\n\t\t\ttags: [\"funnel\", \"horizontal\"],\n\t\t\trelevant: ResponsiveTheme.heightS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Tick\",\n\t\t\ttags: [\"funnel\", \"horizontal\"],\n\t\t\trelevant: ResponsiveTheme.heightS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\n\t\t/**\n\t\t * ========================================================================\n\t\t * Pyramid\n\t\t * ========================================================================\n\t\t */\n\n\t\taddRule({\n\t\t\tname: \"PyramidSeries\",\n\t\t\trelevant: ResponsiveTheme.widthM,\n\t\t\tsettings: {\n\t\t\t\talignLabels: false\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Label\",\n\t\t\ttags: [\"pyramid\", \"vertical\"],\n\t\t\trelevant: ResponsiveTheme.widthL,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Tick\",\n\t\t\ttags: [\"pyramid\", \"vertical\"],\n\t\t\trelevant: ResponsiveTheme.widthL,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Label\",\n\t\t\ttags: [\"pyramid\", \"horizontal\"],\n\t\t\trelevant: ResponsiveTheme.heightS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Tick\",\n\t\t\ttags: [\"pyramid\", \"horizontal\"],\n\t\t\trelevant: ResponsiveTheme.heightS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\n\t\t/**\n\t\t * ========================================================================\n\t\t * Pictorial\n\t\t * ========================================================================\n\t\t */\n\n\t\taddRule({\n\t\t\tname: \"PictorialStackedSeries\",\n\t\t\trelevant: ResponsiveTheme.widthM,\n\t\t\tsettings: {\n\t\t\t\talignLabels: false\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Label\",\n\t\t\ttags: [\"pictorial\", \"vertical\"],\n\t\t\trelevant: ResponsiveTheme.widthL,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Tick\",\n\t\t\ttags: [\"pictorial\", \"vertical\"],\n\t\t\trelevant: ResponsiveTheme.widthL,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Label\",\n\t\t\ttags: [\"pictorial\", \"horizontal\"],\n\t\t\trelevant: ResponsiveTheme.heightS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Tick\",\n\t\t\ttags: [\"pictorial\", \"horizontal\"],\n\t\t\trelevant: ResponsiveTheme.heightS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\n\t\t/**\n\t\t * ========================================================================\n\t\t * Map\n\t\t * ========================================================================\n\t\t */\n\n\t\t// Nothing to do here\n\n\t\t/**\n\t\t * ========================================================================\n\t\t * Flow (Sankey+Chord)\n\t\t * ========================================================================\n\t\t */\n\n\t\taddRule({\n\t\t\tname: \"Label\",\n\t\t\ttags: [\"flow\", \"horizontal\"],\n\t\t\trelevant: ResponsiveTheme.widthS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Label\",\n\t\t\ttags: [\"flow\", \"vertical\"],\n\t\t\trelevant: ResponsiveTheme.heightS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Chord\",\n\t\t\trelevant: ResponsiveTheme.maybeXS,\n\t\t\tsettings: {\n\t\t\t\tradius: percent(99)\n\t\t\t}\n\t\t});\n\n\n\t\t/**\n\t\t * ========================================================================\n\t\t * Hierarchy (Treemap, Partition, Sunburst, Pack, ForceDirected)\n\t\t * ========================================================================\n\t\t */\n\n\t\taddRule({\n\t\t\tname: \"Label\",\n\t\t\ttags: [\"hierarchy\", \"node\"],\n\t\t\trelevant: ResponsiveTheme.maybeXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t}\n}\n"]}
1
+ {"version":3,"file":"ResponsiveTheme.js","sourceRoot":"","sources":["../../../../src/.internal/themes/ResponsiveTheme.ts"],"names":[],"mappings":"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","sourcesContent":["import { Theme } from \"../core/Theme\";\nimport type { Root } from \"../core/Root\";\nimport { MultiDisposer } from \"../core/util/Disposer\";\nimport { p100, percent } from \"../core/util/Percent\";\nimport type { Template } from \"../core/util/Template\";\nimport * as $array from \"../core/util/Array\";\n\n/**\n * An interface describing resonsive rule.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/responsive/} for more info\n * @important\n */\nexport interface IResponsiveRule {\n\n\t/**\n\t * A class name of the elements to apply rule to.\n\t */\n\tname?: string;\n\n\t/**\n\t * A class group of the elements to apply rule to.\n\t */\n\ttags?: string | string[];\n\n\t/**\n\t * Settings to apply when activating the responsive rule.\n\t */\n\tsettings?: any;\n\n\t/**\n\t * A callback function which should check and return `true` if rule is\n\t * applicable for current situation.\n\t */\n\trelevant: (width: number, height: number) => boolean;\n\n\t/**\n\t * A custom callback function which is called when applying the rule.\n\t */\n\tapplying?: () => void;\n\n\t/**\n\t * A custom callback function which is called when removing the rule.\n\t */\n\tremoving?: () => void;\n\n\t/**\n\t * Indicates if rule is currently applied.\n\t * @readonly\n\t */\n\tapplied?: boolean;\n\n\t/**\n\t * Reference to [[Template]] object associated with the rule.\n\t * @readonly\n\t */\n\ttemplate?: Template<any>;\n\n\t/**\n\t * @ignore\n\t */\n\t_dp?: MultiDisposer;\n\n}\n\n/**\n * A configurable theme that dynamically adapts chart settings for best fit\n * in available space.\n *\n * @see {@link https://www.amcharts.com/docs/v5/concepts/responsive/} for more info\n */\nexport class ResponsiveTheme extends Theme {\n\n\t// Named pixel breakpoints\n\tstatic XXS = 100;\n\tstatic XS = 200;\n\tstatic S = 300;\n\tstatic M = 400;\n\tstatic L = 600;\n\tstatic XL = 800;\n\tstatic XXL = 1000;\n\n\t// Breakpoint functions (for use in `relevant` clause of the responsive rules)\n\n\tstatic widthXXS(width: number, _height: number): boolean {\n\t\treturn width <= ResponsiveTheme.XXS;\n\t}\n\n\tstatic widthXS(width: number, _height: number): boolean {\n\t\treturn width <= ResponsiveTheme.XS;\n\t}\n\n\tstatic widthS(width: number, _height: number): boolean {\n\t\treturn width <= ResponsiveTheme.S;\n\t}\n\n\tstatic widthM(width: number, _height: number): boolean {\n\t\treturn width <= ResponsiveTheme.M;\n\t}\n\n\tstatic widthL(width: number, _height: number): boolean {\n\t\treturn width <= ResponsiveTheme.L;\n\t}\n\n\tstatic widthXL(width: number, _height: number): boolean {\n\t\treturn width <= ResponsiveTheme.XL;\n\t}\n\n\tstatic widthXXL(width: number, _height: number): boolean {\n\t\treturn width <= ResponsiveTheme.XXL;\n\t}\n\n\n\tstatic heightXXS(_width: number, height: number): boolean {\n\t\treturn height <= ResponsiveTheme.XXS;\n\t}\n\n\tstatic heightXS(_width: number, height: number): boolean {\n\t\treturn height <= ResponsiveTheme.XS;\n\t}\n\n\tstatic heightS(_width: number, height: number): boolean {\n\t\treturn height <= ResponsiveTheme.S;\n\t}\n\n\tstatic heightM(_width: number, height: number): boolean {\n\t\treturn height <= ResponsiveTheme.M;\n\t}\n\n\tstatic heightL(_width: number, height: number): boolean {\n\t\treturn height <= ResponsiveTheme.L;\n\t}\n\n\tstatic heightXL(_width: number, height: number): boolean {\n\t\treturn height <= ResponsiveTheme.XL;\n\t}\n\n\tstatic heightXXL(_width: number, height: number): boolean {\n\t\treturn height <= ResponsiveTheme.XXL;\n\t}\n\n\n\tstatic isXXS(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.XXS) && (height <= ResponsiveTheme.XXS);\n\t}\n\n\tstatic isXS(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.XS) && (height <= ResponsiveTheme.XS);\n\t}\n\n\tstatic isS(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.S) && (height <= ResponsiveTheme.S);\n\t}\n\n\tstatic isM(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.M) && (height <= ResponsiveTheme.M);\n\t}\n\n\tstatic isL(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.L) && (height <= ResponsiveTheme.L);\n\t}\n\n\tstatic isXL(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.XL) && (height <= ResponsiveTheme.XL);\n\t}\n\n\tstatic isXXL(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.XXL) && (height <= ResponsiveTheme.XXL);\n\t}\n\n\n\tstatic maybeXXS(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.XXS) || (height <= ResponsiveTheme.XXS);\n\t}\n\n\tstatic maybeXS(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.XS) || (height <= ResponsiveTheme.XS);\n\t}\n\n\tstatic maybeS(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.S) || (height <= ResponsiveTheme.S);\n\t}\n\n\tstatic maybeM(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.M) || (height <= ResponsiveTheme.M);\n\t}\n\n\tstatic maybeL(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.L) || (height <= ResponsiveTheme.L);\n\t}\n\n\tstatic maybeXL(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.XL) || (height <= ResponsiveTheme.XL);\n\t}\n\n\tstatic maybeXXL(width: number, height: number): boolean {\n\t\treturn (width <= ResponsiveTheme.XXL) || (height <= ResponsiveTheme.XXL);\n\t}\n\n\t/**\n\t * Currently added rules.\n\t */\n\tpublic responsiveRules: IResponsiveRule[] = [];\n\n\t/**\n\t * Instantiates the theme without adding default respomsive rules.\n\t */\n\tstatic newEmpty<T extends typeof ResponsiveTheme>(this: T, root: Root): InstanceType<T> {\n\t\treturn (new this(root, true)) as InstanceType<T>;\n\t}\n\n\t/**\n\t * Adds a responsive rule as well as retuns it.\n\t *\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/responsive/} for more info\n\t * @param rule Responsive rule\n\t * @return Responsive rule\n\t */\n\tpublic addRule(rule: IResponsiveRule): IResponsiveRule {\n\t\tif (rule.name && !rule.template) {\n\t\t\trule.template = (<any>this).rule(rule.name, rule.tags);\n\t\t}\n\n\t\trule._dp = new MultiDisposer([\n\t\t\tthis._root._rootContainer.onPrivate(\"width\", (_width) => { if (this._isUsed()) { this._applyRule(rule); } }),\n\t\t\tthis._root._rootContainer.onPrivate(\"height\", (_height) => { if (this._isUsed()) { this._applyRule(rule); } })\n\t\t]);\n\n\t\tthis.responsiveRules.push(rule);\n\t\tthis._applyRule(rule);\n\t\treturn rule;\n\t}\n\n\t/**\n\t * Removes the responsive rule.\n\t *\n\t * @param rule Responsive rule\n\t */\n\tpublic removeRule(rule: IResponsiveRule): void {\n\t\t$array.remove(this.responsiveRules, rule);\n\t\tif (rule._dp) {\n\t\t\trule._dp.dispose();\n\t\t}\n\t}\n\n\tprotected _isUsed(): boolean {\n\t\treturn this._root._rootContainer.get(\"themes\")!.indexOf(this) !== -1;\n\t}\n\n\tprotected _applyRule(rule: IResponsiveRule): void {\n\t\tconst w = this._root._rootContainer.getPrivate(\"width\");\n\t\tconst h = this._root._rootContainer.getPrivate(\"height\");\n\t\tconst relevant = rule.relevant.call(rule, <number>w, <number>h);\n\t\tconst applied = rule.applied;\n\t\tif (relevant) {\n\t\t\tif (!applied) {\n\t\t\t\trule.applied = true;\n\t\t\t\tif (rule.template && rule.settings) {\n\t\t\t\t\trule.template.setAll(rule.settings);\n\t\t\t\t}\n\t\t\t\tif (rule.applying) {\n\t\t\t\t\trule.applying.call(rule);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse if (applied) {\n\t\t\trule.applied = false;\n\t\t\tif (rule.template) {\n\t\t\t\trule.template.removeAll();\n\t\t\t}\n\t\t\tif (rule.removing) {\n\t\t\t\trule.removing.call(rule);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Adds default rules for various chart types and most standard scenarios.\n\t */\n\tprotected setupDefaultRules(): void {\n\t\tsuper.setupDefaultRules();\n\n\t\tconst addRule = (rule: IResponsiveRule) => this.addRule(rule);\n\n\t\t/**\n\t\t * ========================================================================\n\t\t * Universal\n\t\t * ========================================================================\n\t\t */\n\n\t\taddRule({\n\t\t\tname: \"Chart\",\n\t\t\trelevant: ResponsiveTheme.widthXXS,\n\t\t\tsettings: {\n\t\t\t\tpaddingLeft: 0,\n\t\t\t\tpaddingRight: 0\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Chart\",\n\t\t\trelevant: ResponsiveTheme.heightXXS,\n\t\t\tsettings: {\n\t\t\t\tpaddingTop: 0,\n\t\t\t\tpaddingBottom: 0\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Bullet\",\n\t\t\trelevant: ResponsiveTheme.isXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Legend\",\n\t\t\trelevant: ResponsiveTheme.isXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"HeatLegend\",\n\t\t\ttags: [\"vertical\"],\n\t\t\trelevant: ResponsiveTheme.widthXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"HeatLegend\",\n\t\t\ttags: [\"horizontal\"],\n\t\t\trelevant: ResponsiveTheme.heightXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Label\",\n\t\t\ttags: [\"heatlegend\", \"start\"],\n\t\t\trelevant: ResponsiveTheme.maybeXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Label\",\n\t\t\ttags: [\"heatlegend\", \"end\"],\n\t\t\trelevant: ResponsiveTheme.maybeXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Button\",\n\t\t\ttags: [\"resize\"],\n\t\t\trelevant: ResponsiveTheme.maybeXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\n\t\t/**\n\t\t * ========================================================================\n\t\t * XY\n\t\t * ========================================================================\n\t\t */\n\n\t\taddRule({\n\t\t\tname: \"AxisRendererX\",\n\t\t\trelevant: ResponsiveTheme.heightXS,\n\t\t\tsettings: {\n\t\t\t\tinside: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"AxisRendererY\",\n\t\t\trelevant: ResponsiveTheme.widthXS,\n\t\t\tsettings: {\n\t\t\t\tinside: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"AxisRendererXLabel\",\n\t\t\trelevant: ResponsiveTheme.heightXS,\n\t\t\tsettings: {\n\t\t\t\tminPosition: 0.1,\n\t\t\t\tmaxPosition: 0.9\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"AxisLabel\",\n\t\t\ttags: [\"y\"],\n\t\t\trelevant: ResponsiveTheme.widthXS,\n\t\t\tsettings: {\n\t\t\t\tcenterY: p100,\n\t\t\t\tmaxPosition: 0.9\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"AxisLabel\",\n\t\t\ttags: [\"x\"],\n\t\t\trelevant: ResponsiveTheme.heightXXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"AxisLabel\",\n\t\t\ttags: [\"y\"],\n\t\t\trelevant: ResponsiveTheme.widthXXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"AxisTick\",\n\t\t\ttags: [\"x\"],\n\t\t\trelevant: ResponsiveTheme.heightXS,\n\t\t\tsettings: {\n\t\t\t\tinside: true,\n\t\t\t\tminPosition: 0.1,\n\t\t\t\tmaxPosition: 0.9\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"AxisTick\",\n\t\t\ttags: [\"y\"],\n\t\t\trelevant: ResponsiveTheme.widthXXS,\n\t\t\tsettings: {\n\t\t\t\tinside: true,\n\t\t\t\tminPosition: 0.1,\n\t\t\t\tmaxPosition: 0.9\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Grid\",\n\t\t\trelevant: ResponsiveTheme.maybeXXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\n\t\t/**\n\t\t * ========================================================================\n\t\t * Radar\n\t\t * ========================================================================\n\t\t */\n\n\t\taddRule({\n\t\t\tname: \"RadialLabel\",\n\t\t\ttags: [\"radial\"],\n\t\t\trelevant: ResponsiveTheme.maybeXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"RadialLabel\",\n\t\t\ttags: [\"circular\"],\n\t\t\trelevant: ResponsiveTheme.maybeS,\n\t\t\tsettings: {\n\t\t\t\tinside: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"AxisTick\",\n\t\t\trelevant: ResponsiveTheme.maybeS,\n\t\t\tsettings: {\n\t\t\t\tinside: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"RadialLabel\",\n\t\t\ttags: [\"circular\"],\n\t\t\trelevant: ResponsiveTheme.maybeXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"AxisTick\",\n\t\t\ttags: [\"circular\"],\n\t\t\trelevant: ResponsiveTheme.maybeXS,\n\t\t\tsettings: {\n\t\t\t\tinside: true\n\t\t\t}\n\t\t});\n\n\n\t\t/**\n\t\t * ========================================================================\n\t\t * Pie\n\t\t * ========================================================================\n\t\t */\n\t\taddRule({\n\t\t\tname: \"PieChart\",\n\t\t\trelevant: ResponsiveTheme.maybeXS,\n\t\t\tsettings: {\n\t\t\t\tradius: percent(99)\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"PieChart\",\n\t\t\trelevant: ResponsiveTheme.widthM,\n\t\t\tsettings: {\n\t\t\t\tradius: percent(99)\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"RadialLabel\",\n\t\t\ttags: [\"pie\"],\n\t\t\trelevant: ResponsiveTheme.maybeXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"RadialLabel\",\n\t\t\ttags: [\"pie\"],\n\t\t\trelevant: ResponsiveTheme.widthM,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Tick\",\n\t\t\ttags: [\"pie\"],\n\t\t\trelevant: ResponsiveTheme.maybeXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Tick\",\n\t\t\ttags: [\"pie\"],\n\t\t\trelevant: ResponsiveTheme.widthM,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\n\t\t/**\n\t\t * ========================================================================\n\t\t * Funnel\n\t\t * ========================================================================\n\t\t */\n\n\t\taddRule({\n\t\t\tname: \"FunnelSeries\",\n\t\t\trelevant: ResponsiveTheme.widthM,\n\t\t\tsettings: {\n\t\t\t\talignLabels: false\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Label\",\n\t\t\ttags: [\"funnel\", \"vertical\"],\n\t\t\trelevant: ResponsiveTheme.widthL,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Tick\",\n\t\t\ttags: [\"funnel\", \"vertical\"],\n\t\t\trelevant: ResponsiveTheme.widthL,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Label\",\n\t\t\ttags: [\"funnel\", \"horizontal\"],\n\t\t\trelevant: ResponsiveTheme.heightS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Tick\",\n\t\t\ttags: [\"funnel\", \"horizontal\"],\n\t\t\trelevant: ResponsiveTheme.heightS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\n\t\t/**\n\t\t * ========================================================================\n\t\t * Pyramid\n\t\t * ========================================================================\n\t\t */\n\n\t\taddRule({\n\t\t\tname: \"PyramidSeries\",\n\t\t\trelevant: ResponsiveTheme.widthM,\n\t\t\tsettings: {\n\t\t\t\talignLabels: false\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Label\",\n\t\t\ttags: [\"pyramid\", \"vertical\"],\n\t\t\trelevant: ResponsiveTheme.widthL,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Tick\",\n\t\t\ttags: [\"pyramid\", \"vertical\"],\n\t\t\trelevant: ResponsiveTheme.widthL,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Label\",\n\t\t\ttags: [\"pyramid\", \"horizontal\"],\n\t\t\trelevant: ResponsiveTheme.heightS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Tick\",\n\t\t\ttags: [\"pyramid\", \"horizontal\"],\n\t\t\trelevant: ResponsiveTheme.heightS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\n\t\t/**\n\t\t * ========================================================================\n\t\t * Pictorial\n\t\t * ========================================================================\n\t\t */\n\n\t\taddRule({\n\t\t\tname: \"PictorialStackedSeries\",\n\t\t\trelevant: ResponsiveTheme.widthM,\n\t\t\tsettings: {\n\t\t\t\talignLabels: false\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Label\",\n\t\t\ttags: [\"pictorial\", \"vertical\"],\n\t\t\trelevant: ResponsiveTheme.widthL,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Tick\",\n\t\t\ttags: [\"pictorial\", \"vertical\"],\n\t\t\trelevant: ResponsiveTheme.widthL,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Label\",\n\t\t\ttags: [\"pictorial\", \"horizontal\"],\n\t\t\trelevant: ResponsiveTheme.heightS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Tick\",\n\t\t\ttags: [\"pictorial\", \"horizontal\"],\n\t\t\trelevant: ResponsiveTheme.heightS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\n\t\t/**\n\t\t * ========================================================================\n\t\t * Map\n\t\t * ========================================================================\n\t\t */\n\n\t\t// Nothing to do here\n\n\t\t/**\n\t\t * ========================================================================\n\t\t * Flow (Sankey+Chord)\n\t\t * ========================================================================\n\t\t */\n\n\t\taddRule({\n\t\t\tname: \"Label\",\n\t\t\ttags: [\"flow\", \"horizontal\"],\n\t\t\trelevant: ResponsiveTheme.widthS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Label\",\n\t\t\ttags: [\"flow\", \"vertical\"],\n\t\t\trelevant: ResponsiveTheme.heightS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t\taddRule({\n\t\t\tname: \"Chord\",\n\t\t\trelevant: ResponsiveTheme.maybeXS,\n\t\t\tsettings: {\n\t\t\t\tradius: percent(99)\n\t\t\t}\n\t\t});\n\n\n\t\t/**\n\t\t * ========================================================================\n\t\t * Hierarchy (Treemap, Partition, Sunburst, Pack, ForceDirected)\n\t\t * ========================================================================\n\t\t */\n\n\t\taddRule({\n\t\t\tname: \"Label\",\n\t\t\ttags: [\"hierarchy\", \"node\"],\n\t\t\trelevant: ResponsiveTheme.maybeXS,\n\t\t\tsettings: {\n\t\t\t\tforceHidden: true\n\t\t\t}\n\t\t});\n\n\t}\n}\n"]}
package/CHANGELOG.md CHANGED
@@ -5,6 +5,62 @@ 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.21] - 2022-01-11
9
+
10
+ ### Added
11
+ - New `Sprite` setting: `forceInactive`. If set to `true`, it will override `interactive` setting as well as ignore any interaction events set on the element.
12
+ - `cursorhidden` event added to `XYCursor`. Dispatched when user rolls-out of the chart plot area and cursor is hidden.
13
+ - New `Component` method: `markDirtyValues()`. Forces a repaint of the element which relies on data.
14
+
15
+ ### Changed
16
+ - Value (4th parameter of the Heat rule's `customFunction`) will now receive actual value of the target data item, not interpolated calculated setting value.
17
+
18
+ ### Fixed
19
+ - Fixing bug when not passing the duration to the `animate` method ([Issue 181](https://github.com/amcharts/amcharts5/issues/181)).
20
+ - Horizontal and vertical layouts with `width`/`height` set in percents plus `minWidth`/`minHeight`/`maxWidth`/`maxHeight` set were arranging items incorrectly.
21
+ - Very small slices with `cornrerRadius > 0` were being drawn as a full circle.
22
+ - `SliceGrouper` with was not zooming out properly if there was no legend in chart.
23
+ - changing `groupData` from `false` to `true` on DateAxis was not working when doing so after the chart was built.
24
+
25
+
26
+ ## [5.0.20] - 2021-12-30
27
+
28
+ ### Fixed
29
+ - `SliceGrouper` with `clickBehavior = "zoom"` was not zooming out properly.
30
+ - `GridLayout` could leave empty gaps if some of the items in it were hidden.
31
+ - dragging sprites within rotated containers was not working properly.
32
+ - Null value was breaking stacking of columns in some cases.
33
+ - Fixing tooltips being broken inside of shadow DOM. ([Issue 166](https://github.com/amcharts/amcharts5/issues/166))
34
+
35
+
36
+ ## [5.0.19] - 2021-12-27
37
+
38
+ ### Added
39
+ - `groupDataDisabled` setting added to XYSeries. If set to `false` will exclude series from data grouping mechanism, even if it is enabled on related `DateSeries`.
40
+ - New plugin `SliceGrouper`. Can be used to automatically group small slices on percent charts like Pie, Funnel, etc. [More info](https://www.amcharts.com/docs/v5/charts/percent-charts/grouping-slices/).
41
+
42
+ ### Fixed
43
+ - If data was added to percent series after initial data was already processed, the bew slices would get colors from the start of the color set.
44
+ - Multiple square bracket and apostrophe escaping was not working properly.
45
+ - A JS error could occur when changing `XYSeries` data with less data items then there were before.
46
+ - `PieSeries` were not arranging its labels properly in some cases.
47
+ - `XYCursor` taps were not working properly after chart zoom on touch devices.
48
+
49
+
50
+ ## [5.0.18] - 2021-12-19
51
+
52
+ ### Changed
53
+ - When auto-wrapping labels, text will no longer break on dots to prevent fractional numbers from wrapping.
54
+ - Scrollable `Container`'s scrollbar will auto-hide if contents fit in it without scrolling.
55
+
56
+ ### Fixed
57
+ - Disabling click-toggling of legend, was disabling hover events, too.
58
+ - `ResponsiveTheme`'s custom rules were not working properly.
59
+ - `Exporting` was not applying proper background color to exported images.
60
+ - `CategoryDateAxis` grid and labels placing algorithm improved.
61
+ - Sometimes bullets of XYChart were not being properly clipped by the bounds of the plot area.
62
+ - Memory leak related to: https://bugs.chromium.org/p/chromium/issues/detail?id=1279394 was fixed.
63
+
8
64
 
9
65
  ## [5.0.17] - 2021-12-15
10
66
 
@@ -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.17",
6
+ "@amcharts/amcharts5": "^5.0.21",
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.17",
6
+ "@amcharts/amcharts5": "^5.0.21",
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.17",
6
+ "@amcharts/amcharts5": "^5.0.21",
7
7
  "source-map-loader": "^3.0.0",
8
8
  "webpack": "^5.1.3",
9
9
  "webpack-cli": "^4.1.0",