countup.js
Advanced tools
Comparing version 2.0.1 to 2.0.2
@@ -12,3 +12,2 @@ ## I'm submitting a... | ||
- [ ] Test your changes | ||
- [ ] Sqaushed commits | ||
- [ ] Followed the build steps | ||
@@ -15,0 +14,0 @@ |
@@ -0,1 +1,2 @@ | ||
"use strict"; | ||
var __assign = (this && this.__assign) || function () { | ||
@@ -12,242 +13,239 @@ __assign = Object.assign || function(t) { | ||
}; | ||
define(["require", "exports"], function (require, exports) { | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
// playground: stackblitz.com/edit/countup-typescript | ||
var CountUp = /** @class */ (function () { | ||
function CountUp(target, endVal, options) { | ||
var _this = this; | ||
this.target = target; | ||
this.endVal = endVal; | ||
this.options = options; | ||
this.version = '2.0.1'; | ||
this.defaults = { | ||
startVal: 0, | ||
decimalPlaces: 0, | ||
duration: 2, | ||
useEasing: true, | ||
useGrouping: true, | ||
smartEasingThreshold: 999, | ||
smartEasingAmount: 333, | ||
separator: ',', | ||
decimal: '.', | ||
prefix: '', | ||
suffix: '' | ||
}; | ||
this.finalEndVal = null; // for smart easing | ||
this.useEasing = true; | ||
this.countDown = false; | ||
this.error = ''; | ||
this.startVal = 0; | ||
this.paused = true; | ||
this.count = function (timestamp) { | ||
if (!_this.startTime) { | ||
_this.startTime = timestamp; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
// playground: stackblitz.com/edit/countup-typescript | ||
var CountUp = /** @class */ (function () { | ||
function CountUp(target, endVal, options) { | ||
var _this = this; | ||
this.target = target; | ||
this.endVal = endVal; | ||
this.options = options; | ||
this.version = '2.0.2'; | ||
this.defaults = { | ||
startVal: 0, | ||
decimalPlaces: 0, | ||
duration: 2, | ||
useEasing: true, | ||
useGrouping: true, | ||
smartEasingThreshold: 999, | ||
smartEasingAmount: 333, | ||
separator: ',', | ||
decimal: '.', | ||
prefix: '', | ||
suffix: '' | ||
}; | ||
this.finalEndVal = null; // for smart easing | ||
this.useEasing = true; | ||
this.countDown = false; | ||
this.error = ''; | ||
this.startVal = 0; | ||
this.paused = true; | ||
this.count = function (timestamp) { | ||
if (!_this.startTime) { | ||
_this.startTime = timestamp; | ||
} | ||
var progress = timestamp - _this.startTime; | ||
_this.remaining = _this.duration - progress; | ||
// to ease or not to ease | ||
if (_this.useEasing) { | ||
if (_this.countDown) { | ||
_this.frameVal = _this.startVal - _this.easingFn(progress, 0, _this.startVal - _this.endVal, _this.duration); | ||
} | ||
var progress = timestamp - _this.startTime; | ||
_this.remaining = _this.duration - progress; | ||
// to ease or not to ease | ||
if (_this.useEasing) { | ||
if (_this.countDown) { | ||
_this.frameVal = _this.startVal - _this.easingFn(progress, 0, _this.startVal - _this.endVal, _this.duration); | ||
} | ||
else { | ||
_this.frameVal = _this.easingFn(progress, _this.startVal, _this.endVal - _this.startVal, _this.duration); | ||
} | ||
} | ||
else { | ||
if (_this.countDown) { | ||
_this.frameVal = _this.startVal - ((_this.startVal - _this.endVal) * (progress / _this.duration)); | ||
} | ||
else { | ||
_this.frameVal = _this.startVal + (_this.endVal - _this.startVal) * (progress / _this.duration); | ||
} | ||
_this.frameVal = _this.easingFn(progress, _this.startVal, _this.endVal - _this.startVal, _this.duration); | ||
} | ||
// don't go past endVal since progress can exceed duration in the last frame | ||
} | ||
else { | ||
if (_this.countDown) { | ||
_this.frameVal = (_this.frameVal < _this.endVal) ? _this.endVal : _this.frameVal; | ||
_this.frameVal = _this.startVal - ((_this.startVal - _this.endVal) * (progress / _this.duration)); | ||
} | ||
else { | ||
_this.frameVal = (_this.frameVal > _this.endVal) ? _this.endVal : _this.frameVal; | ||
_this.frameVal = _this.startVal + (_this.endVal - _this.startVal) * (progress / _this.duration); | ||
} | ||
// decimal | ||
_this.frameVal = Math.round(_this.frameVal * _this.decimalMult) / _this.decimalMult; | ||
// format and print value | ||
_this.printValue(_this.frameVal); | ||
// whether to continue | ||
if (progress < _this.duration) { | ||
_this.rAF = requestAnimationFrame(_this.count); | ||
} | ||
else if (_this.finalEndVal !== null) { | ||
// smart easing | ||
_this.update(_this.finalEndVal); | ||
} | ||
else { | ||
if (_this.callback) { | ||
_this.callback(); | ||
} | ||
} | ||
}; | ||
// default format and easing functions | ||
this.formatNumber = function (num) { | ||
var neg = (num < 0) ? '-' : ''; | ||
var result, x, x1, x2, x3; | ||
result = Math.abs(num).toFixed(_this.options.decimalPlaces); | ||
result += ''; | ||
x = result.split('.'); | ||
x1 = x[0]; | ||
x2 = x.length > 1 ? _this.options.decimal + x[1] : ''; | ||
if (_this.options.useGrouping) { | ||
x3 = ''; | ||
for (var i = 0, len = x1.length; i < len; ++i) { | ||
if (i !== 0 && (i % 3) === 0) { | ||
x3 = _this.options.separator + x3; | ||
} | ||
x3 = x1[len - i - 1] + x3; | ||
} | ||
x1 = x3; | ||
} | ||
// optional numeral substitution | ||
if (_this.options.numerals && _this.options.numerals.length) { | ||
x1 = x1.replace(/[0-9]/g, function (w) { return _this.options.numerals[+w]; }); | ||
x2 = x2.replace(/[0-9]/g, function (w) { return _this.options.numerals[+w]; }); | ||
} | ||
return neg + _this.options.prefix + x1 + x2 + _this.options.suffix; | ||
}; | ||
this.easeOutExpo = function (t, b, c, d) { | ||
return c * (-Math.pow(2, -10 * t / d) + 1) * 1024 / 1023 + b; | ||
}; | ||
this.options = __assign({}, this.defaults, options); | ||
this.formattingFn = (this.options.formattingFn) ? | ||
this.options.formattingFn : this.formatNumber; | ||
this.easingFn = (this.options.easingFn) ? | ||
this.options.easingFn : this.easeOutExpo; | ||
this.startVal = this.validateValue(this.options.startVal); | ||
this.frameVal = this.startVal; | ||
this.endVal = this.validateValue(endVal); | ||
this.options.decimalPlaces = Math.max(0 || this.options.decimalPlaces); | ||
this.decimalMult = Math.pow(10, this.options.decimalPlaces); | ||
this.resetDuration(); | ||
this.options.separator = String(this.options.separator); | ||
this.useEasing = this.options.useEasing; | ||
if (this.options.separator === '') { | ||
this.options.useGrouping = false; | ||
} | ||
this.el = (typeof target === 'string') ? document.getElementById(target) : target; | ||
if (this.el) { | ||
this.printValue(this.startVal); | ||
// don't go past endVal since progress can exceed duration in the last frame | ||
if (_this.countDown) { | ||
_this.frameVal = (_this.frameVal < _this.endVal) ? _this.endVal : _this.frameVal; | ||
} | ||
else { | ||
this.error = '[CountUp] target is null or undefined'; | ||
_this.frameVal = (_this.frameVal > _this.endVal) ? _this.endVal : _this.frameVal; | ||
} | ||
} | ||
// determines where easing starts and whether to count down or up | ||
CountUp.prototype.determineDirectionAndSmartEasing = function () { | ||
var end = (this.finalEndVal) ? this.finalEndVal : this.endVal; | ||
this.countDown = (this.startVal > end); | ||
var animateAmount = end - this.startVal; | ||
if (Math.abs(animateAmount) > this.options.smartEasingThreshold) { | ||
this.finalEndVal = end; | ||
var up = (this.countDown) ? 1 : -1; | ||
this.endVal = end + (up * this.options.smartEasingAmount); | ||
this.duration = this.duration / 2; | ||
// decimal | ||
_this.frameVal = Math.round(_this.frameVal * _this.decimalMult) / _this.decimalMult; | ||
// format and print value | ||
_this.printValue(_this.frameVal); | ||
// whether to continue | ||
if (progress < _this.duration) { | ||
_this.rAF = requestAnimationFrame(_this.count); | ||
} | ||
else { | ||
this.endVal = end; | ||
this.finalEndVal = null; | ||
else if (_this.finalEndVal !== null) { | ||
// smart easing | ||
_this.update(_this.finalEndVal); | ||
} | ||
if (this.finalEndVal) { | ||
this.useEasing = false; | ||
} | ||
else { | ||
this.useEasing = this.options.useEasing; | ||
if (_this.callback) { | ||
_this.callback(); | ||
} | ||
} | ||
}; | ||
// start animation | ||
CountUp.prototype.start = function (callback) { | ||
if (this.error) { | ||
return; | ||
// default format and easing functions | ||
this.formatNumber = function (num) { | ||
var neg = (num < 0) ? '-' : ''; | ||
var result, x, x1, x2, x3; | ||
result = Math.abs(num).toFixed(_this.options.decimalPlaces); | ||
result += ''; | ||
x = result.split('.'); | ||
x1 = x[0]; | ||
x2 = x.length > 1 ? _this.options.decimal + x[1] : ''; | ||
if (_this.options.useGrouping) { | ||
x3 = ''; | ||
for (var i = 0, len = x1.length; i < len; ++i) { | ||
if (i !== 0 && (i % 3) === 0) { | ||
x3 = _this.options.separator + x3; | ||
} | ||
x3 = x1[len - i - 1] + x3; | ||
} | ||
x1 = x3; | ||
} | ||
this.callback = callback; | ||
if (this.duration > 0) { | ||
this.determineDirectionAndSmartEasing(); | ||
this.paused = false; | ||
this.rAF = requestAnimationFrame(this.count); | ||
// optional numeral substitution | ||
if (_this.options.numerals && _this.options.numerals.length) { | ||
x1 = x1.replace(/[0-9]/g, function (w) { return _this.options.numerals[+w]; }); | ||
x2 = x2.replace(/[0-9]/g, function (w) { return _this.options.numerals[+w]; }); | ||
} | ||
else { | ||
this.printValue(this.endVal); | ||
} | ||
return neg + _this.options.prefix + x1 + x2 + _this.options.suffix; | ||
}; | ||
// pause/resume animation | ||
CountUp.prototype.pauseResume = function () { | ||
if (!this.paused) { | ||
cancelAnimationFrame(this.rAF); | ||
} | ||
else { | ||
this.startTime = null; | ||
this.duration = this.remaining; | ||
this.startVal = this.frameVal; | ||
this.determineDirectionAndSmartEasing(); | ||
this.rAF = requestAnimationFrame(this.count); | ||
} | ||
this.paused = !this.paused; | ||
this.easeOutExpo = function (t, b, c, d) { | ||
return c * (-Math.pow(2, -10 * t / d) + 1) * 1024 / 1023 + b; | ||
}; | ||
// reset to startVal so animation can be run again | ||
CountUp.prototype.reset = function () { | ||
cancelAnimationFrame(this.rAF); | ||
this.paused = true; | ||
this.resetDuration(); | ||
this.startVal = this.validateValue(this.options.startVal); | ||
this.frameVal = this.startVal; | ||
this.options = __assign({}, this.defaults, options); | ||
this.formattingFn = (this.options.formattingFn) ? | ||
this.options.formattingFn : this.formatNumber; | ||
this.easingFn = (this.options.easingFn) ? | ||
this.options.easingFn : this.easeOutExpo; | ||
this.startVal = this.validateValue(this.options.startVal); | ||
this.frameVal = this.startVal; | ||
this.endVal = this.validateValue(endVal); | ||
this.options.decimalPlaces = Math.max(0 || this.options.decimalPlaces); | ||
this.decimalMult = Math.pow(10, this.options.decimalPlaces); | ||
this.resetDuration(); | ||
this.options.separator = String(this.options.separator); | ||
this.useEasing = this.options.useEasing; | ||
if (this.options.separator === '') { | ||
this.options.useGrouping = false; | ||
} | ||
this.el = (typeof target === 'string') ? document.getElementById(target) : target; | ||
if (this.el) { | ||
this.printValue(this.startVal); | ||
}; | ||
// pass a new endVal and start animation | ||
CountUp.prototype.update = function (newEndVal) { | ||
} | ||
else { | ||
this.error = '[CountUp] target is null or undefined'; | ||
} | ||
} | ||
// determines where easing starts and whether to count down or up | ||
CountUp.prototype.determineDirectionAndSmartEasing = function () { | ||
var end = (this.finalEndVal) ? this.finalEndVal : this.endVal; | ||
this.countDown = (this.startVal > end); | ||
var animateAmount = end - this.startVal; | ||
if (Math.abs(animateAmount) > this.options.smartEasingThreshold) { | ||
this.finalEndVal = end; | ||
var up = (this.countDown) ? 1 : -1; | ||
this.endVal = end + (up * this.options.smartEasingAmount); | ||
this.duration = this.duration / 2; | ||
} | ||
else { | ||
this.endVal = end; | ||
this.finalEndVal = null; | ||
} | ||
if (this.finalEndVal) { | ||
this.useEasing = false; | ||
} | ||
else { | ||
this.useEasing = this.options.useEasing; | ||
} | ||
}; | ||
// start animation | ||
CountUp.prototype.start = function (callback) { | ||
if (this.error) { | ||
return; | ||
} | ||
this.callback = callback; | ||
if (this.duration > 0) { | ||
this.determineDirectionAndSmartEasing(); | ||
this.paused = false; | ||
this.rAF = requestAnimationFrame(this.count); | ||
} | ||
else { | ||
this.printValue(this.endVal); | ||
} | ||
}; | ||
// pause/resume animation | ||
CountUp.prototype.pauseResume = function () { | ||
if (!this.paused) { | ||
cancelAnimationFrame(this.rAF); | ||
} | ||
else { | ||
this.startTime = null; | ||
this.endVal = this.validateValue(newEndVal); | ||
if (this.endVal === this.frameVal) { | ||
return; | ||
} | ||
this.duration = this.remaining; | ||
this.startVal = this.frameVal; | ||
if (!this.finalEndVal) { | ||
this.resetDuration(); | ||
} | ||
this.determineDirectionAndSmartEasing(); | ||
this.rAF = requestAnimationFrame(this.count); | ||
}; | ||
CountUp.prototype.printValue = function (val) { | ||
var result = this.formattingFn(val); | ||
if (this.el.tagName === 'INPUT') { | ||
var input = this.el; | ||
input.value = result; | ||
} | ||
else if (this.el.tagName === 'text' || this.el.tagName === 'tspan') { | ||
this.el.textContent = result; | ||
} | ||
else { | ||
this.el.innerHTML = result; | ||
} | ||
}; | ||
CountUp.prototype.ensureNumber = function (n) { | ||
return (typeof n === 'number' && !isNaN(n)); | ||
}; | ||
CountUp.prototype.validateValue = function (value) { | ||
var newValue = Number(value); | ||
if (!this.ensureNumber(newValue)) { | ||
this.error = "[CountUp] invalid start or end value: " + value; | ||
return null; | ||
} | ||
else { | ||
return newValue; | ||
} | ||
}; | ||
CountUp.prototype.resetDuration = function () { | ||
this.startTime = null; | ||
this.duration = Number(this.options.duration) * 1000; | ||
this.remaining = this.duration; | ||
}; | ||
return CountUp; | ||
}()); | ||
exports.CountUp = CountUp; | ||
}); | ||
} | ||
this.paused = !this.paused; | ||
}; | ||
// reset to startVal so animation can be run again | ||
CountUp.prototype.reset = function () { | ||
cancelAnimationFrame(this.rAF); | ||
this.paused = true; | ||
this.resetDuration(); | ||
this.startVal = this.validateValue(this.options.startVal); | ||
this.frameVal = this.startVal; | ||
this.printValue(this.startVal); | ||
}; | ||
// pass a new endVal and start animation | ||
CountUp.prototype.update = function (newEndVal) { | ||
cancelAnimationFrame(this.rAF); | ||
this.startTime = null; | ||
this.endVal = this.validateValue(newEndVal); | ||
if (this.endVal === this.frameVal) { | ||
return; | ||
} | ||
this.startVal = this.frameVal; | ||
if (!this.finalEndVal) { | ||
this.resetDuration(); | ||
} | ||
this.determineDirectionAndSmartEasing(); | ||
this.rAF = requestAnimationFrame(this.count); | ||
}; | ||
CountUp.prototype.printValue = function (val) { | ||
var result = this.formattingFn(val); | ||
if (this.el.tagName === 'INPUT') { | ||
var input = this.el; | ||
input.value = result; | ||
} | ||
else if (this.el.tagName === 'text' || this.el.tagName === 'tspan') { | ||
this.el.textContent = result; | ||
} | ||
else { | ||
this.el.innerHTML = result; | ||
} | ||
}; | ||
CountUp.prototype.ensureNumber = function (n) { | ||
return (typeof n === 'number' && !isNaN(n)); | ||
}; | ||
CountUp.prototype.validateValue = function (value) { | ||
var newValue = Number(value); | ||
if (!this.ensureNumber(newValue)) { | ||
this.error = "[CountUp] invalid start or end value: " + value; | ||
return null; | ||
} | ||
else { | ||
return newValue; | ||
} | ||
}; | ||
CountUp.prototype.resetDuration = function () { | ||
this.startTime = null; | ||
this.duration = Number(this.options.duration) * 1000; | ||
this.remaining = this.duration; | ||
}; | ||
return CountUp; | ||
}()); | ||
exports.CountUp = CountUp; |
@@ -1,1 +0,1 @@ | ||
var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(t){for(var i,a=1,s=arguments.length;a<s;a++)for(var n in i=arguments[a])Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n]);return t}).apply(this,arguments)};define(["require","exports"],function(t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var a=function(){function t(t,i,a){var h=this;this.target=t,this.endVal=i,this.options=a,this.version="2.0.1",this.defaults={startVal:0,decimalPlaces:0,duration:2,useEasing:!0,useGrouping:!0,smartEasingThreshold:999,smartEasingAmount:333,separator:",",decimal:".",prefix:"",suffix:""},this.finalEndVal=null,this.useEasing=!0,this.countDown=!1,this.error="",this.startVal=0,this.paused=!0,this.count=function(t){h.startTime||(h.startTime=t);var i=t-h.startTime;h.remaining=h.duration-i,h.useEasing?h.countDown?h.frameVal=h.startVal-h.easingFn(i,0,h.startVal-h.endVal,h.duration):h.frameVal=h.easingFn(i,h.startVal,h.endVal-h.startVal,h.duration):h.countDown?h.frameVal=h.startVal-(h.startVal-h.endVal)*(i/h.duration):h.frameVal=h.startVal+(h.endVal-h.startVal)*(i/h.duration),h.countDown?h.frameVal=h.frameVal<h.endVal?h.endVal:h.frameVal:h.frameVal=h.frameVal>h.endVal?h.endVal:h.frameVal,h.frameVal=Math.round(h.frameVal*h.decimalMult)/h.decimalMult,h.printValue(h.frameVal),i<h.duration?h.rAF=requestAnimationFrame(h.count):null!==h.finalEndVal?h.update(h.finalEndVal):h.callback&&h.callback()},this.formatNumber=function(t){var i,a,s,n,e,r=t<0?"-":"";if(i=Math.abs(t).toFixed(h.options.decimalPlaces),s=(a=(i+="").split("."))[0],n=1<a.length?h.options.decimal+a[1]:"",h.options.useGrouping){e="";for(var o=0,l=s.length;o<l;++o)0!==o&&o%3==0&&(e=h.options.separator+e),e=s[l-o-1]+e;s=e}return h.options.numerals&&h.options.numerals.length&&(s=s.replace(/[0-9]/g,function(t){return h.options.numerals[+t]}),n=n.replace(/[0-9]/g,function(t){return h.options.numerals[+t]})),r+h.options.prefix+s+n+h.options.suffix},this.easeOutExpo=function(t,i,a,s){return a*(1-Math.pow(2,-10*t/s))*1024/1023+i},this.options=__assign({},this.defaults,a),this.formattingFn=this.options.formattingFn?this.options.formattingFn:this.formatNumber,this.easingFn=this.options.easingFn?this.options.easingFn:this.easeOutExpo,this.startVal=this.validateValue(this.options.startVal),this.frameVal=this.startVal,this.endVal=this.validateValue(i),this.options.decimalPlaces=Math.max(this.options.decimalPlaces),this.decimalMult=Math.pow(10,this.options.decimalPlaces),this.resetDuration(),this.options.separator=String(this.options.separator),this.useEasing=this.options.useEasing,""===this.options.separator&&(this.options.useGrouping=!1),this.el="string"==typeof t?document.getElementById(t):t,this.el?this.printValue(this.startVal):this.error="[CountUp] target is null or undefined"}return t.prototype.determineDirectionAndSmartEasing=function(){var t=this.finalEndVal?this.finalEndVal:this.endVal;this.countDown=this.startVal>t;var i=t-this.startVal;if(Math.abs(i)>this.options.smartEasingThreshold){this.finalEndVal=t;var a=this.countDown?1:-1;this.endVal=t+a*this.options.smartEasingAmount,this.duration=this.duration/2}else this.endVal=t,this.finalEndVal=null;this.finalEndVal?this.useEasing=!1:this.useEasing=this.options.useEasing},t.prototype.start=function(t){this.error||(this.callback=t,0<this.duration?(this.determineDirectionAndSmartEasing(),this.paused=!1,this.rAF=requestAnimationFrame(this.count)):this.printValue(this.endVal))},t.prototype.pauseResume=function(){this.paused?(this.startTime=null,this.duration=this.remaining,this.startVal=this.frameVal,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count)):cancelAnimationFrame(this.rAF),this.paused=!this.paused},t.prototype.reset=function(){cancelAnimationFrame(this.rAF),this.paused=!0,this.resetDuration(),this.startVal=this.validateValue(this.options.startVal),this.frameVal=this.startVal,this.printValue(this.startVal)},t.prototype.update=function(t){cancelAnimationFrame(this.rAF),this.startTime=null,this.endVal=this.validateValue(t),this.endVal!==this.frameVal&&(this.startVal=this.frameVal,this.finalEndVal||this.resetDuration(),this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count))},t.prototype.printValue=function(t){var i=this.formattingFn(t);"INPUT"===this.el.tagName?this.el.value=i:"text"===this.el.tagName||"tspan"===this.el.tagName?this.el.textContent=i:this.el.innerHTML=i},t.prototype.ensureNumber=function(t){return"number"==typeof t&&!isNaN(t)},t.prototype.validateValue=function(t){var i=Number(t);return this.ensureNumber(i)?i:(this.error="[CountUp] invalid start or end value: "+t,null)},t.prototype.resetDuration=function(){this.startTime=null,this.duration=1e3*Number(this.options.duration),this.remaining=this.duration},t}();i.CountUp=a}); | ||
"use strict";var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(t){for(var i,a=1,s=arguments.length;a<s;a++)for(var n in i=arguments[a])Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n]);return t}).apply(this,arguments)};Object.defineProperty(exports,"__esModule",{value:!0});var CountUp=function(){function t(t,i,a){var h=this;this.target=t,this.endVal=i,this.options=a,this.version="2.0.2",this.defaults={startVal:0,decimalPlaces:0,duration:2,useEasing:!0,useGrouping:!0,smartEasingThreshold:999,smartEasingAmount:333,separator:",",decimal:".",prefix:"",suffix:""},this.finalEndVal=null,this.useEasing=!0,this.countDown=!1,this.error="",this.startVal=0,this.paused=!0,this.count=function(t){h.startTime||(h.startTime=t);var i=t-h.startTime;h.remaining=h.duration-i,h.useEasing?h.countDown?h.frameVal=h.startVal-h.easingFn(i,0,h.startVal-h.endVal,h.duration):h.frameVal=h.easingFn(i,h.startVal,h.endVal-h.startVal,h.duration):h.countDown?h.frameVal=h.startVal-(h.startVal-h.endVal)*(i/h.duration):h.frameVal=h.startVal+(h.endVal-h.startVal)*(i/h.duration),h.countDown?h.frameVal=h.frameVal<h.endVal?h.endVal:h.frameVal:h.frameVal=h.frameVal>h.endVal?h.endVal:h.frameVal,h.frameVal=Math.round(h.frameVal*h.decimalMult)/h.decimalMult,h.printValue(h.frameVal),i<h.duration?h.rAF=requestAnimationFrame(h.count):null!==h.finalEndVal?h.update(h.finalEndVal):h.callback&&h.callback()},this.formatNumber=function(t){var i,a,s,n,e,r=t<0?"-":"";if(i=Math.abs(t).toFixed(h.options.decimalPlaces),s=(a=(i+="").split("."))[0],n=1<a.length?h.options.decimal+a[1]:"",h.options.useGrouping){e="";for(var o=0,l=s.length;o<l;++o)0!==o&&o%3==0&&(e=h.options.separator+e),e=s[l-o-1]+e;s=e}return h.options.numerals&&h.options.numerals.length&&(s=s.replace(/[0-9]/g,function(t){return h.options.numerals[+t]}),n=n.replace(/[0-9]/g,function(t){return h.options.numerals[+t]})),r+h.options.prefix+s+n+h.options.suffix},this.easeOutExpo=function(t,i,a,s){return a*(1-Math.pow(2,-10*t/s))*1024/1023+i},this.options=__assign({},this.defaults,a),this.formattingFn=this.options.formattingFn?this.options.formattingFn:this.formatNumber,this.easingFn=this.options.easingFn?this.options.easingFn:this.easeOutExpo,this.startVal=this.validateValue(this.options.startVal),this.frameVal=this.startVal,this.endVal=this.validateValue(i),this.options.decimalPlaces=Math.max(this.options.decimalPlaces),this.decimalMult=Math.pow(10,this.options.decimalPlaces),this.resetDuration(),this.options.separator=String(this.options.separator),this.useEasing=this.options.useEasing,""===this.options.separator&&(this.options.useGrouping=!1),this.el="string"==typeof t?document.getElementById(t):t,this.el?this.printValue(this.startVal):this.error="[CountUp] target is null or undefined"}return t.prototype.determineDirectionAndSmartEasing=function(){var t=this.finalEndVal?this.finalEndVal:this.endVal;this.countDown=this.startVal>t;var i=t-this.startVal;if(Math.abs(i)>this.options.smartEasingThreshold){this.finalEndVal=t;var a=this.countDown?1:-1;this.endVal=t+a*this.options.smartEasingAmount,this.duration=this.duration/2}else this.endVal=t,this.finalEndVal=null;this.finalEndVal?this.useEasing=!1:this.useEasing=this.options.useEasing},t.prototype.start=function(t){this.error||(this.callback=t,0<this.duration?(this.determineDirectionAndSmartEasing(),this.paused=!1,this.rAF=requestAnimationFrame(this.count)):this.printValue(this.endVal))},t.prototype.pauseResume=function(){this.paused?(this.startTime=null,this.duration=this.remaining,this.startVal=this.frameVal,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count)):cancelAnimationFrame(this.rAF),this.paused=!this.paused},t.prototype.reset=function(){cancelAnimationFrame(this.rAF),this.paused=!0,this.resetDuration(),this.startVal=this.validateValue(this.options.startVal),this.frameVal=this.startVal,this.printValue(this.startVal)},t.prototype.update=function(t){cancelAnimationFrame(this.rAF),this.startTime=null,this.endVal=this.validateValue(t),this.endVal!==this.frameVal&&(this.startVal=this.frameVal,this.finalEndVal||this.resetDuration(),this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count))},t.prototype.printValue=function(t){var i=this.formattingFn(t);"INPUT"===this.el.tagName?this.el.value=i:"text"===this.el.tagName||"tspan"===this.el.tagName?this.el.textContent=i:this.el.innerHTML=i},t.prototype.ensureNumber=function(t){return"number"==typeof t&&!isNaN(t)},t.prototype.validateValue=function(t){var i=Number(t);return this.ensureNumber(i)?i:(this.error="[CountUp] invalid start or end value: "+t,null)},t.prototype.resetDuration=function(){this.startTime=null,this.duration=1e3*Number(this.options.duration),this.remaining=this.duration},t}();exports.CountUp=CountUp; |
@@ -1,1 +0,1 @@ | ||
!function(){for(var s=0,t=["webkit","moz","ms","o"],i=0;i<t.length&&!window.requestAnimationFrame;++i)window.requestAnimationFrame=window[t[i]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[t[i]+"CancelAnimationFrame"]||window[t[i]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var i=(new Date).getTime(),a=Math.max(0,16-(i-s)),n=window.setTimeout(function(){return t(i+a)},a);return s=i+a,n}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)})}();var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(t){for(var i,a=1,n=arguments.length;a<n;a++)for(var s in i=arguments[a])Object.prototype.hasOwnProperty.call(i,s)&&(t[s]=i[s]);return t}).apply(this,arguments)};define(["require","exports"],function(t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var a=function(){function t(t,i,a){var u=this;this.target=t,this.endVal=i,this.options=a,this.version="2.0.1",this.defaults={startVal:0,decimalPlaces:0,duration:2,useEasing:!0,useGrouping:!0,smartEasingThreshold:999,smartEasingAmount:333,separator:",",decimal:".",prefix:"",suffix:""},this.finalEndVal=null,this.useEasing=!0,this.countDown=!1,this.error="",this.startVal=0,this.paused=!0,this.count=function(t){u.startTime||(u.startTime=t);var i=t-u.startTime;u.remaining=u.duration-i,u.useEasing?u.countDown?u.frameVal=u.startVal-u.easingFn(i,0,u.startVal-u.endVal,u.duration):u.frameVal=u.easingFn(i,u.startVal,u.endVal-u.startVal,u.duration):u.countDown?u.frameVal=u.startVal-(u.startVal-u.endVal)*(i/u.duration):u.frameVal=u.startVal+(u.endVal-u.startVal)*(i/u.duration),u.countDown?u.frameVal=u.frameVal<u.endVal?u.endVal:u.frameVal:u.frameVal=u.frameVal>u.endVal?u.endVal:u.frameVal,u.frameVal=Math.round(u.frameVal*u.decimalMult)/u.decimalMult,u.printValue(u.frameVal),i<u.duration?u.rAF=requestAnimationFrame(u.count):null!==u.finalEndVal?u.update(u.finalEndVal):u.callback&&u.callback()},this.formatNumber=function(t){var i,a,n,s,e,r=t<0?"-":"";if(i=Math.abs(t).toFixed(u.options.decimalPlaces),n=(a=(i+="").split("."))[0],s=1<a.length?u.options.decimal+a[1]:"",u.options.useGrouping){e="";for(var o=0,l=n.length;o<l;++o)0!==o&&o%3==0&&(e=u.options.separator+e),e=n[l-o-1]+e;n=e}return u.options.numerals&&u.options.numerals.length&&(n=n.replace(/[0-9]/g,function(t){return u.options.numerals[+t]}),s=s.replace(/[0-9]/g,function(t){return u.options.numerals[+t]})),r+u.options.prefix+n+s+u.options.suffix},this.easeOutExpo=function(t,i,a,n){return a*(1-Math.pow(2,-10*t/n))*1024/1023+i},this.options=__assign({},this.defaults,a),this.formattingFn=this.options.formattingFn?this.options.formattingFn:this.formatNumber,this.easingFn=this.options.easingFn?this.options.easingFn:this.easeOutExpo,this.startVal=this.validateValue(this.options.startVal),this.frameVal=this.startVal,this.endVal=this.validateValue(i),this.options.decimalPlaces=Math.max(this.options.decimalPlaces),this.decimalMult=Math.pow(10,this.options.decimalPlaces),this.resetDuration(),this.options.separator=String(this.options.separator),this.useEasing=this.options.useEasing,""===this.options.separator&&(this.options.useGrouping=!1),this.el="string"==typeof t?document.getElementById(t):t,this.el?this.printValue(this.startVal):this.error="[CountUp] target is null or undefined"}return t.prototype.determineDirectionAndSmartEasing=function(){var t=this.finalEndVal?this.finalEndVal:this.endVal;this.countDown=this.startVal>t;var i=t-this.startVal;if(Math.abs(i)>this.options.smartEasingThreshold){this.finalEndVal=t;var a=this.countDown?1:-1;this.endVal=t+a*this.options.smartEasingAmount,this.duration=this.duration/2}else this.endVal=t,this.finalEndVal=null;this.finalEndVal?this.useEasing=!1:this.useEasing=this.options.useEasing},t.prototype.start=function(t){this.error||(this.callback=t,0<this.duration?(this.determineDirectionAndSmartEasing(),this.paused=!1,this.rAF=requestAnimationFrame(this.count)):this.printValue(this.endVal))},t.prototype.pauseResume=function(){this.paused?(this.startTime=null,this.duration=this.remaining,this.startVal=this.frameVal,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count)):cancelAnimationFrame(this.rAF),this.paused=!this.paused},t.prototype.reset=function(){cancelAnimationFrame(this.rAF),this.paused=!0,this.resetDuration(),this.startVal=this.validateValue(this.options.startVal),this.frameVal=this.startVal,this.printValue(this.startVal)},t.prototype.update=function(t){cancelAnimationFrame(this.rAF),this.startTime=null,this.endVal=this.validateValue(t),this.endVal!==this.frameVal&&(this.startVal=this.frameVal,this.finalEndVal||this.resetDuration(),this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count))},t.prototype.printValue=function(t){var i=this.formattingFn(t);"INPUT"===this.el.tagName?this.el.value=i:"text"===this.el.tagName||"tspan"===this.el.tagName?this.el.textContent=i:this.el.innerHTML=i},t.prototype.ensureNumber=function(t){return"number"==typeof t&&!isNaN(t)},t.prototype.validateValue=function(t){var i=Number(t);return this.ensureNumber(i)?i:(this.error="[CountUp] invalid start or end value: "+t,null)},t.prototype.resetDuration=function(){this.startTime=null,this.duration=1e3*Number(this.options.duration),this.remaining=this.duration},t}();i.CountUp=a}); | ||
!function(){for(var s=0,t=["webkit","moz","ms","o"],i=0;i<t.length&&!window.requestAnimationFrame;++i)window.requestAnimationFrame=window[t[i]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[t[i]+"CancelAnimationFrame"]||window[t[i]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t){var i=(new Date).getTime(),a=Math.max(0,16-(i-s)),n=window.setTimeout(function(){return t(i+a)},a);return s=i+a,n}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)})}();var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(t){for(var i,a=1,n=arguments.length;a<n;a++)for(var s in i=arguments[a])Object.prototype.hasOwnProperty.call(i,s)&&(t[s]=i[s]);return t}).apply(this,arguments)};Object.defineProperty(exports,"__esModule",{value:!0});var CountUp=function(){function t(t,i,a){var u=this;this.target=t,this.endVal=i,this.options=a,this.version="2.0.2",this.defaults={startVal:0,decimalPlaces:0,duration:2,useEasing:!0,useGrouping:!0,smartEasingThreshold:999,smartEasingAmount:333,separator:",",decimal:".",prefix:"",suffix:""},this.finalEndVal=null,this.useEasing=!0,this.countDown=!1,this.error="",this.startVal=0,this.paused=!0,this.count=function(t){u.startTime||(u.startTime=t);var i=t-u.startTime;u.remaining=u.duration-i,u.useEasing?u.countDown?u.frameVal=u.startVal-u.easingFn(i,0,u.startVal-u.endVal,u.duration):u.frameVal=u.easingFn(i,u.startVal,u.endVal-u.startVal,u.duration):u.countDown?u.frameVal=u.startVal-(u.startVal-u.endVal)*(i/u.duration):u.frameVal=u.startVal+(u.endVal-u.startVal)*(i/u.duration),u.countDown?u.frameVal=u.frameVal<u.endVal?u.endVal:u.frameVal:u.frameVal=u.frameVal>u.endVal?u.endVal:u.frameVal,u.frameVal=Math.round(u.frameVal*u.decimalMult)/u.decimalMult,u.printValue(u.frameVal),i<u.duration?u.rAF=requestAnimationFrame(u.count):null!==u.finalEndVal?u.update(u.finalEndVal):u.callback&&u.callback()},this.formatNumber=function(t){var i,a,n,s,e,r=t<0?"-":"";if(i=Math.abs(t).toFixed(u.options.decimalPlaces),n=(a=(i+="").split("."))[0],s=1<a.length?u.options.decimal+a[1]:"",u.options.useGrouping){e="";for(var o=0,l=n.length;o<l;++o)0!==o&&o%3==0&&(e=u.options.separator+e),e=n[l-o-1]+e;n=e}return u.options.numerals&&u.options.numerals.length&&(n=n.replace(/[0-9]/g,function(t){return u.options.numerals[+t]}),s=s.replace(/[0-9]/g,function(t){return u.options.numerals[+t]})),r+u.options.prefix+n+s+u.options.suffix},this.easeOutExpo=function(t,i,a,n){return a*(1-Math.pow(2,-10*t/n))*1024/1023+i},this.options=__assign({},this.defaults,a),this.formattingFn=this.options.formattingFn?this.options.formattingFn:this.formatNumber,this.easingFn=this.options.easingFn?this.options.easingFn:this.easeOutExpo,this.startVal=this.validateValue(this.options.startVal),this.frameVal=this.startVal,this.endVal=this.validateValue(i),this.options.decimalPlaces=Math.max(this.options.decimalPlaces),this.decimalMult=Math.pow(10,this.options.decimalPlaces),this.resetDuration(),this.options.separator=String(this.options.separator),this.useEasing=this.options.useEasing,""===this.options.separator&&(this.options.useGrouping=!1),this.el="string"==typeof t?document.getElementById(t):t,this.el?this.printValue(this.startVal):this.error="[CountUp] target is null or undefined"}return t.prototype.determineDirectionAndSmartEasing=function(){var t=this.finalEndVal?this.finalEndVal:this.endVal;this.countDown=this.startVal>t;var i=t-this.startVal;if(Math.abs(i)>this.options.smartEasingThreshold){this.finalEndVal=t;var a=this.countDown?1:-1;this.endVal=t+a*this.options.smartEasingAmount,this.duration=this.duration/2}else this.endVal=t,this.finalEndVal=null;this.finalEndVal?this.useEasing=!1:this.useEasing=this.options.useEasing},t.prototype.start=function(t){this.error||(this.callback=t,0<this.duration?(this.determineDirectionAndSmartEasing(),this.paused=!1,this.rAF=requestAnimationFrame(this.count)):this.printValue(this.endVal))},t.prototype.pauseResume=function(){this.paused?(this.startTime=null,this.duration=this.remaining,this.startVal=this.frameVal,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count)):cancelAnimationFrame(this.rAF),this.paused=!this.paused},t.prototype.reset=function(){cancelAnimationFrame(this.rAF),this.paused=!0,this.resetDuration(),this.startVal=this.validateValue(this.options.startVal),this.frameVal=this.startVal,this.printValue(this.startVal)},t.prototype.update=function(t){cancelAnimationFrame(this.rAF),this.startTime=null,this.endVal=this.validateValue(t),this.endVal!==this.frameVal&&(this.startVal=this.frameVal,this.finalEndVal||this.resetDuration(),this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count))},t.prototype.printValue=function(t){var i=this.formattingFn(t);"INPUT"===this.el.tagName?this.el.value=i:"text"===this.el.tagName||"tspan"===this.el.tagName?this.el.textContent=i:this.el.innerHTML=i},t.prototype.ensureNumber=function(t){return"number"==typeof t&&!isNaN(t)},t.prototype.validateValue=function(t){var i=Number(t);return this.ensureNumber(i)?i:(this.error="[CountUp] invalid start or end value: "+t,null)},t.prototype.resetDuration=function(){this.startTime=null,this.duration=1e3*Number(this.options.duration),this.remaining=this.duration},t}();exports.CountUp=CountUp; |
{ | ||
"name": "countup.js", | ||
"description": "Animates a numerical value by counting to it", | ||
"version": "2.0.1", | ||
"version": "2.0.2", | ||
"license": "MIT", | ||
"main": "./dist/countUp.min.js", | ||
"main": "./dist/countUp.min.js", | ||
"author": "@inorganik", | ||
"repository": { | ||
@@ -11,5 +12,14 @@ "type": "git", | ||
}, | ||
"scripts": { | ||
"build": "npm run clean && tsc && gulp", | ||
"build:demo": "browserify demo.js -o ./dist/demo-bundle.js -u './dist/countUp'", | ||
"clean": "gulp clean", | ||
"lint": "tslint --project tsconfig.json", | ||
"test": "jest", | ||
"test:watch": "jest --watch" | ||
}, | ||
"dependencies": {}, | ||
"devDependencies": { | ||
"@types/jest": "^24.0.6", | ||
"browserify": "^16.2.3", | ||
"del": "^3.0.0", | ||
@@ -23,10 +33,3 @@ "gulp": "^4.0.0", | ||
"typescript": "^3.3.3" | ||
}, | ||
"scripts": { | ||
"build": "npm run clean && tsc && gulp", | ||
"clean": "gulp clean", | ||
"lint": "tslint --project tsconfig.json", | ||
"test": "jest", | ||
"test:watch": "jest --watch" | ||
} | ||
} |
# CountUp.js | ||
CountUp.js is a dependency-free, lightweight Javascript class that can be used to quickly create animations that display numerical data in a more interesting way. | ||
Despite its name, CountUp can count in either direction, depending on the start value and end value that you pass. | ||
Despite its name, CountUp can count in either direction, depending on the start and end values that you pass. | ||
@@ -10,3 +10,3 @@ CountUp.js supports all browsers. MIT license. | ||
## New in 2.0.0 | ||
## New in 2.0 | ||
@@ -19,2 +19,4 @@ - Completely rewritten in **Typescript**! The distributed code is still Javascript. | ||
CountUp is now distributed as a `commonjs` module - [see below](#including) for how to include it in your project. | ||
## See Also | ||
@@ -105,2 +107,35 @@ | ||
## Including CountUp <a name="including"></a> | ||
CountUp v2 is distributed as a `commonjs` module which means you need to include CountUp in your project using a build tool such as [Webpack](https://webpack.js.org/) or [Browserify](http://browserify.org/). | ||
**Example using Browserify** | ||
Install browserify and countup | ||
``` | ||
npm i countup.js | ||
npm i -g browserify | ||
``` | ||
main.js: | ||
```js | ||
var countUpModule = require('countup.js'); | ||
window.onload = function() { | ||
var countUp = countUpModule.CountUp('target', 2000); | ||
countUp.start(); | ||
} | ||
``` | ||
Build your bundle | ||
``` | ||
browserify main.js -o bundle.js | ||
``` | ||
Include in your html: | ||
``` | ||
<script src="bundle.js"></script> | ||
``` | ||
🎉 Done! | ||
## Contributing <a name="contributing"></a> | ||
@@ -111,3 +146,4 @@ | ||
1. Do your work on `src/countUp.ts` | ||
1. Test your work. Do manual tests on the demo in the browser and run `npm t` | ||
1. Run tests: `npm t` | ||
1. Run `npm run build`, which copies and minifies the .js files to the `dist` folder. | ||
1. Test the demo: run `npm run build:demo` then open index.html in a browser and make sure it works. |
@@ -22,3 +22,3 @@ export interface CountUpOptions { // (default) | ||
version = '2.0.1'; | ||
version = '2.0.2'; | ||
private defaults: CountUpOptions = { | ||
@@ -25,0 +25,0 @@ startVal: 0, |
{ | ||
"compilerOptions": { | ||
"lib": ["es2017", "dom"], | ||
"module": "amd", | ||
"module": "commonjs", | ||
"declaration": true, | ||
@@ -11,2 +11,3 @@ "outDir": "dist", | ||
"compileOnSave": true, | ||
"include": ["src"], | ||
"exclude": [ | ||
@@ -13,0 +14,0 @@ "node_modules", |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No contributors or author data
MaintenancePackage does not specify a list of contributors or an author in package.json.
Found 1 instance in 1 package
84335
1705
1
146
10
21
2