@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.
- package/.internal/charts/map/MapLineSeries.d.ts +6 -1
- package/.internal/charts/map/MapLineSeries.d.ts.map +1 -1
- package/.internal/charts/map/MapLineSeries.js +11 -6
- package/.internal/charts/map/MapLineSeries.js.map +1 -1
- package/.internal/charts/map/MapPointSeries.d.ts +6 -1
- package/.internal/charts/map/MapPointSeries.d.ts.map +1 -1
- package/.internal/charts/map/MapPointSeries.js +7 -2
- package/.internal/charts/map/MapPointSeries.js.map +1 -1
- package/.internal/charts/map/MapPolygonSeries.d.ts +6 -1
- package/.internal/charts/map/MapPolygonSeries.d.ts.map +1 -1
- package/.internal/charts/map/MapPolygonSeries.js +7 -2
- package/.internal/charts/map/MapPolygonSeries.js.map +1 -1
- package/.internal/charts/percent/PercentSeries.d.ts +2 -0
- package/.internal/charts/percent/PercentSeries.d.ts.map +1 -1
- package/.internal/charts/percent/PercentSeries.js +21 -0
- package/.internal/charts/percent/PercentSeries.js.map +1 -1
- package/.internal/charts/xy/XYChart.d.ts +4 -0
- package/.internal/charts/xy/XYChart.d.ts.map +1 -1
- package/.internal/charts/xy/XYChart.js +3 -0
- package/.internal/charts/xy/XYChart.js.map +1 -1
- package/.internal/charts/xy/XYCursor.d.ts +6 -0
- package/.internal/charts/xy/XYCursor.d.ts.map +1 -1
- package/.internal/charts/xy/XYCursor.js +4 -0
- package/.internal/charts/xy/XYCursor.js.map +1 -1
- package/.internal/charts/xy/axes/CategoryDateAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/CategoryDateAxis.js +4 -1
- package/.internal/charts/xy/axes/CategoryDateAxis.js.map +1 -1
- package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/DateAxis.js +4 -1
- package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
- package/.internal/charts/xy/series/LineSeries.d.ts +1 -0
- package/.internal/charts/xy/series/LineSeries.d.ts.map +1 -1
- package/.internal/charts/xy/series/LineSeries.js +14 -2
- package/.internal/charts/xy/series/LineSeries.js.map +1 -1
- package/.internal/charts/xy/series/XYSeries.d.ts +4 -0
- package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
- package/.internal/charts/xy/series/XYSeries.js +4 -1
- package/.internal/charts/xy/series/XYSeries.js.map +1 -1
- package/.internal/core/Classes.d.ts +2 -0
- package/.internal/core/Classes.d.ts.map +1 -1
- package/.internal/core/Classes.js.map +1 -1
- package/.internal/core/render/Component.d.ts +6 -1
- package/.internal/core/render/Component.d.ts.map +1 -1
- package/.internal/core/render/Component.js +8 -3
- package/.internal/core/render/Component.js.map +1 -1
- package/.internal/core/render/Container.d.ts.map +1 -1
- package/.internal/core/render/Container.js +5 -0
- package/.internal/core/render/Container.js.map +1 -1
- package/.internal/core/render/Ellipse.d.ts +28 -0
- package/.internal/core/render/Ellipse.d.ts.map +1 -0
- package/.internal/core/render/Ellipse.js +51 -0
- package/.internal/core/render/Ellipse.js.map +1 -0
- package/.internal/core/render/GridLayout.d.ts.map +1 -1
- package/.internal/core/render/GridLayout.js +2 -2
- package/.internal/core/render/GridLayout.js.map +1 -1
- package/.internal/core/render/HorizontalLayout.d.ts.map +1 -1
- package/.internal/core/render/HorizontalLayout.js +14 -0
- package/.internal/core/render/HorizontalLayout.js.map +1 -1
- package/.internal/core/render/Legend.d.ts +3 -2
- package/.internal/core/render/Legend.d.ts.map +1 -1
- package/.internal/core/render/Legend.js +13 -5
- package/.internal/core/render/Legend.js.map +1 -1
- package/.internal/core/render/Line.js +1 -1
- package/.internal/core/render/Line.js.map +1 -1
- package/.internal/core/render/Series.d.ts +2 -2
- package/.internal/core/render/Series.d.ts.map +1 -1
- package/.internal/core/render/Series.js +5 -4
- package/.internal/core/render/Series.js.map +1 -1
- package/.internal/core/render/Slice.d.ts.map +1 -1
- package/.internal/core/render/Slice.js +3 -1
- package/.internal/core/render/Slice.js.map +1 -1
- package/.internal/core/render/Sprite.d.ts +11 -2
- package/.internal/core/render/Sprite.d.ts.map +1 -1
- package/.internal/core/render/Sprite.js +40 -17
- package/.internal/core/render/Sprite.js.map +1 -1
- package/.internal/core/render/VerticalLayout.d.ts.map +1 -1
- package/.internal/core/render/VerticalLayout.js +14 -0
- package/.internal/core/render/VerticalLayout.js.map +1 -1
- package/.internal/core/render/backend/CanvasRenderer.d.ts +9 -4
- package/.internal/core/render/backend/CanvasRenderer.d.ts.map +1 -1
- package/.internal/core/render/backend/CanvasRenderer.js +145 -40
- package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
- package/.internal/core/render/backend/Renderer.d.ts +2 -0
- package/.internal/core/render/backend/Renderer.d.ts.map +1 -1
- package/.internal/core/render/backend/Renderer.js.map +1 -1
- package/.internal/core/util/ColorSet.d.ts +0 -1
- package/.internal/core/util/ColorSet.d.ts.map +1 -1
- package/.internal/core/util/ColorSet.js +1 -12
- package/.internal/core/util/ColorSet.js.map +1 -1
- package/.internal/core/util/Entity.js +2 -2
- package/.internal/core/util/Entity.js.map +1 -1
- package/.internal/core/util/TextFormatter.js +2 -2
- package/.internal/core/util/TextFormatter.js.map +1 -1
- package/.internal/core/util/Time.d.ts +7 -6
- package/.internal/core/util/Time.d.ts.map +1 -1
- package/.internal/core/util/Time.js +7 -6
- package/.internal/core/util/Time.js.map +1 -1
- package/.internal/plugins/exporting/Exporting.d.ts.map +1 -1
- package/.internal/plugins/exporting/Exporting.js +0 -4
- package/.internal/plugins/exporting/Exporting.js.map +1 -1
- package/.internal/plugins/sliceGrouper/SliceGrouper.d.ts +76 -0
- package/.internal/plugins/sliceGrouper/SliceGrouper.d.ts.map +1 -0
- package/.internal/plugins/sliceGrouper/SliceGrouper.js +241 -0
- package/.internal/plugins/sliceGrouper/SliceGrouper.js.map +1 -0
- package/.internal/themes/ResponsiveTheme.js +4 -4
- package/.internal/themes/ResponsiveTheme.js.map +1 -1
- package/CHANGELOG.md +56 -0
- package/examples/javascript/flow-chord/package.json +1 -1
- package/examples/javascript/flow-chord-directed/package.json +1 -1
- package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
- package/examples/javascript/flow-sankey/package.json +1 -1
- package/examples/javascript/gauge/package.json +1 -1
- package/examples/javascript/gauge-bands/package.json +1 -1
- package/examples/javascript/hierarchy-force-directed/package.json +1 -1
- package/examples/javascript/hierarchy-pack/package.json +1 -1
- package/examples/javascript/hierarchy-partition/package.json +1 -1
- package/examples/javascript/hierarchy-sunburst/package.json +1 -1
- package/examples/javascript/hierarchy-tree/package.json +1 -1
- package/examples/javascript/hierarchy-treemap/package.json +1 -1
- package/examples/javascript/map-animating-along-lines/package.json +1 -1
- package/examples/javascript/map-day-and-night/package.json +1 -1
- package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
- package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
- package/examples/javascript/map-with-bubbles/package.json +1 -1
- package/examples/javascript/map-zoom-to-country/package.json +1 -1
- package/examples/javascript/misc-40-charts/package.json +1 -1
- package/examples/javascript/misc-microchart-grid/package.json +1 -1
- package/examples/javascript/pie-chart/package.json +1 -1
- package/examples/javascript/pie-donut-chart/package.json +1 -1
- package/examples/javascript/pie-variable-radius/package.json +1 -1
- package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
- package/examples/javascript/radar-heat-map/package.json +1 -1
- package/examples/javascript/radar-line/package.json +1 -1
- package/examples/javascript/radar-time-line/package.json +1 -1
- package/examples/javascript/sliced-funnel/package.json +1 -1
- package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
- package/examples/javascript/sliced-pyramid/package.json +1 -1
- package/examples/javascript/venn-diagram/package.json +1 -1
- package/examples/javascript/wordcloud-with-data/package.json +1 -1
- package/examples/javascript/wordcloud-with-text/package.json +1 -1
- package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
- package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
- package/examples/javascript/xy-bubble/package.json +1 -1
- package/examples/javascript/xy-candlestick/package.json +1 -1
- package/examples/javascript/xy-clustered-column/package.json +1 -1
- package/examples/javascript/xy-column/package.json +1 -1
- package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/javascript/xy-data-grouping/package.json +1 -1
- package/examples/javascript/xy-draggable-range/package.json +1 -1
- package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/javascript/xy-dumbbell plot/package.json +1 -1
- package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/javascript/xy-line/package.json +1 -1
- package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
- package/examples/javascript/xy-live-data/package.json +1 -1
- package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/javascript/xy-ohlc/package.json +1 -1
- package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
- package/examples/javascript/xy-smoothed-line/package.json +1 -1
- package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
- package/examples/javascript/xy-stacked-column/package.json +1 -1
- package/examples/javascript/xy-stacked-step/package.json +1 -1
- package/examples/javascript/xy-stock/package.json +1 -1
- package/examples/javascript/xy-stock-comparing/package.json +1 -1
- package/examples/typescript/flow-chord/package.json +1 -1
- package/examples/typescript/flow-chord-directed/package.json +1 -1
- package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
- package/examples/typescript/flow-sankey/package.json +1 -1
- package/examples/typescript/gauge/package.json +1 -1
- package/examples/typescript/gauge-bands/package.json +1 -1
- package/examples/typescript/hierarchy-force-directed/package.json +1 -1
- package/examples/typescript/hierarchy-pack/package.json +1 -1
- package/examples/typescript/hierarchy-partition/package.json +1 -1
- package/examples/typescript/hierarchy-sunburst/package.json +1 -1
- package/examples/typescript/hierarchy-tree/package.json +1 -1
- package/examples/typescript/hierarchy-treemap/package.json +1 -1
- package/examples/typescript/map-animating-along-lines/package.json +1 -1
- package/examples/typescript/map-day-and-night/package.json +1 -1
- package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
- package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
- package/examples/typescript/map-with-bubbles/package.json +1 -1
- package/examples/typescript/map-zoom-to-country/package.json +1 -1
- package/examples/typescript/misc-40-charts/package.json +1 -1
- package/examples/typescript/misc-microchart-grid/package.json +1 -1
- package/examples/typescript/pie-chart/package.json +1 -1
- package/examples/typescript/pie-donut-chart/package.json +1 -1
- package/examples/typescript/pie-variable-radius/package.json +1 -1
- package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
- package/examples/typescript/radar-heat-map/package.json +1 -1
- package/examples/typescript/radar-line/package.json +1 -1
- package/examples/typescript/radar-time-line/package.json +1 -1
- package/examples/typescript/sliced-funnel/package.json +1 -1
- package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
- package/examples/typescript/sliced-pyramid/package.json +1 -1
- package/examples/typescript/venn-diagram/package.json +1 -1
- package/examples/typescript/wordcloud-with-data/package.json +1 -1
- package/examples/typescript/wordcloud-with-text/package.json +1 -1
- package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
- package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
- package/examples/typescript/xy-bubble/package.json +1 -1
- package/examples/typescript/xy-candlestick/package.json +1 -1
- package/examples/typescript/xy-clustered-column/package.json +1 -1
- package/examples/typescript/xy-column/package.json +1 -1
- package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/typescript/xy-data-grouping/package.json +1 -1
- package/examples/typescript/xy-draggable-range/package.json +1 -1
- package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/typescript/xy-dumbbell plot/package.json +1 -1
- package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/typescript/xy-line/package.json +1 -1
- package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
- package/examples/typescript/xy-live-data/package.json +1 -1
- package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/typescript/xy-ohlc/package.json +1 -1
- package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
- package/examples/typescript/xy-smoothed-line/package.json +1 -1
- package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
- package/examples/typescript/xy-stacked-column/package.json +1 -1
- package/examples/typescript/xy-stacked-step/package.json +1 -1
- package/examples/typescript/xy-stock/package.json +1 -1
- package/examples/typescript/xy-stock-comparing/package.json +1 -1
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/plugins/sliceGrouper.d.ts +2 -0
- package/plugins/sliceGrouper.d.ts.map +1 -0
- package/plugins/sliceGrouper.js +2 -0
- 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.
|
|
280
|
+
this._root._rootContainer.onPrivate("width", function (_width) { if (_this._isUsed()) {
|
|
281
281
|
_this._applyRule(rule);
|
|
282
282
|
} }),
|
|
283
|
-
this._root._rootContainer.
|
|
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.
|
|
322
|
-
var h = this._root._rootContainer.
|
|
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":"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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.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
|
|