import * as i0 from '@angular/core';
import { OnInit, AfterViewInit, OnDestroy, ElementRef, ChangeDetectorRef, Renderer2, InjectionToken, AfterContentChecked, QueryList } from '@angular/core';
import { NgModel, NgControl } from '@angular/forms';
import { IInputResourceStrings, IgxTheme } from 'igniteui-angular/core';
declare class IgxHintDirective implements OnInit {
/**
* Sets/gets whether the hint position is at the start.
* Default value is `false`.
* ```typescript
* @ViewChild('hint', {read: IgxHintDirective})
* public igxHint: IgxHintDirective;
* this.igxHint.isPositionStart = true;
* ```
* ```typescript
* let isHintPositionStart = this.igxHint.isPositionStart;
* ```
*
* @memberof IgxHintDirective
*/
isPositionStart: boolean;
/**
* Sets/gets whether the hint position is at the end.
* Default value is `false`.
* ```typescript
* @ViewChild('hint', {read: IgxHintDirective})
* public igxHint: IgxHintDirective;
* this.igxHint.isPositionEnd = true;
* ```
* ```typescript
* let isHintPositionEnd = this.igxHint.isPositionEnd;
* ```
*
* @memberof IgxHintDirective
*/
isPositionEnd: boolean;
private _position;
/**
* Sets the position of the hint.
* ```html
*
*
* IgxHint displayed at the start
*
* ```
*
* @memberof IgxHintDirective
*/
set position(value: string);
/**
* Gets the position of the hint.
* ```typescript
* @ViewChild('hint', {read: IgxHintDirective})
* public igxHint: IgxHintDirective;
* let hintPosition = this.igxHint.position;
* ```
*
* @memberof IgxHintDirective
*/
get position(): string;
/**
* @hidden
*/
ngOnInit(): void;
private _applyPosition;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵdir: i0.ɵɵDirectiveDeclaration;
}
/** @hidden */
declare abstract class IgxInputGroupBase {
disabled: boolean;
isFocused: boolean;
isRequired: boolean;
hasPlaceholder: boolean;
}
declare enum IgxInputState {
INITIAL = 0,
VALID = 1,
INVALID = 2
}
/**
* The `igxInput` directive creates single- or multiline text elements, covering common scenarios when dealing with form inputs.
*
* @igxModule IgxInputGroupModule
*
* @igxParent Data Entry & Display
*
* @igxTheme igx-input-group-theme
*
* @igxKeywords input, input group, form, field, validation
*
* @igxGroup presentation
*
* @example
* ```html
*
*
*
*
* ```
*/
declare class IgxInputDirective implements AfterViewInit, OnDestroy {
inputGroup: IgxInputGroupBase;
protected ngModel: NgModel;
protected formControl: NgControl;
protected element: ElementRef;
protected cdr: ChangeDetectorRef;
protected renderer: Renderer2;
/**
* Sets/gets whether the `"igx-input-group__input"` class is added to the host element.
* Default value is `false`.
*
* @example
* ```typescript
* this.igxInput.isInput = true;
* ```
*
* @example
* ```typescript
* let isCLassAdded = this.igxInput.isInput;
* ```
*/
isInput: boolean;
/**
* Sets/gets whether the `"class.igx-input-group__textarea"` class is added to the host element.
* Default value is `false`.
*
* @example
* ```typescript
* this.igxInput.isTextArea = true;
* ```
*
* @example
* ```typescript
* let isCLassAdded = this.igxInput.isTextArea;
* ```
*/
isTextArea: boolean;
private _valid;
private _statusChanges$;
private _valueChanges$;
private _touchedChanges$;
private _fileNames;
private _disabled;
private get ngControl();
/**
* Sets the `value` property.
*
* @example
* ```html
*
*
*
* ```
*/
set value(value: any);
/**
* Gets the `value` property.
*
* @example
* ```typescript
* @ViewChild('igxInput', {read: IgxInputDirective})
* public igxInput: IgxInputDirective;
* let inputValue = this.igxInput.value;
* ```
*/
get value(): any;
/**
* Sets the `disabled` property.
*
* @example
* ```html
*
*
*
* ```
*/
set disabled(value: boolean);
/**
* Gets the `disabled` property
*
* @example
* ```typescript
* @ViewChild('igxInput', {read: IgxInputDirective})
* public igxInput: IgxInputDirective;
* let isDisabled = this.igxInput.disabled;
* ```
*/
get disabled(): boolean;
/**
* Sets the `required` property.
*
* @example
* ```html
*
*
*
* ```
*/
set required(value: boolean);
/**
* Gets whether the igxInput is required.
*
* @example
* ```typescript
* let isRequired = this.igxInput.required;
* ```
*/
get required(): boolean;
/**
* @hidden
* @internal
*/
onFocus(): void;
/**
* @param event The event to invoke the handler
*
* @hidden
* @internal
*/
onBlur(): void;
/** @hidden @internal */
onInput(): void;
/** @hidden @internal */
change(event: Event): void;
/** @hidden @internal */
get fileNames(): string;
/** @hidden @internal */
clear(): void;
/** @hidden @internal */
ngAfterViewInit(): void;
/** @hidden @internal */
ngOnDestroy(): void;
/**
* Sets a focus on the igxInput.
*
* @example
* ```typescript
* this.igxInput.focus();
* ```
*/
focus(): void;
/**
* Gets the `nativeElement` of the igxInput.
*
* @example
* ```typescript
* let igxInputNativeElement = this.igxInput.nativeElement;
* ```
*/
get nativeElement(): HTMLInputElement;
/** @hidden @internal */
protected onStatusChanged(): void;
/** @hidden @internal */
protected onValueChanged(): void;
/**
* @hidden
* @internal
*/
protected updateValidityState(): void;
private get isTouchedOrDirty();
private get hasValidators();
/**
* Gets whether the igxInput has a placeholder.
*
* @example
* ```typescript
* let hasPlaceholder = this.igxInput.hasPlaceholder;
* ```
*/
get hasPlaceholder(): boolean;
/**
* Gets the placeholder element of the igxInput.
*
* @example
* ```typescript
* let igxInputPlaceholder = this.igxInput.placeholder;
* ```
*/
get placeholder(): string;
/**
* @returns An indicator of whether the input has validator attributes or not
*
* @hidden
* @internal
*/
private _hasValidators;
/**
* Gets whether the igxInput is focused.
*
* @example
* ```typescript
* let isFocused = this.igxInput.focused;
* ```
*/
get focused(): boolean;
/**
* Gets the state of the igxInput.
*
* @example
* ```typescript
* let igxInputState = this.igxInput.valid;
* ```
*/
get valid(): IgxInputState;
/**
* Sets the state of the igxInput.
*
* @example
* ```typescript
* this.igxInput.valid = IgxInputState.INVALID;
* ```
*/
set valid(value: IgxInputState);
/**
* Gets whether the igxInput is valid.
*
* @example
* ```typescript
* let valid = this.igxInput.isValid;
* ```
*/
get isValid(): boolean;
/**
* A function to assign a native validity property of an input.
* This should be used when there's no ngControl
*
* @hidden
* @internal
*/
private checkNativeValidity;
/**
* Returns the input type.
*
* @hidden
* @internal
*/
get type(): string;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵdir: i0.ɵɵDirectiveDeclaration;
static ngAcceptInputType_disabled: unknown;
static ngAcceptInputType_required: unknown;
}
declare class IgxLabelDirective {
defaultClass: boolean;
/**
* @hidden
*/
id: string;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵdir: i0.ɵɵDirectiveDeclaration;
}
/**
* @hidden
*/
declare class IgxPrefixDirective {
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵdir: i0.ɵɵDirectiveDeclaration;
}
/**
* @hidden
*/
declare class IgxSuffixDirective {
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵdir: i0.ɵɵDirectiveDeclaration;
}
declare const IgxInputGroupEnum: {
readonly Line: "line";
readonly Box: "box";
readonly Border: "border";
readonly Search: "search";
};
/**
* Defines the InputGroupType DI token.
*/
declare const IGX_INPUT_GROUP_TYPE: InjectionToken;
/**
* Determines the InputGroupType.
*/
type IgxInputGroupType = (typeof IgxInputGroupEnum)[keyof typeof IgxInputGroupEnum];
declare class IgxInputGroupComponent implements IgxInputGroupBase, AfterContentChecked {
element: ElementRef;
private _inputGroupType;
private document;
private platform;
private cdr;
private themeToken;
/**
* Sets the resource strings.
* By default it uses EN resources.
*/
set resourceStrings(value: IInputResourceStrings);
/**
* Returns the resource strings.
*/
get resourceStrings(): IInputResourceStrings;
/**
* Property that enables/disables the auto-generated class of the `IgxInputGroupComponent`.
* By default applied the class is applied.
* ```typescript
* @ViewChild("MyInputGroup")
* public inputGroup: IgxInputGroupComponent;
* ngAfterViewInit(){
* this.inputGroup.defaultClass = false;
* ```
* }
*/
defaultClass: boolean;
/** @hidden */
hasPlaceholder: boolean;
/** @hidden */
isRequired: boolean;
/** @hidden */
isFocused: boolean;
/**
* @hidden @internal
* When truthy, disables the `IgxInputGroupComponent`.
* Controlled by the underlying `IgxInputDirective`.
* ```html
*
* ```
*/
disabled: boolean;
/**
* Prevents automatically focusing the input when clicking on other elements in the input group (e.g. prefix or suffix).
*
* @remarks Automatic focus causes software keyboard to show on mobile devices.
*
* @example
* ```html
*
* ```
*/
suppressInputAutofocus: boolean;
/** @hidden */
hasWarning: boolean;
/** @hidden */
protected hints: QueryList;
protected _prefixes: QueryList;
protected _suffixes: QueryList;
/** @hidden */
protected input: IgxInputDirective;
private _destroyRef;
private _type;
private _filled;
private _theme;
private _resourceStrings;
private _readOnly;
/** @hidden @internal */
get readOnly(): boolean;
/** @hidden @internal */
set readOnly(value: boolean);
/** @hidden */
get validClass(): boolean;
/** @hidden */
get invalidClass(): boolean;
/** @hidden */
get isFilled(): any;
/** @hidden */
get textAreaClass(): boolean;
/**
* Sets how the input will be styled.
* Allowed values of type IgxInputGroupType.
* ```html
*
* ```
*/
set type(value: IgxInputGroupType);
/**
* Returns the type of the `IgxInputGroupComponent`. How the input is styled.
* The default is `line`.
* ```typescript
* @ViewChild("MyInputGroup")
* public inputGroup: IgxInputGroupComponent;
* ngAfterViewInit(){
* let inputType = this.inputGroup.type;
* }
* ```
*/
get type(): IgxInputGroupType;
/**
* Sets the theme of the input.
* Allowed values of type IgxInputGroupTheme.
* ```typescript
* @ViewChild("MyInputGroup")
* public inputGroup: IgxInputGroupComponent;
* ngAfterViewInit() {
* let inputTheme = 'fluent';
* }
*/
set theme(value: IgxTheme);
/**
* Returns the theme of the input.
* The returned value is of type IgxInputGroupType.
* ```typescript
* @ViewChild("MyInputGroup")
* public inputGroup: IgxInputGroupComponent;
* ngAfterViewInit() {
* let inputTheme = this.inputGroup.theme;
* }
*/
get theme(): IgxTheme;
constructor();
/** @hidden */
onClick(event: MouseEvent): void;
/** @hidden */
onPointerDown(event: PointerEvent): void;
/** @hidden @internal */
hintClickHandler(event: MouseEvent): void;
/**
* Returns whether the `IgxInputGroupComponent` has hints.
* ```typescript
* @ViewChild("MyInputGroup")
* public inputGroup: IgxInputGroupComponent;
* ngAfterViewInit(){
* let inputHints = this.inputGroup.hasHints;
* }
* ```
*/
get hasHints(): boolean;
/** @hidden @internal */
get hasPrefixes(): boolean;
/** @hidden @internal */
set prefixes(items: QueryList);
/** @hidden @internal */
get hasSuffixes(): any;
/** @hidden @internal */
set suffixes(items: QueryList);
/**
* Returns whether the `IgxInputGroupComponent` has border.
* ```typescript
* @ViewChild("MyInputGroup")
* public inputGroup: IgxInputGroupComponent;
* ngAfterViewInit(){
* let inputBorder = this.inputGroup.hasBorder;
* }
* ```
*/
get hasBorder(): boolean;
/**
* Returns whether the `IgxInputGroupComponent` type is line.
* ```typescript
* @ViewChild("MyInputGroup1")
* public inputGroup: IgxInputGroupComponent;
* ngAfterViewInit(){
* let isTypeLine = this.inputGroup.isTypeLine;
* }
* ```
*/
get isTypeLine(): boolean;
/**
* Returns whether the `IgxInputGroupComponent` type is box.
* ```typescript
* @ViewChild("MyInputGroup1")
* public inputGroup: IgxInputGroupComponent;
* ngAfterViewInit(){
* let isTypeBox = this.inputGroup.isTypeBox;
* }
* ```
*/
get isTypeBox(): boolean;
/** @hidden @internal */
clearValueHandler(): void;
/** @hidden @internal */
get isFileType(): boolean;
/** @hidden @internal */
get isFileInput(): boolean;
/** @hidden @internal */
get isFileInputFilled(): any;
/** @hidden @internal */
get isFileInputFocused(): boolean;
/** @hidden @internal */
get isFileInputDisabled(): boolean;
/** @hidden @internal */
get fileNames(): string;
/**
* Returns whether the `IgxInputGroupComponent` type is border.
* ```typescript
* @ViewChild("MyInputGroup1")
* public inputGroup: IgxInputGroupComponent;
* ngAfterViewInit(){
* let isTypeBorder = this.inputGroup.isTypeBorder;
* }
* ```
*/
get isTypeBorder(): boolean;
/**
* Returns true if the `IgxInputGroupComponent` theme is Fluent.
* ```typescript
* @ViewChild("MyInputGroup1")
* public inputGroup: IgxInputGroupComponent;
* ngAfterViewInit(){
* let isTypeFluent = this.inputGroup.isTypeFluent;
* }
* ```
*/
get isTypeFluent(): boolean;
/**
* Returns true if the `IgxInputGroupComponent` theme is Bootstrap.
* ```typescript
* @ViewChild("MyInputGroup1")
* public inputGroup: IgxInputGroupComponent;
* ngAfterViewInit(){
* let isTypeBootstrap = this.inputGroup.isTypeBootstrap;
* }
* ```
*/
get isTypeBootstrap(): boolean;
/**
* Returns true if the `IgxInputGroupComponent` theme is Indigo.
* ```typescript
* @ViewChild("MyInputGroup1")
* public inputGroup: IgxInputGroupComponent;
* ngAfterViewInit(){
* let isTypeIndigo = this.inputGroup.isTypeIndigo;
* }
* ```
*/
get isTypeIndigo(): boolean;
/**
* Returns whether the `IgxInputGroupComponent` type is search.
* ```typescript
* @ViewChild("MyInputGroup1")
* public inputGroup: IgxInputGroupComponent;
* ngAfterViewInit(){
* let isTypeSearch = this.inputGroup.isTypeSearch;
* }
* ```
*/
get isTypeSearch(): boolean;
/** @hidden */
get filled(): boolean;
/** @hidden */
set filled(val: boolean);
private setComponentTheme;
/** @hidden @internal */
ngAfterContentChecked(): void;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
static ngAcceptInputType_suppressInputAutofocus: unknown;
}
declare class IgxReadOnlyInputDirective {
igxReadOnlyInput: i0.InputSignal;
private _inputGroup;
constructor();
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵdir: i0.ɵɵDirectiveDeclaration;
}
declare const IGX_INPUT_GROUP_DIRECTIVES: readonly [typeof IgxInputGroupComponent, typeof IgxInputDirective, typeof IgxLabelDirective, typeof IgxPrefixDirective, typeof IgxSuffixDirective, typeof IgxHintDirective];
/**
* @hidden
* @deprecated
* IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components
*/
declare class IgxInputGroupModule {
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵmod: i0.ɵɵNgModuleDeclaration;
static ɵinj: i0.ɵɵInjectorDeclaration;
}
export { IGX_INPUT_GROUP_DIRECTIVES, IGX_INPUT_GROUP_TYPE, IgxHintDirective, IgxInputDirective, IgxInputGroupBase, IgxInputGroupComponent, IgxInputGroupEnum, IgxInputGroupModule, IgxInputState, IgxLabelDirective, IgxPrefixDirective, IgxReadOnlyInputDirective, IgxSuffixDirective };
export type { IgxInputGroupType };