@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
package/fesm2015/menu.mjs
CHANGED
|
@@ -5,7 +5,7 @@ import { UP_ARROW, DOWN_ARROW, RIGHT_ARROW, LEFT_ARROW, ESCAPE, hasModifierKey,
|
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
6
|
import { InjectionToken, Directive, Inject, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, Input, QueryList, EventEmitter, TemplateRef, ContentChildren, ViewChild, ContentChild, Output, Self, NgModule } from '@angular/core';
|
|
7
7
|
import { Subject, Subscription, merge, of, asapScheduler } from 'rxjs';
|
|
8
|
-
import { startWith, switchMap, take,
|
|
8
|
+
import { startWith, switchMap, take, takeUntil, filter, delay } from 'rxjs/operators';
|
|
9
9
|
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
10
10
|
import { TemplatePortal, DomPortalOutlet } from '@angular/cdk/portal';
|
|
11
11
|
import * as i3 from '@angular/common';
|
|
@@ -146,9 +146,9 @@ class _MatMenuContentBase {
|
|
|
146
146
|
}
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
|
-
_MatMenuContentBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
150
|
-
_MatMenuContentBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "
|
|
151
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
149
|
+
_MatMenuContentBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: _MatMenuContentBase, deps: [{ token: i0.TemplateRef }, { token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }, { token: i0.Injector }, { token: i0.ViewContainerRef }, { token: DOCUMENT }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
150
|
+
_MatMenuContentBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.13", type: _MatMenuContentBase, ngImport: i0 });
|
|
151
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: _MatMenuContentBase, decorators: [{
|
|
152
152
|
type: Directive
|
|
153
153
|
}], ctorParameters: function () {
|
|
154
154
|
return [{ type: i0.TemplateRef }, { type: i0.ComponentFactoryResolver }, { type: i0.ApplicationRef }, { type: i0.Injector }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
|
|
@@ -161,9 +161,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0-rc.1", ng
|
|
|
161
161
|
*/
|
|
162
162
|
class MatMenuContent extends _MatMenuContentBase {
|
|
163
163
|
}
|
|
164
|
-
MatMenuContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
165
|
-
MatMenuContent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "
|
|
166
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
164
|
+
MatMenuContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: MatMenuContent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
165
|
+
MatMenuContent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.13", type: MatMenuContent, selector: "ng-template[matMenuContent]", providers: [{ provide: MAT_MENU_CONTENT, useExisting: MatMenuContent }], usesInheritance: true, ngImport: i0 });
|
|
166
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: MatMenuContent, decorators: [{
|
|
167
167
|
type: Directive,
|
|
168
168
|
args: [{
|
|
169
169
|
selector: 'ng-template[matMenuContent]',
|
|
@@ -178,17 +178,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0-rc.1", ng
|
|
|
178
178
|
* Use of this source code is governed by an MIT-style license that can be
|
|
179
179
|
* found in the LICENSE file at https://angular.io/license
|
|
180
180
|
*/
|
|
181
|
-
/**
|
|
182
|
-
* Throws an exception for the case when menu trigger doesn't have a valid mat-menu instance
|
|
183
|
-
* @docs-private
|
|
184
|
-
*/
|
|
185
|
-
function throwMatMenuMissingError() {
|
|
186
|
-
throw Error(`matMenuTriggerFor: must pass in an mat-menu instance.
|
|
187
|
-
|
|
188
|
-
Example:
|
|
189
|
-
<mat-menu #menu="matMenu"></mat-menu>
|
|
190
|
-
<button [matMenuTriggerFor]="menu"></button>`);
|
|
191
|
-
}
|
|
192
181
|
/**
|
|
193
182
|
* Throws an exception for the case when menu's x-position value isn't valid.
|
|
194
183
|
* In other words, it doesn't match 'before' or 'after'.
|
|
@@ -242,6 +231,7 @@ class MatMenuItem extends _MatMenuItemBase {
|
|
|
242
231
|
var _a;
|
|
243
232
|
super();
|
|
244
233
|
this._elementRef = _elementRef;
|
|
234
|
+
this._document = _document;
|
|
245
235
|
this._focusMonitor = _focusMonitor;
|
|
246
236
|
this._parentMenu = _parentMenu;
|
|
247
237
|
this._changeDetectorRef = _changeDetectorRef;
|
|
@@ -324,10 +314,13 @@ class MatMenuItem extends _MatMenuItemBase {
|
|
|
324
314
|
this._highlighted = isHighlighted;
|
|
325
315
|
(_a = this._changeDetectorRef) === null || _a === void 0 ? void 0 : _a.markForCheck();
|
|
326
316
|
}
|
|
317
|
+
_hasFocus() {
|
|
318
|
+
return this._document && this._document.activeElement === this._getHostElement();
|
|
319
|
+
}
|
|
327
320
|
}
|
|
328
|
-
MatMenuItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
329
|
-
MatMenuItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
330
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
321
|
+
MatMenuItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: MatMenuItem, deps: [{ token: i0.ElementRef }, { token: DOCUMENT }, { token: i1.FocusMonitor }, { token: MAT_MENU_PANEL, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
322
|
+
MatMenuItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "14.0.0-next.13", type: MatMenuItem, selector: "[mat-menu-item]", inputs: { disabled: "disabled", disableRipple: "disableRipple", role: "role" }, host: { listeners: { "click": "_checkDisabled($event)", "mouseenter": "_handleMouseEnter()" }, properties: { "attr.role": "role", "class.mat-menu-item": "true", "class.mat-menu-item-highlighted": "_highlighted", "class.mat-menu-item-submenu-trigger": "_triggersSubmenu", "attr.tabindex": "_getTabIndex()", "attr.aria-disabled": "disabled.toString()", "attr.disabled": "disabled || null" }, classAttribute: "mat-focus-indicator" }, exportAs: ["matMenuItem"], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n<div class=\"mat-menu-ripple\" matRipple\n [matRippleDisabled]=\"disableRipple || disabled\"\n [matRippleTrigger]=\"_getHostElement()\">\n</div>\n\n<svg\n *ngIf=\"_triggersSubmenu\"\n class=\"mat-menu-submenu-icon\"\n viewBox=\"0 0 5 10\"\n focusable=\"false\"><polygon points=\"0,0 5,5 0,10\"/></svg>\n", directives: [{ type: i2.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
323
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: MatMenuItem, decorators: [{
|
|
331
324
|
type: Component,
|
|
332
325
|
args: [{ selector: '[mat-menu-item]', exportAs: 'matMenuItem', inputs: ['disabled', 'disableRipple'], host: {
|
|
333
326
|
'[attr.role]': 'role',
|
|
@@ -379,10 +372,13 @@ function MAT_MENU_DEFAULT_OPTIONS_FACTORY() {
|
|
|
379
372
|
let menuPanelUid = 0;
|
|
380
373
|
/** Base class with all of the `MatMenu` functionality. */
|
|
381
374
|
class _MatMenuBase {
|
|
382
|
-
constructor(_elementRef, _ngZone, _defaultOptions
|
|
375
|
+
constructor(_elementRef, _ngZone, _defaultOptions,
|
|
376
|
+
// @breaking-change 15.0.0 `_changeDetectorRef` to become a required parameter.
|
|
377
|
+
_changeDetectorRef) {
|
|
383
378
|
this._elementRef = _elementRef;
|
|
384
379
|
this._ngZone = _ngZone;
|
|
385
380
|
this._defaultOptions = _defaultOptions;
|
|
381
|
+
this._changeDetectorRef = _changeDetectorRef;
|
|
386
382
|
this._xPosition = this._defaultOptions.xPosition;
|
|
387
383
|
this._yPosition = this._defaultOptions.yPosition;
|
|
388
384
|
/** Only the direct descendant menu items. */
|
|
@@ -499,6 +495,23 @@ class _MatMenuBase {
|
|
|
499
495
|
this._directDescendantItems.changes
|
|
500
496
|
.pipe(startWith(this._directDescendantItems), switchMap(items => merge(...items.map((item) => item._focused))))
|
|
501
497
|
.subscribe(focusedItem => this._keyManager.updateActiveItem(focusedItem));
|
|
498
|
+
this._directDescendantItems.changes.subscribe((itemsList) => {
|
|
499
|
+
var _a;
|
|
500
|
+
// Move focus to another item, if the active item is removed from the list.
|
|
501
|
+
// We need to debounce the callback, because multiple items might be removed
|
|
502
|
+
// in quick succession.
|
|
503
|
+
const manager = this._keyManager;
|
|
504
|
+
if (this._panelAnimationState === 'enter' && ((_a = manager.activeItem) === null || _a === void 0 ? void 0 : _a._hasFocus())) {
|
|
505
|
+
const items = itemsList.toArray();
|
|
506
|
+
const index = Math.max(0, Math.min(items.length - 1, manager.activeItemIndex || 0));
|
|
507
|
+
if (items[index] && !items[index].disabled) {
|
|
508
|
+
manager.setActiveItem(index);
|
|
509
|
+
}
|
|
510
|
+
else {
|
|
511
|
+
manager.setNextItemActive();
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
});
|
|
502
515
|
}
|
|
503
516
|
ngOnDestroy() {
|
|
504
517
|
this._directDescendantItems.destroy();
|
|
@@ -632,11 +645,14 @@ class _MatMenuBase {
|
|
|
632
645
|
* @docs-private
|
|
633
646
|
*/
|
|
634
647
|
setPositionClasses(posX = this.xPosition, posY = this.yPosition) {
|
|
648
|
+
var _a;
|
|
635
649
|
const classes = this._classList;
|
|
636
650
|
classes['mat-menu-before'] = posX === 'before';
|
|
637
651
|
classes['mat-menu-after'] = posX === 'after';
|
|
638
652
|
classes['mat-menu-above'] = posY === 'above';
|
|
639
653
|
classes['mat-menu-below'] = posY === 'below';
|
|
654
|
+
// @breaking-change 15.0.0 Remove null check for `_changeDetectorRef`.
|
|
655
|
+
(_a = this._changeDetectorRef) === null || _a === void 0 ? void 0 : _a.markForCheck();
|
|
640
656
|
}
|
|
641
657
|
/** Starts the enter animation. */
|
|
642
658
|
_startAnimation() {
|
|
@@ -680,15 +696,15 @@ class _MatMenuBase {
|
|
|
680
696
|
});
|
|
681
697
|
}
|
|
682
698
|
}
|
|
683
|
-
_MatMenuBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
684
|
-
_MatMenuBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "
|
|
685
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
699
|
+
_MatMenuBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: _MatMenuBase, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: MAT_MENU_DEFAULT_OPTIONS }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
700
|
+
_MatMenuBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.13", type: _MatMenuBase, inputs: { backdropClass: "backdropClass", ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], ariaDescribedby: ["aria-describedby", "ariaDescribedby"], xPosition: "xPosition", yPosition: "yPosition", overlapTrigger: "overlapTrigger", hasBackdrop: "hasBackdrop", panelClass: ["class", "panelClass"], classList: "classList" }, outputs: { closed: "closed", close: "close" }, queries: [{ propertyName: "lazyContent", first: true, predicate: MAT_MENU_CONTENT, descendants: true }, { propertyName: "_allItems", predicate: MatMenuItem, descendants: true }, { propertyName: "items", predicate: MatMenuItem }], viewQueries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0 });
|
|
701
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: _MatMenuBase, decorators: [{
|
|
686
702
|
type: Directive
|
|
687
703
|
}], ctorParameters: function () {
|
|
688
704
|
return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: undefined, decorators: [{
|
|
689
705
|
type: Inject,
|
|
690
706
|
args: [MAT_MENU_DEFAULT_OPTIONS]
|
|
691
|
-
}] }];
|
|
707
|
+
}] }, { type: i0.ChangeDetectorRef }];
|
|
692
708
|
}, propDecorators: { _allItems: [{
|
|
693
709
|
type: ContentChildren,
|
|
694
710
|
args: [MatMenuItem, { descendants: true }]
|
|
@@ -732,26 +748,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0-rc.1", ng
|
|
|
732
748
|
}] } });
|
|
733
749
|
/** @docs-public MatMenu */
|
|
734
750
|
class MatMenu extends _MatMenuBase {
|
|
735
|
-
constructor(elementRef, ngZone, defaultOptions) {
|
|
736
|
-
super(elementRef, ngZone, defaultOptions);
|
|
751
|
+
constructor(elementRef, ngZone, defaultOptions, changeDetectorRef) {
|
|
752
|
+
super(elementRef, ngZone, defaultOptions, changeDetectorRef);
|
|
737
753
|
this._elevationPrefix = 'mat-elevation-z';
|
|
738
754
|
this._baseElevation = 4;
|
|
739
755
|
}
|
|
740
756
|
}
|
|
741
|
-
MatMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
742
|
-
MatMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
743
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
757
|
+
MatMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: MatMenu, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: MAT_MENU_DEFAULT_OPTIONS }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
758
|
+
MatMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "14.0.0-next.13", type: MatMenu, selector: "mat-menu", host: { properties: { "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.aria-describedby": "null" } }, providers: [{ provide: MAT_MENU_PANEL, useExisting: MatMenu }], exportAs: ["matMenu"], usesInheritance: true, ngImport: i0, template: "<ng-template>\n <div\n class=\"mat-menu-panel\"\n [id]=\"panelId\"\n [ngClass]=\"_classList\"\n (keydown)=\"_handleKeydown($event)\"\n (click)=\"closed.emit('click')\"\n [@transformMenu]=\"_panelAnimationState\"\n (@transformMenu.start)=\"_onAnimationStart($event)\"\n (@transformMenu.done)=\"_onAnimationDone($event)\"\n tabindex=\"-1\"\n role=\"menu\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby || null\"\n [attr.aria-describedby]=\"ariaDescribedby || null\">\n <div class=\"mat-menu-content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: ["mat-menu{display:none}.mat-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;max-height:calc(100vh - 48px);border-radius:4px;outline:0;min-height:64px;position:relative}.mat-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-menu-panel{outline:solid 1px}.mat-menu-content:not(:empty){padding-top:8px;padding-bottom:8px}.mat-menu-item{-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative}.mat-menu-item::-moz-focus-inner{border:0}.mat-menu-item[disabled]{cursor:default}[dir=rtl] .mat-menu-item{text-align:right}.mat-menu-item .mat-icon{margin-right:16px;vertical-align:middle}.mat-menu-item .mat-icon svg{vertical-align:top}[dir=rtl] .mat-menu-item .mat-icon{margin-left:16px;margin-right:0}.mat-menu-item[disabled]::before{display:block;position:absolute;content:\"\";top:0;left:0;bottom:0;right:0}.cdk-high-contrast-active .mat-menu-item{margin-top:1px}.cdk-high-contrast-active .mat-menu-item.cdk-program-focused,.cdk-high-contrast-active .mat-menu-item.cdk-keyboard-focused,.cdk-high-contrast-active .mat-menu-item-highlighted{outline:dotted 1px}.mat-menu-item-submenu-trigger{padding-right:32px}[dir=rtl] .mat-menu-item-submenu-trigger{padding-right:16px;padding-left:32px}.mat-menu-submenu-icon{position:absolute;top:50%;right:16px;transform:translateY(-50%);width:5px;height:10px;fill:currentColor}[dir=rtl] .mat-menu-submenu-icon{right:auto;left:16px;transform:translateY(-50%) scaleX(-1)}.cdk-high-contrast-active .mat-menu-submenu-icon{fill:CanvasText}button.mat-menu-item{width:100%}.mat-menu-item .mat-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}"], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [matMenuAnimations.transformMenu, matMenuAnimations.fadeInItems], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
759
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: MatMenu, decorators: [{
|
|
744
760
|
type: Component,
|
|
745
761
|
args: [{ selector: 'mat-menu', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, exportAs: 'matMenu', host: {
|
|
746
762
|
'[attr.aria-label]': 'null',
|
|
747
763
|
'[attr.aria-labelledby]': 'null',
|
|
748
764
|
'[attr.aria-describedby]': 'null',
|
|
749
|
-
}, animations: [matMenuAnimations.transformMenu, matMenuAnimations.fadeInItems], providers: [{ provide: MAT_MENU_PANEL, useExisting: MatMenu }], template: "<ng-template>\n <div\n class=\"mat-menu-panel\"\n [id]=\"panelId\"\n [ngClass]=\"_classList\"\n (keydown)=\"_handleKeydown($event)\"\n (click)=\"closed.emit('click')\"\n [@transformMenu]=\"_panelAnimationState\"\n (@transformMenu.start)=\"_onAnimationStart($event)\"\n (@transformMenu.done)=\"_onAnimationDone($event)\"\n tabindex=\"-1\"\n role=\"menu\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby || null\"\n [attr.aria-describedby]=\"ariaDescribedby || null\">\n <div class=\"mat-menu-content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: ["mat-menu{display:none}.mat-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;max-height:calc(100vh - 48px);border-radius:4px;outline:0;min-height:64px}.mat-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-menu-panel{outline:solid 1px}.mat-menu-content:not(:empty){padding-top:8px;padding-bottom:8px}.mat-menu-item{-webkit-user-select:none
|
|
765
|
+
}, animations: [matMenuAnimations.transformMenu, matMenuAnimations.fadeInItems], providers: [{ provide: MAT_MENU_PANEL, useExisting: MatMenu }], template: "<ng-template>\n <div\n class=\"mat-menu-panel\"\n [id]=\"panelId\"\n [ngClass]=\"_classList\"\n (keydown)=\"_handleKeydown($event)\"\n (click)=\"closed.emit('click')\"\n [@transformMenu]=\"_panelAnimationState\"\n (@transformMenu.start)=\"_onAnimationStart($event)\"\n (@transformMenu.done)=\"_onAnimationDone($event)\"\n tabindex=\"-1\"\n role=\"menu\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby || null\"\n [attr.aria-describedby]=\"ariaDescribedby || null\">\n <div class=\"mat-menu-content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: ["mat-menu{display:none}.mat-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;max-height:calc(100vh - 48px);border-radius:4px;outline:0;min-height:64px;position:relative}.mat-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-menu-panel{outline:solid 1px}.mat-menu-content:not(:empty){padding-top:8px;padding-bottom:8px}.mat-menu-item{-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative}.mat-menu-item::-moz-focus-inner{border:0}.mat-menu-item[disabled]{cursor:default}[dir=rtl] .mat-menu-item{text-align:right}.mat-menu-item .mat-icon{margin-right:16px;vertical-align:middle}.mat-menu-item .mat-icon svg{vertical-align:top}[dir=rtl] .mat-menu-item .mat-icon{margin-left:16px;margin-right:0}.mat-menu-item[disabled]::before{display:block;position:absolute;content:\"\";top:0;left:0;bottom:0;right:0}.cdk-high-contrast-active .mat-menu-item{margin-top:1px}.cdk-high-contrast-active .mat-menu-item.cdk-program-focused,.cdk-high-contrast-active .mat-menu-item.cdk-keyboard-focused,.cdk-high-contrast-active .mat-menu-item-highlighted{outline:dotted 1px}.mat-menu-item-submenu-trigger{padding-right:32px}[dir=rtl] .mat-menu-item-submenu-trigger{padding-right:16px;padding-left:32px}.mat-menu-submenu-icon{position:absolute;top:50%;right:16px;transform:translateY(-50%);width:5px;height:10px;fill:currentColor}[dir=rtl] .mat-menu-submenu-icon{right:auto;left:16px;transform:translateY(-50%) scaleX(-1)}.cdk-high-contrast-active .mat-menu-submenu-icon{fill:CanvasText}button.mat-menu-item{width:100%}.mat-menu-item .mat-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}"] }]
|
|
750
766
|
}], ctorParameters: function () {
|
|
751
767
|
return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: undefined, decorators: [{
|
|
752
768
|
type: Inject,
|
|
753
769
|
args: [MAT_MENU_DEFAULT_OPTIONS]
|
|
754
|
-
}] }];
|
|
770
|
+
}] }, { type: i0.ChangeDetectorRef }];
|
|
755
771
|
} });
|
|
756
772
|
|
|
757
773
|
/**
|
|
@@ -773,7 +789,11 @@ const MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER = {
|
|
|
773
789
|
deps: [Overlay],
|
|
774
790
|
useFactory: MAT_MENU_SCROLL_STRATEGY_FACTORY,
|
|
775
791
|
};
|
|
776
|
-
/**
|
|
792
|
+
/**
|
|
793
|
+
* Default top padding of the menu panel.
|
|
794
|
+
* @deprecated No longer being used. Will be removed.
|
|
795
|
+
* @breaking-change 15.0.0
|
|
796
|
+
*/
|
|
777
797
|
const MENU_PANEL_TOP_PADDING = 8;
|
|
778
798
|
/** Options for binding a passive event listener. */
|
|
779
799
|
const passiveEventListenerOptions = normalizePassiveListenerOptions({ passive: true });
|
|
@@ -782,13 +802,14 @@ class _MatMenuTriggerBase {
|
|
|
782
802
|
constructor(_overlay, _element, _viewContainerRef, scrollStrategy, parentMenu,
|
|
783
803
|
// `MatMenuTrigger` is commonly used in combination with a `MatMenuItem`.
|
|
784
804
|
// tslint:disable-next-line: lightweight-tokens
|
|
785
|
-
_menuItemInstance, _dir, _focusMonitor) {
|
|
805
|
+
_menuItemInstance, _dir, _focusMonitor, _ngZone) {
|
|
786
806
|
this._overlay = _overlay;
|
|
787
807
|
this._element = _element;
|
|
788
808
|
this._viewContainerRef = _viewContainerRef;
|
|
789
809
|
this._menuItemInstance = _menuItemInstance;
|
|
790
810
|
this._dir = _dir;
|
|
791
811
|
this._focusMonitor = _focusMonitor;
|
|
812
|
+
this._ngZone = _ngZone;
|
|
792
813
|
this._overlayRef = null;
|
|
793
814
|
this._menuOpen = false;
|
|
794
815
|
this._closingActionsSubscription = Subscription.EMPTY;
|
|
@@ -871,7 +892,6 @@ class _MatMenuTriggerBase {
|
|
|
871
892
|
}
|
|
872
893
|
}
|
|
873
894
|
ngAfterContentInit() {
|
|
874
|
-
this._checkMenu();
|
|
875
895
|
this._handleHover();
|
|
876
896
|
}
|
|
877
897
|
ngOnDestroy() {
|
|
@@ -902,28 +922,36 @@ class _MatMenuTriggerBase {
|
|
|
902
922
|
}
|
|
903
923
|
/** Opens the menu. */
|
|
904
924
|
openMenu() {
|
|
905
|
-
|
|
925
|
+
const menu = this.menu;
|
|
926
|
+
if (this._menuOpen || !menu) {
|
|
906
927
|
return;
|
|
907
928
|
}
|
|
908
|
-
this.
|
|
909
|
-
const overlayRef = this._createOverlay();
|
|
929
|
+
const overlayRef = this._createOverlay(menu);
|
|
910
930
|
const overlayConfig = overlayRef.getConfig();
|
|
911
|
-
|
|
931
|
+
const positionStrategy = overlayConfig.positionStrategy;
|
|
932
|
+
this._setPosition(menu, positionStrategy);
|
|
912
933
|
overlayConfig.hasBackdrop =
|
|
913
|
-
|
|
914
|
-
overlayRef.attach(this._getPortal());
|
|
915
|
-
if (
|
|
916
|
-
|
|
934
|
+
menu.hasBackdrop == null ? !this.triggersSubmenu() : menu.hasBackdrop;
|
|
935
|
+
overlayRef.attach(this._getPortal(menu));
|
|
936
|
+
if (menu.lazyContent) {
|
|
937
|
+
menu.lazyContent.attach(this.menuData);
|
|
917
938
|
}
|
|
918
939
|
this._closingActionsSubscription = this._menuClosingActions().subscribe(() => this.closeMenu());
|
|
919
|
-
this._initMenu();
|
|
920
|
-
if (
|
|
921
|
-
|
|
940
|
+
this._initMenu(menu);
|
|
941
|
+
if (menu instanceof _MatMenuBase) {
|
|
942
|
+
menu._startAnimation();
|
|
943
|
+
menu._directDescendantItems.changes.pipe(takeUntil(menu.close)).subscribe(() => {
|
|
944
|
+
// Re-adjust the position without locking when the amount of items
|
|
945
|
+
// changes so that the overlay is allowed to pick a new optimal position.
|
|
946
|
+
positionStrategy.withLockedPosition(false).reapplyLastPosition();
|
|
947
|
+
positionStrategy.withLockedPosition(true);
|
|
948
|
+
});
|
|
922
949
|
}
|
|
923
950
|
}
|
|
924
951
|
/** Closes the menu. */
|
|
925
952
|
closeMenu() {
|
|
926
|
-
|
|
953
|
+
var _a;
|
|
954
|
+
(_a = this.menu) === null || _a === void 0 ? void 0 : _a.close.emit();
|
|
927
955
|
}
|
|
928
956
|
/**
|
|
929
957
|
* Focuses the menu trigger.
|
|
@@ -946,6 +974,7 @@ class _MatMenuTriggerBase {
|
|
|
946
974
|
}
|
|
947
975
|
/** Closes the menu and does the necessary cleanup. */
|
|
948
976
|
_destroyMenu(reason) {
|
|
977
|
+
var _a;
|
|
949
978
|
if (!this._overlayRef || !this.menuOpen) {
|
|
950
979
|
return;
|
|
951
980
|
}
|
|
@@ -980,32 +1009,30 @@ class _MatMenuTriggerBase {
|
|
|
980
1009
|
}
|
|
981
1010
|
else {
|
|
982
1011
|
this._setIsMenuOpen(false);
|
|
983
|
-
|
|
984
|
-
menu.lazyContent.detach();
|
|
985
|
-
}
|
|
1012
|
+
(_a = menu === null || menu === void 0 ? void 0 : menu.lazyContent) === null || _a === void 0 ? void 0 : _a.detach();
|
|
986
1013
|
}
|
|
987
1014
|
}
|
|
988
1015
|
/**
|
|
989
1016
|
* This method sets the menu state to open and focuses the first item if
|
|
990
1017
|
* the menu was opened via the keyboard.
|
|
991
1018
|
*/
|
|
992
|
-
_initMenu() {
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
this._setMenuElevation();
|
|
996
|
-
|
|
1019
|
+
_initMenu(menu) {
|
|
1020
|
+
menu.parentMenu = this.triggersSubmenu() ? this._parentMaterialMenu : undefined;
|
|
1021
|
+
menu.direction = this.dir;
|
|
1022
|
+
this._setMenuElevation(menu);
|
|
1023
|
+
menu.focusFirstItem(this._openedBy || 'program');
|
|
997
1024
|
this._setIsMenuOpen(true);
|
|
998
1025
|
}
|
|
999
1026
|
/** Updates the menu elevation based on the amount of parent menus that it has. */
|
|
1000
|
-
_setMenuElevation() {
|
|
1001
|
-
if (
|
|
1027
|
+
_setMenuElevation(menu) {
|
|
1028
|
+
if (menu.setElevation) {
|
|
1002
1029
|
let depth = 0;
|
|
1003
|
-
let parentMenu =
|
|
1030
|
+
let parentMenu = menu.parentMenu;
|
|
1004
1031
|
while (parentMenu) {
|
|
1005
1032
|
depth++;
|
|
1006
1033
|
parentMenu = parentMenu.parentMenu;
|
|
1007
1034
|
}
|
|
1008
|
-
|
|
1035
|
+
menu.setElevation(depth);
|
|
1009
1036
|
}
|
|
1010
1037
|
}
|
|
1011
1038
|
// set state rather than toggle to support triggers sharing a menu
|
|
@@ -1016,23 +1043,14 @@ class _MatMenuTriggerBase {
|
|
|
1016
1043
|
this._menuItemInstance._setHighlighted(isOpen);
|
|
1017
1044
|
}
|
|
1018
1045
|
}
|
|
1019
|
-
/**
|
|
1020
|
-
* This method checks that a valid instance of MatMenu has been passed into
|
|
1021
|
-
* matMenuTriggerFor. If not, an exception is thrown.
|
|
1022
|
-
*/
|
|
1023
|
-
_checkMenu() {
|
|
1024
|
-
if (!this.menu && (typeof ngDevMode === 'undefined' || ngDevMode)) {
|
|
1025
|
-
throwMatMenuMissingError();
|
|
1026
|
-
}
|
|
1027
|
-
}
|
|
1028
1046
|
/**
|
|
1029
1047
|
* This method creates the overlay from the provided menu's template and saves its
|
|
1030
1048
|
* OverlayRef so that it can be attached to the DOM when openMenu is called.
|
|
1031
1049
|
*/
|
|
1032
|
-
_createOverlay() {
|
|
1050
|
+
_createOverlay(menu) {
|
|
1033
1051
|
if (!this._overlayRef) {
|
|
1034
|
-
const config = this._getOverlayConfig();
|
|
1035
|
-
this._subscribeToPositions(config.positionStrategy);
|
|
1052
|
+
const config = this._getOverlayConfig(menu);
|
|
1053
|
+
this._subscribeToPositions(menu, config.positionStrategy);
|
|
1036
1054
|
this._overlayRef = this._overlay.create(config);
|
|
1037
1055
|
// Consume the `keydownEvents` in order to prevent them from going to another overlay.
|
|
1038
1056
|
// Ideally we'd also have our keyboard event logic in here, however doing so will
|
|
@@ -1045,7 +1063,7 @@ class _MatMenuTriggerBase {
|
|
|
1045
1063
|
* This method builds the configuration object needed to create the overlay, the OverlayState.
|
|
1046
1064
|
* @returns OverlayConfig
|
|
1047
1065
|
*/
|
|
1048
|
-
_getOverlayConfig() {
|
|
1066
|
+
_getOverlayConfig(menu) {
|
|
1049
1067
|
return new OverlayConfig({
|
|
1050
1068
|
positionStrategy: this._overlay
|
|
1051
1069
|
.position()
|
|
@@ -1053,8 +1071,8 @@ class _MatMenuTriggerBase {
|
|
|
1053
1071
|
.withLockedPosition()
|
|
1054
1072
|
.withGrowAfterOpen()
|
|
1055
1073
|
.withTransformOriginOn('.mat-menu-panel, .mat-mdc-menu-panel'),
|
|
1056
|
-
backdropClass:
|
|
1057
|
-
panelClass:
|
|
1074
|
+
backdropClass: menu.backdropClass || 'cdk-overlay-transparent-backdrop',
|
|
1075
|
+
panelClass: menu.overlayPanelClass,
|
|
1058
1076
|
scrollStrategy: this._scrollStrategy(),
|
|
1059
1077
|
direction: this._dir,
|
|
1060
1078
|
});
|
|
@@ -1064,12 +1082,20 @@ class _MatMenuTriggerBase {
|
|
|
1064
1082
|
* on the menu based on the new position. This ensures the animation origin is always
|
|
1065
1083
|
* correct, even if a fallback position is used for the overlay.
|
|
1066
1084
|
*/
|
|
1067
|
-
_subscribeToPositions(position) {
|
|
1068
|
-
if (
|
|
1085
|
+
_subscribeToPositions(menu, position) {
|
|
1086
|
+
if (menu.setPositionClasses) {
|
|
1069
1087
|
position.positionChanges.subscribe(change => {
|
|
1070
1088
|
const posX = change.connectionPair.overlayX === 'start' ? 'after' : 'before';
|
|
1071
1089
|
const posY = change.connectionPair.overlayY === 'top' ? 'below' : 'above';
|
|
1072
|
-
|
|
1090
|
+
// @breaking-change 15.0.0 Remove null check for `ngZone`.
|
|
1091
|
+
// `positionChanges` fires outside of the `ngZone` and `setPositionClasses` might be
|
|
1092
|
+
// updating something in the view so we need to bring it back in.
|
|
1093
|
+
if (this._ngZone) {
|
|
1094
|
+
this._ngZone.run(() => menu.setPositionClasses(posX, posY));
|
|
1095
|
+
}
|
|
1096
|
+
else {
|
|
1097
|
+
menu.setPositionClasses(posX, posY);
|
|
1098
|
+
}
|
|
1073
1099
|
});
|
|
1074
1100
|
}
|
|
1075
1101
|
}
|
|
@@ -1078,20 +1104,26 @@ class _MatMenuTriggerBase {
|
|
|
1078
1104
|
* so the overlay connects with the trigger correctly.
|
|
1079
1105
|
* @param positionStrategy Strategy whose position to update.
|
|
1080
1106
|
*/
|
|
1081
|
-
_setPosition(positionStrategy) {
|
|
1082
|
-
let [originX, originFallbackX] =
|
|
1083
|
-
let [overlayY, overlayFallbackY] =
|
|
1107
|
+
_setPosition(menu, positionStrategy) {
|
|
1108
|
+
let [originX, originFallbackX] = menu.xPosition === 'before' ? ['end', 'start'] : ['start', 'end'];
|
|
1109
|
+
let [overlayY, overlayFallbackY] = menu.yPosition === 'above' ? ['bottom', 'top'] : ['top', 'bottom'];
|
|
1084
1110
|
let [originY, originFallbackY] = [overlayY, overlayFallbackY];
|
|
1085
1111
|
let [overlayX, overlayFallbackX] = [originX, originFallbackX];
|
|
1086
1112
|
let offsetY = 0;
|
|
1087
1113
|
if (this.triggersSubmenu()) {
|
|
1088
1114
|
// When the menu is a sub-menu, it should always align itself
|
|
1089
1115
|
// to the edges of the trigger, instead of overlapping it.
|
|
1090
|
-
overlayFallbackX = originX =
|
|
1116
|
+
overlayFallbackX = originX = menu.xPosition === 'before' ? 'start' : 'end';
|
|
1091
1117
|
originFallbackX = overlayX = originX === 'end' ? 'start' : 'end';
|
|
1092
|
-
|
|
1118
|
+
if (this._parentMaterialMenu) {
|
|
1119
|
+
if (this._parentInnerPadding == null) {
|
|
1120
|
+
const firstItem = this._parentMaterialMenu.items.first;
|
|
1121
|
+
this._parentInnerPadding = firstItem ? firstItem._getHostElement().offsetTop : 0;
|
|
1122
|
+
}
|
|
1123
|
+
offsetY = overlayY === 'bottom' ? this._parentInnerPadding : -this._parentInnerPadding;
|
|
1124
|
+
}
|
|
1093
1125
|
}
|
|
1094
|
-
else if (!
|
|
1126
|
+
else if (!menu.overlapTrigger) {
|
|
1095
1127
|
originY = overlayY === 'top' ? 'bottom' : 'top';
|
|
1096
1128
|
originFallbackY = overlayFallbackY === 'top' ? 'bottom' : 'top';
|
|
1097
1129
|
}
|
|
@@ -1193,23 +1225,23 @@ class _MatMenuTriggerBase {
|
|
|
1193
1225
|
});
|
|
1194
1226
|
}
|
|
1195
1227
|
/** Gets the portal that should be attached to the overlay. */
|
|
1196
|
-
_getPortal() {
|
|
1228
|
+
_getPortal(menu) {
|
|
1197
1229
|
// Note that we can avoid this check by keeping the portal on the menu panel.
|
|
1198
1230
|
// While it would be cleaner, we'd have to introduce another required method on
|
|
1199
1231
|
// `MatMenuPanel`, making it harder to consume.
|
|
1200
|
-
if (!this._portal || this._portal.templateRef !==
|
|
1201
|
-
this._portal = new TemplatePortal(
|
|
1232
|
+
if (!this._portal || this._portal.templateRef !== menu.templateRef) {
|
|
1233
|
+
this._portal = new TemplatePortal(menu.templateRef, this._viewContainerRef);
|
|
1202
1234
|
}
|
|
1203
1235
|
return this._portal;
|
|
1204
1236
|
}
|
|
1205
1237
|
}
|
|
1206
|
-
_MatMenuTriggerBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1207
|
-
_MatMenuTriggerBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "
|
|
1208
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1238
|
+
_MatMenuTriggerBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: _MatMenuTriggerBase, deps: [{ token: i1$1.Overlay }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: MAT_MENU_SCROLL_STRATEGY }, { token: MAT_MENU_PANEL, optional: true }, { token: MatMenuItem, optional: true, self: true }, { token: i3$1.Directionality, optional: true }, { token: i1.FocusMonitor }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
1239
|
+
_MatMenuTriggerBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.13", type: _MatMenuTriggerBase, inputs: { _deprecatedMatMenuTriggerFor: ["mat-menu-trigger-for", "_deprecatedMatMenuTriggerFor"], menu: ["matMenuTriggerFor", "menu"], menuData: ["matMenuTriggerData", "menuData"], restoreFocus: ["matMenuTriggerRestoreFocus", "restoreFocus"] }, outputs: { menuOpened: "menuOpened", onMenuOpen: "onMenuOpen", menuClosed: "menuClosed", onMenuClose: "onMenuClose" }, host: { listeners: { "click": "_handleClick($event)", "mousedown": "_handleMousedown($event)", "keydown": "_handleKeydown($event)" }, properties: { "attr.aria-haspopup": "menu ? \"menu\" : null", "attr.aria-expanded": "menuOpen || null", "attr.aria-controls": "menuOpen ? menu.panelId : null" } }, ngImport: i0 });
|
|
1240
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: _MatMenuTriggerBase, decorators: [{
|
|
1209
1241
|
type: Directive,
|
|
1210
1242
|
args: [{
|
|
1211
1243
|
host: {
|
|
1212
|
-
'aria-haspopup': '
|
|
1244
|
+
'[attr.aria-haspopup]': 'menu ? "menu" : null',
|
|
1213
1245
|
'[attr.aria-expanded]': 'menuOpen || null',
|
|
1214
1246
|
'[attr.aria-controls]': 'menuOpen ? menu.panelId : null',
|
|
1215
1247
|
'(click)': '_handleClick($event)',
|
|
@@ -1232,7 +1264,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0-rc.1", ng
|
|
|
1232
1264
|
type: Self
|
|
1233
1265
|
}] }, { type: i3$1.Directionality, decorators: [{
|
|
1234
1266
|
type: Optional
|
|
1235
|
-
}] }, { type: i1.FocusMonitor }];
|
|
1267
|
+
}] }, { type: i1.FocusMonitor }, { type: i0.NgZone }];
|
|
1236
1268
|
}, propDecorators: { _deprecatedMatMenuTriggerFor: [{
|
|
1237
1269
|
type: Input,
|
|
1238
1270
|
args: ['mat-menu-trigger-for']
|
|
@@ -1257,9 +1289,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0-rc.1", ng
|
|
|
1257
1289
|
/** Directive applied to an element that should trigger a `mat-menu`. */
|
|
1258
1290
|
class MatMenuTrigger extends _MatMenuTriggerBase {
|
|
1259
1291
|
}
|
|
1260
|
-
MatMenuTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1261
|
-
MatMenuTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "
|
|
1262
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1292
|
+
MatMenuTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: MatMenuTrigger, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
1293
|
+
MatMenuTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.13", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", host: { classAttribute: "mat-menu-trigger" }, exportAs: ["matMenuTrigger"], usesInheritance: true, ngImport: i0 });
|
|
1294
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: MatMenuTrigger, decorators: [{
|
|
1263
1295
|
type: Directive,
|
|
1264
1296
|
args: [{
|
|
1265
1297
|
selector: `[mat-menu-trigger-for], [matMenuTriggerFor]`,
|
|
@@ -1279,16 +1311,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0-rc.1", ng
|
|
|
1279
1311
|
*/
|
|
1280
1312
|
class MatMenuModule {
|
|
1281
1313
|
}
|
|
1282
|
-
MatMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1283
|
-
MatMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
|
|
1314
|
+
MatMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: MatMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1315
|
+
MatMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: MatMenuModule, declarations: [MatMenu, MatMenuItem, MatMenuTrigger, MatMenuContent], imports: [CommonModule, MatCommonModule, MatRippleModule, OverlayModule], exports: [CdkScrollableModule,
|
|
1284
1316
|
MatCommonModule,
|
|
1285
1317
|
MatMenu,
|
|
1286
1318
|
MatMenuItem,
|
|
1287
1319
|
MatMenuTrigger,
|
|
1288
1320
|
MatMenuContent] });
|
|
1289
|
-
MatMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
1321
|
+
MatMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: MatMenuModule, providers: [MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER], imports: [[CommonModule, MatCommonModule, MatRippleModule, OverlayModule], CdkScrollableModule,
|
|
1290
1322
|
MatCommonModule] });
|
|
1291
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1323
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.13", ngImport: i0, type: MatMenuModule, decorators: [{
|
|
1292
1324
|
type: NgModule,
|
|
1293
1325
|
args: [{
|
|
1294
1326
|
imports: [CommonModule, MatCommonModule, MatRippleModule, OverlayModule],
|