@yoroi/common
Version:
The Common package of Yoroi SDK
57 lines • 2.19 kB
TypeScript
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