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 {};
 |