import { EventEmitter } from '../../stencil-public-runtime'; import { IxInputFieldComponent, ValidationResults } from '../utils/input'; /** * @form-ready * @slot start - Element will be displayed at the start of the input * @slot end - Element will be displayed at the end of the input */ export declare class NumberInput implements IxInputFieldComponent { hostElement: HTMLIxNumberInputElement; formInternals: ElementInternals; /** * name of the input element */ name?: string; /** * placeholder of the input element */ placeholder?: string; /** * The value of the input field. Supports numeric values, scientific notation (1E6, 1E-6), or undefined for empty. */ value?: number; /** * Indicates if the field is required. When required, empty values (undefined) are not accepted. */ required: boolean; /** * Disables the input field */ disabled: boolean; /** * Indicates if the field is read-only */ readonly: boolean; /** * The helper text for the input field */ helperText?: string; /** * The info text for the input field */ infoText?: string; /** * Indicates if the text should be shown as a tooltip */ showTextAsTooltip?: boolean; /** * The valid text for the input field */ validText?: string; /** * The warning text for the input field */ warningText?: string; /** * The label for the input field */ label?: string; /** * The error text for the input field */ invalidText?: string; /** * The pattern for the input field */ pattern?: string; /** * The minimum value for the input field */ min?: string | number; /** * The maximum value for the input field */ max?: string | number; /** * The allowed characters pattern for the input field */ allowedCharactersPattern?: string; /** * Indicates if the stepper buttons should be shown */ showStepperButtons?: boolean; /** * Step value to increment or decrement the input value. Default step value is 1. * */ step?: string | number; /** * If false, pressing Enter will submit the form (if inside a form). * Set to true to suppress submit on Enter. */ suppressSubmitOnEnter: boolean; /** * Text alignment within the number input. 'start' aligns the text to the start of the input, 'end' aligns the text to the end of the input. */ textAlignment: 'start' | 'end'; /** * If true, the valueChange event will return null instead of 0 for an empty input state. * This property will be removed in 5.0.0 and this behaviour will be default. * * @since 4.1.0 */ allowEmptyValueChange: boolean; /** * Event emitted when the value of the input field changes */ valueChange: EventEmitter; /** * Event emitted when the validity state of the input field changes */ validityStateChange: EventEmitter; /** * Event emitted when the input field loses focus */ ixBlur: EventEmitter; /** * Event emitted when the input field loses focus and the value has changed * @since 4.4.0 */ ixChange: EventEmitter; isInvalid: boolean; isValid: boolean; isInfo: boolean; isWarning: boolean; isInvalidByRequired: boolean; private readonly inputRef; private readonly slotEndRef; private readonly slotStartRef; private readonly numberInputId; private touched; /** @internal */ initialValue?: number; private disposableChangesAndVisibilityObservers?; onValueChange(newValue: number | undefined): void; updateClassMappings(result: ValidationResults): void; componentWillLoad(): void; connectedCallback(): void; disconnectedCallback(): void; private updatePaddings; private convertNumberStringToFloat; private isScientificNotation; private formatValue; private handleValueChangeEvent; updateFormInternalValue(value: number): void; private readonly handleInputChange; private readonly handleBlur; private readonly handleKeyDown; private readonly handleBeforeInput; private readonly handlePaste; private getDecimalPlaces; private handleStepOperation; /** @internal */ getAssociatedFormElement(): Promise; /** @internal */ hasValidValue(): Promise; /** * Returns the native input element used under the hood */ getNativeInputElement(): Promise; /** * Focuses the input field */ focusInput(): Promise; /** * Returns true if the input field has been touched * @internal */ isTouched(): Promise; render(): any; }