UNPKG

ng-number-formatter

Version:

Angular Number Formatter - formats the number into human readable format when in Thousands, Millions and Billions.

2 lines 2.83 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common")):"function"==typeof define&&define.amd?define("ng-number-formatter",["exports","@angular/core","@angular/common"],t):t(e["ng-number-formatter"]={},e.ng.core,e.ng.common)}(this,function(e,t,r){"use strict";var o=function(){function e(){}return e.prototype.ngOnInit=function(){var e=this.ngNumber.toString(),t=parseFloat(e);if(isNaN(t))this.ngOutputNumber=e;else switch(this.ngOutputNumber=0<t?"":"-",t=Math.abs(t),this.ngFormat){case"emoji":this.ngOutputNumber+=this.emojifyNumber(t);break;case"comma":this.ngOutputNumber+=this.numberWithCommas(t);break;case"metrics-name":this.ngOutputNumber+=this.numberWithMetricsName(t);break;case"metrics-symbol":default:this.ngOutputNumber+=this.numberWithMetricsSymbol(t)}},e.prototype.emojifyNumber=function(e){var t="",r=["0️⃣","1️⃣","2️⃣","3️⃣","4️⃣","5️⃣","6️⃣","7️⃣","8️⃣","9️⃣","🔟"];if(e<=10)t=r[e];else for(var o=e.toString(),n=0;n<o.length;n++)t+=isNaN(o.charAt(n))?o.charAt(n):r[o.charAt(n)];return t},e.prototype.beautifyNumber=function(e){var t=e;return 0<e&&(e%10==1&&11!=e&&(t=e+"st"),e%10==2&&12!=e&&(t=e+"nd"),e%10==3&&13!=e&&(t=e+"rd"),(e%10!=1&&e%10!=2&&e%10!=3||11==e||12==e||13==e)&&(t=e+"th")),t},e.prototype.numberWithCommas=function(e){return e.toLocaleString("en-US",{maximumFractionDigits:15})},e.prototype.numberWithMetricsName=function(e,t){void 0===t&&(t=1);for(var r=[{value:1e24,symbol:" septillion"},{value:1e21,symbol:" sextillion"},{value:1e18,symbol:" quintillion"},{value:1e15,symbol:" quadrillion"},{value:1e12,symbol:" trillion"},{value:1e9,symbol:" billion"},{value:1e6,symbol:" million"},{value:1e3,symbol:" thousand"}],o=/\.0+$|(\.[0-9]*[1-9])0+$/,n=0;n<r.length;n++)if(e>=r[n].value)return(e/r[n].value).toFixed(t).replace(o,"$1")+r[n].symbol;return e.toFixed(t).replace(o,"$1")},e.prototype.numberWithMetricsSymbol=function(e,t){void 0===t&&(t=1);for(var r=[{value:1e24,symbol:"Y"},{value:1e21,symbol:"Z"},{value:1e18,symbol:"E"},{value:1e15,symbol:"P"},{value:1e12,symbol:"T"},{value:1e9,symbol:"B"},{value:1e6,symbol:"M"},{value:1e3,symbol:"K"}],o=/\.0+$|(\.[0-9]*[1-9])0+$/,n=0;n<r.length;n++)if(e>=r[n].value)return(e/r[n].value).toFixed(t).replace(o,"$1")+r[n].symbol;return e.toFixed(t).replace(o,"$1")},e.decorators=[{type:t.Component,args:[{selector:"ng-number-formatter",inputs:["ngNumber","ngFormat"],template:"<span>{{ngOutputNumber}}</span>"}]}],e.ctorParameters=function(){return[]},e}(),n=function(){function e(){}return e.decorators=[{type:t.NgModule,args:[{imports:[r.CommonModule],declarations:[o],exports:[o]}]}],e}();e.NgNumberFormatterModule=n,e.ɵa=o,Object.defineProperty(e,"__esModule",{value:!0})}); //# sourceMappingURL=ng-number-formatter.umd.min.js.map