import { EventEmitter } from '../../stencil-public-runtime'; import { PickerValidityStateTracker } from '../input/input.util'; import { IxInputFieldComponent, ValidationResults } from '../utils/input'; import type { TimeInputValidityState } from './time-input.types'; /** * @since 3.2.0 * @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 TimeInput implements IxInputFieldComponent { hostElement: HTMLIxTimeInputElement; formInternals: ElementInternals; /** * Name of the input element. */ name?: string; /** * Placeholder of the input element. */ placeholder?: string; /** * Value of the input element. */ value: string; watchValuePropHandler(newValue: string): void; /** * Format of time string. * See {@link https://moment.github.io/luxon/#/formatting?id=table-of-tokens} for all available tokens. */ format: string; /** * Required attribute. */ required?: boolean; /** * Helper text below the input field. */ helperText?: string; /** * Label of the input field. */ label?: string; /** * Error text below the input field. */ invalidText?: string; /** * Readonly attribute. */ readonly: boolean; /** * Disabled attribute. */ disabled: boolean; /** * Info text below the input field. */ infoText?: string; /** * Warning text below the input field. */ warningText?: string; /** * Valid text below the input field. */ validText?: string; /** * Show text as tooltip. */ showTextAsTooltip?: boolean; /** * I18n string for the error message when the time is not parsable. */ i18nErrorTimeUnparsable: string; /** * Interval for hour selection. */ hourInterval: number; /** * Interval for minute selection. */ minuteInterval: number; /** * Interval for second selection. */ secondInterval: number; /** * Interval for millisecond selection. */ millisecondInterval: number; /** * Text of the time picker confirm button. */ i18nSelectTime: string; /** * Text for the time picker top label. */ i18nTime: string; /** * Text for the time picker hour column header. */ i18nHourColumnHeader: string; /** * Text for the time picker minute column header. */ i18nMinuteColumnHeader: string; /** * Text for the time picker second column header. */ i18nSecondColumnHeader: string; /** * Text for the time picker millisecond column header. */ i18nMillisecondColumnHeader: string; /** * If false, pressing Enter will submit the form (if inside a form). * Set to true to suppress submit on Enter. */ suppressSubmitOnEnter: boolean; /** * Hides the header of the picker. * * @since 4.0.0 */ hideHeader: boolean; /** * Text alignment within the time input. 'start' aligns the text to the start of the input, 'end' aligns the text to the end of the input. */ textAlignment: 'start' | 'end'; /** * Enable Popover API rendering for dropdown. * * @default false * @since 4.3.0 */ enableTopLayer: boolean; /** * Value change event. Emitted when the input value changes. */ valueChange: EventEmitter; /** * Validation state change event. Emitted when the validation state changes. */ validityStateChange: EventEmitter; /** @internal */ ixFocus: EventEmitter; /** @internal */ ixBlur: EventEmitter; /** * Change event. Emitted when the time input loses focus and the value has changed. * * @since 4.4.0 */ ixChange: EventEmitter; show: boolean; time: string | null; isInputInvalid: boolean; isInvalid: boolean; isValid: boolean; isInfo: boolean; isWarning: boolean; focus: boolean; private readonly slotStartRef; private readonly slotEndRef; private readonly timePickerRef; private readonly inputElementRef; private readonly dropdownElementRef; private classObserver?; /** @internal */ initialValue?: string; /** @internal */ invalidReason?: string; /** @internal */ touched: boolean; /** @internal */ validityTracker: PickerValidityStateTracker; private disposableChangesAndVisibilityObservers?; private handleInputKeyDown; updateFormInternalValue(value: string): void; connectedCallback(): void; componentWillLoad(): void; private updatePaddings; disconnectedCallback(): void; watchValue(): void; /** @internal */ hasValidValue(): Promise; /** @internal */ getAssociatedFormElement(): Promise; onInput(value: string): Promise; onTimeIconClick(event: Event): void; openDropdown(): Promise; closeDropdown(): Promise; private checkClassList; private renderInput; hookValidationLifecycle({ isInfo, isInvalid, isInvalidByRequired, isValid, isWarning, }: ValidationResults): void; private emitValidityStateChangeIfChanged; /** @internal */ getValidityState(): Promise; /** * Get the native input element */ getNativeInputElement(): Promise; /** * Focuses the input field */ focusInput(): Promise; /** * Returns whether the text field has been touched. * @internal */ isTouched(): Promise; render(): any; }