{"version":3,"file":"taiga-ui-core-utils-format.mjs","sources":["../../../projects/core/utils/format/number-to-string-without-exp.ts","../../../projects/core/utils/format/get-fractional-part-padded.ts","../../../projects/core/utils/format/format-number.ts","../../../projects/core/utils/format/taiga-ui-core-utils-format.ts"],"sourcesContent":["/**\n * Convert number to string with replacing exponent part on decimals\n *\n * @param value the number\n * @return string representation of a number\n */\nexport function tuiNumberToStringWithoutExp(value: number): string {\n    const valueAsString = String(value);\n    const [numberPart, expPart] = valueAsString.split('e-');\n    let valueWithoutExp = valueAsString;\n\n    if (expPart) {\n        const [, fractionalPart = ''] = numberPart?.split('.') ?? [];\n        const decimalDigits = Number(expPart) + (fractionalPart?.length || 0);\n\n        valueWithoutExp = value.toFixed(decimalDigits);\n    }\n\n    return valueWithoutExp;\n}\n","import {tuiIsNumber} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {tuiNumberToStringWithoutExp} from './number-to-string-without-exp';\n\n/**\n * Return fractional part of number\n *\n * @param value the number\n * @param precision number of digits of decimal part, null to keep untouched\n * @return the fractional part of number\n */\nexport function tuiGetFractionPartPadded(\n    value: bigint | number | null,\n    precision?: number | null,\n): string {\n    if (typeof value !== 'number') {\n        return '';\n    }\n\n    const [, fractionPartPadded = ''] = tuiNumberToStringWithoutExp(value).split('.');\n\n    return tuiIsNumber(precision)\n        ? fractionPartPadded.slice(0, Math.max(0, precision))\n        : fractionPartPadded;\n}\n","import {CHAR_HYPHEN} from '@taiga-ui/cdk/constants';\nimport {tuiRoundWith} from '@taiga-ui/cdk/utils/math';\nimport {\n    TUI_DEFAULT_NUMBER_FORMAT,\n    type TuiNumberFormatSettings,\n} from '@taiga-ui/core/tokens';\n\nimport {tuiGetFractionPartPadded} from './get-fractional-part-padded';\n\n/**\n * @deprecated Use `import {tuiFormatNumber} from '@taiga-ui/kit'`\n * TODO(v6): delete\n * Formats number adding a thousand separators and correct decimal separator\n * padding decimal part with zeroes to given length\n *\n * @param value the input number\n * @param settings See {@link TuiNumberFormatSettings}\n * @return the formatted string\n */\nexport function tuiFormatNumber(\n    value: number,\n    settings: Partial<TuiNumberFormatSettings> = {},\n): string {\n    const {\n        precision,\n        decimalSeparator,\n        thousandSeparator,\n        decimalMode,\n        rounding,\n        minusSign = CHAR_HYPHEN,\n    } = {\n        ...TUI_DEFAULT_NUMBER_FORMAT,\n        decimalMode: 'always',\n        precision: Infinity,\n        ...settings,\n    };\n\n    const rounded = Number.isFinite(precision)\n        ? tuiRoundWith({value, precision, method: rounding})\n        : value;\n\n    const integerPartString = String(Math.floor(Math.abs(rounded)));\n    let fractionPartPadded = tuiGetFractionPartPadded(rounded, precision);\n    const hasFraction = Number(fractionPartPadded) > 0;\n\n    if (Number.isFinite(precision)) {\n        if (decimalMode === 'always' || (hasFraction && decimalMode === 'pad')) {\n            const zeroPaddingSize = Math.max(precision - fractionPartPadded.length, 0);\n            const zeroPartString = '0'.repeat(zeroPaddingSize);\n\n            fractionPartPadded = `${fractionPartPadded}${zeroPartString}`;\n        } else {\n            fractionPartPadded = fractionPartPadded.replace(/0*$/, '');\n        }\n    }\n\n    const remainder = integerPartString.length % 3;\n    const sign = value < 0 ? minusSign : '';\n    let result = `${sign}${integerPartString.charAt(0)}`;\n\n    for (let i = 1; i < integerPartString.length; i++) {\n        if (i % 3 === remainder && integerPartString.length > 3) {\n            result += thousandSeparator;\n        }\n\n        result += integerPartString.charAt(i);\n    }\n\n    return fractionPartPadded\n        ? `${result}${decimalSeparator}${fractionPartPadded}`\n        : result;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}