/* * purecounter.js - A simple yet configurable native javascript counter which you can count on. * Author: Stig Rex * Version: 1.1.4 * Url: https://github.com/srexi/purecounterjs * License: MIT */ !function(){function a(d,h){var g=Object.keys(d);if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(d);h&&(f=f.filter((function(e){return Object.getOwnPropertyDescriptor(d,e).enumerable}))),g.push.apply(g,f)}return g}function c(d,g,f){return g in d?Object.defineProperty(d,g,{value:f,enumerable:!0,configurable:!0,writable:!0}):d[g]=f,d}function b(d,h){for(var g=0;gk.end?k.end:k.start;return o.innerHTML=i.formatNumber(m,k)}setTimeout((function(){return i.startCounter(o,k)}),k.delay)}))}},{key:"startCounter",value:function(j,q){var p=this,l=(q.end-q.start)/(q.duration/q.delay),h="inc";q.start>q.end&&(h="dec",l*=-1);var k=this.parseValue(q.start);j.innerHTML=this.formatNumber(k,q),!0===q.once&&j.setAttribute("data-purecounter-duration",0);var m=setInterval((function(){var i=p.nextNumber(k,l,h);j.innerHTML=p.formatNumber(i,q),((k=i)>=q.end&&"inc"==h||k<=q.end&&"dec"==h)&&(j.innerHTML=p.formatNumber(q.end,q),clearInterval(m))}),q.delay)}},{key:"parseConfig",value:function(m){var k=this,h=function(p){for(var o=1;o2&&void 0!==arguments[2]?arguments[2]:"inc";return h=this.parseValue(h),j=this.parseValue(j),parseFloat("inc"===i?h+j:h-j)}},{key:"convertToCurrencySystem",value:function(h,k){var j=k.currencysymbol||"",i=k.decimals||1;return j+((h=Math.abs(Number(h)))>=1000000000000?"".concat((h/1000000000000).toFixed(i)," T"):h>=1000000000?"".concat((h/1000000000).toFixed(i)," B"):h>=1000000?"".concat((h/1000000).toFixed(i)," M"):h>=1000?"".concat((h/1000000000000).toFixed(i)," K"):h.toFixed(i))}},{key:"applySeparator",value:function(h,i){return i.separator?h.replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,").replace(new RegExp(/,/gi,"gi"),i.separatorsymbol):h.replace(new RegExp(/,/gi,"gi"),"")}},{key:"formatNumber",value:function(h,j){var i={minimumFractionDigits:j.decimals,maximumFractionDigits:j.decimals};return h=j.currency?this.convertToCurrencySystem(h,j):parseFloat(h),this.applySeparator(h.toLocaleString(void 0,i),j)}},{key:"parseValue",value:function(h){return/^[0-9]+\.[0-9]+$/.test(h)?parseFloat(h):/^[0-9]+$/.test(h)?parseInt(h):/^true|false/i.test(h)?/^true/i.test(h):h}},{key:"elementIsInView",value:function(i){for(var l=i.offsetTop,k=i.offsetLeft,j=i.offsetWidth,h=i.offsetHeight;i.offsetParent;){l+=(i=i.offsetParent).offsetTop,k+=i.offsetLeft}return l>=window.pageYOffset&&k>=window.pageXOffset&&l+h<=window.pageYOffset+window.innerHeight&&k+j<=window.pageXOffset+window.innerWidth}},{key:"intersectionListenerSupported",value:function(){return"IntersectionObserver" in window&&"IntersectionObserverEntry" in window&&"intersectionRatio" in window.IntersectionObserverEntry.prototype}}])&&b(d.prototype,e),g&&b(d,g),f}())}();