@terminus/ngx-tools
Version:
[![CircleCI][circle-badge]][circle-link] [![codecov][codecov-badge]][codecov-project] [![semantic-release][semantic-release-badge]][semantic-release] [![MIT License][license-image]][license-url] <br> [![NPM version][npm-version-image]][npm-url] [![Github
37 lines • 4.09 kB
JavaScript
/**
* Helper function to abbreviate a number
*
* @param input - The number to be abbreviated.
* @param decimalPlace - The decimals users define for final abbreviated number. Default to 1.
* @returns The abbreviated number
*
* @example
* abbreviateNumber(1234, '1') // Returns: '1.2K'
*/
export function abbreviateNumber(input, decimalPlace) {
if (decimalPlace === void 0) { decimalPlace = 1; }
var SCALE_NUMBER = 3;
var MATH_POWER = 10;
if (!input) {
return '';
}
var baseNumberAndExponent = input
.toExponential()
.split('e+')
.map(function (el) { return +el; });
if (baseNumberAndExponent[1] < SCALE_NUMBER) {
return input.toString();
}
var scaleLevel = baseNumberAndExponent[1] % SCALE_NUMBER;
baseNumberAndExponent[0] = baseNumberAndExponent[0] * Math.pow(MATH_POWER, scaleLevel);
var calculatedScale = [
'',
'K',
'M',
'B',
'T',
][(baseNumberAndExponent[1] - scaleLevel) / SCALE_NUMBER];
var newNumber = baseNumberAndExponent[0].toFixed(decimalPlace).toString();
return newNumber + calculatedScale;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJicmV2aWF0ZS1udW1iZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGVybWludXMvbmd4LXRvb2xzL3V0aWxpdGllcy8iLCJzb3VyY2VzIjpbImFiYnJldmlhdGUtbnVtYmVyL2FiYnJldmlhdGUtbnVtYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxLQUFvQixFQUFFLFlBQWdCO0lBQWhCLDZCQUFBLEVBQUEsZ0JBQWdCO0lBQ3JFLElBQU0sWUFBWSxHQUFHLENBQUMsQ0FBQztJQUN2QixJQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFFdEIsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNWLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFDRCxJQUFNLHFCQUFxQixHQUFHLEtBQUs7U0FDaEMsYUFBYSxFQUFFO1NBQ2YsS0FBSyxDQUFDLElBQUksQ0FBQztTQUNYLEdBQUcsQ0FBQyxVQUFBLEVBQUUsSUFBSSxPQUFBLENBQUMsRUFBRSxFQUFILENBQUcsQ0FBQyxDQUFDO0lBRWxCLElBQUkscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEdBQUcsWUFBWSxFQUFFO1FBQzNDLE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0tBQ3pCO0lBRUQsSUFBTSxVQUFVLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEdBQUcsWUFBWSxDQUFDO0lBQzNELHFCQUFxQixDQUFDLENBQUMsQ0FBQyxHQUFHLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZGLElBQU0sZUFBZSxHQUFHO1FBQ3RCLEVBQUU7UUFDRixHQUFHO1FBQ0gsR0FBRztRQUNILEdBQUc7UUFDSCxHQUFHO0tBQ0osQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDO0lBRTFELElBQU0sU0FBUyxHQUFHLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1RSxPQUFPLFNBQVMsR0FBRyxlQUFlLENBQUM7QUFDckMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gYWJicmV2aWF0ZSBhIG51bWJlclxuICpcbiAqIEBwYXJhbSBpbnB1dCAtIFRoZSBudW1iZXIgdG8gYmUgYWJicmV2aWF0ZWQuXG4gKiBAcGFyYW0gZGVjaW1hbFBsYWNlIC0gVGhlIGRlY2ltYWxzIHVzZXJzIGRlZmluZSBmb3IgZmluYWwgYWJicmV2aWF0ZWQgbnVtYmVyLiBEZWZhdWx0IHRvIDEuXG4gKiBAcmV0dXJucyBUaGUgYWJicmV2aWF0ZWQgbnVtYmVyXG4gKlxuICogQGV4YW1wbGVcbiAqIGFiYnJldmlhdGVOdW1iZXIoMTIzNCwgJzEnKSAgICAgICAgICAgICAgLy8gUmV0dXJuczogJzEuMksnXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhYmJyZXZpYXRlTnVtYmVyKGlucHV0OiBudW1iZXIgfCBudWxsLCBkZWNpbWFsUGxhY2UgPSAxKTogc3RyaW5nIHtcbiAgY29uc3QgU0NBTEVfTlVNQkVSID0gMztcbiAgY29uc3QgTUFUSF9QT1dFUiA9IDEwO1xuXG4gIGlmICghaW5wdXQpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgY29uc3QgYmFzZU51bWJlckFuZEV4cG9uZW50ID0gaW5wdXRcbiAgICAudG9FeHBvbmVudGlhbCgpXG4gICAgLnNwbGl0KCdlKycpXG4gICAgLm1hcChlbCA9PiArZWwpO1xuXG4gIGlmIChiYXNlTnVtYmVyQW5kRXhwb25lbnRbMV0gPCBTQ0FMRV9OVU1CRVIpIHtcbiAgICByZXR1cm4gaW5wdXQudG9TdHJpbmcoKTtcbiAgfVxuXG4gIGNvbnN0IHNjYWxlTGV2ZWwgPSBiYXNlTnVtYmVyQW5kRXhwb25lbnRbMV0gJSBTQ0FMRV9OVU1CRVI7XG4gIGJhc2VOdW1iZXJBbmRFeHBvbmVudFswXSA9IGJhc2VOdW1iZXJBbmRFeHBvbmVudFswXSAqIE1hdGgucG93KE1BVEhfUE9XRVIsIHNjYWxlTGV2ZWwpO1xuICBjb25zdCBjYWxjdWxhdGVkU2NhbGUgPSBbXG4gICAgJycsXG4gICAgJ0snLFxuICAgICdNJyxcbiAgICAnQicsXG4gICAgJ1QnLFxuICBdWyhiYXNlTnVtYmVyQW5kRXhwb25lbnRbMV0gLSBzY2FsZUxldmVsKSAvIFNDQUxFX05VTUJFUl07XG5cbiAgY29uc3QgbmV3TnVtYmVyID0gYmFzZU51bWJlckFuZEV4cG9uZW50WzBdLnRvRml4ZWQoZGVjaW1hbFBsYWNlKS50b1N0cmluZygpO1xuICByZXR1cm4gbmV3TnVtYmVyICsgY2FsY3VsYXRlZFNjYWxlO1xufVxuXG4iXX0=