@amcharts/amcharts5 5.2.31 → 5.2.33
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/hierarchy/HierarchyDefaultTheme.d.ts.map +1 -1
- package/.internal/charts/hierarchy/HierarchyDefaultTheme.js +2 -0
- package/.internal/charts/hierarchy/HierarchyDefaultTheme.js.map +1 -1
- package/.internal/charts/hierarchy/Sunburst.d.ts.map +1 -1
- package/.internal/charts/hierarchy/Sunburst.js +6 -2
- package/.internal/charts/hierarchy/Sunburst.js.map +1 -1
- package/.internal/charts/map/MapChart.d.ts +1 -1
- package/.internal/charts/map/MapChart.d.ts.map +1 -1
- package/.internal/charts/map/MapChart.js +4 -0
- package/.internal/charts/map/MapChart.js.map +1 -1
- package/.internal/charts/map/MapLine.d.ts.map +1 -1
- package/.internal/charts/map/MapLine.js +6 -5
- package/.internal/charts/map/MapLine.js.map +1 -1
- package/.internal/charts/map/MapLineSeries.d.ts +15 -0
- package/.internal/charts/map/MapLineSeries.d.ts.map +1 -1
- package/.internal/charts/map/MapLineSeries.js +10 -0
- package/.internal/charts/map/MapLineSeries.js.map +1 -1
- package/.internal/charts/map/MapSeries.d.ts +0 -2
- package/.internal/charts/map/MapSeries.d.ts.map +1 -1
- package/.internal/charts/map/MapSeries.js +26 -0
- package/.internal/charts/map/MapSeries.js.map +1 -1
- package/.internal/charts/percent/PercentDefaultTheme.js +2 -2
- package/.internal/charts/percent/PercentDefaultTheme.js.map +1 -1
- package/.internal/charts/stock/StockChart.d.ts +9 -1
- package/.internal/charts/stock/StockChart.d.ts.map +1 -1
- package/.internal/charts/stock/StockChart.js +9 -1
- package/.internal/charts/stock/StockChart.js.map +1 -1
- package/.internal/charts/stock/toolbar/PeriodSelector.d.ts +1 -0
- package/.internal/charts/stock/toolbar/PeriodSelector.d.ts.map +1 -1
- package/.internal/charts/stock/toolbar/PeriodSelector.js +21 -0
- package/.internal/charts/stock/toolbar/PeriodSelector.js.map +1 -1
- package/.internal/charts/xy/axes/Axis.d.ts +2 -0
- package/.internal/charts/xy/axes/Axis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/Axis.js +17 -0
- package/.internal/charts/xy/axes/Axis.js.map +1 -1
- package/.internal/charts/xy/axes/AxisRendererX.js +2 -2
- package/.internal/charts/xy/axes/AxisRendererX.js.map +1 -1
- package/.internal/charts/xy/axes/AxisRendererY.d.ts.map +1 -1
- package/.internal/charts/xy/axes/AxisRendererY.js +2 -3
- package/.internal/charts/xy/axes/AxisRendererY.js.map +1 -1
- package/.internal/core/Registry.d.ts +4 -0
- package/.internal/core/Registry.d.ts.map +1 -1
- package/.internal/core/Registry.js +9 -0
- package/.internal/core/Registry.js.map +1 -1
- package/.internal/core/render/Container.js +3 -3
- package/.internal/core/render/Container.js.map +1 -1
- package/.internal/core/render/Graphics.d.ts +5 -0
- package/.internal/core/render/Graphics.d.ts.map +1 -1
- package/.internal/core/render/Graphics.js +4 -1
- package/.internal/core/render/Graphics.js.map +1 -1
- package/.internal/core/render/Label.d.ts +3 -0
- package/.internal/core/render/Label.d.ts.map +1 -1
- package/.internal/core/render/Label.js.map +1 -1
- package/.internal/core/render/PointedRectangle.d.ts.map +1 -1
- package/.internal/core/render/PointedRectangle.js +1 -0
- package/.internal/core/render/PointedRectangle.js.map +1 -1
- package/.internal/core/render/RoundedRectangle.d.ts.map +1 -1
- package/.internal/core/render/RoundedRectangle.js +11 -9
- package/.internal/core/render/RoundedRectangle.js.map +1 -1
- package/.internal/core/render/Series.d.ts +0 -9
- package/.internal/core/render/Series.d.ts.map +1 -1
- package/.internal/core/render/Series.js.map +1 -1
- package/.internal/core/render/Star.d.ts.map +1 -1
- package/.internal/core/render/Star.js +1 -0
- package/.internal/core/render/Star.js.map +1 -1
- package/.internal/core/render/Text.d.ts +6 -0
- package/.internal/core/render/Text.d.ts.map +1 -1
- package/.internal/core/render/Text.js +39 -0
- package/.internal/core/render/Text.js.map +1 -1
- package/.internal/core/render/Triangle.d.ts.map +1 -1
- package/.internal/core/render/Triangle.js +1 -0
- package/.internal/core/render/Triangle.js.map +1 -1
- package/.internal/core/render/backend/CanvasRenderer.d.ts +1 -0
- package/.internal/core/render/backend/CanvasRenderer.d.ts.map +1 -1
- package/.internal/core/render/backend/CanvasRenderer.js +306 -210
- package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
- package/.internal/core/render/patterns/PathPattern.d.ts +26 -0
- package/.internal/core/render/patterns/PathPattern.d.ts.map +1 -0
- package/.internal/core/render/patterns/PathPattern.js +100 -0
- package/.internal/core/render/patterns/PathPattern.js.map +1 -0
- package/.internal/core/util/List.d.ts.map +1 -1
- package/.internal/core/util/List.js.map +1 -1
- package/.internal/themes/DefaultTheme.js +1 -1
- package/.internal/themes/DefaultTheme.js.map +1 -1
- package/CHANGELOG.md +28 -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/jest/package.json +1 -1
- package/examples/javascript/json/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-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/jest/package.json +1 -1
- package/examples/typescript/json/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/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
|
@@ -38,6 +38,43 @@ function checkEvenArgs(name, actual, expected) {
|
|
|
38
38
|
throw new Error("Arguments for " + name + " must be in pairs of " + expected);
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* @ignore
|
|
43
|
+
* This splits the flag so that way 0017 will be processed as 0 0 17
|
|
44
|
+
*
|
|
45
|
+
* This is important for weird paths like `M17 5A1 1 0 0017 30 1 1 0 0017 5`
|
|
46
|
+
*/
|
|
47
|
+
function splitArcFlags(args) {
|
|
48
|
+
for (var i = 0; i < args.length; i += 7) {
|
|
49
|
+
var index = i + 3;
|
|
50
|
+
var flag = args[index];
|
|
51
|
+
if (flag.length > 1) {
|
|
52
|
+
var a = /^([01])([01])(.*)$/.exec(flag);
|
|
53
|
+
if (a !== null) {
|
|
54
|
+
args.splice(index, 0, a[1]);
|
|
55
|
+
++index;
|
|
56
|
+
args.splice(index, 0, a[2]);
|
|
57
|
+
++index;
|
|
58
|
+
if (a[3].length > 0) {
|
|
59
|
+
args[index] = a[3];
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
args.splice(index, 1);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
++index;
|
|
67
|
+
flag = args[index];
|
|
68
|
+
if (flag.length > 1) {
|
|
69
|
+
var a = /^([01])(.+)$/.exec(flag);
|
|
70
|
+
if (a !== null) {
|
|
71
|
+
args.splice(index, 0, a[1]);
|
|
72
|
+
++index;
|
|
73
|
+
args[index] = a[2];
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
41
78
|
/**
|
|
42
79
|
* @ignore
|
|
43
80
|
*/
|
|
@@ -1950,7 +1987,7 @@ var CanvasGraphics = /** @class */ (function (_super) {
|
|
|
1950
1987
|
var rest = match[2];
|
|
1951
1988
|
var args = [];
|
|
1952
1989
|
while ((match = ARGS_REGEXP.exec(rest)) !== null) {
|
|
1953
|
-
args.push(
|
|
1990
|
+
args.push(match[1]);
|
|
1954
1991
|
}
|
|
1955
1992
|
// Reset control point
|
|
1956
1993
|
if (name_1 !== "S" && name_1 !== "s" && name_1 !== "C" && name_1 !== "c") {
|
|
@@ -1965,91 +2002,91 @@ var CanvasGraphics = /** @class */ (function (_super) {
|
|
|
1965
2002
|
switch (name_1) {
|
|
1966
2003
|
case "M":
|
|
1967
2004
|
checkEvenArgs(name_1, args.length, 2);
|
|
1968
|
-
x = args[0];
|
|
1969
|
-
y = args[1];
|
|
2005
|
+
x = +args[0];
|
|
2006
|
+
y = +args[1];
|
|
1970
2007
|
this.moveTo(x, y);
|
|
1971
2008
|
for (var i = 2; i < args.length; i += 2) {
|
|
1972
|
-
x = args[i];
|
|
1973
|
-
y = args[i + 1];
|
|
2009
|
+
x = +args[i];
|
|
2010
|
+
y = +args[i + 1];
|
|
1974
2011
|
this.lineTo(x, y);
|
|
1975
2012
|
}
|
|
1976
2013
|
break;
|
|
1977
2014
|
case "m":
|
|
1978
2015
|
checkEvenArgs(name_1, args.length, 2);
|
|
1979
|
-
x += args[0];
|
|
1980
|
-
y += args[1];
|
|
2016
|
+
x += +args[0];
|
|
2017
|
+
y += +args[1];
|
|
1981
2018
|
this.moveTo(x, y);
|
|
1982
2019
|
for (var i = 2; i < args.length; i += 2) {
|
|
1983
|
-
x += args[i];
|
|
1984
|
-
y += args[i + 1];
|
|
2020
|
+
x += +args[i];
|
|
2021
|
+
y += +args[i + 1];
|
|
1985
2022
|
this.lineTo(x, y);
|
|
1986
2023
|
}
|
|
1987
2024
|
break;
|
|
1988
2025
|
case "L":
|
|
1989
2026
|
checkEvenArgs(name_1, args.length, 2);
|
|
1990
2027
|
for (var i = 0; i < args.length; i += 2) {
|
|
1991
|
-
x = args[i];
|
|
1992
|
-
y = args[i + 1];
|
|
2028
|
+
x = +args[i];
|
|
2029
|
+
y = +args[i + 1];
|
|
1993
2030
|
this.lineTo(x, y);
|
|
1994
2031
|
}
|
|
1995
2032
|
break;
|
|
1996
2033
|
case "l":
|
|
1997
2034
|
checkEvenArgs(name_1, args.length, 2);
|
|
1998
2035
|
for (var i = 0; i < args.length; i += 2) {
|
|
1999
|
-
x += args[i];
|
|
2000
|
-
y += args[i + 1];
|
|
2036
|
+
x += +args[i];
|
|
2037
|
+
y += +args[i + 1];
|
|
2001
2038
|
this.lineTo(x, y);
|
|
2002
2039
|
}
|
|
2003
2040
|
break;
|
|
2004
2041
|
case "H":
|
|
2005
2042
|
checkMinArgs(name_1, args.length, 1);
|
|
2006
2043
|
for (var i = 0; i < args.length; ++i) {
|
|
2007
|
-
x = args[i];
|
|
2044
|
+
x = +args[i];
|
|
2008
2045
|
this.lineTo(x, y);
|
|
2009
2046
|
}
|
|
2010
2047
|
break;
|
|
2011
2048
|
case "h":
|
|
2012
2049
|
checkMinArgs(name_1, args.length, 1);
|
|
2013
2050
|
for (var i = 0; i < args.length; ++i) {
|
|
2014
|
-
x += args[i];
|
|
2051
|
+
x += +args[i];
|
|
2015
2052
|
this.lineTo(x, y);
|
|
2016
2053
|
}
|
|
2017
2054
|
break;
|
|
2018
2055
|
case "V":
|
|
2019
2056
|
checkMinArgs(name_1, args.length, 1);
|
|
2020
2057
|
for (var i = 0; i < args.length; ++i) {
|
|
2021
|
-
y = args[i];
|
|
2058
|
+
y = +args[i];
|
|
2022
2059
|
this.lineTo(x, y);
|
|
2023
2060
|
}
|
|
2024
2061
|
break;
|
|
2025
2062
|
case "v":
|
|
2026
2063
|
checkMinArgs(name_1, args.length, 1);
|
|
2027
2064
|
for (var i = 0; i < args.length; ++i) {
|
|
2028
|
-
y += args[i];
|
|
2065
|
+
y += +args[i];
|
|
2029
2066
|
this.lineTo(x, y);
|
|
2030
2067
|
}
|
|
2031
2068
|
break;
|
|
2032
2069
|
case "C":
|
|
2033
2070
|
checkEvenArgs(name_1, args.length, 6);
|
|
2034
2071
|
for (var i = 0; i < args.length; i += 6) {
|
|
2035
|
-
var x1 = args[i];
|
|
2036
|
-
var y1 = args[i + 1];
|
|
2037
|
-
cpx = args[i + 2];
|
|
2038
|
-
cpy = args[i + 3];
|
|
2039
|
-
x = args[i + 4];
|
|
2040
|
-
y = args[i + 5];
|
|
2072
|
+
var x1 = +args[i];
|
|
2073
|
+
var y1 = +args[i + 1];
|
|
2074
|
+
cpx = +args[i + 2];
|
|
2075
|
+
cpy = +args[i + 3];
|
|
2076
|
+
x = +args[i + 4];
|
|
2077
|
+
y = +args[i + 5];
|
|
2041
2078
|
this.bezierCurveTo(x1, y1, cpx, cpy, x, y);
|
|
2042
2079
|
}
|
|
2043
2080
|
break;
|
|
2044
2081
|
case "c":
|
|
2045
2082
|
checkEvenArgs(name_1, args.length, 6);
|
|
2046
2083
|
for (var i = 0; i < args.length; i += 6) {
|
|
2047
|
-
var x1 = args[i] + x;
|
|
2048
|
-
var y1 = args[i + 1] + y;
|
|
2049
|
-
cpx = args[i + 2] + x;
|
|
2050
|
-
cpy = args[i + 3] + y;
|
|
2051
|
-
x += args[i + 4];
|
|
2052
|
-
y += args[i + 5];
|
|
2084
|
+
var x1 = +args[i] + x;
|
|
2085
|
+
var y1 = +args[i + 1] + y;
|
|
2086
|
+
cpx = +args[i + 2] + x;
|
|
2087
|
+
cpy = +args[i + 3] + y;
|
|
2088
|
+
x += +args[i + 4];
|
|
2089
|
+
y += +args[i + 5];
|
|
2053
2090
|
this.bezierCurveTo(x1, y1, cpx, cpy, x, y);
|
|
2054
2091
|
}
|
|
2055
2092
|
break;
|
|
@@ -2062,10 +2099,10 @@ var CanvasGraphics = /** @class */ (function (_super) {
|
|
|
2062
2099
|
for (var i = 0; i < args.length; i += 4) {
|
|
2063
2100
|
var x1 = 2 * x - cpx;
|
|
2064
2101
|
var y1 = 2 * y - cpy;
|
|
2065
|
-
cpx = args[i];
|
|
2066
|
-
cpy = args[i + 1];
|
|
2067
|
-
x = args[i + 2];
|
|
2068
|
-
y = args[i + 3];
|
|
2102
|
+
cpx = +args[i];
|
|
2103
|
+
cpy = +args[i + 1];
|
|
2104
|
+
x = +args[i + 2];
|
|
2105
|
+
y = +args[i + 3];
|
|
2069
2106
|
this.bezierCurveTo(x1, y1, cpx, cpy, x, y);
|
|
2070
2107
|
}
|
|
2071
2108
|
break;
|
|
@@ -2078,30 +2115,30 @@ var CanvasGraphics = /** @class */ (function (_super) {
|
|
|
2078
2115
|
for (var i = 0; i < args.length; i += 4) {
|
|
2079
2116
|
var x1 = 2 * x - cpx;
|
|
2080
2117
|
var y1 = 2 * y - cpy;
|
|
2081
|
-
cpx = args[i] + x;
|
|
2082
|
-
cpy = args[i + 1] + y;
|
|
2083
|
-
x += args[i + 2];
|
|
2084
|
-
y += args[i + 3];
|
|
2118
|
+
cpx = +args[i] + x;
|
|
2119
|
+
cpy = +args[i + 1] + y;
|
|
2120
|
+
x += +args[i + 2];
|
|
2121
|
+
y += +args[i + 3];
|
|
2085
2122
|
this.bezierCurveTo(x1, y1, cpx, cpy, x, y);
|
|
2086
2123
|
}
|
|
2087
2124
|
break;
|
|
2088
2125
|
case "Q":
|
|
2089
2126
|
checkEvenArgs(name_1, args.length, 4);
|
|
2090
2127
|
for (var i = 0; i < args.length; i += 4) {
|
|
2091
|
-
qcpx = args[i];
|
|
2092
|
-
qcpy = args[i + 1];
|
|
2093
|
-
x = args[i + 2];
|
|
2094
|
-
y = args[i + 3];
|
|
2128
|
+
qcpx = +args[i];
|
|
2129
|
+
qcpy = +args[i + 1];
|
|
2130
|
+
x = +args[i + 2];
|
|
2131
|
+
y = +args[i + 3];
|
|
2095
2132
|
this.quadraticCurveTo(qcpx, qcpy, x, y);
|
|
2096
2133
|
}
|
|
2097
2134
|
break;
|
|
2098
2135
|
case "q":
|
|
2099
2136
|
checkEvenArgs(name_1, args.length, 4);
|
|
2100
2137
|
for (var i = 0; i < args.length; i += 4) {
|
|
2101
|
-
qcpx = args[i] + x;
|
|
2102
|
-
qcpy = args[i + 1] + y;
|
|
2103
|
-
x += args[i + 2];
|
|
2104
|
-
y += args[i + 3];
|
|
2138
|
+
qcpx = +args[i] + x;
|
|
2139
|
+
qcpy = +args[i + 1] + y;
|
|
2140
|
+
x += +args[i + 2];
|
|
2141
|
+
y += +args[i + 3];
|
|
2105
2142
|
this.quadraticCurveTo(qcpx, qcpy, x, y);
|
|
2106
2143
|
}
|
|
2107
2144
|
break;
|
|
@@ -2114,8 +2151,8 @@ var CanvasGraphics = /** @class */ (function (_super) {
|
|
|
2114
2151
|
for (var i = 0; i < args.length; i += 2) {
|
|
2115
2152
|
qcpx = 2 * x - qcpx;
|
|
2116
2153
|
qcpy = 2 * y - qcpy;
|
|
2117
|
-
x = args[i];
|
|
2118
|
-
y = args[i + 1];
|
|
2154
|
+
x = +args[i];
|
|
2155
|
+
y = +args[i + 1];
|
|
2119
2156
|
this.quadraticCurveTo(qcpx, qcpy, x, y);
|
|
2120
2157
|
}
|
|
2121
2158
|
break;
|
|
@@ -2128,18 +2165,19 @@ var CanvasGraphics = /** @class */ (function (_super) {
|
|
|
2128
2165
|
for (var i = 0; i < args.length; i += 2) {
|
|
2129
2166
|
qcpx = 2 * x - qcpx;
|
|
2130
2167
|
qcpy = 2 * y - qcpy;
|
|
2131
|
-
x += args[i];
|
|
2132
|
-
y += args[i + 1];
|
|
2168
|
+
x += +args[i];
|
|
2169
|
+
y += +args[i + 1];
|
|
2133
2170
|
this.quadraticCurveTo(qcpx, qcpy, x, y);
|
|
2134
2171
|
}
|
|
2135
2172
|
break;
|
|
2136
2173
|
case "A":
|
|
2137
2174
|
case "a":
|
|
2138
2175
|
var relative = (name_1 === "a");
|
|
2176
|
+
splitArcFlags(args);
|
|
2139
2177
|
checkEvenArgs(name_1, args.length, 7);
|
|
2140
2178
|
for (var i = 0; i < args.length; i += 7) {
|
|
2141
|
-
var cx = args[i + 5];
|
|
2142
|
-
var cy = args[i + 6];
|
|
2179
|
+
var cx = +args[i + 5];
|
|
2180
|
+
var cy = +args[i + 6];
|
|
2143
2181
|
if (relative) {
|
|
2144
2182
|
cx += x;
|
|
2145
2183
|
cy += y;
|
|
@@ -2147,11 +2185,11 @@ var CanvasGraphics = /** @class */ (function (_super) {
|
|
|
2147
2185
|
var bs = arcToBezier({
|
|
2148
2186
|
px: x,
|
|
2149
2187
|
py: y,
|
|
2150
|
-
rx: args[i],
|
|
2151
|
-
ry: args[i + 1],
|
|
2152
|
-
xAxisRotation: args[i + 2],
|
|
2153
|
-
largeArcFlag: assertBinary(args[i + 3]),
|
|
2154
|
-
sweepFlag: assertBinary(args[i + 4]),
|
|
2188
|
+
rx: +args[i],
|
|
2189
|
+
ry: +args[i + 1],
|
|
2190
|
+
xAxisRotation: +args[i + 2],
|
|
2191
|
+
largeArcFlag: assertBinary(+args[i + 3]),
|
|
2192
|
+
sweepFlag: assertBinary(+args[i + 4]),
|
|
2155
2193
|
cx: cx,
|
|
2156
2194
|
cy: cy,
|
|
2157
2195
|
});
|
|
@@ -2562,6 +2600,14 @@ var CanvasText = /** @class */ (function (_super) {
|
|
|
2562
2600
|
}
|
|
2563
2601
|
}
|
|
2564
2602
|
});
|
|
2603
|
+
Object.defineProperty(CanvasText.prototype, "_ignoreFontWeight", {
|
|
2604
|
+
enumerable: false,
|
|
2605
|
+
configurable: true,
|
|
2606
|
+
writable: true,
|
|
2607
|
+
value: function () {
|
|
2608
|
+
return /apple/i.test(navigator.vendor);
|
|
2609
|
+
}
|
|
2610
|
+
});
|
|
2565
2611
|
Object.defineProperty(CanvasText.prototype, "_measure", {
|
|
2566
2612
|
enumerable: false,
|
|
2567
2613
|
configurable: true,
|
|
@@ -2581,7 +2627,7 @@ var CanvasText = /** @class */ (function (_super) {
|
|
|
2581
2627
|
// Pre-render
|
|
2582
2628
|
context.save();
|
|
2583
2629
|
ghostContext.save();
|
|
2584
|
-
this._prerender(layer, true,
|
|
2630
|
+
this._prerender(layer, true, this._ignoreFontWeight());
|
|
2585
2631
|
// Get default font metrix
|
|
2586
2632
|
var refText = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ";
|
|
2587
2633
|
// Split up text into lines
|
|
@@ -3234,173 +3280,175 @@ var CanvasRadialText = /** @class */ (function (_super) {
|
|
|
3234
3280
|
configurable: true,
|
|
3235
3281
|
writable: true,
|
|
3236
3282
|
value: function (parentLayer) {
|
|
3237
|
-
|
|
3238
|
-
|
|
3239
|
-
|
|
3240
|
-
|
|
3241
|
-
|
|
3242
|
-
|
|
3243
|
-
|
|
3244
|
-
context.save();
|
|
3245
|
-
if (interactive) {
|
|
3246
|
-
ghostContext.save();
|
|
3247
|
-
}
|
|
3248
|
-
// Init
|
|
3249
|
-
var radius = (this.radius || 0);
|
|
3250
|
-
var startAngle = (this.startAngle || 0);
|
|
3251
|
-
var deltaAngle = 0;
|
|
3252
|
-
var orientation = this.orientation;
|
|
3253
|
-
var inward = orientation == "auto" ? "auto" : orientation == "inward";
|
|
3254
|
-
var inside = this.inside;
|
|
3255
|
-
var align = this.style.textAlign || "left";
|
|
3256
|
-
var kerning = this.kerning || 0;
|
|
3257
|
-
var clockwise = align == "left" ? 1 : -1;
|
|
3258
|
-
var shouldReverse = !this._textReversed;
|
|
3259
|
-
// We need measurements in order to properly position text for alignment
|
|
3260
|
-
if (!this._textInfo) {
|
|
3261
|
-
this._measure(layer);
|
|
3262
|
-
}
|
|
3263
|
-
// Check if we need to invert the whole stuff
|
|
3264
|
-
if (inward == "auto") {
|
|
3265
|
-
// Calc max angle so we know whether we need to flip it
|
|
3266
|
-
var maxAngle_1 = 0;
|
|
3267
|
-
var midAngle = 0;
|
|
3268
|
-
$array.each(this._textInfo, function (line, _index) {
|
|
3269
|
-
var deltaAngle = startAngle + (line.width / (radius - line.height)) / 2 * -clockwise;
|
|
3270
|
-
if (deltaAngle > maxAngle_1) {
|
|
3271
|
-
maxAngle_1 = deltaAngle;
|
|
3272
|
-
}
|
|
3273
|
-
});
|
|
3274
|
-
if (align == "left") {
|
|
3275
|
-
midAngle = (maxAngle_1 + deltaAngle / 2) * $math.DEGREES;
|
|
3276
|
-
}
|
|
3277
|
-
else if (align == "right") {
|
|
3278
|
-
midAngle = (maxAngle_1 - deltaAngle / 2) * $math.DEGREES;
|
|
3279
|
-
}
|
|
3280
|
-
else {
|
|
3281
|
-
midAngle = startAngle * $math.DEGREES;
|
|
3282
|
-
}
|
|
3283
|
-
midAngle = $math.normalizeAngle(midAngle);
|
|
3284
|
-
inward = (midAngle >= 270) || (midAngle <= 90);
|
|
3285
|
-
}
|
|
3286
|
-
if (inward == true && shouldReverse) {
|
|
3287
|
-
this._textInfo.reverse();
|
|
3288
|
-
this._textReversed = true;
|
|
3289
|
-
}
|
|
3290
|
-
// if ((inward == false && align == "left") || (inward == true && align == "right")) {
|
|
3291
|
-
// clockwise *= -1;
|
|
3292
|
-
// }
|
|
3293
|
-
// Process text info produced by _measure()
|
|
3294
|
-
$array.each(this._textInfo, function (line, _index) {
|
|
3295
|
-
var textHeight = line.height;
|
|
3296
|
-
// Adjust radius (for `inside = false`)
|
|
3297
|
-
// Radius adjustment for `inside = false` is below the line calculation
|
|
3298
|
-
if (!inside) {
|
|
3299
|
-
radius += textHeight;
|
|
3300
|
-
}
|
|
3301
|
-
// Reverse letters if we're painting them counter-clockwise
|
|
3302
|
-
if (((clockwise == -1 && inward) || (clockwise == 1 && !inward)) && shouldReverse) {
|
|
3303
|
-
line.textChunks.reverse();
|
|
3304
|
-
}
|
|
3305
|
-
// Init angles
|
|
3306
|
-
var lineStartAngle = startAngle;
|
|
3307
|
-
deltaAngle = 0;
|
|
3308
|
-
// Adjust for center-align
|
|
3309
|
-
if (align == "center") {
|
|
3310
|
-
lineStartAngle += (line.width / (radius - textHeight)) / 2 * -clockwise;
|
|
3311
|
-
deltaAngle = lineStartAngle - startAngle;
|
|
3312
|
-
}
|
|
3313
|
-
// if (inward == "auto") {
|
|
3314
|
-
// let midAngle;
|
|
3315
|
-
// if (align == "left") {
|
|
3316
|
-
// midAngle = (lineStartAngle + deltaAngle / 2) * $math.DEGREES;
|
|
3317
|
-
// }
|
|
3318
|
-
// else if () {
|
|
3319
|
-
// midAngle = (lineStartAngle - deltaAngle / 2) * $math.DEGREES;
|
|
3320
|
-
// }
|
|
3321
|
-
// inward = (midAngle >= 270) || (midAngle <= 90);
|
|
3322
|
-
// }
|
|
3323
|
-
// Rotate letters if they are facing outward
|
|
3324
|
-
lineStartAngle += (Math.PI * (inward ? 0 : 1)); // Rotate 180 if outward
|
|
3283
|
+
if (this._textVisible) {
|
|
3284
|
+
var layer = this._layer || parentLayer;
|
|
3285
|
+
this._prerender(layer);
|
|
3286
|
+
var interactive_2 = this._isInteractive();
|
|
3287
|
+
var context_3 = layer.context;
|
|
3288
|
+
var layerDirty_2 = layer.dirty;
|
|
3289
|
+
var ghostContext_3 = this._renderer._ghostContext;
|
|
3325
3290
|
// Savepoint
|
|
3326
|
-
|
|
3327
|
-
if (
|
|
3328
|
-
|
|
3291
|
+
context_3.save();
|
|
3292
|
+
if (interactive_2) {
|
|
3293
|
+
ghostContext_3.save();
|
|
3329
3294
|
}
|
|
3330
|
-
//
|
|
3331
|
-
|
|
3332
|
-
|
|
3333
|
-
|
|
3295
|
+
// Init
|
|
3296
|
+
var radius_1 = (this.radius || 0);
|
|
3297
|
+
var startAngle_1 = (this.startAngle || 0);
|
|
3298
|
+
var deltaAngle_1 = 0;
|
|
3299
|
+
var orientation_1 = this.orientation;
|
|
3300
|
+
var inward_1 = orientation_1 == "auto" ? "auto" : orientation_1 == "inward";
|
|
3301
|
+
var inside_1 = this.inside;
|
|
3302
|
+
var align_1 = this.style.textAlign || "left";
|
|
3303
|
+
var kerning_1 = this.kerning || 0;
|
|
3304
|
+
var clockwise_1 = align_1 == "left" ? 1 : -1;
|
|
3305
|
+
var shouldReverse_1 = !this._textReversed;
|
|
3306
|
+
// We need measurements in order to properly position text for alignment
|
|
3307
|
+
if (!this._textInfo) {
|
|
3308
|
+
this._measure(layer);
|
|
3334
3309
|
}
|
|
3335
|
-
|
|
3336
|
-
|
|
3337
|
-
//
|
|
3338
|
-
var
|
|
3339
|
-
var
|
|
3340
|
-
|
|
3341
|
-
|
|
3342
|
-
|
|
3343
|
-
|
|
3344
|
-
ghostContext.rotate(angleShift);
|
|
3345
|
-
}
|
|
3346
|
-
// Set style
|
|
3347
|
-
if (chunk.style) {
|
|
3348
|
-
context.save();
|
|
3349
|
-
ghostContext.save();
|
|
3350
|
-
context.font = chunk.style;
|
|
3351
|
-
if (interactive) {
|
|
3352
|
-
ghostContext.font = chunk.style;
|
|
3310
|
+
// Check if we need to invert the whole stuff
|
|
3311
|
+
if (inward_1 == "auto") {
|
|
3312
|
+
// Calc max angle so we know whether we need to flip it
|
|
3313
|
+
var maxAngle_1 = 0;
|
|
3314
|
+
var midAngle = 0;
|
|
3315
|
+
$array.each(this._textInfo, function (line, _index) {
|
|
3316
|
+
var deltaAngle = startAngle_1 + (line.width / (radius_1 - line.height)) / 2 * -clockwise_1;
|
|
3317
|
+
if (deltaAngle > maxAngle_1) {
|
|
3318
|
+
maxAngle_1 = deltaAngle;
|
|
3353
3319
|
}
|
|
3320
|
+
});
|
|
3321
|
+
if (align_1 == "left") {
|
|
3322
|
+
midAngle = (maxAngle_1 + deltaAngle_1 / 2) * $math.DEGREES;
|
|
3354
3323
|
}
|
|
3355
|
-
if (
|
|
3356
|
-
|
|
3357
|
-
context.fillStyle = chunk.fill.toCSS();
|
|
3358
|
-
// Color does not affect ghostContext so we not set it
|
|
3324
|
+
else if (align_1 == "right") {
|
|
3325
|
+
midAngle = (maxAngle_1 - deltaAngle_1 / 2) * $math.DEGREES;
|
|
3359
3326
|
}
|
|
3360
|
-
|
|
3361
|
-
|
|
3362
|
-
context.textAlign = "center";
|
|
3363
|
-
if (interactive) {
|
|
3364
|
-
ghostContext.textBaseline = "middle";
|
|
3365
|
-
ghostContext.textAlign = "center";
|
|
3327
|
+
else {
|
|
3328
|
+
midAngle = startAngle_1 * $math.DEGREES;
|
|
3366
3329
|
}
|
|
3367
|
-
|
|
3368
|
-
|
|
3369
|
-
|
|
3330
|
+
midAngle = $math.normalizeAngle(midAngle);
|
|
3331
|
+
inward_1 = (midAngle >= 270) || (midAngle <= 90);
|
|
3332
|
+
}
|
|
3333
|
+
if (inward_1 == true && shouldReverse_1) {
|
|
3334
|
+
this._textInfo.reverse();
|
|
3335
|
+
this._textReversed = true;
|
|
3336
|
+
}
|
|
3337
|
+
// if ((inward == false && align == "left") || (inward == true && align == "right")) {
|
|
3338
|
+
// clockwise *= -1;
|
|
3339
|
+
// }
|
|
3340
|
+
// Process text info produced by _measure()
|
|
3341
|
+
$array.each(this._textInfo, function (line, _index) {
|
|
3342
|
+
var textHeight = line.height;
|
|
3343
|
+
// Adjust radius (for `inside = false`)
|
|
3344
|
+
// Radius adjustment for `inside = false` is below the line calculation
|
|
3345
|
+
if (!inside_1) {
|
|
3346
|
+
radius_1 += textHeight;
|
|
3370
3347
|
}
|
|
3371
|
-
if
|
|
3372
|
-
|
|
3348
|
+
// Reverse letters if we're painting them counter-clockwise
|
|
3349
|
+
if (((clockwise_1 == -1 && inward_1) || (clockwise_1 == 1 && !inward_1)) && shouldReverse_1) {
|
|
3350
|
+
line.textChunks.reverse();
|
|
3373
3351
|
}
|
|
3374
|
-
|
|
3375
|
-
|
|
3376
|
-
|
|
3352
|
+
// Init angles
|
|
3353
|
+
var lineStartAngle = startAngle_1;
|
|
3354
|
+
deltaAngle_1 = 0;
|
|
3355
|
+
// Adjust for center-align
|
|
3356
|
+
if (align_1 == "center") {
|
|
3357
|
+
lineStartAngle += (line.width / (radius_1 - textHeight)) / 2 * -clockwise_1;
|
|
3358
|
+
deltaAngle_1 = lineStartAngle - startAngle_1;
|
|
3377
3359
|
}
|
|
3378
|
-
//
|
|
3379
|
-
|
|
3380
|
-
|
|
3381
|
-
|
|
3360
|
+
// if (inward == "auto") {
|
|
3361
|
+
// let midAngle;
|
|
3362
|
+
// if (align == "left") {
|
|
3363
|
+
// midAngle = (lineStartAngle + deltaAngle / 2) * $math.DEGREES;
|
|
3364
|
+
// }
|
|
3365
|
+
// else if () {
|
|
3366
|
+
// midAngle = (lineStartAngle - deltaAngle / 2) * $math.DEGREES;
|
|
3367
|
+
// }
|
|
3368
|
+
// inward = (midAngle >= 270) || (midAngle <= 90);
|
|
3369
|
+
// }
|
|
3370
|
+
// Rotate letters if they are facing outward
|
|
3371
|
+
lineStartAngle += (Math.PI * (inward_1 ? 0 : 1)); // Rotate 180 if outward
|
|
3372
|
+
// Savepoint
|
|
3373
|
+
context_3.save();
|
|
3374
|
+
if (interactive_2) {
|
|
3375
|
+
ghostContext_3.save();
|
|
3382
3376
|
}
|
|
3383
|
-
//
|
|
3384
|
-
|
|
3385
|
-
|
|
3386
|
-
|
|
3387
|
-
|
|
3377
|
+
// Assume starting angle
|
|
3378
|
+
context_3.rotate(lineStartAngle);
|
|
3379
|
+
if (interactive_2) {
|
|
3380
|
+
ghostContext_3.rotate(lineStartAngle);
|
|
3381
|
+
}
|
|
3382
|
+
var angleShift = 0;
|
|
3383
|
+
$array.each(line.textChunks, function (chunk, _index) {
|
|
3384
|
+
// Draw the letter
|
|
3385
|
+
var char = chunk.text;
|
|
3386
|
+
var charWidth = chunk.width;
|
|
3387
|
+
// Rotate half a letter
|
|
3388
|
+
angleShift = (charWidth / 2) / (radius_1 - textHeight) * clockwise_1;
|
|
3389
|
+
context_3.rotate(angleShift);
|
|
3390
|
+
if (interactive_2) {
|
|
3391
|
+
ghostContext_3.rotate(angleShift);
|
|
3392
|
+
}
|
|
3393
|
+
// Set style
|
|
3394
|
+
if (chunk.style) {
|
|
3395
|
+
context_3.save();
|
|
3396
|
+
ghostContext_3.save();
|
|
3397
|
+
context_3.font = chunk.style;
|
|
3398
|
+
if (interactive_2) {
|
|
3399
|
+
ghostContext_3.font = chunk.style;
|
|
3400
|
+
}
|
|
3401
|
+
}
|
|
3402
|
+
if (chunk.fill) {
|
|
3403
|
+
context_3.save();
|
|
3404
|
+
context_3.fillStyle = chunk.fill.toCSS();
|
|
3405
|
+
// Color does not affect ghostContext so we not set it
|
|
3406
|
+
}
|
|
3407
|
+
// Center letters
|
|
3408
|
+
context_3.textBaseline = "middle";
|
|
3409
|
+
context_3.textAlign = "center";
|
|
3410
|
+
if (interactive_2) {
|
|
3411
|
+
ghostContext_3.textBaseline = "middle";
|
|
3412
|
+
ghostContext_3.textAlign = "center";
|
|
3413
|
+
}
|
|
3414
|
+
// Plop the letter
|
|
3415
|
+
if (layerDirty_2) {
|
|
3416
|
+
context_3.fillText(char, 0, (inward_1 ? 1 : -1) * (0 - radius_1 + textHeight / 2));
|
|
3417
|
+
}
|
|
3418
|
+
if (interactive_2) {
|
|
3419
|
+
ghostContext_3.fillText(char, 0, (inward_1 ? 1 : -1) * (0 - radius_1 + textHeight / 2));
|
|
3420
|
+
}
|
|
3421
|
+
if (chunk.fill) {
|
|
3422
|
+
context_3.restore();
|
|
3423
|
+
// Color does not affect ghostContext so we not set it
|
|
3424
|
+
}
|
|
3425
|
+
// Reset style
|
|
3426
|
+
if (chunk.style) {
|
|
3427
|
+
context_3.restore();
|
|
3428
|
+
ghostContext_3.restore();
|
|
3429
|
+
}
|
|
3430
|
+
// Rotate half a letter and add spacing
|
|
3431
|
+
angleShift = (charWidth / 2 + kerning_1) / (radius_1 - textHeight) * clockwise_1;
|
|
3432
|
+
context_3.rotate(angleShift);
|
|
3433
|
+
if (interactive_2) {
|
|
3434
|
+
ghostContext_3.rotate(angleShift);
|
|
3435
|
+
}
|
|
3436
|
+
});
|
|
3437
|
+
// Restore angle
|
|
3438
|
+
context_3.restore();
|
|
3439
|
+
if (interactive_2) {
|
|
3440
|
+
ghostContext_3.restore();
|
|
3441
|
+
}
|
|
3442
|
+
// Adjust radius (for `inside = true`)
|
|
3443
|
+
if (inside_1) {
|
|
3444
|
+
radius_1 -= textHeight;
|
|
3388
3445
|
}
|
|
3389
3446
|
});
|
|
3390
|
-
// Restore
|
|
3391
|
-
|
|
3392
|
-
if (
|
|
3393
|
-
|
|
3394
|
-
}
|
|
3395
|
-
// Adjust radius (for `inside = true`)
|
|
3396
|
-
if (inside) {
|
|
3397
|
-
radius -= textHeight;
|
|
3447
|
+
// Restore
|
|
3448
|
+
context_3.restore();
|
|
3449
|
+
if (interactive_2) {
|
|
3450
|
+
ghostContext_3.restore();
|
|
3398
3451
|
}
|
|
3399
|
-
});
|
|
3400
|
-
// Restore
|
|
3401
|
-
context.restore();
|
|
3402
|
-
if (interactive) {
|
|
3403
|
-
ghostContext.restore();
|
|
3404
3452
|
}
|
|
3405
3453
|
}
|
|
3406
3454
|
});
|
|
@@ -3426,7 +3474,14 @@ var CanvasRadialText = /** @class */ (function (_super) {
|
|
|
3426
3474
|
var context = layer.context;
|
|
3427
3475
|
var ghostContext = this._renderer._ghostContext;
|
|
3428
3476
|
var rtl = this.style.direction == "rtl";
|
|
3477
|
+
var oversizedBehavior = this.style.oversizedBehavior;
|
|
3478
|
+
var maxWidth = this.style.maxWidth;
|
|
3479
|
+
var truncate = $type.isNumber(maxWidth) && oversizedBehavior == "truncate";
|
|
3480
|
+
var ellipsis = this.style.ellipsis || "";
|
|
3481
|
+
var ellipsisMetrics;
|
|
3482
|
+
//const wrap = $type.isNumber(maxWidth) && (oversizedBehavior == "wrap" || oversizedBehavior == "wrap-no-break");
|
|
3429
3483
|
// Reset text info
|
|
3484
|
+
this._textVisible = true;
|
|
3430
3485
|
this._textInfo = [];
|
|
3431
3486
|
this._textReversed = false;
|
|
3432
3487
|
// Pre-render
|
|
@@ -3436,6 +3491,7 @@ var CanvasRadialText = /** @class */ (function (_super) {
|
|
|
3436
3491
|
// Split up text into lines
|
|
3437
3492
|
var lines = this.text.toString().replace(/\r/g, "").split(/\n/);
|
|
3438
3493
|
var styleRestored = true;
|
|
3494
|
+
var totalWidth = 0;
|
|
3439
3495
|
// Iterate through the lines
|
|
3440
3496
|
var offsetY = 0;
|
|
3441
3497
|
$array.each(lines, function (line, _index) {
|
|
@@ -3483,6 +3539,9 @@ var CanvasRadialText = /** @class */ (function (_super) {
|
|
|
3483
3539
|
}
|
|
3484
3540
|
styleRestored = false;
|
|
3485
3541
|
}
|
|
3542
|
+
if (truncate) {
|
|
3543
|
+
ellipsisMetrics = _this._measureText(ellipsis, context);
|
|
3544
|
+
}
|
|
3486
3545
|
}
|
|
3487
3546
|
// Text format
|
|
3488
3547
|
else if (chunk.type == "value") {
|
|
@@ -3523,6 +3582,40 @@ var CanvasRadialText = /** @class */ (function (_super) {
|
|
|
3523
3582
|
offsetY: chunkHeight,
|
|
3524
3583
|
textDecoration: undefined
|
|
3525
3584
|
});
|
|
3585
|
+
totalWidth += chunkWidth;
|
|
3586
|
+
// Handle oversized behavior
|
|
3587
|
+
if (truncate) {
|
|
3588
|
+
// Measure ellipsis and check if it fits
|
|
3589
|
+
if (!ellipsisMetrics) {
|
|
3590
|
+
ellipsisMetrics = _this._measureText(ellipsis, context);
|
|
3591
|
+
}
|
|
3592
|
+
var ellipsisWidth = ellipsisMetrics.actualBoundingBoxLeft + ellipsisMetrics.actualBoundingBoxRight;
|
|
3593
|
+
totalWidth += ellipsisWidth;
|
|
3594
|
+
if ((totalWidth + ellipsisWidth) > maxWidth) {
|
|
3595
|
+
if (lineInfo.textChunks.length == 1) {
|
|
3596
|
+
_this._textVisible = false;
|
|
3597
|
+
}
|
|
3598
|
+
else {
|
|
3599
|
+
lineInfo.width += ellipsisWidth;
|
|
3600
|
+
lineInfo.left += ellipsisMetrics.actualBoundingBoxLeft;
|
|
3601
|
+
lineInfo.right += ellipsisMetrics.actualBoundingBoxRight;
|
|
3602
|
+
lineInfo.textChunks.push({
|
|
3603
|
+
style: currentStyle,
|
|
3604
|
+
fill: currentFill,
|
|
3605
|
+
text: ellipsis,
|
|
3606
|
+
width: ellipsisWidth,
|
|
3607
|
+
height: chunkHeight + ellipsisMetrics.actualBoundingBoxDescent,
|
|
3608
|
+
left: ellipsisMetrics.actualBoundingBoxLeft,
|
|
3609
|
+
right: ellipsisMetrics.actualBoundingBoxRight,
|
|
3610
|
+
ascent: ellipsisMetrics.actualBoundingBoxAscent,
|
|
3611
|
+
offsetX: 0,
|
|
3612
|
+
offsetY: chunkHeight,
|
|
3613
|
+
textDecoration: undefined
|
|
3614
|
+
});
|
|
3615
|
+
}
|
|
3616
|
+
break;
|
|
3617
|
+
}
|
|
3618
|
+
}
|
|
3526
3619
|
if (rtl) {
|
|
3527
3620
|
break;
|
|
3528
3621
|
}
|
|
@@ -3543,6 +3636,9 @@ var CanvasRadialText = /** @class */ (function (_super) {
|
|
|
3543
3636
|
context.restore();
|
|
3544
3637
|
ghostContext.restore();
|
|
3545
3638
|
}
|
|
3639
|
+
if (oversizedBehavior == "hide" && (totalWidth > maxWidth)) {
|
|
3640
|
+
this._textVisible = false;
|
|
3641
|
+
}
|
|
3546
3642
|
// Adjust chunk internal offsets
|
|
3547
3643
|
$array.each(this._textInfo, function (lineInfo) {
|
|
3548
3644
|
$array.each(lineInfo.textChunks, function (chunk) {
|