@angular/material-experimental 14.0.0-next.8 → 14.0.0-next.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_index.scss +3 -0
- package/column-resize/_column-resize-theme.scss +15 -17
- package/esm2020/column-resize/column-resize-directives/column-resize-flex.mjs +3 -3
- package/esm2020/column-resize/column-resize-directives/column-resize.mjs +3 -3
- package/esm2020/column-resize/column-resize-directives/default-enabled-column-resize-flex.mjs +3 -3
- package/esm2020/column-resize/column-resize-directives/default-enabled-column-resize.mjs +3 -3
- package/esm2020/column-resize/column-resize-module.mjs +12 -12
- package/esm2020/column-resize/overlay-handle.mjs +3 -3
- package/esm2020/column-resize/resizable-directives/default-enabled-resizable.mjs +3 -3
- package/esm2020/column-resize/resizable-directives/resizable.mjs +3 -3
- package/esm2020/column-resize/resize-strategy.mjs +3 -3
- package/esm2020/mdc-autocomplete/autocomplete-origin.mjs +3 -3
- package/esm2020/mdc-autocomplete/autocomplete-trigger.mjs +3 -3
- package/esm2020/mdc-autocomplete/autocomplete.mjs +5 -5
- package/esm2020/mdc-autocomplete/module.mjs +4 -4
- package/esm2020/mdc-button/button-base.mjs +6 -6
- package/esm2020/mdc-button/button.mjs +8 -8
- package/esm2020/mdc-button/fab.mjs +16 -16
- package/esm2020/mdc-button/icon-button.mjs +8 -8
- package/esm2020/mdc-button/module.mjs +4 -4
- package/esm2020/mdc-card/card.mjs +43 -43
- package/esm2020/mdc-card/module.mjs +4 -4
- package/esm2020/mdc-checkbox/checkbox.mjs +4 -4
- package/esm2020/mdc-checkbox/module.mjs +4 -4
- package/esm2020/mdc-chips/chip-action.mjs +3 -3
- package/esm2020/mdc-chips/chip-edit-input.mjs +3 -3
- package/esm2020/mdc-chips/chip-grid.mjs +22 -9
- package/esm2020/mdc-chips/chip-icons.mjs +9 -9
- package/esm2020/mdc-chips/chip-input.mjs +8 -4
- package/esm2020/mdc-chips/chip-listbox.mjs +5 -5
- package/esm2020/mdc-chips/chip-option.mjs +4 -4
- package/esm2020/mdc-chips/chip-row.mjs +4 -4
- package/esm2020/mdc-chips/chip-set.mjs +6 -8
- package/esm2020/mdc-chips/chip-text-control.mjs +1 -1
- package/esm2020/mdc-chips/chip.mjs +4 -4
- package/esm2020/mdc-chips/module.mjs +4 -4
- package/esm2020/mdc-core/option/index.mjs +4 -4
- package/esm2020/mdc-core/option/optgroup.mjs +4 -4
- package/esm2020/mdc-core/option/option.mjs +4 -4
- package/esm2020/mdc-dialog/dialog-container.mjs +4 -4
- package/esm2020/mdc-dialog/dialog-content-directives.mjs +12 -12
- package/esm2020/mdc-dialog/dialog.mjs +3 -3
- package/esm2020/mdc-dialog/module.mjs +4 -4
- package/esm2020/mdc-form-field/directives/error.mjs +3 -3
- package/esm2020/mdc-form-field/directives/floating-label.mjs +3 -3
- package/esm2020/mdc-form-field/directives/hint.mjs +3 -3
- package/esm2020/mdc-form-field/directives/label.mjs +3 -3
- package/esm2020/mdc-form-field/directives/line-ripple.mjs +3 -3
- package/esm2020/mdc-form-field/directives/notched-outline.mjs +3 -3
- package/esm2020/mdc-form-field/directives/prefix.mjs +3 -3
- package/esm2020/mdc-form-field/directives/suffix.mjs +3 -3
- package/esm2020/mdc-form-field/form-field.mjs +5 -5
- package/esm2020/mdc-form-field/module.mjs +4 -4
- package/esm2020/mdc-form-field/testing/public-api.mjs +4 -4
- package/esm2020/mdc-input/input.mjs +3 -3
- package/esm2020/mdc-input/module.mjs +4 -4
- package/esm2020/mdc-list/action-list.mjs +4 -4
- package/esm2020/mdc-list/interactive-list-base.mjs +3 -3
- package/esm2020/mdc-list/list-base.mjs +6 -6
- package/esm2020/mdc-list/list-item-sections.mjs +18 -18
- package/esm2020/mdc-list/list-option.mjs +5 -5
- package/esm2020/mdc-list/list.mjs +7 -7
- package/esm2020/mdc-list/module.mjs +4 -4
- package/esm2020/mdc-list/nav-list.mjs +4 -4
- package/esm2020/mdc-list/selection-list.mjs +5 -5
- package/esm2020/mdc-list/subheader.mjs +3 -3
- package/esm2020/mdc-menu/directives.mjs +6 -6
- package/esm2020/mdc-menu/menu-item.mjs +3 -3
- package/esm2020/mdc-menu/menu.mjs +5 -5
- package/esm2020/mdc-menu/module.mjs +4 -4
- package/esm2020/mdc-paginator/module.mjs +4 -4
- package/esm2020/mdc-paginator/paginator.mjs +4 -4
- package/esm2020/mdc-progress-bar/module.mjs +4 -4
- package/esm2020/mdc-progress-bar/progress-bar.mjs +4 -4
- package/esm2020/mdc-progress-spinner/module.mjs +4 -4
- package/esm2020/mdc-progress-spinner/progress-spinner.mjs +4 -4
- package/esm2020/mdc-radio/module.mjs +4 -4
- package/esm2020/mdc-radio/radio.mjs +8 -8
- package/esm2020/mdc-select/module.mjs +4 -4
- package/esm2020/mdc-select/select.mjs +9 -9
- package/esm2020/mdc-slide-toggle/module.mjs +4 -4
- package/esm2020/mdc-slide-toggle/slide-toggle.mjs +4 -4
- package/esm2020/mdc-slider/global-change-and-input-listener.mjs +3 -3
- package/esm2020/mdc-slider/module.mjs +4 -4
- package/esm2020/mdc-slider/slider.mjs +46 -17
- package/esm2020/mdc-snack-bar/module.mjs +4 -4
- package/esm2020/mdc-snack-bar/simple-snack-bar.mjs +4 -4
- package/esm2020/mdc-snack-bar/snack-bar-container.mjs +18 -12
- package/esm2020/mdc-snack-bar/snack-bar-content.mjs +9 -9
- package/esm2020/mdc-snack-bar/snack-bar.mjs +3 -3
- package/esm2020/mdc-table/cell.mjs +21 -21
- package/esm2020/mdc-table/module.mjs +4 -4
- package/esm2020/mdc-table/row.mjs +21 -21
- package/esm2020/mdc-table/table.mjs +8 -8
- package/esm2020/mdc-table/text-column.mjs +3 -3
- package/esm2020/mdc-tabs/module.mjs +4 -4
- package/esm2020/mdc-tabs/tab-body.mjs +8 -8
- package/esm2020/mdc-tabs/tab-content.mjs +3 -3
- package/esm2020/mdc-tabs/tab-group.mjs +5 -5
- package/esm2020/mdc-tabs/tab-header.mjs +4 -4
- package/esm2020/mdc-tabs/tab-label-wrapper.mjs +3 -3
- package/esm2020/mdc-tabs/tab-label.mjs +3 -3
- package/esm2020/mdc-tabs/tab-nav-bar/tab-nav-bar.mjs +11 -11
- package/esm2020/mdc-tabs/tab.mjs +3 -3
- package/esm2020/mdc-tooltip/module.mjs +4 -4
- package/esm2020/mdc-tooltip/tooltip.mjs +7 -7
- package/esm2020/menubar/menubar-item.mjs +4 -4
- package/esm2020/menubar/menubar-module.mjs +4 -4
- package/esm2020/menubar/menubar.mjs +7 -10
- package/esm2020/popover-edit/lens-directives.mjs +9 -9
- package/esm2020/popover-edit/popover-edit-module.mjs +4 -4
- package/esm2020/popover-edit/table-directives.mjs +12 -12
- package/esm2020/selection/row-selection.mjs +3 -3
- package/esm2020/selection/select-all.mjs +3 -3
- package/esm2020/selection/selection-column.mjs +5 -5
- package/esm2020/selection/selection-module.mjs +4 -4
- package/esm2020/selection/selection-toggle.mjs +3 -3
- package/esm2020/selection/selection.mjs +3 -3
- package/esm2020/version.mjs +1 -1
- package/fesm2015/column-resize.mjs +36 -36
- package/fesm2015/material-experimental.mjs +1 -1
- package/fesm2015/material-experimental.mjs.map +1 -1
- package/fesm2015/mdc-autocomplete.mjs +14 -14
- package/fesm2015/mdc-autocomplete.mjs.map +1 -1
- package/fesm2015/mdc-button.mjs +42 -42
- package/fesm2015/mdc-button.mjs.map +1 -1
- package/fesm2015/mdc-card.mjs +47 -47
- package/fesm2015/mdc-card.mjs.map +1 -1
- package/fesm2015/mdc-checkbox.mjs +8 -8
- package/fesm2015/mdc-checkbox.mjs.map +1 -1
- package/fesm2015/mdc-chips.mjs +69 -54
- package/fesm2015/mdc-chips.mjs.map +1 -1
- package/fesm2015/mdc-core.mjs +12 -12
- package/fesm2015/mdc-core.mjs.map +1 -1
- package/fesm2015/mdc-dialog.mjs +23 -23
- package/fesm2015/mdc-dialog.mjs.map +1 -1
- package/fesm2015/mdc-form-field/testing.mjs +1 -1
- package/fesm2015/mdc-form-field/testing.mjs.map +1 -1
- package/fesm2015/mdc-form-field.mjs +32 -32
- package/fesm2015/mdc-form-field.mjs.map +1 -1
- package/fesm2015/mdc-input.mjs +7 -7
- package/fesm2015/mdc-list.mjs +59 -59
- package/fesm2015/mdc-list.mjs.map +1 -1
- package/fesm2015/mdc-menu.mjs +17 -17
- package/fesm2015/mdc-menu.mjs.map +1 -1
- package/fesm2015/mdc-paginator.mjs +8 -8
- package/fesm2015/mdc-paginator.mjs.map +1 -1
- package/fesm2015/mdc-progress-bar.mjs +8 -8
- package/fesm2015/mdc-progress-bar.mjs.map +1 -1
- package/fesm2015/mdc-progress-spinner.mjs +8 -8
- package/fesm2015/mdc-progress-spinner.mjs.map +1 -1
- package/fesm2015/mdc-radio.mjs +11 -11
- package/fesm2015/mdc-radio.mjs.map +1 -1
- package/fesm2015/mdc-select.mjs +12 -12
- package/fesm2015/mdc-select.mjs.map +1 -1
- package/fesm2015/mdc-slide-toggle.mjs +8 -8
- package/fesm2015/mdc-slide-toggle.mjs.map +1 -1
- package/fesm2015/mdc-slider.mjs +54 -23
- package/fesm2015/mdc-slider.mjs.map +1 -1
- package/fesm2015/mdc-snack-bar.mjs +37 -31
- package/fesm2015/mdc-snack-bar.mjs.map +1 -1
- package/fesm2015/mdc-table.mjs +57 -57
- package/fesm2015/mdc-table.mjs.map +1 -1
- package/fesm2015/mdc-tabs.mjs +43 -43
- package/fesm2015/mdc-tabs.mjs.map +1 -1
- package/fesm2015/mdc-tooltip.mjs +11 -11
- package/fesm2015/mdc-tooltip.mjs.map +1 -1
- package/fesm2015/menubar.mjs +14 -17
- package/fesm2015/menubar.mjs.map +1 -1
- package/fesm2015/popover-edit.mjs +25 -25
- package/fesm2015/selection.mjs +21 -21
- package/fesm2015/selection.mjs.map +1 -1
- package/fesm2020/column-resize.mjs +36 -36
- package/fesm2020/material-experimental.mjs +1 -1
- package/fesm2020/material-experimental.mjs.map +1 -1
- package/fesm2020/mdc-autocomplete.mjs +14 -14
- package/fesm2020/mdc-autocomplete.mjs.map +1 -1
- package/fesm2020/mdc-button.mjs +42 -42
- package/fesm2020/mdc-button.mjs.map +1 -1
- package/fesm2020/mdc-card.mjs +47 -47
- package/fesm2020/mdc-card.mjs.map +1 -1
- package/fesm2020/mdc-checkbox.mjs +8 -8
- package/fesm2020/mdc-checkbox.mjs.map +1 -1
- package/fesm2020/mdc-chips.mjs +69 -54
- package/fesm2020/mdc-chips.mjs.map +1 -1
- package/fesm2020/mdc-core.mjs +12 -12
- package/fesm2020/mdc-core.mjs.map +1 -1
- package/fesm2020/mdc-dialog.mjs +23 -23
- package/fesm2020/mdc-dialog.mjs.map +1 -1
- package/fesm2020/mdc-form-field/testing.mjs +1 -1
- package/fesm2020/mdc-form-field/testing.mjs.map +1 -1
- package/fesm2020/mdc-form-field.mjs +32 -32
- package/fesm2020/mdc-form-field.mjs.map +1 -1
- package/fesm2020/mdc-input.mjs +7 -7
- package/fesm2020/mdc-list.mjs +59 -59
- package/fesm2020/mdc-list.mjs.map +1 -1
- package/fesm2020/mdc-menu.mjs +17 -17
- package/fesm2020/mdc-menu.mjs.map +1 -1
- package/fesm2020/mdc-paginator.mjs +8 -8
- package/fesm2020/mdc-paginator.mjs.map +1 -1
- package/fesm2020/mdc-progress-bar.mjs +8 -8
- package/fesm2020/mdc-progress-bar.mjs.map +1 -1
- package/fesm2020/mdc-progress-spinner.mjs +8 -8
- package/fesm2020/mdc-progress-spinner.mjs.map +1 -1
- package/fesm2020/mdc-radio.mjs +11 -11
- package/fesm2020/mdc-radio.mjs.map +1 -1
- package/fesm2020/mdc-select.mjs +12 -12
- package/fesm2020/mdc-select.mjs.map +1 -1
- package/fesm2020/mdc-slide-toggle.mjs +8 -8
- package/fesm2020/mdc-slide-toggle.mjs.map +1 -1
- package/fesm2020/mdc-slider.mjs +52 -22
- package/fesm2020/mdc-slider.mjs.map +1 -1
- package/fesm2020/mdc-snack-bar.mjs +37 -31
- package/fesm2020/mdc-snack-bar.mjs.map +1 -1
- package/fesm2020/mdc-table.mjs +57 -57
- package/fesm2020/mdc-table.mjs.map +1 -1
- package/fesm2020/mdc-tabs.mjs +43 -43
- package/fesm2020/mdc-tabs.mjs.map +1 -1
- package/fesm2020/mdc-tooltip.mjs +11 -11
- package/fesm2020/mdc-tooltip.mjs.map +1 -1
- package/fesm2020/menubar.mjs +14 -17
- package/fesm2020/menubar.mjs.map +1 -1
- package/fesm2020/popover-edit.mjs +25 -25
- package/fesm2020/selection.mjs +21 -21
- package/fesm2020/selection.mjs.map +1 -1
- package/mdc-autocomplete/_autocomplete-theme.scss +10 -10
- package/mdc-button/_button-base.scss +4 -3
- package/mdc-button/_button-theme-private.scss +0 -1
- package/mdc-button/_button-theme.scss +11 -11
- package/mdc-button/_fab-theme.scss +10 -10
- package/mdc-button/_icon-button-theme.scss +11 -11
- package/mdc-card/_card-theme.scss +11 -11
- package/mdc-checkbox/_checkbox-theme.scss +16 -17
- package/mdc-chips/_chips-theme.scss +20 -15
- package/mdc-chips/chip-grid.d.ts +4 -0
- package/mdc-chips/chip-input.d.ts +3 -0
- package/mdc-chips/chip-set.d.ts +0 -2
- package/mdc-chips/chip-text-control.d.ts +2 -0
- package/mdc-color/_all-color.scss +4 -3
- package/mdc-core/_core-theme.scss +13 -13
- package/mdc-core/option/_optgroup-theme.scss +11 -11
- package/mdc-core/option/_option-theme.scss +11 -11
- package/mdc-density/_all-density.scss +4 -3
- package/mdc-dialog/_dialog-theme.scss +49 -13
- package/mdc-form-field/_form-field-density.scss +4 -3
- package/mdc-form-field/_form-field-focus-overlay.scss +2 -2
- package/mdc-form-field/_form-field-high-contrast.scss +5 -5
- package/mdc-form-field/_form-field-native-select.scss +5 -4
- package/mdc-form-field/_form-field-subscript.scss +5 -3
- package/mdc-form-field/_form-field-theme.scss +16 -16
- package/mdc-form-field/testing/public-api.d.ts +1 -1
- package/mdc-helpers/_focus-indicators-theme.scss +6 -6
- package/mdc-helpers/_focus-indicators.scss +2 -2
- package/mdc-helpers/_mdc-helpers.scss +12 -14
- package/mdc-input/_input-theme.scss +10 -10
- package/mdc-list/_interactive-list-theme.scss +2 -2
- package/mdc-list/_list-theme.scss +15 -17
- package/mdc-menu/_menu-theme.scss +10 -10
- package/mdc-paginator/_paginator-theme.scss +20 -23
- package/mdc-progress-bar/_progress-bar-theme.scss +8 -7
- package/mdc-progress-spinner/_progress-spinner-theme.scss +8 -7
- package/mdc-radio/_radio-theme.scss +13 -14
- package/mdc-select/_select-theme.scss +10 -10
- package/mdc-slide-toggle/_slide-toggle-theme.scss +14 -15
- package/mdc-slider/_slider-theme.scss +11 -12
- package/mdc-slider/slider.d.ts +6 -0
- package/mdc-snack-bar/_snack-bar-theme.scss +11 -11
- package/mdc-table/_table-theme.scss +12 -12
- package/mdc-tabs/_tabs-common.scss +5 -4
- package/mdc-tabs/_tabs-theme.scss +14 -14
- package/mdc-theming/_all-theme.scss +3 -2
- package/mdc-theming/prebuilt/deeppurple-amber.css +1 -1
- package/mdc-theming/prebuilt/indigo-pink.css +1 -1
- package/mdc-theming/prebuilt/pink-bluegrey.css +1 -1
- package/mdc-theming/prebuilt/purple-green.css +1 -1
- package/mdc-tooltip/_tooltip-theme.scss +12 -13
- package/mdc-typography/_all-typography.scss +5 -5
- package/package.json +50 -4
- package/popover-edit/_popover-edit-theme.scss +23 -26
- package/selection/_selection.scss +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mdc-form-field.mjs","sources":["../../../../../../src/material-experimental/mdc-form-field/directives/label.ts","../../../../../../src/material-experimental/mdc-form-field/directives/error.ts","../../../../../../src/material-experimental/mdc-form-field/directives/hint.ts","../../../../../../src/material-experimental/mdc-form-field/directives/prefix.ts","../../../../../../src/material-experimental/mdc-form-field/directives/suffix.ts","../../../../../../src/material-experimental/mdc-form-field/directives/floating-label.ts","../../../../../../src/material-experimental/mdc-form-field/directives/line-ripple.ts","../../../../../../src/material-experimental/mdc-form-field/directives/notched-outline.ts","../../../../../../src/material-experimental/mdc-form-field/directives/notched-outline.html","../../../../../../src/material-experimental/mdc-form-field/form-field.ts","../../../../../../src/material-experimental/mdc-form-field/form-field.html","../../../../../../src/material-experimental/mdc-form-field/module.ts","../../../../../../src/material-experimental/mdc-form-field/public-api.ts","../../../../../../src/material-experimental/mdc-form-field/index.ts","../../../../../../src/material-experimental/mdc-form-field/mdc-form-field_public_index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC 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\nimport {Directive} from '@angular/core';\n\n/** The floating label for a `mat-form-field`. */\n@Directive({\n selector: 'mat-label',\n})\nexport class MatLabel {}\n","/**\n * @license\n * Copyright Google LLC 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\nimport {Attribute, Directive, ElementRef, InjectionToken, Input} from '@angular/core';\n\nlet nextUniqueId = 0;\n\n/**\n * Injection token that can be used to reference instances of `MatError`. It serves as\n * alternative token to the actual `MatError` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const MAT_ERROR = new InjectionToken<MatError>('MatError');\n\n/** Single error message to be shown underneath the form-field. */\n@Directive({\n selector: 'mat-error',\n host: {\n 'class': 'mat-mdc-form-field-error mat-mdc-form-field-bottom-align',\n 'aria-atomic': 'true',\n '[id]': 'id',\n },\n providers: [{provide: MAT_ERROR, useExisting: MatError}],\n})\nexport class MatError {\n @Input() id: string = `mat-mdc-error-${nextUniqueId++}`;\n\n constructor(@Attribute('aria-live') ariaLive: string, elementRef: ElementRef) {\n // If no aria-live value is set add 'polite' as a default. This is preferred over setting\n // role='alert' so that screen readers do not interrupt the current task to read this aloud.\n if (!ariaLive) {\n elementRef.nativeElement.setAttribute('aria-live', 'polite');\n }\n }\n}\n","/**\n * @license\n * Copyright Google LLC 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\nimport {Directive, Input} from '@angular/core';\n\nlet nextUniqueId = 0;\n\n/** Hint text to be shown underneath the form field control. */\n@Directive({\n selector: 'mat-hint',\n host: {\n 'class': 'mat-mdc-form-field-hint mat-mdc-form-field-bottom-align',\n '[class.mat-mdc-form-field-hint-end]': 'align === \"end\"',\n '[id]': 'id',\n // Remove align attribute to prevent it from interfering with layout.\n '[attr.align]': 'null',\n },\n})\nexport class MatHint {\n /** Whether to align the hint label at the start or end of the line. */\n @Input() align: 'start' | 'end' = 'start';\n\n /** Unique ID for the hint. Used for the aria-describedby on the form field control. */\n @Input() id: string = `mat-mdc-hint-${nextUniqueId++}`;\n}\n","/**\n * @license\n * Copyright Google LLC 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\nimport {Directive, ElementRef, InjectionToken} from '@angular/core';\n\n/**\n * Injection token that can be used to reference instances of `MatPrefix`. It serves as\n * alternative token to the actual `MatPrefix` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const MAT_PREFIX = new InjectionToken<MatPrefix>('MatPrefix');\n\n/** Prefix to be placed in front of the form field. */\n@Directive({\n selector: '[matPrefix], [matIconPrefix], [matTextPrefix]',\n providers: [{provide: MAT_PREFIX, useExisting: MatPrefix}],\n})\nexport class MatPrefix {\n _isText = false;\n\n constructor(elementRef: ElementRef) {\n this._isText = elementRef.nativeElement.hasAttribute('matTextPrefix');\n }\n}\n","/**\n * @license\n * Copyright Google LLC 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\nimport {Directive, ElementRef, InjectionToken} from '@angular/core';\n\n/**\n * Injection token that can be used to reference instances of `MatSuffix`. It serves as\n * alternative token to the actual `MatSuffix` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const MAT_SUFFIX = new InjectionToken<MatSuffix>('MatSuffix');\n\n/** Suffix to be placed at the end of the form field. */\n@Directive({\n selector: '[matSuffix], [matIconSuffix], [matTextSuffix]',\n providers: [{provide: MAT_SUFFIX, useExisting: MatSuffix}],\n})\nexport class MatSuffix {\n _isText = false;\n\n constructor(elementRef: ElementRef) {\n this._isText = elementRef.nativeElement.hasAttribute('matTextSuffix');\n }\n}\n","/**\n * @license\n * Copyright Google LLC 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\nimport {Directive, ElementRef, Input} from '@angular/core';\nimport {ponyfill} from '@material/dom';\n\n/**\n * Internal directive that maintains a MDC floating label. This directive does not\n * use the `MDCFloatingLabelFoundation` class, as it is not worth the size cost of\n * including it just to measure the label width and toggle some classes.\n *\n * The use of a directive allows us to conditionally render a floating label in the\n * template without having to manually manage instantiation and destruction of the\n * floating label component based on.\n *\n * The component is responsible for setting up the floating label styles, measuring label\n * width for the outline notch, and providing inputs that can be used to toggle the\n * label's floating or required state.\n */\n@Directive({\n selector: 'label[matFormFieldFloatingLabel]',\n host: {\n 'class': 'mdc-floating-label mat-mdc-floating-label',\n '[class.mdc-floating-label--float-above]': 'floating',\n },\n})\nexport class MatFormFieldFloatingLabel {\n /** Whether the label is floating. */\n @Input() floating: boolean = false;\n\n constructor(private _elementRef: ElementRef) {}\n\n /** Gets the width of the label. Used for the outline notch. */\n getWidth(): number {\n return ponyfill.estimateScrollWidth(this._elementRef.nativeElement);\n }\n\n /** Gets the HTML element for the floating label. */\n get element(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n}\n","/**\n * @license\n * Copyright Google LLC 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\nimport {Directive, ElementRef, OnDestroy} from '@angular/core';\nimport {MDCLineRipple} from '@material/line-ripple';\n\n/**\n * Internal directive that creates an instance of the MDC line-ripple component. Using a\n * directive allows us to conditionally render a line-ripple in the template without having\n * to manually create and destroy the `MDCLineRipple` component whenever the condition changes.\n *\n * The directive sets up the styles for the line-ripple and provides an API for activating\n * and deactivating the line-ripple.\n */\n@Directive({\n selector: 'div[matFormFieldLineRipple]',\n host: {\n 'class': 'mdc-line-ripple',\n },\n})\nexport class MatFormFieldLineRipple extends MDCLineRipple implements OnDestroy {\n constructor(elementRef: ElementRef) {\n super(elementRef.nativeElement);\n }\n\n ngOnDestroy() {\n this.destroy();\n }\n}\n","/**\n * @license\n * Copyright Google LLC 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\nimport {Platform} from '@angular/cdk/platform';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n ViewEncapsulation,\n} from '@angular/core';\nimport {MDCNotchedOutline} from '@material/notched-outline';\n\n/**\n * Internal component that creates an instance of the MDC notched-outline component. Using\n * a directive allows us to conditionally render a notched-outline in the template without\n * having to manually create and destroy the `MDCNotchedOutline` component whenever the\n * appearance changes.\n *\n * The component sets up the HTML structure and styles for the notched-outline. It provides\n * inputs to toggle the notch state and width.\n */\n@Component({\n selector: 'div[matFormFieldNotchedOutline]',\n templateUrl: './notched-outline.html',\n host: {\n 'class': 'mdc-notched-outline',\n // Besides updating the notch state through the MDC component, we toggle this class through\n // a host binding in order to ensure that the notched-outline renders correctly on the server.\n '[class.mdc-notched-outline--notched]': 'open',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MatFormFieldNotchedOutline implements AfterViewInit, OnChanges, OnDestroy {\n /** Width of the notch. */\n @Input('matFormFieldNotchedOutlineWidth') width: number = 0;\n\n /** Whether the notch should be opened. */\n @Input('matFormFieldNotchedOutlineOpen') open: boolean = false;\n\n /** Instance of the MDC notched outline. */\n private _mdcNotchedOutline: MDCNotchedOutline | null = null;\n\n constructor(private _elementRef: ElementRef, private _platform: Platform) {}\n\n ngAfterViewInit() {\n // The notched outline cannot be attached in the server platform. It schedules tasks\n // for the next browser animation frame and relies on element client rectangles to render\n // the outline notch. To avoid failures on the server, we just do not initialize it,\n // but the actual notched-outline styles will be still displayed.\n if (this._platform.isBrowser) {\n // The notch component relies on the view to be initialized. This means\n // that we cannot extend from the \"MDCNotchedOutline\".\n this._mdcNotchedOutline = MDCNotchedOutline.attachTo(this._elementRef.nativeElement);\n }\n // Initial sync in case state has been updated before view initialization.\n this._syncNotchedOutlineState();\n }\n\n ngOnChanges() {\n // Whenever the width, or the open state changes, sync the notched outline to be\n // based on the new values.\n this._syncNotchedOutlineState();\n }\n\n ngOnDestroy() {\n if (this._mdcNotchedOutline !== null) {\n this._mdcNotchedOutline.destroy();\n }\n }\n\n /** Synchronizes the notched outline state to be based on the `width` and `open` inputs. */\n private _syncNotchedOutlineState() {\n if (this._mdcNotchedOutline === null) {\n return;\n }\n if (this.open) {\n this._mdcNotchedOutline.notch(this.width);\n } else {\n this._mdcNotchedOutline.closeNotch();\n }\n }\n}\n","<div class=\"mdc-notched-outline__leading\"></div>\n<div class=\"mdc-notched-outline__notch\">\n <ng-content></ng-content>\n</div>\n<div class=\"mdc-notched-outline__trailing\"></div>\n","/**\n * @license\n * Copyright Google LLC 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 {Directionality} from '@angular/cdk/bidi';\nimport {Platform} from '@angular/cdk/platform';\nimport {\n AfterContentChecked,\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {AbstractControlDirective} from '@angular/forms';\nimport {ThemePalette} from '@angular/material-experimental/mdc-core';\nimport {\n getMatFormFieldDuplicatedHintError,\n getMatFormFieldMissingControlError,\n MAT_FORM_FIELD,\n matFormFieldAnimations,\n MatFormFieldControl,\n} from '@angular/material/form-field';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\nimport {\n MDCTextFieldAdapter,\n MDCTextFieldFoundation,\n numbers as mdcTextFieldNumbers,\n} from '@material/textfield';\nimport {merge, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {MAT_ERROR, MatError} from './directives/error';\nimport {MatFormFieldFloatingLabel} from './directives/floating-label';\nimport {MatHint} from './directives/hint';\nimport {MatLabel} from './directives/label';\nimport {MatFormFieldLineRipple} from './directives/line-ripple';\nimport {MatFormFieldNotchedOutline} from './directives/notched-outline';\nimport {MAT_PREFIX, MatPrefix} from './directives/prefix';\nimport {MAT_SUFFIX, MatSuffix} from './directives/suffix';\nimport {DOCUMENT} from '@angular/common';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\n\n/** Type for the available floatLabel values. */\nexport type FloatLabelType = 'always' | 'auto';\n\n/** Possible appearance styles for the form field. */\nexport type MatFormFieldAppearance = 'fill' | 'outline';\n\n/** Behaviors for how the subscript height is set. */\nexport type SubscriptSizing = 'fixed' | 'dynamic';\n\n/**\n * Represents the default options for the form field that can be configured\n * using the `MAT_FORM_FIELD_DEFAULT_OPTIONS` injection token.\n */\nexport interface MatFormFieldDefaultOptions {\n /** Default form field appearance style. */\n appearance?: MatFormFieldAppearance;\n /** Default color of the form field. */\n color?: ThemePalette;\n /** Whether the required marker should be hidden by default. */\n hideRequiredMarker?: boolean;\n /**\n * Whether the label for form fields should by default float `always`,\n * `never`, or `auto` (only when necessary).\n */\n floatLabel?: FloatLabelType;\n /** Whether the form field should reserve space for one line by default. */\n subscriptSizing?: SubscriptSizing;\n}\n\n/**\n * Injection token that can be used to configure the\n * default options for all form field within an app.\n */\nexport const MAT_FORM_FIELD_DEFAULT_OPTIONS = new InjectionToken<MatFormFieldDefaultOptions>(\n 'MAT_FORM_FIELD_DEFAULT_OPTIONS',\n);\n\nlet nextUniqueId = 0;\n\n/** Default appearance used by the form field. */\nconst DEFAULT_APPEARANCE: MatFormFieldAppearance = 'fill';\n\n/**\n * Whether the label for form fields should by default float `always`,\n * `never`, or `auto`.\n */\nconst DEFAULT_FLOAT_LABEL: FloatLabelType = 'auto';\n\n/** Default way that the subscript element height is set. */\nconst DEFAULT_SUBSCRIPT_SIZING: SubscriptSizing = 'fixed';\n\n/**\n * Default transform for docked floating labels in a MDC text-field. This value has been\n * extracted from the MDC text-field styles because we programmatically modify the docked\n * label transform, but do not want to accidentally discard the default label transform.\n */\nconst FLOATING_LABEL_DEFAULT_DOCKED_TRANSFORM = `translateY(-50%)`;\n\n/**\n * Horizontal padding in pixels used by the MDC for the wrapper containing infix.\n * This value is extracted from MDC's Sass variables. See `$padding-horizontal`.\n */\nconst WRAPPER_HORIZONTAL_PADDING = 16;\n\n/** Container for form controls that applies Material Design styling and behavior. */\n@Component({\n selector: 'mat-form-field',\n exportAs: 'matFormField',\n templateUrl: './form-field.html',\n styleUrls: ['./form-field.css'],\n animations: [matFormFieldAnimations.transitionMessages],\n host: {\n 'class': 'mat-mdc-form-field',\n '[class.mat-mdc-form-field-label-always-float]': '_shouldAlwaysFloat()',\n '[class.mat-mdc-form-field-has-icon-prefix]': '_hasIconPrefix',\n '[class.mat-mdc-form-field-has-icon-suffix]': '_hasIconSuffix',\n\n // Note that these classes reuse the same names as the non-MDC version, because they can be\n // considered a public API since custom form controls may use them to style themselves.\n // See https://github.com/angular/components/pull/20502#discussion_r486124901.\n '[class.mat-form-field-invalid]': '_control.errorState',\n '[class.mat-form-field-disabled]': '_control.disabled',\n '[class.mat-form-field-autofilled]': '_control.autofilled',\n '[class.mat-form-field-no-animations]': '_animationMode === \"NoopAnimations\"',\n '[class.mat-form-field-appearance-fill]': 'appearance == \"fill\"',\n '[class.mat-form-field-appearance-outline]': 'appearance == \"outline\"',\n '[class.mat-form-field-hide-placeholder]': '_hasFloatingLabel() && !_shouldLabelFloat()',\n '[class.mat-focused]': '_control.focused',\n '[class.mat-primary]': 'color !== \"accent\" && color !== \"warn\"',\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 changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{provide: MAT_FORM_FIELD, useExisting: MatFormField}],\n})\nexport class MatFormField\n implements AfterContentInit, AfterContentChecked, AfterViewInit, OnDestroy\n{\n @ViewChild('textField') _textField: ElementRef<HTMLElement>;\n @ViewChild('iconPrefixContainer') _iconPrefixContainer: ElementRef<HTMLElement>;\n @ViewChild('textPrefixContainer') _textPrefixContainer: ElementRef<HTMLElement>;\n @ViewChild(MatFormFieldFloatingLabel) _floatingLabel: MatFormFieldFloatingLabel | undefined;\n @ViewChild(MatFormFieldNotchedOutline) _notchedOutline: MatFormFieldNotchedOutline | undefined;\n @ViewChild(MatFormFieldLineRipple) _lineRipple: MatFormFieldLineRipple | undefined;\n\n @ContentChild(MatLabel) _labelChildNonStatic: MatLabel | undefined;\n @ContentChild(MatLabel, {static: true}) _labelChildStatic: MatLabel | undefined;\n @ContentChild(MatFormFieldControl) _formFieldControl: MatFormFieldControl<any>;\n @ContentChildren(MAT_PREFIX, {descendants: true}) _prefixChildren: QueryList<MatPrefix>;\n @ContentChildren(MAT_SUFFIX, {descendants: true}) _suffixChildren: QueryList<MatSuffix>;\n @ContentChildren(MAT_ERROR, {descendants: true}) _errorChildren: QueryList<MatError>;\n @ContentChildren(MatHint, {descendants: true}) _hintChildren: QueryList<MatHint>;\n\n /** Whether the required marker should be hidden. */\n @Input()\n get hideRequiredMarker(): boolean {\n return this._hideRequiredMarker;\n }\n set hideRequiredMarker(value: BooleanInput) {\n this._hideRequiredMarker = coerceBooleanProperty(value);\n }\n private _hideRequiredMarker = false;\n\n /** The color palette for the form field. */\n @Input() color: ThemePalette = 'primary';\n\n /** Whether the label should always float or float as the user types. */\n @Input()\n get floatLabel(): FloatLabelType {\n return this._floatLabel || this._defaults?.floatLabel || DEFAULT_FLOAT_LABEL;\n }\n set floatLabel(value: FloatLabelType) {\n if (value !== this._floatLabel) {\n this._floatLabel = value;\n // For backwards compatibility. Custom form field controls or directives might set\n // the \"floatLabel\" input and expect the form field view to be updated automatically.\n // e.g. autocomplete trigger. Ideally we'd get rid of this and the consumers would just\n // emit the \"stateChanges\" observable. TODO(devversion): consider removing.\n this._changeDetectorRef.markForCheck();\n }\n }\n private _floatLabel: FloatLabelType;\n\n /** The form field appearance style. */\n @Input()\n get appearance(): MatFormFieldAppearance {\n return this._appearance;\n }\n set appearance(value: MatFormFieldAppearance) {\n const oldValue = this._appearance;\n this._appearance = value || this._defaults?.appearance || DEFAULT_APPEARANCE;\n if (this._appearance === 'outline' && this._appearance !== oldValue) {\n this._refreshOutlineNotchWidth();\n\n // If the appearance has been switched to `outline`, the label offset needs to be updated.\n // The update can happen once the view has been re-checked, but not immediately because\n // the view has not been updated and the notched-outline floating label is not present.\n this._needsOutlineLabelOffsetUpdateOnStable = true;\n }\n }\n private _appearance: MatFormFieldAppearance = DEFAULT_APPEARANCE;\n\n /**\n * Whether the form field should reserve space for one line of hint/error text (default)\n * or to have the spacing grow from 0px as needed based on the size of the hint/error content.\n * Note that when using dynamic sizing, layout shifts will occur when hint/error text changes.\n */\n @Input()\n get subscriptSizing(): SubscriptSizing {\n return this._subscriptSizing || this._defaults?.subscriptSizing || DEFAULT_SUBSCRIPT_SIZING;\n }\n set subscriptSizing(value: SubscriptSizing) {\n this._subscriptSizing = value || this._defaults?.subscriptSizing || DEFAULT_SUBSCRIPT_SIZING;\n }\n private _subscriptSizing: SubscriptSizing | null = null;\n\n /** Text for the form field hint. */\n @Input()\n get hintLabel(): string {\n return this._hintLabel;\n }\n set hintLabel(value: string) {\n this._hintLabel = value;\n this._processHints();\n }\n private _hintLabel = '';\n\n _hasIconPrefix = false;\n _hasTextPrefix = false;\n _hasIconSuffix = false;\n _hasTextSuffix = false;\n\n // Unique id for the internal form field label.\n readonly _labelId = `mat-mdc-form-field-label-${nextUniqueId++}`;\n\n // Unique id for the hint label.\n readonly _hintLabelId = `mat-mdc-hint-${nextUniqueId++}`;\n\n /** State of the mat-hint and mat-error animations. */\n _subscriptAnimationState = '';\n\n /** Width of the outline notch. */\n _outlineNotchWidth = 0;\n\n /** Gets the current form field control */\n get _control(): MatFormFieldControl<any> {\n return this._explicitFormFieldControl || this._formFieldControl;\n }\n set _control(value) {\n this._explicitFormFieldControl = value;\n }\n\n private _destroyed = new Subject<void>();\n private _isFocused: boolean | null = null;\n private _explicitFormFieldControl: MatFormFieldControl<any>;\n private _foundation: MDCTextFieldFoundation;\n private _needsOutlineLabelOffsetUpdateOnStable = false;\n private _adapter: MDCTextFieldAdapter = {\n addClass: className => this._textField.nativeElement.classList.add(className),\n removeClass: className => this._textField.nativeElement.classList.remove(className),\n hasClass: className => this._textField.nativeElement.classList.contains(className),\n\n hasLabel: () => this._hasFloatingLabel(),\n isFocused: () => this._control.focused,\n hasOutline: () => this._hasOutline(),\n\n // MDC text-field will call this method on focus, blur and value change. It expects us\n // to update the floating label state accordingly. Though we make this a noop because we\n // want to react to floating label state changes through change detection. Relying on this\n // adapter method would mean that the label would not update if the custom form field control\n // sets \"shouldLabelFloat\" to true, or if the \"floatLabel\" input binding changes to \"always\".\n floatLabel: () => {},\n\n // Label shaking is not supported yet. It will require a new API for form field\n // controls to trigger the shaking. This can be a feature in the future.\n // TODO(devversion): explore options on how to integrate label shaking.\n shakeLabel: () => {},\n\n // MDC by default updates the notched-outline whenever the text-field receives focus, or\n // is being blurred. It also computes the label width every time the notch is opened or\n // closed. This works fine in the standard MDC text-field, but not in Angular where the\n // floating label could change through interpolation. We want to be able to update the\n // notched outline whenever the label content changes. Additionally, relying on focus or\n // blur to open and close the notch does not work for us since abstract form field controls\n // have the ability to control the floating label state (i.e. `shouldLabelFloat`), and we\n // want to update the notch whenever the `_shouldLabelFloat()` value changes.\n getLabelWidth: () => 0,\n\n // We don't use `setLabelRequired` as it relies on a mutation observer for determining\n // when the `required` state changes. This is not reliable and flexible enough for\n // our form field, as we support custom controls and detect the required state through\n // a public property in the abstract form control.\n setLabelRequired: () => {},\n notchOutline: () => {},\n closeOutline: () => {},\n\n activateLineRipple: () => this._lineRipple && this._lineRipple.activate(),\n deactivateLineRipple: () => this._lineRipple && this._lineRipple.deactivate(),\n\n // The foundation tries to register events on the input. This is not matching\n // our concept of abstract form field controls. We handle each event manually\n // in \"stateChanges\" based on the form field control state. The following events\n // need to be handled: focus, blur. We do not handle the \"input\" event since\n // that one is only needed for the text-field character count, which we do\n // not implement as part of the form field, but should be implemented manually\n // by consumers using template bindings.\n registerInputInteractionHandler: () => {},\n deregisterInputInteractionHandler: () => {},\n\n // We do not have a reference to the native input since we work with abstract form field\n // controls. MDC needs a reference to the native input optionally to handle character\n // counting and value updating. These are both things we do not handle from within the\n // form field, so we can just return null.\n getNativeInput: () => null,\n\n // This method will never be called since we do not have the ability to add event listeners\n // to the native input. This is because the form control is not necessarily an input, and\n // the form field deals with abstract form controls of any type.\n setLineRippleTransformOrigin: () => {},\n\n // The foundation tries to register click and keyboard events on the form field to figure out\n // if the input value changes through user interaction. Based on that, the foundation tries\n // to focus the input. Since we do not handle the input value as part of the form field, nor\n // it's guaranteed to be an input (see adapter methods above), this is a noop.\n deregisterTextFieldInteractionHandler: () => {},\n registerTextFieldInteractionHandler: () => {},\n\n // The foundation tries to setup a \"MutationObserver\" in order to watch for attributes\n // like \"maxlength\" or \"pattern\" to change. The foundation will update the validity state\n // based on that. We do not need this logic since we handle the validity through the\n // abstract form control instance.\n deregisterValidationAttributeChangeHandler: () => {},\n registerValidationAttributeChangeHandler: () => null as any,\n\n // Used by foundation to dynamically remove aria-describedby when the hint text\n // is shown only on invalid state, which should not be applicable here.\n setInputAttr: () => undefined,\n removeInputAttr: () => undefined,\n };\n\n constructor(\n private _elementRef: ElementRef,\n private _changeDetectorRef: ChangeDetectorRef,\n private _ngZone: NgZone,\n private _dir: Directionality,\n private _platform: Platform,\n @Optional()\n @Inject(MAT_FORM_FIELD_DEFAULT_OPTIONS)\n private _defaults?: MatFormFieldDefaultOptions,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) public _animationMode?: string,\n @Inject(DOCUMENT) private _document?: any,\n ) {\n if (_defaults) {\n if (_defaults.appearance) {\n this.appearance = _defaults.appearance;\n }\n this._hideRequiredMarker = Boolean(_defaults?.hideRequiredMarker);\n if (_defaults.color) {\n this.color = _defaults.color;\n }\n }\n }\n\n ngAfterViewInit() {\n this._foundation = new MDCTextFieldFoundation(this._adapter);\n\n // MDC uses the \"shouldFloat\" getter to know whether the label is currently floating. This\n // does not match our implementation of when the label floats because we support more cases.\n // For example, consumers can set \"@Input floatLabel\" to always, or the custom form field\n // control can set \"MatFormFieldControl#shouldLabelFloat\" to true. To ensure that MDC knows\n // when the label is floating, we overwrite the property to be based on the method we use to\n // determine the current state of the floating label.\n Object.defineProperty(this._foundation, 'shouldFloat', {\n get: () => this._shouldLabelFloat(),\n });\n\n // By default, the foundation determines the validity of the text-field from the\n // specified native input. Since we don't pass a native input to the foundation because\n // abstract form controls are not necessarily consisting of an input, we handle the\n // text-field validity through the abstract form field control state.\n this._foundation.isValid = () => !this._control.errorState;\n\n // Initial focus state sync. This happens rarely, but we want to account for\n // it in case the form field control has \"focused\" set to true on init.\n this._updateFocusState();\n // Initial notch width update. This is needed in case the text-field label floats\n // on initialization, and renders inside of the notched outline.\n this._refreshOutlineNotchWidth();\n // Make sure fonts are loaded before calculating the width.\n // zone.js currently doesn't patch the FontFaceSet API so two calls to\n // _refreshOutlineNotchWidth is needed for this to work properly in async tests.\n // Furthermore if the font takes a long time to load we want the outline notch to be close\n // to the correct width from the start then correct itself when the fonts load.\n if (this._document?.fonts?.ready) {\n this._document.fonts.ready.then(() => {\n this._refreshOutlineNotchWidth();\n this._changeDetectorRef.markForCheck();\n });\n } else {\n // FontFaceSet is not supported in IE\n setTimeout(() => this._refreshOutlineNotchWidth(), 100);\n }\n // Enable animations now. This ensures we don't animate on initial render.\n this._subscriptAnimationState = 'enter';\n // Because the above changes a value used in the template after it was checked, we need\n // to trigger CD or the change might not be reflected if there is no other CD scheduled.\n this._changeDetectorRef.detectChanges();\n }\n\n ngAfterContentInit() {\n this._assertFormFieldControl();\n this._initializeControl();\n this._initializeSubscript();\n this._initializePrefixAndSuffix();\n this._initializeOutlineLabelOffsetSubscriptions();\n }\n\n ngAfterContentChecked() {\n this._assertFormFieldControl();\n }\n\n ngOnDestroy() {\n this._foundation?.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n /**\n * Gets the id of the label element. If no label is present, returns `null`.\n */\n getLabelId(): string | null {\n return this._hasFloatingLabel() ? this._labelId : null;\n }\n\n /**\n * Gets an ElementRef for the element that a overlay attached to the form field\n * should be positioned relative to.\n */\n getConnectedOverlayOrigin(): ElementRef {\n return this._textField || this._elementRef;\n }\n\n /** Animates the placeholder up and locks it in position. */\n _animateAndLockLabel(): void {\n // This is for backwards compatibility only. Consumers of the form field might use\n // this method. e.g. the autocomplete trigger. This method has been added to the non-MDC\n // form field because setting \"floatLabel\" to \"always\" caused the label to float without\n // animation. This is different in MDC where the label always animates, so this method\n // is no longer necessary. There doesn't seem any benefit in adding logic to allow changing\n // the floating label state without animations. The non-MDC implementation was inconsistent\n // because it always animates if \"floatLabel\" is set away from \"always\".\n // TODO(devversion): consider removing this method when releasing the MDC form field.\n if (this._hasFloatingLabel()) {\n this.floatLabel = 'always';\n }\n }\n\n /** Initializes the registered form field control. */\n private _initializeControl() {\n const control = this._control;\n\n if (control.controlType) {\n this._elementRef.nativeElement.classList.add(\n `mat-mdc-form-field-type-${control.controlType}`,\n );\n }\n\n // Subscribe to changes in the child control state in order to update the form field UI.\n control.stateChanges.subscribe(() => {\n this._updateFocusState();\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n\n // Run change detection if the value changes.\n if (control.ngControl && control.ngControl.valueChanges) {\n control.ngControl.valueChanges\n .pipe(takeUntil(this._destroyed))\n .subscribe(() => this._changeDetectorRef.markForCheck());\n }\n }\n\n private _checkPrefixAndSuffixTypes() {\n this._hasIconPrefix = !!this._prefixChildren.find(p => !p._isText);\n this._hasTextPrefix = !!this._prefixChildren.find(p => p._isText);\n this._hasIconSuffix = !!this._suffixChildren.find(s => !s._isText);\n this._hasTextSuffix = !!this._suffixChildren.find(s => s._isText);\n }\n\n /** Initializes the prefix and suffix containers. */\n private _initializePrefixAndSuffix() {\n this._checkPrefixAndSuffixTypes();\n // Mark the form field as dirty whenever the prefix or suffix children change. This\n // is necessary because we conditionally display the prefix/suffix containers based\n // on whether there is projected content.\n merge(this._prefixChildren.changes, this._suffixChildren.changes).subscribe(() => {\n this._checkPrefixAndSuffixTypes();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * Initializes the subscript by validating hints and synchronizing \"aria-describedby\" ids\n * with the custom form field control. Also subscribes to hint and error changes in order\n * to be able to validate and synchronize ids on change.\n */\n private _initializeSubscript() {\n // Re-validate when the number of hints changes.\n this._hintChildren.changes.subscribe(() => {\n this._processHints();\n this._changeDetectorRef.markForCheck();\n });\n\n // Update the aria-described by when the number of errors changes.\n this._errorChildren.changes.subscribe(() => {\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n\n // Initial mat-hint validation and subscript describedByIds sync.\n this._validateHints();\n this._syncDescribedByIds();\n }\n\n /** Throws an error if the form field's control is missing. */\n private _assertFormFieldControl() {\n if (!this._control && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatFormFieldMissingControlError();\n }\n }\n\n private _updateFocusState() {\n // Usually the MDC foundation would call \"activateFocus\" and \"deactivateFocus\" whenever\n // certain DOM events are emitted. This is not possible in our implementation of the\n // form field because we support abstract form field controls which are not necessarily\n // of type input, nor do we have a reference to a native form field control element. Instead\n // we handle the focus by checking if the abstract form field control focused state changes.\n if (this._control.focused && !this._isFocused) {\n this._isFocused = true;\n this._foundation.activateFocus();\n } else if (!this._control.focused && (this._isFocused || this._isFocused === null)) {\n this._isFocused = false;\n this._foundation.deactivateFocus();\n }\n }\n\n /**\n * The floating label in the docked state needs to account for prefixes. The horizontal offset\n * is calculated whenever the appearance changes to `outline`, the prefixes change, or when the\n * form field is added to the DOM. This method sets up all subscriptions which are needed to\n * trigger the label offset update. In general, we want to avoid performing measurements often,\n * so we rely on the `NgZone` as indicator when the offset should be recalculated, instead of\n * checking every change detection cycle.\n */\n private _initializeOutlineLabelOffsetSubscriptions() {\n // Whenever the prefix changes, schedule an update of the label offset.\n this._prefixChildren.changes.subscribe(\n () => (this._needsOutlineLabelOffsetUpdateOnStable = true),\n );\n\n // Note that we have to run outside of the `NgZone` explicitly, in order to avoid\n // throwing users into an infinite loop if `zone-patch-rxjs` is included.\n this._ngZone.runOutsideAngular(() => {\n this._ngZone.onStable.pipe(takeUntil(this._destroyed)).subscribe(() => {\n if (this._needsOutlineLabelOffsetUpdateOnStable) {\n this._needsOutlineLabelOffsetUpdateOnStable = false;\n this._updateOutlineLabelOffset();\n }\n });\n });\n\n this._dir.change\n .pipe(takeUntil(this._destroyed))\n .subscribe(() => (this._needsOutlineLabelOffsetUpdateOnStable = true));\n }\n\n /** Whether the floating label should always float or not. */\n _shouldAlwaysFloat() {\n return this.floatLabel === 'always';\n }\n\n _hasOutline() {\n return this.appearance === 'outline';\n }\n\n /**\n * Whether the label should display in the infix. Labels in the outline appearance are\n * displayed as part of the notched-outline and are horizontally offset to account for\n * form field prefix content. This won't work in server side rendering since we cannot\n * measure the width of the prefix container. To make the docked label appear as if the\n * right offset has been calculated, we forcibly render the label inside the infix. Since\n * the label is part of the infix, the label cannot overflow the prefix content.\n */\n _forceDisplayInfixLabel() {\n return !this._platform.isBrowser && this._prefixChildren.length && !this._shouldLabelFloat();\n }\n\n _hasFloatingLabel() {\n return !!this._labelChildNonStatic || !!this._labelChildStatic;\n }\n\n _shouldLabelFloat() {\n return this._control.shouldLabelFloat || this._shouldAlwaysFloat();\n }\n\n /**\n * Determines whether a class from the AbstractControlDirective\n * should be forwarded to the host element.\n */\n _shouldForward(prop: keyof AbstractControlDirective): boolean {\n const control = this._control ? this._control.ngControl : null;\n return control && control[prop];\n }\n\n /** Determines whether to display hints or errors. */\n _getDisplayedMessages(): 'error' | 'hint' {\n return this._errorChildren && this._errorChildren.length > 0 && this._control.errorState\n ? 'error'\n : 'hint';\n }\n\n /** Refreshes the width of the outline-notch, if present. */\n _refreshOutlineNotchWidth() {\n if (!this._hasOutline() || !this._floatingLabel) {\n return;\n }\n // The outline notch should be based on the label width, but needs to respect the scaling\n // applied to the label if it actively floats. Since the label always floats when the notch\n // is open, the MDC text-field floating label scaling is respected in notch width calculation.\n this._outlineNotchWidth = this._floatingLabel.getWidth() * mdcTextFieldNumbers.LABEL_SCALE;\n }\n\n /** Does any extra processing that is required when handling the hints. */\n private _processHints() {\n this._validateHints();\n this._syncDescribedByIds();\n }\n\n /**\n * Ensure that there is a maximum of one of each \"mat-hint\" alignment specified. The hint\n * label specified set through the input is being considered as \"start\" aligned.\n *\n * This method is a noop if Angular runs in production mode.\n */\n private _validateHints() {\n if (this._hintChildren && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n let startHint: MatHint;\n let endHint: MatHint;\n this._hintChildren.forEach((hint: MatHint) => {\n if (hint.align === 'start') {\n if (startHint || this.hintLabel) {\n throw getMatFormFieldDuplicatedHintError('start');\n }\n startHint = hint;\n } else if (hint.align === 'end') {\n if (endHint) {\n throw getMatFormFieldDuplicatedHintError('end');\n }\n endHint = hint;\n }\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 */\n private _syncDescribedByIds() {\n if (this._control) {\n let ids: string[] = [];\n\n // TODO(wagnermaciel): Remove the type check when we find the root cause of this bug.\n if (\n this._control.userAriaDescribedBy &&\n typeof this._control.userAriaDescribedBy === 'string'\n ) {\n ids.push(...this._control.userAriaDescribedBy.split(' '));\n }\n\n if (this._getDisplayedMessages() === 'hint') {\n const startHint = this._hintChildren\n ? this._hintChildren.find(hint => hint.align === 'start')\n : null;\n const endHint = this._hintChildren\n ? this._hintChildren.find(hint => hint.align === 'end')\n : null;\n\n if (startHint) {\n ids.push(startHint.id);\n } else if (this._hintLabel) {\n ids.push(this._hintLabelId);\n }\n\n if (endHint) {\n ids.push(endHint.id);\n }\n } else if (this._errorChildren) {\n ids.push(...this._errorChildren.map(error => error.id));\n }\n\n this._control.setDescribedByIds(ids);\n }\n }\n\n /**\n * Updates the horizontal offset of the label in the outline appearance. In the outline\n * appearance, the notched-outline and label are not relative to the infix container because\n * the outline intends to surround prefixes, suffixes and the infix. This means that the\n * floating label by default overlaps prefixes in the docked state. To avoid this, we need to\n * horizontally offset the label by the width of the prefix container. The MDC text-field does\n * not need to do this because they use a fixed width for prefixes. Hence, they can simply\n * incorporate the horizontal offset into their default text-field styles.\n */\n private _updateOutlineLabelOffset() {\n if (!this._platform.isBrowser || !this._hasOutline() || !this._floatingLabel) {\n return;\n }\n const floatingLabel = this._floatingLabel.element;\n // If no prefix is displayed, reset the outline label offset from potential\n // previous label offset updates.\n if (!(this._iconPrefixContainer || this._textPrefixContainer)) {\n floatingLabel.style.transform = '';\n return;\n }\n // If the form field is not attached to the DOM yet (e.g. in a tab), we defer\n // the label offset update until the zone stabilizes.\n if (!this._isAttachedToDom()) {\n this._needsOutlineLabelOffsetUpdateOnStable = true;\n return;\n }\n const iconPrefixContainer = this._iconPrefixContainer?.nativeElement;\n const textPrefixContainer = this._textPrefixContainer?.nativeElement;\n const iconPrefixContainerWidth = iconPrefixContainer?.getBoundingClientRect().width ?? 0;\n const textPrefixContainerWidth = textPrefixContainer?.getBoundingClientRect().width ?? 0;\n // If the directionality is RTL, the x-axis transform needs to be inverted. This\n // is because `transformX` does not change based on the page directionality.\n const labelHorizontalOffset =\n (this._dir.value === 'rtl' ? -1 : 1) *\n // If there's an icon prefix, we subtract the default horizontal padding as we\n // reset the horizontal padding in CSS too.\n ((iconPrefixContainer ? iconPrefixContainerWidth - WRAPPER_HORIZONTAL_PADDING : 0) +\n textPrefixContainerWidth);\n\n // Update the transform the floating label to account for the prefix container. Note\n // that we do not want to overwrite the default transform for docked floating labels.\n floatingLabel.style.transform = `${FLOATING_LABEL_DEFAULT_DOCKED_TRANSFORM} translateX(${labelHorizontalOffset}px)`;\n }\n\n /** Checks whether the form field is attached to the DOM. */\n private _isAttachedToDom(): boolean {\n const element: HTMLElement = this._elementRef.nativeElement;\n if (element.getRootNode) {\n const rootNode = element.getRootNode();\n // If the element is inside the DOM the root node will be either the document\n // or the closest shadow root, otherwise it'll be the element itself.\n return rootNode && rootNode !== element;\n }\n // Otherwise fall back to checking if it's in the document. This doesn't account for\n // shadow DOM, however browser that support shadow DOM should support `getRootNode` as well.\n return document.documentElement!.contains(element);\n }\n}\n","<ng-template #labelTemplate>\n <!--\n MDC recommends that the text-field is a `<label>` element. This rather complicates the\n setup because it would require every form-field control to explicitly set `aria-labelledby`.\n This is because the `<label>` itself contains more than the actual label (e.g. prefix, suffix\n or other projected content), and screen readers could potentially read out undesired content.\n Excluding elements from being printed out requires them to be marked with `aria-hidden`, or\n the form control is set to a scoped element for the label (using `aria-labelledby`). Both of\n these options seem to complicate the setup because we know exactly what content is rendered\n as part of the label, and we don't want to spend resources on walking through projected content\n to set `aria-hidden`. Nor do we want to set `aria-labelledby` on every form control if we could\n simply link the label to the control using the label `for` attribute.\n\n *Note*: We add aria-owns as a workaround for an issue in JAWS & NVDA where the label isn't\n read if it comes before the control in the DOM.\n -->\n <label matFormFieldFloatingLabel\n [floating]=\"_shouldLabelFloat()\"\n *ngIf=\"_hasFloatingLabel()\"\n (cdkObserveContent)=\"_refreshOutlineNotchWidth()\"\n [cdkObserveContentDisabled]=\"!_hasOutline()\"\n [id]=\"_labelId\"\n [attr.for]=\"_control.id\"\n [attr.aria-owns]=\"_control.id\">\n <ng-content select=\"mat-label\"></ng-content>\n <!--\n We set the required marker as a separate element, in order to make it easier to target if\n apps want to override it and to be able to set `aria-hidden` so that screen readers don't\n pick it up.\n -->\n <span\n *ngIf=\"!hideRequiredMarker && _control.required\"\n aria-hidden=\"true\"\n class=\"mat-mdc-form-field-required-marker mdc-floating-label--required\"></span>\n </label>\n</ng-template>\n\n<div class=\"mat-mdc-text-field-wrapper mdc-text-field\" #textField\n [class.mdc-text-field--filled]=\"!_hasOutline()\"\n [class.mdc-text-field--outlined]=\"_hasOutline()\"\n [class.mdc-text-field--no-label]=\"!_hasFloatingLabel()\"\n [class.mdc-text-field--disabled]=\"_control.disabled\"\n [class.mdc-text-field--invalid]=\"_control.errorState\"\n (click)=\"_control.onContainerClick && _control.onContainerClick($event)\">\n <div class=\"mat-mdc-form-field-focus-overlay\" *ngIf=\"!_hasOutline() && !_control.disabled\"></div>\n <div class=\"mat-mdc-form-field-flex\">\n <div *ngIf=\"_hasOutline()\" matFormFieldNotchedOutline\n [matFormFieldNotchedOutlineOpen]=\"_shouldLabelFloat()\"\n [matFormFieldNotchedOutlineWidth]=\"_outlineNotchWidth\">\n <ng-template [ngIf]=\"!_forceDisplayInfixLabel()\">\n <ng-template [ngTemplateOutlet]=\"labelTemplate\"></ng-template>\n </ng-template>\n </div>\n\n <div class=\"mat-mdc-form-field-icon-prefix\" *ngIf=\"_hasIconPrefix\" #iconPrefixContainer>\n <ng-content select=\"[matPrefix], [matIconPrefix]\"></ng-content>\n </div>\n <div class=\"mat-mdc-form-field-text-prefix\" *ngIf=\"_hasTextPrefix\" #textPrefixContainer>\n <ng-content select=\"[matTextPrefix]\"></ng-content>\n </div>\n\n <div class=\"mat-mdc-form-field-infix\">\n <ng-template [ngIf]=\"!_hasOutline() || _forceDisplayInfixLabel()\">\n <ng-template [ngTemplateOutlet]=\"labelTemplate\"></ng-template>\n </ng-template>\n\n <ng-content></ng-content>\n </div>\n\n <div class=\"mat-mdc-form-field-text-suffix\" *ngIf=\"_hasTextSuffix\">\n <ng-content select=\"[matTextSuffix]\"></ng-content>\n </div>\n <div class=\"mat-mdc-form-field-icon-suffix\" *ngIf=\"_hasIconSuffix\">\n <ng-content select=\"[matSuffix], [matIconSuffix]\"></ng-content>\n </div>\n </div>\n\n <div matFormFieldLineRipple *ngIf=\"!_hasOutline()\"></div>\n</div>\n\n<div class=\"mat-mdc-form-field-subscript-wrapper mat-mdc-form-field-bottom-align\"\n [class.mat-mdc-form-field-subscript-dynamic-size]=\"subscriptSizing === 'dynamic'\"\n [ngSwitch]=\"_getDisplayedMessages()\">\n <div class=\"mat-mdc-form-field-error-wrapper\" *ngSwitchCase=\"'error'\"\n [@transitionMessages]=\"_subscriptAnimationState\">\n <ng-content select=\"mat-error\"></ng-content>\n </div>\n\n <div class=\"mat-mdc-form-field-hint-wrapper\" *ngSwitchCase=\"'hint'\"\n [@transitionMessages]=\"_subscriptAnimationState\">\n <mat-hint *ngIf=\"hintLabel\" [id]=\"_hintLabelId\">{{hintLabel}}</mat-hint>\n <ng-content select=\"mat-hint:not([align='end'])\"></ng-content>\n <div class=\"mat-mdc-form-field-hint-spacer\"></div>\n <ng-content select=\"mat-hint[align='end']\"></ng-content>\n </div>\n</div>\n","/**\n * @license\n * Copyright Google LLC 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\nimport {ObserversModule} from '@angular/cdk/observers';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MatCommonModule} from '@angular/material-experimental/mdc-core';\nimport {MatError} from './directives/error';\nimport {MatFormFieldFloatingLabel} from './directives/floating-label';\nimport {MatHint} from './directives/hint';\nimport {MatLabel} from './directives/label';\nimport {MatFormFieldLineRipple} from './directives/line-ripple';\nimport {MatFormFieldNotchedOutline} from './directives/notched-outline';\nimport {MatPrefix} from './directives/prefix';\nimport {MatSuffix} from './directives/suffix';\nimport {MatFormField} from './form-field';\n\n@NgModule({\n imports: [MatCommonModule, CommonModule, ObserversModule],\n exports: [MatFormField, MatLabel, MatHint, MatError, MatPrefix, MatSuffix, MatCommonModule],\n declarations: [\n MatFormField,\n MatLabel,\n MatError,\n MatHint,\n MatPrefix,\n MatSuffix,\n MatFormFieldFloatingLabel,\n MatFormFieldNotchedOutline,\n MatFormFieldLineRipple,\n ],\n})\nexport class MatFormFieldModule {}\n","/**\n * @license\n * Copyright Google LLC 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\nexport * from './directives/label';\nexport * from './directives/error';\nexport * from './directives/hint';\nexport * from './directives/prefix';\nexport * from './directives/suffix';\nexport * from './form-field';\nexport * from './module';\n\nexport {\n MAT_FORM_FIELD,\n MatFormFieldControl,\n getMatFormFieldDuplicatedHintError,\n getMatFormFieldMissingControlError,\n getMatFormFieldPlaceholderConflictError,\n _MAT_HINT,\n MatPlaceholder,\n matFormFieldAnimations,\n} from '@angular/material/form-field';\n","/**\n * @license\n * Copyright Google LLC 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\nexport * from './public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextUniqueId","mdcTextFieldNumbers","i1","i2","i3.MatFormFieldNotchedOutline","i5.MatFormFieldFloatingLabel","i7.MatFormFieldLineRipple","i8.MatHint"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mdc-form-field.mjs","sources":["../../../../../../src/material-experimental/mdc-form-field/directives/label.ts","../../../../../../src/material-experimental/mdc-form-field/directives/error.ts","../../../../../../src/material-experimental/mdc-form-field/directives/hint.ts","../../../../../../src/material-experimental/mdc-form-field/directives/prefix.ts","../../../../../../src/material-experimental/mdc-form-field/directives/suffix.ts","../../../../../../src/material-experimental/mdc-form-field/directives/floating-label.ts","../../../../../../src/material-experimental/mdc-form-field/directives/line-ripple.ts","../../../../../../src/material-experimental/mdc-form-field/directives/notched-outline.ts","../../../../../../src/material-experimental/mdc-form-field/directives/notched-outline.html","../../../../../../src/material-experimental/mdc-form-field/form-field.ts","../../../../../../src/material-experimental/mdc-form-field/form-field.html","../../../../../../src/material-experimental/mdc-form-field/module.ts","../../../../../../src/material-experimental/mdc-form-field/public-api.ts","../../../../../../src/material-experimental/mdc-form-field/index.ts","../../../../../../src/material-experimental/mdc-form-field/mdc-form-field_public_index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC 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\nimport {Directive} from '@angular/core';\n\n/** The floating label for a `mat-form-field`. */\n@Directive({\n selector: 'mat-label',\n})\nexport class MatLabel {}\n","/**\n * @license\n * Copyright Google LLC 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\nimport {Attribute, Directive, ElementRef, InjectionToken, Input} from '@angular/core';\n\nlet nextUniqueId = 0;\n\n/**\n * Injection token that can be used to reference instances of `MatError`. It serves as\n * alternative token to the actual `MatError` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const MAT_ERROR = new InjectionToken<MatError>('MatError');\n\n/** Single error message to be shown underneath the form-field. */\n@Directive({\n selector: 'mat-error',\n host: {\n 'class': 'mat-mdc-form-field-error mat-mdc-form-field-bottom-align',\n 'aria-atomic': 'true',\n '[id]': 'id',\n },\n providers: [{provide: MAT_ERROR, useExisting: MatError}],\n})\nexport class MatError {\n @Input() id: string = `mat-mdc-error-${nextUniqueId++}`;\n\n constructor(@Attribute('aria-live') ariaLive: string, elementRef: ElementRef) {\n // If no aria-live value is set add 'polite' as a default. This is preferred over setting\n // role='alert' so that screen readers do not interrupt the current task to read this aloud.\n if (!ariaLive) {\n elementRef.nativeElement.setAttribute('aria-live', 'polite');\n }\n }\n}\n","/**\n * @license\n * Copyright Google LLC 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\nimport {Directive, Input} from '@angular/core';\n\nlet nextUniqueId = 0;\n\n/** Hint text to be shown underneath the form field control. */\n@Directive({\n selector: 'mat-hint',\n host: {\n 'class': 'mat-mdc-form-field-hint mat-mdc-form-field-bottom-align',\n '[class.mat-mdc-form-field-hint-end]': 'align === \"end\"',\n '[id]': 'id',\n // Remove align attribute to prevent it from interfering with layout.\n '[attr.align]': 'null',\n },\n})\nexport class MatHint {\n /** Whether to align the hint label at the start or end of the line. */\n @Input() align: 'start' | 'end' = 'start';\n\n /** Unique ID for the hint. Used for the aria-describedby on the form field control. */\n @Input() id: string = `mat-mdc-hint-${nextUniqueId++}`;\n}\n","/**\n * @license\n * Copyright Google LLC 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\nimport {Directive, ElementRef, InjectionToken} from '@angular/core';\n\n/**\n * Injection token that can be used to reference instances of `MatPrefix`. It serves as\n * alternative token to the actual `MatPrefix` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const MAT_PREFIX = new InjectionToken<MatPrefix>('MatPrefix');\n\n/** Prefix to be placed in front of the form field. */\n@Directive({\n selector: '[matPrefix], [matIconPrefix], [matTextPrefix]',\n providers: [{provide: MAT_PREFIX, useExisting: MatPrefix}],\n})\nexport class MatPrefix {\n _isText = false;\n\n constructor(elementRef: ElementRef) {\n this._isText = elementRef.nativeElement.hasAttribute('matTextPrefix');\n }\n}\n","/**\n * @license\n * Copyright Google LLC 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\nimport {Directive, ElementRef, InjectionToken} from '@angular/core';\n\n/**\n * Injection token that can be used to reference instances of `MatSuffix`. It serves as\n * alternative token to the actual `MatSuffix` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const MAT_SUFFIX = new InjectionToken<MatSuffix>('MatSuffix');\n\n/** Suffix to be placed at the end of the form field. */\n@Directive({\n selector: '[matSuffix], [matIconSuffix], [matTextSuffix]',\n providers: [{provide: MAT_SUFFIX, useExisting: MatSuffix}],\n})\nexport class MatSuffix {\n _isText = false;\n\n constructor(elementRef: ElementRef) {\n this._isText = elementRef.nativeElement.hasAttribute('matTextSuffix');\n }\n}\n","/**\n * @license\n * Copyright Google LLC 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\nimport {Directive, ElementRef, Input} from '@angular/core';\nimport {ponyfill} from '@material/dom';\n\n/**\n * Internal directive that maintains a MDC floating label. This directive does not\n * use the `MDCFloatingLabelFoundation` class, as it is not worth the size cost of\n * including it just to measure the label width and toggle some classes.\n *\n * The use of a directive allows us to conditionally render a floating label in the\n * template without having to manually manage instantiation and destruction of the\n * floating label component based on.\n *\n * The component is responsible for setting up the floating label styles, measuring label\n * width for the outline notch, and providing inputs that can be used to toggle the\n * label's floating or required state.\n */\n@Directive({\n selector: 'label[matFormFieldFloatingLabel]',\n host: {\n 'class': 'mdc-floating-label mat-mdc-floating-label',\n '[class.mdc-floating-label--float-above]': 'floating',\n },\n})\nexport class MatFormFieldFloatingLabel {\n /** Whether the label is floating. */\n @Input() floating: boolean = false;\n\n constructor(private _elementRef: ElementRef) {}\n\n /** Gets the width of the label. Used for the outline notch. */\n getWidth(): number {\n return ponyfill.estimateScrollWidth(this._elementRef.nativeElement);\n }\n\n /** Gets the HTML element for the floating label. */\n get element(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n}\n","/**\n * @license\n * Copyright Google LLC 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\nimport {Directive, ElementRef, OnDestroy} from '@angular/core';\nimport {MDCLineRipple} from '@material/line-ripple';\n\n/**\n * Internal directive that creates an instance of the MDC line-ripple component. Using a\n * directive allows us to conditionally render a line-ripple in the template without having\n * to manually create and destroy the `MDCLineRipple` component whenever the condition changes.\n *\n * The directive sets up the styles for the line-ripple and provides an API for activating\n * and deactivating the line-ripple.\n */\n@Directive({\n selector: 'div[matFormFieldLineRipple]',\n host: {\n 'class': 'mdc-line-ripple',\n },\n})\nexport class MatFormFieldLineRipple extends MDCLineRipple implements OnDestroy {\n constructor(elementRef: ElementRef) {\n super(elementRef.nativeElement);\n }\n\n ngOnDestroy() {\n this.destroy();\n }\n}\n","/**\n * @license\n * Copyright Google LLC 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\nimport {Platform} from '@angular/cdk/platform';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n ViewEncapsulation,\n} from '@angular/core';\nimport {MDCNotchedOutline} from '@material/notched-outline';\n\n/**\n * Internal component that creates an instance of the MDC notched-outline component. Using\n * a directive allows us to conditionally render a notched-outline in the template without\n * having to manually create and destroy the `MDCNotchedOutline` component whenever the\n * appearance changes.\n *\n * The component sets up the HTML structure and styles for the notched-outline. It provides\n * inputs to toggle the notch state and width.\n */\n@Component({\n selector: 'div[matFormFieldNotchedOutline]',\n templateUrl: './notched-outline.html',\n host: {\n 'class': 'mdc-notched-outline',\n // Besides updating the notch state through the MDC component, we toggle this class through\n // a host binding in order to ensure that the notched-outline renders correctly on the server.\n '[class.mdc-notched-outline--notched]': 'open',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MatFormFieldNotchedOutline implements AfterViewInit, OnChanges, OnDestroy {\n /** Width of the notch. */\n @Input('matFormFieldNotchedOutlineWidth') width: number = 0;\n\n /** Whether the notch should be opened. */\n @Input('matFormFieldNotchedOutlineOpen') open: boolean = false;\n\n /** Instance of the MDC notched outline. */\n private _mdcNotchedOutline: MDCNotchedOutline | null = null;\n\n constructor(private _elementRef: ElementRef, private _platform: Platform) {}\n\n ngAfterViewInit() {\n // The notched outline cannot be attached in the server platform. It schedules tasks\n // for the next browser animation frame and relies on element client rectangles to render\n // the outline notch. To avoid failures on the server, we just do not initialize it,\n // but the actual notched-outline styles will be still displayed.\n if (this._platform.isBrowser) {\n // The notch component relies on the view to be initialized. This means\n // that we cannot extend from the \"MDCNotchedOutline\".\n this._mdcNotchedOutline = MDCNotchedOutline.attachTo(this._elementRef.nativeElement);\n }\n // Initial sync in case state has been updated before view initialization.\n this._syncNotchedOutlineState();\n }\n\n ngOnChanges() {\n // Whenever the width, or the open state changes, sync the notched outline to be\n // based on the new values.\n this._syncNotchedOutlineState();\n }\n\n ngOnDestroy() {\n if (this._mdcNotchedOutline !== null) {\n this._mdcNotchedOutline.destroy();\n }\n }\n\n /** Synchronizes the notched outline state to be based on the `width` and `open` inputs. */\n private _syncNotchedOutlineState() {\n if (this._mdcNotchedOutline === null) {\n return;\n }\n if (this.open) {\n this._mdcNotchedOutline.notch(this.width);\n } else {\n this._mdcNotchedOutline.closeNotch();\n }\n }\n}\n","<div class=\"mdc-notched-outline__leading\"></div>\n<div class=\"mdc-notched-outline__notch\">\n <ng-content></ng-content>\n</div>\n<div class=\"mdc-notched-outline__trailing\"></div>\n","/**\n * @license\n * Copyright Google LLC 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 {Directionality} from '@angular/cdk/bidi';\nimport {Platform} from '@angular/cdk/platform';\nimport {\n AfterContentChecked,\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {AbstractControlDirective} from '@angular/forms';\nimport {ThemePalette} from '@angular/material-experimental/mdc-core';\nimport {\n getMatFormFieldDuplicatedHintError,\n getMatFormFieldMissingControlError,\n MAT_FORM_FIELD,\n matFormFieldAnimations,\n MatFormFieldControl,\n} from '@angular/material/form-field';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\nimport {\n MDCTextFieldAdapter,\n MDCTextFieldFoundation,\n numbers as mdcTextFieldNumbers,\n} from '@material/textfield';\nimport {merge, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {MAT_ERROR, MatError} from './directives/error';\nimport {MatFormFieldFloatingLabel} from './directives/floating-label';\nimport {MatHint} from './directives/hint';\nimport {MatLabel} from './directives/label';\nimport {MatFormFieldLineRipple} from './directives/line-ripple';\nimport {MatFormFieldNotchedOutline} from './directives/notched-outline';\nimport {MAT_PREFIX, MatPrefix} from './directives/prefix';\nimport {MAT_SUFFIX, MatSuffix} from './directives/suffix';\nimport {DOCUMENT} from '@angular/common';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\n\n/** Type for the available floatLabel values. */\nexport type FloatLabelType = 'always' | 'auto';\n\n/** Possible appearance styles for the form field. */\nexport type MatFormFieldAppearance = 'fill' | 'outline';\n\n/** Behaviors for how the subscript height is set. */\nexport type SubscriptSizing = 'fixed' | 'dynamic';\n\n/**\n * Represents the default options for the form field that can be configured\n * using the `MAT_FORM_FIELD_DEFAULT_OPTIONS` injection token.\n */\nexport interface MatFormFieldDefaultOptions {\n /** Default form field appearance style. */\n appearance?: MatFormFieldAppearance;\n /** Default color of the form field. */\n color?: ThemePalette;\n /** Whether the required marker should be hidden by default. */\n hideRequiredMarker?: boolean;\n /**\n * Whether the label for form fields should by default float `always`,\n * `never`, or `auto` (only when necessary).\n */\n floatLabel?: FloatLabelType;\n /** Whether the form field should reserve space for one line by default. */\n subscriptSizing?: SubscriptSizing;\n}\n\n/**\n * Injection token that can be used to configure the\n * default options for all form field within an app.\n */\nexport const MAT_FORM_FIELD_DEFAULT_OPTIONS = new InjectionToken<MatFormFieldDefaultOptions>(\n 'MAT_FORM_FIELD_DEFAULT_OPTIONS',\n);\n\nlet nextUniqueId = 0;\n\n/** Default appearance used by the form field. */\nconst DEFAULT_APPEARANCE: MatFormFieldAppearance = 'fill';\n\n/**\n * Whether the label for form fields should by default float `always`,\n * `never`, or `auto`.\n */\nconst DEFAULT_FLOAT_LABEL: FloatLabelType = 'auto';\n\n/** Default way that the subscript element height is set. */\nconst DEFAULT_SUBSCRIPT_SIZING: SubscriptSizing = 'fixed';\n\n/**\n * Default transform for docked floating labels in a MDC text-field. This value has been\n * extracted from the MDC text-field styles because we programmatically modify the docked\n * label transform, but do not want to accidentally discard the default label transform.\n */\nconst FLOATING_LABEL_DEFAULT_DOCKED_TRANSFORM = `translateY(-50%)`;\n\n/**\n * Horizontal padding in pixels used by the MDC for the wrapper containing infix.\n * This value is extracted from MDC's Sass variables. See `$padding-horizontal`.\n */\nconst WRAPPER_HORIZONTAL_PADDING = 16;\n\n/** Container for form controls that applies Material Design styling and behavior. */\n@Component({\n selector: 'mat-form-field',\n exportAs: 'matFormField',\n templateUrl: './form-field.html',\n styleUrls: ['./form-field.css'],\n animations: [matFormFieldAnimations.transitionMessages],\n host: {\n 'class': 'mat-mdc-form-field',\n '[class.mat-mdc-form-field-label-always-float]': '_shouldAlwaysFloat()',\n '[class.mat-mdc-form-field-has-icon-prefix]': '_hasIconPrefix',\n '[class.mat-mdc-form-field-has-icon-suffix]': '_hasIconSuffix',\n\n // Note that these classes reuse the same names as the non-MDC version, because they can be\n // considered a public API since custom form controls may use them to style themselves.\n // See https://github.com/angular/components/pull/20502#discussion_r486124901.\n '[class.mat-form-field-invalid]': '_control.errorState',\n '[class.mat-form-field-disabled]': '_control.disabled',\n '[class.mat-form-field-autofilled]': '_control.autofilled',\n '[class.mat-form-field-no-animations]': '_animationMode === \"NoopAnimations\"',\n '[class.mat-form-field-appearance-fill]': 'appearance == \"fill\"',\n '[class.mat-form-field-appearance-outline]': 'appearance == \"outline\"',\n '[class.mat-form-field-hide-placeholder]': '_hasFloatingLabel() && !_shouldLabelFloat()',\n '[class.mat-focused]': '_control.focused',\n '[class.mat-primary]': 'color !== \"accent\" && color !== \"warn\"',\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 changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{provide: MAT_FORM_FIELD, useExisting: MatFormField}],\n})\nexport class MatFormField\n implements AfterContentInit, AfterContentChecked, AfterViewInit, OnDestroy\n{\n @ViewChild('textField') _textField: ElementRef<HTMLElement>;\n @ViewChild('iconPrefixContainer') _iconPrefixContainer: ElementRef<HTMLElement>;\n @ViewChild('textPrefixContainer') _textPrefixContainer: ElementRef<HTMLElement>;\n @ViewChild(MatFormFieldFloatingLabel) _floatingLabel: MatFormFieldFloatingLabel | undefined;\n @ViewChild(MatFormFieldNotchedOutline) _notchedOutline: MatFormFieldNotchedOutline | undefined;\n @ViewChild(MatFormFieldLineRipple) _lineRipple: MatFormFieldLineRipple | undefined;\n\n @ContentChild(MatLabel) _labelChildNonStatic: MatLabel | undefined;\n @ContentChild(MatLabel, {static: true}) _labelChildStatic: MatLabel | undefined;\n @ContentChild(MatFormFieldControl) _formFieldControl: MatFormFieldControl<any>;\n @ContentChildren(MAT_PREFIX, {descendants: true}) _prefixChildren: QueryList<MatPrefix>;\n @ContentChildren(MAT_SUFFIX, {descendants: true}) _suffixChildren: QueryList<MatSuffix>;\n @ContentChildren(MAT_ERROR, {descendants: true}) _errorChildren: QueryList<MatError>;\n @ContentChildren(MatHint, {descendants: true}) _hintChildren: QueryList<MatHint>;\n\n /** Whether the required marker should be hidden. */\n @Input()\n get hideRequiredMarker(): boolean {\n return this._hideRequiredMarker;\n }\n set hideRequiredMarker(value: BooleanInput) {\n this._hideRequiredMarker = coerceBooleanProperty(value);\n }\n private _hideRequiredMarker = false;\n\n /** The color palette for the form field. */\n @Input() color: ThemePalette = 'primary';\n\n /** Whether the label should always float or float as the user types. */\n @Input()\n get floatLabel(): FloatLabelType {\n return this._floatLabel || this._defaults?.floatLabel || DEFAULT_FLOAT_LABEL;\n }\n set floatLabel(value: FloatLabelType) {\n if (value !== this._floatLabel) {\n this._floatLabel = value;\n // For backwards compatibility. Custom form field controls or directives might set\n // the \"floatLabel\" input and expect the form field view to be updated automatically.\n // e.g. autocomplete trigger. Ideally we'd get rid of this and the consumers would just\n // emit the \"stateChanges\" observable. TODO(devversion): consider removing.\n this._changeDetectorRef.markForCheck();\n }\n }\n private _floatLabel: FloatLabelType;\n\n /** The form field appearance style. */\n @Input()\n get appearance(): MatFormFieldAppearance {\n return this._appearance;\n }\n set appearance(value: MatFormFieldAppearance) {\n const oldValue = this._appearance;\n this._appearance = value || this._defaults?.appearance || DEFAULT_APPEARANCE;\n if (this._appearance === 'outline' && this._appearance !== oldValue) {\n this._refreshOutlineNotchWidth();\n\n // If the appearance has been switched to `outline`, the label offset needs to be updated.\n // The update can happen once the view has been re-checked, but not immediately because\n // the view has not been updated and the notched-outline floating label is not present.\n this._needsOutlineLabelOffsetUpdateOnStable = true;\n }\n }\n private _appearance: MatFormFieldAppearance = DEFAULT_APPEARANCE;\n\n /**\n * Whether the form field should reserve space for one line of hint/error text (default)\n * or to have the spacing grow from 0px as needed based on the size of the hint/error content.\n * Note that when using dynamic sizing, layout shifts will occur when hint/error text changes.\n */\n @Input()\n get subscriptSizing(): SubscriptSizing {\n return this._subscriptSizing || this._defaults?.subscriptSizing || DEFAULT_SUBSCRIPT_SIZING;\n }\n set subscriptSizing(value: SubscriptSizing) {\n this._subscriptSizing = value || this._defaults?.subscriptSizing || DEFAULT_SUBSCRIPT_SIZING;\n }\n private _subscriptSizing: SubscriptSizing | null = null;\n\n /** Text for the form field hint. */\n @Input()\n get hintLabel(): string {\n return this._hintLabel;\n }\n set hintLabel(value: string) {\n this._hintLabel = value;\n this._processHints();\n }\n private _hintLabel = '';\n\n _hasIconPrefix = false;\n _hasTextPrefix = false;\n _hasIconSuffix = false;\n _hasTextSuffix = false;\n\n // Unique id for the internal form field label.\n readonly _labelId = `mat-mdc-form-field-label-${nextUniqueId++}`;\n\n // Unique id for the hint label.\n readonly _hintLabelId = `mat-mdc-hint-${nextUniqueId++}`;\n\n /** State of the mat-hint and mat-error animations. */\n _subscriptAnimationState = '';\n\n /** Width of the outline notch. */\n _outlineNotchWidth = 0;\n\n /** Gets the current form field control */\n get _control(): MatFormFieldControl<any> {\n return this._explicitFormFieldControl || this._formFieldControl;\n }\n set _control(value) {\n this._explicitFormFieldControl = value;\n }\n\n private _destroyed = new Subject<void>();\n private _isFocused: boolean | null = null;\n private _explicitFormFieldControl: MatFormFieldControl<any>;\n private _foundation: MDCTextFieldFoundation;\n private _needsOutlineLabelOffsetUpdateOnStable = false;\n private _adapter: MDCTextFieldAdapter = {\n addClass: className => this._textField.nativeElement.classList.add(className),\n removeClass: className => this._textField.nativeElement.classList.remove(className),\n hasClass: className => this._textField.nativeElement.classList.contains(className),\n\n hasLabel: () => this._hasFloatingLabel(),\n isFocused: () => this._control.focused,\n hasOutline: () => this._hasOutline(),\n\n // MDC text-field will call this method on focus, blur and value change. It expects us\n // to update the floating label state accordingly. Though we make this a noop because we\n // want to react to floating label state changes through change detection. Relying on this\n // adapter method would mean that the label would not update if the custom form field control\n // sets \"shouldLabelFloat\" to true, or if the \"floatLabel\" input binding changes to \"always\".\n floatLabel: () => {},\n\n // Label shaking is not supported yet. It will require a new API for form field\n // controls to trigger the shaking. This can be a feature in the future.\n // TODO(devversion): explore options on how to integrate label shaking.\n shakeLabel: () => {},\n\n // MDC by default updates the notched-outline whenever the text-field receives focus, or\n // is being blurred. It also computes the label width every time the notch is opened or\n // closed. This works fine in the standard MDC text-field, but not in Angular where the\n // floating label could change through interpolation. We want to be able to update the\n // notched outline whenever the label content changes. Additionally, relying on focus or\n // blur to open and close the notch does not work for us since abstract form field controls\n // have the ability to control the floating label state (i.e. `shouldLabelFloat`), and we\n // want to update the notch whenever the `_shouldLabelFloat()` value changes.\n getLabelWidth: () => 0,\n\n // We don't use `setLabelRequired` as it relies on a mutation observer for determining\n // when the `required` state changes. This is not reliable and flexible enough for\n // our form field, as we support custom controls and detect the required state through\n // a public property in the abstract form control.\n setLabelRequired: () => {},\n notchOutline: () => {},\n closeOutline: () => {},\n\n activateLineRipple: () => this._lineRipple && this._lineRipple.activate(),\n deactivateLineRipple: () => this._lineRipple && this._lineRipple.deactivate(),\n\n // The foundation tries to register events on the input. This is not matching\n // our concept of abstract form field controls. We handle each event manually\n // in \"stateChanges\" based on the form field control state. The following events\n // need to be handled: focus, blur. We do not handle the \"input\" event since\n // that one is only needed for the text-field character count, which we do\n // not implement as part of the form field, but should be implemented manually\n // by consumers using template bindings.\n registerInputInteractionHandler: () => {},\n deregisterInputInteractionHandler: () => {},\n\n // We do not have a reference to the native input since we work with abstract form field\n // controls. MDC needs a reference to the native input optionally to handle character\n // counting and value updating. These are both things we do not handle from within the\n // form field, so we can just return null.\n getNativeInput: () => null,\n\n // This method will never be called since we do not have the ability to add event listeners\n // to the native input. This is because the form control is not necessarily an input, and\n // the form field deals with abstract form controls of any type.\n setLineRippleTransformOrigin: () => {},\n\n // The foundation tries to register click and keyboard events on the form field to figure out\n // if the input value changes through user interaction. Based on that, the foundation tries\n // to focus the input. Since we do not handle the input value as part of the form field, nor\n // it's guaranteed to be an input (see adapter methods above), this is a noop.\n deregisterTextFieldInteractionHandler: () => {},\n registerTextFieldInteractionHandler: () => {},\n\n // The foundation tries to setup a \"MutationObserver\" in order to watch for attributes\n // like \"maxlength\" or \"pattern\" to change. The foundation will update the validity state\n // based on that. We do not need this logic since we handle the validity through the\n // abstract form control instance.\n deregisterValidationAttributeChangeHandler: () => {},\n registerValidationAttributeChangeHandler: () => null as any,\n\n // Used by foundation to dynamically remove aria-describedby when the hint text\n // is shown only on invalid state, which should not be applicable here.\n setInputAttr: () => undefined,\n removeInputAttr: () => undefined,\n };\n\n constructor(\n private _elementRef: ElementRef,\n private _changeDetectorRef: ChangeDetectorRef,\n private _ngZone: NgZone,\n private _dir: Directionality,\n private _platform: Platform,\n @Optional()\n @Inject(MAT_FORM_FIELD_DEFAULT_OPTIONS)\n private _defaults?: MatFormFieldDefaultOptions,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) public _animationMode?: string,\n @Inject(DOCUMENT) private _document?: any,\n ) {\n if (_defaults) {\n if (_defaults.appearance) {\n this.appearance = _defaults.appearance;\n }\n this._hideRequiredMarker = Boolean(_defaults?.hideRequiredMarker);\n if (_defaults.color) {\n this.color = _defaults.color;\n }\n }\n }\n\n ngAfterViewInit() {\n this._foundation = new MDCTextFieldFoundation(this._adapter);\n\n // MDC uses the \"shouldFloat\" getter to know whether the label is currently floating. This\n // does not match our implementation of when the label floats because we support more cases.\n // For example, consumers can set \"@Input floatLabel\" to always, or the custom form field\n // control can set \"MatFormFieldControl#shouldLabelFloat\" to true. To ensure that MDC knows\n // when the label is floating, we overwrite the property to be based on the method we use to\n // determine the current state of the floating label.\n Object.defineProperty(this._foundation, 'shouldFloat', {\n get: () => this._shouldLabelFloat(),\n });\n\n // By default, the foundation determines the validity of the text-field from the\n // specified native input. Since we don't pass a native input to the foundation because\n // abstract form controls are not necessarily consisting of an input, we handle the\n // text-field validity through the abstract form field control state.\n this._foundation.isValid = () => !this._control.errorState;\n\n // Initial focus state sync. This happens rarely, but we want to account for\n // it in case the form field control has \"focused\" set to true on init.\n this._updateFocusState();\n // Initial notch width update. This is needed in case the text-field label floats\n // on initialization, and renders inside of the notched outline.\n this._refreshOutlineNotchWidth();\n // Make sure fonts are loaded before calculating the width.\n // zone.js currently doesn't patch the FontFaceSet API so two calls to\n // _refreshOutlineNotchWidth is needed for this to work properly in async tests.\n // Furthermore if the font takes a long time to load we want the outline notch to be close\n // to the correct width from the start then correct itself when the fonts load.\n if (this._document?.fonts?.ready) {\n this._document.fonts.ready.then(() => {\n this._refreshOutlineNotchWidth();\n this._changeDetectorRef.markForCheck();\n });\n } else {\n // FontFaceSet is not supported in IE\n setTimeout(() => this._refreshOutlineNotchWidth(), 100);\n }\n // Enable animations now. This ensures we don't animate on initial render.\n this._subscriptAnimationState = 'enter';\n // Because the above changes a value used in the template after it was checked, we need\n // to trigger CD or the change might not be reflected if there is no other CD scheduled.\n this._changeDetectorRef.detectChanges();\n }\n\n ngAfterContentInit() {\n this._assertFormFieldControl();\n this._initializeControl();\n this._initializeSubscript();\n this._initializePrefixAndSuffix();\n this._initializeOutlineLabelOffsetSubscriptions();\n }\n\n ngAfterContentChecked() {\n this._assertFormFieldControl();\n }\n\n ngOnDestroy() {\n this._foundation?.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n /**\n * Gets the id of the label element. If no label is present, returns `null`.\n */\n getLabelId(): string | null {\n return this._hasFloatingLabel() ? this._labelId : null;\n }\n\n /**\n * Gets an ElementRef for the element that a overlay attached to the form field\n * should be positioned relative to.\n */\n getConnectedOverlayOrigin(): ElementRef {\n return this._textField || this._elementRef;\n }\n\n /** Animates the placeholder up and locks it in position. */\n _animateAndLockLabel(): void {\n // This is for backwards compatibility only. Consumers of the form field might use\n // this method. e.g. the autocomplete trigger. This method has been added to the non-MDC\n // form field because setting \"floatLabel\" to \"always\" caused the label to float without\n // animation. This is different in MDC where the label always animates, so this method\n // is no longer necessary. There doesn't seem any benefit in adding logic to allow changing\n // the floating label state without animations. The non-MDC implementation was inconsistent\n // because it always animates if \"floatLabel\" is set away from \"always\".\n // TODO(devversion): consider removing this method when releasing the MDC form field.\n if (this._hasFloatingLabel()) {\n this.floatLabel = 'always';\n }\n }\n\n /** Initializes the registered form field control. */\n private _initializeControl() {\n const control = this._control;\n\n if (control.controlType) {\n this._elementRef.nativeElement.classList.add(\n `mat-mdc-form-field-type-${control.controlType}`,\n );\n }\n\n // Subscribe to changes in the child control state in order to update the form field UI.\n control.stateChanges.subscribe(() => {\n this._updateFocusState();\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n\n // Run change detection if the value changes.\n if (control.ngControl && control.ngControl.valueChanges) {\n control.ngControl.valueChanges\n .pipe(takeUntil(this._destroyed))\n .subscribe(() => this._changeDetectorRef.markForCheck());\n }\n }\n\n private _checkPrefixAndSuffixTypes() {\n this._hasIconPrefix = !!this._prefixChildren.find(p => !p._isText);\n this._hasTextPrefix = !!this._prefixChildren.find(p => p._isText);\n this._hasIconSuffix = !!this._suffixChildren.find(s => !s._isText);\n this._hasTextSuffix = !!this._suffixChildren.find(s => s._isText);\n }\n\n /** Initializes the prefix and suffix containers. */\n private _initializePrefixAndSuffix() {\n this._checkPrefixAndSuffixTypes();\n // Mark the form field as dirty whenever the prefix or suffix children change. This\n // is necessary because we conditionally display the prefix/suffix containers based\n // on whether there is projected content.\n merge(this._prefixChildren.changes, this._suffixChildren.changes).subscribe(() => {\n this._checkPrefixAndSuffixTypes();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * Initializes the subscript by validating hints and synchronizing \"aria-describedby\" ids\n * with the custom form field control. Also subscribes to hint and error changes in order\n * to be able to validate and synchronize ids on change.\n */\n private _initializeSubscript() {\n // Re-validate when the number of hints changes.\n this._hintChildren.changes.subscribe(() => {\n this._processHints();\n this._changeDetectorRef.markForCheck();\n });\n\n // Update the aria-described by when the number of errors changes.\n this._errorChildren.changes.subscribe(() => {\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n\n // Initial mat-hint validation and subscript describedByIds sync.\n this._validateHints();\n this._syncDescribedByIds();\n }\n\n /** Throws an error if the form field's control is missing. */\n private _assertFormFieldControl() {\n if (!this._control && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatFormFieldMissingControlError();\n }\n }\n\n private _updateFocusState() {\n // Usually the MDC foundation would call \"activateFocus\" and \"deactivateFocus\" whenever\n // certain DOM events are emitted. This is not possible in our implementation of the\n // form field because we support abstract form field controls which are not necessarily\n // of type input, nor do we have a reference to a native form field control element. Instead\n // we handle the focus by checking if the abstract form field control focused state changes.\n if (this._control.focused && !this._isFocused) {\n this._isFocused = true;\n this._foundation.activateFocus();\n } else if (!this._control.focused && (this._isFocused || this._isFocused === null)) {\n this._isFocused = false;\n this._foundation.deactivateFocus();\n }\n }\n\n /**\n * The floating label in the docked state needs to account for prefixes. The horizontal offset\n * is calculated whenever the appearance changes to `outline`, the prefixes change, or when the\n * form field is added to the DOM. This method sets up all subscriptions which are needed to\n * trigger the label offset update. In general, we want to avoid performing measurements often,\n * so we rely on the `NgZone` as indicator when the offset should be recalculated, instead of\n * checking every change detection cycle.\n */\n private _initializeOutlineLabelOffsetSubscriptions() {\n // Whenever the prefix changes, schedule an update of the label offset.\n this._prefixChildren.changes.subscribe(\n () => (this._needsOutlineLabelOffsetUpdateOnStable = true),\n );\n\n // Note that we have to run outside of the `NgZone` explicitly, in order to avoid\n // throwing users into an infinite loop if `zone-patch-rxjs` is included.\n this._ngZone.runOutsideAngular(() => {\n this._ngZone.onStable.pipe(takeUntil(this._destroyed)).subscribe(() => {\n if (this._needsOutlineLabelOffsetUpdateOnStable) {\n this._needsOutlineLabelOffsetUpdateOnStable = false;\n this._updateOutlineLabelOffset();\n }\n });\n });\n\n this._dir.change\n .pipe(takeUntil(this._destroyed))\n .subscribe(() => (this._needsOutlineLabelOffsetUpdateOnStable = true));\n }\n\n /** Whether the floating label should always float or not. */\n _shouldAlwaysFloat() {\n return this.floatLabel === 'always';\n }\n\n _hasOutline() {\n return this.appearance === 'outline';\n }\n\n /**\n * Whether the label should display in the infix. Labels in the outline appearance are\n * displayed as part of the notched-outline and are horizontally offset to account for\n * form field prefix content. This won't work in server side rendering since we cannot\n * measure the width of the prefix container. To make the docked label appear as if the\n * right offset has been calculated, we forcibly render the label inside the infix. Since\n * the label is part of the infix, the label cannot overflow the prefix content.\n */\n _forceDisplayInfixLabel() {\n return !this._platform.isBrowser && this._prefixChildren.length && !this._shouldLabelFloat();\n }\n\n _hasFloatingLabel() {\n return !!this._labelChildNonStatic || !!this._labelChildStatic;\n }\n\n _shouldLabelFloat() {\n return this._control.shouldLabelFloat || this._shouldAlwaysFloat();\n }\n\n /**\n * Determines whether a class from the AbstractControlDirective\n * should be forwarded to the host element.\n */\n _shouldForward(prop: keyof AbstractControlDirective): boolean {\n const control = this._control ? this._control.ngControl : null;\n return control && control[prop];\n }\n\n /** Determines whether to display hints or errors. */\n _getDisplayedMessages(): 'error' | 'hint' {\n return this._errorChildren && this._errorChildren.length > 0 && this._control.errorState\n ? 'error'\n : 'hint';\n }\n\n /** Refreshes the width of the outline-notch, if present. */\n _refreshOutlineNotchWidth() {\n if (!this._hasOutline() || !this._floatingLabel) {\n return;\n }\n // The outline notch should be based on the label width, but needs to respect the scaling\n // applied to the label if it actively floats. Since the label always floats when the notch\n // is open, the MDC text-field floating label scaling is respected in notch width calculation.\n this._outlineNotchWidth = this._floatingLabel.getWidth() * mdcTextFieldNumbers.LABEL_SCALE;\n }\n\n /** Does any extra processing that is required when handling the hints. */\n private _processHints() {\n this._validateHints();\n this._syncDescribedByIds();\n }\n\n /**\n * Ensure that there is a maximum of one of each \"mat-hint\" alignment specified. The hint\n * label specified set through the input is being considered as \"start\" aligned.\n *\n * This method is a noop if Angular runs in production mode.\n */\n private _validateHints() {\n if (this._hintChildren && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n let startHint: MatHint;\n let endHint: MatHint;\n this._hintChildren.forEach((hint: MatHint) => {\n if (hint.align === 'start') {\n if (startHint || this.hintLabel) {\n throw getMatFormFieldDuplicatedHintError('start');\n }\n startHint = hint;\n } else if (hint.align === 'end') {\n if (endHint) {\n throw getMatFormFieldDuplicatedHintError('end');\n }\n endHint = hint;\n }\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 */\n private _syncDescribedByIds() {\n if (this._control) {\n let ids: string[] = [];\n\n // TODO(wagnermaciel): Remove the type check when we find the root cause of this bug.\n if (\n this._control.userAriaDescribedBy &&\n typeof this._control.userAriaDescribedBy === 'string'\n ) {\n ids.push(...this._control.userAriaDescribedBy.split(' '));\n }\n\n if (this._getDisplayedMessages() === 'hint') {\n const startHint = this._hintChildren\n ? this._hintChildren.find(hint => hint.align === 'start')\n : null;\n const endHint = this._hintChildren\n ? this._hintChildren.find(hint => hint.align === 'end')\n : null;\n\n if (startHint) {\n ids.push(startHint.id);\n } else if (this._hintLabel) {\n ids.push(this._hintLabelId);\n }\n\n if (endHint) {\n ids.push(endHint.id);\n }\n } else if (this._errorChildren) {\n ids.push(...this._errorChildren.map(error => error.id));\n }\n\n this._control.setDescribedByIds(ids);\n }\n }\n\n /**\n * Updates the horizontal offset of the label in the outline appearance. In the outline\n * appearance, the notched-outline and label are not relative to the infix container because\n * the outline intends to surround prefixes, suffixes and the infix. This means that the\n * floating label by default overlaps prefixes in the docked state. To avoid this, we need to\n * horizontally offset the label by the width of the prefix container. The MDC text-field does\n * not need to do this because they use a fixed width for prefixes. Hence, they can simply\n * incorporate the horizontal offset into their default text-field styles.\n */\n private _updateOutlineLabelOffset() {\n if (!this._platform.isBrowser || !this._hasOutline() || !this._floatingLabel) {\n return;\n }\n const floatingLabel = this._floatingLabel.element;\n // If no prefix is displayed, reset the outline label offset from potential\n // previous label offset updates.\n if (!(this._iconPrefixContainer || this._textPrefixContainer)) {\n floatingLabel.style.transform = '';\n return;\n }\n // If the form field is not attached to the DOM yet (e.g. in a tab), we defer\n // the label offset update until the zone stabilizes.\n if (!this._isAttachedToDom()) {\n this._needsOutlineLabelOffsetUpdateOnStable = true;\n return;\n }\n const iconPrefixContainer = this._iconPrefixContainer?.nativeElement;\n const textPrefixContainer = this._textPrefixContainer?.nativeElement;\n const iconPrefixContainerWidth = iconPrefixContainer?.getBoundingClientRect().width ?? 0;\n const textPrefixContainerWidth = textPrefixContainer?.getBoundingClientRect().width ?? 0;\n // If the directionality is RTL, the x-axis transform needs to be inverted. This\n // is because `transformX` does not change based on the page directionality.\n const labelHorizontalOffset =\n (this._dir.value === 'rtl' ? -1 : 1) *\n // If there's an icon prefix, we subtract the default horizontal padding as we\n // reset the horizontal padding in CSS too.\n ((iconPrefixContainer ? iconPrefixContainerWidth - WRAPPER_HORIZONTAL_PADDING : 0) +\n textPrefixContainerWidth);\n\n // Update the transform the floating label to account for the prefix container. Note\n // that we do not want to overwrite the default transform for docked floating labels.\n floatingLabel.style.transform = `${FLOATING_LABEL_DEFAULT_DOCKED_TRANSFORM} translateX(${labelHorizontalOffset}px)`;\n }\n\n /** Checks whether the form field is attached to the DOM. */\n private _isAttachedToDom(): boolean {\n const element: HTMLElement = this._elementRef.nativeElement;\n if (element.getRootNode) {\n const rootNode = element.getRootNode();\n // If the element is inside the DOM the root node will be either the document\n // or the closest shadow root, otherwise it'll be the element itself.\n return rootNode && rootNode !== element;\n }\n // Otherwise fall back to checking if it's in the document. This doesn't account for\n // shadow DOM, however browser that support shadow DOM should support `getRootNode` as well.\n return document.documentElement!.contains(element);\n }\n}\n","<ng-template #labelTemplate>\n <!--\n MDC recommends that the text-field is a `<label>` element. This rather complicates the\n setup because it would require every form-field control to explicitly set `aria-labelledby`.\n This is because the `<label>` itself contains more than the actual label (e.g. prefix, suffix\n or other projected content), and screen readers could potentially read out undesired content.\n Excluding elements from being printed out requires them to be marked with `aria-hidden`, or\n the form control is set to a scoped element for the label (using `aria-labelledby`). Both of\n these options seem to complicate the setup because we know exactly what content is rendered\n as part of the label, and we don't want to spend resources on walking through projected content\n to set `aria-hidden`. Nor do we want to set `aria-labelledby` on every form control if we could\n simply link the label to the control using the label `for` attribute.\n\n *Note*: We add aria-owns as a workaround for an issue in JAWS & NVDA where the label isn't\n read if it comes before the control in the DOM.\n -->\n <label matFormFieldFloatingLabel\n [floating]=\"_shouldLabelFloat()\"\n *ngIf=\"_hasFloatingLabel()\"\n (cdkObserveContent)=\"_refreshOutlineNotchWidth()\"\n [cdkObserveContentDisabled]=\"!_hasOutline()\"\n [id]=\"_labelId\"\n [attr.for]=\"_control.id\"\n [attr.aria-owns]=\"_control.id\">\n <ng-content select=\"mat-label\"></ng-content>\n <!--\n We set the required marker as a separate element, in order to make it easier to target if\n apps want to override it and to be able to set `aria-hidden` so that screen readers don't\n pick it up.\n -->\n <span\n *ngIf=\"!hideRequiredMarker && _control.required\"\n aria-hidden=\"true\"\n class=\"mat-mdc-form-field-required-marker mdc-floating-label--required\"></span>\n </label>\n</ng-template>\n\n<div class=\"mat-mdc-text-field-wrapper mdc-text-field\" #textField\n [class.mdc-text-field--filled]=\"!_hasOutline()\"\n [class.mdc-text-field--outlined]=\"_hasOutline()\"\n [class.mdc-text-field--no-label]=\"!_hasFloatingLabel()\"\n [class.mdc-text-field--disabled]=\"_control.disabled\"\n [class.mdc-text-field--invalid]=\"_control.errorState\"\n (click)=\"_control.onContainerClick && _control.onContainerClick($event)\">\n <div class=\"mat-mdc-form-field-focus-overlay\" *ngIf=\"!_hasOutline() && !_control.disabled\"></div>\n <div class=\"mat-mdc-form-field-flex\">\n <div *ngIf=\"_hasOutline()\" matFormFieldNotchedOutline\n [matFormFieldNotchedOutlineOpen]=\"_shouldLabelFloat()\"\n [matFormFieldNotchedOutlineWidth]=\"_outlineNotchWidth\">\n <ng-template [ngIf]=\"!_forceDisplayInfixLabel()\">\n <ng-template [ngTemplateOutlet]=\"labelTemplate\"></ng-template>\n </ng-template>\n </div>\n\n <div class=\"mat-mdc-form-field-icon-prefix\" *ngIf=\"_hasIconPrefix\" #iconPrefixContainer>\n <ng-content select=\"[matPrefix], [matIconPrefix]\"></ng-content>\n </div>\n <div class=\"mat-mdc-form-field-text-prefix\" *ngIf=\"_hasTextPrefix\" #textPrefixContainer>\n <ng-content select=\"[matTextPrefix]\"></ng-content>\n </div>\n\n <div class=\"mat-mdc-form-field-infix\">\n <ng-template [ngIf]=\"!_hasOutline() || _forceDisplayInfixLabel()\">\n <ng-template [ngTemplateOutlet]=\"labelTemplate\"></ng-template>\n </ng-template>\n\n <ng-content></ng-content>\n </div>\n\n <div class=\"mat-mdc-form-field-text-suffix\" *ngIf=\"_hasTextSuffix\">\n <ng-content select=\"[matTextSuffix]\"></ng-content>\n </div>\n <div class=\"mat-mdc-form-field-icon-suffix\" *ngIf=\"_hasIconSuffix\">\n <ng-content select=\"[matSuffix], [matIconSuffix]\"></ng-content>\n </div>\n </div>\n\n <div matFormFieldLineRipple *ngIf=\"!_hasOutline()\"></div>\n</div>\n\n<div class=\"mat-mdc-form-field-subscript-wrapper mat-mdc-form-field-bottom-align\"\n [class.mat-mdc-form-field-subscript-dynamic-size]=\"subscriptSizing === 'dynamic'\"\n [ngSwitch]=\"_getDisplayedMessages()\">\n <div class=\"mat-mdc-form-field-error-wrapper\" *ngSwitchCase=\"'error'\"\n [@transitionMessages]=\"_subscriptAnimationState\">\n <ng-content select=\"mat-error\"></ng-content>\n </div>\n\n <div class=\"mat-mdc-form-field-hint-wrapper\" *ngSwitchCase=\"'hint'\"\n [@transitionMessages]=\"_subscriptAnimationState\">\n <mat-hint *ngIf=\"hintLabel\" [id]=\"_hintLabelId\">{{hintLabel}}</mat-hint>\n <ng-content select=\"mat-hint:not([align='end'])\"></ng-content>\n <div class=\"mat-mdc-form-field-hint-spacer\"></div>\n <ng-content select=\"mat-hint[align='end']\"></ng-content>\n </div>\n</div>\n","/**\n * @license\n * Copyright Google LLC 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\nimport {ObserversModule} from '@angular/cdk/observers';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MatCommonModule} from '@angular/material-experimental/mdc-core';\nimport {MatError} from './directives/error';\nimport {MatFormFieldFloatingLabel} from './directives/floating-label';\nimport {MatHint} from './directives/hint';\nimport {MatLabel} from './directives/label';\nimport {MatFormFieldLineRipple} from './directives/line-ripple';\nimport {MatFormFieldNotchedOutline} from './directives/notched-outline';\nimport {MatPrefix} from './directives/prefix';\nimport {MatSuffix} from './directives/suffix';\nimport {MatFormField} from './form-field';\n\n@NgModule({\n imports: [MatCommonModule, CommonModule, ObserversModule],\n exports: [MatFormField, MatLabel, MatHint, MatError, MatPrefix, MatSuffix, MatCommonModule],\n declarations: [\n MatFormField,\n MatLabel,\n MatError,\n MatHint,\n MatPrefix,\n MatSuffix,\n MatFormFieldFloatingLabel,\n MatFormFieldNotchedOutline,\n MatFormFieldLineRipple,\n ],\n})\nexport class MatFormFieldModule {}\n","/**\n * @license\n * Copyright Google LLC 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\nexport * from './directives/label';\nexport * from './directives/error';\nexport * from './directives/hint';\nexport * from './directives/prefix';\nexport * from './directives/suffix';\nexport * from './form-field';\nexport * from './module';\n\nexport {\n MAT_FORM_FIELD,\n MatFormFieldControl,\n getMatFormFieldDuplicatedHintError,\n getMatFormFieldMissingControlError,\n getMatFormFieldPlaceholderConflictError,\n _MAT_HINT,\n MatPlaceholder,\n matFormFieldAnimations,\n} from '@angular/material/form-field';\n","/**\n * @license\n * Copyright Google LLC 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\nexport * from './public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextUniqueId","mdcTextFieldNumbers","i1","i2","i3.MatFormFieldNotchedOutline","i5.MatFormFieldFloatingLabel","i7.MatFormFieldLineRipple","i8.MatHint"],"mappings":"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"}
|
package/fesm2015/mdc-input.mjs
CHANGED
|
@@ -19,9 +19,9 @@ import { MatFormFieldModule } from '@angular/material-experimental/mdc-form-fiel
|
|
|
19
19
|
// styles appropriately.
|
|
20
20
|
class MatInput extends MatInput$1 {
|
|
21
21
|
}
|
|
22
|
-
MatInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
23
|
-
MatInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
22
|
+
MatInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatInput, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
23
|
+
MatInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.9", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl],\n input[matNativeControl], textarea[matNativeControl]", host: { properties: { "class.mat-form-field-autofill-control": "false", "class.mat-input-element": "false", "class.mat-form-field-control": "false", "class.mat-native-select-inline": "false", "class.mat-input-server": "_isServer", "class.mat-mdc-form-field-textarea-control": "_isInFormField && _isTextarea", "class.mat-mdc-form-field-input-control": "_isInFormField", "class.mdc-text-field__input": "_isInFormField", "class.mat-mdc-native-select-inline": "_isInlineSelect()", "id": "id", "disabled": "disabled", "required": "required", "attr.name": "name", "attr.placeholder": "placeholder", "attr.readonly": "readonly && !_isNativeSelect || null", "attr.aria-invalid": "(empty && required) ? null : errorState", "attr.aria-required": "required" }, classAttribute: "mat-mdc-input-element" }, providers: [{ provide: MatFormFieldControl, useExisting: MatInput }], exportAs: ["matInput"], usesInheritance: true, ngImport: i0 });
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatInput, decorators: [{
|
|
25
25
|
type: Directive,
|
|
26
26
|
args: [{
|
|
27
27
|
selector: `input[matInput], textarea[matInput], select[matNativeControl],
|
|
@@ -67,10 +67,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.6",
|
|
|
67
67
|
*/
|
|
68
68
|
class MatInputModule {
|
|
69
69
|
}
|
|
70
|
-
MatInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
71
|
-
MatInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
72
|
-
MatInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
73
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
70
|
+
MatInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
71
|
+
MatInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatInputModule, declarations: [MatInput], imports: [MatCommonModule, MatFormFieldModule], exports: [MatInput, MatFormFieldModule, TextFieldModule, MatCommonModule] });
|
|
72
|
+
MatInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatInputModule, imports: [[MatCommonModule, MatFormFieldModule], MatFormFieldModule, TextFieldModule, MatCommonModule] });
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.9", ngImport: i0, type: MatInputModule, decorators: [{
|
|
74
74
|
type: NgModule,
|
|
75
75
|
args: [{
|
|
76
76
|
imports: [MatCommonModule, MatFormFieldModule],
|