@angular/material 14.0.0-next.4 → 14.0.0-next.5
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/autocomplete/autocomplete-trigger.d.ts +14 -3
- package/autocomplete/autocomplete.d.ts +7 -1
- package/button-toggle/_button-toggle-theme.scss +10 -0
- package/checkbox/_checkbox-theme.scss +7 -1
- package/chips/chip-list.d.ts +3 -1
- package/chips/chip.d.ts +3 -1
- package/core/theming/_theming.scss +9 -0
- package/esm2020/autocomplete/autocomplete-module.mjs +5 -5
- package/esm2020/autocomplete/autocomplete-origin.mjs +7 -7
- package/esm2020/autocomplete/autocomplete-trigger.mjs +66 -37
- package/esm2020/autocomplete/autocomplete.mjs +18 -8
- package/esm2020/badge/badge-module.mjs +5 -5
- package/esm2020/badge/badge.mjs +4 -4
- package/esm2020/bottom-sheet/bottom-sheet-container.mjs +4 -4
- 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 +7 -7
- package/esm2020/button-toggle/button-toggle-module.mjs +5 -5
- package/esm2020/button-toggle/button-toggle.mjs +7 -7
- package/esm2020/card/card-module.mjs +5 -5
- package/esm2020/card/card.mjs +43 -43
- package/esm2020/checkbox/checkbox-module.mjs +9 -9
- package/esm2020/checkbox/checkbox-required-validator.mjs +4 -4
- package/esm2020/checkbox/checkbox.mjs +4 -4
- package/esm2020/chips/chip-input.mjs +4 -4
- package/esm2020/chips/chip-list.mjs +13 -5
- package/esm2020/chips/chip.mjs +18 -14
- package/esm2020/chips/chips-module.mjs +5 -5
- package/esm2020/core/common-behaviors/common-module.mjs +5 -5
- package/esm2020/core/datetime/index.mjs +9 -9
- 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 +7 -7
- package/esm2020/core/option/option.mjs +7 -7
- package/esm2020/core/ripple/index.mjs +5 -5
- package/esm2020/core/ripple/ripple-renderer.mjs +17 -11
- 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 +4 -4
- package/esm2020/core/version.mjs +1 -1
- package/esm2020/datepicker/calendar-body.mjs +4 -4
- package/esm2020/datepicker/calendar.mjs +13 -13
- package/esm2020/datepicker/date-range-input-parts.mjs +10 -10
- package/esm2020/datepicker/date-range-input.mjs +4 -4
- 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 +10 -10
- package/esm2020/datepicker/datepicker-base.mjs +7 -7
- 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 +7 -7
- package/esm2020/datepicker/datepicker.mjs +4 -4
- package/esm2020/datepicker/month-view.mjs +4 -4
- package/esm2020/datepicker/multi-year-view.mjs +4 -4
- package/esm2020/datepicker/year-view.mjs +4 -4
- package/esm2020/dialog/dialog-container.mjs +7 -7
- package/esm2020/dialog/dialog-content-directives.mjs +13 -13
- package/esm2020/dialog/dialog-module.mjs +5 -5
- package/esm2020/dialog/dialog.mjs +8 -8
- package/esm2020/divider/divider-module.mjs +5 -5
- package/esm2020/divider/divider.mjs +4 -4
- 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 +10 -10
- package/esm2020/expansion/expansion-panel.mjs +11 -8
- 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 +4 -4
- 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/grid-list/grid-list-module.mjs +5 -5
- package/esm2020/grid-list/grid-list.mjs +4 -4
- package/esm2020/grid-list/grid-tile.mjs +16 -16
- package/esm2020/icon/icon-module.mjs +5 -5
- package/esm2020/icon/icon-registry.mjs +12 -14
- package/esm2020/icon/icon.mjs +30 -20
- package/esm2020/icon/testing/fake-icon-registry.mjs +9 -9
- package/esm2020/input/input-module.mjs +5 -5
- package/esm2020/input/input.mjs +4 -4
- package/esm2020/list/list-module.mjs +5 -5
- package/esm2020/list/list.mjs +19 -19
- package/esm2020/list/selection-list.mjs +7 -7
- 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 +62 -64
- package/esm2020/menu/menu.mjs +24 -8
- 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/progress-bar/progress-bar-module.mjs +5 -5
- package/esm2020/progress-bar/progress-bar.mjs +4 -4
- package/esm2020/progress-spinner/progress-spinner-module.mjs +8 -8
- package/esm2020/progress-spinner/progress-spinner.mjs +10 -50
- package/esm2020/progress-spinner/public-api.mjs +10 -2
- package/esm2020/radio/radio-module.mjs +5 -5
- package/esm2020/radio/radio.mjs +13 -13
- package/esm2020/select/select-module.mjs +5 -5
- package/esm2020/select/select.mjs +10 -10
- package/esm2020/sidenav/drawer.mjs +10 -10
- package/esm2020/sidenav/sidenav-module.mjs +5 -5
- package/esm2020/sidenav/sidenav.mjs +10 -10
- 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 +4 -4
- package/esm2020/slider/slider-module.mjs +5 -5
- package/esm2020/slider/slider.mjs +4 -4
- package/esm2020/snack-bar/simple-snack-bar.mjs +4 -4
- package/esm2020/snack-bar/snack-bar-container.mjs +4 -4
- 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 +6 -6
- package/esm2020/sort/sort-module.mjs +5 -5
- package/esm2020/sort/sort.mjs +4 -4
- package/esm2020/stepper/step-content.mjs +4 -4
- package/esm2020/stepper/step-header.mjs +4 -4
- package/esm2020/stepper/step-label.mjs +4 -4
- 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 +5 -5
- package/esm2020/stepper/stepper.mjs +7 -7
- 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 +7 -7
- package/esm2020/table/text-column.mjs +4 -4
- package/esm2020/tabs/ink-bar.mjs +4 -4
- package/esm2020/tabs/paginated-tab-header.mjs +4 -4
- package/esm2020/tabs/tab-body.mjs +10 -10
- package/esm2020/tabs/tab-content.mjs +4 -4
- package/esm2020/tabs/tab-group.mjs +7 -7
- package/esm2020/tabs/tab-header.mjs +7 -7
- 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 +16 -16
- package/esm2020/tabs/tab.mjs +4 -4
- package/esm2020/tabs/tabs-module.mjs +5 -5
- package/esm2020/toolbar/toolbar-module.mjs +5 -5
- package/esm2020/toolbar/toolbar.mjs +7 -7
- package/esm2020/tooltip/tooltip-module.mjs +5 -5
- package/esm2020/tooltip/tooltip.mjs +41 -18
- 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 +4 -4
- 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.mjs +94 -54
- package/fesm2015/autocomplete.mjs.map +1 -1
- package/fesm2015/badge.mjs +7 -7
- package/fesm2015/badge.mjs.map +1 -1
- package/fesm2015/bottom-sheet.mjs +10 -10
- package/fesm2015/bottom-sheet.mjs.map +1 -1
- package/fesm2015/button-toggle.mjs +10 -10
- package/fesm2015/button-toggle.mjs.map +1 -1
- package/fesm2015/button.mjs +10 -10
- package/fesm2015/button.mjs.map +1 -1
- package/fesm2015/card.mjs +46 -46
- package/fesm2015/card.mjs.map +1 -1
- package/fesm2015/checkbox.mjs +14 -14
- package/fesm2015/checkbox.mjs.map +1 -1
- package/fesm2015/chips.mjs +36 -24
- package/fesm2015/chips.mjs.map +1 -1
- package/fesm2015/core.mjs +75 -69
- package/fesm2015/core.mjs.map +1 -1
- package/fesm2015/datepicker.mjs +94 -89
- package/fesm2015/datepicker.mjs.map +1 -1
- package/fesm2015/dialog.mjs +29 -29
- package/fesm2015/dialog.mjs.map +1 -1
- package/fesm2015/divider.mjs +7 -7
- package/fesm2015/divider.mjs.map +1 -1
- package/fesm2015/expansion.mjs +53 -30
- package/fesm2015/expansion.mjs.map +1 -1
- package/fesm2015/form-field.mjs +28 -28
- package/fesm2015/form-field.mjs.map +1 -1
- package/fesm2015/grid-list.mjs +22 -22
- 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 +44 -36
- package/fesm2015/icon.mjs.map +1 -1
- package/fesm2015/input.mjs +7 -7
- package/fesm2015/input.mjs.map +1 -1
- package/fesm2015/list.mjs +28 -28
- package/fesm2015/list.mjs.map +1 -1
- package/fesm2015/menu.mjs +103 -93
- package/fesm2015/menu.mjs.map +1 -1
- package/fesm2015/paginator.mjs +18 -14
- package/fesm2015/paginator.mjs.map +1 -1
- package/fesm2015/progress-bar.mjs +7 -7
- package/fesm2015/progress-bar.mjs.map +1 -1
- package/fesm2015/progress-spinner.mjs +27 -62
- package/fesm2015/progress-spinner.mjs.map +1 -1
- package/fesm2015/radio.mjs +16 -16
- package/fesm2015/radio.mjs.map +1 -1
- package/fesm2015/select.mjs +13 -13
- package/fesm2015/select.mjs.map +1 -1
- package/fesm2015/sidenav.mjs +22 -22
- package/fesm2015/sidenav.mjs.map +1 -1
- package/fesm2015/slide-toggle.mjs +14 -14
- package/fesm2015/slide-toggle.mjs.map +1 -1
- package/fesm2015/slider.mjs +7 -7
- package/fesm2015/slider.mjs.map +1 -1
- package/fesm2015/snack-bar.mjs +16 -16
- package/fesm2015/snack-bar.mjs.map +1 -1
- package/fesm2015/sort.mjs +15 -15
- package/fesm2015/sort.mjs.map +1 -1
- package/fesm2015/stepper.mjs +31 -31
- package/fesm2015/stepper.mjs.map +1 -1
- package/fesm2015/table.mjs +55 -55
- package/fesm2015/table.mjs.map +1 -1
- package/fesm2015/tabs.mjs +58 -58
- package/fesm2015/tabs.mjs.map +1 -1
- package/fesm2015/toolbar.mjs +10 -10
- package/fesm2015/toolbar.mjs.map +1 -1
- package/fesm2015/tooltip.mjs +46 -21
- package/fesm2015/tooltip.mjs.map +1 -1
- package/fesm2015/tree.mjs +25 -25
- package/fesm2015/tree.mjs.map +1 -1
- package/fesm2020/autocomplete.mjs +93 -54
- package/fesm2020/autocomplete.mjs.map +1 -1
- package/fesm2020/badge.mjs +7 -7
- package/fesm2020/badge.mjs.map +1 -1
- package/fesm2020/bottom-sheet.mjs +10 -10
- package/fesm2020/bottom-sheet.mjs.map +1 -1
- package/fesm2020/button-toggle.mjs +10 -10
- package/fesm2020/button-toggle.mjs.map +1 -1
- package/fesm2020/button.mjs +10 -10
- package/fesm2020/button.mjs.map +1 -1
- package/fesm2020/card.mjs +46 -46
- package/fesm2020/card.mjs.map +1 -1
- package/fesm2020/checkbox.mjs +14 -14
- package/fesm2020/checkbox.mjs.map +1 -1
- package/fesm2020/chips.mjs +36 -24
- package/fesm2020/chips.mjs.map +1 -1
- package/fesm2020/core.mjs +75 -69
- package/fesm2020/core.mjs.map +1 -1
- package/fesm2020/datepicker.mjs +94 -89
- package/fesm2020/datepicker.mjs.map +1 -1
- package/fesm2020/dialog.mjs +29 -29
- package/fesm2020/dialog.mjs.map +1 -1
- package/fesm2020/divider.mjs +7 -7
- package/fesm2020/divider.mjs.map +1 -1
- package/fesm2020/expansion.mjs +51 -30
- package/fesm2020/expansion.mjs.map +1 -1
- package/fesm2020/form-field.mjs +28 -28
- package/fesm2020/form-field.mjs.map +1 -1
- package/fesm2020/grid-list.mjs +22 -22
- 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 +44 -36
- package/fesm2020/icon.mjs.map +1 -1
- package/fesm2020/input.mjs +7 -7
- package/fesm2020/input.mjs.map +1 -1
- package/fesm2020/list.mjs +28 -28
- package/fesm2020/list.mjs.map +1 -1
- package/fesm2020/menu.mjs +100 -93
- package/fesm2020/menu.mjs.map +1 -1
- package/fesm2020/paginator.mjs +18 -14
- package/fesm2020/paginator.mjs.map +1 -1
- package/fesm2020/progress-bar.mjs +7 -7
- package/fesm2020/progress-bar.mjs.map +1 -1
- package/fesm2020/progress-spinner.mjs +27 -60
- package/fesm2020/progress-spinner.mjs.map +1 -1
- package/fesm2020/radio.mjs +16 -16
- package/fesm2020/radio.mjs.map +1 -1
- package/fesm2020/select.mjs +13 -13
- package/fesm2020/select.mjs.map +1 -1
- package/fesm2020/sidenav.mjs +22 -22
- package/fesm2020/sidenav.mjs.map +1 -1
- package/fesm2020/slide-toggle.mjs +14 -14
- package/fesm2020/slide-toggle.mjs.map +1 -1
- package/fesm2020/slider.mjs +7 -7
- package/fesm2020/slider.mjs.map +1 -1
- package/fesm2020/snack-bar.mjs +16 -16
- package/fesm2020/snack-bar.mjs.map +1 -1
- package/fesm2020/sort.mjs +15 -15
- package/fesm2020/sort.mjs.map +1 -1
- package/fesm2020/stepper.mjs +31 -31
- package/fesm2020/stepper.mjs.map +1 -1
- package/fesm2020/table.mjs +55 -55
- package/fesm2020/table.mjs.map +1 -1
- package/fesm2020/tabs.mjs +58 -58
- package/fesm2020/tabs.mjs.map +1 -1
- package/fesm2020/toolbar.mjs +10 -10
- package/fesm2020/toolbar.mjs.map +1 -1
- package/fesm2020/tooltip.mjs +44 -21
- package/fesm2020/tooltip.mjs.map +1 -1
- package/fesm2020/tree.mjs +25 -25
- package/fesm2020/tree.mjs.map +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/menu/menu-errors.d.ts +0 -5
- package/menu/menu-item.d.ts +3 -2
- package/menu/menu-trigger.d.ts +14 -10
- package/package.json +7 -7
- package/paginator/paginator.d.ts +12 -1
- 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 +1 -18
- package/progress-spinner/public-api.d.ts +8 -1
- package/schematics/migration.json +5 -0
- 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 +12 -4
- package/schematics/ng-add/schema.mjs +1 -1
- package/schematics/ng-add/setup-project.js +7 -5
- package/schematics/ng-add/setup-project.mjs +7 -5
- 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/tooltip/tooltip.d.ts +13 -1
package/fesm2020/menu.mjs
CHANGED
|
@@ -145,9 +145,9 @@ class _MatMenuContentBase {
|
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
147
|
}
|
|
148
|
-
_MatMenuContentBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
149
|
-
_MatMenuContentBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "
|
|
150
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
148
|
+
_MatMenuContentBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.4", 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 });
|
|
149
|
+
_MatMenuContentBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.4", type: _MatMenuContentBase, ngImport: i0 });
|
|
150
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: _MatMenuContentBase, decorators: [{
|
|
151
151
|
type: Directive
|
|
152
152
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ComponentFactoryResolver }, { type: i0.ApplicationRef }, { type: i0.Injector }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
|
|
153
153
|
type: Inject,
|
|
@@ -158,9 +158,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
|
|
|
158
158
|
*/
|
|
159
159
|
class MatMenuContent extends _MatMenuContentBase {
|
|
160
160
|
}
|
|
161
|
-
MatMenuContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
162
|
-
MatMenuContent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "
|
|
163
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
161
|
+
MatMenuContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatMenuContent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
162
|
+
MatMenuContent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.4", type: MatMenuContent, selector: "ng-template[matMenuContent]", providers: [{ provide: MAT_MENU_CONTENT, useExisting: MatMenuContent }], usesInheritance: true, ngImport: i0 });
|
|
163
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatMenuContent, decorators: [{
|
|
164
164
|
type: Directive,
|
|
165
165
|
args: [{
|
|
166
166
|
selector: 'ng-template[matMenuContent]',
|
|
@@ -175,17 +175,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
|
|
|
175
175
|
* Use of this source code is governed by an MIT-style license that can be
|
|
176
176
|
* found in the LICENSE file at https://angular.io/license
|
|
177
177
|
*/
|
|
178
|
-
/**
|
|
179
|
-
* Throws an exception for the case when menu trigger doesn't have a valid mat-menu instance
|
|
180
|
-
* @docs-private
|
|
181
|
-
*/
|
|
182
|
-
function throwMatMenuMissingError() {
|
|
183
|
-
throw Error(`matMenuTriggerFor: must pass in an mat-menu instance.
|
|
184
|
-
|
|
185
|
-
Example:
|
|
186
|
-
<mat-menu #menu="matMenu"></mat-menu>
|
|
187
|
-
<button [matMenuTriggerFor]="menu"></button>`);
|
|
188
|
-
}
|
|
189
178
|
/**
|
|
190
179
|
* Throws an exception for the case when menu's x-position value isn't valid.
|
|
191
180
|
* In other words, it doesn't match 'before' or 'after'.
|
|
@@ -245,6 +234,7 @@ class MatMenuItem extends _MatMenuItemBase {
|
|
|
245
234
|
constructor(_elementRef, _document, _focusMonitor, _parentMenu, _changeDetectorRef) {
|
|
246
235
|
super();
|
|
247
236
|
this._elementRef = _elementRef;
|
|
237
|
+
this._document = _document;
|
|
248
238
|
this._focusMonitor = _focusMonitor;
|
|
249
239
|
this._parentMenu = _parentMenu;
|
|
250
240
|
this._changeDetectorRef = _changeDetectorRef;
|
|
@@ -325,10 +315,13 @@ class MatMenuItem extends _MatMenuItemBase {
|
|
|
325
315
|
this._highlighted = isHighlighted;
|
|
326
316
|
this._changeDetectorRef?.markForCheck();
|
|
327
317
|
}
|
|
318
|
+
_hasFocus() {
|
|
319
|
+
return this._document && this._document.activeElement === this._getHostElement();
|
|
320
|
+
}
|
|
328
321
|
}
|
|
329
|
-
MatMenuItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
330
|
-
MatMenuItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
331
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
322
|
+
MatMenuItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.4", 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 });
|
|
323
|
+
MatMenuItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "14.0.0-next.4", 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 });
|
|
324
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatMenuItem, decorators: [{
|
|
332
325
|
type: Component,
|
|
333
326
|
args: [{ selector: '[mat-menu-item]', exportAs: 'matMenuItem', inputs: ['disabled', 'disableRipple'], host: {
|
|
334
327
|
'[attr.role]': 'role',
|
|
@@ -501,6 +494,22 @@ class _MatMenuBase {
|
|
|
501
494
|
this._directDescendantItems.changes
|
|
502
495
|
.pipe(startWith(this._directDescendantItems), switchMap(items => merge(...items.map((item) => item._focused))))
|
|
503
496
|
.subscribe(focusedItem => this._keyManager.updateActiveItem(focusedItem));
|
|
497
|
+
this._directDescendantItems.changes.subscribe((itemsList) => {
|
|
498
|
+
// Move focus to another item, if the active item is removed from the list.
|
|
499
|
+
// We need to debounce the callback, because multiple items might be removed
|
|
500
|
+
// in quick succession.
|
|
501
|
+
const manager = this._keyManager;
|
|
502
|
+
if (this._panelAnimationState === 'enter' && manager.activeItem?._hasFocus()) {
|
|
503
|
+
const items = itemsList.toArray();
|
|
504
|
+
const index = Math.max(0, Math.min(items.length - 1, manager.activeItemIndex || 0));
|
|
505
|
+
if (items[index] && !items[index].disabled) {
|
|
506
|
+
manager.setActiveItem(index);
|
|
507
|
+
}
|
|
508
|
+
else {
|
|
509
|
+
manager.setNextItemActive();
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
});
|
|
504
513
|
}
|
|
505
514
|
ngOnDestroy() {
|
|
506
515
|
this._directDescendantItems.destroy();
|
|
@@ -684,9 +693,9 @@ class _MatMenuBase {
|
|
|
684
693
|
});
|
|
685
694
|
}
|
|
686
695
|
}
|
|
687
|
-
_MatMenuBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
688
|
-
_MatMenuBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "
|
|
689
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
696
|
+
_MatMenuBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: _MatMenuBase, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: MAT_MENU_DEFAULT_OPTIONS }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
697
|
+
_MatMenuBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.4", 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 });
|
|
698
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: _MatMenuBase, decorators: [{
|
|
690
699
|
type: Directive
|
|
691
700
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: undefined, decorators: [{
|
|
692
701
|
type: Inject,
|
|
@@ -740,15 +749,15 @@ class MatMenu extends _MatMenuBase {
|
|
|
740
749
|
this._baseElevation = 4;
|
|
741
750
|
}
|
|
742
751
|
}
|
|
743
|
-
MatMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
744
|
-
MatMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
745
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
752
|
+
MatMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatMenu, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: MAT_MENU_DEFAULT_OPTIONS }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
753
|
+
MatMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "14.0.0-next.4", 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;-moz-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;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]{pointer-events:none}.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}\n"], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [matMenuAnimations.transformMenu, matMenuAnimations.fadeInItems], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
754
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatMenu, decorators: [{
|
|
746
755
|
type: Component,
|
|
747
756
|
args: [{ selector: 'mat-menu', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, exportAs: 'matMenu', host: {
|
|
748
757
|
'[attr.aria-label]': 'null',
|
|
749
758
|
'[attr.aria-labelledby]': 'null',
|
|
750
759
|
'[attr.aria-describedby]': 'null',
|
|
751
|
-
}, 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;-moz-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;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]{pointer-events:none}.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}\n"] }]
|
|
760
|
+
}, 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;-moz-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:transparent;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]{pointer-events:none}.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}\n"] }]
|
|
752
761
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: undefined, decorators: [{
|
|
753
762
|
type: Inject,
|
|
754
763
|
args: [MAT_MENU_DEFAULT_OPTIONS]
|
|
@@ -773,7 +782,11 @@ const MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER = {
|
|
|
773
782
|
deps: [Overlay],
|
|
774
783
|
useFactory: MAT_MENU_SCROLL_STRATEGY_FACTORY,
|
|
775
784
|
};
|
|
776
|
-
/**
|
|
785
|
+
/**
|
|
786
|
+
* Default top padding of the menu panel.
|
|
787
|
+
* @deprecated No longer being used. Will be removed.
|
|
788
|
+
* @breaking-change 15.0.0
|
|
789
|
+
*/
|
|
777
790
|
const MENU_PANEL_TOP_PADDING = 8;
|
|
778
791
|
/** Options for binding a passive event listener. */
|
|
779
792
|
const passiveEventListenerOptions = normalizePassiveListenerOptions({ passive: true });
|
|
@@ -872,7 +885,6 @@ class _MatMenuTriggerBase {
|
|
|
872
885
|
}
|
|
873
886
|
}
|
|
874
887
|
ngAfterContentInit() {
|
|
875
|
-
this._checkMenu();
|
|
876
888
|
this._handleHover();
|
|
877
889
|
}
|
|
878
890
|
ngOnDestroy() {
|
|
@@ -903,25 +915,25 @@ class _MatMenuTriggerBase {
|
|
|
903
915
|
}
|
|
904
916
|
/** Opens the menu. */
|
|
905
917
|
openMenu() {
|
|
906
|
-
|
|
918
|
+
const menu = this.menu;
|
|
919
|
+
if (this._menuOpen || !menu) {
|
|
907
920
|
return;
|
|
908
921
|
}
|
|
909
|
-
this.
|
|
910
|
-
const overlayRef = this._createOverlay();
|
|
922
|
+
const overlayRef = this._createOverlay(menu);
|
|
911
923
|
const overlayConfig = overlayRef.getConfig();
|
|
912
924
|
const positionStrategy = overlayConfig.positionStrategy;
|
|
913
|
-
this._setPosition(positionStrategy);
|
|
925
|
+
this._setPosition(menu, positionStrategy);
|
|
914
926
|
overlayConfig.hasBackdrop =
|
|
915
|
-
|
|
916
|
-
overlayRef.attach(this._getPortal());
|
|
917
|
-
if (
|
|
918
|
-
|
|
927
|
+
menu.hasBackdrop == null ? !this.triggersSubmenu() : menu.hasBackdrop;
|
|
928
|
+
overlayRef.attach(this._getPortal(menu));
|
|
929
|
+
if (menu.lazyContent) {
|
|
930
|
+
menu.lazyContent.attach(this.menuData);
|
|
919
931
|
}
|
|
920
932
|
this._closingActionsSubscription = this._menuClosingActions().subscribe(() => this.closeMenu());
|
|
921
|
-
this._initMenu();
|
|
922
|
-
if (
|
|
923
|
-
|
|
924
|
-
|
|
933
|
+
this._initMenu(menu);
|
|
934
|
+
if (menu instanceof _MatMenuBase) {
|
|
935
|
+
menu._startAnimation();
|
|
936
|
+
menu._directDescendantItems.changes.pipe(takeUntil(menu.close)).subscribe(() => {
|
|
925
937
|
// Re-adjust the position without locking when the amount of items
|
|
926
938
|
// changes so that the overlay is allowed to pick a new optimal position.
|
|
927
939
|
positionStrategy.withLockedPosition(false).reapplyLastPosition();
|
|
@@ -931,7 +943,7 @@ class _MatMenuTriggerBase {
|
|
|
931
943
|
}
|
|
932
944
|
/** Closes the menu. */
|
|
933
945
|
closeMenu() {
|
|
934
|
-
this.menu
|
|
946
|
+
this.menu?.close.emit();
|
|
935
947
|
}
|
|
936
948
|
/**
|
|
937
949
|
* Focuses the menu trigger.
|
|
@@ -987,32 +999,30 @@ class _MatMenuTriggerBase {
|
|
|
987
999
|
}
|
|
988
1000
|
else {
|
|
989
1001
|
this._setIsMenuOpen(false);
|
|
990
|
-
|
|
991
|
-
menu.lazyContent.detach();
|
|
992
|
-
}
|
|
1002
|
+
menu?.lazyContent?.detach();
|
|
993
1003
|
}
|
|
994
1004
|
}
|
|
995
1005
|
/**
|
|
996
1006
|
* This method sets the menu state to open and focuses the first item if
|
|
997
1007
|
* the menu was opened via the keyboard.
|
|
998
1008
|
*/
|
|
999
|
-
_initMenu() {
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
this._setMenuElevation();
|
|
1003
|
-
|
|
1009
|
+
_initMenu(menu) {
|
|
1010
|
+
menu.parentMenu = this.triggersSubmenu() ? this._parentMaterialMenu : undefined;
|
|
1011
|
+
menu.direction = this.dir;
|
|
1012
|
+
this._setMenuElevation(menu);
|
|
1013
|
+
menu.focusFirstItem(this._openedBy || 'program');
|
|
1004
1014
|
this._setIsMenuOpen(true);
|
|
1005
1015
|
}
|
|
1006
1016
|
/** Updates the menu elevation based on the amount of parent menus that it has. */
|
|
1007
|
-
_setMenuElevation() {
|
|
1008
|
-
if (
|
|
1017
|
+
_setMenuElevation(menu) {
|
|
1018
|
+
if (menu.setElevation) {
|
|
1009
1019
|
let depth = 0;
|
|
1010
|
-
let parentMenu =
|
|
1020
|
+
let parentMenu = menu.parentMenu;
|
|
1011
1021
|
while (parentMenu) {
|
|
1012
1022
|
depth++;
|
|
1013
1023
|
parentMenu = parentMenu.parentMenu;
|
|
1014
1024
|
}
|
|
1015
|
-
|
|
1025
|
+
menu.setElevation(depth);
|
|
1016
1026
|
}
|
|
1017
1027
|
}
|
|
1018
1028
|
// set state rather than toggle to support triggers sharing a menu
|
|
@@ -1023,23 +1033,14 @@ class _MatMenuTriggerBase {
|
|
|
1023
1033
|
this._menuItemInstance._setHighlighted(isOpen);
|
|
1024
1034
|
}
|
|
1025
1035
|
}
|
|
1026
|
-
/**
|
|
1027
|
-
* This method checks that a valid instance of MatMenu has been passed into
|
|
1028
|
-
* matMenuTriggerFor. If not, an exception is thrown.
|
|
1029
|
-
*/
|
|
1030
|
-
_checkMenu() {
|
|
1031
|
-
if (!this.menu && (typeof ngDevMode === 'undefined' || ngDevMode)) {
|
|
1032
|
-
throwMatMenuMissingError();
|
|
1033
|
-
}
|
|
1034
|
-
}
|
|
1035
1036
|
/**
|
|
1036
1037
|
* This method creates the overlay from the provided menu's template and saves its
|
|
1037
1038
|
* OverlayRef so that it can be attached to the DOM when openMenu is called.
|
|
1038
1039
|
*/
|
|
1039
|
-
_createOverlay() {
|
|
1040
|
+
_createOverlay(menu) {
|
|
1040
1041
|
if (!this._overlayRef) {
|
|
1041
|
-
const config = this._getOverlayConfig();
|
|
1042
|
-
this._subscribeToPositions(config.positionStrategy);
|
|
1042
|
+
const config = this._getOverlayConfig(menu);
|
|
1043
|
+
this._subscribeToPositions(menu, config.positionStrategy);
|
|
1043
1044
|
this._overlayRef = this._overlay.create(config);
|
|
1044
1045
|
// Consume the `keydownEvents` in order to prevent them from going to another overlay.
|
|
1045
1046
|
// Ideally we'd also have our keyboard event logic in here, however doing so will
|
|
@@ -1052,7 +1053,7 @@ class _MatMenuTriggerBase {
|
|
|
1052
1053
|
* This method builds the configuration object needed to create the overlay, the OverlayState.
|
|
1053
1054
|
* @returns OverlayConfig
|
|
1054
1055
|
*/
|
|
1055
|
-
_getOverlayConfig() {
|
|
1056
|
+
_getOverlayConfig(menu) {
|
|
1056
1057
|
return new OverlayConfig({
|
|
1057
1058
|
positionStrategy: this._overlay
|
|
1058
1059
|
.position()
|
|
@@ -1060,8 +1061,8 @@ class _MatMenuTriggerBase {
|
|
|
1060
1061
|
.withLockedPosition()
|
|
1061
1062
|
.withGrowAfterOpen()
|
|
1062
1063
|
.withTransformOriginOn('.mat-menu-panel, .mat-mdc-menu-panel'),
|
|
1063
|
-
backdropClass:
|
|
1064
|
-
panelClass:
|
|
1064
|
+
backdropClass: menu.backdropClass || 'cdk-overlay-transparent-backdrop',
|
|
1065
|
+
panelClass: menu.overlayPanelClass,
|
|
1065
1066
|
scrollStrategy: this._scrollStrategy(),
|
|
1066
1067
|
direction: this._dir,
|
|
1067
1068
|
});
|
|
@@ -1071,8 +1072,8 @@ class _MatMenuTriggerBase {
|
|
|
1071
1072
|
* on the menu based on the new position. This ensures the animation origin is always
|
|
1072
1073
|
* correct, even if a fallback position is used for the overlay.
|
|
1073
1074
|
*/
|
|
1074
|
-
_subscribeToPositions(position) {
|
|
1075
|
-
if (
|
|
1075
|
+
_subscribeToPositions(menu, position) {
|
|
1076
|
+
if (menu.setPositionClasses) {
|
|
1076
1077
|
position.positionChanges.subscribe(change => {
|
|
1077
1078
|
const posX = change.connectionPair.overlayX === 'start' ? 'after' : 'before';
|
|
1078
1079
|
const posY = change.connectionPair.overlayY === 'top' ? 'below' : 'above';
|
|
@@ -1080,10 +1081,10 @@ class _MatMenuTriggerBase {
|
|
|
1080
1081
|
// `positionChanges` fires outside of the `ngZone` and `setPositionClasses` might be
|
|
1081
1082
|
// updating something in the view so we need to bring it back in.
|
|
1082
1083
|
if (this._ngZone) {
|
|
1083
|
-
this._ngZone.run(() =>
|
|
1084
|
+
this._ngZone.run(() => menu.setPositionClasses(posX, posY));
|
|
1084
1085
|
}
|
|
1085
1086
|
else {
|
|
1086
|
-
|
|
1087
|
+
menu.setPositionClasses(posX, posY);
|
|
1087
1088
|
}
|
|
1088
1089
|
});
|
|
1089
1090
|
}
|
|
@@ -1093,20 +1094,26 @@ class _MatMenuTriggerBase {
|
|
|
1093
1094
|
* so the overlay connects with the trigger correctly.
|
|
1094
1095
|
* @param positionStrategy Strategy whose position to update.
|
|
1095
1096
|
*/
|
|
1096
|
-
_setPosition(positionStrategy) {
|
|
1097
|
-
let [originX, originFallbackX] =
|
|
1098
|
-
let [overlayY, overlayFallbackY] =
|
|
1097
|
+
_setPosition(menu, positionStrategy) {
|
|
1098
|
+
let [originX, originFallbackX] = menu.xPosition === 'before' ? ['end', 'start'] : ['start', 'end'];
|
|
1099
|
+
let [overlayY, overlayFallbackY] = menu.yPosition === 'above' ? ['bottom', 'top'] : ['top', 'bottom'];
|
|
1099
1100
|
let [originY, originFallbackY] = [overlayY, overlayFallbackY];
|
|
1100
1101
|
let [overlayX, overlayFallbackX] = [originX, originFallbackX];
|
|
1101
1102
|
let offsetY = 0;
|
|
1102
1103
|
if (this.triggersSubmenu()) {
|
|
1103
1104
|
// When the menu is a sub-menu, it should always align itself
|
|
1104
1105
|
// to the edges of the trigger, instead of overlapping it.
|
|
1105
|
-
overlayFallbackX = originX =
|
|
1106
|
+
overlayFallbackX = originX = menu.xPosition === 'before' ? 'start' : 'end';
|
|
1106
1107
|
originFallbackX = overlayX = originX === 'end' ? 'start' : 'end';
|
|
1107
|
-
|
|
1108
|
+
if (this._parentMaterialMenu) {
|
|
1109
|
+
if (this._parentInnerPadding == null) {
|
|
1110
|
+
const firstItem = this._parentMaterialMenu.items.first;
|
|
1111
|
+
this._parentInnerPadding = firstItem ? firstItem._getHostElement().offsetTop : 0;
|
|
1112
|
+
}
|
|
1113
|
+
offsetY = overlayY === 'bottom' ? this._parentInnerPadding : -this._parentInnerPadding;
|
|
1114
|
+
}
|
|
1108
1115
|
}
|
|
1109
|
-
else if (!
|
|
1116
|
+
else if (!menu.overlapTrigger) {
|
|
1110
1117
|
originY = overlayY === 'top' ? 'bottom' : 'top';
|
|
1111
1118
|
originFallbackY = overlayFallbackY === 'top' ? 'bottom' : 'top';
|
|
1112
1119
|
}
|
|
@@ -1208,23 +1215,23 @@ class _MatMenuTriggerBase {
|
|
|
1208
1215
|
});
|
|
1209
1216
|
}
|
|
1210
1217
|
/** Gets the portal that should be attached to the overlay. */
|
|
1211
|
-
_getPortal() {
|
|
1218
|
+
_getPortal(menu) {
|
|
1212
1219
|
// Note that we can avoid this check by keeping the portal on the menu panel.
|
|
1213
1220
|
// While it would be cleaner, we'd have to introduce another required method on
|
|
1214
1221
|
// `MatMenuPanel`, making it harder to consume.
|
|
1215
|
-
if (!this._portal || this._portal.templateRef !==
|
|
1216
|
-
this._portal = new TemplatePortal(
|
|
1222
|
+
if (!this._portal || this._portal.templateRef !== menu.templateRef) {
|
|
1223
|
+
this._portal = new TemplatePortal(menu.templateRef, this._viewContainerRef);
|
|
1217
1224
|
}
|
|
1218
1225
|
return this._portal;
|
|
1219
1226
|
}
|
|
1220
1227
|
}
|
|
1221
|
-
_MatMenuTriggerBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1222
|
-
_MatMenuTriggerBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "
|
|
1223
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1228
|
+
_MatMenuTriggerBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.4", 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 });
|
|
1229
|
+
_MatMenuTriggerBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.4", 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 });
|
|
1230
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: _MatMenuTriggerBase, decorators: [{
|
|
1224
1231
|
type: Directive,
|
|
1225
1232
|
args: [{
|
|
1226
1233
|
host: {
|
|
1227
|
-
'aria-haspopup': '
|
|
1234
|
+
'[attr.aria-haspopup]': 'menu ? "menu" : null',
|
|
1228
1235
|
'[attr.aria-expanded]': 'menuOpen || null',
|
|
1229
1236
|
'[attr.aria-controls]': 'menuOpen ? menu.panelId : null',
|
|
1230
1237
|
'(click)': '_handleClick($event)',
|
|
@@ -1270,9 +1277,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
|
|
|
1270
1277
|
/** Directive applied to an element that should trigger a `mat-menu`. */
|
|
1271
1278
|
class MatMenuTrigger extends _MatMenuTriggerBase {
|
|
1272
1279
|
}
|
|
1273
|
-
MatMenuTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1274
|
-
MatMenuTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "
|
|
1275
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1280
|
+
MatMenuTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatMenuTrigger, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
1281
|
+
MatMenuTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.4", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", host: { classAttribute: "mat-menu-trigger" }, exportAs: ["matMenuTrigger"], usesInheritance: true, ngImport: i0 });
|
|
1282
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatMenuTrigger, decorators: [{
|
|
1276
1283
|
type: Directive,
|
|
1277
1284
|
args: [{
|
|
1278
1285
|
selector: `[mat-menu-trigger-for], [matMenuTriggerFor]`,
|
|
@@ -1292,16 +1299,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
|
|
|
1292
1299
|
*/
|
|
1293
1300
|
class MatMenuModule {
|
|
1294
1301
|
}
|
|
1295
|
-
MatMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1296
|
-
MatMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
|
|
1302
|
+
MatMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1303
|
+
MatMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatMenuModule, declarations: [MatMenu, MatMenuItem, MatMenuTrigger, MatMenuContent], imports: [CommonModule, MatCommonModule, MatRippleModule, OverlayModule], exports: [CdkScrollableModule,
|
|
1297
1304
|
MatCommonModule,
|
|
1298
1305
|
MatMenu,
|
|
1299
1306
|
MatMenuItem,
|
|
1300
1307
|
MatMenuTrigger,
|
|
1301
1308
|
MatMenuContent] });
|
|
1302
|
-
MatMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
1309
|
+
MatMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatMenuModule, providers: [MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER], imports: [[CommonModule, MatCommonModule, MatRippleModule, OverlayModule], CdkScrollableModule,
|
|
1303
1310
|
MatCommonModule] });
|
|
1304
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1311
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.4", ngImport: i0, type: MatMenuModule, decorators: [{
|
|
1305
1312
|
type: NgModule,
|
|
1306
1313
|
args: [{
|
|
1307
1314
|
imports: [CommonModule, MatCommonModule, MatRippleModule, OverlayModule],
|