@tweenjs/tween.js 22.0.0 → 23.0.0

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/dist/tween.amd.js CHANGED
@@ -675,12 +675,13 @@ define(['exports'], (function (exports) { 'use strict';
675
675
  * it is still playing, just paused).
676
676
  */
677
677
  Tween.prototype.update = function (time, autoStart) {
678
+ var _this = this;
679
+ var _a;
678
680
  if (time === void 0) { time = now(); }
679
681
  if (autoStart === void 0) { autoStart = true; }
680
682
  if (this._isPaused)
681
683
  return true;
682
684
  var property;
683
- var elapsed;
684
685
  var endTime = this._startTime + this._duration;
685
686
  if (!this._goToEnd && !this._isPlaying) {
686
687
  if (time > endTime)
@@ -704,18 +705,37 @@ define(['exports'], (function (exports) { 'use strict';
704
705
  }
705
706
  this._onEveryStartCallbackFired = true;
706
707
  }
707
- elapsed = (time - this._startTime) / this._duration;
708
- elapsed = this._duration === 0 || elapsed > 1 ? 1 : elapsed;
708
+ var elapsedTime = time - this._startTime;
709
+ var durationAndDelay = this._duration + ((_a = this._repeatDelayTime) !== null && _a !== void 0 ? _a : this._delayTime);
710
+ var totalTime = this._duration + this._repeat * durationAndDelay;
711
+ var calculateElapsedPortion = function () {
712
+ if (_this._duration === 0)
713
+ return 1;
714
+ if (elapsedTime > totalTime) {
715
+ return 1;
716
+ }
717
+ var timesRepeated = Math.trunc(elapsedTime / durationAndDelay);
718
+ var timeIntoCurrentRepeat = elapsedTime - timesRepeated * durationAndDelay;
719
+ // TODO use %?
720
+ // const timeIntoCurrentRepeat = elapsedTime % durationAndDelay
721
+ var portion = Math.min(timeIntoCurrentRepeat / _this._duration, 1);
722
+ if (portion === 0 && elapsedTime === _this._duration) {
723
+ return 1;
724
+ }
725
+ return portion;
726
+ };
727
+ var elapsed = calculateElapsedPortion();
709
728
  var value = this._easingFunction(elapsed);
710
729
  // properties transformations
711
730
  this._updateProperties(this._object, this._valuesStart, this._valuesEnd, value);
712
731
  if (this._onUpdateCallback) {
713
732
  this._onUpdateCallback(this._object, elapsed);
714
733
  }
715
- if (elapsed === 1) {
734
+ if (this._duration === 0 || elapsedTime >= this._duration) {
716
735
  if (this._repeat > 0) {
736
+ var completeCount = Math.min(Math.trunc((elapsedTime - this._duration) / durationAndDelay) + 1, this._repeat);
717
737
  if (isFinite(this._repeat)) {
718
- this._repeat--;
738
+ this._repeat -= completeCount;
719
739
  }
720
740
  // Reassign starting values, restart by making startTime = now
721
741
  for (property in this._valuesStartRepeat) {
@@ -733,12 +753,7 @@ define(['exports'], (function (exports) { 'use strict';
733
753
  if (this._yoyo) {
734
754
  this._reversed = !this._reversed;
735
755
  }
736
- if (this._repeatDelayTime !== undefined) {
737
- this._startTime = time + this._repeatDelayTime;
738
- }
739
- else {
740
- this._startTime = time + this._delayTime;
741
- }
756
+ this._startTime += durationAndDelay * completeCount;
742
757
  if (this._onRepeatCallback) {
743
758
  this._onRepeatCallback(this._object);
744
759
  }
@@ -814,7 +829,7 @@ define(['exports'], (function (exports) { 'use strict';
814
829
  return Tween;
815
830
  }());
816
831
 
817
- var VERSION = '22.0.0';
832
+ var VERSION = '23.0.0';
818
833
 
819
834
  /**
820
835
  * Tween.js - Licensed under the MIT license
package/dist/tween.cjs CHANGED
@@ -677,12 +677,13 @@ var Tween = /** @class */ (function () {
677
677
  * it is still playing, just paused).
678
678
  */
679
679
  Tween.prototype.update = function (time, autoStart) {
680
+ var _this = this;
681
+ var _a;
680
682
  if (time === void 0) { time = now(); }
681
683
  if (autoStart === void 0) { autoStart = true; }
682
684
  if (this._isPaused)
683
685
  return true;
684
686
  var property;
685
- var elapsed;
686
687
  var endTime = this._startTime + this._duration;
687
688
  if (!this._goToEnd && !this._isPlaying) {
688
689
  if (time > endTime)
@@ -706,18 +707,37 @@ var Tween = /** @class */ (function () {
706
707
  }
707
708
  this._onEveryStartCallbackFired = true;
708
709
  }
709
- elapsed = (time - this._startTime) / this._duration;
710
- elapsed = this._duration === 0 || elapsed > 1 ? 1 : elapsed;
710
+ var elapsedTime = time - this._startTime;
711
+ var durationAndDelay = this._duration + ((_a = this._repeatDelayTime) !== null && _a !== void 0 ? _a : this._delayTime);
712
+ var totalTime = this._duration + this._repeat * durationAndDelay;
713
+ var calculateElapsedPortion = function () {
714
+ if (_this._duration === 0)
715
+ return 1;
716
+ if (elapsedTime > totalTime) {
717
+ return 1;
718
+ }
719
+ var timesRepeated = Math.trunc(elapsedTime / durationAndDelay);
720
+ var timeIntoCurrentRepeat = elapsedTime - timesRepeated * durationAndDelay;
721
+ // TODO use %?
722
+ // const timeIntoCurrentRepeat = elapsedTime % durationAndDelay
723
+ var portion = Math.min(timeIntoCurrentRepeat / _this._duration, 1);
724
+ if (portion === 0 && elapsedTime === _this._duration) {
725
+ return 1;
726
+ }
727
+ return portion;
728
+ };
729
+ var elapsed = calculateElapsedPortion();
711
730
  var value = this._easingFunction(elapsed);
712
731
  // properties transformations
713
732
  this._updateProperties(this._object, this._valuesStart, this._valuesEnd, value);
714
733
  if (this._onUpdateCallback) {
715
734
  this._onUpdateCallback(this._object, elapsed);
716
735
  }
717
- if (elapsed === 1) {
736
+ if (this._duration === 0 || elapsedTime >= this._duration) {
718
737
  if (this._repeat > 0) {
738
+ var completeCount = Math.min(Math.trunc((elapsedTime - this._duration) / durationAndDelay) + 1, this._repeat);
719
739
  if (isFinite(this._repeat)) {
720
- this._repeat--;
740
+ this._repeat -= completeCount;
721
741
  }
722
742
  // Reassign starting values, restart by making startTime = now
723
743
  for (property in this._valuesStartRepeat) {
@@ -735,12 +755,7 @@ var Tween = /** @class */ (function () {
735
755
  if (this._yoyo) {
736
756
  this._reversed = !this._reversed;
737
757
  }
738
- if (this._repeatDelayTime !== undefined) {
739
- this._startTime = time + this._repeatDelayTime;
740
- }
741
- else {
742
- this._startTime = time + this._delayTime;
743
- }
758
+ this._startTime += durationAndDelay * completeCount;
744
759
  if (this._onRepeatCallback) {
745
760
  this._onRepeatCallback(this._object);
746
761
  }
@@ -816,7 +831,7 @@ var Tween = /** @class */ (function () {
816
831
  return Tween;
817
832
  }());
818
833
 
819
- var VERSION = '22.0.0';
834
+ var VERSION = '23.0.0';
820
835
 
821
836
  /**
822
837
  * Tween.js - Licensed under the MIT license
package/dist/tween.d.ts CHANGED
@@ -152,7 +152,7 @@ declare class Sequence {
152
152
  static nextId(): number;
153
153
  }
154
154
 
155
- declare const VERSION = "22.0.0";
155
+ declare const VERSION = "23.0.0";
156
156
 
157
157
  declare const nextId: typeof Sequence.nextId;
158
158
  declare const getAll: () => Tween<UnknownProps>[];
package/dist/tween.esm.js CHANGED
@@ -673,12 +673,13 @@ var Tween = /** @class */ (function () {
673
673
  * it is still playing, just paused).
674
674
  */
675
675
  Tween.prototype.update = function (time, autoStart) {
676
+ var _this = this;
677
+ var _a;
676
678
  if (time === void 0) { time = now(); }
677
679
  if (autoStart === void 0) { autoStart = true; }
678
680
  if (this._isPaused)
679
681
  return true;
680
682
  var property;
681
- var elapsed;
682
683
  var endTime = this._startTime + this._duration;
683
684
  if (!this._goToEnd && !this._isPlaying) {
684
685
  if (time > endTime)
@@ -702,18 +703,37 @@ var Tween = /** @class */ (function () {
702
703
  }
703
704
  this._onEveryStartCallbackFired = true;
704
705
  }
705
- elapsed = (time - this._startTime) / this._duration;
706
- elapsed = this._duration === 0 || elapsed > 1 ? 1 : elapsed;
706
+ var elapsedTime = time - this._startTime;
707
+ var durationAndDelay = this._duration + ((_a = this._repeatDelayTime) !== null && _a !== void 0 ? _a : this._delayTime);
708
+ var totalTime = this._duration + this._repeat * durationAndDelay;
709
+ var calculateElapsedPortion = function () {
710
+ if (_this._duration === 0)
711
+ return 1;
712
+ if (elapsedTime > totalTime) {
713
+ return 1;
714
+ }
715
+ var timesRepeated = Math.trunc(elapsedTime / durationAndDelay);
716
+ var timeIntoCurrentRepeat = elapsedTime - timesRepeated * durationAndDelay;
717
+ // TODO use %?
718
+ // const timeIntoCurrentRepeat = elapsedTime % durationAndDelay
719
+ var portion = Math.min(timeIntoCurrentRepeat / _this._duration, 1);
720
+ if (portion === 0 && elapsedTime === _this._duration) {
721
+ return 1;
722
+ }
723
+ return portion;
724
+ };
725
+ var elapsed = calculateElapsedPortion();
707
726
  var value = this._easingFunction(elapsed);
708
727
  // properties transformations
709
728
  this._updateProperties(this._object, this._valuesStart, this._valuesEnd, value);
710
729
  if (this._onUpdateCallback) {
711
730
  this._onUpdateCallback(this._object, elapsed);
712
731
  }
713
- if (elapsed === 1) {
732
+ if (this._duration === 0 || elapsedTime >= this._duration) {
714
733
  if (this._repeat > 0) {
734
+ var completeCount = Math.min(Math.trunc((elapsedTime - this._duration) / durationAndDelay) + 1, this._repeat);
715
735
  if (isFinite(this._repeat)) {
716
- this._repeat--;
736
+ this._repeat -= completeCount;
717
737
  }
718
738
  // Reassign starting values, restart by making startTime = now
719
739
  for (property in this._valuesStartRepeat) {
@@ -731,12 +751,7 @@ var Tween = /** @class */ (function () {
731
751
  if (this._yoyo) {
732
752
  this._reversed = !this._reversed;
733
753
  }
734
- if (this._repeatDelayTime !== undefined) {
735
- this._startTime = time + this._repeatDelayTime;
736
- }
737
- else {
738
- this._startTime = time + this._delayTime;
739
- }
754
+ this._startTime += durationAndDelay * completeCount;
740
755
  if (this._onRepeatCallback) {
741
756
  this._onRepeatCallback(this._object);
742
757
  }
@@ -812,7 +827,7 @@ var Tween = /** @class */ (function () {
812
827
  return Tween;
813
828
  }());
814
829
 
815
- var VERSION = '22.0.0';
830
+ var VERSION = '23.0.0';
816
831
 
817
832
  /**
818
833
  * Tween.js - Licensed under the MIT license
package/dist/tween.umd.js CHANGED
@@ -679,12 +679,13 @@
679
679
  * it is still playing, just paused).
680
680
  */
681
681
  Tween.prototype.update = function (time, autoStart) {
682
+ var _this = this;
683
+ var _a;
682
684
  if (time === void 0) { time = now(); }
683
685
  if (autoStart === void 0) { autoStart = true; }
684
686
  if (this._isPaused)
685
687
  return true;
686
688
  var property;
687
- var elapsed;
688
689
  var endTime = this._startTime + this._duration;
689
690
  if (!this._goToEnd && !this._isPlaying) {
690
691
  if (time > endTime)
@@ -708,18 +709,37 @@
708
709
  }
709
710
  this._onEveryStartCallbackFired = true;
710
711
  }
711
- elapsed = (time - this._startTime) / this._duration;
712
- elapsed = this._duration === 0 || elapsed > 1 ? 1 : elapsed;
712
+ var elapsedTime = time - this._startTime;
713
+ var durationAndDelay = this._duration + ((_a = this._repeatDelayTime) !== null && _a !== void 0 ? _a : this._delayTime);
714
+ var totalTime = this._duration + this._repeat * durationAndDelay;
715
+ var calculateElapsedPortion = function () {
716
+ if (_this._duration === 0)
717
+ return 1;
718
+ if (elapsedTime > totalTime) {
719
+ return 1;
720
+ }
721
+ var timesRepeated = Math.trunc(elapsedTime / durationAndDelay);
722
+ var timeIntoCurrentRepeat = elapsedTime - timesRepeated * durationAndDelay;
723
+ // TODO use %?
724
+ // const timeIntoCurrentRepeat = elapsedTime % durationAndDelay
725
+ var portion = Math.min(timeIntoCurrentRepeat / _this._duration, 1);
726
+ if (portion === 0 && elapsedTime === _this._duration) {
727
+ return 1;
728
+ }
729
+ return portion;
730
+ };
731
+ var elapsed = calculateElapsedPortion();
713
732
  var value = this._easingFunction(elapsed);
714
733
  // properties transformations
715
734
  this._updateProperties(this._object, this._valuesStart, this._valuesEnd, value);
716
735
  if (this._onUpdateCallback) {
717
736
  this._onUpdateCallback(this._object, elapsed);
718
737
  }
719
- if (elapsed === 1) {
738
+ if (this._duration === 0 || elapsedTime >= this._duration) {
720
739
  if (this._repeat > 0) {
740
+ var completeCount = Math.min(Math.trunc((elapsedTime - this._duration) / durationAndDelay) + 1, this._repeat);
721
741
  if (isFinite(this._repeat)) {
722
- this._repeat--;
742
+ this._repeat -= completeCount;
723
743
  }
724
744
  // Reassign starting values, restart by making startTime = now
725
745
  for (property in this._valuesStartRepeat) {
@@ -737,12 +757,7 @@
737
757
  if (this._yoyo) {
738
758
  this._reversed = !this._reversed;
739
759
  }
740
- if (this._repeatDelayTime !== undefined) {
741
- this._startTime = time + this._repeatDelayTime;
742
- }
743
- else {
744
- this._startTime = time + this._delayTime;
745
- }
760
+ this._startTime += durationAndDelay * completeCount;
746
761
  if (this._onRepeatCallback) {
747
762
  this._onRepeatCallback(this._object);
748
763
  }
@@ -818,7 +833,7 @@
818
833
  return Tween;
819
834
  }());
820
835
 
821
- var VERSION = '22.0.0';
836
+ var VERSION = '23.0.0';
822
837
 
823
838
  /**
824
839
  * Tween.js - Licensed under the MIT license
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tweenjs/tween.js",
3
3
  "description": "Simple and fast tweening engine with optimised Robert Penner's equations.",
4
- "version": "22.0.0",
4
+ "version": "23.0.0",
5
5
  "type": "module",
6
6
  "main": "dist/tween.cjs",
7
7
  "types": "dist/tween.d.ts",