@yoroi/common
Version:
The Common package of Yoroi SDK
84 lines (76 loc) • 2.26 kB
Flow
/**
* Flowtype definitions for parse-number-from-text
* Generated by Flowgen from a Typescript Definition
* Flowgen v1.21.0
*/
import { Balance, Numbers } from "@yoroi/types";
declare export var 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 | void,
/**
* 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' }
*/
declare export var parseNumberFromText: (
x: ParseNumberFromTextOptions
) => ParseNumberFromTextResult;