@angular/material 14.0.0-next.0 → 14.0.0-next.11
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 +20 -1
- package/autocomplete/autocomplete-trigger.d.ts +14 -3
- package/autocomplete/autocomplete.d.ts +7 -1
- package/badge/_badge-theme.scss +11 -2
- package/button-toggle/_button-toggle-theme.scss +14 -2
- package/checkbox/_checkbox-theme.scss +1 -1
- package/checkbox/checkbox.d.ts +1 -1
- package/checkbox/testing/checkbox-harness-filters.d.ts +2 -0
- package/chips/chip-input.d.ts +2 -5
- package/chips/chip-list.d.ts +21 -6
- package/chips/chip.d.ts +4 -4
- package/core/_core.scss +5 -7
- package/core/common-behaviors/error-state.d.ts +1 -2
- package/core/datetime/index.d.ts +1 -2
- package/core/ripple/_ripple.scss +2 -2
- package/core/ripple/index.d.ts +1 -2
- package/core/ripple/ripple-ref.d.ts +2 -1
- package/core/ripple/ripple-renderer.d.ts +16 -3
- package/core/style/_menu-common.scss +3 -2
- package/core/style/_vendor-prefixes.scss +1 -17
- package/core/theming/_theming.scss +9 -0
- package/core/typography/_typography.scss +51 -14
- package/datepicker/calendar-body.d.ts +34 -4
- package/datepicker/date-range-input-parts.d.ts +4 -1
- package/datepicker/datepicker-base.d.ts +2 -0
- package/datepicker/month-view.d.ts +18 -0
- package/datepicker/multi-year-view.d.ts +18 -0
- package/datepicker/year-view.d.ts +18 -0
- package/dialog/dialog-animations.d.ts +10 -0
- package/dialog/dialog-config.d.ts +12 -1
- package/dialog/dialog-container.d.ts +12 -4
- package/dialog/dialog-content-directives.d.ts +5 -1
- package/dialog/dialog.d.ts +12 -6
- package/dialog/public-api.d.ts +1 -1
- package/dialog/testing/dialog-opener.d.ts +33 -0
- package/dialog/testing/public-api.d.ts +1 -0
- package/esm2020/autocomplete/autocomplete-module.mjs +5 -5
- package/esm2020/autocomplete/autocomplete-origin.mjs +7 -7
- package/esm2020/autocomplete/autocomplete-trigger.mjs +96 -49
- package/esm2020/autocomplete/autocomplete.mjs +19 -9
- package/esm2020/autocomplete/testing/autocomplete-harness.mjs +7 -1
- package/esm2020/badge/badge-module.mjs +5 -5
- package/esm2020/badge/badge.mjs +4 -4
- package/esm2020/bottom-sheet/bottom-sheet-animations.mjs +10 -4
- package/esm2020/bottom-sheet/bottom-sheet-container.mjs +12 -7
- package/esm2020/bottom-sheet/bottom-sheet-module.mjs +5 -5
- package/esm2020/bottom-sheet/bottom-sheet.mjs +4 -4
- package/esm2020/button/button-module.mjs +5 -5
- package/esm2020/button/button.mjs +10 -10
- package/esm2020/button-toggle/button-toggle-module.mjs +5 -5
- package/esm2020/button-toggle/button-toggle.mjs +8 -8
- package/esm2020/card/card-module.mjs +5 -5
- package/esm2020/card/card.mjs +44 -44
- package/esm2020/checkbox/checkbox-module.mjs +9 -9
- package/esm2020/checkbox/checkbox-required-validator.mjs +4 -4
- package/esm2020/checkbox/checkbox.mjs +12 -8
- package/esm2020/checkbox/testing/checkbox-harness-filters.mjs +1 -1
- package/esm2020/checkbox/testing/checkbox-harness.mjs +3 -2
- package/esm2020/chips/chip-input.mjs +4 -4
- package/esm2020/chips/chip-list.mjs +34 -9
- package/esm2020/chips/chip.mjs +20 -17
- package/esm2020/chips/chips-module.mjs +5 -5
- package/esm2020/core/common-behaviors/common-module.mjs +5 -5
- package/esm2020/core/common-behaviors/error-state.mjs +1 -8
- package/esm2020/core/datetime/index.mjs +9 -11
- package/esm2020/core/datetime/native-date-adapter.mjs +4 -4
- package/esm2020/core/error/error-options.mjs +7 -7
- package/esm2020/core/line/line.mjs +8 -8
- package/esm2020/core/option/index.mjs +5 -5
- package/esm2020/core/option/optgroup.mjs +8 -8
- package/esm2020/core/option/option.mjs +8 -8
- package/esm2020/core/ripple/index.mjs +6 -7
- package/esm2020/core/ripple/ripple-ref.mjs +5 -2
- package/esm2020/core/ripple/ripple-renderer.mjs +112 -54
- package/esm2020/core/ripple/ripple.mjs +4 -4
- package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox-module.mjs +5 -5
- package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +5 -5
- package/esm2020/core/version.mjs +1 -1
- package/esm2020/datepicker/calendar-body.mjs +57 -12
- package/esm2020/datepicker/calendar.mjs +26 -15
- package/esm2020/datepicker/date-range-input-parts.mjs +10 -10
- package/esm2020/datepicker/date-range-input.mjs +6 -6
- package/esm2020/datepicker/date-range-picker.mjs +4 -4
- package/esm2020/datepicker/date-range-selection-strategy.mjs +4 -4
- package/esm2020/datepicker/date-selection-model.mjs +10 -10
- package/esm2020/datepicker/datepicker-actions.mjs +12 -12
- package/esm2020/datepicker/datepicker-base.mjs +9 -17
- package/esm2020/datepicker/datepicker-input-base.mjs +12 -7
- package/esm2020/datepicker/datepicker-input.mjs +4 -4
- package/esm2020/datepicker/datepicker-intl.mjs +4 -4
- package/esm2020/datepicker/datepicker-module.mjs +5 -5
- package/esm2020/datepicker/datepicker-toggle.mjs +8 -8
- package/esm2020/datepicker/datepicker.mjs +4 -4
- package/esm2020/datepicker/month-view.mjs +36 -9
- package/esm2020/datepicker/multi-year-view.mjs +42 -10
- package/esm2020/datepicker/year-view.mjs +41 -10
- package/esm2020/dialog/dialog-animations.mjs +17 -4
- package/esm2020/dialog/dialog-config.mjs +8 -1
- package/esm2020/dialog/dialog-container.mjs +44 -26
- package/esm2020/dialog/dialog-content-directives.mjs +31 -15
- package/esm2020/dialog/dialog-module.mjs +5 -5
- package/esm2020/dialog/dialog.mjs +24 -40
- package/esm2020/dialog/public-api.mjs +2 -2
- package/esm2020/dialog/testing/dialog-opener.mjs +67 -0
- package/esm2020/dialog/testing/public-api.mjs +2 -1
- package/esm2020/divider/divider-module.mjs +5 -5
- package/esm2020/divider/divider.mjs +5 -5
- package/esm2020/expansion/accordion.mjs +4 -4
- package/esm2020/expansion/expansion-module.mjs +5 -5
- package/esm2020/expansion/expansion-panel-base.mjs +14 -0
- package/esm2020/expansion/expansion-panel-content.mjs +14 -7
- package/esm2020/expansion/expansion-panel-header.mjs +11 -11
- package/esm2020/expansion/expansion-panel.mjs +13 -10
- package/esm2020/expansion/public-api.mjs +2 -1
- package/esm2020/form-field/error.mjs +4 -4
- package/esm2020/form-field/form-field-control.mjs +4 -4
- package/esm2020/form-field/form-field-module.mjs +5 -5
- package/esm2020/form-field/form-field.mjs +22 -14
- package/esm2020/form-field/hint.mjs +4 -4
- package/esm2020/form-field/label.mjs +4 -4
- package/esm2020/form-field/placeholder.mjs +4 -4
- package/esm2020/form-field/prefix.mjs +4 -4
- package/esm2020/form-field/suffix.mjs +4 -4
- package/esm2020/form-field/testing/public-api.mjs +4 -4
- package/esm2020/grid-list/grid-list-module.mjs +5 -5
- package/esm2020/grid-list/grid-list.mjs +6 -6
- package/esm2020/grid-list/grid-tile.mjs +17 -17
- package/esm2020/icon/icon-module.mjs +5 -5
- package/esm2020/icon/icon-registry.mjs +12 -14
- package/esm2020/icon/icon.mjs +31 -28
- package/esm2020/icon/testing/fake-icon-registry.mjs +9 -9
- package/esm2020/input/input-module.mjs +5 -5
- package/esm2020/input/input.mjs +41 -24
- package/esm2020/list/list-module.mjs +5 -5
- package/esm2020/list/list.mjs +21 -23
- package/esm2020/list/selection-list.mjs +15 -38
- package/esm2020/list/testing/list-item-harness-base.mjs +1 -9
- package/esm2020/menu/menu-content.mjs +7 -7
- package/esm2020/menu/menu-errors.mjs +1 -12
- package/esm2020/menu/menu-item.mjs +8 -4
- package/esm2020/menu/menu-module.mjs +5 -5
- package/esm2020/menu/menu-trigger.mjs +79 -65
- package/esm2020/menu/menu.mjs +35 -14
- package/esm2020/paginator/paginator-intl.mjs +4 -4
- package/esm2020/paginator/paginator-module.mjs +5 -5
- package/esm2020/paginator/paginator.mjs +12 -8
- package/esm2020/paginator/testing/paginator-harness.mjs +11 -1
- package/esm2020/progress-bar/progress-bar-module.mjs +5 -5
- package/esm2020/progress-bar/progress-bar.mjs +8 -5
- package/esm2020/progress-spinner/progress-spinner-module.mjs +8 -8
- package/esm2020/progress-spinner/progress-spinner.mjs +14 -51
- package/esm2020/progress-spinner/public-api.mjs +10 -2
- package/esm2020/radio/radio-module.mjs +5 -5
- package/esm2020/radio/radio.mjs +42 -14
- package/esm2020/radio/testing/radio-harness-filters.mjs +1 -1
- package/esm2020/radio/testing/radio-harness.mjs +3 -2
- package/esm2020/select/select-module.mjs +5 -5
- package/esm2020/select/select.mjs +66 -28
- package/esm2020/sidenav/drawer.mjs +19 -14
- package/esm2020/sidenav/sidenav-module.mjs +7 -8
- package/esm2020/sidenav/sidenav.mjs +12 -12
- package/esm2020/slide-toggle/slide-toggle-module.mjs +9 -9
- package/esm2020/slide-toggle/slide-toggle-required-validator.mjs +4 -4
- package/esm2020/slide-toggle/slide-toggle.mjs +6 -5
- package/esm2020/slide-toggle/testing/slide-toggle-harness-filters.mjs +1 -1
- package/esm2020/slide-toggle/testing/slide-toggle-harness.mjs +4 -2
- package/esm2020/slider/slider-module.mjs +5 -5
- package/esm2020/slider/slider.mjs +15 -8
- package/esm2020/snack-bar/simple-snack-bar.mjs +5 -5
- package/esm2020/snack-bar/snack-bar-container.mjs +24 -18
- package/esm2020/snack-bar/snack-bar-module.mjs +5 -5
- package/esm2020/snack-bar/snack-bar.mjs +7 -7
- package/esm2020/sort/sort-header-intl.mjs +4 -4
- package/esm2020/sort/sort-header.mjs +16 -8
- package/esm2020/sort/sort-module.mjs +5 -5
- package/esm2020/sort/sort.mjs +4 -4
- package/esm2020/stepper/public-api.mjs +2 -2
- package/esm2020/stepper/step-content.mjs +4 -4
- package/esm2020/stepper/step-header.mjs +5 -5
- package/esm2020/stepper/step-label.mjs +4 -4
- package/esm2020/stepper/stepper-animations.mjs +9 -3
- package/esm2020/stepper/stepper-button.mjs +7 -7
- package/esm2020/stepper/stepper-icon.mjs +4 -4
- package/esm2020/stepper/stepper-intl.mjs +4 -4
- package/esm2020/stepper/stepper-module.mjs +6 -10
- package/esm2020/stepper/stepper.mjs +39 -63
- package/esm2020/table/cell.mjs +22 -22
- package/esm2020/table/row.mjs +22 -22
- package/esm2020/table/table-module.mjs +5 -5
- package/esm2020/table/table.mjs +9 -9
- package/esm2020/table/text-column.mjs +4 -4
- package/esm2020/tabs/ink-bar.mjs +11 -22
- package/esm2020/tabs/paginated-tab-header.mjs +27 -13
- package/esm2020/tabs/tab-body.mjs +18 -12
- package/esm2020/tabs/tab-config.mjs +1 -1
- package/esm2020/tabs/tab-content.mjs +4 -4
- package/esm2020/tabs/tab-group.mjs +55 -11
- package/esm2020/tabs/tab-header.mjs +8 -8
- package/esm2020/tabs/tab-label-wrapper.mjs +4 -4
- package/esm2020/tabs/tab-label.mjs +4 -4
- package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +18 -18
- package/esm2020/tabs/tab.mjs +4 -4
- package/esm2020/tabs/tabs-animations.mjs +16 -6
- package/esm2020/tabs/tabs-module.mjs +5 -5
- package/esm2020/toolbar/toolbar-module.mjs +5 -5
- package/esm2020/toolbar/toolbar.mjs +8 -8
- package/esm2020/tooltip/testing/tooltip-harness.mjs +12 -7
- package/esm2020/tooltip/tooltip-module.mjs +5 -5
- package/esm2020/tooltip/tooltip.mjs +126 -51
- package/esm2020/tree/node.mjs +10 -10
- package/esm2020/tree/outlet.mjs +4 -4
- package/esm2020/tree/padding.mjs +4 -4
- package/esm2020/tree/toggle.mjs +4 -4
- package/esm2020/tree/tree-module.mjs +5 -5
- package/esm2020/tree/tree.mjs +5 -5
- package/expansion/expansion-panel-base.d.ts +22 -0
- package/expansion/expansion-panel-content.d.ts +4 -2
- package/expansion/public-api.d.ts +1 -0
- package/fesm2015/autocomplete/testing.mjs +6 -0
- package/fesm2015/autocomplete/testing.mjs.map +1 -1
- package/fesm2015/autocomplete.mjs +125 -67
- package/fesm2015/autocomplete.mjs.map +1 -1
- package/fesm2015/badge/testing.mjs.map +1 -1
- package/fesm2015/badge.mjs +7 -7
- package/fesm2015/badge.mjs.map +1 -1
- package/fesm2015/bottom-sheet/testing.mjs.map +1 -1
- package/fesm2015/bottom-sheet.mjs +27 -16
- package/fesm2015/bottom-sheet.mjs.map +1 -1
- package/fesm2015/button/testing.mjs.map +1 -1
- package/fesm2015/button-toggle/testing.mjs.map +1 -1
- package/fesm2015/button-toggle.mjs +11 -11
- package/fesm2015/button-toggle.mjs.map +1 -1
- package/fesm2015/button.mjs +13 -13
- package/fesm2015/button.mjs.map +1 -1
- package/fesm2015/card/testing.mjs.map +1 -1
- package/fesm2015/card.mjs +47 -47
- package/fesm2015/card.mjs.map +1 -1
- package/fesm2015/checkbox/testing.mjs +2 -1
- package/fesm2015/checkbox/testing.mjs.map +1 -1
- package/fesm2015/checkbox.mjs +22 -18
- package/fesm2015/checkbox.mjs.map +1 -1
- package/fesm2015/chips/testing.mjs.map +1 -1
- package/fesm2015/chips.mjs +59 -31
- package/fesm2015/chips.mjs.map +1 -1
- package/fesm2015/core/testing.mjs.map +1 -1
- package/fesm2015/core.mjs +181 -126
- package/fesm2015/core.mjs.map +1 -1
- package/fesm2015/datepicker/testing.mjs.map +1 -1
- package/fesm2015/datepicker.mjs +273 -130
- package/fesm2015/datepicker.mjs.map +1 -1
- package/fesm2015/dialog/testing.mjs +65 -2
- package/fesm2015/dialog/testing.mjs.map +1 -1
- package/fesm2015/dialog.mjs +144 -106
- package/fesm2015/dialog.mjs.map +1 -1
- package/fesm2015/divider/testing.mjs.map +1 -1
- package/fesm2015/divider.mjs +8 -8
- package/fesm2015/divider.mjs.map +1 -1
- package/fesm2015/expansion/testing.mjs.map +1 -1
- package/fesm2015/expansion.mjs +56 -33
- package/fesm2015/expansion.mjs.map +1 -1
- package/fesm2015/form-field/testing/control.mjs.map +1 -1
- package/fesm2015/form-field/testing.mjs +1 -1
- package/fesm2015/form-field/testing.mjs.map +1 -1
- package/fesm2015/form-field.mjs +47 -38
- package/fesm2015/form-field.mjs.map +1 -1
- package/fesm2015/grid-list/testing.mjs.map +1 -1
- package/fesm2015/grid-list.mjs +25 -25
- package/fesm2015/grid-list.mjs.map +1 -1
- package/fesm2015/icon/testing.mjs +8 -8
- package/fesm2015/icon/testing.mjs.map +1 -1
- package/fesm2015/icon.mjs +45 -44
- package/fesm2015/icon.mjs.map +1 -1
- package/fesm2015/input/testing.mjs.map +1 -1
- package/fesm2015/input.mjs +45 -28
- package/fesm2015/input.mjs.map +1 -1
- package/fesm2015/list/testing.mjs +0 -10
- package/fesm2015/list/testing.mjs.map +1 -1
- package/fesm2015/list.mjs +41 -67
- package/fesm2015/list.mjs.map +1 -1
- package/fesm2015/material.mjs.map +1 -1
- package/fesm2015/menu/testing.mjs.map +1 -1
- package/fesm2015/menu.mjs +131 -99
- package/fesm2015/menu.mjs.map +1 -1
- package/fesm2015/paginator/testing.mjs +14 -0
- package/fesm2015/paginator/testing.mjs.map +1 -1
- package/fesm2015/paginator.mjs +18 -14
- package/fesm2015/paginator.mjs.map +1 -1
- package/fesm2015/progress-bar/testing.mjs.map +1 -1
- package/fesm2015/progress-bar.mjs +11 -8
- package/fesm2015/progress-bar.mjs.map +1 -1
- package/fesm2015/progress-spinner/testing.mjs.map +1 -1
- package/fesm2015/progress-spinner.mjs +31 -63
- package/fesm2015/progress-spinner.mjs.map +1 -1
- package/fesm2015/radio/testing.mjs +2 -1
- package/fesm2015/radio/testing.mjs.map +1 -1
- package/fesm2015/radio.mjs +46 -17
- package/fesm2015/radio.mjs.map +1 -1
- package/fesm2015/select/testing.mjs.map +1 -1
- package/fesm2015/select.mjs +70 -32
- package/fesm2015/select.mjs.map +1 -1
- package/fesm2015/sidenav/testing.mjs.map +1 -1
- package/fesm2015/sidenav.mjs +36 -32
- package/fesm2015/sidenav.mjs.map +1 -1
- package/fesm2015/slide-toggle/testing.mjs +3 -1
- package/fesm2015/slide-toggle/testing.mjs.map +1 -1
- package/fesm2015/slide-toggle.mjs +16 -15
- package/fesm2015/slide-toggle.mjs.map +1 -1
- package/fesm2015/slider/testing.mjs.map +1 -1
- package/fesm2015/slider.mjs +18 -11
- package/fesm2015/slider.mjs.map +1 -1
- package/fesm2015/snack-bar/testing.mjs.map +1 -1
- package/fesm2015/snack-bar.mjs +37 -31
- package/fesm2015/snack-bar.mjs.map +1 -1
- package/fesm2015/sort/testing.mjs.map +1 -1
- package/fesm2015/sort.mjs +128 -120
- package/fesm2015/sort.mjs.map +1 -1
- package/fesm2015/stepper/testing.mjs.map +1 -1
- package/fesm2015/stepper.mjs +72 -93
- package/fesm2015/stepper.mjs.map +1 -1
- package/fesm2015/table/testing.mjs.map +1 -1
- package/fesm2015/table.mjs +57 -57
- package/fesm2015/table.mjs.map +1 -1
- package/fesm2015/tabs/testing.mjs.map +1 -1
- package/fesm2015/tabs.mjs +162 -99
- package/fesm2015/tabs.mjs.map +1 -1
- package/fesm2015/toolbar/testing.mjs.map +1 -1
- package/fesm2015/toolbar.mjs +11 -11
- package/fesm2015/toolbar.mjs.map +1 -1
- package/fesm2015/tooltip/testing.mjs +11 -8
- package/fesm2015/tooltip/testing.mjs.map +1 -1
- package/fesm2015/tooltip.mjs +154 -79
- package/fesm2015/tooltip.mjs.map +1 -1
- package/fesm2015/tree/testing.mjs.map +1 -1
- package/fesm2015/tree.mjs +26 -26
- package/fesm2015/tree.mjs.map +1 -1
- package/fesm2020/autocomplete/testing.mjs +6 -0
- package/fesm2020/autocomplete/testing.mjs.map +1 -1
- package/fesm2020/autocomplete.mjs +124 -67
- package/fesm2020/autocomplete.mjs.map +1 -1
- package/fesm2020/badge/testing.mjs.map +1 -1
- package/fesm2020/badge.mjs +7 -7
- package/fesm2020/badge.mjs.map +1 -1
- package/fesm2020/bottom-sheet/testing.mjs.map +1 -1
- package/fesm2020/bottom-sheet.mjs +27 -16
- package/fesm2020/bottom-sheet.mjs.map +1 -1
- package/fesm2020/button/testing.mjs.map +1 -1
- package/fesm2020/button-toggle/testing.mjs.map +1 -1
- package/fesm2020/button-toggle.mjs +11 -11
- package/fesm2020/button-toggle.mjs.map +1 -1
- package/fesm2020/button.mjs +13 -13
- package/fesm2020/button.mjs.map +1 -1
- package/fesm2020/card/testing.mjs.map +1 -1
- package/fesm2020/card.mjs +47 -47
- package/fesm2020/card.mjs.map +1 -1
- package/fesm2020/checkbox/testing.mjs +2 -1
- package/fesm2020/checkbox/testing.mjs.map +1 -1
- package/fesm2020/checkbox.mjs +22 -18
- package/fesm2020/checkbox.mjs.map +1 -1
- package/fesm2020/chips/testing.mjs.map +1 -1
- package/fesm2020/chips.mjs +59 -31
- package/fesm2020/chips.mjs.map +1 -1
- package/fesm2020/core/testing.mjs.map +1 -1
- package/fesm2020/core.mjs +180 -126
- package/fesm2020/core.mjs.map +1 -1
- package/fesm2020/datepicker/testing.mjs.map +1 -1
- package/fesm2020/datepicker.mjs +273 -130
- package/fesm2020/datepicker.mjs.map +1 -1
- package/fesm2020/dialog/testing.mjs +65 -1
- package/fesm2020/dialog/testing.mjs.map +1 -1
- package/fesm2020/dialog.mjs +143 -106
- package/fesm2020/dialog.mjs.map +1 -1
- package/fesm2020/divider/testing.mjs.map +1 -1
- package/fesm2020/divider.mjs +8 -8
- package/fesm2020/divider.mjs.map +1 -1
- package/fesm2020/expansion/testing.mjs.map +1 -1
- package/fesm2020/expansion.mjs +54 -33
- package/fesm2020/expansion.mjs.map +1 -1
- package/fesm2020/form-field/testing/control.mjs.map +1 -1
- package/fesm2020/form-field/testing.mjs +1 -1
- package/fesm2020/form-field/testing.mjs.map +1 -1
- package/fesm2020/form-field.mjs +46 -38
- package/fesm2020/form-field.mjs.map +1 -1
- package/fesm2020/grid-list/testing.mjs.map +1 -1
- package/fesm2020/grid-list.mjs +25 -25
- package/fesm2020/grid-list.mjs.map +1 -1
- package/fesm2020/icon/testing.mjs +8 -8
- package/fesm2020/icon/testing.mjs.map +1 -1
- package/fesm2020/icon.mjs +45 -44
- package/fesm2020/icon.mjs.map +1 -1
- package/fesm2020/input/testing.mjs.map +1 -1
- package/fesm2020/input.mjs +44 -27
- package/fesm2020/input.mjs.map +1 -1
- package/fesm2020/list/testing.mjs +0 -8
- package/fesm2020/list/testing.mjs.map +1 -1
- package/fesm2020/list.mjs +38 -63
- package/fesm2020/list.mjs.map +1 -1
- package/fesm2020/material.mjs.map +1 -1
- package/fesm2020/menu/testing.mjs.map +1 -1
- package/fesm2020/menu.mjs +127 -99
- package/fesm2020/menu.mjs.map +1 -1
- package/fesm2020/paginator/testing.mjs +10 -0
- package/fesm2020/paginator/testing.mjs.map +1 -1
- package/fesm2020/paginator.mjs +18 -14
- package/fesm2020/paginator.mjs.map +1 -1
- package/fesm2020/progress-bar/testing.mjs.map +1 -1
- package/fesm2020/progress-bar.mjs +11 -8
- package/fesm2020/progress-bar.mjs.map +1 -1
- package/fesm2020/progress-spinner/testing.mjs.map +1 -1
- package/fesm2020/progress-spinner.mjs +31 -61
- package/fesm2020/progress-spinner.mjs.map +1 -1
- package/fesm2020/radio/testing.mjs +2 -1
- package/fesm2020/radio/testing.mjs.map +1 -1
- package/fesm2020/radio.mjs +45 -17
- package/fesm2020/radio.mjs.map +1 -1
- package/fesm2020/select/testing.mjs.map +1 -1
- package/fesm2020/select.mjs +70 -32
- package/fesm2020/select.mjs.map +1 -1
- package/fesm2020/sidenav/testing.mjs.map +1 -1
- package/fesm2020/sidenav.mjs +36 -32
- package/fesm2020/sidenav.mjs.map +1 -1
- package/fesm2020/slide-toggle/testing.mjs +3 -1
- package/fesm2020/slide-toggle/testing.mjs.map +1 -1
- package/fesm2020/slide-toggle.mjs +16 -15
- package/fesm2020/slide-toggle.mjs.map +1 -1
- package/fesm2020/slider/testing.mjs.map +1 -1
- package/fesm2020/slider.mjs +18 -11
- package/fesm2020/slider.mjs.map +1 -1
- package/fesm2020/snack-bar/testing.mjs.map +1 -1
- package/fesm2020/snack-bar.mjs +37 -31
- package/fesm2020/snack-bar.mjs.map +1 -1
- package/fesm2020/sort/testing.mjs.map +1 -1
- package/fesm2020/sort.mjs +24 -16
- package/fesm2020/sort.mjs.map +1 -1
- package/fesm2020/stepper/testing.mjs.map +1 -1
- package/fesm2020/stepper.mjs +72 -93
- package/fesm2020/stepper.mjs.map +1 -1
- package/fesm2020/table/testing.mjs.map +1 -1
- package/fesm2020/table.mjs +57 -57
- package/fesm2020/table.mjs.map +1 -1
- package/fesm2020/tabs/testing.mjs.map +1 -1
- package/fesm2020/tabs.mjs +161 -99
- package/fesm2020/tabs.mjs.map +1 -1
- package/fesm2020/toolbar/testing.mjs.map +1 -1
- package/fesm2020/toolbar.mjs +11 -11
- package/fesm2020/toolbar.mjs.map +1 -1
- package/fesm2020/tooltip/testing.mjs +11 -6
- package/fesm2020/tooltip/testing.mjs.map +1 -1
- package/fesm2020/tooltip.mjs +147 -71
- package/fesm2020/tooltip.mjs.map +1 -1
- package/fesm2020/tree/testing.mjs.map +1 -1
- package/fesm2020/tree.mjs +26 -26
- package/fesm2020/tree.mjs.map +1 -1
- package/form-field/form-field-control.d.ts +3 -3
- package/form-field/form-field.d.ts +15 -8
- package/form-field/testing/public-api.d.ts +1 -1
- package/icon/icon-registry.d.ts +7 -9
- package/icon/icon.d.ts +12 -3
- package/icon/testing/fake-icon-registry.d.ts +1 -1
- package/input/input.d.ts +12 -1
- package/list/selection-list.d.ts +4 -21
- package/list/testing/list-item-harness-base.d.ts +1 -7
- package/menu/menu-errors.d.ts +0 -5
- package/menu/menu-item.d.ts +3 -2
- package/menu/menu-trigger.d.ts +21 -11
- package/menu/menu.d.ts +8 -3
- package/package.json +7 -7
- package/paginator/paginator.d.ts +12 -1
- package/paginator/testing/paginator-harness.d.ts +3 -0
- package/prebuilt-themes/deeppurple-amber.css +1 -1
- package/prebuilt-themes/indigo-pink.css +1 -1
- package/prebuilt-themes/pink-bluegrey.css +1 -1
- package/prebuilt-themes/purple-green.css +1 -1
- package/progress-spinner/progress-spinner-module.d.ts +1 -1
- package/progress-spinner/progress-spinner.d.ts +4 -19
- package/progress-spinner/public-api.d.ts +8 -1
- package/radio/radio.d.ts +7 -2
- package/radio/testing/radio-harness-filters.d.ts +2 -0
- package/schematics/collection.json +4 -2
- package/schematics/migration.json +5 -0
- package/schematics/ng-add/fonts/material-fonts.js +4 -13
- package/schematics/ng-add/fonts/material-fonts.mjs +4 -13
- package/schematics/ng-add/index.js +2 -2
- package/schematics/ng-add/index.mjs +2 -2
- package/schematics/ng-add/schema.d.ts +2 -2
- package/schematics/ng-add/schema.js +1 -1
- package/schematics/ng-add/schema.json +29 -9
- package/schematics/ng-add/schema.mjs +1 -1
- package/schematics/ng-add/setup-project.js +16 -23
- package/schematics/ng-add/setup-project.mjs +16 -23
- package/schematics/ng-add/theming/theming.js +28 -39
- package/schematics/ng-add/theming/theming.mjs +28 -39
- package/schematics/ng-generate/address-form/index.js +5 -14
- package/schematics/ng-generate/address-form/index.mjs +5 -14
- package/schematics/ng-generate/address-form/schema.json +1 -1
- package/schematics/ng-generate/dashboard/index.js +5 -14
- package/schematics/ng-generate/dashboard/index.mjs +5 -14
- package/schematics/ng-generate/dashboard/schema.json +1 -1
- package/schematics/ng-generate/navigation/index.js +5 -14
- package/schematics/ng-generate/navigation/index.mjs +5 -14
- package/schematics/ng-generate/navigation/schema.json +1 -1
- package/schematics/ng-generate/table/index.js +5 -14
- package/schematics/ng-generate/table/index.mjs +5 -14
- package/schematics/ng-generate/table/schema.json +1 -1
- package/schematics/ng-generate/tree/index.js +5 -14
- package/schematics/ng-generate/tree/index.mjs +5 -14
- package/schematics/ng-generate/tree/schema.json +1 -1
- package/schematics/ng-update/data/constructor-checks.js +11 -1
- package/schematics/ng-update/data/constructor-checks.mjs +11 -1
- package/schematics/ng-update/data/css-selectors.js +7 -1
- package/schematics/ng-update/data/css-selectors.mjs +7 -1
- package/schematics/ng-update/data/index.js +6 -2
- package/schematics/ng-update/data/index.mjs +6 -2
- package/schematics/ng-update/index.d.ts +2 -0
- package/schematics/ng-update/index.js +7 -2
- package/schematics/ng-update/index.mjs +7 -2
- package/schematics/ng-update/migrations/hammer-gestures-v9/hammer-gestures-migration.js +4 -4
- package/schematics/ng-update/migrations/hammer-gestures-v9/hammer-gestures-migration.mjs +4 -4
- package/schematics/ng-update/migrations/hammer-gestures-v9/import-manager.js +14 -23
- package/schematics/ng-update/migrations/hammer-gestures-v9/import-manager.mjs +14 -23
- package/schematics/ng-update/migrations/package-imports-v8/secondary-entry-points-migration.js +3 -15
- package/schematics/ng-update/migrations/package-imports-v8/secondary-entry-points-migration.mjs +3 -15
- package/schematics/ng-update/migrations/theming-api-v12/migration.js +5 -5
- package/schematics/ng-update/migrations/theming-api-v12/migration.mjs +5 -5
- package/schematics/tsconfig.json +1 -4
- package/select/select.d.ts +25 -4
- package/sidenav/sidenav-module.d.ts +2 -3
- package/slide-toggle/testing/slide-toggle-harness-filters.d.ts +4 -0
- package/snack-bar/snack-bar.d.ts +1 -1
- package/sort/sort-header.d.ts +4 -4
- package/sort/sort.d.ts +4 -0
- package/stepper/public-api.d.ts +1 -1
- package/stepper/stepper-animations.d.ts +2 -0
- package/stepper/stepper-module.d.ts +1 -1
- package/stepper/stepper.d.ts +15 -38
- package/tabs/_tabs-common.scss +15 -5
- package/tabs/ink-bar.d.ts +0 -5
- package/tabs/paginated-tab-header.d.ts +4 -2
- package/tabs/tab-body.d.ts +3 -1
- package/tabs/tab-config.d.ts +6 -0
- package/tabs/tab-group.d.ts +15 -3
- package/tooltip/testing/tooltip-harness.d.ts +6 -0
- package/tooltip/tooltip.d.ts +36 -8
|
@@ -12,7 +12,7 @@ import * as i1$1 from '@angular/cdk/overlay';
|
|
|
12
12
|
import { Overlay, OverlayConfig, OverlayModule } from '@angular/cdk/overlay';
|
|
13
13
|
import * as i3 from '@angular/cdk/scrolling';
|
|
14
14
|
import { CdkScrollableModule } from '@angular/cdk/scrolling';
|
|
15
|
-
import {
|
|
15
|
+
import { hasModifierKey, ESCAPE, ENTER, UP_ARROW, DOWN_ARROW, TAB } from '@angular/cdk/keycodes';
|
|
16
16
|
import { TemplatePortal } from '@angular/cdk/portal';
|
|
17
17
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
18
18
|
import * as i4 from '@angular/material/form-field';
|
|
@@ -54,7 +54,7 @@ const MAT_AUTOCOMPLETE_DEFAULT_OPTIONS = new InjectionToken('mat-autocomplete-de
|
|
|
54
54
|
});
|
|
55
55
|
/** @docs-private */
|
|
56
56
|
function MAT_AUTOCOMPLETE_DEFAULT_OPTIONS_FACTORY() {
|
|
57
|
-
return { autoActiveFirstOption: false };
|
|
57
|
+
return { autoActiveFirstOption: false, autoSelectActiveOption: false };
|
|
58
58
|
}
|
|
59
59
|
/** Base class with all of the `MatAutocomplete` functionality. */
|
|
60
60
|
class _MatAutocompleteBase extends _MatAutocompleteMixinBase {
|
|
@@ -85,6 +85,7 @@ class _MatAutocompleteBase extends _MatAutocompleteMixinBase {
|
|
|
85
85
|
// option altogether.
|
|
86
86
|
this.inertGroups = (platform === null || platform === void 0 ? void 0 : platform.SAFARI) || false;
|
|
87
87
|
this._autoActiveFirstOption = !!defaults.autoActiveFirstOption;
|
|
88
|
+
this._autoSelectActiveOption = !!defaults.autoSelectActiveOption;
|
|
88
89
|
}
|
|
89
90
|
/** Whether the autocomplete panel is open. */
|
|
90
91
|
get isOpen() {
|
|
@@ -100,6 +101,13 @@ class _MatAutocompleteBase extends _MatAutocompleteMixinBase {
|
|
|
100
101
|
set autoActiveFirstOption(value) {
|
|
101
102
|
this._autoActiveFirstOption = coerceBooleanProperty(value);
|
|
102
103
|
}
|
|
104
|
+
/** Whether the active option should be selected as the user is navigating. */
|
|
105
|
+
get autoSelectActiveOption() {
|
|
106
|
+
return this._autoSelectActiveOption;
|
|
107
|
+
}
|
|
108
|
+
set autoSelectActiveOption(value) {
|
|
109
|
+
this._autoSelectActiveOption = coerceBooleanProperty(value);
|
|
110
|
+
}
|
|
103
111
|
/**
|
|
104
112
|
* Takes classes set on the host mat-autocomplete element and applies them to the panel
|
|
105
113
|
* inside the overlay container to allow for easy styling.
|
|
@@ -168,9 +176,9 @@ class _MatAutocompleteBase extends _MatAutocompleteMixinBase {
|
|
|
168
176
|
classList[this._hiddenClass] = !this.showPanel;
|
|
169
177
|
}
|
|
170
178
|
}
|
|
171
|
-
_MatAutocompleteBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
172
|
-
_MatAutocompleteBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "
|
|
173
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
179
|
+
_MatAutocompleteBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: _MatAutocompleteBase, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS }, { token: i1.Platform }], target: i0.ɵɵFactoryTarget.Directive });
|
|
180
|
+
_MatAutocompleteBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.13", type: _MatAutocompleteBase, inputs: { ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], displayWith: "displayWith", autoActiveFirstOption: "autoActiveFirstOption", autoSelectActiveOption: "autoSelectActiveOption", panelWidth: "panelWidth", classList: ["class", "classList"] }, outputs: { optionSelected: "optionSelected", opened: "opened", closed: "closed", optionActivated: "optionActivated" }, viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, static: true }, { propertyName: "panel", first: true, predicate: ["panel"], descendants: true }], usesInheritance: true, ngImport: i0 });
|
|
181
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: _MatAutocompleteBase, decorators: [{
|
|
174
182
|
type: Directive
|
|
175
183
|
}], ctorParameters: function () {
|
|
176
184
|
return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
@@ -193,6 +201,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0-rc.1", ng
|
|
|
193
201
|
type: Input
|
|
194
202
|
}], autoActiveFirstOption: [{
|
|
195
203
|
type: Input
|
|
204
|
+
}], autoSelectActiveOption: [{
|
|
205
|
+
type: Input
|
|
196
206
|
}], panelWidth: [{
|
|
197
207
|
type: Input
|
|
198
208
|
}], optionSelected: [{
|
|
@@ -214,13 +224,13 @@ class MatAutocomplete extends _MatAutocompleteBase {
|
|
|
214
224
|
this._hiddenClass = 'mat-autocomplete-hidden';
|
|
215
225
|
}
|
|
216
226
|
}
|
|
217
|
-
MatAutocomplete.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
218
|
-
MatAutocomplete.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
219
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
227
|
+
MatAutocomplete.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: MatAutocomplete, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
228
|
+
MatAutocomplete.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "14.0.0-next.13", type: MatAutocomplete, selector: "mat-autocomplete", inputs: { disableRipple: "disableRipple" }, host: { classAttribute: "mat-autocomplete" }, providers: [{ provide: MAT_OPTION_PARENT_COMPONENT, useExisting: MatAutocomplete }], queries: [{ propertyName: "optionGroups", predicate: MAT_OPTGROUP, descendants: true }, { propertyName: "options", predicate: MatOption, descendants: true }], exportAs: ["matAutocomplete"], usesInheritance: true, ngImport: i0, template: "<ng-template let-formFieldId=\"id\">\n <div class=\"mat-autocomplete-panel\"\n role=\"listbox\"\n [id]=\"id\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"_getPanelAriaLabelledby(formFieldId)\"\n [ngClass]=\"_classList\"\n #panel>\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [".mat-autocomplete-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;visibility:hidden;max-width:none;max-height:256px;position:relative;width:100%;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.mat-autocomplete-panel.mat-autocomplete-visible{visibility:visible}.mat-autocomplete-panel.mat-autocomplete-hidden{visibility:hidden}.mat-autocomplete-panel-above .mat-autocomplete-panel{border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px}.mat-autocomplete-panel .mat-divider-horizontal{margin-top:-1px}.cdk-high-contrast-active .mat-autocomplete-panel{outline:solid 1px}mat-autocomplete{display:none}"], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
229
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: MatAutocomplete, decorators: [{
|
|
220
230
|
type: Component,
|
|
221
231
|
args: [{ selector: 'mat-autocomplete', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'matAutocomplete', inputs: ['disableRipple'], host: {
|
|
222
232
|
'class': 'mat-autocomplete',
|
|
223
|
-
}, providers: [{ provide: MAT_OPTION_PARENT_COMPONENT, useExisting: MatAutocomplete }], template: "<ng-template let-formFieldId=\"id\">\n <div class=\"mat-autocomplete-panel\"\n role=\"listbox\"\n [id]=\"id\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"_getPanelAriaLabelledby(formFieldId)\"\n [ngClass]=\"_classList\"\n #panel>\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [".mat-autocomplete-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;visibility:hidden;max-width:none;max-height:256px;position:relative;width:100%;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.mat-autocomplete-panel.mat-autocomplete-visible{visibility:visible}.mat-autocomplete-panel.mat-autocomplete-hidden{visibility:hidden}.mat-autocomplete-panel-above .mat-autocomplete-panel{border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px}.mat-autocomplete-panel .mat-divider-horizontal{margin-top:-1px}.cdk-high-contrast-active .mat-autocomplete-panel{outline:solid 1px}mat-autocomplete{display:none}
|
|
233
|
+
}, providers: [{ provide: MAT_OPTION_PARENT_COMPONENT, useExisting: MatAutocomplete }], template: "<ng-template let-formFieldId=\"id\">\n <div class=\"mat-autocomplete-panel\"\n role=\"listbox\"\n [id]=\"id\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"_getPanelAriaLabelledby(formFieldId)\"\n [ngClass]=\"_classList\"\n #panel>\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [".mat-autocomplete-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;visibility:hidden;max-width:none;max-height:256px;position:relative;width:100%;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.mat-autocomplete-panel.mat-autocomplete-visible{visibility:visible}.mat-autocomplete-panel.mat-autocomplete-hidden{visibility:hidden}.mat-autocomplete-panel-above .mat-autocomplete-panel{border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px}.mat-autocomplete-panel .mat-divider-horizontal{margin-top:-1px}.cdk-high-contrast-active .mat-autocomplete-panel{outline:solid 1px}mat-autocomplete{display:none}"] }]
|
|
224
234
|
}], propDecorators: { optionGroups: [{
|
|
225
235
|
type: ContentChildren,
|
|
226
236
|
args: [MAT_OPTGROUP, { descendants: true }]
|
|
@@ -381,6 +391,7 @@ class _MatAutocompleteTriggerBase {
|
|
|
381
391
|
this.autocomplete.closed.emit();
|
|
382
392
|
}
|
|
383
393
|
this.autocomplete._isOpen = this._overlayAttached = false;
|
|
394
|
+
this._pendingAutoselectedOption = null;
|
|
384
395
|
if (this._overlayRef && this._overlayRef.hasAttached()) {
|
|
385
396
|
this._overlayRef.detach();
|
|
386
397
|
this._closingActionsSubscription.unsubscribe();
|
|
@@ -432,6 +443,11 @@ class _MatAutocompleteTriggerBase {
|
|
|
432
443
|
const customOrigin = this.connectedTo ? this.connectedTo.elementRef.nativeElement : null;
|
|
433
444
|
return (this._overlayAttached &&
|
|
434
445
|
clickTarget !== this._element.nativeElement &&
|
|
446
|
+
// Normally focus moves inside `mousedown` so this condition will almost always be
|
|
447
|
+
// true. Its main purpose is to handle the case where the input is focused from an
|
|
448
|
+
// outside click which propagates up to the `body` listener within the same sequence
|
|
449
|
+
// and causes the panel to close immediately (see #3106).
|
|
450
|
+
this._document.activeElement !== this._element.nativeElement &&
|
|
435
451
|
(!formField || !formField.contains(clickTarget)) &&
|
|
436
452
|
(!customOrigin || !customOrigin.contains(clickTarget)) &&
|
|
437
453
|
!!this._overlayRef &&
|
|
@@ -440,7 +456,7 @@ class _MatAutocompleteTriggerBase {
|
|
|
440
456
|
}
|
|
441
457
|
// Implemented as part of ControlValueAccessor.
|
|
442
458
|
writeValue(value) {
|
|
443
|
-
Promise.resolve().then(() => this.
|
|
459
|
+
Promise.resolve(null).then(() => this._assignOptionValue(value));
|
|
444
460
|
}
|
|
445
461
|
// Implemented as part of ControlValueAccessor.
|
|
446
462
|
registerOnChange(fn) {
|
|
@@ -456,14 +472,15 @@ class _MatAutocompleteTriggerBase {
|
|
|
456
472
|
}
|
|
457
473
|
_handleKeydown(event) {
|
|
458
474
|
const keyCode = event.keyCode;
|
|
475
|
+
const hasModifier = hasModifierKey(event);
|
|
459
476
|
// Prevent the default action on all escape key presses. This is here primarily to bring IE
|
|
460
477
|
// in line with other browsers. By default, pressing escape on IE will cause it to revert
|
|
461
478
|
// the input value to the one that it had on focus, however it won't dispatch any events
|
|
462
479
|
// which means that the model value will be out of sync with the view.
|
|
463
|
-
if (keyCode === ESCAPE && !
|
|
480
|
+
if (keyCode === ESCAPE && !hasModifier) {
|
|
464
481
|
event.preventDefault();
|
|
465
482
|
}
|
|
466
|
-
if (this.activeOption && keyCode === ENTER && this.panelOpen && !
|
|
483
|
+
if (this.activeOption && keyCode === ENTER && this.panelOpen && !hasModifier) {
|
|
467
484
|
this.activeOption._selectViaInteraction();
|
|
468
485
|
this._resetActiveItem();
|
|
469
486
|
event.preventDefault();
|
|
@@ -471,7 +488,7 @@ class _MatAutocompleteTriggerBase {
|
|
|
471
488
|
else if (this.autocomplete) {
|
|
472
489
|
const prevActiveItem = this.autocomplete._keyManager.activeItem;
|
|
473
490
|
const isArrowKey = keyCode === UP_ARROW || keyCode === DOWN_ARROW;
|
|
474
|
-
if (
|
|
491
|
+
if (keyCode === TAB || (isArrowKey && !hasModifier && this.panelOpen)) {
|
|
475
492
|
this.autocomplete._keyManager.onKeydown(event);
|
|
476
493
|
}
|
|
477
494
|
else if (isArrowKey && this._canOpen()) {
|
|
@@ -479,6 +496,13 @@ class _MatAutocompleteTriggerBase {
|
|
|
479
496
|
}
|
|
480
497
|
if (isArrowKey || this.autocomplete._keyManager.activeItem !== prevActiveItem) {
|
|
481
498
|
this._scrollToOption(this.autocomplete._keyManager.activeItemIndex || 0);
|
|
499
|
+
if (this.autocomplete.autoSelectActiveOption && this.activeOption) {
|
|
500
|
+
if (!this._pendingAutoselectedOption) {
|
|
501
|
+
this._valueBeforeAutoSelection = this._element.nativeElement.value;
|
|
502
|
+
}
|
|
503
|
+
this._pendingAutoselectedOption = this.activeOption;
|
|
504
|
+
this._assignOptionValue(this.activeOption.value);
|
|
505
|
+
}
|
|
482
506
|
}
|
|
483
507
|
}
|
|
484
508
|
}
|
|
@@ -496,6 +520,7 @@ class _MatAutocompleteTriggerBase {
|
|
|
496
520
|
// See: https://connect.microsoft.com/IE/feedback/details/885747/
|
|
497
521
|
if (this._previousValue !== value) {
|
|
498
522
|
this._previousValue = value;
|
|
523
|
+
this._pendingAutoselectedOption = null;
|
|
499
524
|
this._onChange(value);
|
|
500
525
|
if (this._canOpen() && this._document.activeElement === event.target) {
|
|
501
526
|
this.openPanel();
|
|
@@ -512,6 +537,11 @@ class _MatAutocompleteTriggerBase {
|
|
|
512
537
|
this._floatLabel(true);
|
|
513
538
|
}
|
|
514
539
|
}
|
|
540
|
+
_handleClick() {
|
|
541
|
+
if (this._canOpen() && !this.panelOpen) {
|
|
542
|
+
this.openPanel();
|
|
543
|
+
}
|
|
544
|
+
}
|
|
515
545
|
/**
|
|
516
546
|
* In "auto" mode, the label will animate down as soon as focus is lost.
|
|
517
547
|
* This causes the value to jump when selecting an option with the mouse.
|
|
@@ -552,19 +582,33 @@ class _MatAutocompleteTriggerBase {
|
|
|
552
582
|
// create a new stream of panelClosingActions, replacing any previous streams
|
|
553
583
|
// that were created, and flatten it so our stream only emits closing events...
|
|
554
584
|
switchMap(() => {
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
this.
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
585
|
+
// The `NgZone.onStable` always emits outside of the Angular zone, thus we have to re-enter
|
|
586
|
+
// the Angular zone. This will lead to change detection being called outside of the Angular
|
|
587
|
+
// zone and the `autocomplete.opened` will also emit outside of the Angular.
|
|
588
|
+
this._zone.run(() => {
|
|
589
|
+
const wasOpen = this.panelOpen;
|
|
590
|
+
this._resetActiveItem();
|
|
591
|
+
this.autocomplete._setVisibility();
|
|
592
|
+
this._changeDetectorRef.detectChanges();
|
|
593
|
+
if (this.panelOpen) {
|
|
594
|
+
this._overlayRef.updatePosition();
|
|
595
|
+
}
|
|
564
596
|
if (wasOpen !== this.panelOpen) {
|
|
565
|
-
|
|
597
|
+
// If the `panelOpen` state changed, we need to make sure to emit the `opened` or
|
|
598
|
+
// `closed` event, because we may not have emitted it. This can happen
|
|
599
|
+
// - if the users opens the panel and there are no options, but the
|
|
600
|
+
// options come in slightly later or as a result of the value changing,
|
|
601
|
+
// - if the panel is closed after the user entered a string that did not match any
|
|
602
|
+
// of the available options,
|
|
603
|
+
// - if a valid string is entered after an invalid one.
|
|
604
|
+
if (this.panelOpen) {
|
|
605
|
+
this.autocomplete.opened.emit();
|
|
606
|
+
}
|
|
607
|
+
else {
|
|
608
|
+
this.autocomplete.closed.emit();
|
|
609
|
+
}
|
|
566
610
|
}
|
|
567
|
-
}
|
|
611
|
+
});
|
|
568
612
|
return this.panelClosingActions;
|
|
569
613
|
}),
|
|
570
614
|
// when the first closing event occurs...
|
|
@@ -580,22 +624,24 @@ class _MatAutocompleteTriggerBase {
|
|
|
580
624
|
this._overlayRef = null;
|
|
581
625
|
}
|
|
582
626
|
}
|
|
583
|
-
|
|
627
|
+
_assignOptionValue(value) {
|
|
584
628
|
const toDisplay = this.autocomplete && this.autocomplete.displayWith
|
|
585
629
|
? this.autocomplete.displayWith(value)
|
|
586
630
|
: value;
|
|
587
631
|
// Simply falling back to an empty string if the display value is falsy does not work properly.
|
|
588
632
|
// The display value can also be the number zero and shouldn't fall back to an empty string.
|
|
589
|
-
|
|
633
|
+
this._updateNativeInputValue(toDisplay != null ? toDisplay : '');
|
|
634
|
+
}
|
|
635
|
+
_updateNativeInputValue(value) {
|
|
590
636
|
// If it's used within a `MatFormField`, we should set it through the property so it can go
|
|
591
637
|
// through change detection.
|
|
592
638
|
if (this._formField) {
|
|
593
|
-
this._formField._control.value =
|
|
639
|
+
this._formField._control.value = value;
|
|
594
640
|
}
|
|
595
641
|
else {
|
|
596
|
-
this._element.nativeElement.value =
|
|
642
|
+
this._element.nativeElement.value = value;
|
|
597
643
|
}
|
|
598
|
-
this._previousValue =
|
|
644
|
+
this._previousValue = value;
|
|
599
645
|
}
|
|
600
646
|
/**
|
|
601
647
|
* This method closes the panel, and if a value is specified, also sets the associated
|
|
@@ -603,12 +649,12 @@ class _MatAutocompleteTriggerBase {
|
|
|
603
649
|
* stemmed from the user.
|
|
604
650
|
*/
|
|
605
651
|
_setValueAndClose(event) {
|
|
606
|
-
const
|
|
607
|
-
if (
|
|
608
|
-
this._clearPreviousSelectedOption(
|
|
609
|
-
this.
|
|
610
|
-
this._onChange(
|
|
611
|
-
this.autocomplete._emitSelectEvent(
|
|
652
|
+
const toSelect = event ? event.source : this._pendingAutoselectedOption;
|
|
653
|
+
if (toSelect) {
|
|
654
|
+
this._clearPreviousSelectedOption(toSelect);
|
|
655
|
+
this._assignOptionValue(toSelect.value);
|
|
656
|
+
this._onChange(toSelect.value);
|
|
657
|
+
this.autocomplete._emitSelectEvent(toSelect);
|
|
612
658
|
this._element.nativeElement.focus();
|
|
613
659
|
}
|
|
614
660
|
this.closePanel();
|
|
@@ -635,21 +681,7 @@ class _MatAutocompleteTriggerBase {
|
|
|
635
681
|
});
|
|
636
682
|
overlayRef = this._overlay.create(this._getOverlayConfig());
|
|
637
683
|
this._overlayRef = overlayRef;
|
|
638
|
-
|
|
639
|
-
// the overlay event targeting provided by the CDK overlay.
|
|
640
|
-
overlayRef.keydownEvents().subscribe(event => {
|
|
641
|
-
// Close when pressing ESCAPE or ALT + UP_ARROW, based on the a11y guidelines.
|
|
642
|
-
// See: https://www.w3.org/TR/wai-aria-practices-1.1/#textbox-keyboard-interaction
|
|
643
|
-
if ((event.keyCode === ESCAPE && !hasModifierKey(event)) ||
|
|
644
|
-
(event.keyCode === UP_ARROW && hasModifierKey(event, 'altKey'))) {
|
|
645
|
-
this._closeKeyEventStream.next();
|
|
646
|
-
this._resetActiveItem();
|
|
647
|
-
// We need to stop propagation, otherwise the event will eventually
|
|
648
|
-
// reach the input itself and cause the overlay to be reopened.
|
|
649
|
-
event.stopPropagation();
|
|
650
|
-
event.preventDefault();
|
|
651
|
-
}
|
|
652
|
-
});
|
|
684
|
+
this._handleOverlayEvents(overlayRef);
|
|
653
685
|
this._viewportSubscription = this._viewportRuler.change().subscribe(() => {
|
|
654
686
|
if (this.panelOpen && overlayRef) {
|
|
655
687
|
overlayRef.updateSize({ width: this._getPanelWidth() });
|
|
@@ -786,10 +818,35 @@ class _MatAutocompleteTriggerBase {
|
|
|
786
818
|
}
|
|
787
819
|
}
|
|
788
820
|
}
|
|
821
|
+
/** Handles keyboard events coming from the overlay panel. */
|
|
822
|
+
_handleOverlayEvents(overlayRef) {
|
|
823
|
+
// Use the `keydownEvents` in order to take advantage of
|
|
824
|
+
// the overlay event targeting provided by the CDK overlay.
|
|
825
|
+
overlayRef.keydownEvents().subscribe(event => {
|
|
826
|
+
var _a;
|
|
827
|
+
// Close when pressing ESCAPE or ALT + UP_ARROW, based on the a11y guidelines.
|
|
828
|
+
// See: https://www.w3.org/TR/wai-aria-practices-1.1/#textbox-keyboard-interaction
|
|
829
|
+
if ((event.keyCode === ESCAPE && !hasModifierKey(event)) ||
|
|
830
|
+
(event.keyCode === UP_ARROW && hasModifierKey(event, 'altKey'))) {
|
|
831
|
+
// If the user had typed something in before we autoselected an option, and they decided
|
|
832
|
+
// to cancel the selection, restore the input value to the one they had typed in.
|
|
833
|
+
if (this._pendingAutoselectedOption) {
|
|
834
|
+
this._updateNativeInputValue((_a = this._valueBeforeAutoSelection) !== null && _a !== void 0 ? _a : '');
|
|
835
|
+
this._pendingAutoselectedOption = null;
|
|
836
|
+
}
|
|
837
|
+
this._closeKeyEventStream.next();
|
|
838
|
+
this._resetActiveItem();
|
|
839
|
+
// We need to stop propagation, otherwise the event will eventually
|
|
840
|
+
// reach the input itself and cause the overlay to be reopened.
|
|
841
|
+
event.stopPropagation();
|
|
842
|
+
event.preventDefault();
|
|
843
|
+
}
|
|
844
|
+
});
|
|
845
|
+
}
|
|
789
846
|
}
|
|
790
|
-
_MatAutocompleteTriggerBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
791
|
-
_MatAutocompleteTriggerBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "
|
|
792
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
847
|
+
_MatAutocompleteTriggerBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: _MatAutocompleteTriggerBase, deps: [{ token: i0.ElementRef }, { token: i1$1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: MAT_AUTOCOMPLETE_SCROLL_STRATEGY }, { token: i2$1.Directionality, optional: true }, { token: MAT_FORM_FIELD, host: true, optional: true }, { token: DOCUMENT, optional: true }, { token: i3.ViewportRuler }, { token: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
848
|
+
_MatAutocompleteTriggerBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.13", type: _MatAutocompleteTriggerBase, inputs: { autocomplete: ["matAutocomplete", "autocomplete"], position: ["matAutocompletePosition", "position"], connectedTo: ["matAutocompleteConnectedTo", "connectedTo"], autocompleteAttribute: ["autocomplete", "autocompleteAttribute"], autocompleteDisabled: ["matAutocompleteDisabled", "autocompleteDisabled"] }, usesOnChanges: true, ngImport: i0 });
|
|
849
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: _MatAutocompleteTriggerBase, decorators: [{
|
|
793
850
|
type: Directive
|
|
794
851
|
}], ctorParameters: function () {
|
|
795
852
|
return [{ type: i0.ElementRef }, { type: i1$1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
|
@@ -837,9 +894,9 @@ class MatAutocompleteTrigger extends _MatAutocompleteTriggerBase {
|
|
|
837
894
|
this._aboveClass = 'mat-autocomplete-panel-above';
|
|
838
895
|
}
|
|
839
896
|
}
|
|
840
|
-
MatAutocompleteTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
841
|
-
MatAutocompleteTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "
|
|
842
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
897
|
+
MatAutocompleteTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: MatAutocompleteTrigger, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
898
|
+
MatAutocompleteTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.13", type: MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", host: { listeners: { "focusin": "_handleFocus()", "blur": "_onTouched()", "input": "_handleInput($event)", "keydown": "_handleKeydown($event)", "click": "_handleClick()" }, properties: { "attr.autocomplete": "autocompleteAttribute", "attr.role": "autocompleteDisabled ? null : \"combobox\"", "attr.aria-autocomplete": "autocompleteDisabled ? null : \"list\"", "attr.aria-activedescendant": "(panelOpen && activeOption) ? activeOption.id : null", "attr.aria-expanded": "autocompleteDisabled ? null : panelOpen.toString()", "attr.aria-owns": "(autocompleteDisabled || !panelOpen) ? null : autocomplete?.id", "attr.aria-haspopup": "autocompleteDisabled ? null : \"listbox\"" }, classAttribute: "mat-autocomplete-trigger" }, providers: [MAT_AUTOCOMPLETE_VALUE_ACCESSOR], exportAs: ["matAutocompleteTrigger"], usesInheritance: true, ngImport: i0 });
|
|
899
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: MatAutocompleteTrigger, decorators: [{
|
|
843
900
|
type: Directive,
|
|
844
901
|
args: [{
|
|
845
902
|
selector: `input[matAutocomplete], textarea[matAutocomplete]`,
|
|
@@ -851,13 +908,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0-rc.1", ng
|
|
|
851
908
|
'[attr.aria-activedescendant]': '(panelOpen && activeOption) ? activeOption.id : null',
|
|
852
909
|
'[attr.aria-expanded]': 'autocompleteDisabled ? null : panelOpen.toString()',
|
|
853
910
|
'[attr.aria-owns]': '(autocompleteDisabled || !panelOpen) ? null : autocomplete?.id',
|
|
854
|
-
'[attr.aria-haspopup]': '
|
|
911
|
+
'[attr.aria-haspopup]': 'autocompleteDisabled ? null : "listbox"',
|
|
855
912
|
// Note: we use `focusin`, as opposed to `focus`, in order to open the panel
|
|
856
913
|
// a little earlier. This avoids issues where IE delays the focusing of the input.
|
|
857
914
|
'(focusin)': '_handleFocus()',
|
|
858
915
|
'(blur)': '_onTouched()',
|
|
859
916
|
'(input)': '_handleInput($event)',
|
|
860
917
|
'(keydown)': '_handleKeydown($event)',
|
|
918
|
+
'(click)': '_handleClick()',
|
|
861
919
|
},
|
|
862
920
|
exportAs: 'matAutocompleteTrigger',
|
|
863
921
|
providers: [MAT_AUTOCOMPLETE_VALUE_ACCESSOR],
|
|
@@ -879,9 +937,9 @@ class _MatAutocompleteOriginBase {
|
|
|
879
937
|
this.elementRef = elementRef;
|
|
880
938
|
}
|
|
881
939
|
}
|
|
882
|
-
_MatAutocompleteOriginBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
883
|
-
_MatAutocompleteOriginBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "
|
|
884
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
940
|
+
_MatAutocompleteOriginBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: _MatAutocompleteOriginBase, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
941
|
+
_MatAutocompleteOriginBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.13", type: _MatAutocompleteOriginBase, ngImport: i0 });
|
|
942
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: _MatAutocompleteOriginBase, decorators: [{
|
|
885
943
|
type: Directive
|
|
886
944
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
|
|
887
945
|
/**
|
|
@@ -890,9 +948,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0-rc.1", ng
|
|
|
890
948
|
*/
|
|
891
949
|
class MatAutocompleteOrigin extends _MatAutocompleteOriginBase {
|
|
892
950
|
}
|
|
893
|
-
MatAutocompleteOrigin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
894
|
-
MatAutocompleteOrigin.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "
|
|
895
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
951
|
+
MatAutocompleteOrigin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: MatAutocompleteOrigin, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
952
|
+
MatAutocompleteOrigin.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.13", type: MatAutocompleteOrigin, selector: "[matAutocompleteOrigin]", exportAs: ["matAutocompleteOrigin"], usesInheritance: true, ngImport: i0 });
|
|
953
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: MatAutocompleteOrigin, decorators: [{
|
|
896
954
|
type: Directive,
|
|
897
955
|
args: [{
|
|
898
956
|
selector: '[matAutocompleteOrigin]',
|
|
@@ -909,17 +967,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0-rc.1", ng
|
|
|
909
967
|
*/
|
|
910
968
|
class MatAutocompleteModule {
|
|
911
969
|
}
|
|
912
|
-
MatAutocompleteModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
913
|
-
MatAutocompleteModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
|
|
970
|
+
MatAutocompleteModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: MatAutocompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
971
|
+
MatAutocompleteModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: MatAutocompleteModule, declarations: [MatAutocomplete, MatAutocompleteTrigger, MatAutocompleteOrigin], imports: [OverlayModule, MatOptionModule, MatCommonModule, CommonModule], exports: [MatAutocomplete,
|
|
914
972
|
MatAutocompleteTrigger,
|
|
915
973
|
MatAutocompleteOrigin,
|
|
916
974
|
CdkScrollableModule,
|
|
917
975
|
MatOptionModule,
|
|
918
976
|
MatCommonModule] });
|
|
919
|
-
MatAutocompleteModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
977
|
+
MatAutocompleteModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: MatAutocompleteModule, providers: [MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER], imports: [[OverlayModule, MatOptionModule, MatCommonModule, CommonModule], CdkScrollableModule,
|
|
920
978
|
MatOptionModule,
|
|
921
979
|
MatCommonModule] });
|
|
922
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
980
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: MatAutocompleteModule, decorators: [{
|
|
923
981
|
type: NgModule,
|
|
924
982
|
args: [{
|
|
925
983
|
imports: [OverlayModule, MatOptionModule, MatCommonModule, CommonModule],
|