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

36 lines 4 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 = 1) { const SCALE_NUMBER = 3; const MATH_POWER = 10; if (!input) { return ''; } const baseNumberAndExponent = input .toExponential() .split('e+') .map(el => +el); if (baseNumberAndExponent[1] < SCALE_NUMBER) { return input.toString(); } const scaleLevel = baseNumberAndExponent[1] % SCALE_NUMBER; baseNumberAndExponent[0] = baseNumberAndExponent[0] * Math.pow(MATH_POWER, scaleLevel); const calculatedScale = [ '', 'K', 'M', 'B', 'T', ][(baseNumberAndExponent[1] - scaleLevel) / SCALE_NUMBER]; const newNumber = baseNumberAndExponent[0].toFixed(decimalPlace).toString(); return newNumber + calculatedScale; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJicmV2aWF0ZS1udW1iZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGVybWludXMvbmd4LXRvb2xzL3V0aWxpdGllcy8iLCJzb3VyY2VzIjpbImFiYnJldmlhdGUtbnVtYmVyL2FiYnJldmlhdGUtbnVtYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxLQUFvQixFQUFFLFlBQVksR0FBRyxDQUFDO0lBQ3JFLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQztJQUN2QixNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFFdEIsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNWLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFDRCxNQUFNLHFCQUFxQixHQUFHLEtBQUs7U0FDaEMsYUFBYSxFQUFFO1NBQ2YsS0FBSyxDQUFDLElBQUksQ0FBQztTQUNYLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFbEIsSUFBSSxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLEVBQUU7UUFDM0MsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7S0FDekI7SUFFRCxNQUFNLFVBQVUsR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUM7SUFDM0QscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdkYsTUFBTSxlQUFlLEdBQUc7UUFDdEIsRUFBRTtRQUNGLEdBQUc7UUFDSCxHQUFHO1FBQ0gsR0FBRztRQUNILEdBQUc7S0FDSixDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUM7SUFFMUQsTUFBTSxTQUFTLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVFLE9BQU8sU0FBUyxHQUFHLGVBQWUsQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBhYmJyZXZpYXRlIGEgbnVtYmVyXG4gKlxuICogQHBhcmFtIGlucHV0IC0gVGhlIG51bWJlciB0byBiZSBhYmJyZXZpYXRlZC5cbiAqIEBwYXJhbSBkZWNpbWFsUGxhY2UgLSBUaGUgZGVjaW1hbHMgdXNlcnMgZGVmaW5lIGZvciBmaW5hbCBhYmJyZXZpYXRlZCBudW1iZXIuIERlZmF1bHQgdG8gMS5cbiAqIEByZXR1cm5zIFRoZSBhYmJyZXZpYXRlZCBudW1iZXJcbiAqXG4gKiBAZXhhbXBsZVxuICogYWJicmV2aWF0ZU51bWJlcigxMjM0LCAnMScpICAgICAgICAgICAgICAvLyBSZXR1cm5zOiAnMS4ySydcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFiYnJldmlhdGVOdW1iZXIoaW5wdXQ6IG51bWJlciB8IG51bGwsIGRlY2ltYWxQbGFjZSA9IDEpOiBzdHJpbmcge1xuICBjb25zdCBTQ0FMRV9OVU1CRVIgPSAzO1xuICBjb25zdCBNQVRIX1BPV0VSID0gMTA7XG5cbiAgaWYgKCFpbnB1dCkge1xuICAgIHJldHVybiAnJztcbiAgfVxuICBjb25zdCBiYXNlTnVtYmVyQW5kRXhwb25lbnQgPSBpbnB1dFxuICAgIC50b0V4cG9uZW50aWFsKClcbiAgICAuc3BsaXQoJ2UrJylcbiAgICAubWFwKGVsID0+ICtlbCk7XG5cbiAgaWYgKGJhc2VOdW1iZXJBbmRFeHBvbmVudFsxXSA8IFNDQUxFX05VTUJFUikge1xuICAgIHJldHVybiBpbnB1dC50b1N0cmluZygpO1xuICB9XG5cbiAgY29uc3Qgc2NhbGVMZXZlbCA9IGJhc2VOdW1iZXJBbmRFeHBvbmVudFsxXSAlIFNDQUxFX05VTUJFUjtcbiAgYmFzZU51bWJlckFuZEV4cG9uZW50WzBdID0gYmFzZU51bWJlckFuZEV4cG9uZW50WzBdICogTWF0aC5wb3coTUFUSF9QT1dFUiwgc2NhbGVMZXZlbCk7XG4gIGNvbnN0IGNhbGN1bGF0ZWRTY2FsZSA9IFtcbiAgICAnJyxcbiAgICAnSycsXG4gICAgJ00nLFxuICAgICdCJyxcbiAgICAnVCcsXG4gIF1bKGJhc2VOdW1iZXJBbmRFeHBvbmVudFsxXSAtIHNjYWxlTGV2ZWwpIC8gU0NBTEVfTlVNQkVSXTtcblxuICBjb25zdCBuZXdOdW1iZXIgPSBiYXNlTnVtYmVyQW5kRXhwb25lbnRbMF0udG9GaXhlZChkZWNpbWFsUGxhY2UpLnRvU3RyaW5nKCk7XG4gIHJldHVybiBuZXdOdW1iZXIgKyBjYWxjdWxhdGVkU2NhbGU7XG59XG5cbiJdfQ==