UNPKG

@yoroi/common

Version:
57 lines 2.19 kB
import { Balance, Numbers } from '@yoroi/types'; export declare const asQuantity: (value: BigNumber | number | string) => Balance.Quantity; export type ParseNumberFromTextOptions = { /** The input text to parse */ text: string; /** Token denomination (e.g., 6 for ADA) - optional for unitless numbers */ denomination?: number; /** Locale format for decimal separator - optional, defaults to English locale for sanitization */ format?: Numbers.Locale; /** Maximum decimal places user can input (UI limit) - defaults to denomination or 12 */ precision?: number; }; export type ParseNumberFromTextResult = { /** The sanitizedInput input string */ sanitizedInput: string; /** The formatted input string to display (undefined when format is not provided) */ formattedValue: string | undefined; /** Number in valid JS number format */ numericValue: number; /** The parsed quantity in atomic units (undefined for unitless numbers) */ quantity?: Balance.Quantity; }; /** * Parses a number from text input with proper locale support and formatting. * Handles keyboard-locale mismatch, intermediate states, and preserves formatting. * * @param options - Configuration options for parsing * @returns Object containing display value and parsed quantity * * @example * // With denomination (for tokens) * parseNumberFromText({ * text: '123.45', * denomination: 6, * format: { decimalSeparator: '.' }, * precision: 6 * }) * // Returns: { formattedValue: '123.45', quantity: '123450000' } * * @example * // Without denomination (for unitless numbers) * parseNumberFromText({ * text: '123.45', * format: { decimalSeparator: '.' } * }) * // Returns: { formattedValue: '123.45', quantity: undefined } * * @example * // Without format (formattedValue will be undefined) * parseNumberFromText({ * text: '123.45', * denomination: 6 * }) * // Returns: { formattedValue: undefined, quantity: '123450000' } */ export declare const parseNumberFromText: ({ text, denomination, format, precision, }: ParseNumberFromTextOptions) => ParseNumberFromTextResult; //# sourceMappingURL=parse-number-from-text.d.ts.map