diff --git a/modules/@angular/forms/src/directives/abstract_control_directive.ts b/modules/@angular/forms/src/directives/abstract_control_directive.ts index 0e883f4d32..5d76cffaf3 100644 --- a/modules/@angular/forms/src/directives/abstract_control_directive.ts +++ b/modules/@angular/forms/src/directives/abstract_control_directive.ts @@ -7,7 +7,6 @@ */ import {Observable} from '../facade/async'; -import {isPresent} from '../facade/lang'; import {AbstractControl} from '../model'; /** @@ -20,49 +19,43 @@ import {AbstractControl} from '../model'; export abstract class AbstractControlDirective { get control(): AbstractControl { throw new Error('unimplemented'); } - get value(): any { return isPresent(this.control) ? this.control.value : null; } + get value(): any { return this.control ? this.control.value : null; } - get valid(): boolean { return isPresent(this.control) ? this.control.valid : null; } + get valid(): boolean { return this.control ? this.control.valid : null; } - get invalid(): boolean { return isPresent(this.control) ? this.control.invalid : null; } + get invalid(): boolean { return this.control ? this.control.invalid : null; } - get pending(): boolean { return isPresent(this.control) ? this.control.pending : null; } + get pending(): boolean { return this.control ? this.control.pending : null; } - get errors(): {[key: string]: any} { - return isPresent(this.control) ? this.control.errors : null; - } + get errors(): {[key: string]: any} { return this.control ? this.control.errors : null; } - get pristine(): boolean { return isPresent(this.control) ? this.control.pristine : null; } + get pristine(): boolean { return this.control ? this.control.pristine : null; } - get dirty(): boolean { return isPresent(this.control) ? this.control.dirty : null; } + get dirty(): boolean { return this.control ? this.control.dirty : null; } - get touched(): boolean { return isPresent(this.control) ? this.control.touched : null; } + get touched(): boolean { return this.control ? this.control.touched : null; } - get untouched(): boolean { return isPresent(this.control) ? this.control.untouched : null; } + get untouched(): boolean { return this.control ? this.control.untouched : null; } - get disabled(): boolean { return isPresent(this.control) ? this.control.disabled : null; } + get disabled(): boolean { return this.control ? this.control.disabled : null; } - get enabled(): boolean { return isPresent(this.control) ? this.control.enabled : null; } + get enabled(): boolean { return this.control ? this.control.enabled : null; } - get statusChanges(): Observable { - return isPresent(this.control) ? this.control.statusChanges : null; - } + get statusChanges(): Observable { return this.control ? this.control.statusChanges : null; } - get valueChanges(): Observable { - return isPresent(this.control) ? this.control.valueChanges : null; - } + get valueChanges(): Observable { return this.control ? this.control.valueChanges : null; } get path(): string[] { return null; } reset(value: any = undefined): void { - if (isPresent(this.control)) this.control.reset(value); + if (this.control) this.control.reset(value); } hasError(errorCode: string, path: string[] = null): boolean { - return isPresent(this.control) ? this.control.hasError(errorCode, path) : false; + return this.control ? this.control.hasError(errorCode, path) : false; } getError(errorCode: string, path: string[] = null): any { - return isPresent(this.control) ? this.control.getError(errorCode, path) : null; + return this.control ? this.control.getError(errorCode, path) : null; } } diff --git a/modules/@angular/forms/src/directives/checkbox_value_accessor.ts b/modules/@angular/forms/src/directives/checkbox_value_accessor.ts index 8ce20b4f4d..6c18e0a349 100644 --- a/modules/@angular/forms/src/directives/checkbox_value_accessor.ts +++ b/modules/@angular/forms/src/directives/checkbox_value_accessor.ts @@ -13,7 +13,7 @@ import {ControlValueAccessor, NG_VALUE_ACCESSOR} from './control_value_accessor' export const CHECKBOX_VALUE_ACCESSOR: any = { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => CheckboxControlValueAccessor), - multi: true + multi: true, }; /** diff --git a/modules/@angular/forms/src/directives/default_value_accessor.ts b/modules/@angular/forms/src/directives/default_value_accessor.ts index 6307456677..d4aaa60005 100644 --- a/modules/@angular/forms/src/directives/default_value_accessor.ts +++ b/modules/@angular/forms/src/directives/default_value_accessor.ts @@ -8,8 +8,6 @@ import {Directive, ElementRef, Renderer, forwardRef} from '@angular/core'; -import {isBlank} from '../facade/lang'; - import {ControlValueAccessor, NG_VALUE_ACCESSOR} from './control_value_accessor'; export const DEFAULT_VALUE_ACCESSOR: any = { @@ -45,7 +43,7 @@ export class DefaultValueAccessor implements ControlValueAccessor { constructor(private _renderer: Renderer, private _elementRef: ElementRef) {} writeValue(value: any): void { - var normalizedValue = isBlank(value) ? '' : value; + const normalizedValue = value == null ? '' : value; this._renderer.setElementProperty(this._elementRef.nativeElement, 'value', normalizedValue); } diff --git a/modules/@angular/forms/src/directives/ng_control_status.ts b/modules/@angular/forms/src/directives/ng_control_status.ts index b5efea689c..e1cd164c4a 100644 --- a/modules/@angular/forms/src/directives/ng_control_status.ts +++ b/modules/@angular/forms/src/directives/ng_control_status.ts @@ -8,8 +8,6 @@ import {Directive, Self} from '@angular/core'; -import {isPresent} from '../facade/lang'; - import {AbstractControlDirective} from './abstract_control_directive'; import {ControlContainer} from './control_container'; import {NgControl} from './ng_control'; @@ -19,27 +17,13 @@ export class AbstractControlStatus { constructor(cd: AbstractControlDirective) { this._cd = cd; } - get ngClassUntouched(): boolean { - return isPresent(this._cd.control) ? this._cd.control.untouched : false; - } - get ngClassTouched(): boolean { - return isPresent(this._cd.control) ? this._cd.control.touched : false; - } - get ngClassPristine(): boolean { - return isPresent(this._cd.control) ? this._cd.control.pristine : false; - } - get ngClassDirty(): boolean { - return isPresent(this._cd.control) ? this._cd.control.dirty : false; - } - get ngClassValid(): boolean { - return isPresent(this._cd.control) ? this._cd.control.valid : false; - } - get ngClassInvalid(): boolean { - return isPresent(this._cd.control) ? this._cd.control.invalid : false; - } - get ngClassPending(): boolean { - return isPresent(this._cd.control) ? this._cd.control.pending : false; - } + get ngClassUntouched(): boolean { return this._cd.control ? this._cd.control.untouched : false; } + get ngClassTouched(): boolean { return this._cd.control ? this._cd.control.touched : false; } + get ngClassPristine(): boolean { return this._cd.control ? this._cd.control.pristine : false; } + get ngClassDirty(): boolean { return this._cd.control ? this._cd.control.dirty : false; } + get ngClassValid(): boolean { return this._cd.control ? this._cd.control.valid : false; } + get ngClassInvalid(): boolean { return this._cd.control ? this._cd.control.invalid : false; } + get ngClassPending(): boolean { return this._cd.control ? this._cd.control.pending : false; } } export const ngControlStatusHost = { @@ -49,7 +33,7 @@ export const ngControlStatusHost = { '[class.ng-dirty]': 'ngClassDirty', '[class.ng-valid]': 'ngClassValid', '[class.ng-invalid]': 'ngClassInvalid', - '[class.ng-pending]': 'ngClassPending' + '[class.ng-pending]': 'ngClassPending', }; /** diff --git a/modules/@angular/forms/src/directives/ng_form.ts b/modules/@angular/forms/src/directives/ng_form.ts index 22ddfad1c2..20015ba3d8 100644 --- a/modules/@angular/forms/src/directives/ng_form.ts +++ b/modules/@angular/forms/src/directives/ng_form.ts @@ -9,7 +9,6 @@ import {Directive, Inject, Optional, Self, forwardRef} from '@angular/core'; import {EventEmitter} from '../facade/async'; -import {isPresent} from '../facade/lang'; import {AbstractControl, FormControl, FormGroup} from '../model'; import {NG_ASYNC_VALIDATORS, NG_VALIDATORS} from '../validators'; @@ -103,7 +102,7 @@ export class NgForm extends ControlContainer implements Form { removeControl(dir: NgModel): void { resolvedPromise.then(() => { const container = this._findContainer(dir.path); - if (isPresent(container)) { + if (container) { container.removeControl(dir.name); } }); @@ -122,7 +121,7 @@ export class NgForm extends ControlContainer implements Form { removeFormGroup(dir: NgModelGroup): void { resolvedPromise.then(() => { const container = this._findContainer(dir.path); - if (isPresent(container)) { + if (container) { container.removeControl(dir.name); } }); diff --git a/modules/@angular/forms/src/directives/normalize_validator.ts b/modules/@angular/forms/src/directives/normalize_validator.ts index 1fa9adf3df..9d2328076b 100644 --- a/modules/@angular/forms/src/directives/normalize_validator.ts +++ b/modules/@angular/forms/src/directives/normalize_validator.ts @@ -11,7 +11,7 @@ import {AbstractControl} from '../model'; import {AsyncValidatorFn, Validator, ValidatorFn} from './validators'; export function normalizeValidator(validator: ValidatorFn | Validator): ValidatorFn { - if ((validator).validate !== undefined) { + if ((validator).validate) { return (c: AbstractControl) => (validator).validate(c); } else { return validator; @@ -19,7 +19,7 @@ export function normalizeValidator(validator: ValidatorFn | Validator): Validato } export function normalizeAsyncValidator(validator: AsyncValidatorFn | Validator): AsyncValidatorFn { - if ((validator).validate !== undefined) { + if ((validator).validate) { return (c: AbstractControl) => (validator).validate(c); } else { return validator; diff --git a/modules/@angular/forms/src/directives/number_value_accessor.ts b/modules/@angular/forms/src/directives/number_value_accessor.ts index 443d26ce93..8c4baf8433 100644 --- a/modules/@angular/forms/src/directives/number_value_accessor.ts +++ b/modules/@angular/forms/src/directives/number_value_accessor.ts @@ -8,8 +8,6 @@ import {Directive, ElementRef, Renderer, forwardRef} from '@angular/core'; -import {isBlank} from '../facade/lang'; - import {ControlValueAccessor, NG_VALUE_ACCESSOR} from './control_value_accessor'; export const NUMBER_VALUE_ACCESSOR: any = { @@ -45,7 +43,7 @@ export class NumberValueAccessor implements ControlValueAccessor { writeValue(value: number): void { // The value needs to be normalized for IE9, otherwise it is set to 'null' when null - const normalizedValue = isBlank(value) ? '' : value; + const normalizedValue = value == null ? '' : value; this._renderer.setElementProperty(this._elementRef.nativeElement, 'value', normalizedValue); } diff --git a/modules/@angular/forms/src/directives/radio_control_value_accessor.ts b/modules/@angular/forms/src/directives/radio_control_value_accessor.ts index 413466177f..d8784023e6 100644 --- a/modules/@angular/forms/src/directives/radio_control_value_accessor.ts +++ b/modules/@angular/forms/src/directives/radio_control_value_accessor.ts @@ -29,13 +29,12 @@ export class RadioControlRegistry { } remove(accessor: RadioControlValueAccessor) { - var indexToRemove = -1; - for (var i = 0; i < this._accessors.length; ++i) { + for (let i = this._accessors.length - 1; i >= 0; --i) { if (this._accessors[i][1] === accessor) { - indexToRemove = i; + this._accessors.splice(i, 1); + return; } } - this._accessors.splice(indexToRemove, 1); } select(accessor: RadioControlValueAccessor) { @@ -99,7 +98,7 @@ export class RadioControlValueAccessor implements ControlValueAccessor, /** @internal */ _fn: Function; onChange = () => {}; - onTouched = () => {} + onTouched = () => {}; @Input() name: string; @Input() formControlName: string; diff --git a/modules/@angular/forms/src/directives/select_control_value_accessor.ts b/modules/@angular/forms/src/directives/select_control_value_accessor.ts index ac0c534efb..a18a21b3a0 100644 --- a/modules/@angular/forms/src/directives/select_control_value_accessor.ts +++ b/modules/@angular/forms/src/directives/select_control_value_accessor.ts @@ -8,7 +8,7 @@ import {Directive, ElementRef, Host, Input, OnDestroy, Optional, Renderer, forwardRef} from '@angular/core'; -import {isBlank, isPresent, isPrimitive, looseIdentical} from '../facade/lang'; +import {isPrimitive, looseIdentical} from '../facade/lang'; import {ControlValueAccessor, NG_VALUE_ACCESSOR} from './control_value_accessor'; @@ -19,7 +19,7 @@ export const SELECT_VALUE_ACCESSOR: any = { }; function _buildValueString(id: string, value: any): string { - if (isBlank(id)) return `${value}`; + if (id == null) return `${value}`; if (!isPrimitive(value)) value = 'Object'; return `${id}: ${value}`.slice(0, 50); } @@ -86,7 +86,7 @@ export class SelectControlValueAccessor implements ControlValueAccessor { writeValue(value: any): void { this.value = value; - var valueString = _buildValueString(this._getOptionId(value), value); + const valueString = _buildValueString(this._getOptionId(value), value); this._renderer.setElementProperty(this._elementRef.nativeElement, 'value', valueString); } @@ -115,8 +115,8 @@ export class SelectControlValueAccessor implements ControlValueAccessor { /** @internal */ _getOptionValue(valueString: string): any { - let value = this._optionMap.get(_extractId(valueString)); - return isPresent(value) ? value : valueString; + const value = this._optionMap.get(_extractId(valueString)); + return value != null ? value : valueString; } } @@ -136,7 +136,7 @@ export class NgSelectOption implements OnDestroy { constructor( private _element: ElementRef, private _renderer: Renderer, @Optional() @Host() private _select: SelectControlValueAccessor) { - if (isPresent(this._select)) this.id = this._select._registerOption(); + if (this._select) this.id = this._select._registerOption(); } @Input('ngValue') @@ -150,7 +150,7 @@ export class NgSelectOption implements OnDestroy { @Input('value') set value(value: any) { this._setElementValue(value); - if (isPresent(this._select)) this._select.writeValue(this._select.value); + if (this._select) this._select.writeValue(this._select.value); } /** @internal */ @@ -159,7 +159,7 @@ export class NgSelectOption implements OnDestroy { } ngOnDestroy() { - if (isPresent(this._select)) { + if (this._select) { this._select._optionMap.delete(this.id); this._select.writeValue(this._select.value); } diff --git a/modules/@angular/forms/src/directives/select_multiple_control_value_accessor.ts b/modules/@angular/forms/src/directives/select_multiple_control_value_accessor.ts index 893b9da9b8..69075f21a5 100644 --- a/modules/@angular/forms/src/directives/select_multiple_control_value_accessor.ts +++ b/modules/@angular/forms/src/directives/select_multiple_control_value_accessor.ts @@ -8,7 +8,7 @@ import {Directive, ElementRef, Host, Input, OnDestroy, OpaqueToken, Optional, Renderer, Type, forwardRef} from '@angular/core'; -import {isBlank, isPresent, isPrimitive, looseIdentical} from '../facade/lang'; +import {isPrimitive, looseIdentical} from '../facade/lang'; import {ControlValueAccessor, NG_VALUE_ACCESSOR} from './control_value_accessor'; @@ -19,7 +19,7 @@ export const SELECT_MULTIPLE_VALUE_ACCESSOR = { }; function _buildValueString(id: string, value: any): string { - if (isBlank(id)) return `${value}`; + if (id == null) return `${value}`; if (typeof value === 'string') value = `'${value}'`; if (!isPrimitive(value)) value = 'Object'; return `${id}: ${value}`.slice(0, 50); @@ -78,19 +78,19 @@ export class SelectMultipleControlValueAccessor implements ControlValueAccessor let selected: Array = []; if (_.hasOwnProperty('selectedOptions')) { let options: HTMLCollection = _.selectedOptions; - for (var i = 0; i < options.length; i++) { - let opt: any = options.item(i); - let val: any = this._getOptionValue(opt.value); + for (let i = 0; i < options.length; i++) { + const opt: any = options.item(i); + const val: any = this._getOptionValue(opt.value); selected.push(val); } } // Degrade on IE else { let options: HTMLCollection = _.options; - for (var i = 0; i < options.length; i++) { + for (let i = 0; i < options.length; i++) { let opt: HTMLOption = options.item(i); if (opt.selected) { - let val: any = this._getOptionValue(opt.value); + const val: any = this._getOptionValue(opt.value); selected.push(val); } } @@ -121,8 +121,8 @@ export class SelectMultipleControlValueAccessor implements ControlValueAccessor /** @internal */ _getOptionValue(valueString: string): any { - let opt = this._optionMap.get(_extractId(valueString)); - return isPresent(opt) ? opt._value : valueString; + const opt = this._optionMap.get(_extractId(valueString)); + return opt ? opt._value : valueString; } } @@ -146,7 +146,7 @@ export class NgSelectMultipleOption implements OnDestroy { constructor( private _element: ElementRef, private _renderer: Renderer, @Optional() @Host() private _select: SelectMultipleControlValueAccessor) { - if (isPresent(this._select)) { + if (this._select) { this.id = this._select._registerOption(this); } } @@ -161,7 +161,7 @@ export class NgSelectMultipleOption implements OnDestroy { @Input('value') set value(value: any) { - if (isPresent(this._select)) { + if (this._select) { this._value = value; this._setElementValue(_buildValueString(this.id, value)); this._select.writeValue(this._select.value); @@ -181,7 +181,7 @@ export class NgSelectMultipleOption implements OnDestroy { } ngOnDestroy() { - if (isPresent(this._select)) { + if (this._select) { this._select._optionMap.delete(this.id); this._select.writeValue(this._select.value); } diff --git a/modules/@angular/forms/src/directives/validators.ts b/modules/@angular/forms/src/directives/validators.ts index 60a084dd4e..903380a7e4 100644 --- a/modules/@angular/forms/src/directives/validators.ts +++ b/modules/@angular/forms/src/directives/validators.ts @@ -12,8 +12,6 @@ import {isPresent} from '../facade/lang'; import {AbstractControl} from '../model'; import {NG_VALIDATORS, Validators} from '../validators'; - - /** * An interface that can be implemented by classes that can act as validators. * @@ -135,7 +133,7 @@ export class MinLengthValidator implements Validator, } validate(c: AbstractControl): {[key: string]: any} { - return isPresent(this.minlength) ? this._validator(c) : null; + return this.minlength == null ? null : this._validator(c); } registerOnValidatorChange(fn: () => void) { this._onChange = fn; } @@ -215,7 +213,7 @@ export const PATTERN_VALIDATOR: any = { @Directive({ selector: '[pattern][formControlName],[pattern][formControl],[pattern][ngModel]', providers: [PATTERN_VALIDATOR], - host: {'[attr.pattern]': 'pattern? pattern : null'} + host: {'[attr.pattern]': 'pattern ? pattern : null'} }) export class PatternValidator implements Validator, OnChanges { @@ -234,7 +232,7 @@ export class PatternValidator implements Validator, } validate(c: AbstractControl): {[key: string]: any} { - return isPresent(this.pattern) ? this._validator(c) : null; + return this.pattern ? this._validator(c) : null; } registerOnValidatorChange(fn: () => void) { this._onChange = fn; }