UNPKG

@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
/** * 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=