animejs 3.2.0 → 3.2.2
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/README.md +5 -0
- package/lib/anime.es.js +86 -56
- package/lib/anime.js +86 -56
- package/lib/anime.min.js +3 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
> [!IMPORTANT]
|
|
2
|
+
> ## 🎉 Anime.js V4 is now available in early access 🎉
|
|
3
|
+
>
|
|
4
|
+
> After years in the making, Anime.js V4 is finally available in early access for my **[GitHub Sponsors](https://github.com/sponsors/juliangarnier)**!
|
|
5
|
+
|
|
1
6
|
<h1 align="center">
|
|
2
7
|
<a href="https://animejs.com"><img src="/documentation/assets/img/animejs-v3-header-animation.gif" width="250"/></a>
|
|
3
8
|
<br>
|
package/lib/anime.es.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* anime.js v3.2.
|
|
3
|
-
* (c)
|
|
2
|
+
* anime.js v3.2.2
|
|
3
|
+
* (c) 2023 Julian Garnier
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* animejs.com
|
|
6
6
|
*/
|
|
@@ -63,11 +63,12 @@ var is = {
|
|
|
63
63
|
str: function (a) { return typeof a === 'string'; },
|
|
64
64
|
fnc: function (a) { return typeof a === 'function'; },
|
|
65
65
|
und: function (a) { return typeof a === 'undefined'; },
|
|
66
|
+
nil: function (a) { return is.und(a) || a === null; },
|
|
66
67
|
hex: function (a) { return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(a); },
|
|
67
68
|
rgb: function (a) { return /^rgb/.test(a); },
|
|
68
69
|
hsl: function (a) { return /^hsl/.test(a); },
|
|
69
70
|
col: function (a) { return (is.hex(a) || is.rgb(a) || is.hsl(a)); },
|
|
70
|
-
key: function (a) { return !defaultInstanceSettings.hasOwnProperty(a) && !defaultTweenSettings.hasOwnProperty(a) && a !== 'targets' && a !== 'keyframes'; }
|
|
71
|
+
key: function (a) { return !defaultInstanceSettings.hasOwnProperty(a) && !defaultTweenSettings.hasOwnProperty(a) && a !== 'targets' && a !== 'keyframes'; },
|
|
71
72
|
};
|
|
72
73
|
|
|
73
74
|
// Easings
|
|
@@ -226,6 +227,7 @@ var penner = (function () {
|
|
|
226
227
|
|
|
227
228
|
var functionEasings = {
|
|
228
229
|
Sine: function () { return function (t) { return 1 - Math.cos(t * Math.PI / 2); }; },
|
|
230
|
+
Expo: function () { return function (t) { return t ? Math.pow(2, 10 * t - 10) : 0; }; },
|
|
229
231
|
Circ: function () { return function (t) { return 1 - Math.sqrt(1 - t * t); }; },
|
|
230
232
|
Back: function () { return function (t) { return t * t * (3 * t - 2); }; },
|
|
231
233
|
Bounce: function () { return function (t) {
|
|
@@ -246,7 +248,7 @@ var penner = (function () {
|
|
|
246
248
|
}
|
|
247
249
|
};
|
|
248
250
|
|
|
249
|
-
var baseEasings = ['Quad', 'Cubic', 'Quart', 'Quint'
|
|
251
|
+
var baseEasings = ['Quad', 'Cubic', 'Quart', 'Quint'];
|
|
250
252
|
|
|
251
253
|
baseEasings.forEach(function (name, i) {
|
|
252
254
|
functionEasings[name] = function () { return function (t) { return Math.pow(t, i + 2); }; };
|
|
@@ -258,6 +260,8 @@ var penner = (function () {
|
|
|
258
260
|
eases['easeOut' + name] = function (a, b) { return function (t) { return 1 - easeIn(a, b)(1 - t); }; };
|
|
259
261
|
eases['easeInOut' + name] = function (a, b) { return function (t) { return t < 0.5 ? easeIn(a, b)(t * 2) / 2 :
|
|
260
262
|
1 - easeIn(a, b)(t * -2 + 2) / 2; }; };
|
|
263
|
+
eases['easeOutIn' + name] = function (a, b) { return function (t) { return t < 0.5 ? (1 - easeIn(a, b)(1 - t * 2)) / 2 :
|
|
264
|
+
(easeIn(a, b)(t * 2 - 1) + 1) / 2; }; };
|
|
261
265
|
});
|
|
262
266
|
|
|
263
267
|
return eases;
|
|
@@ -440,7 +444,7 @@ function getCSSValue(el, prop, unit) {
|
|
|
440
444
|
}
|
|
441
445
|
|
|
442
446
|
function getAnimationType(el, prop) {
|
|
443
|
-
if (is.dom(el) && !is.inp(el) && (getAttribute(el, prop) || (is.svg(el) && el[prop]))) { return 'attribute'; }
|
|
447
|
+
if (is.dom(el) && !is.inp(el) && (!is.nil(getAttribute(el, prop)) || (is.svg(el) && el[prop]))) { return 'attribute'; }
|
|
444
448
|
if (is.dom(el) && arrayContains(validTransforms, prop)) { return 'transform'; }
|
|
445
449
|
if (is.dom(el) && (prop !== 'transform' && getCSSValue(el, prop))) { return 'css'; }
|
|
446
450
|
if (el[prop] != null) { return 'object'; }
|
|
@@ -578,8 +582,10 @@ function getParentSvg(pathEl, svgData) {
|
|
|
578
582
|
viewBox: viewBox,
|
|
579
583
|
x: viewBox[0] / 1,
|
|
580
584
|
y: viewBox[1] / 1,
|
|
581
|
-
w: width
|
|
582
|
-
h: height
|
|
585
|
+
w: width,
|
|
586
|
+
h: height,
|
|
587
|
+
vW: viewBox[2],
|
|
588
|
+
vH: viewBox[3]
|
|
583
589
|
}
|
|
584
590
|
}
|
|
585
591
|
|
|
@@ -596,7 +602,7 @@ function getPath(path, percent) {
|
|
|
596
602
|
}
|
|
597
603
|
}
|
|
598
604
|
|
|
599
|
-
function getPathProgress(path, progress) {
|
|
605
|
+
function getPathProgress(path, progress, isPathTargetInsideSVG) {
|
|
600
606
|
function point(offset) {
|
|
601
607
|
if ( offset === void 0 ) offset = 0;
|
|
602
608
|
|
|
@@ -607,9 +613,11 @@ function getPathProgress(path, progress) {
|
|
|
607
613
|
var p = point();
|
|
608
614
|
var p0 = point(-1);
|
|
609
615
|
var p1 = point(+1);
|
|
616
|
+
var scaleX = isPathTargetInsideSVG ? 1 : svg.w / svg.vW;
|
|
617
|
+
var scaleY = isPathTargetInsideSVG ? 1 : svg.h / svg.vH;
|
|
610
618
|
switch (path.property) {
|
|
611
|
-
case 'x': return (p.x - svg.x) *
|
|
612
|
-
case 'y': return (p.y - svg.y) *
|
|
619
|
+
case 'x': return (p.x - svg.x) * scaleX;
|
|
620
|
+
case 'y': return (p.y - svg.y) * scaleY;
|
|
613
621
|
case 'angle': return Math.atan2(p1.y - p0.y, p1.x - p0.x) * 180 / Math.PI;
|
|
614
622
|
}
|
|
615
623
|
}
|
|
@@ -745,6 +753,7 @@ function normalizeTweens(prop, animatable) {
|
|
|
745
753
|
tween.end = tween.start + tween.delay + tween.duration + tween.endDelay;
|
|
746
754
|
tween.easing = parseEasings(tween.easing, tween.duration);
|
|
747
755
|
tween.isPath = is.pth(tweenValue);
|
|
756
|
+
tween.isPathTargetInsideSVG = tween.isPath && is.svg(animatable.target);
|
|
748
757
|
tween.isColor = is.col(tween.from.original);
|
|
749
758
|
if (tween.isColor) { tween.round = 1; }
|
|
750
759
|
previousTween = tween;
|
|
@@ -850,50 +859,57 @@ function createNewInstance(params) {
|
|
|
850
859
|
// Core
|
|
851
860
|
|
|
852
861
|
var activeInstances = [];
|
|
853
|
-
var pausedInstances = [];
|
|
854
|
-
var raf;
|
|
855
862
|
|
|
856
863
|
var engine = (function () {
|
|
857
|
-
|
|
858
|
-
|
|
864
|
+
var raf;
|
|
865
|
+
|
|
866
|
+
function play() {
|
|
867
|
+
if (!raf && (!isDocumentHidden() || !anime.suspendWhenDocumentHidden) && activeInstances.length > 0) {
|
|
868
|
+
raf = requestAnimationFrame(step);
|
|
869
|
+
}
|
|
859
870
|
}
|
|
860
871
|
function step(t) {
|
|
872
|
+
// memo on algorithm issue:
|
|
873
|
+
// dangerous iteration over mutable `activeInstances`
|
|
874
|
+
// (that collection may be updated from within callbacks of `tick`-ed animation instances)
|
|
861
875
|
var activeInstancesLength = activeInstances.length;
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
activeInstance.tick(t);
|
|
868
|
-
} else {
|
|
869
|
-
var instanceIndex = activeInstances.indexOf(activeInstance);
|
|
870
|
-
if (instanceIndex > -1) {
|
|
871
|
-
activeInstances.splice(instanceIndex, 1);
|
|
872
|
-
activeInstancesLength = activeInstances.length;
|
|
873
|
-
}
|
|
874
|
-
}
|
|
876
|
+
var i = 0;
|
|
877
|
+
while (i < activeInstancesLength) {
|
|
878
|
+
var activeInstance = activeInstances[i];
|
|
879
|
+
if (!activeInstance.paused) {
|
|
880
|
+
activeInstance.tick(t);
|
|
875
881
|
i++;
|
|
882
|
+
} else {
|
|
883
|
+
activeInstances.splice(i, 1);
|
|
884
|
+
activeInstancesLength--;
|
|
876
885
|
}
|
|
877
|
-
|
|
878
|
-
|
|
886
|
+
}
|
|
887
|
+
raf = i > 0 ? requestAnimationFrame(step) : undefined;
|
|
888
|
+
}
|
|
889
|
+
|
|
890
|
+
function handleVisibilityChange() {
|
|
891
|
+
if (!anime.suspendWhenDocumentHidden) { return; }
|
|
892
|
+
|
|
893
|
+
if (isDocumentHidden()) {
|
|
894
|
+
// suspend ticks
|
|
879
895
|
raf = cancelAnimationFrame(raf);
|
|
896
|
+
} else { // is back to active tab
|
|
897
|
+
// first adjust animations to consider the time that ticks were suspended
|
|
898
|
+
activeInstances.forEach(
|
|
899
|
+
function (instance) { return instance ._onDocumentVisibility(); }
|
|
900
|
+
);
|
|
901
|
+
engine();
|
|
880
902
|
}
|
|
881
903
|
}
|
|
904
|
+
if (typeof document !== 'undefined') {
|
|
905
|
+
document.addEventListener('visibilitychange', handleVisibilityChange);
|
|
906
|
+
}
|
|
907
|
+
|
|
882
908
|
return play;
|
|
883
909
|
})();
|
|
884
910
|
|
|
885
|
-
function
|
|
886
|
-
|
|
887
|
-
activeInstances.forEach(function (ins) { return ins.pause(); });
|
|
888
|
-
pausedInstances = activeInstances.slice(0);
|
|
889
|
-
anime.running = activeInstances = [];
|
|
890
|
-
} else {
|
|
891
|
-
pausedInstances.forEach(function (ins) { return ins.play(); });
|
|
892
|
-
}
|
|
893
|
-
}
|
|
894
|
-
|
|
895
|
-
if (typeof document !== 'undefined') {
|
|
896
|
-
document.addEventListener('visibilitychange', handleVisibilityChange);
|
|
911
|
+
function isDocumentHidden() {
|
|
912
|
+
return !!document && document.hidden;
|
|
897
913
|
}
|
|
898
914
|
|
|
899
915
|
// Public Instance
|
|
@@ -971,7 +987,7 @@ function anime(params) {
|
|
|
971
987
|
if (!tween.isPath) {
|
|
972
988
|
value = fromNumber + (eased * (toNumber - fromNumber));
|
|
973
989
|
} else {
|
|
974
|
-
value = getPathProgress(tween.value, eased * toNumber);
|
|
990
|
+
value = getPathProgress(tween.value, eased * toNumber, tween.isPathTargetInsideSVG);
|
|
975
991
|
}
|
|
976
992
|
if (round) {
|
|
977
993
|
if (!(tween.isColor && n > 2)) {
|
|
@@ -1100,6 +1116,9 @@ function anime(params) {
|
|
|
1100
1116
|
setAnimationsProgress(instance.reversed ? instance.duration : 0);
|
|
1101
1117
|
};
|
|
1102
1118
|
|
|
1119
|
+
// internal method (for engine) to adjust animation timings before restoring engine ticks (rAF)
|
|
1120
|
+
instance._onDocumentVisibility = resetTime;
|
|
1121
|
+
|
|
1103
1122
|
// Set Value helper
|
|
1104
1123
|
|
|
1105
1124
|
instance.set = function(targets, properties) {
|
|
@@ -1128,7 +1147,7 @@ function anime(params) {
|
|
|
1128
1147
|
instance.paused = false;
|
|
1129
1148
|
activeInstances.push(instance);
|
|
1130
1149
|
resetTime();
|
|
1131
|
-
|
|
1150
|
+
engine();
|
|
1132
1151
|
};
|
|
1133
1152
|
|
|
1134
1153
|
instance.reverse = function() {
|
|
@@ -1142,6 +1161,11 @@ function anime(params) {
|
|
|
1142
1161
|
instance.play();
|
|
1143
1162
|
};
|
|
1144
1163
|
|
|
1164
|
+
instance.remove = function(targets) {
|
|
1165
|
+
var targetsArray = parseTargets(targets);
|
|
1166
|
+
removeTargetsFromInstance(targetsArray, instance);
|
|
1167
|
+
};
|
|
1168
|
+
|
|
1145
1169
|
instance.reset();
|
|
1146
1170
|
|
|
1147
1171
|
if (instance.autoplay) { instance.play(); }
|
|
@@ -1160,20 +1184,24 @@ function removeTargetsFromAnimations(targetsArray, animations) {
|
|
|
1160
1184
|
}
|
|
1161
1185
|
}
|
|
1162
1186
|
|
|
1163
|
-
function
|
|
1187
|
+
function removeTargetsFromInstance(targetsArray, instance) {
|
|
1188
|
+
var animations = instance.animations;
|
|
1189
|
+
var children = instance.children;
|
|
1190
|
+
removeTargetsFromAnimations(targetsArray, animations);
|
|
1191
|
+
for (var c = children.length; c--;) {
|
|
1192
|
+
var child = children[c];
|
|
1193
|
+
var childAnimations = child.animations;
|
|
1194
|
+
removeTargetsFromAnimations(targetsArray, childAnimations);
|
|
1195
|
+
if (!childAnimations.length && !child.children.length) { children.splice(c, 1); }
|
|
1196
|
+
}
|
|
1197
|
+
if (!animations.length && !children.length) { instance.pause(); }
|
|
1198
|
+
}
|
|
1199
|
+
|
|
1200
|
+
function removeTargetsFromActiveInstances(targets) {
|
|
1164
1201
|
var targetsArray = parseTargets(targets);
|
|
1165
1202
|
for (var i = activeInstances.length; i--;) {
|
|
1166
1203
|
var instance = activeInstances[i];
|
|
1167
|
-
|
|
1168
|
-
var children = instance.children;
|
|
1169
|
-
removeTargetsFromAnimations(targetsArray, animations);
|
|
1170
|
-
for (var c = children.length; c--;) {
|
|
1171
|
-
var child = children[c];
|
|
1172
|
-
var childAnimations = child.animations;
|
|
1173
|
-
removeTargetsFromAnimations(targetsArray, childAnimations);
|
|
1174
|
-
if (!childAnimations.length && !child.children.length) { children.splice(c, 1); }
|
|
1175
|
-
}
|
|
1176
|
-
if (!animations.length && !children.length) { instance.pause(); }
|
|
1204
|
+
removeTargetsFromInstance(targetsArray, instance);
|
|
1177
1205
|
}
|
|
1178
1206
|
}
|
|
1179
1207
|
|
|
@@ -1263,10 +1291,12 @@ function timeline(params) {
|
|
|
1263
1291
|
return tl;
|
|
1264
1292
|
}
|
|
1265
1293
|
|
|
1266
|
-
anime.version = '3.2.
|
|
1294
|
+
anime.version = '3.2.1';
|
|
1267
1295
|
anime.speed = 1;
|
|
1296
|
+
// TODO:#review: naming, documentation
|
|
1297
|
+
anime.suspendWhenDocumentHidden = true;
|
|
1268
1298
|
anime.running = activeInstances;
|
|
1269
|
-
anime.remove =
|
|
1299
|
+
anime.remove = removeTargetsFromActiveInstances;
|
|
1270
1300
|
anime.get = getOriginalTargetValue;
|
|
1271
1301
|
anime.set = setTargetsValue;
|
|
1272
1302
|
anime.convertPx = convertPxToUnit;
|
package/lib/anime.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* anime.js v3.2.
|
|
3
|
-
* (c)
|
|
2
|
+
* anime.js v3.2.2
|
|
3
|
+
* (c) 2023 Julian Garnier
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* animejs.com
|
|
6
6
|
*/
|
|
@@ -65,11 +65,12 @@ var is = {
|
|
|
65
65
|
str: function (a) { return typeof a === 'string'; },
|
|
66
66
|
fnc: function (a) { return typeof a === 'function'; },
|
|
67
67
|
und: function (a) { return typeof a === 'undefined'; },
|
|
68
|
+
nil: function (a) { return is.und(a) || a === null; },
|
|
68
69
|
hex: function (a) { return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(a); },
|
|
69
70
|
rgb: function (a) { return /^rgb/.test(a); },
|
|
70
71
|
hsl: function (a) { return /^hsl/.test(a); },
|
|
71
72
|
col: function (a) { return (is.hex(a) || is.rgb(a) || is.hsl(a)); },
|
|
72
|
-
key: function (a) { return !defaultInstanceSettings.hasOwnProperty(a) && !defaultTweenSettings.hasOwnProperty(a) && a !== 'targets' && a !== 'keyframes'; }
|
|
73
|
+
key: function (a) { return !defaultInstanceSettings.hasOwnProperty(a) && !defaultTweenSettings.hasOwnProperty(a) && a !== 'targets' && a !== 'keyframes'; },
|
|
73
74
|
};
|
|
74
75
|
|
|
75
76
|
// Easings
|
|
@@ -228,6 +229,7 @@ var penner = (function () {
|
|
|
228
229
|
|
|
229
230
|
var functionEasings = {
|
|
230
231
|
Sine: function () { return function (t) { return 1 - Math.cos(t * Math.PI / 2); }; },
|
|
232
|
+
Expo: function () { return function (t) { return t ? Math.pow(2, 10 * t - 10) : 0; }; },
|
|
231
233
|
Circ: function () { return function (t) { return 1 - Math.sqrt(1 - t * t); }; },
|
|
232
234
|
Back: function () { return function (t) { return t * t * (3 * t - 2); }; },
|
|
233
235
|
Bounce: function () { return function (t) {
|
|
@@ -248,7 +250,7 @@ var penner = (function () {
|
|
|
248
250
|
}
|
|
249
251
|
};
|
|
250
252
|
|
|
251
|
-
var baseEasings = ['Quad', 'Cubic', 'Quart', 'Quint'
|
|
253
|
+
var baseEasings = ['Quad', 'Cubic', 'Quart', 'Quint'];
|
|
252
254
|
|
|
253
255
|
baseEasings.forEach(function (name, i) {
|
|
254
256
|
functionEasings[name] = function () { return function (t) { return Math.pow(t, i + 2); }; };
|
|
@@ -260,6 +262,8 @@ var penner = (function () {
|
|
|
260
262
|
eases['easeOut' + name] = function (a, b) { return function (t) { return 1 - easeIn(a, b)(1 - t); }; };
|
|
261
263
|
eases['easeInOut' + name] = function (a, b) { return function (t) { return t < 0.5 ? easeIn(a, b)(t * 2) / 2 :
|
|
262
264
|
1 - easeIn(a, b)(t * -2 + 2) / 2; }; };
|
|
265
|
+
eases['easeOutIn' + name] = function (a, b) { return function (t) { return t < 0.5 ? (1 - easeIn(a, b)(1 - t * 2)) / 2 :
|
|
266
|
+
(easeIn(a, b)(t * 2 - 1) + 1) / 2; }; };
|
|
263
267
|
});
|
|
264
268
|
|
|
265
269
|
return eases;
|
|
@@ -442,7 +446,7 @@ function getCSSValue(el, prop, unit) {
|
|
|
442
446
|
}
|
|
443
447
|
|
|
444
448
|
function getAnimationType(el, prop) {
|
|
445
|
-
if (is.dom(el) && !is.inp(el) && (getAttribute(el, prop) || (is.svg(el) && el[prop]))) { return 'attribute'; }
|
|
449
|
+
if (is.dom(el) && !is.inp(el) && (!is.nil(getAttribute(el, prop)) || (is.svg(el) && el[prop]))) { return 'attribute'; }
|
|
446
450
|
if (is.dom(el) && arrayContains(validTransforms, prop)) { return 'transform'; }
|
|
447
451
|
if (is.dom(el) && (prop !== 'transform' && getCSSValue(el, prop))) { return 'css'; }
|
|
448
452
|
if (el[prop] != null) { return 'object'; }
|
|
@@ -580,8 +584,10 @@ function getParentSvg(pathEl, svgData) {
|
|
|
580
584
|
viewBox: viewBox,
|
|
581
585
|
x: viewBox[0] / 1,
|
|
582
586
|
y: viewBox[1] / 1,
|
|
583
|
-
w: width
|
|
584
|
-
h: height
|
|
587
|
+
w: width,
|
|
588
|
+
h: height,
|
|
589
|
+
vW: viewBox[2],
|
|
590
|
+
vH: viewBox[3]
|
|
585
591
|
}
|
|
586
592
|
}
|
|
587
593
|
|
|
@@ -598,7 +604,7 @@ function getPath(path, percent) {
|
|
|
598
604
|
}
|
|
599
605
|
}
|
|
600
606
|
|
|
601
|
-
function getPathProgress(path, progress) {
|
|
607
|
+
function getPathProgress(path, progress, isPathTargetInsideSVG) {
|
|
602
608
|
function point(offset) {
|
|
603
609
|
if ( offset === void 0 ) offset = 0;
|
|
604
610
|
|
|
@@ -609,9 +615,11 @@ function getPathProgress(path, progress) {
|
|
|
609
615
|
var p = point();
|
|
610
616
|
var p0 = point(-1);
|
|
611
617
|
var p1 = point(+1);
|
|
618
|
+
var scaleX = isPathTargetInsideSVG ? 1 : svg.w / svg.vW;
|
|
619
|
+
var scaleY = isPathTargetInsideSVG ? 1 : svg.h / svg.vH;
|
|
612
620
|
switch (path.property) {
|
|
613
|
-
case 'x': return (p.x - svg.x) *
|
|
614
|
-
case 'y': return (p.y - svg.y) *
|
|
621
|
+
case 'x': return (p.x - svg.x) * scaleX;
|
|
622
|
+
case 'y': return (p.y - svg.y) * scaleY;
|
|
615
623
|
case 'angle': return Math.atan2(p1.y - p0.y, p1.x - p0.x) * 180 / Math.PI;
|
|
616
624
|
}
|
|
617
625
|
}
|
|
@@ -747,6 +755,7 @@ function normalizeTweens(prop, animatable) {
|
|
|
747
755
|
tween.end = tween.start + tween.delay + tween.duration + tween.endDelay;
|
|
748
756
|
tween.easing = parseEasings(tween.easing, tween.duration);
|
|
749
757
|
tween.isPath = is.pth(tweenValue);
|
|
758
|
+
tween.isPathTargetInsideSVG = tween.isPath && is.svg(animatable.target);
|
|
750
759
|
tween.isColor = is.col(tween.from.original);
|
|
751
760
|
if (tween.isColor) { tween.round = 1; }
|
|
752
761
|
previousTween = tween;
|
|
@@ -852,50 +861,57 @@ function createNewInstance(params) {
|
|
|
852
861
|
// Core
|
|
853
862
|
|
|
854
863
|
var activeInstances = [];
|
|
855
|
-
var pausedInstances = [];
|
|
856
|
-
var raf;
|
|
857
864
|
|
|
858
865
|
var engine = (function () {
|
|
859
|
-
|
|
860
|
-
|
|
866
|
+
var raf;
|
|
867
|
+
|
|
868
|
+
function play() {
|
|
869
|
+
if (!raf && (!isDocumentHidden() || !anime.suspendWhenDocumentHidden) && activeInstances.length > 0) {
|
|
870
|
+
raf = requestAnimationFrame(step);
|
|
871
|
+
}
|
|
861
872
|
}
|
|
862
873
|
function step(t) {
|
|
874
|
+
// memo on algorithm issue:
|
|
875
|
+
// dangerous iteration over mutable `activeInstances`
|
|
876
|
+
// (that collection may be updated from within callbacks of `tick`-ed animation instances)
|
|
863
877
|
var activeInstancesLength = activeInstances.length;
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
activeInstance.tick(t);
|
|
870
|
-
} else {
|
|
871
|
-
var instanceIndex = activeInstances.indexOf(activeInstance);
|
|
872
|
-
if (instanceIndex > -1) {
|
|
873
|
-
activeInstances.splice(instanceIndex, 1);
|
|
874
|
-
activeInstancesLength = activeInstances.length;
|
|
875
|
-
}
|
|
876
|
-
}
|
|
878
|
+
var i = 0;
|
|
879
|
+
while (i < activeInstancesLength) {
|
|
880
|
+
var activeInstance = activeInstances[i];
|
|
881
|
+
if (!activeInstance.paused) {
|
|
882
|
+
activeInstance.tick(t);
|
|
877
883
|
i++;
|
|
884
|
+
} else {
|
|
885
|
+
activeInstances.splice(i, 1);
|
|
886
|
+
activeInstancesLength--;
|
|
878
887
|
}
|
|
879
|
-
|
|
880
|
-
|
|
888
|
+
}
|
|
889
|
+
raf = i > 0 ? requestAnimationFrame(step) : undefined;
|
|
890
|
+
}
|
|
891
|
+
|
|
892
|
+
function handleVisibilityChange() {
|
|
893
|
+
if (!anime.suspendWhenDocumentHidden) { return; }
|
|
894
|
+
|
|
895
|
+
if (isDocumentHidden()) {
|
|
896
|
+
// suspend ticks
|
|
881
897
|
raf = cancelAnimationFrame(raf);
|
|
898
|
+
} else { // is back to active tab
|
|
899
|
+
// first adjust animations to consider the time that ticks were suspended
|
|
900
|
+
activeInstances.forEach(
|
|
901
|
+
function (instance) { return instance ._onDocumentVisibility(); }
|
|
902
|
+
);
|
|
903
|
+
engine();
|
|
882
904
|
}
|
|
883
905
|
}
|
|
906
|
+
if (typeof document !== 'undefined') {
|
|
907
|
+
document.addEventListener('visibilitychange', handleVisibilityChange);
|
|
908
|
+
}
|
|
909
|
+
|
|
884
910
|
return play;
|
|
885
911
|
})();
|
|
886
912
|
|
|
887
|
-
function
|
|
888
|
-
|
|
889
|
-
activeInstances.forEach(function (ins) { return ins.pause(); });
|
|
890
|
-
pausedInstances = activeInstances.slice(0);
|
|
891
|
-
anime.running = activeInstances = [];
|
|
892
|
-
} else {
|
|
893
|
-
pausedInstances.forEach(function (ins) { return ins.play(); });
|
|
894
|
-
}
|
|
895
|
-
}
|
|
896
|
-
|
|
897
|
-
if (typeof document !== 'undefined') {
|
|
898
|
-
document.addEventListener('visibilitychange', handleVisibilityChange);
|
|
913
|
+
function isDocumentHidden() {
|
|
914
|
+
return !!document && document.hidden;
|
|
899
915
|
}
|
|
900
916
|
|
|
901
917
|
// Public Instance
|
|
@@ -973,7 +989,7 @@ function anime(params) {
|
|
|
973
989
|
if (!tween.isPath) {
|
|
974
990
|
value = fromNumber + (eased * (toNumber - fromNumber));
|
|
975
991
|
} else {
|
|
976
|
-
value = getPathProgress(tween.value, eased * toNumber);
|
|
992
|
+
value = getPathProgress(tween.value, eased * toNumber, tween.isPathTargetInsideSVG);
|
|
977
993
|
}
|
|
978
994
|
if (round) {
|
|
979
995
|
if (!(tween.isColor && n > 2)) {
|
|
@@ -1102,6 +1118,9 @@ function anime(params) {
|
|
|
1102
1118
|
setAnimationsProgress(instance.reversed ? instance.duration : 0);
|
|
1103
1119
|
};
|
|
1104
1120
|
|
|
1121
|
+
// internal method (for engine) to adjust animation timings before restoring engine ticks (rAF)
|
|
1122
|
+
instance._onDocumentVisibility = resetTime;
|
|
1123
|
+
|
|
1105
1124
|
// Set Value helper
|
|
1106
1125
|
|
|
1107
1126
|
instance.set = function(targets, properties) {
|
|
@@ -1130,7 +1149,7 @@ function anime(params) {
|
|
|
1130
1149
|
instance.paused = false;
|
|
1131
1150
|
activeInstances.push(instance);
|
|
1132
1151
|
resetTime();
|
|
1133
|
-
|
|
1152
|
+
engine();
|
|
1134
1153
|
};
|
|
1135
1154
|
|
|
1136
1155
|
instance.reverse = function() {
|
|
@@ -1144,6 +1163,11 @@ function anime(params) {
|
|
|
1144
1163
|
instance.play();
|
|
1145
1164
|
};
|
|
1146
1165
|
|
|
1166
|
+
instance.remove = function(targets) {
|
|
1167
|
+
var targetsArray = parseTargets(targets);
|
|
1168
|
+
removeTargetsFromInstance(targetsArray, instance);
|
|
1169
|
+
};
|
|
1170
|
+
|
|
1147
1171
|
instance.reset();
|
|
1148
1172
|
|
|
1149
1173
|
if (instance.autoplay) { instance.play(); }
|
|
@@ -1162,20 +1186,24 @@ function removeTargetsFromAnimations(targetsArray, animations) {
|
|
|
1162
1186
|
}
|
|
1163
1187
|
}
|
|
1164
1188
|
|
|
1165
|
-
function
|
|
1189
|
+
function removeTargetsFromInstance(targetsArray, instance) {
|
|
1190
|
+
var animations = instance.animations;
|
|
1191
|
+
var children = instance.children;
|
|
1192
|
+
removeTargetsFromAnimations(targetsArray, animations);
|
|
1193
|
+
for (var c = children.length; c--;) {
|
|
1194
|
+
var child = children[c];
|
|
1195
|
+
var childAnimations = child.animations;
|
|
1196
|
+
removeTargetsFromAnimations(targetsArray, childAnimations);
|
|
1197
|
+
if (!childAnimations.length && !child.children.length) { children.splice(c, 1); }
|
|
1198
|
+
}
|
|
1199
|
+
if (!animations.length && !children.length) { instance.pause(); }
|
|
1200
|
+
}
|
|
1201
|
+
|
|
1202
|
+
function removeTargetsFromActiveInstances(targets) {
|
|
1166
1203
|
var targetsArray = parseTargets(targets);
|
|
1167
1204
|
for (var i = activeInstances.length; i--;) {
|
|
1168
1205
|
var instance = activeInstances[i];
|
|
1169
|
-
|
|
1170
|
-
var children = instance.children;
|
|
1171
|
-
removeTargetsFromAnimations(targetsArray, animations);
|
|
1172
|
-
for (var c = children.length; c--;) {
|
|
1173
|
-
var child = children[c];
|
|
1174
|
-
var childAnimations = child.animations;
|
|
1175
|
-
removeTargetsFromAnimations(targetsArray, childAnimations);
|
|
1176
|
-
if (!childAnimations.length && !child.children.length) { children.splice(c, 1); }
|
|
1177
|
-
}
|
|
1178
|
-
if (!animations.length && !children.length) { instance.pause(); }
|
|
1206
|
+
removeTargetsFromInstance(targetsArray, instance);
|
|
1179
1207
|
}
|
|
1180
1208
|
}
|
|
1181
1209
|
|
|
@@ -1265,10 +1293,12 @@ function timeline(params) {
|
|
|
1265
1293
|
return tl;
|
|
1266
1294
|
}
|
|
1267
1295
|
|
|
1268
|
-
anime.version = '3.2.
|
|
1296
|
+
anime.version = '3.2.1';
|
|
1269
1297
|
anime.speed = 1;
|
|
1298
|
+
// TODO:#review: naming, documentation
|
|
1299
|
+
anime.suspendWhenDocumentHidden = true;
|
|
1270
1300
|
anime.running = activeInstances;
|
|
1271
|
-
anime.remove =
|
|
1301
|
+
anime.remove = removeTargetsFromActiveInstances;
|
|
1272
1302
|
anime.get = getOriginalTargetValue;
|
|
1273
1303
|
anime.set = setTargetsValue;
|
|
1274
1304
|
anime.convertPx = convertPxToUnit;
|
package/lib/anime.min.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* anime.js v3.2.
|
|
3
|
-
* (c)
|
|
2
|
+
* anime.js v3.2.2
|
|
3
|
+
* (c) 2023 Julian Garnier
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* animejs.com
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):n.anime=e()}(this,function(){"use strict";var n={update:null,begin:null,loopBegin:null,changeBegin:null,change:null,changeComplete:null,loopComplete:null,complete:null,loop:1,direction:"normal",autoplay:!0,timelineOffset:0},e={duration:1e3,delay:0,endDelay:0,easing:"easeOutElastic(1, .5)",round:0},r=["translateX","translateY","translateZ","rotate","rotateX","rotateY","rotateZ","scale","scaleX","scaleY","scaleZ","skew","skewX","skewY","perspective","matrix","matrix3d"],t={CSS:{},springs:{}};function a(n,e,r){return Math.min(Math.max(n,e),r)}function o(n,e){return n.indexOf(e)>-1}function u(n,e){return n.apply(null,e)}var i={arr:function(n){return Array.isArray(n)},obj:function(n){return o(Object.prototype.toString.call(n),"Object")},pth:function(n){return i.obj(n)&&n.hasOwnProperty("totalLength")},svg:function(n){return n instanceof SVGElement},inp:function(n){return n instanceof HTMLInputElement},dom:function(n){return n.nodeType||i.svg(n)},str:function(n){return"string"==typeof n},fnc:function(n){return"function"==typeof n},und:function(n){return void 0===n},hex:function(n){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(n)},rgb:function(n){return/^rgb/.test(n)},hsl:function(n){return/^hsl/.test(n)},col:function(n){return i.hex(n)||i.rgb(n)||i.hsl(n)},key:function(r){return!n.hasOwnProperty(r)&&!e.hasOwnProperty(r)&&"targets"!==r&&"keyframes"!==r}};function c(n){var e=/\(([^)]+)\)/.exec(n);return e?e[1].split(",").map(function(n){return parseFloat(n)}):[]}function s(n,e){var r=c(n),o=a(i.und(r[0])?1:r[0],.1,100),u=a(i.und(r[1])?100:r[1],.1,100),s=a(i.und(r[2])?10:r[2],.1,100),f=a(i.und(r[3])?0:r[3],.1,100),l=Math.sqrt(u/o),d=s/(2*Math.sqrt(u*o)),p=d<1?l*Math.sqrt(1-d*d):0,h=1,v=d<1?(d*l-f)/p:-f+l;function g(n){var r=e?e*n/1e3:n;return r=d<1?Math.exp(-r*d*l)*(h*Math.cos(p*r)+v*Math.sin(p*r)):(h+v*r)*Math.exp(-r*l),0===n||1===n?n:1-r}return e?g:function(){var e=t.springs[n];if(e)return e;for(var r=0,a=0;;)if(1===g(r+=1/6)){if(++a>=16)break}else a=0;var o=r*(1/6)*1e3;return t.springs[n]=o,o}}function f(n){return void 0===n&&(n=10),function(e){return Math.ceil(a(e,1e-6,1)*n)*(1/n)}}var l,d,p=function(){var n=11,e=1/(n-1);function r(n,e){return 1-3*e+3*n}function t(n,e){return 3*e-6*n}function a(n){return 3*n}function o(n,e,o){return((r(e,o)*n+t(e,o))*n+a(e))*n}function u(n,e,o){return 3*r(e,o)*n*n+2*t(e,o)*n+a(e)}return function(r,t,a,i){if(0<=r&&r<=1&&0<=a&&a<=1){var c=new Float32Array(n);if(r!==t||a!==i)for(var s=0;s<n;++s)c[s]=o(s*e,r,a);return function(n){return r===t&&a===i?n:0===n||1===n?n:o(f(n),t,i)}}function f(t){for(var i=0,s=1,f=n-1;s!==f&&c[s]<=t;++s)i+=e;var l=i+(t-c[--s])/(c[s+1]-c[s])*e,d=u(l,r,a);return d>=.001?function(n,e,r,t){for(var a=0;a<4;++a){var i=u(e,r,t);if(0===i)return e;e-=(o(e,r,t)-n)/i}return e}(t,l,r,a):0===d?l:function(n,e,r,t,a){for(var u,i,c=0;(u=o(i=e+(r-e)/2,t,a)-n)>0?r=i:e=i,Math.abs(u)>1e-7&&++c<10;);return i}(t,i,i+e,r,a)}}}(),h=(l={linear:function(){return function(n){return n}}},d={Sine:function(){return function(n){return 1-Math.cos(n*Math.PI/2)}},Circ:function(){return function(n){return 1-Math.sqrt(1-n*n)}},Back:function(){return function(n){return n*n*(3*n-2)}},Bounce:function(){return function(n){for(var e,r=4;n<((e=Math.pow(2,--r))-1)/11;);return 1/Math.pow(4,3-r)-7.5625*Math.pow((3*e-2)/22-n,2)}},Elastic:function(n,e){void 0===n&&(n=1),void 0===e&&(e=.5);var r=a(n,1,10),t=a(e,.1,2);return function(n){return 0===n||1===n?n:-r*Math.pow(2,10*(n-1))*Math.sin((n-1-t/(2*Math.PI)*Math.asin(1/r))*(2*Math.PI)/t)}}},["Quad","Cubic","Quart","Quint","Expo"].forEach(function(n,e){d[n]=function(){return function(n){return Math.pow(n,e+2)}}}),Object.keys(d).forEach(function(n){var e=d[n];l["easeIn"+n]=e,l["easeOut"+n]=function(n,r){return function(t){return 1-e(n,r)(1-t)}},l["easeInOut"+n]=function(n,r){return function(t){return t<.5?e(n,r)(2*t)/2:1-e(n,r)(-2*t+2)/2}}}),l);function v(n,e){if(i.fnc(n))return n;var r=n.split("(")[0],t=h[r],a=c(n);switch(r){case"spring":return s(n,e);case"cubicBezier":return u(p,a);case"steps":return u(f,a);default:return u(t,a)}}function g(n){try{return document.querySelectorAll(n)}catch(n){return}}function m(n,e){for(var r=n.length,t=arguments.length>=2?arguments[1]:void 0,a=[],o=0;o<r;o++)if(o in n){var u=n[o];e.call(t,u,o,n)&&a.push(u)}return a}function y(n){return n.reduce(function(n,e){return n.concat(i.arr(e)?y(e):e)},[])}function b(n){return i.arr(n)?n:(i.str(n)&&(n=g(n)||n),n instanceof NodeList||n instanceof HTMLCollection?[].slice.call(n):[n])}function x(n,e){return n.some(function(n){return n===e})}function M(n){var e={};for(var r in n)e[r]=n[r];return e}function w(n,e){var r=M(n);for(var t in n)r[t]=e.hasOwnProperty(t)?e[t]:n[t];return r}function k(n,e){var r=M(n);for(var t in e)r[t]=i.und(n[t])?e[t]:n[t];return r}function O(n){return i.rgb(n)?(r=/rgb\((\d+,\s*[\d]+,\s*[\d]+)\)/g.exec(e=n))?"rgba("+r[1]+",1)":e:i.hex(n)?(t=n.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(n,e,r,t){return e+e+r+r+t+t}),a=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t),"rgba("+parseInt(a[1],16)+","+parseInt(a[2],16)+","+parseInt(a[3],16)+",1)"):i.hsl(n)?function(n){var e,r,t,a=/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(n)||/hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec(n),o=parseInt(a[1],10)/360,u=parseInt(a[2],10)/100,i=parseInt(a[3],10)/100,c=a[4]||1;function s(n,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?n+6*(e-n)*r:r<.5?e:r<2/3?n+(e-n)*(2/3-r)*6:n}if(0==u)e=r=t=i;else{var f=i<.5?i*(1+u):i+u-i*u,l=2*i-f;e=s(l,f,o+1/3),r=s(l,f,o),t=s(l,f,o-1/3)}return"rgba("+255*e+","+255*r+","+255*t+","+c+")"}(n):void 0;var e,r,t,a}function C(n){var e=/[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(n);if(e)return e[1]}function B(n,e){return i.fnc(n)?n(e.target,e.id,e.total):n}function P(n,e){return n.getAttribute(e)}function I(n,e,r){if(x([r,"deg","rad","turn"],C(e)))return e;var a=t.CSS[e+r];if(!i.und(a))return a;var o=document.createElement(n.tagName),u=n.parentNode&&n.parentNode!==document?n.parentNode:document.body;u.appendChild(o),o.style.position="absolute",o.style.width=100+r;var c=100/o.offsetWidth;u.removeChild(o);var s=c*parseFloat(e);return t.CSS[e+r]=s,s}function T(n,e,r){if(e in n.style){var t=e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),a=n.style[e]||getComputedStyle(n).getPropertyValue(t)||"0";return r?I(n,a,r):a}}function D(n,e){return i.dom(n)&&!i.inp(n)&&(P(n,e)||i.svg(n)&&n[e])?"attribute":i.dom(n)&&x(r,e)?"transform":i.dom(n)&&"transform"!==e&&T(n,e)?"css":null!=n[e]?"object":void 0}function E(n){if(i.dom(n)){for(var e,r=n.style.transform||"",t=/(\w+)\(([^)]*)\)/g,a=new Map;e=t.exec(r);)a.set(e[1],e[2]);return a}}function F(n,e,r,t){var a,u=o(e,"scale")?1:0+(o(a=e,"translate")||"perspective"===a?"px":o(a,"rotate")||o(a,"skew")?"deg":void 0),i=E(n).get(e)||u;return r&&(r.transforms.list.set(e,i),r.transforms.last=e),t?I(n,i,t):i}function N(n,e,r,t){switch(D(n,e)){case"transform":return F(n,e,t,r);case"css":return T(n,e,r);case"attribute":return P(n,e);default:return n[e]||0}}function A(n,e){var r=/^(\*=|\+=|-=)/.exec(n);if(!r)return n;var t=C(n)||0,a=parseFloat(e),o=parseFloat(n.replace(r[0],""));switch(r[0][0]){case"+":return a+o+t;case"-":return a-o+t;case"*":return a*o+t}}function L(n,e){if(i.col(n))return O(n);if(/\s/g.test(n))return n;var r=C(n),t=r?n.substr(0,n.length-r.length):n;return e?t+e:t}function j(n,e){return Math.sqrt(Math.pow(e.x-n.x,2)+Math.pow(e.y-n.y,2))}function S(n){for(var e,r=n.points,t=0,a=0;a<r.numberOfItems;a++){var o=r.getItem(a);a>0&&(t+=j(e,o)),e=o}return t}function q(n){if(n.getTotalLength)return n.getTotalLength();switch(n.tagName.toLowerCase()){case"circle":return o=n,2*Math.PI*P(o,"r");case"rect":return 2*P(a=n,"width")+2*P(a,"height");case"line":return j({x:P(t=n,"x1"),y:P(t,"y1")},{x:P(t,"x2"),y:P(t,"y2")});case"polyline":return S(n);case"polygon":return r=(e=n).points,S(e)+j(r.getItem(r.numberOfItems-1),r.getItem(0))}var e,r,t,a,o}function $(n,e){var r=e||{},t=r.el||function(n){for(var e=n.parentNode;i.svg(e)&&i.svg(e.parentNode);)e=e.parentNode;return e}(n),a=t.getBoundingClientRect(),o=P(t,"viewBox"),u=a.width,c=a.height,s=r.viewBox||(o?o.split(" "):[0,0,u,c]);return{el:t,viewBox:s,x:s[0]/1,y:s[1]/1,w:u/s[2],h:c/s[3]}}function X(n,e){function r(r){void 0===r&&(r=0);var t=e+r>=1?e+r:0;return n.el.getPointAtLength(t)}var t=$(n.el,n.svg),a=r(),o=r(-1),u=r(1);switch(n.property){case"x":return(a.x-t.x)*t.w;case"y":return(a.y-t.y)*t.h;case"angle":return 180*Math.atan2(u.y-o.y,u.x-o.x)/Math.PI}}function Y(n,e){var r=/[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/g,t=L(i.pth(n)?n.totalLength:n,e)+"";return{original:t,numbers:t.match(r)?t.match(r).map(Number):[0],strings:i.str(n)||e?t.split(r):[]}}function Z(n){return m(n?y(i.arr(n)?n.map(b):b(n)):[],function(n,e,r){return r.indexOf(n)===e})}function Q(n){var e=Z(n);return e.map(function(n,r){return{target:n,id:r,total:e.length,transforms:{list:E(n)}}})}function V(n,e){var r=M(e);if(/^spring/.test(r.easing)&&(r.duration=s(r.easing)),i.arr(n)){var t=n.length;2===t&&!i.obj(n[0])?n={value:n}:i.fnc(e.duration)||(r.duration=e.duration/t)}var a=i.arr(n)?n:[n];return a.map(function(n,r){var t=i.obj(n)&&!i.pth(n)?n:{value:n};return i.und(t.delay)&&(t.delay=r?0:e.delay),i.und(t.endDelay)&&(t.endDelay=r===a.length-1?e.endDelay:0),t}).map(function(n){return k(n,r)})}function z(n,e){var r=[],t=e.keyframes;for(var a in t&&(e=k(function(n){for(var e=m(y(n.map(function(n){return Object.keys(n)})),function(n){return i.key(n)}).reduce(function(n,e){return n.indexOf(e)<0&&n.push(e),n},[]),r={},t=function(t){var a=e[t];r[a]=n.map(function(n){var e={};for(var r in n)i.key(r)?r==a&&(e.value=n[r]):e[r]=n[r];return e})},a=0;a<e.length;a++)t(a);return r}(t),e)),e)i.key(a)&&r.push({name:a,tweens:V(e[a],n)});return r}function H(n,e){var r;return n.tweens.map(function(t){var a=function(n,e){var r={};for(var t in n){var a=B(n[t],e);i.arr(a)&&1===(a=a.map(function(n){return B(n,e)})).length&&(a=a[0]),r[t]=a}return r.duration=parseFloat(r.duration),r.delay=parseFloat(r.delay),r}(t,e),o=a.value,u=i.arr(o)?o[1]:o,c=C(u),s=N(e.target,n.name,c,e),f=r?r.to.original:s,l=i.arr(o)?o[0]:f,d=C(l)||C(s),p=c||d;return i.und(u)&&(u=f),a.from=Y(l,p),a.to=Y(A(u,l),p),a.start=r?r.end:0,a.end=a.start+a.delay+a.duration+a.endDelay,a.easing=v(a.easing,a.duration),a.isPath=i.pth(o),a.isColor=i.col(a.from.original),a.isColor&&(a.round=1),r=a,a})}var G={css:function(n,e,r){return n.style[e]=r},attribute:function(n,e,r){return n.setAttribute(e,r)},object:function(n,e,r){return n[e]=r},transform:function(n,e,r,t,a){if(t.list.set(e,r),e===t.last||a){var o="";t.list.forEach(function(n,e){o+=e+"("+n+") "}),n.style.transform=o}}};function R(n,e){Q(n).forEach(function(n){for(var r in e){var t=B(e[r],n),a=n.target,o=C(t),u=N(a,r,o,n),i=A(L(t,o||C(u)),u),c=D(a,r);G[c](a,r,i,n.transforms,!0)}})}function W(n,e){return m(y(n.map(function(n){return e.map(function(e){return function(n,e){var r=D(n.target,e.name);if(r){var t=H(e,n),a=t[t.length-1];return{type:r,property:e.name,animatable:n,tweens:t,duration:a.end,delay:t[0].delay,endDelay:a.endDelay}}}(n,e)})})),function(n){return!i.und(n)})}function J(n,e){var r=n.length,t=function(n){return n.timelineOffset?n.timelineOffset:0},a={};return a.duration=r?Math.max.apply(Math,n.map(function(n){return t(n)+n.duration})):e.duration,a.delay=r?Math.min.apply(Math,n.map(function(n){return t(n)+n.delay})):e.delay,a.endDelay=r?a.duration-Math.max.apply(Math,n.map(function(n){return t(n)+n.duration-n.endDelay})):e.endDelay,a}var K=0;var U,_=[],nn=[],en=function(){function n(){U=requestAnimationFrame(e)}function e(e){var r=_.length;if(r){for(var t=0;t<r;){var a=_[t];if(a.paused){var o=_.indexOf(a);o>-1&&(_.splice(o,1),r=_.length)}else a.tick(e);t++}n()}else U=cancelAnimationFrame(U)}return n}();function rn(r){void 0===r&&(r={});var t,o=0,u=0,i=0,c=0,s=null;function f(n){var e=window.Promise&&new Promise(function(n){return s=n});return n.finished=e,e}var l,d,p,h,v,g,y,b,x=(d=w(n,l=r),p=w(e,l),h=z(p,l),v=Q(l.targets),g=W(v,h),y=J(g,p),b=K,K++,k(d,{id:b,children:[],animatables:v,animations:g,duration:y.duration,delay:y.delay,endDelay:y.endDelay}));f(x);function M(){var n=x.direction;"alternate"!==n&&(x.direction="normal"!==n?"normal":"reverse"),x.reversed=!x.reversed,t.forEach(function(n){return n.reversed=x.reversed})}function O(n){return x.reversed?x.duration-n:n}function C(){o=0,u=O(x.currentTime)*(1/rn.speed)}function B(n,e){e&&e.seek(n-e.timelineOffset)}function P(n){for(var e=0,r=x.animations,t=r.length;e<t;){var o=r[e],u=o.animatable,i=o.tweens,c=i.length-1,s=i[c];c&&(s=m(i,function(e){return n<e.end})[0]||s);for(var f=a(n-s.start-s.delay,0,s.duration)/s.duration,l=isNaN(f)?1:s.easing(f),d=s.to.strings,p=s.round,h=[],v=s.to.numbers.length,g=void 0,y=0;y<v;y++){var b=void 0,M=s.to.numbers[y],w=s.from.numbers[y]||0;b=s.isPath?X(s.value,l*M):w+l*(M-w),p&&(s.isColor&&y>2||(b=Math.round(b*p)/p)),h.push(b)}var k=d.length;if(k){g=d[0];for(var O=0;O<k;O++){d[O];var C=d[O+1],B=h[O];isNaN(B)||(g+=C?B+C:B+" ")}}else g=h[0];G[o.type](u.target,o.property,g,u.transforms),o.currentValue=g,e++}}function I(n){x[n]&&!x.passThrough&&x[n](x)}function T(n){var e=x.duration,r=x.delay,l=e-x.endDelay,d=O(n);x.progress=a(d/e*100,0,100),x.reversePlayback=d<x.currentTime,t&&function(n){if(x.reversePlayback)for(var e=c;e--;)B(n,t[e]);else for(var r=0;r<c;r++)B(n,t[r])}(d),!x.began&&x.currentTime>0&&(x.began=!0,I("begin")),!x.loopBegan&&x.currentTime>0&&(x.loopBegan=!0,I("loopBegin")),d<=r&&0!==x.currentTime&&P(0),(d>=l&&x.currentTime!==e||!e)&&P(e),d>r&&d<l?(x.changeBegan||(x.changeBegan=!0,x.changeCompleted=!1,I("changeBegin")),I("change"),P(d)):x.changeBegan&&(x.changeCompleted=!0,x.changeBegan=!1,I("changeComplete")),x.currentTime=a(d,0,e),x.began&&I("update"),n>=e&&(u=0,x.remaining&&!0!==x.remaining&&x.remaining--,x.remaining?(o=i,I("loopComplete"),x.loopBegan=!1,"alternate"===x.direction&&M()):(x.paused=!0,x.completed||(x.completed=!0,I("loopComplete"),I("complete"),!x.passThrough&&"Promise"in window&&(s(),f(x)))))}return x.reset=function(){var n=x.direction;x.passThrough=!1,x.currentTime=0,x.progress=0,x.paused=!0,x.began=!1,x.loopBegan=!1,x.changeBegan=!1,x.completed=!1,x.changeCompleted=!1,x.reversePlayback=!1,x.reversed="reverse"===n,x.remaining=x.loop,t=x.children;for(var e=c=t.length;e--;)x.children[e].reset();(x.reversed&&!0!==x.loop||"alternate"===n&&1===x.loop)&&x.remaining++,P(x.reversed?x.duration:0)},x.set=function(n,e){return R(n,e),x},x.tick=function(n){i=n,o||(o=i),T((i+(u-o))*rn.speed)},x.seek=function(n){T(O(n))},x.pause=function(){x.paused=!0,C()},x.play=function(){x.paused&&(x.completed&&x.reset(),x.paused=!1,_.push(x),C(),U||en())},x.reverse=function(){M(),x.completed=!x.reversed,C()},x.restart=function(){x.reset(),x.play()},x.reset(),x.autoplay&&x.play(),x}function tn(n,e){for(var r=e.length;r--;)x(n,e[r].animatable.target)&&e.splice(r,1)}return"undefined"!=typeof document&&document.addEventListener("visibilitychange",function(){document.hidden?(_.forEach(function(n){return n.pause()}),nn=_.slice(0),rn.running=_=[]):nn.forEach(function(n){return n.play()})}),rn.version="3.2.0",rn.speed=1,rn.running=_,rn.remove=function(n){for(var e=Z(n),r=_.length;r--;){var t=_[r],a=t.animations,o=t.children;tn(e,a);for(var u=o.length;u--;){var i=o[u],c=i.animations;tn(e,c),c.length||i.children.length||o.splice(u,1)}a.length||o.length||t.pause()}},rn.get=N,rn.set=R,rn.convertPx=I,rn.path=function(n,e){var r=i.str(n)?g(n)[0]:n,t=e||100;return function(n){return{property:n,el:r,svg:$(r),totalLength:q(r)*(t/100)}}},rn.setDashoffset=function(n){var e=q(n);return n.setAttribute("stroke-dasharray",e),e},rn.stagger=function(n,e){void 0===e&&(e={});var r=e.direction||"normal",t=e.easing?v(e.easing):null,a=e.grid,o=e.axis,u=e.from||0,c="first"===u,s="center"===u,f="last"===u,l=i.arr(n),d=l?parseFloat(n[0]):parseFloat(n),p=l?parseFloat(n[1]):0,h=C(l?n[1]:n)||0,g=e.start||0+(l?d:0),m=[],y=0;return function(n,e,i){if(c&&(u=0),s&&(u=(i-1)/2),f&&(u=i-1),!m.length){for(var v=0;v<i;v++){if(a){var b=s?(a[0]-1)/2:u%a[0],x=s?(a[1]-1)/2:Math.floor(u/a[0]),M=b-v%a[0],w=x-Math.floor(v/a[0]),k=Math.sqrt(M*M+w*w);"x"===o&&(k=-M),"y"===o&&(k=-w),m.push(k)}else m.push(Math.abs(u-v));y=Math.max.apply(Math,m)}t&&(m=m.map(function(n){return t(n/y)*y})),"reverse"===r&&(m=m.map(function(n){return o?n<0?-1*n:-n:Math.abs(y-n)}))}return g+(l?(p-d)/y:d)*(Math.round(100*m[e])/100)+h}},rn.timeline=function(n){void 0===n&&(n={});var r=rn(n);return r.duration=0,r.add=function(t,a){var o=_.indexOf(r),u=r.children;function c(n){n.passThrough=!0}o>-1&&_.splice(o,1);for(var s=0;s<u.length;s++)c(u[s]);var f=k(t,w(e,n));f.targets=f.targets||n.targets;var l=r.duration;f.autoplay=!1,f.direction=r.direction,f.timelineOffset=i.und(a)?l:A(a,l),c(r),r.seek(f.timelineOffset);var d=rn(f);c(d),u.push(d);var p=J(u,n);return r.delay=p.delay,r.endDelay=p.endDelay,r.duration=p.duration,r.seek(0),r.reset(),r.autoplay&&r.play(),r},r},rn.easing=v,rn.penner=h,rn.random=function(n,e){return Math.floor(Math.random()*(e-n+1))+n},rn});
|
|
8
|
+
!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):n.anime=e()}(this,function(){"use strict";var i={update:null,begin:null,loopBegin:null,changeBegin:null,change:null,changeComplete:null,loopComplete:null,complete:null,loop:1,direction:"normal",autoplay:!0,timelineOffset:0},M={duration:1e3,delay:0,endDelay:0,easing:"easeOutElastic(1, .5)",round:0},j=["translateX","translateY","translateZ","rotate","rotateX","rotateY","rotateZ","scale","scaleX","scaleY","scaleZ","skew","skewX","skewY","perspective","matrix","matrix3d"],l={CSS:{},springs:{}};function C(n,e,t){return Math.min(Math.max(n,e),t)}function u(n,e){return-1<n.indexOf(e)}function o(n,e){return n.apply(null,e)}var w={arr:function(n){return Array.isArray(n)},obj:function(n){return u(Object.prototype.toString.call(n),"Object")},pth:function(n){return w.obj(n)&&n.hasOwnProperty("totalLength")},svg:function(n){return n instanceof SVGElement},inp:function(n){return n instanceof HTMLInputElement},dom:function(n){return n.nodeType||w.svg(n)},str:function(n){return"string"==typeof n},fnc:function(n){return"function"==typeof n},und:function(n){return void 0===n},nil:function(n){return w.und(n)||null===n},hex:function(n){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(n)},rgb:function(n){return/^rgb/.test(n)},hsl:function(n){return/^hsl/.test(n)},col:function(n){return w.hex(n)||w.rgb(n)||w.hsl(n)},key:function(n){return!i.hasOwnProperty(n)&&!M.hasOwnProperty(n)&&"targets"!==n&&"keyframes"!==n}};function d(n){n=/\(([^)]+)\)/.exec(n);return n?n[1].split(",").map(function(n){return parseFloat(n)}):[]}function c(r,t){var n=d(r),e=C(w.und(n[0])?1:n[0],.1,100),a=C(w.und(n[1])?100:n[1],.1,100),o=C(w.und(n[2])?10:n[2],.1,100),n=C(w.und(n[3])?0:n[3],.1,100),u=Math.sqrt(a/e),i=o/(2*Math.sqrt(a*e)),c=i<1?u*Math.sqrt(1-i*i):0,s=i<1?(i*u-n)/c:-n+u;function f(n){var e=t?t*n/1e3:n,e=i<1?Math.exp(-e*i*u)*(+Math.cos(c*e)+s*Math.sin(c*e)):(1+s*e)*Math.exp(-e*u);return 0===n||1===n?n:1-e}return t?f:function(){var n=l.springs[r];if(n)return n;for(var e=0,t=0;;)if(1===f(e+=1/6)){if(16<=++t)break}else t=0;return n=e*(1/6)*1e3,l.springs[r]=n}}function q(e){return void 0===e&&(e=10),function(n){return Math.ceil(C(n,1e-6,1)*e)*(1/e)}}var H=function(b,e,M,t){if(0<=b&&b<=1&&0<=M&&M<=1){var x=new Float32Array(11);if(b!==e||M!==t)for(var n=0;n<11;++n)x[n]=k(.1*n,b,M);return function(n){return b===e&&M===t||0===n||1===n?n:k(r(n),e,t)}}function r(n){for(var e=0,t=1;10!==t&&x[t]<=n;++t)e+=.1;var r=e+.1*((n-x[--t])/(x[t+1]-x[t])),a=O(r,b,M);if(.001<=a){for(var o=n,u=r,i=b,c=M,s=0;s<4;++s){var f=O(u,i,c);if(0===f)return u;u-=(k(u,i,c)-o)/f}return u}if(0===a)return r;for(var l,d,p=n,h=e,g=e+.1,m=b,v=M,y=0;0<(l=k(d=h+(g-h)/2,m,v)-p)?g=d:h=d,1e-7<Math.abs(l)&&++y<10;);return d}};function r(n,e){return 1-3*e+3*n}function k(n,e,t){return((r(e,t)*n+(3*t-6*e))*n+3*e)*n}function O(n,e,t){return 3*r(e,t)*n*n+2*(3*t-6*e)*n+3*e}e={linear:function(){return function(n){return n}}},t={Sine:function(){return function(n){return 1-Math.cos(n*Math.PI/2)}},Expo:function(){return function(n){return n?Math.pow(2,10*n-10):0}},Circ:function(){return function(n){return 1-Math.sqrt(1-n*n)}},Back:function(){return function(n){return n*n*(3*n-2)}},Bounce:function(){return function(n){for(var e,t=4;n<((e=Math.pow(2,--t))-1)/11;);return 1/Math.pow(4,3-t)-7.5625*Math.pow((3*e-2)/22-n,2)}},Elastic:function(n,e){void 0===e&&(e=.5);var t=C(n=void 0===n?1:n,1,10),r=C(e,.1,2);return function(n){return 0===n||1===n?n:-t*Math.pow(2,10*(n-1))*Math.sin((n-1-r/(2*Math.PI)*Math.asin(1/t))*(2*Math.PI)/r)}}},["Quad","Cubic","Quart","Quint"].forEach(function(n,e){t[n]=function(){return function(n){return Math.pow(n,e+2)}}}),Object.keys(t).forEach(function(n){var r=t[n];e["easeIn"+n]=r,e["easeOut"+n]=function(e,t){return function(n){return 1-r(e,t)(1-n)}},e["easeInOut"+n]=function(e,t){return function(n){return n<.5?r(e,t)(2*n)/2:1-r(e,t)(-2*n+2)/2}},e["easeOutIn"+n]=function(e,t){return function(n){return n<.5?(1-r(e,t)(1-2*n))/2:(r(e,t)(2*n-1)+1)/2}}});var e,t,s=e;function P(n,e){if(w.fnc(n))return n;var t=n.split("(")[0],r=s[t],a=d(n);switch(t){case"spring":return c(n,e);case"cubicBezier":return o(H,a);case"steps":return o(q,a);default:return o(r,a)}}function a(n){try{return document.querySelectorAll(n)}catch(n){}}function I(n,e){for(var t,r=n.length,a=2<=arguments.length?e:void 0,o=[],u=0;u<r;u++)u in n&&(t=n[u],e.call(a,t,u,n))&&o.push(t);return o}function f(n){return n.reduce(function(n,e){return n.concat(w.arr(e)?f(e):e)},[])}function p(n){return w.arr(n)?n:(n=w.str(n)?a(n)||n:n)instanceof NodeList||n instanceof HTMLCollection?[].slice.call(n):[n]}function h(n,e){return n.some(function(n){return n===e})}function g(n){var e,t={};for(e in n)t[e]=n[e];return t}function x(n,e){var t,r=g(n);for(t in n)r[t]=(e.hasOwnProperty(t)?e:n)[t];return r}function D(n,e){var t,r=g(n);for(t in e)r[t]=(w.und(n[t])?e:n)[t];return r}function V(n){var e,t,r,a,o,u,i;return w.rgb(n)?(e=/rgb\((\d+,\s*[\d]+,\s*[\d]+)\)/g.exec(t=n))?"rgba("+e[1]+",1)":t:w.hex(n)?(e=(e=n).replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(n,e,t,r){return e+e+t+t+r+r}),e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e),"rgba("+parseInt(e[1],16)+","+parseInt(e[2],16)+","+parseInt(e[3],16)+",1)"):w.hsl(n)?(t=/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(t=n)||/hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec(t),n=parseInt(t[1],10)/360,u=parseInt(t[2],10)/100,i=parseInt(t[3],10)/100,t=t[4]||1,0==u?r=a=o=i:(r=c(u=2*i-(i=i<.5?i*(1+u):i+u-i*u),i,n+1/3),a=c(u,i,n),o=c(u,i,n-1/3)),"rgba("+255*r+","+255*a+","+255*o+","+t+")"):void 0;function c(n,e,t){return t<0&&(t+=1),1<t&&--t,t<1/6?n+6*(e-n)*t:t<.5?e:t<2/3?n+(e-n)*(2/3-t)*6:n}}function B(n){n=/[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(n);if(n)return n[1]}function m(n,e){return w.fnc(n)?n(e.target,e.id,e.total):n}function v(n,e){return n.getAttribute(e)}function y(n,e,t){var r,a,o;return h([t,"deg","rad","turn"],B(e))?e:(r=l.CSS[e+t],w.und(r)?(a=document.createElement(n.tagName),(n=n.parentNode&&n.parentNode!==document?n.parentNode:document.body).appendChild(a),a.style.position="absolute",a.style.width=100+t,o=100/a.offsetWidth,n.removeChild(a),n=o*parseFloat(e),l.CSS[e+t]=n):r)}function $(n,e,t){var r;if(e in n.style)return r=e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),e=n.style[e]||getComputedStyle(n).getPropertyValue(r)||"0",t?y(n,e,t):e}function b(n,e){return w.dom(n)&&!w.inp(n)&&(!w.nil(v(n,e))||w.svg(n)&&n[e])?"attribute":w.dom(n)&&h(j,e)?"transform":w.dom(n)&&"transform"!==e&&$(n,e)?"css":null!=n[e]?"object":void 0}function W(n){if(w.dom(n)){for(var e,t=n.style.transform||"",r=/(\w+)\(([^)]*)\)/g,a=new Map;e=r.exec(t);)a.set(e[1],e[2]);return a}}function X(n,e,t,r){var a=u(e,"scale")?1:0+(u(a=e,"translate")||"perspective"===a?"px":u(a,"rotate")||u(a,"skew")?"deg":void 0),o=W(n).get(e)||a;return t&&(t.transforms.list.set(e,o),t.transforms.last=e),r?y(n,o,r):o}function T(n,e,t,r){switch(b(n,e)){case"transform":return X(n,e,r,t);case"css":return $(n,e,t);case"attribute":return v(n,e);default:return n[e]||0}}function E(n,e){var t=/^(\*=|\+=|-=)/.exec(n);if(!t)return n;var r=B(n)||0,a=parseFloat(e),o=parseFloat(n.replace(t[0],""));switch(t[0][0]){case"+":return a+o+r;case"-":return a-o+r;case"*":return a*o+r}}function Y(n,e){var t;return w.col(n)?V(n):/\s/g.test(n)?n:(t=(t=B(n))?n.substr(0,n.length-t.length):n,e?t+e:t)}function F(n,e){return Math.sqrt(Math.pow(e.x-n.x,2)+Math.pow(e.y-n.y,2))}function Z(n){for(var e,t=n.points,r=0,a=0;a<t.numberOfItems;a++){var o=t.getItem(a);0<a&&(r+=F(e,o)),e=o}return r}function G(n){if(n.getTotalLength)return n.getTotalLength();switch(n.tagName.toLowerCase()){case"circle":return 2*Math.PI*v(n,"r");case"rect":return 2*v(t=n,"width")+2*v(t,"height");case"line":return F({x:v(t=n,"x1"),y:v(t,"y1")},{x:v(t,"x2"),y:v(t,"y2")});case"polyline":return Z(n);case"polygon":return e=n.points,Z(n)+F(e.getItem(e.numberOfItems-1),e.getItem(0))}var e,t}function Q(n,e){var e=e||{},n=e.el||function(n){for(var e=n.parentNode;w.svg(e)&&w.svg(e.parentNode);)e=e.parentNode;return e}(n),t=n.getBoundingClientRect(),r=v(n,"viewBox"),a=t.width,t=t.height,e=e.viewBox||(r?r.split(" "):[0,0,a,t]);return{el:n,viewBox:e,x:+e[0],y:+e[1],w:a,h:t,vW:e[2],vH:e[3]}}function z(n,e){var t=/[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/g,r=Y(w.pth(n)?n.totalLength:n,e)+"";return{original:r,numbers:r.match(t)?r.match(t).map(Number):[0],strings:w.str(n)||e?r.split(t):[]}}function A(n){return I(n?f(w.arr(n)?n.map(p):p(n)):[],function(n,e,t){return t.indexOf(n)===e})}function _(n){var t=A(n);return t.map(function(n,e){return{target:n,id:e,total:t.length,transforms:{list:W(n)}}})}function R(e){for(var t=I(f(e.map(function(n){return Object.keys(n)})),function(n){return w.key(n)}).reduce(function(n,e){return n.indexOf(e)<0&&n.push(e),n},[]),a={},n=0;n<t.length;n++)!function(n){var r=t[n];a[r]=e.map(function(n){var e,t={};for(e in n)w.key(e)?e==r&&(t.value=n[e]):t[e]=n[e];return t})}(n);return a}function J(n,e){var t,r=[],a=e.keyframes;for(t in e=a?D(R(a),e):e)w.key(t)&&r.push({name:t,tweens:function(n,t){var e,r=g(t),a=(/^spring/.test(r.easing)&&(r.duration=c(r.easing)),w.arr(n)&&(2===(e=n.length)&&!w.obj(n[0])?n={value:n}:w.fnc(t.duration)||(r.duration=t.duration/e)),w.arr(n)?n:[n]);return a.map(function(n,e){n=w.obj(n)&&!w.pth(n)?n:{value:n};return w.und(n.delay)&&(n.delay=e?0:t.delay),w.und(n.endDelay)&&(n.endDelay=e===a.length-1?t.endDelay:0),n}).map(function(n){return D(n,r)})}(e[t],n)});return r}function K(i,c){var s;return i.tweens.map(function(n){var n=function(n,e){var t,r={};for(t in n){var a=m(n[t],e);w.arr(a)&&1===(a=a.map(function(n){return m(n,e)})).length&&(a=a[0]),r[t]=a}return r.duration=parseFloat(r.duration),r.delay=parseFloat(r.delay),r}(n,c),e=n.value,t=w.arr(e)?e[1]:e,r=B(t),a=T(c.target,i.name,r,c),o=s?s.to.original:a,u=w.arr(e)?e[0]:o,a=B(u)||B(a),r=r||a;return w.und(t)&&(t=o),n.from=z(u,r),n.to=z(E(t,u),r),n.start=s?s.end:0,n.end=n.start+n.delay+n.duration+n.endDelay,n.easing=P(n.easing,n.duration),n.isPath=w.pth(e),n.isPathTargetInsideSVG=n.isPath&&w.svg(c.target),n.isColor=w.col(n.from.original),n.isColor&&(n.round=1),s=n})}var U={css:function(n,e,t){return n.style[e]=t},attribute:function(n,e,t){return n.setAttribute(e,t)},object:function(n,e,t){return n[e]=t},transform:function(n,e,t,r,a){var o;r.list.set(e,t),e!==r.last&&!a||(o="",r.list.forEach(function(n,e){o+=e+"("+n+") "}),n.style.transform=o)}};function nn(n,u){_(n).forEach(function(n){for(var e in u){var t=m(u[e],n),r=n.target,a=B(t),o=T(r,e,a,n),t=E(Y(t,a||B(o)),o),a=b(r,e);U[a](r,e,t,n.transforms,!0)}})}function en(n,e){return I(f(n.map(function(o){return e.map(function(n){var e,t,r=o,a=b(r.target,n.name);if(a)return t=(e=K(n,r))[e.length-1],{type:a,property:n.name,animatable:r,tweens:e,duration:t.end,delay:e[0].delay,endDelay:t.endDelay}})})),function(n){return!w.und(n)})}function tn(n,e){function t(n){return n.timelineOffset||0}var r=n.length,a={};return a.duration=r?Math.max.apply(Math,n.map(function(n){return t(n)+n.duration})):e.duration,a.delay=r?Math.min.apply(Math,n.map(function(n){return t(n)+n.delay})):e.delay,a.endDelay=r?a.duration-Math.max.apply(Math,n.map(function(n){return t(n)+n.duration-n.endDelay})):e.endDelay,a}var rn=0;var N,S=[],an=("undefined"!=typeof document&&document.addEventListener("visibilitychange",function(){L.suspendWhenDocumentHidden&&(n()?N=cancelAnimationFrame(N):(S.forEach(function(n){return n._onDocumentVisibility()}),an()))}),function(){!(N||n()&&L.suspendWhenDocumentHidden)&&0<S.length&&(N=requestAnimationFrame(on))});function on(n){for(var e=S.length,t=0;t<e;){var r=S[t];r.paused?(S.splice(t,1),e--):(r.tick(n),t++)}N=0<t?requestAnimationFrame(on):void 0}function n(){return document&&document.hidden}function L(n){var c,s=0,f=0,l=0,d=0,p=null;function h(n){var e=window.Promise&&new Promise(function(n){return p=n});return n.finished=e}e=x(i,n=n=void 0===n?{}:n),t=J(r=x(M,n),n),n=_(n.targets),r=tn(t=en(n,t),r),a=rn,rn++;var e,t,r,a,k=D(e,{id:a,children:[],animatables:n,animations:t,duration:r.duration,delay:r.delay,endDelay:r.endDelay});h(k);function g(){var n=k.direction;"alternate"!==n&&(k.direction="normal"!==n?"normal":"reverse"),k.reversed=!k.reversed,c.forEach(function(n){return n.reversed=k.reversed})}function m(n){return k.reversed?k.duration-n:n}function o(){s=0,f=m(k.currentTime)*(1/L.speed)}function v(n,e){e&&e.seek(n-e.timelineOffset)}function y(e){for(var n=0,t=k.animations,r=t.length;n<r;){for(var a=t[n],o=a.animatable,u=a.tweens,i=u.length-1,c=u[i],i=(i&&(c=I(u,function(n){return e<n.end})[0]||c),C(e-c.start-c.delay,0,c.duration)/c.duration),s=isNaN(i)?1:c.easing(i),f=c.to.strings,l=c.round,d=[],p=c.to.numbers.length,h=void 0,g=0;g<p;g++){var m=void 0,v=c.to.numbers[g],y=c.from.numbers[g]||0,m=c.isPath?function(e,t,n){function r(n){return e.el.getPointAtLength(1<=t+(n=void 0===n?0:n)?t+n:0)}var a=Q(e.el,e.svg),o=r(),u=r(-1),i=r(1),c=n?1:a.w/a.vW,s=n?1:a.h/a.vH;switch(e.property){case"x":return(o.x-a.x)*c;case"y":return(o.y-a.y)*s;case"angle":return 180*Math.atan2(i.y-u.y,i.x-u.x)/Math.PI}}(c.value,s*v,c.isPathTargetInsideSVG):y+s*(v-y);!l||c.isColor&&2<g||(m=Math.round(m*l)/l),d.push(m)}var b=f.length;if(b)for(var h=f[0],M=0;M<b;M++){f[M];var x=f[M+1],w=d[M];isNaN(w)||(h+=x?w+x:w+" ")}else h=d[0];U[a.type](o.target,a.property,h,o.transforms),a.currentValue=h,n++}}function b(n){k[n]&&!k.passThrough&&k[n](k)}function u(n){var e=k.duration,t=k.delay,r=e-k.endDelay,a=m(n);if(k.progress=C(a/e*100,0,100),k.reversePlayback=a<k.currentTime,c){var o=a;if(k.reversePlayback)for(var u=d;u--;)v(o,c[u]);else for(var i=0;i<d;i++)v(o,c[i])}!k.began&&0<k.currentTime&&(k.began=!0,b("begin")),!k.loopBegan&&0<k.currentTime&&(k.loopBegan=!0,b("loopBegin")),a<=t&&0!==k.currentTime&&y(0),(r<=a&&k.currentTime!==e||!e)&&y(e),t<a&&a<r?(k.changeBegan||(k.changeBegan=!0,k.changeCompleted=!1,b("changeBegin")),b("change"),y(a)):k.changeBegan&&(k.changeCompleted=!0,k.changeBegan=!1,b("changeComplete")),k.currentTime=C(a,0,e),k.began&&b("update"),e<=n&&(f=0,k.remaining&&!0!==k.remaining&&k.remaining--,k.remaining?(s=l,b("loopComplete"),k.loopBegan=!1,"alternate"===k.direction&&g()):(k.paused=!0,k.completed||(k.completed=!0,b("loopComplete"),b("complete"),!k.passThrough&&"Promise"in window&&(p(),h(k)))))}return k.reset=function(){var n=k.direction;k.passThrough=!1,k.currentTime=0,k.progress=0,k.paused=!0,k.began=!1,k.loopBegan=!1,k.changeBegan=!1,k.completed=!1,k.changeCompleted=!1,k.reversePlayback=!1,k.reversed="reverse"===n,k.remaining=k.loop,c=k.children;for(var e=d=c.length;e--;)k.children[e].reset();(k.reversed&&!0!==k.loop||"alternate"===n&&1===k.loop)&&k.remaining++,y(k.reversed?k.duration:0)},k._onDocumentVisibility=o,k.set=function(n,e){return nn(n,e),k},k.tick=function(n){u(((l=n)+(f-(s=s||l)))*L.speed)},k.seek=function(n){u(m(n))},k.pause=function(){k.paused=!0,o()},k.play=function(){k.paused&&(k.completed&&k.reset(),k.paused=!1,S.push(k),o(),an())},k.reverse=function(){g(),k.completed=!k.reversed,o()},k.restart=function(){k.reset(),k.play()},k.remove=function(n){cn(A(n),k)},k.reset(),k.autoplay&&k.play(),k}function un(n,e){for(var t=e.length;t--;)h(n,e[t].animatable.target)&&e.splice(t,1)}function cn(n,e){var t=e.animations,r=e.children;un(n,t);for(var a=r.length;a--;){var o=r[a],u=o.animations;un(n,u),u.length||o.children.length||r.splice(a,1)}t.length||r.length||e.pause()}return L.version="3.2.1",L.speed=1,L.suspendWhenDocumentHidden=!0,L.running=S,L.remove=function(n){for(var e=A(n),t=S.length;t--;)cn(e,S[t])},L.get=T,L.set=nn,L.convertPx=y,L.path=function(n,e){var t=w.str(n)?a(n)[0]:n,r=e||100;return function(n){return{property:n,el:t,svg:Q(t),totalLength:G(t)*(r/100)}}},L.setDashoffset=function(n){var e=G(n);return n.setAttribute("stroke-dasharray",e),e},L.stagger=function(n,e){var i=(e=void 0===e?{}:e).direction||"normal",c=e.easing?P(e.easing):null,s=e.grid,f=e.axis,l=e.from||0,d="first"===l,p="center"===l,h="last"===l,g=w.arr(n),m=g?parseFloat(n[0]):parseFloat(n),v=g?parseFloat(n[1]):0,y=B(g?n[1]:n)||0,b=e.start||0+(g?m:0),M=[],x=0;return function(n,e,t){if(d&&(l=0),p&&(l=(t-1)/2),h&&(l=t-1),!M.length){for(var r,a,o,u=0;u<t;u++)s?(r=p?(s[0]-1)/2:l%s[0],a=p?(s[1]-1)/2:Math.floor(l/s[0]),r=r-u%s[0],a=a-Math.floor(u/s[0]),o=Math.sqrt(r*r+a*a),"x"===f&&(o=-r),M.push(o="y"===f?-a:o)):M.push(Math.abs(l-u)),x=Math.max.apply(Math,M);c&&(M=M.map(function(n){return c(n/x)*x})),"reverse"===i&&(M=M.map(function(n){return f?n<0?-1*n:-n:Math.abs(x-n)}))}return b+(g?(v-m)/x:m)*(Math.round(100*M[e])/100)+y}},L.timeline=function(u){var i=L(u=void 0===u?{}:u);return i.duration=0,i.add=function(n,e){var t=S.indexOf(i),r=i.children;function a(n){n.passThrough=!0}-1<t&&S.splice(t,1);for(var o=0;o<r.length;o++)a(r[o]);t=D(n,x(M,u)),t.targets=t.targets||u.targets,n=i.duration,t.autoplay=!1,t.direction=i.direction,t.timelineOffset=w.und(e)?n:E(e,n),a(i),i.seek(t.timelineOffset),e=L(t),a(e),r.push(e),n=tn(r,u);return i.delay=n.delay,i.endDelay=n.endDelay,i.duration=n.duration,i.seek(0),i.reset(),i.autoplay&&i.play(),i},i},L.easing=P,L.penner=s,L.random=function(n,e){return Math.floor(Math.random()*(e-n+1))+n},L});
|