UNPKG

angular2

Version:

Angular 2 - a web framework for modern web apps

1 lines 14.8 kB
{"version":3,"sources":["model.js"],"names":[],"mappings":"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","file":"angular2/src/forms/model.es6","sourcesContent":["import {isPresent} from 'angular2/src/facade/lang';\nimport {Observable, EventEmitter, ObservableWrapper} from 'angular2/src/facade/async';\nimport {StringMap, StringMapWrapper, ListWrapper, List} from 'angular2/src/facade/collection';\nimport {Validators} from './validators';\n\n/**\n * Indicates that a Control is valid, i.e. that no errors exist in the input value.\n *\n * @exportedAs angular2/forms\n */\nexport const VALID = \"VALID\";\n\n/**\n * Indicates that a Control is invalid, i.e. that an error exists in the input value.\n *\n * @exportedAs angular2/forms\n */\nexport const INVALID = \"INVALID\";\n\n//interface IControl {\n// get value():any;\n// validator:Function;\n// get status():string;\n// get valid():boolean;\n// get errors():Map;\n// get pristine():boolean;\n// get dirty():boolean;\n// updateValue(value:any){}\n// setParent(parent){}\n//}\n\n/**\n * Omitting from external API doc as this is really an abstract internal concept.\n */\nexport class AbstractControl {\n _value:any;\n _status:string;\n _errors:StringMap;\n _pristine:boolean;\n _parent:any; /* ControlGroup | ControlArray */\n validator:Function;\n\n _valueChanges:EventEmitter;\n\n constructor(validator:Function) {\n this.validator = validator;\n this._pristine = true;\n }\n\n get value():any {\n return this._value;\n }\n\n get status():string {\n return this._status;\n }\n\n get valid():boolean {\n return this._status === VALID;\n }\n\n get errors():StringMap {\n return this._errors;\n }\n\n get pristine():boolean {\n return this._pristine;\n }\n\n get dirty():boolean {\n return ! this.pristine;\n }\n\n get valueChanges():Observable {\n return this._valueChanges;\n }\n\n setParent(parent){\n this._parent = parent;\n }\n\n _updateParent() {\n if (isPresent(this._parent)){\n this._parent._updateValue();\n }\n }\n}\n\n/**\n * Defines a part of a form that cannot be divided into other controls.\n *\n * `Control` is one of the three fundamental building blocks used to define forms in Angular, along with \n * {@link ControlGroup} and {@link ControlArray}.\n *\n * @exportedAs angular2/forms\n */\nexport class Control extends AbstractControl {\n constructor(value:any, validator:Function = Validators.nullValidator) {\n super(validator);\n this._setValueErrorsStatus(value);\n this._valueChanges = new EventEmitter();\n }\n\n updateValue(value:any):void {\n this._setValueErrorsStatus(value);\n this._pristine = false;\n\n ObservableWrapper.callNext(this._valueChanges, this._value);\n\n this._updateParent();\n }\n\n _setValueErrorsStatus(value) {\n this._value = value;\n this._errors = this.validator(this);\n this._status = isPresent(this._errors) ? INVALID : VALID;\n }\n}\n\n/**\n * Defines a part of a form, of fixed length, that can contain other controls.\n *\n * A ControlGroup aggregates the values and errors of each {@link Control} in the group. Thus, if one of the controls \n * in a group is invalid, the entire group is invalid. Similarly, if a control changes its value, the entire group \n * changes as well.\n *\n * `ControlGroup` is one of the three fundamental building blocks used to define forms in Angular, along with \n * {@link Control} and {@link ControlArray}. {@link ControlArray} can also contain other controls, but is of variable \n * length.\n *\n * @exportedAs angular2/forms\n */\nexport class ControlGroup extends AbstractControl {\n controls:StringMap;\n _optionals:StringMap;\n\n constructor(controls:StringMap, optionals:StringMap = null, validator:Function = Validators.group) {\n super(validator);\n this.controls = controls;\n this._optionals = isPresent(optionals) ? optionals : {};\n\n this._valueChanges = new EventEmitter();\n\n this._setParentForControls();\n this._setValueErrorsStatus();\n }\n\n include(controlName:string):void {\n StringMapWrapper.set(this._optionals, controlName, true);\n this._updateValue();\n }\n\n exclude(controlName:string):void {\n StringMapWrapper.set(this._optionals, controlName, false);\n this._updateValue();\n }\n\n contains(controlName:string):boolean {\n var c = StringMapWrapper.contains(this.controls, controlName);\n return c && this._included(controlName);\n }\n\n _setParentForControls() {\n StringMapWrapper.forEach(this.controls, (control, name) => {\n control.setParent(this);\n });\n }\n\n _updateValue() {\n this._setValueErrorsStatus();\n this._pristine = false;\n\n ObservableWrapper.callNext(this._valueChanges, this._value);\n\n this._updateParent();\n }\n\n _setValueErrorsStatus() {\n this._value = this._reduceValue();\n this._errors = this.validator(this);\n this._status = isPresent(this._errors) ? INVALID : VALID;\n }\n\n _reduceValue() {\n return this._reduceChildren({}, (acc, control, name) => {\n acc[name] = control.value;\n return acc;\n });\n }\n\n _reduceChildren(initValue:any, fn:Function) {\n var res = initValue;\n StringMapWrapper.forEach(this.controls, (control, name) => {\n if (this._included(name)) {\n res = fn(res, control, name);\n }\n });\n return res;\n }\n\n _included(controlName:string):boolean {\n var isOptional = StringMapWrapper.contains(this._optionals, controlName);\n return !isOptional || StringMapWrapper.get(this._optionals, controlName);\n }\n}\n\n/**\n * Defines a part of a form, of variable length, that can contain other controls.\n *\n * A `ControlArray` aggregates the values and errors of each {@link Control} in the group. Thus, if one of the controls \n * in a group is invalid, the entire group is invalid. Similarly, if a control changes its value, the entire group \n * changes as well.\n *\n * `ControlArray` is one of the three fundamental building blocks used to define forms in Angular, along with \n * {@link Control} and {@link ControlGroup}. {@link ControlGroup} can also contain other controls, but is of fixed \n * length.\n *\n * @exportedAs angular2/forms\n */\nexport class ControlArray extends AbstractControl {\n controls:List;\n\n constructor(controls:List<AbstractControl>, validator:Function = Validators.array) {\n super(validator);\n this.controls = controls;\n\n this._valueChanges = new EventEmitter();\n\n this._setParentForControls();\n this._setValueErrorsStatus();\n }\n\n at(index:number):AbstractControl {\n return this.controls[index];\n }\n\n push(control:AbstractControl):void {\n ListWrapper.push(this.controls, control);\n control.setParent(this);\n this._updateValue();\n }\n\n insert(index:number, control:AbstractControl):void {\n ListWrapper.insert(this.controls, index, control);\n control.setParent(this);\n this._updateValue();\n }\n\n removeAt(index:number):void {\n ListWrapper.removeAt(this.controls, index);\n this._updateValue();\n }\n\n get length():number {\n return this.controls.length;\n }\n\n _updateValue() {\n this._setValueErrorsStatus();\n this._pristine = false;\n\n ObservableWrapper.callNext(this._valueChanges, this._value);\n\n this._updateParent();\n }\n\n _setParentForControls() {\n ListWrapper.forEach(this.controls, (control) => {\n control.setParent(this);\n });\n }\n\n _setValueErrorsStatus() {\n this._value = ListWrapper.map(this.controls, (c) => c.value);\n this._errors = this.validator(this);\n this._status = isPresent(this._errors) ? INVALID : VALID;\n }\n}\n"]}