{"version":3,"sources":["webpack:///D:/a/1/s/node_modules/@angular/forms/__ivy_ngcc__/fesm2015/forms.js"],"names":["NG_VALUE_ACCESSOR","CHECKBOX_VALUE_ACCESSOR","provide","useExisting","CheckboxControlValueAccessor","multi","_renderer","_elementRef","this","onChange","_","onTouched","value","setProperty","nativeElement","fn","isDisabled","ɵfac","t","ɵdir","type","selectors","hostBindings","rf","ctx","$event","target","checked","features","DEFAULT_VALUE_ACCESSOR","DefaultValueAccessor","COMPOSITION_BUFFER_MODE","_compositionMode","_composing","userAgent","getUserAgent","test","toLowerCase","_handleInput","_compositionStart","_compositionEnd","AbstractControlDirective","control","valid","invalid","pending","disabled","enabled","errors","pristine","dirty","touched","status","untouched","statusChanges","valueChanges","reset","errorCode","path","hasError","getError","ControlContainer","ɵControlContainer_BaseFactory","unimplemented","Error","NgControl","super","arguments","_parent","name","valueAccessor","_rawValidators","_rawAsyncValidators","AbstractControlStatus","cd","_cd","NgControlStatus","hostVars","ngClassUntouched","ngClassTouched","ngClassPristine","ngClassDirty","ngClassValid","ngClassInvalid","ngClassPending","NgControlStatusGroup","isEmptyInputValue","length","NG_VALIDATORS","NG_ASYNC_VALIDATORS","EMAIL_REGEXP","Validators","min","parseFloat","isNaN","max","minLength","maxLength","pattern","nullValidator","regex","regexStr","charAt","RegExp","toString","validators","presentValidators","filter","isPresent","_mergeErrors","map","v","observables","toObservable","pipe","o","r","obs","arrayOfErrors","res","forEach","Object","assign","keys","normalizeValidator","validator","validate","c","normalizeAsyncValidator","NUMBER_VALUE_ACCESSOR","NumberValueAccessor","RADIO_VALUE_ACCESSOR","RadioControlValueAccessor","RadioControlRegistry","_accessors","accessor","push","i","splice","_isSameGroup","fireUncheck","controlPair","_control","ɵprov","token","factory","_registry","_injector","get","_checkName","add","remove","_state","_fn","select","writeValue","formControlName","_throwNameError","inputs","RANGE_VALUE_ACCESSOR","RangeValueAccessor","FormErrorExamples","ReactiveErrors","console","warn","directiveName","SELECT_VALUE_ACCESSOR","SelectControlValueAccessor","_buildValueString","id","slice","_optionMap","Map","_idCounter","_compareWith","JSON","stringify","_getOptionId","valueString","_getOptionValue","Array","from","split","has","compareWith","NgSelectOption","_element","_select","_registerOption","set","_setElementValue","delete","ngValue","SELECT_MULTIPLE_VALUE_ACCESSOR","SelectMultipleControlValueAccessor","_buildValueString$1","optionSelectedStateSetter","isArray","ids","opt","_setSelected","indexOf","selected","hasOwnProperty","options","selectedOptions","item","val","_value","ɵNgSelectMultipleOption","controlPath","parent","setUpControl","dir","_throwError","compose","asyncValidator","composeAsync","registerOnChange","newValue","_pendingValue","_pendingChange","_pendingDirty","updateOn","updateControl","emitModelEvent","viewToModelUpdate","registerOnTouched","_pendingTouched","markAsTouched","setDisabledState","registerOnDisabledChange","registerOnValidatorChange","updateValueAndValidity","markAsDirty","setValue","emitModelToViewChange","setUpFormContainer","_noControlError","message","messageEnd","join","composeValidators","composeAsyncValidators","isPropertyUpdated","changes","viewModel","change","isFirstChange","currentValue","BUILTIN_ACCESSORS","syncPendingControls","form","directives","_syncPendingControls","selectValueAccessor","valueAccessors","defaultAccessor","undefined","builtinAccessor","customAccessor","constructor","some","a","removeDir","list","el","index","coerceToValidator","validatorOrOpts","isOptionsObj","coerceToAsyncValidator","origAsyncValidator","asyncValidators","AbstractControl","_onCollectionChange","_onDisabledChange","_updateOn","newValidator","opts","onlySelf","_forEachChild","markAllAsTouched","markAsUntouched","_updateTouched","markAsPristine","_updatePristine","emitEvent","emit","markAsPending","skipPristineCheck","_parentMarkedDirty","disable","_updateValue","_updateAncestors","changeFn","enable","_setInitialStatus","_cancelExistingSubscription","_runValidator","_calculateStatus","_runAsyncValidator","ctrl","_updateTreeValidity","_allControlsDisabled","_asyncValidationSubscription","subscribe","setErrors","unsubscribe","_updateControlsErrors","delimiter","controlToFind","FormGroup","controls","FormArray","at","x","_anyControlsHaveStatus","_anyControls","_anyControlsDirty","_anyControlsTouched","formState","FormControl","_onChange","_applyFormState","_setUpdateStrategy","_initObservables","emitViewToModelChange","condition","cb","_isBoxedValue","_setUpControls","setParent","_registerOnCollectionChange","registerControl","controlName","_checkAllValuesPresent","_throwIfControlMissing","patchValue","_reduceChildren","acc","getRawValue","subtreeUpdated","updated","child","k","_reduceValue","contains","initValue","_registerControl","reduce","formDirectiveProvider","NgForm","resolvedPromise","Promise","resolve","submitted","_directives","ngSubmit","then","container","_findContainer","removeControl","group","resetForm","pop","onSubmit","onReset","outputs","exportAs","AbstractFormGroupDirective","_checkParentType","addFormGroup","formDirective","removeFormGroup","getFormGroup","_validators","_asyncValidators","ɵAbstractFormGroupDirective_BaseFactory","TemplateDrivenErrors","modelGroupProvider","NgModelGroup","modelGroupParentException","formControlBinding","NgModel","resolvedPromise$1","_registered","update","_checkForErrors","_setUpControl","_updateDisabled","model","_isStandalone","_setUpStandalone","addControl","standalone","formGroupNameException","modelParentException","missingNameException","disabledValue","ɵNgNoValidate","hostAttrs","NG_MODEL_WITH_FORM_CONTROL_WARNING","formDirectiveProvider$1","FormGroupDirective","_checkFormPresent","_updateValidators","_updateDomValue","_updateRegistrations","newCtrl","_clearChangeFns","_oldForm","sync","async","missingFormException","formGroupNameProvider","FormGroupName","_hasInvalidParent","groupParentException","formArrayNameProvider","FormArrayName","addFormArray","removeFormArray","getFormArray","arrayParentException","controlNameBinding","FormControlName","_ngModelWarningConfig","_added","_ngModelWarningSent","disabledAttrWarning","warningConfig","_ngModelWarningSentOnce","ngModelWarning","updateModel","ngModelGroupException","controlParentException","REQUIRED_VALIDATOR","RequiredValidator","_required","required","MIN_LENGTH_VALIDATOR","MinLengthValidator","_createValidator","minlength","_validator","parseInt","MAX_LENGTH_VALIDATOR","MaxLengthValidator","maxlength","PATTERN_VALIDATOR","PatternValidator","ɵInternalFormsSharedModule","ɵmod","ɵinj","FormBuilder","controlsConfig","_reduceControls","_createControl","controlConfig","FormsModule","providers","imports","ReactiveFormsModule","ngModule","useValue","warnOnNgModelWithFormControl"],"mappings":"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","file":"x","sourcesContent":["/**\n * @license Angular v9.1.4\n * (c) 2010-2020 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { InjectionToken, forwardRef, Directive, Renderer2, ElementRef, Optional, Inject, Self, ɵisPromise, ɵisObservable, Injectable, Injector, Input, ɵlooseIdentical, Host, isDevMode, EventEmitter, SkipSelf, Output, NgModule, Version } from '@angular/core';\nimport { ɵgetDOM } from '@angular/common';\nimport { forkJoin, from } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/forms/src/directives/control_value_accessor.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * \\@description\n * Defines an interface that acts as a bridge between the Angular forms API and a\n * native element in the DOM.\n *\n * Implement this interface to create a custom form control directive\n * that integrates with Angular forms.\n *\n * @see DefaultValueAccessor\n *\n * \\@publicApi\n * @record\n */\nimport * as ɵngcc0 from '@angular/core';\nfunction ControlValueAccessor() { }\nif (false) {\n /**\n * \\@description\n * Writes a new value to the element.\n *\n * This method is called by the forms API to write to the view when programmatic\n * changes from model to view are requested.\n *\n * \\@usageNotes\n * ### Write a value to the element\n *\n * The following example writes a value to the native DOM element.\n *\n * ```ts\n * writeValue(value: any): void {\n * this._renderer.setProperty(this._elementRef.nativeElement, 'value', value);\n * }\n * ```\n *\n * @param {?} obj The new value for the element\n * @return {?}\n */\n ControlValueAccessor.prototype.writeValue = function (obj) { };\n /**\n * \\@description\n * Registers a callback function that is called when the control's value\n * changes in the UI.\n *\n * This method is called by the forms API on initialization to update the form\n * model when values propagate from the view to the model.\n *\n * When implementing the `registerOnChange` method in your own value accessor,\n * save the given function so your class calls it at the appropriate time.\n *\n * \\@usageNotes\n * ### Store the change function\n *\n * The following example stores the provided function as an internal method.\n *\n * ```ts\n * registerOnChange(fn: (_: any) => void): void {\n * this._onChange = fn;\n * }\n * ```\n *\n * When the value changes in the UI, call the registered\n * function to allow the forms API to update itself:\n *\n * ```ts\n * host: {\n * '(change)': '_onChange($event.target.value)'\n * }\n * ```\n *\n * @param {?} fn The callback function to register\n * @return {?}\n */\n ControlValueAccessor.prototype.registerOnChange = function (fn) { };\n /**\n * \\@description\n * Registers a callback function is called by the forms API on initialization\n * to update the form model on blur.\n *\n * When implementing `registerOnTouched` in your own value accessor, save the given\n * function so your class calls it when the control should be considered\n * blurred or \"touched\".\n *\n * \\@usageNotes\n * ### Store the callback function\n *\n * The following example stores the provided function as an internal method.\n *\n * ```ts\n * registerOnTouched(fn: any): void {\n * this._onTouched = fn;\n * }\n * ```\n *\n * On blur (or equivalent), your class should call the registered function to allow\n * the forms API to update itself:\n *\n * ```ts\n * host: {\n * '(blur)': '_onTouched()'\n * }\n * ```\n *\n * @param {?} fn The callback function to register\n * @return {?}\n */\n ControlValueAccessor.prototype.registerOnTouched = function (fn) { };\n /**\n * \\@description\n * Function that is called by the forms API when the control status changes to\n * or from 'DISABLED'. Depending on the status, it enables or disables the\n * appropriate DOM element.\n *\n * \\@usageNotes\n * The following is an example of writing the disabled property to a native DOM element:\n *\n * ```ts\n * setDisabledState(isDisabled: boolean): void {\n * this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled);\n * }\n * ```\n *\n * @param {?} isDisabled The disabled status to set on the element\n * @return {?}\n */\n ControlValueAccessor.prototype.setDisabledState = function (isDisabled) { };\n}\n/**\n * Used to provide a `ControlValueAccessor` for form controls.\n *\n * See `DefaultValueAccessor` for how to implement one.\n *\n * \\@publicApi\n * @type {?}\n */\nconst NG_VALUE_ACCESSOR = new InjectionToken('NgValueAccessor');\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/forms/src/directives/checkbox_value_accessor.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst CHECKBOX_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef((/**\n * @return {?}\n */\n () => CheckboxControlValueAccessor)),\n multi: true,\n};\n/**\n * \\@description\n * A `ControlValueAccessor` for writing a value and listening to changes on a checkbox input\n * element.\n *\n * \\@usageNotes\n *\n * ### Using a checkbox with a reactive form.\n *\n * The following example shows how to use a checkbox with a reactive form.\n *\n * ```ts\n * const rememberLoginControl = new FormControl();\n * ```\n *\n * ```\n * \n * ```\n *\n * \\@ngModule ReactiveFormsModule\n * \\@ngModule FormsModule\n * \\@publicApi\n */\nclass CheckboxControlValueAccessor {\n /**\n * @param {?} _renderer\n * @param {?} _elementRef\n */\n constructor(_renderer, _elementRef) {\n this._renderer = _renderer;\n this._elementRef = _elementRef;\n /**\n * \\@description\n * The registered callback function called when a change event occurs on the input element.\n */\n this.onChange = (/**\n * @param {?} _\n * @return {?}\n */\n (_) => { });\n /**\n * \\@description\n * The registered callback function called when a blur event occurs on the input element.\n */\n this.onTouched = (/**\n * @return {?}\n */\n () => { });\n }\n /**\n * Sets the \"checked\" property on the input element.\n *\n * @param {?} value The checked value\n * @return {?}\n */\n writeValue(value) {\n this._renderer.setProperty(this._elementRef.nativeElement, 'checked', value);\n }\n /**\n * \\@description\n * Registers a function called when the control value changes.\n *\n * @param {?} fn The callback function\n * @return {?}\n */\n registerOnChange(fn) {\n this.onChange = fn;\n }\n /**\n * \\@description\n * Registers a function called when the control is touched.\n *\n * @param {?} fn The callback function\n * @return {?}\n */\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n /**\n * Sets the \"disabled\" property on the input element.\n *\n * @param {?} isDisabled The disabled value\n * @return {?}\n */\n setDisabledState(isDisabled) {\n this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled);\n }\n}\nCheckboxControlValueAccessor.ɵfac = function CheckboxControlValueAccessor_Factory(t) { return new (t || CheckboxControlValueAccessor)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nCheckboxControlValueAccessor.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: CheckboxControlValueAccessor, selectors: [[\"input\", \"type\", \"checkbox\", \"formControlName\", \"\"], [\"input\", \"type\", \"checkbox\", \"formControl\", \"\"], [\"input\", \"type\", \"checkbox\", \"ngModel\", \"\"]], hostBindings: function CheckboxControlValueAccessor_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"change\", function CheckboxControlValueAccessor_change_HostBindingHandler($event) { return ctx.onChange($event.target.checked); })(\"blur\", function CheckboxControlValueAccessor_blur_HostBindingHandler() { return ctx.onTouched(); });\n } }, features: [ɵngcc0.ɵɵProvidersFeature([CHECKBOX_VALUE_ACCESSOR])] });\n/** @nocollapse */\nCheckboxControlValueAccessor.ctorParameters = () => [\n { type: Renderer2 },\n { type: ElementRef }\n];\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CheckboxControlValueAccessor, [{\n type: Directive,\n args: [{\n selector: 'input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]',\n host: { '(change)': 'onChange($event.target.checked)', '(blur)': 'onTouched()' },\n providers: [CHECKBOX_VALUE_ACCESSOR]\n }]\n }], function () { return [{ type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }]; }, null); })();\nif (false) {\n /**\n * \\@description\n * The registered callback function called when a change event occurs on the input element.\n * @type {?}\n */\n CheckboxControlValueAccessor.prototype.onChange;\n /**\n * \\@description\n * The registered callback function called when a blur event occurs on the input element.\n * @type {?}\n */\n CheckboxControlValueAccessor.prototype.onTouched;\n /**\n * @type {?}\n * @private\n */\n CheckboxControlValueAccessor.prototype._renderer;\n /**\n * @type {?}\n * @private\n */\n CheckboxControlValueAccessor.prototype._elementRef;\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/forms/src/directives/default_value_accessor.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst DEFAULT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef((/**\n * @return {?}\n */\n () => DefaultValueAccessor)),\n multi: true\n};\n/**\n * We must check whether the agent is Android because composition events\n * behave differently between iOS and Android.\n * @return {?}\n */\nfunction _isAndroid() {\n /** @type {?} */\n const userAgent = ɵgetDOM() ? ɵgetDOM().getUserAgent() : '';\n return /android (\\d+)/.test(userAgent.toLowerCase());\n}\n/**\n * \\@description\n * Provide this token to control if form directives buffer IME input until\n * the \"compositionend\" event occurs.\n * \\@publicApi\n * @type {?}\n */\nconst COMPOSITION_BUFFER_MODE = new InjectionToken('CompositionEventMode');\n/**\n * \\@description\n * The default `ControlValueAccessor` for writing a value and listening to changes on input\n * elements. The accessor is used by the `FormControlDirective`, `FormControlName`, and\n * `NgModel` directives.\n *\n * \\@usageNotes\n *\n * ### Using the default value accessor\n *\n * The following example shows how to use an input element that activates the default value accessor\n * (in this case, a text field).\n *\n * ```ts\n * const firstNameControl = new FormControl();\n * ```\n *\n * ```\n * \n * ```\n *\n * \\@ngModule ReactiveFormsModule\n * \\@ngModule FormsModule\n * \\@publicApi\n */\nclass DefaultValueAccessor {\n /**\n * @param {?} _renderer\n * @param {?} _elementRef\n * @param {?} _compositionMode\n */\n constructor(_renderer, _elementRef, _compositionMode) {\n this._renderer = _renderer;\n this._elementRef = _elementRef;\n this._compositionMode = _compositionMode;\n /**\n * \\@description\n * The registered callback function called when an input event occurs on the input element.\n */\n this.onChange = (/**\n * @param {?} _\n * @return {?}\n */\n (_) => { });\n /**\n * \\@description\n * The registered callback function called when a blur event occurs on the input element.\n */\n this.onTouched = (/**\n * @return {?}\n */\n () => { });\n /**\n * Whether the user is creating a composition string (IME events).\n */\n this._composing = false;\n if (this._compositionMode == null) {\n this._compositionMode = !_isAndroid();\n }\n }\n /**\n * Sets the \"value\" property on the input element.\n *\n * @param {?} value The checked value\n * @return {?}\n */\n writeValue(value) {\n /** @type {?} */\n const normalizedValue = value == null ? '' : value;\n this._renderer.setProperty(this._elementRef.nativeElement, 'value', normalizedValue);\n }\n /**\n * \\@description\n * Registers a function called when the control value changes.\n *\n * @param {?} fn The callback function\n * @return {?}\n */\n registerOnChange(fn) {\n this.onChange = fn;\n }\n /**\n * \\@description\n * Registers a function called when the control is touched.\n *\n * @param {?} fn The callback function\n * @return {?}\n */\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n /**\n * Sets the \"disabled\" property on the input element.\n *\n * @param {?} isDisabled The disabled value\n * @return {?}\n */\n setDisabledState(isDisabled) {\n this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled);\n }\n /**\n * \\@internal\n * @param {?} value\n * @return {?}\n */\n _handleInput(value) {\n if (!this._compositionMode || (this._compositionMode && !this._composing)) {\n this.onChange(value);\n }\n }\n /**\n * \\@internal\n * @return {?}\n */\n _compositionStart() {\n this._composing = true;\n }\n /**\n * \\@internal\n * @param {?} value\n * @return {?}\n */\n _compositionEnd(value) {\n this._composing = false;\n this._compositionMode && this.onChange(value);\n }\n}\nDefaultValueAccessor.ɵfac = function DefaultValueAccessor_Factory(t) { return new (t || DefaultValueAccessor)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(COMPOSITION_BUFFER_MODE, 8)); };\nDefaultValueAccessor.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: DefaultValueAccessor, selectors: [[\"input\", \"formControlName\", \"\", 3, \"type\", \"checkbox\"], [\"textarea\", \"formControlName\", \"\"], [\"input\", \"formControl\", \"\", 3, \"type\", \"checkbox\"], [\"textarea\", \"formControl\", \"\"], [\"input\", \"ngModel\", \"\", 3, \"type\", \"checkbox\"], [\"textarea\", \"ngModel\", \"\"], [\"\", \"ngDefaultControl\", \"\"]], hostBindings: function DefaultValueAccessor_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"input\", function DefaultValueAccessor_input_HostBindingHandler($event) { return ctx._handleInput($event.target.value); })(\"blur\", function DefaultValueAccessor_blur_HostBindingHandler() { return ctx.onTouched(); })(\"compositionstart\", function DefaultValueAccessor_compositionstart_HostBindingHandler() { return ctx._compositionStart(); })(\"compositionend\", function DefaultValueAccessor_compositionend_HostBindingHandler($event) { return ctx._compositionEnd($event.target.value); });\n } }, features: [ɵngcc0.ɵɵProvidersFeature([DEFAULT_VALUE_ACCESSOR])] });\n/** @nocollapse */\nDefaultValueAccessor.ctorParameters = () => [\n { type: Renderer2 },\n { type: ElementRef },\n { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [COMPOSITION_BUFFER_MODE,] }] }\n];\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(DefaultValueAccessor, [{\n type: Directive,\n args: [{\n selector: 'input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]',\n // TODO: vsavkin replace the above selector with the one below it once\n // https://github.com/angular/angular/issues/3011 is implemented\n // selector: '[ngModel],[formControl],[formControlName]',\n host: {\n '(input)': '$any(this)._handleInput($event.target.value)',\n '(blur)': 'onTouched()',\n '(compositionstart)': '$any(this)._compositionStart()',\n '(compositionend)': '$any(this)._compositionEnd($event.target.value)'\n },\n providers: [DEFAULT_VALUE_ACCESSOR]\n }]\n }], function () { return [{ type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }, { type: Boolean, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [COMPOSITION_BUFFER_MODE]\n }] }]; }, null); })();\nif (false) {\n /**\n * \\@description\n * The registered callback function called when an input event occurs on the input element.\n * @type {?}\n */\n DefaultValueAccessor.prototype.onChange;\n /**\n * \\@description\n * The registered callback function called when a blur event occurs on the input element.\n * @type {?}\n */\n DefaultValueAccessor.prototype.onTouched;\n /**\n * Whether the user is creating a composition string (IME events).\n * @type {?}\n * @private\n */\n DefaultValueAccessor.prototype._composing;\n /**\n * @type {?}\n * @private\n */\n DefaultValueAccessor.prototype._renderer;\n /**\n * @type {?}\n * @private\n */\n DefaultValueAccessor.prototype._elementRef;\n /**\n * @type {?}\n * @private\n */\n DefaultValueAccessor.prototype._compositionMode;\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/forms/src/directives/abstract_control_directive.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * \\@description\n * Base class for control directives.\n *\n * This class is only used internally in the `ReactiveFormsModule` and the `FormsModule`.\n *\n * \\@publicApi\n * @abstract\n */\nclass AbstractControlDirective {\n /**\n * \\@description\n * Reports the value of the control if it is present, otherwise null.\n * @return {?}\n */\n get value() {\n return this.control ? this.control.value : null;\n }\n /**\n * \\@description\n * Reports whether the control is valid. A control is considered valid if no\n * validation errors exist with the current value.\n * If the control is not present, null is returned.\n * @return {?}\n */\n get valid() {\n return this.control ? this.control.valid : null;\n }\n /**\n * \\@description\n * Reports whether the control is invalid, meaning that an error exists in the input value.\n * If the control is not present, null is returned.\n * @return {?}\n */\n get invalid() {\n return this.control ? this.control.invalid : null;\n }\n /**\n * \\@description\n * Reports whether a control is pending, meaning that that async validation is occurring and\n * errors are not yet available for the input value. If the control is not present, null is\n * returned.\n * @return {?}\n */\n get pending() {\n return this.control ? this.control.pending : null;\n }\n /**\n * \\@description\n * Reports whether the control is disabled, meaning that the control is disabled\n * in the UI and is exempt from validation checks and excluded from aggregate\n * values of ancestor controls. If the control is not present, null is returned.\n * @return {?}\n */\n get disabled() {\n return this.control ? this.control.disabled : null;\n }\n /**\n * \\@description\n * Reports whether the control is enabled, meaning that the control is included in ancestor\n * calculations of validity or value. If the control is not present, null is returned.\n * @return {?}\n */\n get enabled() {\n return this.control ? this.control.enabled : null;\n }\n /**\n * \\@description\n * Reports the control's validation errors. If the control is not present, null is returned.\n * @return {?}\n */\n get errors() {\n return this.control ? this.control.errors : null;\n }\n /**\n * \\@description\n * Reports whether the control is pristine, meaning that the user has not yet changed\n * the value in the UI. If the control is not present, null is returned.\n * @return {?}\n */\n get pristine() {\n return this.control ? this.control.pristine : null;\n }\n /**\n * \\@description\n * Reports whether the control is dirty, meaning that the user has changed\n * the value in the UI. If the control is not present, null is returned.\n * @return {?}\n */\n get dirty() {\n return this.control ? this.control.dirty : null;\n }\n /**\n * \\@description\n * Reports whether the control is touched, meaning that the user has triggered\n * a `blur` event on it. If the control is not present, null is returned.\n * @return {?}\n */\n get touched() {\n return this.control ? this.control.touched : null;\n }\n /**\n * \\@description\n * Reports the validation status of the control. Possible values include:\n * 'VALID', 'INVALID', 'DISABLED', and 'PENDING'.\n * If the control is not present, null is returned.\n * @return {?}\n */\n get status() {\n return this.control ? this.control.status : null;\n }\n /**\n * \\@description\n * Reports whether the control is untouched, meaning that the user has not yet triggered\n * a `blur` event on it. If the control is not present, null is returned.\n * @return {?}\n */\n get untouched() {\n return this.control ? this.control.untouched : null;\n }\n /**\n * \\@description\n * Returns a multicasting observable that emits a validation status whenever it is\n * calculated for the control. If the control is not present, null is returned.\n * @return {?}\n */\n get statusChanges() {\n return this.control ? this.control.statusChanges : null;\n }\n /**\n * \\@description\n * Returns a multicasting observable of value changes for the control that emits every time the\n * value of the control changes in the UI or programmatically.\n * If the control is not present, null is returned.\n * @return {?}\n */\n get valueChanges() {\n return this.control ? this.control.valueChanges : null;\n }\n /**\n * \\@description\n * Returns an array that represents the path from the top-level form to this control.\n * Each index is the string name of the control on that level.\n * @return {?}\n */\n get path() {\n return null;\n }\n /**\n * \\@description\n * Resets the control with the provided value if the control is present.\n * @param {?=} value\n * @return {?}\n */\n reset(value = undefined) {\n if (this.control)\n this.control.reset(value);\n }\n /**\n * \\@description\n * Reports whether the control with the given path has the error specified.\n *\n * \\@usageNotes\n * For example, for the following `FormGroup`:\n *\n * ```\n * form = new FormGroup({\n * address: new FormGroup({ street: new FormControl() })\n * });\n * ```\n *\n * The path to the 'street' control from the root form would be 'address' -> 'street'.\n *\n * It can be provided to this method in one of two formats:\n *\n * 1. An array of string control names, e.g. `['address', 'street']`\n * 1. A period-delimited list of control names in one string, e.g. `'address.street'`\n *\n * If no path is given, this method checks for the error on the current control.\n *\n * @param {?} errorCode The code of the error to check\n * @param {?=} path A list of control names that designates how to move from the current control\n * to the control that should be queried for errors.\n *\n * @return {?} whether the given error is present in the control at the given path.\n *\n * If the control is not present, false is returned.\n */\n hasError(errorCode, path) {\n return this.control ? this.control.hasError(errorCode, path) : false;\n }\n /**\n * \\@description\n * Reports error data for the control with the given path.\n *\n * \\@usageNotes\n * For example, for the following `FormGroup`:\n *\n * ```\n * form = new FormGroup({\n * address: new FormGroup({ street: new FormControl() })\n * });\n * ```\n *\n * The path to the 'street' control from the root form would be 'address' -> 'street'.\n *\n * It can be provided to this method in one of two formats:\n *\n * 1. An array of string control names, e.g. `['address', 'street']`\n * 1. A period-delimited list of control names in one string, e.g. `'address.street'`\n *\n * @param {?} errorCode The code of the error to check\n * @param {?=} path A list of control names that designates how to move from the current control\n * to the control that should be queried for errors.\n *\n * @return {?} error data for that particular error. If the control or error is not present,\n * null is returned.\n */\n getError(errorCode, path) {\n return this.control ? this.control.getError(errorCode, path) : null;\n }\n}\nAbstractControlDirective.ɵfac = function AbstractControlDirective_Factory(t) { return new (t || AbstractControlDirective)(); };\nAbstractControlDirective.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: AbstractControlDirective });\n\nif (false) {\n /**\n * \\@description\n * A reference to the underlying control.\n *\n * @abstract\n * @return {?} the control that backs this directive. Most properties fall through to that instance.\n */\n AbstractControlDirective.prototype.control = function () { };\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/forms/src/directives/control_container.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * \\@description\n * A base class for directives that contain multiple registered instances of `NgControl`.\n * Only used by the forms module.\n *\n * \\@publicApi\n * @abstract\n */\nclass ControlContainer extends AbstractControlDirective {\n /**\n * \\@description\n * The top-level form directive for the control.\n * @return {?}\n */\n get formDirective() {\n return null;\n }\n /**\n * \\@description\n * The path to this group.\n * @return {?}\n */\n get path() {\n return null;\n }\n}\nControlContainer.ɵfac = function ControlContainer_Factory(t) { return ɵControlContainer_BaseFactory(t || ControlContainer); };\nControlContainer.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: ControlContainer, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\nconst ɵControlContainer_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(ControlContainer);\nif (false) {\n /**\n * \\@description\n * The name for the control\n * @type {?}\n */\n ControlContainer.prototype.name;\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/forms/src/directives/ng_control.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @return {?}\n */\nfunction unimplemented() {\n throw new Error('unimplemented');\n}\n/**\n * \\@description\n * A base class that all control `FormControl`-based directives extend. It binds a `FormControl`\n * object to a DOM element.\n *\n * \\@publicApi\n * @abstract\n */\nclass NgControl extends AbstractControlDirective {\n constructor() {\n super(...arguments);\n /**\n * \\@description\n * The parent form for the control.\n *\n * \\@internal\n */\n this._parent = null;\n /**\n * \\@description\n * The name for the control\n */\n this.name = null;\n /**\n * \\@description\n * The value accessor for the control\n */\n this.valueAccessor = null;\n /**\n * \\@description\n * The uncomposed array of synchronous validators for the control\n *\n * \\@internal\n */\n this._rawValidators = [];\n /**\n * \\@description\n * The uncomposed array of async validators for the control\n *\n * \\@internal\n */\n this._rawAsyncValidators = [];\n }\n /**\n * \\@description\n * The registered synchronous validator function for the control\n *\n * @throws An exception that this method is not implemented\n * @return {?}\n */\n get validator() {\n return (/** @type {?} */ (unimplemented()));\n }\n /**\n * \\@description\n * The registered async validator function for the control\n *\n * @throws An exception that this method is not implemented\n * @return {?}\n */\n get asyncValidator() {\n return (/** @type {?} */ (unimplemented()));\n }\n}\nif (false) {\n /**\n * \\@description\n * The parent form for the control.\n *\n * \\@internal\n * @type {?}\n */\n NgControl.prototype._parent;\n /**\n * \\@description\n * The name for the control\n * @type {?}\n */\n NgControl.prototype.name;\n /**\n * \\@description\n * The value accessor for the control\n * @type {?}\n */\n NgControl.prototype.valueAccessor;\n /**\n * \\@description\n * The uncomposed array of synchronous validators for the control\n *\n * \\@internal\n * @type {?}\n */\n NgControl.prototype._rawValidators;\n /**\n * \\@description\n * The uncomposed array of async validators for the control\n *\n * \\@internal\n * @type {?}\n */\n NgControl.prototype._rawAsyncValidators;\n /**\n * \\@description\n * The callback method to update the model from the view when requested\n *\n * @abstract\n * @param {?} newValue The new value for the view\n * @return {?}\n */\n NgControl.prototype.viewToModelUpdate = function (newValue) { };\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/forms/src/directives/ng_control_status.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass AbstractControlStatus {\n /**\n * @param {?} cd\n */\n constructor(cd) {\n this._cd = cd;\n }\n /**\n * @return {?}\n */\n get ngClassUntouched() {\n return this._cd.control ? this._cd.control.untouched : false;\n }\n /**\n * @return {?}\n */\n get ngClassTouched() {\n return this._cd.control ? this._cd.control.touched : false;\n }\n /**\n * @return {?}\n */\n get ngClassPristine() {\n return this._cd.control ? this._cd.control.pristine : false;\n }\n /**\n * @return {?}\n */\n get ngClassDirty() {\n return this._cd.control ? this._cd.control.dirty : false;\n }\n /**\n * @return {?}\n */\n get ngClassValid() {\n return this._cd.control ? this._cd.control.valid : false;\n }\n /**\n * @return {?}\n */\n get ngClassInvalid() {\n return this._cd.control ? this._cd.control.invalid : false;\n }\n /**\n * @return {?}\n */\n get ngClassPending() {\n return this._cd.control ? this._cd.control.pending : false;\n }\n}\nif (false) {\n /**\n * @type {?}\n * @private\n */\n AbstractControlStatus.prototype._cd;\n}\n/** @type {?} */\nconst ngControlStatusHost = {\n '[class.ng-untouched]': 'ngClassUntouched',\n '[class.ng-touched]': 'ngClassTouched',\n '[class.ng-pristine]': 'ngClassPristine',\n '[class.ng-dirty]': 'ngClassDirty',\n '[class.ng-valid]': 'ngClassValid',\n '[class.ng-invalid]': 'ngClassInvalid',\n '[class.ng-pending]': 'ngClassPending',\n};\n/**\n * \\@description\n * Directive automatically applied to Angular form controls that sets CSS classes\n * based on control status.\n *\n * \\@usageNotes\n *\n * ### CSS classes applied\n *\n * The following classes are applied as the properties become true:\n *\n * * ng-valid\n * * ng-invalid\n * * ng-pending\n * * ng-pristine\n * * ng-dirty\n * * ng-untouched\n * * ng-touched\n *\n * \\@ngModule ReactiveFormsModule\n * \\@ngModule FormsModule\n * \\@publicApi\n */\nclass NgControlStatus extends AbstractControlStatus {\n /**\n * @param {?} cd\n */\n constructor(cd) {\n super(cd);\n }\n}\nNgControlStatus.ɵfac = function NgControlStatus_Factory(t) { return new (t || NgControlStatus)(ɵngcc0.ɵɵdirectiveInject(NgControl, 2)); };\nNgControlStatus.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: NgControlStatus, selectors: [[\"\", \"formControlName\", \"\"], [\"\", \"ngModel\", \"\"], [\"\", \"formControl\", \"\"]], hostVars: 14, hostBindings: function NgControlStatus_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"ng-untouched\", ctx.ngClassUntouched)(\"ng-touched\", ctx.ngClassTouched)(\"ng-pristine\", ctx.ngClassPristine)(\"ng-dirty\", ctx.ngClassDirty)(\"ng-valid\", ctx.ngClassValid)(\"ng-invalid\", ctx.ngClassInvalid)(\"ng-pending\", ctx.ngClassPending);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n/** @nocollapse */\nNgControlStatus.ctorParameters = () => [\n { type: NgControl, decorators: [{ type: Self }] }\n];\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgControlStatus, [{\n type: Directive,\n args: [{ selector: '[formControlName],[ngModel],[formControl]', host: ngControlStatusHost }]\n }], function () { return [{ type: NgControl, decorators: [{\n type: Self\n }] }]; }, null); })();\n/**\n * \\@description\n * Directive automatically applied to Angular form groups that sets CSS classes\n * based on control status (valid/invalid/dirty/etc).\n *\n * @see `NgControlStatus`\n *\n * \\@ngModule ReactiveFormsModule\n * \\@ngModule FormsModule\n * \\@publicApi\n */\nclass NgControlStatusGroup extends AbstractControlStatus {\n /**\n * @param {?} cd\n */\n constructor(cd) {\n super(cd);\n }\n}\nNgControlStatusGroup.ɵfac = function NgControlStatusGroup_Factory(t) { return new (t || NgControlStatusGroup)(ɵngcc0.ɵɵdirectiveInject(ControlContainer, 2)); };\nNgControlStatusGroup.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: NgControlStatusGroup, selectors: [[\"\", \"formGroupName\", \"\"], [\"\", \"formArrayName\", \"\"], [\"\", \"ngModelGroup\", \"\"], [\"\", \"formGroup\", \"\"], [\"form\", 3, \"ngNoForm\", \"\"], [\"\", \"ngForm\", \"\"]], hostVars: 14, hostBindings: function NgControlStatusGroup_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"ng-untouched\", ctx.ngClassUntouched)(\"ng-touched\", ctx.ngClassTouched)(\"ng-pristine\", ctx.ngClassPristine)(\"ng-dirty\", ctx.ngClassDirty)(\"ng-valid\", ctx.ngClassValid)(\"ng-invalid\", ctx.ngClassInvalid)(\"ng-pending\", ctx.ngClassPending);\n } }, features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n/** @nocollapse */\nNgControlStatusGroup.ctorParameters = () => [\n { type: ControlContainer, decorators: [{ type: Self }] }\n];\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgControlStatusGroup, [{\n type: Directive,\n args: [{\n selector: '[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]',\n host: ngControlStatusHost\n }]\n }], function () { return [{ type: ControlContainer, decorators: [{\n type: Self\n }] }]; }, null); })();\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/forms/src/validators.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} value\n * @return {?}\n */\nfunction isEmptyInputValue(value) {\n // we don't check for string here so it also works with arrays\n return value == null || value.length === 0;\n}\n/**\n * \\@description\n * An `InjectionToken` for registering additional synchronous validators used with\n * `AbstractControl`s.\n *\n * @see `NG_ASYNC_VALIDATORS`\n *\n * \\@usageNotes\n *\n * ### Providing a custom validator\n *\n * The following example registers a custom validator directive. Adding the validator to the\n * existing collection of validators requires the `multi: true` option.\n *\n * ```typescript\n * \\@Directive({\n * selector: '[customValidator]',\n * providers: [{provide: NG_VALIDATORS, useExisting: CustomValidatorDirective, multi: true}]\n * })\n * class CustomValidatorDirective implements Validator {\n * validate(control: AbstractControl): ValidationErrors | null {\n * return { 'custom': true };\n * }\n * }\n * ```\n *\n * \\@publicApi\n * @type {?}\n */\nconst NG_VALIDATORS = new InjectionToken('NgValidators');\n/**\n * \\@description\n * An `InjectionToken` for registering additional asynchronous validators used with\n * `AbstractControl`s.\n *\n * @see `NG_VALIDATORS`\n *\n * \\@publicApi\n * @type {?}\n */\nconst NG_ASYNC_VALIDATORS = new InjectionToken('NgAsyncValidators');\n/**\n * A regular expression that matches valid e-mail addresses.\n *\n * At a high level, this regexp matches e-mail addresses of the format `local-part\\@tld`, where:\n * - `local-part` consists of one or more of the allowed characters (alphanumeric and some\n * punctuation symbols).\n * - `local-part` cannot begin or end with a period (`.`).\n * - `local-part` cannot be longer than 64 characters.\n * - `tld` consists of one or more `labels` separated by periods (`.`). For example `localhost` or\n * `foo.com`.\n * - A `label` consists of one or more of the allowed characters (alphanumeric, dashes (`-`) and\n * periods (`.`)).\n * - A `label` cannot begin or end with a dash (`-`) or a period (`.`).\n * - A `label` cannot be longer than 63 characters.\n * - The whole address cannot be longer than 254 characters.\n *\n * ## Implementation background\n *\n * This regexp was ported over from AngularJS (see there for git history):\n * https://github.com/angular/angular.js/blob/c133ef836/src/ng/directive/input.js#L27\n * It is based on the\n * [WHATWG version](https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address) with\n * some enhancements to incorporate more RFC rules (such as rules related to domain names and the\n * lengths of different parts of the address). The main differences from the WHATWG version are:\n * - Disallow `local-part` to begin or end with a period (`.`).\n * - Disallow `local-part` length to exceed 64 characters.\n * - Disallow total address length to exceed 254 characters.\n *\n * See [this commit](https://github.com/angular/angular.js/commit/f3f5cf72e) for more details.\n * @type {?}\n */\nconst EMAIL_REGEXP = /^(?=.{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])?)*$/;\n/**\n * \\@description\n * Provides a set of built-in validators that can be used by form controls.\n *\n * A validator is a function that processes a `FormControl` or collection of\n * controls and returns an error map or null. A null map means that validation has passed.\n *\n * @see [Form Validation](/guide/form-validation)\n *\n * \\@publicApi\n */\nclass Validators {\n /**\n * \\@description\n * Validator that requires the control's value to be greater than or equal to the provided number.\n * The validator exists only as a function and not as a directive.\n *\n * \\@usageNotes\n *\n * ### Validate against a minimum of 3\n *\n * ```typescript\n * const control = new FormControl(2, Validators.min(3));\n *\n * console.log(control.errors); // {min: {min: 3, actual: 2}}\n * ```\n *\n * @see `updateValueAndValidity()`\n *\n * @param {?} min\n * @return {?} A validator function that returns an error map with the\n * `min` property if the validation check fails, otherwise `null`.\n *\n */\n static min(min) {\n return (/**\n * @param {?} control\n * @return {?}\n */\n (control) => {\n if (isEmptyInputValue(control.value) || isEmptyInputValue(min)) {\n return null; // don't validate empty values to allow optional controls\n }\n /** @type {?} */\n const value = parseFloat(control.value);\n // Controls with NaN values after parsing should be treated as not having a\n // minimum, per the HTML forms spec: https://www.w3.org/TR/html5/forms.html#attr-input-min\n return !isNaN(value) && value < min ? { 'min': { 'min': min, 'actual': control.value } } : null;\n });\n }\n /**\n * \\@description\n * Validator that requires the control's value to be less than or equal to the provided number.\n * The validator exists only as a function and not as a directive.\n *\n * \\@usageNotes\n *\n * ### Validate against a maximum of 15\n *\n * ```typescript\n * const control = new FormControl(16, Validators.max(15));\n *\n * console.log(control.errors); // {max: {max: 15, actual: 16}}\n * ```\n *\n * @see `updateValueAndValidity()`\n *\n * @param {?} max\n * @return {?} A validator function that returns an error map with the\n * `max` property if the validation check fails, otherwise `null`.\n *\n */\n static max(max) {\n return (/**\n * @param {?} control\n * @return {?}\n */\n (control) => {\n if (isEmptyInputValue(control.value) || isEmptyInputValue(max)) {\n return null; // don't validate empty values to allow optional controls\n }\n /** @type {?} */\n const value = parseFloat(control.value);\n // Controls with NaN values after parsing should be treated as not having a\n // maximum, per the HTML forms spec: https://www.w3.org/TR/html5/forms.html#attr-input-max\n return !isNaN(value) && value > max ? { 'max': { 'max': max, 'actual': control.value } } : null;\n });\n }\n /**\n * \\@description\n * Validator that requires the control have a non-empty value.\n *\n * \\@usageNotes\n *\n * ### Validate that the field is non-empty\n *\n * ```typescript\n * const control = new FormControl('', Validators.required);\n *\n * console.log(control.errors); // {required: true}\n * ```\n *\n * @see `updateValueAndValidity()`\n *\n * @param {?} control\n * @return {?} An error map with the `required` property\n * if the validation check fails, otherwise `null`.\n *\n */\n static required(control) {\n return isEmptyInputValue(control.value) ? { 'required': true } : null;\n }\n /**\n * \\@description\n * Validator that requires the control's value be true. This validator is commonly\n * used for required checkboxes.\n *\n * \\@usageNotes\n *\n * ### Validate that the field value is true\n *\n * ```typescript\n * const control = new FormControl('', Validators.requiredTrue);\n *\n * console.log(control.errors); // {required: true}\n * ```\n *\n * @see `updateValueAndValidity()`\n *\n * @param {?} control\n * @return {?} An error map that contains the `required` property\n * set to `true` if the validation check fails, otherwise `null`.\n *\n */\n static requiredTrue(control) {\n return control.value === true ? null : { 'required': true };\n }\n /**\n * \\@description\n * Validator that requires the control's value pass an email validation test.\n *\n * Tests the value using a [regular\n * expression](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions)\n * pattern suitable for common usecases. The pattern is based on the definition of a valid email\n * address in the [WHATWG HTML\n * specification](https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address) with\n * some enhancements to incorporate more RFC rules (such as rules related to domain names and the\n * lengths of different parts of the address).\n *\n * The differences from the WHATWG version include:\n * - Disallow `local-part` (the part before the `\\@` symbol) to begin or end with a period (`.`).\n * - Disallow `local-part` to be longer than 64 characters.\n * - Disallow the whole address to be longer than 254 characters.\n *\n * If this pattern does not satisfy your business needs, you can use `Validators.pattern()` to\n * validate the value against a different pattern.\n *\n * \\@usageNotes\n *\n * ### Validate that the field matches a valid email pattern\n *\n * ```typescript\n * const control = new FormControl('bad\\@', Validators.email);\n *\n * console.log(control.errors); // {email: true}\n * ```\n *\n * @see `updateValueAndValidity()`\n *\n * @param {?} control\n * @return {?} An error map with the `email` property\n * if the validation check fails, otherwise `null`.\n *\n */\n static email(control) {\n if (isEmptyInputValue(control.value)) {\n return null; // don't validate empty values to allow optional controls\n }\n return EMAIL_REGEXP.test(control.value) ? null : { 'email': true };\n }\n /**\n * \\@description\n * Validator that requires the length of the control's value to be greater than or equal\n * to the provided minimum length. This validator is also provided by default if you use the\n * the HTML5 `minlength` attribute. Note that the `minLength` validator is intended to be used\n * only for types that have a numeric `length` property, such as strings or arrays. The\n * `minLength` validator logic is also not invoked for values when their `length` property is 0\n * (for example in case of an empty string or an empty array), to support optional controls. You\n * can use the standard `required` validator if empty values should not be considered valid.\n *\n * \\@usageNotes\n *\n * ### Validate that the field has a minimum of 3 characters\n *\n * ```typescript\n * const control = new FormControl('ng', Validators.minLength(3));\n *\n * console.log(control.errors); // {minlength: {requiredLength: 3, actualLength: 2}}\n * ```\n *\n * ```html\n * \n * ```\n *\n * @see `updateValueAndValidity()`\n *\n * @param {?} minLength\n * @return {?} A validator function that returns an error map with the\n * `minlength` if the validation check fails, otherwise `null`.\n *\n */\n static minLength(minLength) {\n return (/**\n * @param {?} control\n * @return {?}\n */\n (control) => {\n if (isEmptyInputValue(control.value)) {\n return null; // don't validate empty values to allow optional controls\n }\n /** @type {?} */\n const length = control.value ? control.value.length : 0;\n return length < minLength ?\n { 'minlength': { 'requiredLength': minLength, 'actualLength': length } } :\n null;\n });\n }\n /**\n * \\@description\n * Validator that requires the length of the control's value to be less than or equal\n * to the provided maximum length. This validator is also provided by default if you use the\n * the HTML5 `maxlength` attribute. Note that the `maxLength` validator is intended to be used\n * only for types that have a numeric `length` property, such as strings or arrays.\n *\n * \\@usageNotes\n *\n * ### Validate that the field has maximum of 5 characters\n *\n * ```typescript\n * const control = new FormControl('Angular', Validators.maxLength(5));\n *\n * console.log(control.errors); // {maxlength: {requiredLength: 5, actualLength: 7}}\n * ```\n *\n * ```html\n * \n * ```\n *\n * @see `updateValueAndValidity()`\n *\n * @param {?} maxLength\n * @return {?} A validator function that returns an error map with the\n * `maxlength` property if the validation check fails, otherwise `null`.\n *\n */\n static maxLength(maxLength) {\n return (/**\n * @param {?} control\n * @return {?}\n */\n (control) => {\n /** @type {?} */\n const length = control.value ? control.value.length : 0;\n return length > maxLength ?\n { 'maxlength': { 'requiredLength': maxLength, 'actualLength': length } } :\n null;\n });\n }\n /**\n * \\@description\n * Validator that requires the control's value to match a regex pattern. This validator is also\n * provided by default if you use the HTML5 `pattern` attribute.\n *\n * \\@usageNotes\n *\n * ### Validate that the field only contains letters or spaces\n *\n * ```typescript\n * const control = new FormControl('1', Validators.pattern('[a-zA-Z ]*'));\n *\n * console.log(control.errors); // {pattern: {requiredPattern: '^[a-zA-Z ]*$', actualValue: '1'}}\n * ```\n *\n * ```html\n * \n * ```\n *\n * @see `updateValueAndValidity()`\n *\n * @param {?} pattern A regular expression to be used as is to test the values, or a string.\n * If a string is passed, the `^` character is prepended and the `$` character is\n * appended to the provided string (if not already present), and the resulting regular\n * expression is used to test the values.\n *\n * @return {?} A validator function that returns an error map with the\n * `pattern` property if the validation check fails, otherwise `null`.\n *\n */\n static pattern(pattern) {\n if (!pattern)\n return Validators.nullValidator;\n /** @type {?} */\n let regex;\n /** @type {?} */\n let regexStr;\n if (typeof pattern === 'string') {\n regexStr = '';\n if (pattern.charAt(0) !== '^')\n regexStr += '^';\n regexStr += pattern;\n if (pattern.charAt(pattern.length - 1) !== '$')\n regexStr += '$';\n regex = new RegExp(regexStr);\n }\n else {\n regexStr = pattern.toString();\n regex = pattern;\n }\n return (/**\n * @param {?} control\n * @return {?}\n */\n (control) => {\n if (isEmptyInputValue(control.value)) {\n return null; // don't validate empty values to allow optional controls\n }\n /** @type {?} */\n const value = control.value;\n return regex.test(value) ? null :\n { 'pattern': { 'requiredPattern': regexStr, 'actualValue': value } };\n });\n }\n /**\n * \\@description\n * Validator that performs no operation.\n *\n * @see `updateValueAndValidity()`\n *\n * @param {?} control\n * @return {?}\n */\n static nullValidator(control) {\n return null;\n }\n /**\n * @param {?} validators\n * @return {?}\n */\n static compose(validators) {\n if (!validators)\n return null;\n /** @type {?} */\n const presentValidators = (/** @type {?} */ (validators.filter(isPresent)));\n if (presentValidators.length == 0)\n return null;\n return (/**\n * @param {?} control\n * @return {?}\n */\n function (control) {\n return _mergeErrors(_executeValidators(control, presentValidators));\n });\n }\n /**\n * \\@description\n * Compose multiple async validators into a single function that returns the union\n * of the individual error objects for the provided control.\n *\n * @see `updateValueAndValidity()`\n *\n * @param {?} validators\n * @return {?} A validator function that returns an error map with the\n * merged error objects of the async validators if the validation check fails, otherwise `null`.\n *\n */\n static composeAsync(validators) {\n if (!validators)\n return null;\n /** @type {?} */\n const presentValidators = (/** @type {?} */ (validators.filter(isPresent)));\n if (presentValidators.length == 0)\n return null;\n return (/**\n * @param {?} control\n * @return {?}\n */\n function (control) {\n /** @type {?} */\n const observables = _executeAsyncValidators(control, presentValidators).map(toObservable);\n return forkJoin(observables).pipe(map(_mergeErrors));\n });\n }\n}\n/**\n * @param {?} o\n * @return {?}\n */\nfunction isPresent(o) {\n return o != null;\n}\n/**\n * @param {?} r\n * @return {?}\n */\nfunction toObservable(r) {\n /** @type {?} */\n const obs = ɵisPromise(r) ? from(r) : r;\n if (!(ɵisObservable(obs))) {\n throw new Error(`Expected validator to return Promise or Observable.`);\n }\n return obs;\n}\n/**\n * @param {?} control\n * @param {?} validators\n * @return {?}\n */\nfunction _executeValidators(control, validators) {\n return validators.map((/**\n * @param {?} v\n * @return {?}\n */\n v => v(control)));\n}\n/**\n * @param {?} control\n * @param {?} validators\n * @return {?}\n */\nfunction _executeAsyncValidators(control, validators) {\n return validators.map((/**\n * @param {?} v\n * @return {?}\n */\n v => v(control)));\n}\n/**\n * @param {?} arrayOfErrors\n * @return {?}\n */\nfunction _mergeErrors(arrayOfErrors) {\n /** @type {?} */\n let res = {};\n // Not using Array.reduce here due to a Chrome 80 bug\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\n arrayOfErrors.forEach((/**\n * @param {?} errors\n * @return {?}\n */\n (errors) => {\n res = errors != null ? Object.assign(Object.assign({}, (/** @type {?} */ (res))), errors) : (/** @type {?} */ (res));\n }));\n return Object.keys(res).length === 0 ? null : res;\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/forms/src/directives/normalize_validator.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @param {?} validator\n * @return {?}\n */\nfunction normalizeValidator(validator) {\n if (((/** @type {?} */ (validator))).validate) {\n return (/**\n * @param {?} c\n * @return {?}\n */\n (c) => ((/** @type {?} */ (validator))).validate(c));\n }\n else {\n return (/** @type {?} */ (validator));\n }\n}\n/**\n * @param {?} validator\n * @return {?}\n */\nfunction normalizeAsyncValidator(validator) {\n if (((/** @type {?} */ (validator))).validate) {\n return (/**\n * @param {?} c\n * @return {?}\n */\n (c) => ((/** @type {?} */ (validator))).validate(c));\n }\n else {\n return (/** @type {?} */ (validator));\n }\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/forms/src/directives/number_value_accessor.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst NUMBER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef((/**\n * @return {?}\n */\n () => NumberValueAccessor)),\n multi: true\n};\n/**\n * \\@description\n * The `ControlValueAccessor` for writing a number value and listening to number input changes.\n * The value accessor is used by the `FormControlDirective`, `FormControlName`, and `NgModel`\n * directives.\n *\n * \\@usageNotes\n *\n * ### Using a number input with a reactive form.\n *\n * The following example shows how to use a number input with a reactive form.\n *\n * ```ts\n * const totalCountControl = new FormControl();\n * ```\n *\n * ```\n * \n * ```\n *\n * \\@ngModule ReactiveFormsModule\n * \\@ngModule FormsModule\n * \\@publicApi\n */\nclass NumberValueAccessor {\n /**\n * @param {?} _renderer\n * @param {?} _elementRef\n */\n constructor(_renderer, _elementRef) {\n this._renderer = _renderer;\n this._elementRef = _elementRef;\n /**\n * \\@description\n * The registered callback function called when a change or input event occurs on the input\n * element.\n */\n this.onChange = (/**\n * @param {?} _\n * @return {?}\n */\n (_) => { });\n /**\n * \\@description\n * The registered callback function called when a blur event occurs on the input element.\n */\n this.onTouched = (/**\n * @return {?}\n */\n () => { });\n }\n /**\n * Sets the \"value\" property on the input element.\n *\n * @param {?} value The checked value\n * @return {?}\n */\n writeValue(value) {\n // The value needs to be normalized for IE9, otherwise it is set to 'null' when null\n /** @type {?} */\n const normalizedValue = value == null ? '' : value;\n this._renderer.setProperty(this._elementRef.nativeElement, 'value', normalizedValue);\n }\n /**\n * \\@description\n * Registers a function called when the control value changes.\n *\n * @param {?} fn The callback function\n * @return {?}\n */\n registerOnChange(fn) {\n this.onChange = (/**\n * @param {?} value\n * @return {?}\n */\n (value) => {\n fn(value == '' ? null : parseFloat(value));\n });\n }\n /**\n * \\@description\n * Registers a function called when the control is touched.\n *\n * @param {?} fn The callback function\n * @return {?}\n */\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n /**\n * Sets the \"disabled\" property on the input element.\n *\n * @param {?} isDisabled The disabled value\n * @return {?}\n */\n setDisabledState(isDisabled) {\n this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled);\n }\n}\nNumberValueAccessor.ɵfac = function NumberValueAccessor_Factory(t) { return new (t || NumberValueAccessor)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nNumberValueAccessor.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: NumberValueAccessor, selectors: [[\"input\", \"type\", \"number\", \"formControlName\", \"\"], [\"input\", \"type\", \"number\", \"formControl\", \"\"], [\"input\", \"type\", \"number\", \"ngModel\", \"\"]], hostBindings: function NumberValueAccessor_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"change\", function NumberValueAccessor_change_HostBindingHandler($event) { return ctx.onChange($event.target.value); })(\"input\", function NumberValueAccessor_input_HostBindingHandler($event) { return ctx.onChange($event.target.value); })(\"blur\", function NumberValueAccessor_blur_HostBindingHandler() { return ctx.onTouched(); });\n } }, features: [ɵngcc0.ɵɵProvidersFeature([NUMBER_VALUE_ACCESSOR])] });\n/** @nocollapse */\nNumberValueAccessor.ctorParameters = () => [\n { type: Renderer2 },\n { type: ElementRef }\n];\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NumberValueAccessor, [{\n type: Directive,\n args: [{\n selector: 'input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]',\n host: {\n '(change)': 'onChange($event.target.value)',\n '(input)': 'onChange($event.target.value)',\n '(blur)': 'onTouched()'\n },\n providers: [NUMBER_VALUE_ACCESSOR]\n }]\n }], function () { return [{ type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }]; }, null); })();\nif (false) {\n /**\n * \\@description\n * The registered callback function called when a change or input event occurs on the input\n * element.\n * @type {?}\n */\n NumberValueAccessor.prototype.onChange;\n /**\n * \\@description\n * The registered callback function called when a blur event occurs on the input element.\n * @type {?}\n */\n NumberValueAccessor.prototype.onTouched;\n /**\n * @type {?}\n * @private\n */\n NumberValueAccessor.prototype._renderer;\n /**\n * @type {?}\n * @private\n */\n NumberValueAccessor.prototype._elementRef;\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/forms/src/directives/radio_control_value_accessor.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst RADIO_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef((/**\n * @return {?}\n */\n () => RadioControlValueAccessor)),\n multi: true\n};\n/**\n * \\@description\n * Class used by Angular to track radio buttons. For internal use only.\n */\nclass RadioControlRegistry {\n constructor() {\n this._accessors = [];\n }\n /**\n * \\@description\n * Adds a control to the internal registry. For internal use only.\n * @param {?} control\n * @param {?} accessor\n * @return {?}\n */\n add(control, accessor) {\n this._accessors.push([control, accessor]);\n }\n /**\n * \\@description\n * Removes a control from the internal registry. For internal use only.\n * @param {?} accessor\n * @return {?}\n */\n remove(accessor) {\n for (let i = this._accessors.length - 1; i >= 0; --i) {\n if (this._accessors[i][1] === accessor) {\n this._accessors.splice(i, 1);\n return;\n }\n }\n }\n /**\n * \\@description\n * Selects a radio button. For internal use only.\n * @param {?} accessor\n * @return {?}\n */\n select(accessor) {\n this._accessors.forEach((/**\n * @param {?} c\n * @return {?}\n */\n (c) => {\n if (this._isSameGroup(c, accessor) && c[1] !== accessor) {\n c[1].fireUncheck(accessor.value);\n }\n }));\n }\n /**\n * @private\n * @param {?} controlPair\n * @param {?} accessor\n * @return {?}\n */\n _isSameGroup(controlPair, accessor) {\n if (!controlPair[0].control)\n return false;\n return controlPair[0]._parent === accessor._control._parent &&\n controlPair[1].name === accessor.name;\n }\n}\nRadioControlRegistry.ɵfac = function RadioControlRegistry_Factory(t) { return new (t || RadioControlRegistry)(); };\nRadioControlRegistry.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: RadioControlRegistry, factory: RadioControlRegistry.ɵfac });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(RadioControlRegistry, [{\n type: Injectable\n }], function () { return []; }, null); })();\nif (false) {\n /**\n * @type {?}\n * @private\n */\n RadioControlRegistry.prototype._accessors;\n}\n/**\n * \\@description\n * The `ControlValueAccessor` for writing radio control values and listening to radio control\n * changes. The value accessor is used by the `FormControlDirective`, `FormControlName`, and\n * `NgModel` directives.\n *\n * \\@usageNotes\n *\n * ### Using radio buttons with reactive form directives\n *\n * The follow example shows how to use radio buttons in a reactive form. When using radio buttons in\n * a reactive form, radio buttons in the same group should have the same `formControlName`.\n * Providing a `name` attribute is optional.\n *\n * {\\@example forms/ts/reactiveRadioButtons/reactive_radio_button_example.ts region='Reactive'}\n *\n * \\@ngModule ReactiveFormsModule\n * \\@ngModule FormsModule\n * \\@publicApi\n */\nclass RadioControlValueAccessor {\n /**\n * @param {?} _renderer\n * @param {?} _elementRef\n * @param {?} _registry\n * @param {?} _injector\n */\n constructor(_renderer, _elementRef, _registry, _injector) {\n this._renderer = _renderer;\n this._elementRef = _elementRef;\n this._registry = _registry;\n this._injector = _injector;\n /**\n * \\@description\n * The registered callback function called when a change event occurs on the input element.\n */\n this.onChange = (/**\n * @return {?}\n */\n () => { });\n /**\n * \\@description\n * The registered callback function called when a blur event occurs on the input element.\n */\n this.onTouched = (/**\n * @return {?}\n */\n () => { });\n }\n /**\n * \\@description\n * A lifecycle method called when the directive is initialized. For internal use only.\n * @return {?}\n */\n ngOnInit() {\n this._control = this._injector.get(NgControl);\n this._checkName();\n this._registry.add(this._control, this);\n }\n /**\n * \\@description\n * Lifecycle method called before the directive's instance is destroyed. For internal use only.\n * @return {?}\n */\n ngOnDestroy() {\n this._registry.remove(this);\n }\n /**\n * \\@description\n * Sets the \"checked\" property value on the radio input element.\n *\n * @param {?} value The checked value\n * @return {?}\n */\n writeValue(value) {\n this._state = value === this.value;\n this._renderer.setProperty(this._elementRef.nativeElement, 'checked', this._state);\n }\n /**\n * \\@description\n * Registers a function called when the control value changes.\n *\n * @param {?} fn The callback function\n * @return {?}\n */\n registerOnChange(fn) {\n this._fn = fn;\n this.onChange = (/**\n * @return {?}\n */\n () => {\n fn(this.value);\n this._registry.select(this);\n });\n }\n /**\n * Sets the \"value\" on the radio input element and unchecks it.\n *\n * @param {?} value\n * @return {?}\n */\n fireUncheck(value) {\n this.writeValue(value);\n }\n /**\n * \\@description\n * Registers a function called when the control is touched.\n *\n * @param {?} fn The callback function\n * @return {?}\n */\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n /**\n * Sets the \"disabled\" property on the input element.\n *\n * @param {?} isDisabled The disabled value\n * @return {?}\n */\n setDisabledState(isDisabled) {\n this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled);\n }\n /**\n * @private\n * @return {?}\n */\n _checkName() {\n if (this.name && this.formControlName && this.name !== this.formControlName) {\n this._throwNameError();\n }\n if (!this.name && this.formControlName)\n this.name = this.formControlName;\n }\n /**\n * @private\n * @return {?}\n */\n _throwNameError() {\n throw new Error(`\n If you define both a name and a formControlName attribute on your radio button, their values\n must match. Ex: \n `);\n }\n}\nRadioControlValueAccessor.ɵfac = function RadioControlValueAccessor_Factory(t) { return new (t || RadioControlValueAccessor)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(RadioControlRegistry), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector)); };\nRadioControlValueAccessor.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: RadioControlValueAccessor, selectors: [[\"input\", \"type\", \"radio\", \"formControlName\", \"\"], [\"input\", \"type\", \"radio\", \"formControl\", \"\"], [\"input\", \"type\", \"radio\", \"ngModel\", \"\"]], hostBindings: function RadioControlValueAccessor_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"change\", function RadioControlValueAccessor_change_HostBindingHandler() { return ctx.onChange(); })(\"blur\", function RadioControlValueAccessor_blur_HostBindingHandler() { return ctx.onTouched(); });\n } }, inputs: { name: \"name\", formControlName: \"formControlName\", value: \"value\" }, features: [ɵngcc0.ɵɵProvidersFeature([RADIO_VALUE_ACCESSOR])] });\n/** @nocollapse */\nRadioControlValueAccessor.ctorParameters = () => [\n { type: Renderer2 },\n { type: ElementRef },\n { type: RadioControlRegistry },\n { type: Injector }\n];\nRadioControlValueAccessor.propDecorators = {\n name: [{ type: Input }],\n formControlName: [{ type: Input }],\n value: [{ type: Input }]\n};\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(RadioControlValueAccessor, [{\n type: Directive,\n args: [{\n selector: 'input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]',\n host: { '(change)': 'onChange()', '(blur)': 'onTouched()' },\n providers: [RADIO_VALUE_ACCESSOR]\n }]\n }], function () { return [{ type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }, { type: RadioControlRegistry }, { type: ɵngcc0.Injector }]; }, { name: [{\n type: Input\n }], formControlName: [{\n type: Input\n }], value: [{\n type: Input\n }] }); })();\nif (false) {\n /**\n * \\@internal\n * @type {?}\n */\n RadioControlValueAccessor.prototype._state;\n /**\n * \\@internal\n * @type {?}\n */\n RadioControlValueAccessor.prototype._control;\n /**\n * \\@internal\n * @type {?}\n */\n RadioControlValueAccessor.prototype._fn;\n /**\n * \\@description\n * The registered callback function called when a change event occurs on the input element.\n * @type {?}\n */\n RadioControlValueAccessor.prototype.onChange;\n /**\n * \\@description\n * The registered callback function called when a blur event occurs on the input element.\n * @type {?}\n */\n RadioControlValueAccessor.prototype.onTouched;\n /**\n * \\@description\n * Tracks the name of the radio input element.\n * @type {?}\n */\n RadioControlValueAccessor.prototype.name;\n /**\n * \\@description\n * Tracks the name of the `FormControl` bound to the directive. The name corresponds\n * to a key in the parent `FormGroup` or `FormArray`.\n * @type {?}\n */\n RadioControlValueAccessor.prototype.formControlName;\n /**\n * \\@description\n * Tracks the value of the radio input element\n * @type {?}\n */\n RadioControlValueAccessor.prototype.value;\n /**\n * @type {?}\n * @private\n */\n RadioControlValueAccessor.prototype._renderer;\n /**\n * @type {?}\n * @private\n */\n RadioControlValueAccessor.prototype._elementRef;\n /**\n * @type {?}\n * @private\n */\n RadioControlValueAccessor.prototype._registry;\n /**\n * @type {?}\n * @private\n */\n RadioControlValueAccessor.prototype._injector;\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/forms/src/directives/range_value_accessor.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst RANGE_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef((/**\n * @return {?}\n */\n () => RangeValueAccessor)),\n multi: true\n};\n/**\n * \\@description\n * The `ControlValueAccessor` for writing a range value and listening to range input changes.\n * The value accessor is used by the `FormControlDirective`, `FormControlName`, and `NgModel`\n * directives.\n *\n * \\@usageNotes\n *\n * ### Using a range input with a reactive form\n *\n * The following example shows how to use a range input with a reactive form.\n *\n * ```ts\n * const ageControl = new FormControl();\n * ```\n *\n * ```\n * \n * ```\n *\n * \\@ngModule ReactiveFormsModule\n * \\@ngModule FormsModule\n * \\@publicApi\n */\nclass RangeValueAccessor {\n /**\n * @param {?} _renderer\n * @param {?} _elementRef\n */\n constructor(_renderer, _elementRef) {\n this._renderer = _renderer;\n this._elementRef = _elementRef;\n /**\n * \\@description\n * The registered callback function called when a change or input event occurs on the input\n * element.\n */\n this.onChange = (/**\n * @param {?} _\n * @return {?}\n */\n (_) => { });\n /**\n * \\@description\n * The registered callback function called when a blur event occurs on the input element.\n */\n this.onTouched = (/**\n * @return {?}\n */\n () => { });\n }\n /**\n * Sets the \"value\" property on the input element.\n *\n * @param {?} value The checked value\n * @return {?}\n */\n writeValue(value) {\n this._renderer.setProperty(this._elementRef.nativeElement, 'value', parseFloat(value));\n }\n /**\n * \\@description\n * Registers a function called when the control value changes.\n *\n * @param {?} fn The callback function\n * @return {?}\n */\n registerOnChange(fn) {\n this.onChange = (/**\n * @param {?} value\n * @return {?}\n */\n (value) => {\n fn(value == '' ? null : parseFloat(value));\n });\n }\n /**\n * \\@description\n * Registers a function called when the control is touched.\n *\n * @param {?} fn The callback function\n * @return {?}\n */\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n /**\n * Sets the \"disabled\" property on the range input element.\n *\n * @param {?} isDisabled The disabled value\n * @return {?}\n */\n setDisabledState(isDisabled) {\n this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled);\n }\n}\nRangeValueAccessor.ɵfac = function RangeValueAccessor_Factory(t) { return new (t || RangeValueAccessor)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nRangeValueAccessor.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: RangeValueAccessor, selectors: [[\"input\", \"type\", \"range\", \"formControlName\", \"\"], [\"input\", \"type\", \"range\", \"formControl\", \"\"], [\"input\", \"type\", \"range\", \"ngModel\", \"\"]], hostBindings: function RangeValueAccessor_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"change\", function RangeValueAccessor_change_HostBindingHandler($event) { return ctx.onChange($event.target.value); })(\"input\", function RangeValueAccessor_input_HostBindingHandler($event) { return ctx.onChange($event.target.value); })(\"blur\", function RangeValueAccessor_blur_HostBindingHandler() { return ctx.onTouched(); });\n } }, features: [ɵngcc0.ɵɵProvidersFeature([RANGE_VALUE_ACCESSOR])] });\n/** @nocollapse */\nRangeValueAccessor.ctorParameters = () => [\n { type: Renderer2 },\n { type: ElementRef }\n];\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(RangeValueAccessor, [{\n type: Directive,\n args: [{\n selector: 'input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]',\n host: {\n '(change)': 'onChange($event.target.value)',\n '(input)': 'onChange($event.target.value)',\n '(blur)': 'onTouched()'\n },\n providers: [RANGE_VALUE_ACCESSOR]\n }]\n }], function () { return [{ type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }]; }, null); })();\nif (false) {\n /**\n * \\@description\n * The registered callback function called when a change or input event occurs on the input\n * element.\n * @type {?}\n */\n RangeValueAccessor.prototype.onChange;\n /**\n * \\@description\n * The registered callback function called when a blur event occurs on the input element.\n * @type {?}\n */\n RangeValueAccessor.prototype.onTouched;\n /**\n * @type {?}\n * @private\n */\n RangeValueAccessor.prototype._renderer;\n /**\n * @type {?}\n * @private\n */\n RangeValueAccessor.prototype._elementRef;\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/forms/src/directives/error_examples.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** @type {?} */\nconst FormErrorExamples = {\n formControlName: `\n