You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							155 lines
						
					
					
						
							3.4 KiB
						
					
					
				
			
		
		
	
	
							155 lines
						
					
					
						
							3.4 KiB
						
					
					
				import React, { ElementType } from 'react';
 | 
						|
declare type Overwrite<T, U> = Pick<T, Exclude<keyof T, keyof U>> & U;
 | 
						|
/**
 | 
						|
 * Value in different formats
 | 
						|
 *
 | 
						|
 * @experimental
 | 
						|
 */
 | 
						|
export declare type CurrencyInputOnChangeValues = {
 | 
						|
    /**
 | 
						|
     * Value as float or null if empty
 | 
						|
     *
 | 
						|
     * Example:
 | 
						|
     *   "1.99" > 1.99
 | 
						|
     *   "" > null
 | 
						|
     */
 | 
						|
    float: number | null;
 | 
						|
    /**
 | 
						|
     * Value after applying formatting
 | 
						|
     *
 | 
						|
     * Example: "1000000" > "1,000,0000"
 | 
						|
     */
 | 
						|
    formatted: string;
 | 
						|
    /**
 | 
						|
     * Non formatted value as string
 | 
						|
     */
 | 
						|
    value: string;
 | 
						|
};
 | 
						|
export declare type IntlConfig = {
 | 
						|
    locale: string;
 | 
						|
    currency?: string;
 | 
						|
};
 | 
						|
export declare type CurrencyInputProps = Overwrite<React.ComponentPropsWithRef<'input'>, {
 | 
						|
    /**
 | 
						|
     * Allow decimals
 | 
						|
     *
 | 
						|
     * Default = true
 | 
						|
     */
 | 
						|
    allowDecimals?: boolean;
 | 
						|
    /**
 | 
						|
     * Allow user to enter negative value
 | 
						|
     *
 | 
						|
     * Default = true
 | 
						|
     */
 | 
						|
    allowNegativeValue?: boolean;
 | 
						|
    /**
 | 
						|
     * Component id
 | 
						|
     */
 | 
						|
    id?: string;
 | 
						|
    /**
 | 
						|
     *  Maximum characters the user can enter
 | 
						|
     */
 | 
						|
    maxLength?: number;
 | 
						|
    /**
 | 
						|
     * Class names
 | 
						|
     */
 | 
						|
    className?: string;
 | 
						|
    /**
 | 
						|
     * Custom component
 | 
						|
     *
 | 
						|
     * Default = <input/>
 | 
						|
     */
 | 
						|
    customInput?: ElementType;
 | 
						|
    /**
 | 
						|
     * Limit length of decimals allowed
 | 
						|
     *
 | 
						|
     * Default = 2
 | 
						|
     */
 | 
						|
    decimalsLimit?: number;
 | 
						|
    /**
 | 
						|
     * Specify decimal scale for padding/trimming
 | 
						|
     *
 | 
						|
     * Example:
 | 
						|
     *   1.5 -> 1.50
 | 
						|
     *   1.234 -> 1.23
 | 
						|
     */
 | 
						|
    decimalScale?: number;
 | 
						|
    /**
 | 
						|
     * Default value if not passing in value via props
 | 
						|
     */
 | 
						|
    defaultValue?: number | string;
 | 
						|
    /**
 | 
						|
     * Disabled
 | 
						|
     *
 | 
						|
     * Default = false
 | 
						|
     */
 | 
						|
    disabled?: boolean;
 | 
						|
    /**
 | 
						|
     * Value will always have the specified length of decimals
 | 
						|
     *
 | 
						|
     * Example:
 | 
						|
     *   123 -> 1.23
 | 
						|
     *
 | 
						|
     * Note: This formatting only happens onBlur
 | 
						|
     */
 | 
						|
    fixedDecimalLength?: number;
 | 
						|
    /**
 | 
						|
     * Handle change in value
 | 
						|
     */
 | 
						|
    onValueChange?: (value: string | undefined, name?: string, values?: CurrencyInputOnChangeValues) => void;
 | 
						|
    /**
 | 
						|
     * Placeholder if there is no value
 | 
						|
     */
 | 
						|
    placeholder?: string;
 | 
						|
    /**
 | 
						|
     * Include a prefix eg. £
 | 
						|
     */
 | 
						|
    prefix?: string;
 | 
						|
    /**
 | 
						|
     * Include a suffix eg. €
 | 
						|
     */
 | 
						|
    suffix?: string;
 | 
						|
    /**
 | 
						|
     * Incremental value change on arrow down and arrow up key press
 | 
						|
     */
 | 
						|
    step?: number;
 | 
						|
    /**
 | 
						|
     * Separator between integer part and fractional part of value.
 | 
						|
     *
 | 
						|
     * This cannot be a number
 | 
						|
     */
 | 
						|
    decimalSeparator?: string;
 | 
						|
    /**
 | 
						|
     * Separator between thousand, million and billion
 | 
						|
     *
 | 
						|
     * This cannot be a number
 | 
						|
     */
 | 
						|
    groupSeparator?: string;
 | 
						|
    /**
 | 
						|
     * Disable auto adding separator between values eg. 1000 -> 1,000
 | 
						|
     *
 | 
						|
     * Default = false
 | 
						|
     */
 | 
						|
    disableGroupSeparators?: boolean;
 | 
						|
    /**
 | 
						|
     * Disable abbreviations (m, k, b)
 | 
						|
     *
 | 
						|
     * Default = false
 | 
						|
     */
 | 
						|
    disableAbbreviations?: boolean;
 | 
						|
    /**
 | 
						|
     * International locale config, examples:
 | 
						|
     *   { locale: 'ja-JP', currency: 'JPY' }
 | 
						|
     *   { locale: 'en-IN', currency: 'INR' }
 | 
						|
     *
 | 
						|
     * Any prefix, groupSeparator or decimalSeparator options passed in
 | 
						|
     * will override Intl Locale config
 | 
						|
     */
 | 
						|
    intlConfig?: IntlConfig;
 | 
						|
    /**
 | 
						|
     * Transform the raw value form the input before parsing
 | 
						|
     */
 | 
						|
    transformRawValue?: (rawValue: string) => string;
 | 
						|
}>;
 | 
						|
export {};
 |