@angular-mdc/web
Version:
161 lines (160 loc) • 6.74 kB
TypeScript
import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, DoCheck, InjectionToken, OnDestroy, QueryList } from '@angular/core';
import { ControlValueAccessor, FormGroupDirective, NgControl, NgForm } from '@angular/forms';
import { Platform } from '@angular/cdk/platform';
import { MdcRipple } from '@angular-mdc/web/ripple';
import { MDCComponent } from '@angular-mdc/web/base';
import { MdcFloatingLabel } from '@angular-mdc/web/floating-label';
import { MdcLineRipple } from '@angular-mdc/web/line-ripple';
import { MdcNotchedOutline } from '@angular-mdc/web/notched-outline';
import { ErrorStateMatcher, CanUpdateErrorState, CanUpdateErrorStateCtor, MdcFormField, MdcFormFieldControl, MdcHelperText } from '@angular-mdc/web/form-field';
import { MdcTextFieldIcon } from './text-field-icon';
import { MDCTextFieldFoundation } from '@material/textfield';
/**
* Represents the default options for mdc-text-field that can be configured
* using an `MDC_TEXT_FIELD_DEFAULT_OPTIONS` injection token.
*/
export interface MdcTextFieldDefaultOptions {
outlined?: boolean;
}
/**
* Injection token that can be used to configure the default options for all
* mdc-text-field usage within an app.
*/
export declare const MDC_TEXT_FIELD_DEFAULT_OPTIONS: InjectionToken<MdcTextFieldDefaultOptions>;
declare class MdcTextFieldBase extends MDCComponent<MDCTextFieldFoundation> {
_elementRef: ElementRef<HTMLElement>;
_defaultErrorStateMatcher: ErrorStateMatcher;
_parentForm: NgForm;
_parentFormGroup: FormGroupDirective;
ngControl: NgControl;
constructor(_elementRef: ElementRef<HTMLElement>, _defaultErrorStateMatcher: ErrorStateMatcher, _parentForm: NgForm, _parentFormGroup: FormGroupDirective, ngControl: NgControl);
}
declare const _MdcTextFieldMixinBase: CanUpdateErrorStateCtor & typeof MdcTextFieldBase;
export declare class MdcTextField extends _MdcTextFieldMixinBase implements AfterViewInit, DoCheck, OnDestroy, ControlValueAccessor, MdcFormFieldControl<any>, CanUpdateErrorState {
private _platform;
private _changeDetectorRef;
elementRef: ElementRef<HTMLElement>;
_defaultErrorStateMatcher: ErrorStateMatcher;
private _parentFormField;
private _ripple;
ngControl: NgControl;
private _defaults;
private _uid;
private _initialized;
/** Time in milliseconds when the last touchstart event happened. */
private _lastTouchStartEvent;
controlType: string;
name?: string;
label: string | null;
maxlength?: number;
minlength?: number;
pattern?: string;
autocomplete?: string;
max?: number;
min?: number;
size?: number;
step?: number;
placeholder: string | null;
tabIndex: number;
get id(): string;
set id(value: string);
private _id;
/** Input type of the element. */
get type(): string;
set type(value: string);
private _type;
get outlined(): boolean;
set outlined(value: boolean);
private _outlined;
get disabled(): boolean;
set disabled(value: boolean);
private _disabled;
get required(): boolean;
set required(value: boolean);
private _required;
get readonly(): boolean;
set readonly(value: boolean);
private _readonly;
get fullwidth(): boolean;
set fullwidth(value: boolean);
private _fullwidth;
get helperText(): MdcHelperText | null;
set helperText(helperText: MdcHelperText | null);
private _helperText;
/** Sets the Text Field valid or invalid. */
get valid(): boolean | undefined;
set valid(value: boolean | undefined);
private _valid;
/** Enables or disables the use of native validation. Use this for custom validation. */
get useNativeValidation(): boolean;
set useNativeValidation(value: boolean);
private _useNativeValidation;
get characterCounter(): boolean;
set characterCounter(value: boolean);
private _characterCounter;
get value(): any;
set value(newValue: any);
private _value;
/** An object used to control when error messages are shown. */
errorStateMatcher?: ErrorStateMatcher;
readonly change: EventEmitter<any>;
readonly input: EventEmitter<any>;
readonly blur: EventEmitter<any>;
readonly _onFocus: EventEmitter<boolean>;
_input: ElementRef<HTMLInputElement | HTMLTextAreaElement>;
_lineRipple?: MdcLineRipple;
_notchedOutline?: MdcNotchedOutline;
_floatingLabel?: MdcFloatingLabel;
_icons: QueryList<MdcTextFieldIcon>;
/** View to model callback called when value changes */
_onChange: (value: any) => void;
/** View to model callback called when text field has been touched */
_onTouched: () => void;
get textarea(): boolean;
get leadingIcon(): MdcTextFieldIcon | undefined;
get trailingIcon(): MdcTextFieldIcon | undefined;
getDefaultFoundation(): MDCTextFieldFoundation;
private _getRootAdapterMethods;
private _getInputAdapterMethods;
private _getLabelAdapterMethods;
private _getLineRippleAdapterMethods;
private _getOutlineAdapterMethods;
/** Returns a map of all subcomponents to subfoundations.*/
private _getFoundationMap;
constructor(_platform: Platform, _changeDetectorRef: ChangeDetectorRef, elementRef: ElementRef<HTMLElement>, _defaultErrorStateMatcher: ErrorStateMatcher, _parentFormField: MdcFormField, _ripple: MdcRipple, ngControl: NgControl, _parentForm: NgForm, _parentFormGroup: FormGroupDirective, _defaults: MdcTextFieldDefaultOptions);
_asyncBuildFoundation(): Promise<void>;
ngAfterViewInit(): void;
ngOnDestroy(): void;
ngDoCheck(): void;
init(): void;
onTextFieldInteraction(): void;
onInputInteraction(evt: MouseEvent | TouchEvent): void;
onInput(evt: KeyboardEvent): void;
onFocus(): void;
onChange(evt: Event): void;
onBlur(): void;
writeValue(value: any): void;
registerOnChange(fn: (value: any) => any): void;
registerOnTouched(fn: () => {}): void;
private _initializeValue;
setValue(value: any, isUserInput?: boolean): void;
isBadInput(): boolean;
focus(): void;
/** Initializes Text Field's internal state based on the environment state */
private _layout;
/** Implemented as part of ControlValueAccessor. */
setDisabledState(isDisabled: boolean): void;
/** Set the default options here. */
private _setDefaultGlobalOptions;
private _checkCustomValidity;
private _initHelperText;
/** Override MdcTextFieldBase destroy method */
destroy(): void;
private _isValid;
private _hasFloatingLabel;
private _getFloatingLabel;
private _getInputElement;
/** Retrieves the DOM element of the component host. */
private _getHostElement;
}
export {};