@resk/core
Version:
An innovative TypeScript framework that empowers developers to build applications with a fully decorator-based architecture for efficient resource management. By combining the power of decorators with a resource-oriented design, DecorRes enhances code cla
1 lines • 1.99 kB
JavaScript
;var u=require('../currency'),isNumber=require('./isNumber');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var u__default=/*#__PURE__*/_interopDefault(u);const{currencies:g}=u__default.default;Number.prototype.countDecimals=function(){const r=String(this.toString()).match(/\.(\d+)/);return r?r[1].length:0},Number.prototype.formatNumber=function(r,t,n){return u__default.default.formatNumber(this.valueOf(),r,t,n)},Number.prototype.formatMoney=function(r,t,n,e,a){return u__default.default.formatMoney(this.valueOf(),r,t,n,e,a)};const l=(r,t=false)=>{if(r===null||typeof r!="number")return t===true?{}:"";const n=r.countDecimals();let e=Math.min(n,5);if(e=!e||e<0?0:e,r===0){r=r!==0&&parseFloat(r.toFixed(0+e))||0;const f=r.toString();return t?{result:f,value:r,format:"",suffix:"",formattedValue:f}:f}let a=r.toPrecision(2).split("e");const i=a.length===1?0:Math.floor(Math.min(parseFloat(String(a[1]).slice(1)),14)/3),o=i<1?parseFloat(r.toFixed(0+e)):parseFloat((r/Math.pow(10,i*3)).toFixed(1+e)),m=o<0?o:Math.abs(o),s=["","K","M","B","T"][i],b=m||0;return t===true?{formattedValue:String(m),value:b,suffix:s,format:s,result:m+s}:b.formatNumber()+s},p=r=>l(r,false);Number.prototype.abreviate=function(){return p(this.valueOf())};const v=(r,t,n,e,a,i)=>{const{value:o,format:c,formattedValue:m}=l(r,true);if(typeof o!="number")return m;const{formattedValue:s}=u__default.default.formatMoneyAsObject(o,t,n,e,a,i);return s.replace("%v",Math.abs(o).formatNumber(u__default.default.isValidCurrency(t)?t:n,e,a)+c)};Number.prototype.abreviate2FormatMoney=function(r,t,n,e,a){return v(this.valueOf(),r,t,n,e,a)};function M(...r){for(const t of r)if(isNumber.isNumber(t)&&t!==0)return t;return 0}Object.keys(g).forEach(r=>{const t=g[r],n=`format${r}`;Number.prototype[n]=function(e,a,i,o){return u__default.default.formatMoney(this.valueOf(),t,e,a,i,o)};});exports._abreviateNumber=l;exports.abreviate2FormatMoney=v;exports.abreviateNumber=p;exports.defaultNumber=M;