text: /**
   * @license Angular v9.1.2
   * (c) 2010-2020 Google LLC. https://angular.io/
   * License: MIT
   */
  !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/common"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@angular/forms",["exports","@angular/core","@angular/common","rxjs","rxjs/operators"],e):e(((t=t||self).ng=t.ng||{},t.ng.forms={}),t.ng.core,t.ng.common,t.rxjs,t.rxjs.operators)}(this,(function(t,e,n,o,r){"use strict";
  /*! *****************************************************************************
      Copyright (c) Microsoft Corporation. All rights reserved.
      Licensed under the Apache License, Version 2.0 (the "License"); you may not use
      this file except in compliance with the License. You may obtain a copy of the
      License at http://www.apache.org/licenses/LICENSE-2.0
  
      THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
      KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
      WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
      MERCHANTABLITY OR NON-INFRINGEMENT.
  
      See the Apache Version 2.0 License for specific language governing permissions
      and limitations under the License.
      ***************************************************************************** */var i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function a(t,e){function n(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var s=function(){return(s=Object.assign||function t(e){for(var n,o=1,r=arguments.length;o<r;o++)for(var i in n=arguments[o])Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i]);return e}).apply(this,arguments)};function l(t,e,n,o){var r,i=arguments.length,a=i<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,n,o);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(a=(i<3?r(a):i>3?r(e,n,a):r(e,n))||a);return i>3&&a&&Object.defineProperty(e,n,a),a}function u(t,e){return function(n,o){e(n,o,t)}}function c(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}function p(t){var e="function"==typeof Symbol&&Symbol.iterator,n=e&&t[e],o=0;if(n)return n.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function h(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var o,r,i=n.call(t),a=[];try{for(;(void 0===e||e-- >0)&&!(o=i.next()).done;)a.push(o.value)}catch(t){r={error:t}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}return a}
  /**
       * @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
       */
  var f=new e.InjectionToken("NgValueAccessor"),d={provide:f,useExisting:e.forwardRef((function(){return m})),multi:!0},m=function(){function t(t,e){this._renderer=t,this._elementRef=e,this.onChange=function(t){},this.onTouched=function(){}}return t.prototype.writeValue=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"checked",t)},t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)},l([e.Directive({selector:"input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]",host:{"(change)":"onChange($event.target.checked)","(blur)":"onTouched()"},providers:[d]}),c("design:paramtypes",[e.Renderer2,e.ElementRef])],t)}(),g={provide:f,useExisting:e.forwardRef((function(){return _})),multi:!0},y=new e.InjectionToken("CompositionEventMode"),_=function(){function t(t,e,o){this._renderer=t,this._elementRef=e,this._compositionMode=o,this.onChange=function(t){},this.onTouched=function(){},this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function r(){var t=n.ɵgetDOM()?n.ɵgetDOM().getUserAgent():"";return/android (\d+)/.test(t.toLowerCase())}())}return t.prototype.writeValue=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"value",null==t?"":t)},t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)},t.prototype._handleInput=function(t){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(t)},t.prototype._compositionStart=function(){this._composing=!0},t.prototype._compositionEnd=function(t){this._composing=!1,this._compositionMode&&this.onChange(t)},l([e.Directive({selector:"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]",host:{"(input)":"$any(this)._handleInput($event.target.value)","(blur)":"onTouched()","(compositionstart)":"$any(this)._compositionStart()","(compositionend)":"$any(this)._compositionEnd($event.target.value)"},providers:[g]}),u(2,e.Optional()),u(2,e.Inject(y)),c("design:paramtypes",[e.Renderer2,e.ElementRef,Boolean])],t)}(),v=function(){function t(){}return Object.defineProperty(t.prototype,"value",{get:function(){return this.control?this.control.value:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"valid",{get:function(){return this.control?this.control.valid:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"invalid",{get:function(){return this.control?this.control.invalid:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pending",{get:function(){return this.control?this.control.pending:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"disabled",{get:function(){return this.control?this.control.disabled:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"enabled",{get:function(){return this.control?this.control.enabled:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"errors",{get:function(){return this.control?this.control.errors:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pristine",{get:function(){return this.control?this.control.pristine:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dirty",{get:function(){return this.control?this.control.dirty:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"touched",{get:function(){return this.control?this.control.touched:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"status",{get:function(){return this.control?this.control.status:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"untouched",{get:function(){return this.control?this.control.untouched:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"statusChanges",{get:function(){return this.control?this.control.statusChanges:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"valueChanges",{get:function(){return this.control?this.control.valueChanges:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"path",{get:function(){return null},enumerable:!0,configurable:!0}),t.prototype.reset=function(t){void 0===t&&(t=void 0),this.control&&this.control.reset(t)},t.prototype.hasError=function(t,e){return!!this.control&&this.control.hasError(t,e)},t.prototype.getError=function(t,e){return this.control?this.control.getError(t,e):null},t}(),b=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return a(e,t),Object.defineProperty(e.prototype,"formDirective",{get:function(){return null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{get:function(){return null},enumerable:!0,configurable:!0}),e}(v);
  /**
       * @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
       */
  /**
       * @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
       */
  function C(){throw new Error("unimplemented")}var O=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._parent=null,e.name=null,e.valueAccessor=null,e._rawValidators=[],e._rawAsyncValidators=[],e}return a(e,t),Object.defineProperty(e.prototype,"validator",{get:function(){return C()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"asyncValidator",{get:function(){return C()},enumerable:!0,configurable:!0}),e}(v),V=function(){function t(t){this._cd=t}return Object.defineProperty(t.prototype,"ngClassUntouched",{get:function(){return!!this._cd.control&&this._cd.control.untouched},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassTouched",{get:function(){return!!this._cd.control&&this._cd.control.touched},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassPristine",{get:function(){return!!this._cd.control&&this._cd.control.pristine},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassDirty",{get:function(){return!!this._cd.control&&this._cd.control.dirty},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassValid",{get:function(){return!!this._cd.control&&this._cd.control.valid},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassInvalid",{get:function(){return!!this._cd.control&&this._cd.control.invalid},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassPending",{get:function(){return!!this._cd.control&&this._cd.control.pending},enumerable:!0,configurable:!0}),t}(),E={"[class.ng-untouched]":"ngClassUntouched","[class.ng-touched]":"ngClassTouched","[class.ng-pristine]":"ngClassPristine","[class.ng-dirty]":"ngClassDirty","[class.ng-valid]":"ngClassValid","[class.ng-invalid]":"ngClassInvalid","[class.ng-pending]":"ngClassPending"},w=function(t){function n(e){return t.call(this,e)||this}return a(n,t),l([e.Directive({selector:"[formControlName],[ngModel],[formControl]",host:E}),u(0,e.Self()),c("design:paramtypes",[O])],n)}(V),A=function(t){function n(e){return t.call(this,e)||this}return a(n,t),l([e.Directive({selector:"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]",host:E}),u(0,e.Self()),c("design:paramtypes",[b])],n)}(V);
  /**
       * @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
       */
  /**
       * @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
       */
  function P(t){return null==t||0===t.length}var j=new e.InjectionToken("NgValidators"),S=new e.InjectionToken("NgAsyncValidators"),D=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,M=function(){function t(){}return t.min=function(t){return function(e){if(P(e.value)||P(t))return null;var n=parseFloat(e.value);return!isNaN(n)&&n<t?{min:{min:t,actual:e.value}}:null}},t.max=function(t){return function(e){if(P(e.value)||P(t))return null;var n=parseFloat(e.value);return!isNaN(n)&&n>t?{max:{max:t,actual:e.value}}:null}},t.required=function(t){return P(t.value)?{required:!0}:null},t.requiredTrue=function(t){return!0===t.value?null:{required:!0}},t.email=function(t){return P(t.value)||D.test(t.value)?null:{email:!0}},t.minLength=function(t){return function(e){if(P(e.value))return null;var n=e.value?e.value.length:0;return n<t?{minlength:{requiredLength:t,actualLength:n}}:null}},t.maxLength=function(t){return function(e){var n=e.value?e.value.length:0;return n>t?{maxlength:{requiredLength:t,actualLength:n}}:null}},t.pattern=function(e){return e?("string"==typeof e?(o="","^"!==e.charAt(0)&&(o+="^"),o+=e,"$"!==e.charAt(e.length-1)&&(o+="$"),n=new RegExp(o)):(o=e.toString(),n=e),function(t){if(P(t.value))return null;var e=t.value;return n.test(e)?null:{pattern:{requiredPattern:o,actualValue:e}}}):t.nullValidator;var n,o},t.nullValidator=function(t){return null},t.compose=function(t){if(!t)return null;var e=t.filter(k);return 0==e.length?null:function(t){return N(function n(t,e){return e.map((function(e){return e(t)}))}(t,e))}},t.composeAsync=function(t){if(!t)return null;var e=t.filter(k);return 0==e.length?null:function(t){var n=function i(t,e){return e.map((function(e){return e(t)}))}(t,e).map(x);return o.forkJoin(n).pipe(r.map(N))}},t}();function k(t){return null!=t}function x(t){var n=e.ɵisPromise(t)?o.from(t):t;if(!e.ɵisObservable(n))throw new Error("Expected validator to return Promise or Observable.");return n}function N(t){var e={};return t.forEach((function(t){e=null!=t?s(s({},e),t):e})),0===Object.keys(e).length?null:e}
  /**
       * @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
       */function I(t){return t.validate?function(e){return t.validate(e)}:t}function F(t){return t.validate?function(e){return t.validate(e)}:t}
  /**
       * @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
       */var T={provide:f,useExisting:e.forwardRef((function(){return R})),multi:!0},R=function(){function t(t,e){this._renderer=t,this._elementRef=e,this.onChange=function(t){},this.onTouched=function(){}}return t.prototype.writeValue=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"value",null==t?"":t)},t.prototype.registerOnChange=function(t){this.onChange=function(e){t(""==e?null:parseFloat(e))}},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)},l([e.Directive({selector:"input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]",host:{"(change)":"onChange($event.target.value)","(input)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[T]}),c("design:paramtypes",[e.Renderer2,e.ElementRef])],t)}(),G={provide:f,useExisting:e.forwardRef((function(){return q})),multi:!0},U=function(){function t(){this._accessors=[]}return t.prototype.add=function(t,e){this._accessors.push([t,e])},t.prototype.remove=function(t){for(var e=this._accessors.length-1;e>=0;--e)if(this._accessors[e][1]===t)return void this._accessors.splice(e,1)},t.prototype.select=function(t){var e=this;this._accessors.forEach((function(n){e._isSameGroup(n,t)&&n[1]!==t&&n[1].fireUncheck(t.value)}))},t.prototype._isSameGroup=function(t,e){return!!t[0].control&&t[0]._parent===e._control._parent&&t[1].name===e.name},l([e.Injectable()],t)}(),q=function(){function t(t,e,n,o){this._renderer=t,this._elementRef=e,this._registry=n,this._injector=o,this.onChange=function(){},this.onTouched=function(){}}return t.prototype.ngOnInit=function(){this._control=this._injector.get(O),this._checkName(),this._registry.add(this._control,this)},t.prototype.ngOnDestroy=function(){this._registry.remove(this)},t.prototype.writeValue=function(t){this._state=t===this.value,this._renderer.setProperty(this._elementRef.nativeElement,"checked",this._state)},t.prototype.registerOnChange=function(t){var e=this;this._fn=t,this.onChange=function(){t(e.value),e._registry.select(e)}},t.prototype.fireUncheck=function(t){this.writeValue(t)},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)},t.prototype._checkName=function(){this.name&&this.formControlName&&this.name!==this.formControlName&&this._throwNameError(),!this.name&&this.formControlName&&(this.name=this.formControlName)},t.prototype._throwNameError=function(){throw new Error('\n      If you define both a name and a formControlName attribute on your radio button, their values\n      must match. Ex: <input type="radio" formControlName="food" name="food">\n    ')},l([e.Input(),c("design:type",String)],t.prototype,"name",void 0),l([e.Input(),c("design:type",String)],t.prototype,"formControlName",void 0),l([e.Input(),c("design:type",Object)],t.prototype,"value",void 0),l([e.Directive({selector:"input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]",host:{"(change)":"onChange()","(blur)":"onTouched()"},providers:[G]}),c("design:paramtypes",[e.Renderer2,e.ElementRef,U,e.Injector])],t)}(),W={provide:f,useExisting:e.forwardRef((function(){return L})),multi:!0},L=function(){function t(t,e){this._renderer=t,this._elementRef=e,this.onChange=function(t){},this.onTouched=function(){}}return t.prototype.writeValue=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"value",parseFloat(t))},t.prototype.registerOnChange=function(t){this.onChange=function(e){t(""==e?null:parseFloat(e))}},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)},l([e.Directive({selector:"input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]",host:{"(change)":"onChange($event.target.value)","(input)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[W]}),c("design:paramtypes",[e.Renderer2,e.ElementRef])],t)}(),$='\n    <div [formGroup]="myGroup">\n      <input formControlName="firstName">\n    </div>\n\n    In your class:\n\n    this.myGroup = new FormGroup({\n       firstName: new FormControl()\n    });',B='\n    <div [formGroup]="myGroup">\n       <div formGroupName="person">\n          <input formControlName="firstName">\n       </div>\n    </div>\n\n    In your class:\n\n    this.myGroup = new FormGroup({\n       person: new FormGroup({ firstName: new FormControl() })\n    });',H='\n    <form>\n       <div ngModelGroup="person">\n          <input [(ngModel)]="person.name" name="firstName">\n       </div>\n    </form>',z=function(){function t(){}return t.controlParentException=function(){throw new Error("formControlName must be used with a parent formGroup directive.  You'll want to add a formGroup\n       directive and pass it an existing FormGroup instance (you can create one in your class).\n\n      Example:\n\n      "+$)},t.ngModelGroupException=function(){throw new Error('formControlName cannot be used with an ngModelGroup parent. It is only compatible with parents\n       that also have a "form" prefix: formGroupName, formArrayName, or formGroup.\n\n       Option 1:  Update the parent to be formGroupName (reactive form strategy)\n\n        '+B+"\n\n        Option 2: Use ngModel instead of formControlName (template-driven strategy)\n\n        "+H)},t.missingFormException=function(){throw new Error("formGroup expects a FormGroup instance. Please pass one in.\n\n       Example:\n\n       "+$)},t.groupParentException=function(){throw new Error("formGroupName must be used with a parent formGroup directive.  You'll want to add a formGroup\n      directive and pass it an existing FormGroup instance (you can create one in your class).\n\n      Example:\n\n      "+B)},t.arrayParentException=function(){throw new Error('formArrayName must be used with a parent formGroup directive.  You\'ll want to add a formGroup\n       directive and pass it an existing FormGroup instance (you can create one in your class).\n\n        Example:\n\n        \n    <div [formGroup]="myGroup">\n      <div formArrayName="cities">\n        <div *ngFor="let city of cityArray.controls; index as i">\n          <input [formControlName]="i">\n        </div>\n      </div>\n    </div>\n\n    In your class:\n\n    this.cityArray = new FormArray([new FormControl(\'SF\')]);\n    this.myGroup = new FormGroup({\n      cities: this.cityArray\n    });')},t.disabledAttrWarning=function(){console.warn("\n      It looks like you're using the disabled attribute with a reactive form directive. If you set disabled to true\n      when you set up this control in your component class, the disabled attribute will actually be set in the DOM for\n      you. We recommend using this approach to avoid 'changed after checked' errors.\n       \n      Example: \n      form = new FormGroup({\n        first: new FormControl({value: 'Nancy', disabled: true}, Validators.required),\n        last: new FormControl('Drew', Validators.required)\n      });\n    ")},t.ngModelWarning=function(t){console.warn("\n    It looks like you're using ngModel on the same form field as "+t+". \n    Support for using the ngModel input property and ngModelChange event with \n    reactive form directives has been deprecated in Angular v6 and will be removed \n    in Angular v7.\n    \n    For more information on this, see our API docs here:\n    https://angular.io/api/forms/"+("formControl"===t?"FormControlDirective":"FormControlName")+"#use-with-ngmodel\n    ")},t}(),Z={provide:f,useExisting:e.forwardRef((function(){return J})),multi:!0};function Y(t,e){return null==t?""+e:(e&&"object"==typeof e&&(e="Object"),(t+": "+e).slice(0,50))}var J=function(){function t(t,n){this._renderer=t,this._elementRef=n,this._optionMap=new Map,this._idCounter=0,this.onChange=function(t){},this.onTouched=function(){},this._compareWith=e.ɵlooseIdentical}return Object.defineProperty(t.prototype,"compareWith",{set:function(t){if("function"!=typeof t)throw new Error("compareWith must be a function, but received "+JSON.stringify(t));this._compareWith=t},enumerable:!0,configurable:!0}),t.prototype.writeValue=function(t){this.value=t;var e=this._getOptionId(t);null==e&&this._renderer.setProperty(this._elementRef.nativeElement,"selectedIndex",-1);var n=Y(e,t);this._renderer.setProperty(this._elementRef.nativeElement,"value",n)},t.prototype.registerOnChange=function(t){var e=this;this.onChange=function(n){e.value=e._getOptionValue(n),t(e.value)}},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)},t.prototype._registerOption=function(){return(this._idCounter++).toString()},t.prototype._getOptionId=function(t){var e,n;try{for(var o=p(Array.from(this._optionMap.keys())),r=o.next();!r.done;r=o.next()){var i=r.value;if(this._compareWith(this._optionMap.get(i),t))return i}}catch(t){e={error:t}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(e)throw e.error}}return null},t.prototype._getOptionValue=function(t){var e=function n(t){return t.split(":")[0]}(t);return this._optionMap.has(e)?this._optionMap.get(e):t},l([e.Input(),c("design:type",Function),c("design:paramtypes",[Function])],t.prototype,"compareWith",null),l([e.Directive({selector:"select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]",host:{"(change)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[Z]}),c("design:paramtypes",[e.Renderer2,e.ElementRef])],t)}(),K=function(){function t(t,e,n){this._element=t,this._renderer=e,this._select=n,this._select&&(this.id=this._select._registerOption())}return Object.defineProperty(t.prototype,"ngValue",{set:function(t){null!=this._select&&(this._select._optionMap.set(this.id,t),this._setElementValue(Y(this.id,t)),this._select.writeValue(this._select.value))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"value",{set:function(t){this._setElementValue(t),this._select&&this._select.writeValue(this._select.value)},enumerable:!0,configurable:!0}),t.prototype._setElementValue=function(t){this._renderer.setProperty(this._element.nativeElement,"value",t)},t.prototype.ngOnDestroy=function(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))},l([e.Input("ngValue"),c("design:type",Object),c("design:paramtypes",[Object])],t.prototype,"ngValue",null),l([e.Input("value"),c("design:type",Object),c("design:paramtypes",[Object])],t.prototype,"value",null),l([e.Directive({selector:"option"}),u(2,e.Optional()),u(2,e.Host()),c("design:paramtypes",[e.ElementRef,e.Renderer2,J])],t)}(),Q={provide:f,useExisting:e.forwardRef((function(){return tt})),multi:!0};function X(t,e){return null==t?""+e:("string"==typeof e&&(e="'"+e+"'"),e&&"object"==typeof e&&(e="Object"),(t+": "+e).slice(0,50))}var tt=function(){function t(t,n){this._renderer=t,this._elementRef=n,this._optionMap=new Map,this._idCounter=0,this.onChange=function(t){},this.onTouched=function(){},this._compareWith=e.ɵlooseIdentical}return Object.defineProperty(t.prototype,"compareWith",{set:function(t){if("function"!=typeof t)throw new Error("compareWith must be a function, but received "+JSON.stringify(t));this._compareWith=t},enumerable:!0,configurable:!0}),t.prototype.writeValue=function(t){var e,n=this;if(this.value=t,Array.isArray(t)){var o=t.map((function(t){return n._getOptionId(t)}));e=function(t,e){t._setSelected(o.indexOf(e.toString())>-1)}}else e=function(t,e){t._setSelected(!1)};this._optionMap.forEach(e)},t.prototype.registerOnChange=function(t){var e=this;this.onChange=function(n){var o=[];if(n.hasOwnProperty("selectedOptions"))for(var r=n.selectedOptions,i=0;i<r.length;i++){var a=r.item(i),s=e._getOptionValue(a.value);o.push(s)}else for(r=n.options,i=0;i<r.length;i++)(a=r.item(i)).selected&&(s=e._getOptionValue(a.value),o.push(s));e.value=o,t(o)}},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)},t.prototype._registerOption=function(t){var e=(this._idCounter++).toString();return this._optionMap.set(e,t),e},t.prototype._getOptionId=function(t){var e,n;try{for(var o=p(Array.from(this._optionMap.keys())),r=o.next();!r.done;r=o.next()){var i=r.value;if(this._compareWith(this._optionMap.get(i)._value,t))return i}}catch(t){e={error:t}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(e)throw e.error}}return null},t.prototype._getOptionValue=function(t){var e=function n(t){return t.split(":")[0]}(t);return this._optionMap.has(e)?this._optionMap.get(e)._value:t},l([e.Input(),c("design:type",Function),c("design:paramtypes",[Function])],t.prototype,"compareWith",null),l([e.Directive({selector:"select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]",host:{"(change)":"onChange($event.target)","(blur)":"onTouched()"},providers:[Q]}),c("design:paramtypes",[e.Renderer2,e.ElementRef])],t)}(),et=function(){function t(t,e,n){this._element=t,this._renderer=e,this._select=n,this._select&&(this.id=this._select._registerOption(this))}return Object.defineProperty(t.prototype,"ngValue",{set:function(t){null!=this._select&&(this._value=t,this._setElementValue(X(this.id,t)),this._select.writeValue(this._select.value))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"value",{set:function(t){this._select?(this._value=t,this._setElementValue(X(this.id,t)),this._select.writeValue(this._select.value)):this._setElementValue(t)},enumerable:!0,configurable:!0}),t.prototype._setElementValue=function(t){this._renderer.setProperty(this._element.nativeElement,"value",t)},t.prototype._setSelected=function(t){this._renderer.setProperty(this._element.nativeElement,"selected",t)},t.prototype.ngOnDestroy=function(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))},l([e.Input("ngValue"),c("design:type",Object),c("design:paramtypes",[Object])],t.prototype,"ngValue",null),l([e.Input("value"),c("design:type",Object),c("design:paramtypes",[Object])],t.prototype,"value",null),l([e.Directive({selector:"option"}),u(2,e.Optional()),u(2,e.Host()),c("design:paramtypes",[e.ElementRef,e.Renderer2,tt])],t)}();
  /**
       * @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
       */
  function nt(t,e){return function n(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(h(arguments[e]));return t}(e.path,[t])}function ot(t,e){t||st(e,"Cannot find control with"),e.valueAccessor||st(e,"No value accessor for form control with"),t.validator=M.compose([t.validator,e.validator]),t.asyncValidator=M.composeAsync([t.asyncValidator,e.asyncValidator]),e.valueAccessor.writeValue(t.value),function n(t,e){e.valueAccessor.registerOnChange((function(n){t._pendingValue=n,t._pendingChange=!0,t._pendingDirty=!0,"change"===t.updateOn&&rt(t,e)}))}(t,e),function o(t,e){t.registerOnChange((function(t,n){e.valueAccessor.writeValue(t),n&&e.viewToModelUpdate(t)}))}(t,e),function r(t,e){e.valueAccessor.registerOnTouched((function(){t._pendingTouched=!0,"blur"===t.updateOn&&t._pendingChange&&rt(t,e),"submit"!==t.updateOn&&t.markAsTouched()}))}(t,e),e.valueAccessor.setDisabledState&&t.registerOnDisabledChange((function(t){e.valueAccessor.setDisabledState(t)})),e._rawValidators.forEach((function(e){e.registerOnValidatorChange&&e.registerOnValidatorChange((function(){return t.updateValueAndValidity()}))})),e._rawAsyncValidators.forEach((function(e){e.registerOnValidatorChange&&e.registerOnValidatorChange((function(){return t.updateValueAndValidity()}))}))}function rt(t,e){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),e.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function it(t,e){null==t&&st(e,"Cannot find control with"),t.validator=M.compose([t.validator,e.validator]),t.asyncValidator=M.composeAsync([t.asyncValidator,e.asyncValidator])}function at(t){return st(t,"There is no FormControl instance attached to form control element with")}function st(t,e){var n;throw n=t.path.length>1?"path: '"+t.path.join(" -> ")+"'":t.path[0]?"name: '"+t.path+"'":"unspecified name attribute",new Error(e+" "+n)}function lt(t){return null!=t?M.compose(t.map(I)):null}function ut(t){return null!=t?M.composeAsync(t.map(F)):null}function ct(t,n){if(!t.hasOwnProperty("model"))return!1;var o=t.model;return!!o.isFirstChange()||!e.ɵlooseIdentical(n,o.currentValue)}var pt=[m,L,R,J,tt,q];function ht(t,e){t._syncPendingControls(),e.forEach((function(t){var e=t.control;"submit"===e.updateOn&&e._pendingChange&&(t.viewToModelUpdate(e._pendingValue),e._pendingChange=!1)}))}function ft(t,e){if(!e)return null;Array.isArray(e)||st(t,"Value accessor was not provided as an array for form control with");var n=void 0,o=void 0,r=void 0;return e.forEach((function(e){e.constructor===_?n=e:function i(t){return pt.some((function(e){return t.constructor===e}))}(e)?(o&&st(t,"More than one built-in value accessor matches form control with"),o=e):(r&&st(t,"More than one custom value accessor matches form control with"),r=e)})),r||o||n||(st(t,"No valid value accessor for form control with"),null)}function dt(t,e){var n=t.indexOf(e);n>-1&&t.splice(n,1)}function mt(t,n,o,r){e.isDevMode()&&"never"!==r&&((null!==r&&"once"!==r||n._ngModelWarningSentOnce)&&("always"!==r||o._ngModelWarningSent)||(z.ngModelWarning(t),n._ngModelWarningSentOnce=!0,o._ngModelWarningSent=!0))}
  /**
       * @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
       */function gt(t){var e=_t(t)?t.validators:t;return Array.isArray(e)?lt(e):e||null}function yt(t,e){var n=_t(e)?e.asyncValidators:t;return Array.isArray(n)?ut(n):n||null}function _t(t){return null!=t&&!Array.isArray(t)&&"object"==typeof t}var vt=function(){function t(t,e){this.validator=t,this.asyncValidator=e,this._onCollectionChange=function(){},this.pristine=!0,this.touched=!1,this._onDisabledChange=[]}return Object.defineProperty(t.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"valid",{get:function(){return"VALID"===this.status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"invalid",{get:function(){return"INVALID"===this.status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pending",{get:function(){return"PENDING"==this.status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"disabled",{get:function(){return"DISABLED"===this.status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"enabled",{get:function(){return"DISABLED"!==this.status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dirty",{get:function(){return!this.pristine},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"untouched",{get:function(){return!this.touched},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"updateOn",{get:function(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"},enumerable:!0,configurable:!0}),t.prototype.setValidators=function(t){this.validator=gt(t)},t.prototype.setAsyncValidators=function(t){this.asyncValidator=yt(t)},t.prototype.clearValidators=function(){this.validator=null},t.prototype.clearAsyncValidators=function(){this.asyncValidator=null},t.prototype.markAsTouched=function(t){void 0===t&&(t={}),this.touched=!0,this._parent&&!t.onlySelf&&this._parent.markAsTouched(t)},t.prototype.markAllAsTouched=function(){this.markAsTouched({onlySelf:!0}),this._forEachChild((function(t){return t.markAllAsTouched()}))},t.prototype.markAsUntouched=function(t){void 0===t&&(t={}),this.touched=!1,this._pendingTouched=!1,this._forEachChild((function(t){t.markAsUntouched({onlySelf:!0})})),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)},t.prototype.markAsDirty=function(t){void 0===t&&(t={}),this.pristine=!1,this._parent&&!t.onlySelf&&this._parent.markAsDirty(t)},t.prototype.markAsPristine=function(t){void 0===t&&(t={}),this.pristine=!0,this._pendingDirty=!1,this._forEachChild((function(t){t.markAsPristine({onlySelf:!0})})),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)},t.prototype.markAsPending=function(t){void 0===t&&(t={}),this.status="PENDING",!1!==t.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!t.onlySelf&&this._parent.markAsPending(t)},t.prototype.disable=function(t){void 0===t&&(t={});var e=this._parentMarkedDirty(t.onlySelf);this.status="DISABLED",this.errors=null,this._forEachChild((function(e){e.disable(s(s({},t),{onlySelf:!0}))})),this._updateValue(),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(s(s({},t),{skipPristineCheck:e})),this._onDisabledChange.forEach((function(t){return t(!0)}))},t.prototype.enable=function(t){void 0===t&&(t={});var e=this._parentMarkedDirty(t.onlySelf);this.status="VALID",this._forEachChild((function(e){e.enable(s(s({},t),{onlySelf:!0}))})),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors(s(s({},t),{skipPristineCheck:e})),this._onDisabledChange.forEach((function(t){return t(!1)}))},t.prototype._updateAncestors=function(t){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())},t.prototype.setParent=function(t){this._parent=t},t.prototype.updateValueAndValidity=function(t){void 0===t&&(t={}),this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),"VALID"!==this.status&&"PENDING"!==this.status||this._runAsyncValidator(t.emitEvent)),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(t)},t.prototype._updateTreeValidity=function(t){void 0===t&&(t={emitEvent:!0}),this._forEachChild((function(e){return e._updateTreeValidity(t)})),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})},t.prototype._setInitialStatus=function(){this.status=this._allControlsDisabled()?"DISABLED":"VALID"},t.prototype._runValidator=function(){return this.validator?this.validator(this):null},t.prototype._runAsyncValidator=function(t){var e=this;if(this.asyncValidator){this.status="PENDING";var n=x(this.asyncValidator(this));this._asyncValidationSubscription=n.subscribe((function(n){return e.setErrors(n,{emitEvent:t})}))}},t.prototype._cancelExistingSubscription=function(){this._asyncValidationSubscription&&this._asyncValidationSubscription.unsubscribe()},t.prototype.setErrors=function(t,e){void 0===e&&(e={}),this.errors=t,this._updateControlsErrors(!1!==e.emitEvent)},t.prototype.get=function(t){return function e(t,n,o){if(null==n)return null;if(Array.isArray(n)||(n=n.split(o)),Array.isArray(n)&&0===n.length)return null;var r=t;return n.forEach((function(t){r=r instanceof Ct?r.controls.hasOwnProperty(t)?r.controls[t]:null:r instanceof Ot&&r.at(t)||null})),r}(this,t,".")},t.prototype.getError=function(t,e){var n=e?this.get(e):this;return n&&n.errors?n.errors[t]:null},t.prototype.hasError=function(t,e){return!!this.getError(t,e)},Object.defineProperty(t.prototype,"root",{get:function(){for(var t=this;t._parent;)t=t._parent;return t},enumerable:!0,configurable:!0}),t.prototype._updateControlsErrors=function(t){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(t)},t.prototype._initObservables=function(){this.valueChanges=new e.EventEmitter,this.statusChanges=new e.EventEmitter},t.prototype._calculateStatus=function(){return this._allControlsDisabled()?"DISABLED":this.errors?"INVALID":this._anyControlsHaveStatus("PENDING")?"PENDING":this._anyControlsHaveStatus("INVALID")?"INVALID":"VALID"},t.prototype._anyControlsHaveStatus=function(t){return this._anyControls((function(e){return e.status===t}))},t.prototype._anyControlsDirty=function(){return this._anyControls((function(t){return t.dirty}))},t.prototype._anyControlsTouched=function(){return this._anyControls((function(t){return t.touched}))},t.prototype._updatePristine=function(t){void 0===t&&(t={}),this.pristine=!this._anyControlsDirty(),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)},t.prototype._updateTouched=function(t){void 0===t&&(t={}),this.touched=this._anyControlsTouched(),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)},t.prototype._isBoxedValue=function(t){return"object"==typeof t&&null!==t&&2===Object.keys(t).length&&"value"in t&&"disabled"in t},t.prototype._registerOnCollectionChange=function(t){this._onCollectionChange=t},t.prototype._setUpdateStrategy=function(t){_t(t)&&null!=t.updateOn&&(this._updateOn=t.updateOn)},t.prototype._parentMarkedDirty=function(t){return!t&&this._parent&&this._parent.dirty&&!this._parent._anyControlsDirty()},t}(),bt=function(t){function e(e,n,o){void 0===e&&(e=null);var r=t.call(this,gt(n),yt(o,n))||this;return r._onChange=[],r._applyFormState(e),r._setUpdateStrategy(n),r.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),r._initObservables(),r}return a(e,t),e.prototype.setValue=function(t,e){var n=this;void 0===e&&(e={}),this.value=this._pendingValue=t,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach((function(t){return t(n.value,!1!==e.emitViewToModelChange)})),this.updateValueAndValidity(e)},e.prototype.patchValue=function(t,e){void 0===e&&(e={}),this.setValue(t,e)},e.prototype.reset=function(t,e){void 0===t&&(t=null),void 0===e&&(e={}),this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1},e.prototype._updateValue=function(){},e.prototype._anyControls=function(t){return!1},e.prototype._allControlsDisabled=function(){return this.disabled},e.prototype.registerOnChange=function(t){this._onChange.push(t)},e.prototype._clearChangeFns=function(){this._onChange=[],this._onDisabledChange=[],this._onCollectionChange=function(){}},e.prototype.registerOnDisabledChange=function(t){this._onDisabledChange.push(t)},e.prototype._forEachChild=function(t){},e.prototype._syncPendingControls=function(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))},e.prototype._applyFormState=function(t){this._isBoxedValue(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t},e}(vt),Ct=function(t){function e(e,n,o){var r=t.call(this,gt(n),yt(o,n))||this;return r.controls=e,r._initObservables(),r._setUpdateStrategy(n),r._setUpControls(),r.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),r}return a(e,t),e.prototype.registerControl=function(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)},e.prototype.addControl=function(t,e){this.registerControl(t,e),this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.removeControl=function(t){this.controls[t]&&this.controls[t]._registerOnCollectionChange((function(){})),delete this.controls[t],this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.setControl=function(t,e){this.controls[t]&&this.controls[t]._registerOnCollectionChange((function(){})),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.contains=function(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled},e.prototype.setValue=function(t,e){var n=this;void 0===e&&(e={}),this._checkAllValuesPresent(t),Object.keys(t).forEach((function(o){n._throwIfControlMissing(o),n.controls[o].setValue(t[o],{onlySelf:!0,emitEvent:e.emitEvent})})),this.updateValueAndValidity(e)},e.prototype.patchValue=function(t,e){var n=this;void 0===e&&(e={}),Object.keys(t).forEach((function(o){n.controls[o]&&n.controls[o].patchValue(t[o],{onlySelf:!0,emitEvent:e.emitEvent})})),this.updateValueAndValidity(e)},e.prototype.reset=function(t,e){void 0===t&&(t={}),void 0===e&&(e={}),this._forEachChild((function(n,o){n.reset(t[o],{onlySelf:!0,emitEvent:e.emitEvent})})),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)},e.prototype.getRawValue=function(){return this._reduceChildren({},(function(t,e,n){return t[n]=e instanceof bt?e.value:e.getRawValue(),t}))},e.prototype._syncPendingControls=function(){var t=this._reduceChildren(!1,(function(t,e){return!!e._syncPendingControls()||t}));return t&&this.updateValueAndValidity({onlySelf:!0}),t},e.prototype._throwIfControlMissing=function(t){if(!Object.keys(this.controls).length)throw new Error("\n        There are no form controls registered with this group yet.  If you're using ngModel,\n        you may want to check next tick (e.g. use setTimeout).\n      ");if(!this.controls[t])throw new Error("Cannot find form control with name: "+t+".")},e.prototype._forEachChild=function(t){var e=this;Object.keys(this.controls).forEach((function(n){return t(e.controls[n],n)}))},e.prototype._setUpControls=function(){var t=this;this._forEachChild((function(e){e.setParent(t),e._registerOnCollectionChange(t._onCollectionChange)}))},e.prototype._updateValue=function(){this.value=this._reduceValue()},e.prototype._anyControls=function(t){var e=this,n=!1;return this._forEachChild((function(o,r){n=n||e.contains(r)&&t(o)})),n},e.prototype._reduceValue=function(){var t=this;return this._reduceChildren({},(function(e,n,o){return(n.enabled||t.disabled)&&(e[o]=n.value),e}))},e.prototype._reduceChildren=function(t,e){var n=t;return this._forEachChild((function(t,o){n=e(n,t,o)})),n},e.prototype._allControlsDisabled=function(){var t,e;try{for(var n=p(Object.keys(this.controls)),o=n.next();!o.done;o=n.next())if(this.controls[o.value].enabled)return!1}catch(e){t={error:e}}finally{try{o&&!o.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}return Object.keys(this.controls).length>0||this.disabled},e.prototype._checkAllValuesPresent=function(t){this._forEachChild((function(e,n){if(void 0===t[n])throw new Error("Must supply a value for form control with name: '"+n+"'.")}))},e}(vt),Ot=function(t){function e(e,n,o){var r=t.call(this,gt(n),yt(o,n))||this;return r.controls=e,r._initObservables(),r._setUpdateStrategy(n),r._setUpControls(),r.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),r}return a(e,t),e.prototype.at=function(t){return this.controls[t]},e.prototype.push=function(t){this.controls.push(t),this._registerControl(t),this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.insert=function(t,e){this.controls.splice(t,0,e),this._registerControl(e),this.updateValueAndValidity()},e.prototype.removeAt=function(t){this.controls[t]&&this.controls[t]._registerOnCollectionChange((function(){})),this.controls.splice(t,1),this.updateValueAndValidity()},e.prototype.setControl=function(t,e){this.controls[t]&&this.controls[t]._registerOnCollectionChange((function(){})),this.controls.splice(t,1),e&&(this.controls.splice(t,0,e),this._registerControl(e)),this.updateValueAndValidity(),this._onCollectionChange()},Object.defineProperty(e.prototype,"length",{get:function(){return this.controls.length},enumerable:!0,configurable:!0}),e.prototype.setValue=function(t,e){var n=this;void 0===e&&(e={}),this._checkAllValuesPresent(t),t.forEach((function(t,o){n._throwIfControlMissing(o),n.at(o).setValue(t,{onlySelf:!0,emitEvent:e.emitEvent})})),this.updateValueAndValidity(e)},e.prototype.patchValue=function(t,e){var n=this;void 0===e&&(e={}),t.forEach((function(t,o){n.at(o)&&n.at(o).patchValue(t,{onlySelf:!0,emitEvent:e.emitEvent})})),this.updateValueAndValidity(e)},e.prototype.reset=function(t,e){void 0===t&&(t=[]),void 0===e&&(e={}),this._forEachChild((function(n,o){n.reset(t[o],{onlySelf:!0,emitEvent:e.emitEvent})})),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)},e.prototype.getRawValue=function(){return this.controls.map((function(t){return t instanceof bt?t.value:t.getRawValue()}))},e.prototype.clear=function(){this.controls.length<1||(this._forEachChild((function(t){return t._registerOnCollectionChange((function(){}))})),this.controls.splice(0),this.updateValueAndValidity())},e.prototype._syncPendingControls=function(){var t=this.controls.reduce((function(t,e){return!!e._syncPendingControls()||t}),!1);return t&&this.updateValueAndValidity({onlySelf:!0}),t},e.prototype._throwIfControlMissing=function(t){if(!this.controls.length)throw new Error("\n        There are no form controls registered with this array yet.  If you're using ngModel,\n        you may want to check next tick (e.g. use setTimeout).\n      ");if(!this.at(t))throw new Error("Cannot find form control at index "+t)},e.prototype._forEachChild=function(t){this.controls.forEach((function(e,n){t(e,n)}))},e.prototype._updateValue=function(){var t=this;this.value=this.controls.filter((function(e){return e.enabled||t.disabled})).map((function(t){return t.value}))},e.prototype._anyControls=function(t){return this.controls.some((function(e){return e.enabled&&t(e)}))},e.prototype._setUpControls=function(){var t=this;this._forEachChild((function(e){return t._registerControl(e)}))},e.prototype._checkAllValuesPresent=function(t){this._forEachChild((function(e,n){if(void 0===t[n])throw new Error("Must supply a value for form control at index: "+n+".")}))},e.prototype._allControlsDisabled=function(){var t,e;try{for(var n=p(this.controls),o=n.next();!o.done;o=n.next())if(o.value.enabled)return!1}catch(e){t={error:e}}finally{try{o&&!o.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}return this.controls.length>0||this.disabled},e.prototype._registerControl=function(t){t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)},e}(vt),Vt={provide:b,useExisting:e.forwardRef((function(){return wt}))},Et=Promise.resolve(null),wt=function(t){function n(n,o){var r=t.call(this)||this;return r.submitted=!1,r._directives=[],r.ngSubmit=new e.EventEmitter,r.form=new Ct({},lt(n),ut(o)),r}return a(n,t),n.prototype.ngAfterViewInit=function(){this._setUpdateStrategy()},Object.defineProperty(n.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"controls",{get:function(){return this.form.controls},enumerable:!0,configurable:!0}),n.prototype.addControl=function(t){var e=this;Et.then((function(){var n=e._findContainer(t.path);t.control=n.registerControl(t.name,t.control),ot(t.control,t),t.control.updateValueAndValidity({emitEvent:!1}),e._directives.push(t)}))},n.prototype.getControl=function(t){return this.form.get(t.path)},n.prototype.removeControl=function(t){var e=this;Et.then((function(){var n=e._findContainer(t.path);n&&n.removeControl(t.name),dt(e._directives,t)}))},n.prototype.addFormGroup=function(t){var e=this;Et.then((function(){var n=e._findContainer(t.path),o=new Ct({});it(o,t),n.registerControl(t.name,o),o.updateValueAndValidity({emitEvent:!1})}))},n.prototype.removeFormGroup=function(t){var e=this;Et.then((function(){var n=e._findContainer(t.path);n&&n.removeControl(t.name)}))},n.prototype.getFormGroup=function(t){return this.form.get(t.path)},n.prototype.updateModel=function(t,e){var n=this;Et.then((function(){n.form.get(t.path).setValue(e)}))},n.prototype.setValue=function(t){this.control.setValue(t)},n.prototype.onSubmit=function(t){return this.submitted=!0,ht(this.form,this._directives),this.ngSubmit.emit(t),!1},n.prototype.onReset=function(){this.resetForm()},n.prototype.resetForm=function(t){void 0===t&&(t=void 0),this.form.reset(t),this.submitted=!1},n.prototype._setUpdateStrategy=function(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)},n.prototype._findContainer=function(t){return t.pop(),t.length?this.form.get(t):this.form},l([e.Input("ngFormOptions"),c("design:type",Object)],n.prototype,"options",void 0),l([e.Directive({selector:"form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]",providers:[Vt],host:{"(submit)":"onSubmit($event)","(reset)":"onReset()"},outputs:["ngSubmit"],exportAs:"ngForm"}),u(0,e.Optional()),u(0,e.Self()),u(0,e.Inject(j)),u(1,e.Optional()),u(1,e.Self()),u(1,e.Inject(S)),c("design:paramtypes",[Array,Array])],n)}(b),At=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return a(e,t),e.prototype.ngOnInit=function(){this._checkParentType(),this.formDirective.addFormGroup(this)},e.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeFormGroup(this)},Object.defineProperty(e.prototype,"control",{get:function(){return this.formDirective.getFormGroup(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{get:function(){return nt(null==this.name?this.name:this.name.toString(),this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"validator",{get:function(){return lt(this._validators)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"asyncValidator",{get:function(){return ut(this._asyncValidators)},enumerable:!0,configurable:!0}),e.prototype._checkParentType=function(){},e}(b),Pt=function(){function t(){}return t.modelParentException=function(){throw new Error('\n      ngModel cannot be used to register form controls with a parent formGroup directive.  Try using\n      formGroup\'s partner directive "formControlName" instead.  Example:\n\n      '+$+'\n\n      Or, if you\'d like to avoid registering this form control, indicate that it\'s standalone in ngModelOptions:\n\n      Example:\n\n      \n    <div [formGroup]="myGroup">\n       <input formControlName="firstName">\n       <input [(ngModel)]="showMoreControls" [ngModelOptions]="{standalone: true}">\n    </div>\n  ')},t.formGroupNameException=function(){throw new Error("\n      ngModel cannot be used to register form controls with a parent formGroupName or formArrayName directive.\n\n      Option 1: Use formControlName instead of ngModel (reactive strategy):\n\n      "+B+"\n\n      Option 2:  Update ngModel's parent be ngModelGroup (template-driven strategy):\n\n      "+H)},t.missingNameException=function(){throw new Error('If ngModel is used within a form tag, either the name attribute must be set or the form\n      control must be defined as \'standalone\' in ngModelOptions.\n\n      Example 1: <input [(ngModel)]="person.firstName" name="first">\n      Example 2: <input [(ngModel)]="person.firstName" [ngModelOptions]="{standalone: true}">')},t.modelGroupParentException=function(){throw new Error("\n      ngModelGroup cannot be used with a parent formGroup directive.\n\n      Option 1: Use formGroupName instead of ngModelGroup (reactive strategy):\n\n      "+B+"\n\n      Option 2:  Use a regular form tag instead of the formGroup directive (template-driven strategy):\n\n      "+H)},t}(),jt={provide:b,useExisting:e.forwardRef((function(){return St}))},St=function(t){function n(e,n,o){var r=t.call(this)||this;return r._parent=e,r._validators=n,r._asyncValidators=o,r}var o;return a(n,t),o=n,n.prototype._checkParentType=function(){this._parent instanceof o||this._parent instanceof wt||Pt.modelGroupParentException()},l([e.Input("ngModelGroup"),c("design:type",String)],n.prototype,"name",void 0),o=l([e.Directive({selector:"[ngModelGroup]",providers:[jt],exportAs:"ngModelGroup"}),u(0,e.Host()),u(0,e.SkipSelf()),u(1,e.Optional()),u(1,e.Self()),u(1,e.Inject(j)),u(2,e.Optional()),u(2,e.Self()),u(2,e.Inject(S)),c("design:paramtypes",[b,Array,Array])],n)}(At),Dt={provide:O,useExisting:e.forwardRef((function(){return kt}))},Mt=Promise.resolve(null),kt=function(t){function n(n,o,r,i){var a=t.call(this)||this;return a.control=new bt,a._registered=!1,a.update=new e.EventEmitter,a._parent=n,a._rawValidators=o||[],a._rawAsyncValidators=r||[],a.valueAccessor=ft(a,i),a}return a(n,t),n.prototype.ngOnChanges=function(t){this._checkForErrors(),this._registered||this._setUpControl(),"isDisabled"in t&&this._updateDisabled(t),ct(t,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)},n.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeControl(this)},Object.defineProperty(n.prototype,"path",{get:function(){return this._parent?nt(this.name,this._parent):[this.name]},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"validator",{get:function(){return lt(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"asyncValidator",{get:function(){return ut(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),n.prototype.viewToModelUpdate=function(t){this.viewModel=t,this.update.emit(t)},n.prototype._setUpControl=function(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0},n.prototype._setUpdateStrategy=function(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)},n.prototype._isStandalone=function(){return!this._parent||!(!this.options||!this.options.standalone)},n.prototype._setUpStandalone=function(){ot(this.control,this),this.control.updateValueAndValidity({emitEvent:!1})},n.prototype._checkForErrors=function(){this._isStandalone()||this._checkParentType(),this._checkName()},n.prototype._checkParentType=function(){!(this._parent instanceof St)&&this._parent instanceof At?Pt.formGroupNameException():this._parent instanceof St||this._parent instanceof wt||Pt.modelParentException()},n.prototype._checkName=function(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()||this.name||Pt.missingNameException()},n.prototype._updateValue=function(t){var e=this;Mt.then((function(){e.control.setValue(t,{emitViewToModelChange:!1})}))},n.prototype._updateDisabled=function(t){var e=this,n=t.isDisabled.currentValue,o=""===n||n&&"false"!==n;Mt.then((function(){o&&!e.control.disabled?e.control.disable():!o&&e.control.disabled&&e.control.enable()}))},l([e.Input(),c("design:type",String)],n.prototype,"name",void 0),l([e.Input("disabled"),c("design:type",Boolean)],n.prototype,"isDisabled",void 0),l([e.Input("ngModel"),c("design:type",Object)],n.prototype,"model",void 0),l([e.Input("ngModelOptions"),c("design:type",Object)],n.prototype,"options",void 0),l([e.Output("ngModelChange"),c("design:type",Object)],n.prototype,"update",void 0),l([e.Directive({selector:"[ngModel]:not([formControlName]):not([formControl])",providers:[Dt],exportAs:"ngModel"}),u(0,e.Optional()),u(0,e.Host()),u(1,e.Optional()),u(1,e.Self()),u(1,e.Inject(j)),u(2,e.Optional()),u(2,e.Self()),u(2,e.Inject(S)),u(3,e.Optional()),u(3,e.Self()),u(3,e.Inject(f)),c("design:paramtypes",[b,Array,Array,Array])],n)}(O),xt=l([e.Directive({selector:"form:not([ngNoForm]):not([ngNativeValidate])",host:{novalidate:""}})],(function xt(){})),Nt=new e.InjectionToken("NgModelWithFormControlWarning"),It={provide:O,useExisting:e.forwardRef((function(){return Ft}))},Ft=function(t){function n(n,o,r,i){var a=t.call(this)||this;return a._ngModelWarningConfig=i,a.update=new e.EventEmitter,a._ngModelWarningSent=!1,a._rawValidators=n||[],a._rawAsyncValidators=o||[],a.valueAccessor=ft(a,r),a}var o;return a(n,t),o=n,Object.defineProperty(n.prototype,"isDisabled",{set:function(t){z.disabledAttrWarning()},enumerable:!0,configurable:!0}),n.prototype.ngOnChanges=function(t){this._isControlChanged(t)&&(ot(this.form,this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this.form.updateValueAndValidity({emitEvent:!1})),ct(t,this.viewModel)&&(mt("formControl",o,this,this._ngModelWarningConfig),this.form.setValue(this.model),this.viewModel=this.model)},Object.defineProperty(n.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"validator",{get:function(){return lt(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"asyncValidator",{get:function(){return ut(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),n.prototype.viewToModelUpdate=function(t){this.viewModel=t,this.update.emit(t)},n.prototype._isControlChanged=function(t){return t.hasOwnProperty("form")},n._ngModelWarningSentOnce=!1,l([e.Input("formControl"),c("design:type",bt)],n.prototype,"form",void 0),l([e.Input("disabled"),c("design:type",Boolean),c("design:paramtypes",[Boolean])],n.prototype,"isDisabled",null),l([e.Input("ngModel"),c("design:type",Object)],n.prototype,"model",void 0),l([e.Output("ngModelChange"),c("design:type",Object)],n.prototype,"update",void 0),o=l([e.Directive({selector:"[formControl]",providers:[It],exportAs:"ngForm"}),u(0,e.Optional()),u(0,e.Self()),u(0,e.Inject(j)),u(1,e.Optional()),u(1,e.Self()),u(1,e.Inject(S)),u(2,e.Optional()),u(2,e.Self()),u(2,e.Inject(f)),u(3,e.Optional()),u(3,e.Inject(Nt)),c("design:paramtypes",[Array,Array,Array,Object])],n)}(O),Tt={provide:b,useExisting:e.forwardRef((function(){return Rt}))},Rt=function(t){function n(n,o){var r=t.call(this)||this;return r._validators=n,r._asyncValidators=o,r.submitted=!1,r.directives=[],r.form=null,r.ngSubmit=new e.EventEmitter,r}return a(n,t),n.prototype.ngOnChanges=function(t){this._checkFormPresent(),t.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations())},Object.defineProperty(n.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),n.prototype.addControl=function(t){var e=this.form.get(t.path);return ot(e,t),e.updateValueAndValidity({emitEvent:!1}),this.directives.push(t),e},n.prototype.getControl=function(t){return this.form.get(t.path)},n.prototype.removeControl=function(t){dt(this.directives,t)},n.prototype.addFormGroup=function(t){var e=this.form.get(t.path);it(e,t),e.updateValueAndValidity({emitEvent:!1})},n.prototype.removeFormGroup=function(t){},n.prototype.getFormGroup=function(t){return this.form.get(t.path)},n.prototype.addFormArray=function(t){var e=this.form.get(t.path);it(e,t),e.updateValueAndValidity({emitEvent:!1})},n.prototype.removeFormArray=function(t){},n.prototype.getFormArray=function(t){return this.form.get(t.path)},n.prototype.updateModel=function(t,e){this.form.get(t.path).setValue(e)},n.prototype.onSubmit=function(t){return this.submitted=!0,ht(this.form,this.directives),this.ngSubmit.emit(t),!1},n.prototype.onReset=function(){this.resetForm()},n.prototype.resetForm=function(t){void 0===t&&(t=void 0),this.form.reset(t),this.submitted=!1},n.prototype._updateDomValue=function(){var t=this;this.directives.forEach((function(e){var n=t.form.get(e.path);e.control!==n&&(function o(t,e){e.valueAccessor.registerOnChange((function(){return at(e)})),e.valueAccessor.registerOnTouched((function(){return at(e)})),e._rawValidators.forEach((function(t){t.registerOnValidatorChange&&t.registerOnValidatorChange(null)})),e._rawAsyncValidators.forEach((function(t){t.registerOnValidatorChange&&t.registerOnValidatorChange(null)})),t&&t._clearChangeFns()}(e.control,e),n&&ot(n,e),e.control=n)})),this.form._updateTreeValidity({emitEvent:!1})},n.prototype._updateRegistrations=function(){var t=this;this.form._registerOnCollectionChange((function(){return t._updateDomValue()})),this._oldForm&&this._oldForm._registerOnCollectionChange((function(){})),this._oldForm=this.form},n.prototype._updateValidators=function(){var t=lt(this._validators);this.form.validator=M.compose([this.form.validator,t]);var e=ut(this._asyncValidators);this.form.asyncValidator=M.composeAsync([this.form.asyncValidator,e])},n.prototype._checkFormPresent=function(){this.form||z.missingFormException()},l([e.Input("formGroup"),c("design:type",Ct)],n.prototype,"form",void 0),l([e.Output(),c("design:type",Object)],n.prototype,"ngSubmit",void 0),l([e.Directive({selector:"[formGroup]",providers:[Tt],host:{"(submit)":"onSubmit($event)","(reset)":"onReset()"},exportAs:"ngForm"}),u(0,e.Optional()),u(0,e.Self()),u(0,e.Inject(j)),u(1,e.Optional()),u(1,e.Self()),u(1,e.Inject(S)),c("design:paramtypes",[Array,Array])],n)}(b),Gt={provide:b,useExisting:e.forwardRef((function(){return Ut}))},Ut=function(t){function n(e,n,o){var r=t.call(this)||this;return r._parent=e,r._validators=n,r._asyncValidators=o,r}return a(n,t),n.prototype._checkParentType=function(){Lt(this._parent)&&z.groupParentException()},l([e.Input("formGroupName"),c("design:type",Object)],n.prototype,"name",void 0),l([e.Directive({selector:"[formGroupName]",providers:[Gt]}),u(0,e.Optional()),u(0,e.Host()),u(0,e.SkipSelf()),u(1,e.Optional()),u(1,e.Self()),u(1,e.Inject(j)),u(2,e.Optional()),u(2,e.Self()),u(2,e.Inject(S)),c("design:paramtypes",[b,Array,Array])],n)}(At),qt={provide:b,useExisting:e.forwardRef((function(){return Wt}))},Wt=function(t){function n(e,n,o){var r=t.call(this)||this;return r._parent=e,r._validators=n,r._asyncValidators=o,r}return a(n,t),n.prototype.ngOnInit=function(){this._checkParentType(),this.formDirective.addFormArray(this)},n.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeFormArray(this)},Object.defineProperty(n.prototype,"control",{get:function(){return this.formDirective.getFormArray(this)},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"path",{get:function(){return nt(null==this.name?this.name:this.name.toString(),this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"validator",{get:function(){return lt(this._validators)},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"asyncValidator",{get:function(){return ut(this._asyncValidators)},enumerable:!0,configurable:!0}),n.prototype._checkParentType=function(){Lt(this._parent)&&z.arrayParentException()},l([e.Input("formArrayName"),c("design:type",Object)],n.prototype,"name",void 0),l([e.Directive({selector:"[formArrayName]",providers:[qt]}),u(0,e.Optional()),u(0,e.Host()),u(0,e.SkipSelf()),u(1,e.Optional()),u(1,e.Self()),u(1,e.Inject(j)),u(2,e.Optional()),u(2,e.Self()),u(2,e.Inject(S)),c("design:paramtypes",[b,Array,Array])],n)}(b);function Lt(t){return!(t instanceof Ut||t instanceof Rt||t instanceof Wt)}
  /**
       * @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
       */var $t={provide:O,useExisting:e.forwardRef((function(){return Bt}))},Bt=function(t){function n(n,o,r,i,a){var s=t.call(this)||this;return s._ngModelWarningConfig=a,s._added=!1,s.update=new e.EventEmitter,s._ngModelWarningSent=!1,s._parent=n,s._rawValidators=o||[],s._rawAsyncValidators=r||[],s.valueAccessor=ft(s,i),s}var o;return a(n,t),o=n,Object.defineProperty(n.prototype,"isDisabled",{set:function(t){z.disabledAttrWarning()},enumerable:!0,configurable:!0}),n.prototype.ngOnChanges=function(t){this._added||this._setUpControl(),ct(t,this.viewModel)&&(mt("formControlName",o,this,this._ngModelWarningConfig),this.viewModel=this.model,this.formDirective.updateModel(this,this.model))},n.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeControl(this)},n.prototype.viewToModelUpdate=function(t){this.viewModel=t,this.update.emit(t)},Object.defineProperty(n.prototype,"path",{get:function(){return nt(null==this.name?this.name:this.name.toString(),this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"validator",{get:function(){return lt(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"asyncValidator",{get:function(){return ut(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),n.prototype._checkParentType=function(){!(this._parent instanceof Ut)&&this._parent instanceof At?z.ngModelGroupException():this._parent instanceof Ut||this._parent instanceof Rt||this._parent instanceof Wt||z.controlParentException()},n.prototype._setUpControl=function(){this._checkParentType(),this.control=this.formDirective.addControl(this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this._added=!0},n._ngModelWarningSentOnce=!1,l([e.Input("formControlName"),c("design:type",Object)],n.prototype,"name",void 0),l([e.Input("disabled"),c("design:type",Boolean),c("design:paramtypes",[Boolean])],n.prototype,"isDisabled",null),l([e.Input("ngModel"),c("design:type",Object)],n.prototype,"model",void 0),l([e.Output("ngModelChange"),c("design:type",Object)],n.prototype,"update",void 0),o=l([e.Directive({selector:"[formControlName]",providers:[$t]}),u(0,e.Optional()),u(0,e.Host()),u(0,e.SkipSelf()),u(1,e.Optional()),u(1,e.Self()),u(1,e.Inject(j)),u(2,e.Optional()),u(2,e.Self()),u(2,e.Inject(S)),u(3,e.Optional()),u(3,e.Self()),u(3,e.Inject(f)),u(4,e.Optional()),u(4,e.Inject(Nt)),c("design:paramtypes",[b,Array,Array,Array,Object])],n)}(O),Ht={provide:j,useExisting:e.forwardRef((function(){return Zt})),multi:!0},zt={provide:j,useExisting:e.forwardRef((function(){return Yt})),multi:!0},Zt=function(){function t(){}return Object.defineProperty(t.prototype,"required",{get:function(){return this._required},set:function(t){this._required=null!=t&&!1!==t&&""+t!="false",this._onChange&&this._onChange()},enumerable:!0,configurable:!0}),t.prototype.validate=function(t){return this.required?M.required(t):null},t.prototype.registerOnValidatorChange=function(t){this._onChange=t},l([e.Input(),c("design:type",Object),c("design:paramtypes",[Object])],t.prototype,"required",null),l([e.Directive({selector:":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]",providers:[Ht],host:{"[attr.required]":'required ? "" : null'}})],t)}(),Yt=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return a(n,t),n.prototype.validate=function(t){return this.required?M.requiredTrue(t):null},l([e.Directive({selector:"input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]",providers:[zt],host:{"[attr.required]":'required ? "" : null'}})],n)}(Zt),Jt={provide:j,useExisting:e.forwardRef((function(){return Kt})),multi:!0},Kt=function(){function t(){}return Object.defineProperty(t.prototype,"email",{set:function(t){this._enabled=""===t||!0===t||"true"===t,this._onChange&&this._onChange()},enumerable:!0,configurable:!0}),t.prototype.validate=function(t){return this._enabled?M.email(t):null},t.prototype.registerOnValidatorChange=function(t){this._onChange=t},l([e.Input(),c("design:type",Object),c("design:paramtypes",[Object])],t.prototype,"email",null),l([e.Directive({selector:"[email][formControlName],[email][formControl],[email][ngModel]",providers:[Jt]})],t)}(),Qt={provide:j,useExisting:e.forwardRef((function(){return Xt})),multi:!0},Xt=function(){function t(){}return t.prototype.ngOnChanges=function(t){"minlength"in t&&(this._createValidator(),this._onChange&&this._onChange())},t.prototype.validate=function(t){return null==this.minlength?null:this._validator(t)},t.prototype.registerOnValidatorChange=function(t){this._onChange=t},t.prototype._createValidator=function(){this._validator=M.minLength("number"==typeof this.minlength?this.minlength:parseInt(this.minlength,10))},l([e.Input(),c("design:type",Object)],t.prototype,"minlength",void 0),l([e.Directive({selector:"[minlength][formControlName],[minlength][formControl],[minlength][ngModel]",providers:[Qt],host:{"[attr.minlength]":"minlength ? minlength : null"}})],t)}(),te={provide:j,useExisting:e.forwardRef((function(){return ee})),multi:!0},ee=function(){function t(){}return t.prototype.ngOnChanges=function(t){"maxlength"in t&&(this._createValidator(),this._onChange&&this._onChange())},t.prototype.validate=function(t){return null!=this.maxlength?this._validator(t):null},t.prototype.registerOnValidatorChange=function(t){this._onChange=t},t.prototype._createValidator=function(){this._validator=M.maxLength("number"==typeof this.maxlength?this.maxlength:parseInt(this.maxlength,10))},l([e.Input(),c("design:type",Object)],t.prototype,"maxlength",void 0),l([e.Directive({selector:"[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]",providers:[te],host:{"[attr.maxlength]":"maxlength ? maxlength : null"}})],t)}(),ne={provide:j,useExisting:e.forwardRef((function(){return oe})),multi:!0},oe=function(){function t(){}return t.prototype.ngOnChanges=function(t){"pattern"in t&&(this._createValidator(),this._onChange&&this._onChange())},t.prototype.validate=function(t){return this._validator(t)},t.prototype.registerOnValidatorChange=function(t){this._onChange=t},t.prototype._createValidator=function(){this._validator=M.pattern(this.pattern)},l([e.Input(),c("design:type",Object)],t.prototype,"pattern",void 0),l([e.Directive({selector:"[pattern][formControlName],[pattern][formControl],[pattern][ngModel]",providers:[ne],host:{"[attr.pattern]":"pattern ? pattern : null"}})],t)}(),re=[xt,K,et,_,R,L,m,J,tt,q,w,A,Zt,Xt,ee,oe,Yt,Kt],ie=[kt,St,wt],ae=[Ft,Rt,Bt,Ut,Wt],se=l([e.NgModule({declarations:re,exports:re})],(function se(){})),le=function(){function t(){}return t.prototype.group=function(t,e){void 0===e&&(e=null);var n=this._reduceControls(t),o=null,r=null,i=void 0;return null!=e&&(
  /**
       * @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
       */
  function a(t){return void 0!==t.asyncValidators||void 0!==t.validators||void 0!==t.updateOn}(e)?(o=null!=e.validators?e.validators:null,r=null!=e.asyncValidators?e.asyncValidators:null,i=null!=e.updateOn?e.updateOn:void 0):(o=null!=e.validator?e.validator:null,r=null!=e.asyncValidator?e.asyncValidator:null)),new Ct(n,{asyncValidators:r,updateOn:i,validators:o})},t.prototype.control=function(t,e,n){return new bt(t,e,n)},t.prototype.array=function(t,e,n){var o=this,r=t.map((function(t){return o._createControl(t)}));return new Ot(r,e,n)},t.prototype._reduceControls=function(t){var e=this,n={};return Object.keys(t).forEach((function(o){n[o]=e._createControl(t[o])})),n},t.prototype._createControl=function(t){return t instanceof bt||t instanceof Ct||t instanceof Ot?t:Array.isArray(t)?this.control(t[0],t.length>1?t[1]:null,t.length>2?t[2]:null):this.control(t)},l([e.Injectable()],t)}(),ue=new e.Version("9.1.2"),ce=l([e.NgModule({declarations:ie,providers:[U],exports:[se,ie]})],(function ce(){})),pe=function(){function t(){}var n;return n=t,t.withConfig=function(t){return{ngModule:n,providers:[{provide:Nt,useValue:t.warnOnNgModelWithFormControl}]}},n=l([e.NgModule({declarations:[ae],providers:[le,U],exports:[se,ae]})],t)}();
  /**
       * @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
       */
  /**
       * @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
       */
  /**
       * @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
       */
  t.AbstractControl=vt,t.AbstractControlDirective=v,t.AbstractFormGroupDirective=At,t.COMPOSITION_BUFFER_MODE=y,t.CheckboxControlValueAccessor=m,t.CheckboxRequiredValidator=Yt,t.ControlContainer=b,t.DefaultValueAccessor=_,t.EmailValidator=Kt,t.FormArray=Ot,t.FormArrayName=Wt,t.FormBuilder=le,t.FormControl=bt,t.FormControlDirective=Ft,t.FormControlName=Bt,t.FormGroup=Ct,t.FormGroupDirective=Rt,t.FormGroupName=Ut,t.FormsModule=ce,t.MaxLengthValidator=ee,t.MinLengthValidator=Xt,t.NG_ASYNC_VALIDATORS=S,t.NG_VALIDATORS=j,t.NG_VALUE_ACCESSOR=f,t.NgControl=O,t.NgControlStatus=w,t.NgControlStatusGroup=A,t.NgForm=wt,t.NgModel=kt,t.NgModelGroup=St,t.NgSelectOption=K,t.NumberValueAccessor=R,t.PatternValidator=oe,t.RadioControlValueAccessor=q,t.RangeValueAccessor=L,t.ReactiveFormsModule=pe,t.RequiredValidator=Zt,t.SelectControlValueAccessor=J,t.SelectMultipleControlValueAccessor=tt,t.VERSION=ue,t.Validators=M,t.ɵInternalFormsSharedModule=se,t.ɵNgNoValidate=xt,t.ɵNgSelectMultipleOption=et,t.ɵangular_packages_forms_forms_a=re,t.ɵangular_packages_forms_forms_b=ie,t.ɵangular_packages_forms_forms_ba=zt,t.ɵangular_packages_forms_forms_bb=Jt,t.ɵangular_packages_forms_forms_bc=Qt,t.ɵangular_packages_forms_forms_bd=te,t.ɵangular_packages_forms_forms_be=ne,t.ɵangular_packages_forms_forms_c=ae,t.ɵangular_packages_forms_forms_d=se,t.ɵangular_packages_forms_forms_e=d,t.ɵangular_packages_forms_forms_f=g,t.ɵangular_packages_forms_forms_g=V,t.ɵangular_packages_forms_forms_h=E,t.ɵangular_packages_forms_forms_i=Vt,t.ɵangular_packages_forms_forms_j=Dt,t.ɵangular_packages_forms_forms_k=jt,t.ɵangular_packages_forms_forms_l=T,t.ɵangular_packages_forms_forms_m=G,t.ɵangular_packages_forms_forms_n=U,t.ɵangular_packages_forms_forms_o=W,t.ɵangular_packages_forms_forms_p=Nt,t.ɵangular_packages_forms_forms_q=It,t.ɵangular_packages_forms_forms_r=$t,t.ɵangular_packages_forms_forms_s=Tt,t.ɵangular_packages_forms_forms_t=Gt,t.ɵangular_packages_forms_forms_u=qt,t.ɵangular_packages_forms_forms_v=Z,t.ɵangular_packages_forms_forms_w=Q,t.ɵangular_packages_forms_forms_x=et,t.ɵangular_packages_forms_forms_y=xt,t.ɵangular_packages_forms_forms_z=Ht,Object.defineProperty(t,"__esModule",{value:!0})}));