/*
THIS INFRAGISTICS ULTIMATE SOFTWARE LICENSE  AGREEMENT ("AGREEMENT") LOCATED HERE:
https://www.infragistics.com/legal/license/igultimate-la
https://www.infragistics.com/legal/license/igultimate-eula
GOVERNS THE LICENSING, INSTALLATION AND USE OF INFRAGISTICS SOFTWARE. BY DOWNLOADING AND/OR INSTALLING AND USING INFRAGISTICS SOFTWARE:  you are indicating that you have read and understand this Agreement, and agree to be legally bound by it on behalf of the yourself and your company.
*/
import { Base, markType } from "igniteui-angular-core";
import { INumberAbbreviator_$type } from "./INumberAbbreviator";
import { MathUtil } from "igniteui-angular-core";
import { round10N } from "igniteui-angular-core";
/**
 * @hidden
 */
export let NumberAbbreviator = /*@__PURE__*/ (() => {
    class NumberAbbreviator extends Base {
        abbreviate(a, b) {
            let c = Math.abs(a);
            let d = ['Q', 'T', 'B', 'M', 'K'];
            let e = [1E+15, 1000000000000, 1000000000, 1000000, 1000];
            for (let f = 0; f < d.length; f++) {
                if (c >= e[f]) {
                    if (b != null) {
                        let g = b(round10N(a / e[f], 1), true);
                        if (g != null) {
                            return g.toString() + d[f];
                        }
                    }
                    return round10N(a / e[f], 1).toString() + d[f];
                }
            }
            if (b != null) {
                let h = b(a, false);
                if (h != null) {
                    return h.toString();
                }
            }
            return MathUtil.r(a);
        }
    }
    NumberAbbreviator.$t = markType(NumberAbbreviator, 'NumberAbbreviator', Base.$, [INumberAbbreviator_$type]);
    return NumberAbbreviator;
})();
