angular/packages/forms/src/directives/abstract_control_directive.ts
Miško Hevery 57bc245cb4 fix(forms): Update types for TypeScript nullability support
This reverts commit 6d930d2fc5069018de2abd532bf601414bdbbd10.
2017-04-18 12:07:33 -07:00

67 lines
2.1 KiB
TypeScript

/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import {Observable} from 'rxjs/Observable';
import {AbstractControl} from '../model';
import {ValidationErrors} from './validators';
/**
* Base class for control directives.
*
* Only used internally in the forms module.
*
* @stable
*/
export abstract class AbstractControlDirective {
abstract get control(): AbstractControl|null;
get value(): any { return this.control ? this.control.value : null; }
get valid(): boolean|null { return this.control ? this.control.valid : null; }
get invalid(): boolean|null { return this.control ? this.control.invalid : null; }
get pending(): boolean|null { return this.control ? this.control.pending : null; }
get errors(): ValidationErrors|null { return this.control ? this.control.errors : null; }
get pristine(): boolean|null { return this.control ? this.control.pristine : null; }
get dirty(): boolean|null { return this.control ? this.control.dirty : null; }
get touched(): boolean|null { return this.control ? this.control.touched : null; }
get untouched(): boolean|null { return this.control ? this.control.untouched : null; }
get disabled(): boolean|null { return this.control ? this.control.disabled : null; }
get enabled(): boolean|null { return this.control ? this.control.enabled : null; }
get statusChanges(): Observable<any>|null {
return this.control ? this.control.statusChanges : null;
}
get valueChanges(): Observable<any>|null {
return this.control ? this.control.valueChanges : null;
}
get path(): string[]|null { return null; }
reset(value: any = undefined): void {
if (this.control) this.control.reset(value);
}
hasError(errorCode: string, path?: string[]): boolean {
return this.control ? this.control.hasError(errorCode, path) : false;
}
getError(errorCode: string, path?: string[]): any {
return this.control ? this.control.getError(errorCode, path) : null;
}
}