1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.interpolateTransformSvg = exports.interpolateTransformCss = void 0;
|
7 |
|
8 | var _number = _interopRequireDefault(require("../number.js"));
|
9 |
|
10 | var _parse = require("./parse.js");
|
11 |
|
12 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13 |
|
14 | function interpolateTransform(parse, pxComma, pxParen, degParen) {
|
15 | function pop(s) {
|
16 | return s.length ? s.pop() + " " : "";
|
17 | }
|
18 |
|
19 | function translate(xa, ya, xb, yb, s, q) {
|
20 | if (xa !== xb || ya !== yb) {
|
21 | var i = s.push("translate(", null, pxComma, null, pxParen);
|
22 | q.push({
|
23 | i: i - 4,
|
24 | x: (0, _number.default)(xa, xb)
|
25 | }, {
|
26 | i: i - 2,
|
27 | x: (0, _number.default)(ya, yb)
|
28 | });
|
29 | } else if (xb || yb) {
|
30 | s.push("translate(" + xb + pxComma + yb + pxParen);
|
31 | }
|
32 | }
|
33 |
|
34 | function rotate(a, b, s, q) {
|
35 | if (a !== b) {
|
36 | if (a - b > 180) b += 360;else if (b - a > 180) a += 360;
|
37 |
|
38 | q.push({
|
39 | i: s.push(pop(s) + "rotate(", null, degParen) - 2,
|
40 | x: (0, _number.default)(a, b)
|
41 | });
|
42 | } else if (b) {
|
43 | s.push(pop(s) + "rotate(" + b + degParen);
|
44 | }
|
45 | }
|
46 |
|
47 | function skewX(a, b, s, q) {
|
48 | if (a !== b) {
|
49 | q.push({
|
50 | i: s.push(pop(s) + "skewX(", null, degParen) - 2,
|
51 | x: (0, _number.default)(a, b)
|
52 | });
|
53 | } else if (b) {
|
54 | s.push(pop(s) + "skewX(" + b + degParen);
|
55 | }
|
56 | }
|
57 |
|
58 | function scale(xa, ya, xb, yb, s, q) {
|
59 | if (xa !== xb || ya !== yb) {
|
60 | var i = s.push(pop(s) + "scale(", null, ",", null, ")");
|
61 | q.push({
|
62 | i: i - 4,
|
63 | x: (0, _number.default)(xa, xb)
|
64 | }, {
|
65 | i: i - 2,
|
66 | x: (0, _number.default)(ya, yb)
|
67 | });
|
68 | } else if (xb !== 1 || yb !== 1) {
|
69 | s.push(pop(s) + "scale(" + xb + "," + yb + ")");
|
70 | }
|
71 | }
|
72 |
|
73 | return function (a, b) {
|
74 | var s = [],
|
75 |
|
76 | q = [];
|
77 |
|
78 | a = parse(a), b = parse(b);
|
79 | translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);
|
80 | rotate(a.rotate, b.rotate, s, q);
|
81 | skewX(a.skewX, b.skewX, s, q);
|
82 | scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);
|
83 | a = b = null;
|
84 |
|
85 | return function (t) {
|
86 | var i = -1,
|
87 | n = q.length,
|
88 | o;
|
89 |
|
90 | while (++i < n) s[(o = q[i]).i] = o.x(t);
|
91 |
|
92 | return s.join("");
|
93 | };
|
94 | };
|
95 | }
|
96 |
|
97 | var interpolateTransformCss = interpolateTransform(_parse.parseCss, "px, ", "px)", "deg)");
|
98 | exports.interpolateTransformCss = interpolateTransformCss;
|
99 | var interpolateTransformSvg = interpolateTransform(_parse.parseSvg, ", ", ")", ")");
|
100 | exports.interpolateTransformSvg = interpolateTransformSvg; |
\ | No newline at end of file |