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 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.0
3
- * (c) 2020 Julian Garnier
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', 'Expo'];
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 / viewBox[2],
582
- h: height / viewBox[3]
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) * svg.w;
612
- case 'y': return (p.y - svg.y) * svg.h;
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
- function play() {
858
- raf = requestAnimationFrame(step);
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
- if (activeInstancesLength) {
863
- var i = 0;
864
- while (i < activeInstancesLength) {
865
- var activeInstance = activeInstances[i];
866
- if (!activeInstance.paused) {
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
- play();
878
- } else {
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 handleVisibilityChange() {
886
- if (document.hidden) {
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
- if (!raf) { engine(); }
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 removeTargets(targets) {
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
- var animations = instance.animations;
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.0';
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 = removeTargets;
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.0
3
- * (c) 2020 Julian Garnier
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', 'Expo'];
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 / viewBox[2],
584
- h: height / viewBox[3]
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) * svg.w;
614
- case 'y': return (p.y - svg.y) * svg.h;
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
- function play() {
860
- raf = requestAnimationFrame(step);
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
- if (activeInstancesLength) {
865
- var i = 0;
866
- while (i < activeInstancesLength) {
867
- var activeInstance = activeInstances[i];
868
- if (!activeInstance.paused) {
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
- play();
880
- } else {
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 handleVisibilityChange() {
888
- if (document.hidden) {
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
- if (!raf) { engine(); }
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 removeTargets(targets) {
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
- var animations = instance.animations;
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.0';
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 = removeTargets;
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.0
3
- * (c) 2020 Julian Garnier
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});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "animejs",
3
- "version": "3.2.0",
3
+ "version": "3.2.2",
4
4
  "homepage": "http://animejs.com",
5
5
  "repository": "juliangarnier/anime",
6
6
  "description": "JavaScript animation engine",