{"version":3,"file":"form-field.js","sources":["../../packages/material/form-field/error.js","../../packages/material/form-field/form-field-control.js","../../packages/material/form-field/form-field-errors.js","../../packages/material/form-field/hint.js","../../packages/material/form-field/placeholder.js","../../packages/material/form-field/prefix.js","../../packages/material/form-field/suffix.js","../../packages/material/form-field/form-field.js","../../packages/material/form-field/form-field-module.js","../../packages/material/form-field/index.js"],"sourcesContent":["/**\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 */\nimport { Directive, Input } from '@angular/core';\nlet /** @type {?} */ nextUniqueId = 0;\n/**\n * Single error message to be shown underneath the form field.\n */\nexport class MatError {\n constructor() {\n this.id = `mat-error-${nextUniqueId++}`;\n }\n}\nMatError.decorators = [\n { type: Directive, args: [{\n selector: 'mat-error',\n host: {\n 'class': 'mat-error',\n 'role': 'alert',\n '[attr.id]': 'id',\n }\n },] },\n];\n/**\n * @nocollapse\n */\nMatError.ctorParameters = () => [];\nMatError.propDecorators = {\n 'id': [{ type: Input },],\n};\nfunction MatError_tsickle_Closure_declarations() {\n /** @type {?} */\n MatError.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatError.ctorParameters;\n /** @type {?} */\n MatError.propDecorators;\n /** @type {?} */\n MatError.prototype.id;\n}\n//# sourceMappingURL=error.js.map","/**\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 * An interface which allows a control to work inside of a `MatFormField`.\n * @abstract\n */\nexport class MatFormFieldControl {\n /**\n * Sets the list of element IDs that currently describe this control.\n * @abstract\n * @param {?} ids\n * @return {?}\n */\n setDescribedByIds(ids) { }\n /**\n * Handles a click on the control's container.\n * @abstract\n * @param {?} event\n * @return {?}\n */\n onContainerClick(event) { }\n}\nfunction MatFormFieldControl_tsickle_Closure_declarations() {\n /**\n * The value of the control.\n * @type {?}\n */\n MatFormFieldControl.prototype.value;\n /**\n * Stream that emits whenever the state of the control changes such that the parent `MatFormField`\n * needs to run change detection.\n * @type {?}\n */\n MatFormFieldControl.prototype.stateChanges;\n /**\n * The element ID for this control.\n * @type {?}\n */\n MatFormFieldControl.prototype.id;\n /**\n * The placeholder for this control.\n * @type {?}\n */\n MatFormFieldControl.prototype.placeholder;\n /**\n * Gets the NgControl for this control.\n * @type {?}\n */\n MatFormFieldControl.prototype.ngControl;\n /**\n * Whether the control is focused.\n * @type {?}\n */\n MatFormFieldControl.prototype.focused;\n /**\n * Whether the control is empty.\n * @type {?}\n */\n MatFormFieldControl.prototype.empty;\n /**\n * Whether the `MatFormField` label should try to float.\n * @type {?}\n */\n MatFormFieldControl.prototype.shouldPlaceholderFloat;\n /**\n * Whether the control is required.\n * @type {?}\n */\n MatFormFieldControl.prototype.required;\n /**\n * Whether the control is disabled.\n * @type {?}\n */\n MatFormFieldControl.prototype.disabled;\n /**\n * Whether the control is in an error state.\n * @type {?}\n */\n MatFormFieldControl.prototype.errorState;\n /**\n * An optional name for the control type that can be used to distinguish `mat-form-field` elements\n * based on their control type. The form field will add a class,\n * `mat-form-field-type-{{controlType}}` to its root element.\n * @type {?}\n */\n MatFormFieldControl.prototype.controlType;\n}\n//# sourceMappingURL=form-field-control.js.map","/**\n * \\@docs-private\n * @return {?}\n */\nexport function getMatFormFieldPlaceholderConflictError() {\n return Error('Placeholder attribute and child element were both specified.');\n}\n/**\n * \\@docs-private\n * @param {?} align\n * @return {?}\n */\nexport function getMatFormFieldDuplicatedHintError(align) {\n return Error(`A hint was already declared for 'align=\"${align}\"'.`);\n}\n/**\n * \\@docs-private\n * @return {?}\n */\nexport function getMatFormFieldMissingControlError() {\n return Error('mat-form-field must contain a MatFormFieldControl. ' +\n 'Did you forget to add matInput to the native input or textarea element?');\n}\n//# sourceMappingURL=form-field-errors.js.map","/**\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 */\nimport { Directive, Input } from '@angular/core';\nlet /** @type {?} */ nextUniqueId = 0;\n/**\n * Hint text to be shown underneath the form field control.\n */\nexport class MatHint {\n constructor() {\n /**\n * Whether to align the hint label at the start or end of the line.\n */\n this.align = 'start';\n /**\n * Unique ID for the hint. Used for the aria-describedby on the form field control.\n */\n this.id = `mat-hint-${nextUniqueId++}`;\n }\n}\nMatHint.decorators = [\n { type: Directive, args: [{\n selector: 'mat-hint',\n host: {\n 'class': 'mat-hint',\n '[class.mat-right]': 'align == \"end\"',\n '[attr.id]': 'id',\n // Remove align attribute to prevent it from interfering with layout.\n '[attr.align]': 'null',\n }\n },] },\n];\n/**\n * @nocollapse\n */\nMatHint.ctorParameters = () => [];\nMatHint.propDecorators = {\n 'align': [{ type: Input },],\n 'id': [{ type: Input },],\n};\nfunction MatHint_tsickle_Closure_declarations() {\n /** @type {?} */\n MatHint.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatHint.ctorParameters;\n /** @type {?} */\n MatHint.propDecorators;\n /**\n * Whether to align the hint label at the start or end of the line.\n * @type {?}\n */\n MatHint.prototype.align;\n /**\n * Unique ID for the hint. Used for the aria-describedby on the form field control.\n * @type {?}\n */\n MatHint.prototype.id;\n}\n//# sourceMappingURL=hint.js.map","/**\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 */\nimport { Directive } from '@angular/core';\n/**\n * The floating placeholder for an `MatFormField`.\n */\nexport class MatPlaceholder {\n}\nMatPlaceholder.decorators = [\n { type: Directive, args: [{\n selector: 'mat-placeholder'\n },] },\n];\n/**\n * @nocollapse\n */\nMatPlaceholder.ctorParameters = () => [];\nfunction MatPlaceholder_tsickle_Closure_declarations() {\n /** @type {?} */\n MatPlaceholder.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatPlaceholder.ctorParameters;\n}\n//# sourceMappingURL=placeholder.js.map","/**\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 */\nimport { Directive } from '@angular/core';\n/**\n * Prefix to be placed the the front of the form field.\n */\nexport class MatPrefix {\n}\nMatPrefix.decorators = [\n { type: Directive, args: [{\n selector: '[matPrefix]',\n },] },\n];\n/**\n * @nocollapse\n */\nMatPrefix.ctorParameters = () => [];\nfunction MatPrefix_tsickle_Closure_declarations() {\n /** @type {?} */\n MatPrefix.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatPrefix.ctorParameters;\n}\n//# sourceMappingURL=prefix.js.map","/**\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 */\nimport { Directive } from '@angular/core';\n/**\n * Suffix to be placed at the end of the form field.\n */\nexport class MatSuffix {\n}\nMatSuffix.decorators = [\n { type: Directive, args: [{\n selector: '[matSuffix]',\n },] },\n];\n/**\n * @nocollapse\n */\nMatSuffix.ctorParameters = () => [];\nfunction MatSuffix_tsickle_Closure_declarations() {\n /** @type {?} */\n MatSuffix.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatSuffix.ctorParameters;\n}\n//# sourceMappingURL=suffix.js.map","/**\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 */\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { first, startWith } from '@angular/cdk/rxjs';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ContentChildren, ElementRef, Inject, Input, Optional, Renderer2, ViewChild, ViewEncapsulation, } from '@angular/core';\nimport { MAT_PLACEHOLDER_GLOBAL_OPTIONS, } from '@angular/material/core';\nimport { fromEvent } from 'rxjs/observable/fromEvent';\nimport { MatError } from './error';\nimport { MatFormFieldControl } from './form-field-control';\nimport { getMatFormFieldDuplicatedHintError, getMatFormFieldMissingControlError, getMatFormFieldPlaceholderConflictError, } from './form-field-errors';\nimport { MatHint } from './hint';\nimport { MatPlaceholder } from './placeholder';\nimport { MatPrefix } from './prefix';\nimport { MatSuffix } from './suffix';\nlet /** @type {?} */ nextUniqueId = 0;\n/**\n * Container for form controls that applies Material Design styling and behavior.\n */\nexport class MatFormField {\n /**\n * @param {?} _elementRef\n * @param {?} _renderer\n * @param {?} _changeDetectorRef\n * @param {?} placeholderOptions\n */\n constructor(_elementRef, _renderer, _changeDetectorRef, placeholderOptions) {\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n this._changeDetectorRef = _changeDetectorRef;\n /**\n * Color of the form field underline, based on the theme.\n */\n this.color = 'primary';\n /**\n * Override for the logic that disables the placeholder animation in certain cases.\n */\n this._showAlwaysAnimate = false;\n /**\n * State of the mat-hint and mat-error animations.\n */\n this._subscriptAnimationState = '';\n this._hintLabel = '';\n // Unique id for the hint label.\n this._hintLabelId = `mat-hint-${nextUniqueId++}`;\n this._placeholderOptions = placeholderOptions ? placeholderOptions : {};\n this.floatPlaceholder = this._placeholderOptions.float || 'auto';\n }\n /**\n * @deprecated Use `color` instead.\n * @return {?}\n */\n get dividerColor() { return this.color; }\n /**\n * @param {?} value\n * @return {?}\n */\n set dividerColor(value) { this.color = value; }\n /**\n * Whether the required marker should be hidden.\n * @return {?}\n */\n get hideRequiredMarker() { return this._hideRequiredMarker; }\n /**\n * @param {?} value\n * @return {?}\n */\n set hideRequiredMarker(value) {\n this._hideRequiredMarker = coerceBooleanProperty(value);\n }\n /**\n * Whether the floating label should always float or not.\n * @return {?}\n */\n get _shouldAlwaysFloat() {\n return this._floatPlaceholder === 'always' && !this._showAlwaysAnimate;\n }\n /**\n * Whether the placeholder can float or not.\n * @return {?}\n */\n get _canPlaceholderFloat() { return this._floatPlaceholder !== 'never'; }\n /**\n * Text for the form field hint.\n * @return {?}\n */\n get hintLabel() { return this._hintLabel; }\n /**\n * @param {?} value\n * @return {?}\n */\n set hintLabel(value) {\n this._hintLabel = value;\n this._processHints();\n }\n /**\n * Whether the placeholder should always float, never float or float as the user types.\n * @return {?}\n */\n get floatPlaceholder() { return this._floatPlaceholder; }\n /**\n * @param {?} value\n * @return {?}\n */\n set floatPlaceholder(value) {\n if (value !== this._floatPlaceholder) {\n this._floatPlaceholder = value || this._placeholderOptions.float || 'auto';\n this._changeDetectorRef.markForCheck();\n }\n }\n /**\n * @return {?}\n */\n ngAfterContentInit() {\n this._validateControlChild();\n if (this._control.controlType) {\n this._renderer.addClass(this._elementRef.nativeElement, `mat-form-field-type-${this._control.controlType}`);\n }\n // Subscribe to changes in the child control state in order to update the form field UI.\n startWith.call(this._control.stateChanges, null).subscribe(() => {\n this._validatePlaceholders();\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n let /** @type {?} */ ngControl = this._control.ngControl;\n if (ngControl && ngControl.valueChanges) {\n ngControl.valueChanges.subscribe(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n // Re-validate when the number of hints changes.\n startWith.call(this._hintChildren.changes, null).subscribe(() => {\n this._processHints();\n this._changeDetectorRef.markForCheck();\n });\n // Update the aria-described by when the number of errors changes.\n startWith.call(this._errorChildren.changes, null).subscribe(() => {\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n }\n /**\n * @return {?}\n */\n ngAfterContentChecked() {\n this._validateControlChild();\n }\n /**\n * @return {?}\n */\n ngAfterViewInit() {\n // Avoid animations on load.\n this._subscriptAnimationState = 'enter';\n this._changeDetectorRef.detectChanges();\n }\n /**\n * Determines whether a class from the NgControl should be forwarded to the host element.\n * @param {?} prop\n * @return {?}\n */\n _shouldForward(prop) {\n let /** @type {?} */ ngControl = this._control ? this._control.ngControl : null;\n return ngControl && ((ngControl))[prop];\n }\n /**\n * Whether the form field has a placeholder.\n * @return {?}\n */\n _hasPlaceholder() {\n return !!(this._control.placeholder || this._placeholderChild);\n }\n /**\n * Determines whether to display hints or errors.\n * @return {?}\n */\n _getDisplayedMessages() {\n return (this._errorChildren && this._errorChildren.length > 0 &&\n this._control.errorState) ? 'error' : 'hint';\n }\n /**\n * Animates the placeholder up and locks it in position.\n * @return {?}\n */\n _animateAndLockPlaceholder() {\n if (this._placeholder && this._canPlaceholderFloat) {\n this._showAlwaysAnimate = true;\n this._floatPlaceholder = 'always';\n first.call(fromEvent(this._placeholder.nativeElement, 'transitionend')).subscribe(() => {\n this._showAlwaysAnimate = false;\n });\n this._changeDetectorRef.markForCheck();\n }\n }\n /**\n * Ensure that there is only one placeholder (either `placeholder` attribute on the child control\n * or child element with the `mat-placeholder` directive).\n * @return {?}\n */\n _validatePlaceholders() {\n if (this._control.placeholder && this._placeholderChild) {\n throw getMatFormFieldPlaceholderConflictError();\n }\n }\n /**\n * Does any extra processing that is required when handling the hints.\n * @return {?}\n */\n _processHints() {\n this._validateHints();\n this._syncDescribedByIds();\n }\n /**\n * Ensure that there is a maximum of one of each `` alignment specified, with the\n * attribute being considered as `align=\"start\"`.\n * @return {?}\n */\n _validateHints() {\n if (this._hintChildren) {\n let /** @type {?} */ startHint;\n let /** @type {?} */ endHint;\n this._hintChildren.forEach((hint) => {\n if (hint.align == 'start') {\n if (startHint || this.hintLabel) {\n throw getMatFormFieldDuplicatedHintError('start');\n }\n startHint = hint;\n }\n else if (hint.align == 'end') {\n if (endHint) {\n throw getMatFormFieldDuplicatedHintError('end');\n }\n endHint = hint;\n }\n });\n }\n }\n /**\n * Sets the list of element IDs that describe the child control. This allows the control to update\n * its `aria-describedby` attribute accordingly.\n * @return {?}\n */\n _syncDescribedByIds() {\n if (this._control) {\n let /** @type {?} */ ids = [];\n if (this._getDisplayedMessages() === 'hint') {\n let /** @type {?} */ startHint = this._hintChildren ?\n this._hintChildren.find(hint => hint.align === 'start') : null;\n let /** @type {?} */ endHint = this._hintChildren ?\n this._hintChildren.find(hint => hint.align === 'end') : null;\n if (startHint) {\n ids.push(startHint.id);\n }\n else if (this._hintLabel) {\n ids.push(this._hintLabelId);\n }\n if (endHint) {\n ids.push(endHint.id);\n }\n }\n else if (this._errorChildren) {\n ids = this._errorChildren.map(error => error.id);\n }\n this._control.setDescribedByIds(ids);\n }\n }\n /**\n * Throws an error if the form field's control is missing.\n * @return {?}\n */\n _validateControlChild() {\n if (!this._control) {\n throw getMatFormFieldMissingControlError();\n }\n }\n}\nMatFormField.decorators = [\n { type: Component, args: [{// TODO(mmalerba): the input-container selectors and classes are deprecated and will be removed.\n selector: 'mat-input-container, mat-form-field',\n exportAs: 'matFormField',\n template: \"
{{hintLabel}}
\",\n // MatInput is a directive and can't have styles, so we need to include its styles here.\n // The MatInput styles are fairly minimal so it shouldn't be a big deal for people who\n // aren't using MatInput.\n styles: [\".mat-form-field{display:inline-block;position:relative;text-align:left}[dir=rtl] .mat-form-field{text-align:right}.mat-form-field-wrapper{position:relative}.mat-form-field-flex{display:inline-flex;align-items:baseline;width:100%}.mat-form-field-prefix,.mat-form-field-suffix{white-space:nowrap;flex:none}.mat-form-field-prefix .mat-icon,.mat-form-field-suffix .mat-icon{width:1em}.mat-form-field-prefix .mat-icon-button,.mat-form-field-suffix .mat-icon-button{font:inherit;vertical-align:baseline}.mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-suffix .mat-icon-button .mat-icon{font-size:inherit}.mat-form-field-infix{display:block;position:relative;flex:auto;min-width:0}.mat-form-field-placeholder-wrapper{position:absolute;left:0;box-sizing:content-box;width:100%;height:100%;overflow:hidden;pointer-events:none}.mat-form-field-placeholder{position:absolute;left:0;font:inherit;pointer-events:none;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transform:perspective(100px);-ms-transform:none;transform-origin:0 0;transition:transform .4s cubic-bezier(.25,.8,.25,1),color .4s cubic-bezier(.25,.8,.25,1),width .4s cubic-bezier(.25,.8,.25,1);display:none}[dir=rtl] .mat-form-field-placeholder{transform-origin:100% 0;left:auto;right:0}.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-placeholder,.mat-form-field-empty.mat-form-field-placeholder{display:block}.mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-placeholder-wrapper .mat-form-field-placeholder{display:none}.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-placeholder-wrapper .mat-form-field-placeholder{display:block;transition:none}.mat-form-field-placeholder:not(.mat-form-field-empty){transition:none}.mat-form-field-underline{position:absolute;height:1px;width:100%}.mat-form-field-underline.mat-disabled{background-position:0;background-color:transparent}.mat-form-field-underline .mat-form-field-ripple{position:absolute;height:1px;top:0;left:0;width:100%;transform-origin:50%;transform:scaleX(.5);visibility:hidden;transition:background-color .3s cubic-bezier(.55,0,.55,.2)}.mat-focused .mat-form-field-underline .mat-form-field-ripple{height:2px}.mat-focused .mat-form-field-underline .mat-form-field-ripple,.mat-form-field-invalid .mat-form-field-underline .mat-form-field-ripple{visibility:visible;transform:scaleX(1);transition:transform 150ms linear,background-color .3s cubic-bezier(.55,0,.55,.2)}.mat-form-field-subscript-wrapper{position:absolute;width:100%;overflow:hidden}.mat-form-field-placeholder-wrapper .mat-icon,.mat-form-field-subscript-wrapper .mat-icon{width:1em;height:1em;font-size:inherit;vertical-align:baseline}.mat-form-field-hint-wrapper{display:flex}.mat-form-field-hint-spacer{flex:1 0 1em}.mat-error{display:block} .mat-input-element{font:inherit;background:0 0;color:currentColor;border:none;outline:0;padding:0;margin:0;width:100%;max-width:100%;vertical-align:bottom}.mat-input-element:-moz-ui-invalid{box-shadow:none}.mat-input-element::placeholder{color:transparent!important}.mat-input-element::-moz-placeholder{color:transparent!important}.mat-input-element::-webkit-input-placeholder{color:transparent!important}.mat-input-element:-ms-input-placeholder{color:transparent!important}textarea.mat-input-element{resize:vertical;overflow:auto}\"],\n animations: [\n // TODO(mmalerba): Use angular animations for placeholder animation as well.\n trigger('transitionMessages', [\n state('enter', style({ opacity: 1, transform: 'translateY(0%)' })),\n transition('void => enter', [\n style({ opacity: 0, transform: 'translateY(-100%)' }),\n animate('300ms cubic-bezier(0.55, 0, 0.55, 0.2)'),\n ]),\n ]),\n ],\n host: {\n 'class': 'mat-input-container mat-form-field',\n '[class.mat-input-invalid]': '_control.errorState',\n '[class.mat-form-field-invalid]': '_control.errorState',\n '[class.mat-form-field-can-float]': '_canPlaceholderFloat',\n '[class.mat-form-field-should-float]': '_control.shouldPlaceholderFloat || _shouldAlwaysFloat',\n '[class.mat-focused]': '_control.focused',\n '[class.mat-primary]': 'color == \"primary\"',\n '[class.mat-accent]': 'color == \"accent\"',\n '[class.mat-warn]': 'color == \"warn\"',\n '[class.ng-untouched]': '_shouldForward(\"untouched\")',\n '[class.ng-touched]': '_shouldForward(\"touched\")',\n '[class.ng-pristine]': '_shouldForward(\"pristine\")',\n '[class.ng-dirty]': '_shouldForward(\"dirty\")',\n '[class.ng-valid]': '_shouldForward(\"valid\")',\n '[class.ng-invalid]': '_shouldForward(\"invalid\")',\n '[class.ng-pending]': '_shouldForward(\"pending\")',\n },\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n },] },\n];\n/**\n * @nocollapse\n */\nMatFormField.ctorParameters = () => [\n { type: ElementRef, },\n { type: Renderer2, },\n { type: ChangeDetectorRef, },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_PLACEHOLDER_GLOBAL_OPTIONS,] },] },\n];\nMatFormField.propDecorators = {\n 'color': [{ type: Input },],\n 'dividerColor': [{ type: Input },],\n 'hideRequiredMarker': [{ type: Input },],\n 'hintLabel': [{ type: Input },],\n 'floatPlaceholder': [{ type: Input },],\n 'underlineRef': [{ type: ViewChild, args: ['underline',] },],\n '_connectionContainerRef': [{ type: ViewChild, args: ['connectionContainer',] },],\n '_placeholder': [{ type: ViewChild, args: ['placeholder',] },],\n '_control': [{ type: ContentChild, args: [MatFormFieldControl,] },],\n '_placeholderChild': [{ type: ContentChild, args: [MatPlaceholder,] },],\n '_errorChildren': [{ type: ContentChildren, args: [MatError,] },],\n '_hintChildren': [{ type: ContentChildren, args: [MatHint,] },],\n '_prefixChildren': [{ type: ContentChildren, args: [MatPrefix,] },],\n '_suffixChildren': [{ type: ContentChildren, args: [MatSuffix,] },],\n};\nfunction MatFormField_tsickle_Closure_declarations() {\n /** @type {?} */\n MatFormField.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatFormField.ctorParameters;\n /** @type {?} */\n MatFormField.propDecorators;\n /** @type {?} */\n MatFormField.prototype._placeholderOptions;\n /**\n * Color of the form field underline, based on the theme.\n * @type {?}\n */\n MatFormField.prototype.color;\n /** @type {?} */\n MatFormField.prototype._hideRequiredMarker;\n /**\n * Override for the logic that disables the placeholder animation in certain cases.\n * @type {?}\n */\n MatFormField.prototype._showAlwaysAnimate;\n /**\n * State of the mat-hint and mat-error animations.\n * @type {?}\n */\n MatFormField.prototype._subscriptAnimationState;\n /** @type {?} */\n MatFormField.prototype._hintLabel;\n /** @type {?} */\n MatFormField.prototype._hintLabelId;\n /** @type {?} */\n MatFormField.prototype._floatPlaceholder;\n /**\n * Reference to the form field's underline element.\n * @type {?}\n */\n MatFormField.prototype.underlineRef;\n /** @type {?} */\n MatFormField.prototype._connectionContainerRef;\n /** @type {?} */\n MatFormField.prototype._placeholder;\n /** @type {?} */\n MatFormField.prototype._control;\n /** @type {?} */\n MatFormField.prototype._placeholderChild;\n /** @type {?} */\n MatFormField.prototype._errorChildren;\n /** @type {?} */\n MatFormField.prototype._hintChildren;\n /** @type {?} */\n MatFormField.prototype._prefixChildren;\n /** @type {?} */\n MatFormField.prototype._suffixChildren;\n /** @type {?} */\n MatFormField.prototype._elementRef;\n /** @type {?} */\n MatFormField.prototype._renderer;\n /** @type {?} */\n MatFormField.prototype._changeDetectorRef;\n}\n//# sourceMappingURL=form-field.js.map","/**\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 */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { MatError } from './error';\nimport { MatFormField } from './form-field';\nimport { MatHint } from './hint';\nimport { MatPlaceholder } from './placeholder';\nimport { MatPrefix } from './prefix';\nimport { MatSuffix } from './suffix';\nexport class MatFormFieldModule {\n}\nMatFormFieldModule.decorators = [\n { type: NgModule, args: [{\n declarations: [\n MatError,\n MatHint,\n MatFormField,\n MatPlaceholder,\n MatPrefix,\n MatSuffix,\n ],\n imports: [\n CommonModule,\n PlatformModule,\n ],\n exports: [\n MatError,\n MatHint,\n MatFormField,\n MatPlaceholder,\n MatPrefix,\n MatSuffix,\n ],\n },] },\n];\n/**\n * @nocollapse\n */\nMatFormFieldModule.ctorParameters = () => [];\nfunction MatFormFieldModule_tsickle_Closure_declarations() {\n /** @type {?} */\n MatFormFieldModule.decorators;\n /**\n * @nocollapse\n * @type {?}\n */\n MatFormFieldModule.ctorParameters;\n}\n//# sourceMappingURL=form-field-module.js.map","/**\n * Generated bundle index. Do not edit.\n */\nexport { MatFormFieldModule, MatError, MatFormField, MatFormFieldControl, getMatFormFieldPlaceholderConflictError, getMatFormFieldDuplicatedHintError, getMatFormFieldMissingControlError, MatHint, MatPlaceholder, MatPrefix, MatSuffix } from './public-api';\n//# sourceMappingURL=index.js.map"],"names":["nextUniqueId"],"mappings":"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"}