Fixed #1836 - For InputNumber

pull/1846/head
mertsincan 2021-12-01 16:45:11 +03:00
parent f4df7cfac6
commit 8dbde1561f
1 changed files with 180 additions and 30 deletions

View File

@ -1,37 +1,187 @@
interface InputNumberProps {
modelValue?: number;
format?: boolean;
showButtons?: boolean;
buttonLayout?: string;
incrementButtonClass?: string;
decrementButtonClass?: string;
incrementButtonIcon?: string;
decrementButtonIcon?: string;
locale?: string;
localeMatcher?: string;
mode?: string;
prefix?: string;
suffix?: string;
currency?: string;
currencyDisplay?: string;
useGrouping?: boolean;
minFractionDigits?: number;
maxFractionDigits?: number;
min?: number;
max?: number;
step?: number;
allowEmpty?: boolean;
import { ClassComponent, GlobalComponentConstructor, Nullable } from '../ts-helpers';
type InputNumberButtonLayoutType = 'stacked' | 'horizontal' | 'vertical';
type InputNumberLocaleMatcherType = 'lookup' | 'best fit';
type InputNumberModeType = 'decimal' | 'currency';
export interface InputNumberInputEvent {
/**
* Browser event
*/
originalEvent: Event;
/**
* New value
*/
value: string | number | undefined;
}
export interface InputNumberProps {
/**
* Value of the component.
*/
modelValue?: Nullable<number>;
/**
* Whether to format the value.
*/
format?: boolean | undefined;
/**
* Displays spinner buttons.
*/
showButtons?: boolean | undefined;
/**
* Layout of the buttons.
* @see InputNumberButtonLayoutType
* Default value is 'stacked'.
*/
buttonLayout?: InputNumberButtonLayoutType;
/**
* Style class of the increment button.
*/
incrementButtonClass?: string | undefined;
/**
* Style class of the decrement button.
*/
decrementButtonClass?: string | undefined;
/**
* Style class of the increment button.
* Default value is 'pi pi-angle-up'.
*/
incrementButtonIcon?: string | undefined;
/**
* Style class of the decrement button.
* Default value is 'pi pi-angle-down'.
*/
decrementButtonIcon?: string | undefined;
/**
* Locale to be used in formatting.
*/
locale?: string | undefined;
/**
* The locale matching algorithm to use. Possible values are "lookup" and "best fit"; the default is "best fit".
* See [Locale Negotation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_negotiation) for details.
* @see InputNumberLocaleMatcherType
* Default value is 'best fit'
*/
localeMatcher?: InputNumberLocaleMatcherType;
/**
* Defines the behavior of the component.
* @see InputNumberModeType
* Default value is 'decimal'.
*/
mode?: InputNumberModeType;
/**
* Text to display before the value.
*/
prefix?: string | undefined;
/**
* Text to display after the value.
*/
suffix?: string | undefined;
/**
* The currency to use in currency formatting. Possible values are the [ISO 4217 currency codes](https://www.six-group.com/en/products-services/financial-information/data-standards.html#scrollTo=maintenance-agency), such as "USD" for the US dollar, "EUR" for the euro, or "CNY" for the Chinese RMB.
* There is no default value; if the style is "currency", the currency property must be provided.
*/
currency?: string | undefined;
/**
* How to display the currency in currency formatting. Possible values are "symbol" to use a localized currency symbol such as , "code" to use the ISO currency code, "name" to use a localized currency name such as "dollar".
* Default value is 'symbol'.
*/
currencyDisplay?: string | undefined;
/**
* Whether to use grouping separators, such as thousands separators or thousand/lakh/crore separators.
* Default value is true.
*/
useGrouping?: boolean | undefined;
/**
* The minimum number of fraction digits to use. Possible values are from 0 to 20; the default for plain number and percent formatting is 0;
* the default for currency formatting is the number of minor unit digits provided by the [ISO 4217 currency code](https://www.six-group.com/en/products-services/financial-information/data-standards.html#scrollTo=maintenance-agency) list (2 if the list doesn't provide that information).
*/
minFractionDigits?: number | undefined;
/**
* The maximum number of fraction digits to use. Possible values are from 0 to 20; the default for plain number formatting is the larger of minimumFractionDigits and 3;
* the default for currency formatting is the larger of minimumFractionDigits and the number of minor unit digits provided by the [ISO 4217 currency code](https://www.six-group.com/en/products-services/financial-information/data-standards.html#scrollTo=maintenance-agency) list (2 if the list doesn't provide that information).
*/
maxFractionDigits?: number | undefined;
/**
* Mininum boundary value.
*/
min?: number | undefined;
/**
* Maximum boundary value.
*/
max?: number | undefined;
/**
* Step factor to increment/decrement the value.
* Default value is 1.
*/
step?: number | undefined;
/**
* Determines whether the input field is empty.
* Default value is true.
*/
allowEmpty?: boolean | undefined;
/**
* Inline style of the input field.
*/
inputStyle?: any;
inputClass?: string;
/**
* Style class of the input field.
*/
inputClass?: string | undefined;
/**
* Inline style of the component.
*/
style?: any;
class?: any;
/**
* Style class of the element.
*/
class?: string | undefined;
}
declare class InputNumber {
$props: InputNumberProps;
$emit(eventName: 'update:modelValue', value: number): this;
$emit(eventName: 'input', e: {originalEvent: Event, value: any}): this;
getFormatter(): any;
export interface InputNumberSlots {
}
export declare type InputNumberEmits = {
/**
* Emitted when the value changes.
* @param {number} value - New value.
*/
'update:modelValue': (value: number) => void;
/**
* Callback to invoke when the value is entered.
* @param {InputNumberInputEvent} event - Custom input event.
*/
'input': (event: InputNumberInputEvent) => void;
}
declare class InputNumber extends ClassComponent<InputNumberProps, InputNumberSlots, InputNumberEmits> {
/**
* Returns Intl.NumberFormat object.
*
* @memberof InputNumber
*/
getFormatter: () => Intl.NumberFormat | undefined;
}
declare module '@vue/runtime-core' {
interface GlobalComponents {
InputNumber: GlobalComponentConstructor<InputNumber>
}
}
/**
*
* InputNumber is an input component to provide numerical input.
*
* Helper API:
*
* - [Intl.NumberFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat)
*
* Demos:
*
* - [InputNumber](https://www.primefaces.org/primevue/showcase/#/inputnumber)
*
*/
export default InputNumber;