@amcharts/amcharts5 5.3.17 → 5.4.1
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/flow/ArcDiagram.d.ts +86 -0
- package/.internal/charts/flow/ArcDiagram.d.ts.map +1 -0
- package/.internal/charts/flow/ArcDiagram.js +161 -0
- package/.internal/charts/flow/ArcDiagram.js.map +1 -0
- package/.internal/charts/flow/ArcDiagramLink.d.ts +40 -0
- package/.internal/charts/flow/ArcDiagramLink.d.ts.map +1 -0
- package/.internal/charts/flow/ArcDiagramLink.js +130 -0
- package/.internal/charts/flow/ArcDiagramLink.js.map +1 -0
- package/.internal/charts/flow/ArcDiagramNodes.d.ts +60 -0
- package/.internal/charts/flow/ArcDiagramNodes.d.ts.map +1 -0
- package/.internal/charts/flow/ArcDiagramNodes.js +96 -0
- package/.internal/charts/flow/ArcDiagramNodes.js.map +1 -0
- package/.internal/charts/flow/Chord.d.ts +0 -9
- package/.internal/charts/flow/Chord.d.ts.map +1 -1
- package/.internal/charts/flow/Chord.js +0 -10
- package/.internal/charts/flow/Chord.js.map +1 -1
- package/.internal/charts/flow/ChordNodes.d.ts +9 -0
- package/.internal/charts/flow/ChordNodes.d.ts.map +1 -1
- package/.internal/charts/flow/ChordNodes.js +23 -2
- package/.internal/charts/flow/ChordNodes.js.map +1 -1
- package/.internal/charts/flow/Flow.d.ts +27 -1
- package/.internal/charts/flow/Flow.d.ts.map +1 -1
- package/.internal/charts/flow/Flow.js +7 -1
- package/.internal/charts/flow/Flow.js.map +1 -1
- package/.internal/charts/flow/FlowDefaultTheme.d.ts.map +1 -1
- package/.internal/charts/flow/FlowDefaultTheme.js +74 -3
- package/.internal/charts/flow/FlowDefaultTheme.js.map +1 -1
- package/.internal/charts/flow/FlowNodes.d.ts +16 -0
- package/.internal/charts/flow/FlowNodes.d.ts.map +1 -1
- package/.internal/charts/flow/FlowNodes.js +93 -1
- package/.internal/charts/flow/FlowNodes.js.map +1 -1
- package/.internal/charts/hierarchy/Hierarchy.d.ts.map +1 -1
- package/.internal/charts/hierarchy/Hierarchy.js.map +1 -1
- package/.internal/charts/hierarchy/HierarchyDefaultTheme.d.ts.map +1 -1
- package/.internal/charts/hierarchy/HierarchyDefaultTheme.js +45 -0
- package/.internal/charts/hierarchy/HierarchyDefaultTheme.js.map +1 -1
- package/.internal/charts/hierarchy/Partition.d.ts +1 -1
- package/.internal/charts/hierarchy/Partition.js +1 -1
- package/.internal/charts/hierarchy/Partition.js.map +1 -1
- package/.internal/charts/hierarchy/VoronoiTreemap.d.ts +117 -0
- package/.internal/charts/hierarchy/VoronoiTreemap.d.ts.map +1 -0
- package/.internal/charts/hierarchy/VoronoiTreemap.js +176 -0
- package/.internal/charts/hierarchy/VoronoiTreemap.js.map +1 -0
- package/.internal/charts/map/MapSeries.d.ts.map +1 -1
- package/.internal/charts/map/MapSeries.js +1 -0
- package/.internal/charts/map/MapSeries.js.map +1 -1
- package/.internal/charts/stock/indicators/BollingerBands.d.ts +1 -0
- package/.internal/charts/stock/indicators/BollingerBands.d.ts.map +1 -1
- package/.internal/charts/stock/indicators/BollingerBands.js +10 -0
- package/.internal/charts/stock/indicators/BollingerBands.js.map +1 -1
- package/.internal/charts/xy/XYChart.d.ts +1 -1
- package/.internal/charts/xy/XYChart.d.ts.map +1 -1
- package/.internal/charts/xy/XYChart.js +12 -3
- package/.internal/charts/xy/XYChart.js.map +1 -1
- package/.internal/charts/xy/XYCursor.d.ts +1 -0
- package/.internal/charts/xy/XYCursor.d.ts.map +1 -1
- package/.internal/charts/xy/XYCursor.js +7 -4
- package/.internal/charts/xy/XYCursor.js.map +1 -1
- package/.internal/charts/xy/axes/DateAxis.js +1 -1
- package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
- package/.internal/charts/xy/series/LineSeries.d.ts.map +1 -1
- package/.internal/charts/xy/series/LineSeries.js.map +1 -1
- package/.internal/core/Classes.d.ts +10 -0
- package/.internal/core/Classes.d.ts.map +1 -1
- package/.internal/core/Classes.js.map +1 -1
- package/.internal/core/Registry.d.ts.map +1 -1
- package/.internal/core/Registry.js +1 -1
- package/.internal/core/Registry.js.map +1 -1
- package/.internal/core/render/Polygon.d.ts +52 -0
- package/.internal/core/render/Polygon.d.ts.map +1 -0
- package/.internal/core/render/Polygon.js +133 -0
- package/.internal/core/render/Polygon.js.map +1 -0
- package/.internal/core/render/Sprite.js +1 -1
- package/.internal/core/render/Sprite.js.map +1 -1
- package/.internal/core/render/backend/CanvasRenderer.js +2 -2
- package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
- package/.internal/themes/AnimatedTheme.d.ts.map +1 -1
- package/.internal/themes/AnimatedTheme.js +2 -0
- package/.internal/themes/AnimatedTheme.js.map +1 -1
- package/.internal/themes/DefaultTheme.d.ts.map +1 -1
- package/.internal/themes/DefaultTheme.js +3 -0
- package/.internal/themes/DefaultTheme.js.map +1 -1
- package/CHANGELOG.md +26 -0
- package/examples/javascript/flow-arc-horizontal/README.md +6 -0
- package/examples/javascript/flow-arc-horizontal/index.css +11 -0
- package/examples/javascript/flow-arc-horizontal/index.html +12 -0
- package/examples/javascript/flow-arc-horizontal/index.js +116 -0
- package/examples/javascript/flow-arc-horizontal/package.json +16 -0
- package/examples/javascript/flow-arc-horizontal/webpack.config.js +38 -0
- package/examples/javascript/flow-arc-vertical/README.md +6 -0
- package/examples/javascript/flow-arc-vertical/index.css +11 -0
- package/examples/javascript/flow-arc-vertical/index.html +12 -0
- package/examples/javascript/flow-arc-vertical/index.js +91 -0
- package/examples/javascript/flow-arc-vertical/package.json +16 -0
- package/examples/javascript/flow-arc-vertical/webpack.config.js +38 -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/index.js +11 -5
- 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/hierarchy-voronoi-treemap/README.md +6 -0
- package/examples/javascript/hierarchy-voronoi-treemap/index.css +11 -0
- package/examples/javascript/hierarchy-voronoi-treemap/index.html +12 -0
- package/examples/javascript/hierarchy-voronoi-treemap/index.js +1298 -0
- package/examples/javascript/hierarchy-voronoi-treemap/package.json +16 -0
- package/examples/javascript/hierarchy-voronoi-treemap/webpack.config.js +38 -0
- package/examples/javascript/jest/package.json +1 -1
- package/examples/javascript/json-pie/package.json +1 -1
- package/examples/javascript/json-xy/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/stock-chart/package.json +1 -1
- package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
- package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
- package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
- package/examples/javascript/stock-chart-intraday/package.json +1 -1
- package/examples/javascript/stock-chart-live/package.json +1 -1
- package/examples/javascript/stock-chart-volume-separate-panel/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-arc-horizontal/README.md +6 -0
- package/examples/typescript/flow-arc-horizontal/index.css +11 -0
- package/examples/typescript/flow-arc-horizontal/index.html +12 -0
- package/examples/typescript/flow-arc-horizontal/index.ts +116 -0
- package/examples/typescript/flow-arc-horizontal/package.json +18 -0
- package/examples/typescript/flow-arc-horizontal/tsconfig.json +12 -0
- package/examples/typescript/flow-arc-horizontal/webpack.config.js +45 -0
- package/examples/typescript/flow-arc-vertical/README.md +6 -0
- package/examples/typescript/flow-arc-vertical/index.css +11 -0
- package/examples/typescript/flow-arc-vertical/index.html +12 -0
- package/examples/typescript/flow-arc-vertical/index.ts +91 -0
- package/examples/typescript/flow-arc-vertical/package.json +18 -0
- package/examples/typescript/flow-arc-vertical/tsconfig.json +12 -0
- package/examples/typescript/flow-arc-vertical/webpack.config.js +45 -0
- 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/index.ts +11 -5
- 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/hierarchy-voronoi-treemap/README.md +6 -0
- package/examples/typescript/hierarchy-voronoi-treemap/index.css +11 -0
- package/examples/typescript/hierarchy-voronoi-treemap/index.html +12 -0
- package/examples/typescript/hierarchy-voronoi-treemap/index.ts +1298 -0
- package/examples/typescript/hierarchy-voronoi-treemap/package.json +18 -0
- package/examples/typescript/hierarchy-voronoi-treemap/tsconfig.json +12 -0
- package/examples/typescript/hierarchy-voronoi-treemap/webpack.config.js +45 -0
- package/examples/typescript/jest/package.json +1 -1
- package/examples/typescript/json-pie/package.json +1 -1
- package/examples/typescript/json-xy/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/stock-chart/package.json +1 -1
- package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
- package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
- package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
- package/examples/typescript/stock-chart-intraday/package.json +1 -1
- package/examples/typescript/stock-chart-live/package.json +1 -1
- package/examples/typescript/stock-chart-volume-separate-panel/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/flow.d.ts +3 -0
- package/flow.d.ts.map +1 -1
- package/flow.js +3 -0
- package/flow.js.map +1 -1
- package/hierarchy.d.ts +1 -0
- package/hierarchy.d.ts.map +1 -1
- package/hierarchy.js +1 -0
- package/hierarchy.js.map +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 +4 -2
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { Graphics } from "./Graphics";
|
|
2
|
+
import * as $array from "../util/Array";
|
|
3
|
+
/**
|
|
4
|
+
* Draws a polygon.
|
|
5
|
+
*
|
|
6
|
+
* @see {@link https://www.amcharts.com/docs/v5/concepts/common-elements/polygon/} for more info
|
|
7
|
+
* @important
|
|
8
|
+
* @since 5.4.0
|
|
9
|
+
*/
|
|
10
|
+
export class Polygon extends Graphics {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
Object.defineProperty(this, "morphAnimation", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
configurable: true,
|
|
16
|
+
writable: true,
|
|
17
|
+
value: void 0
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
_beforeChanged() {
|
|
21
|
+
super._beforeChanged();
|
|
22
|
+
if (this.isDirty("coordinates")) {
|
|
23
|
+
const points = [];
|
|
24
|
+
const coordinates = this.get("coordinates");
|
|
25
|
+
if (coordinates) {
|
|
26
|
+
$array.each(coordinates, (coord) => {
|
|
27
|
+
points.push({ x: coord[0], y: coord[1] });
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
this.set("points", points);
|
|
31
|
+
}
|
|
32
|
+
if (this.isPrivateDirty("points")) {
|
|
33
|
+
this._clear = true;
|
|
34
|
+
}
|
|
35
|
+
if (this.isDirty("points")) {
|
|
36
|
+
this._clear = true;
|
|
37
|
+
const points = this.get("points");
|
|
38
|
+
const prevPoints = this._prevSettings.points;
|
|
39
|
+
if (prevPoints) {
|
|
40
|
+
if (points) {
|
|
41
|
+
let copy = $array.copy(points);
|
|
42
|
+
let prevCopy = $array.copy(prevPoints);
|
|
43
|
+
let cl = copy.length;
|
|
44
|
+
let pl = prevCopy.length;
|
|
45
|
+
if (cl > pl) {
|
|
46
|
+
let newCopy = $array.copy(copy);
|
|
47
|
+
for (let i = 0; i < cl; i++) {
|
|
48
|
+
let index = Math.floor(i / cl * pl);
|
|
49
|
+
newCopy[i] = { x: prevCopy[index].x, y: prevCopy[index].y };
|
|
50
|
+
}
|
|
51
|
+
prevCopy = newCopy;
|
|
52
|
+
}
|
|
53
|
+
else if (pl > cl) {
|
|
54
|
+
let newCopy = $array.copy(prevCopy);
|
|
55
|
+
for (let i = 0; i < pl; i++) {
|
|
56
|
+
let index = Math.floor(i / pl * cl);
|
|
57
|
+
newCopy[i] = { x: copy[index].x, y: copy[index].y };
|
|
58
|
+
}
|
|
59
|
+
copy = newCopy;
|
|
60
|
+
}
|
|
61
|
+
this.setPrivateRaw("previousPoints", prevCopy);
|
|
62
|
+
this.setPrivateRaw("points", copy);
|
|
63
|
+
this.morphAnimation = this.animatePrivate({ key: "morphProgress", from: 0, to: 1, duration: this.get("animationDuration", 0), easing: this.get("animationEasing") });
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
this.setPrivateRaw("previousPoints", points);
|
|
68
|
+
this.setPrivateRaw("points", points);
|
|
69
|
+
}
|
|
70
|
+
let minX = Infinity;
|
|
71
|
+
let maxX = -Infinity;
|
|
72
|
+
let minY = Infinity;
|
|
73
|
+
let maxY = -Infinity;
|
|
74
|
+
if (points) {
|
|
75
|
+
for (let i = 1, len = points.length; i < len; i++) {
|
|
76
|
+
const point = points[i];
|
|
77
|
+
minX = Math.min(minX, point.x);
|
|
78
|
+
maxX = Math.max(maxX, point.x);
|
|
79
|
+
minY = Math.min(minY, point.y);
|
|
80
|
+
maxY = Math.max(maxY, point.y);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
this.setPrivate("minX", minX);
|
|
84
|
+
this.setPrivate("maxX", maxX);
|
|
85
|
+
this.setPrivate("minY", minY);
|
|
86
|
+
this.setPrivate("maxY", minY);
|
|
87
|
+
}
|
|
88
|
+
if (this.isPrivateDirty("morphProgress")) {
|
|
89
|
+
this._clear = true;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
_changed() {
|
|
93
|
+
super._changed();
|
|
94
|
+
if (this._clear) {
|
|
95
|
+
this._draw();
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
_draw() {
|
|
99
|
+
const previousPoints = this.getPrivate("previousPoints");
|
|
100
|
+
const points = this.getPrivate("points");
|
|
101
|
+
const morphProgress = this.getPrivate("morphProgress", 1);
|
|
102
|
+
if (points && previousPoints) {
|
|
103
|
+
const first = points[0];
|
|
104
|
+
const prevFirst = previousPoints[0];
|
|
105
|
+
if (first) {
|
|
106
|
+
this._display.moveTo(prevFirst.x + (first.x - prevFirst.x) * morphProgress, prevFirst.y + (first.y - prevFirst.y) * morphProgress);
|
|
107
|
+
}
|
|
108
|
+
for (let i = 1, len = points.length; i < len; i++) {
|
|
109
|
+
const point = points[i];
|
|
110
|
+
const prevPoint = previousPoints[i];
|
|
111
|
+
this._display.lineTo(prevPoint.x + (point.x - prevPoint.x) * morphProgress, prevPoint.y + (point.y - prevPoint.y) * morphProgress);
|
|
112
|
+
}
|
|
113
|
+
this._display.closePath();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
_updateSize() {
|
|
117
|
+
this.markDirty();
|
|
118
|
+
this._clear = true;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
Object.defineProperty(Polygon, "className", {
|
|
122
|
+
enumerable: true,
|
|
123
|
+
configurable: true,
|
|
124
|
+
writable: true,
|
|
125
|
+
value: "Polygon"
|
|
126
|
+
});
|
|
127
|
+
Object.defineProperty(Polygon, "classNames", {
|
|
128
|
+
enumerable: true,
|
|
129
|
+
configurable: true,
|
|
130
|
+
writable: true,
|
|
131
|
+
value: Graphics.classNames.concat([Polygon.className])
|
|
132
|
+
});
|
|
133
|
+
//# sourceMappingURL=Polygon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Polygon.js","sourceRoot":"","sources":["../../../../../src/.internal/core/render/Polygon.ts"],"names":[],"mappings":"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","sourcesContent":["import { Graphics, IGraphicsSettings, IGraphicsPrivate } from \"./Graphics\";\r\nimport type { IPoint } from \"../util/IPoint\";\r\nimport * as $array from \"../util/Array\";\r\n\r\nimport type { Time } from \"../util/Animation\";\r\nimport type { Animation } from \"../util/Entity\";\r\n\r\nexport interface IPolygonSettings extends IGraphicsSettings {\r\n\r\n\t/**\r\n\t * An array of polygon corner coordinates.\r\n\t */\r\n\tpoints?: Array<IPoint>;\r\n\r\n\t/**\r\n\t * Corodinates.\r\n\t */\r\n\tcoordinates?: Array<Array<number>>;\r\n\r\n\t/**\r\n\t * Number of milliseconds to play morph animation.\r\n\t */\r\n\tanimationDuration?: number;\r\n\r\n\t/**\r\n\t * Easing function to use for animations.\r\n\t *\r\n\t * @see {@link https://www.amcharts.com/docs/v5/concepts/animations/#Easing_functions} for more info\r\n\t */\r\n\tanimationEasing?: (t: Time) => Time;\r\n\r\n}\r\n\r\nexport interface IPolygonPrivate extends IGraphicsPrivate {\r\n\tpoints?: Array<IPoint>;\r\n\r\n\tpreviousPoints?: Array<IPoint>;\r\n\r\n\tmorphProgress?: number;\r\n\r\n\tminX?: number;\r\n\r\n\tmaxX?: number;\r\n\r\n\tminY?: number;\r\n\r\n\tmaxY?: number;\r\n}\r\n\r\n/**\r\n * Draws a polygon.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/concepts/common-elements/polygon/} for more info\r\n * @important\r\n * @since 5.4.0\r\n */\r\nexport class Polygon extends Graphics {\r\n\r\n\tdeclare public _settings: IPolygonSettings;\r\n\tdeclare public _privateSettings: IPolygonPrivate;\r\n\r\n\tpublic static className: string = \"Polygon\";\r\n\tpublic static classNames: Array<string> = Graphics.classNames.concat([Polygon.className]);\r\n\r\n\tpublic morphAnimation?: Animation<this[\"_privateSettings\"][\"morphProgress\"]>;\r\n\r\n\tpublic _beforeChanged() {\r\n\t\tsuper._beforeChanged();\r\n\t\tif (this.isDirty(\"coordinates\")) {\r\n\t\t\tconst points: Array<IPoint> = [];\r\n\t\t\tconst coordinates = this.get(\"coordinates\");\r\n\t\t\tif (coordinates) {\r\n\t\t\t\t$array.each(coordinates, (coord) => {\r\n\t\t\t\t\tpoints.push({ x: coord[0], y: coord[1] });\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\tthis.set(\"points\", points);\r\n\t\t}\r\n\t\tif (this.isPrivateDirty(\"points\")) {\r\n\t\t\tthis._clear = true;\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"points\")) {\r\n\t\t\tthis._clear = true;\r\n\r\n\t\t\tconst points = this.get(\"points\");\r\n\t\t\tconst prevPoints = this._prevSettings.points;\r\n\t\t\tif (prevPoints) {\r\n\t\t\t\tif (points) {\r\n\t\t\t\t\tlet copy = $array.copy(points);\r\n\t\t\t\t\tlet prevCopy = $array.copy(prevPoints);\r\n\t\t\t\t\tlet cl = copy.length;\r\n\t\t\t\t\tlet pl = prevCopy.length;\r\n\r\n\t\t\t\t\tif (cl > pl) {\r\n\t\t\t\t\t\tlet newCopy = $array.copy(copy);\r\n\t\t\t\t\t\tfor (let i = 0; i < cl; i++) {\r\n\t\t\t\t\t\t\tlet index = Math.floor(i / cl * pl);\r\n\t\t\t\t\t\t\tnewCopy[i] = { x: prevCopy[index].x, y: prevCopy[index].y };\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tprevCopy = newCopy;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (pl > cl) {\r\n\t\t\t\t\t\tlet newCopy = $array.copy(prevCopy);\r\n\t\t\t\t\t\tfor (let i = 0; i < pl; i++) {\r\n\t\t\t\t\t\t\tlet index = Math.floor(i / pl * cl);\r\n\t\t\t\t\t\t\tnewCopy[i] = { x: copy[index].x, y: copy[index].y };\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcopy = newCopy;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.setPrivateRaw(\"previousPoints\", prevCopy);\r\n\t\t\t\t\tthis.setPrivateRaw(\"points\", copy);\r\n\t\t\t\t\tthis.morphAnimation = this.animatePrivate({ key: \"morphProgress\", from: 0, to: 1, duration: this.get(\"animationDuration\", 0), easing: this.get(\"animationEasing\") });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.setPrivateRaw(\"previousPoints\", points);\r\n\t\t\t\tthis.setPrivateRaw(\"points\", points);\r\n\t\t\t}\r\n\t\t\tlet minX = Infinity;\r\n\t\t\tlet maxX = -Infinity;\r\n\t\t\tlet minY = Infinity;\r\n\t\t\tlet maxY = -Infinity;\r\n\r\n\t\t\tif (points) {\r\n\t\t\t\tfor (let i = 1, len = points.length; i < len; i++) {\r\n\t\t\t\t\tconst point = points[i];\r\n\t\t\t\t\tminX = Math.min(minX, point.x);\r\n\t\t\t\t\tmaxX = Math.max(maxX, point.x);\r\n\r\n\t\t\t\t\tminY = Math.min(minY, point.y);\r\n\t\t\t\t\tmaxY = Math.max(maxY, point.y);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.setPrivate(\"minX\", minX);\r\n\t\t\tthis.setPrivate(\"maxX\", maxX);\r\n\t\t\tthis.setPrivate(\"minY\", minY);\r\n\t\t\tthis.setPrivate(\"maxY\", minY);\r\n\t\t}\r\n\r\n\r\n\r\n\t\tif (this.isPrivateDirty(\"morphProgress\")) {\r\n\t\t\tthis._clear = true;\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _changed() {\r\n\t\tsuper._changed();\r\n\r\n\t\tif (this._clear) {\r\n\t\t\tthis._draw();\r\n\t\t}\r\n\t}\r\n\r\n\tprotected _draw() {\r\n\t\tconst previousPoints = this.getPrivate(\"previousPoints\");\r\n\t\tconst points = this.getPrivate(\"points\");\r\n\t\tconst morphProgress = this.getPrivate(\"morphProgress\", 1);\r\n\r\n\t\tif (points && previousPoints) {\r\n\t\t\tconst first = points[0];\r\n\t\t\tconst prevFirst = previousPoints[0];\r\n\t\t\tif (first) {\r\n\t\t\t\tthis._display.moveTo(prevFirst.x + (first.x - prevFirst.x) * morphProgress, prevFirst.y + (first.y - prevFirst.y) * morphProgress);\r\n\t\t\t}\r\n\t\t\tfor (let i = 1, len = points.length; i < len; i++) {\r\n\t\t\t\tconst point = points[i];\r\n\t\t\t\tconst prevPoint = previousPoints[i];\r\n\t\t\t\tthis._display.lineTo(prevPoint.x + (point.x - prevPoint.x) * morphProgress, prevPoint.y + (point.y - prevPoint.y) * morphProgress);\r\n\t\t\t}\r\n\t\t\tthis._display.closePath();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _updateSize() {\r\n\t\tthis.markDirty()\r\n\t\tthis._clear = true;\r\n\t}\r\n}\r\n"]}
|
|
@@ -1047,8 +1047,8 @@ export class Sprite extends Entity {
|
|
|
1047
1047
|
* @ignore
|
|
1048
1048
|
*/
|
|
1049
1049
|
markDirtyBounds() {
|
|
1050
|
+
const display = this._display;
|
|
1050
1051
|
if (this.get("isMeasured")) {
|
|
1051
|
-
const display = this._display;
|
|
1052
1052
|
this._root._addDirtyBounds(this);
|
|
1053
1053
|
display.isMeasured = true;
|
|
1054
1054
|
display.invalidateBounds();
|