@@ -52,7 +52,9 @@ import {
52
52
MenuPositionX ,
53
53
MenuPositionY ,
54
54
} from './index' ;
55
- import { MAT_MENU_SCROLL_STRATEGY , MENU_PANEL_TOP_PADDING } from './menu-trigger' ;
55
+ import { MAT_MENU_SCROLL_STRATEGY } from './menu-trigger' ;
56
+
57
+ const MENU_PANEL_TOP_PADDING = 8 ;
56
58
57
59
describe ( 'MatMenu' , ( ) => {
58
60
let overlayContainerElement : HTMLElement ;
@@ -2128,7 +2130,7 @@ describe('MatMenu', () => {
2128
2130
compileTestComponent ( ) ;
2129
2131
instance . rootTriggerEl . nativeElement . style . position = 'fixed' ;
2130
2132
instance . rootTriggerEl . nativeElement . style . left = '50px' ;
2131
- instance . rootTriggerEl . nativeElement . style . top = '50px ' ;
2133
+ instance . rootTriggerEl . nativeElement . style . top = '200px ' ;
2132
2134
instance . rootTrigger . openMenu ( ) ;
2133
2135
fixture . detectChanges ( ) ;
2134
2136
tick ( 500 ) ;
@@ -2138,7 +2140,7 @@ describe('MatMenu', () => {
2138
2140
tick ( 500 ) ;
2139
2141
2140
2142
const triggerRect = overlay . querySelector ( '#level-one-trigger' ) ! . getBoundingClientRect ( ) ;
2141
- const panelRect = overlay . querySelectorAll ( '.cdk-overlay-pane ' ) [ 1 ] . getBoundingClientRect ( ) ;
2143
+ const panelRect = overlay . querySelectorAll ( '.mat-menu-panel ' ) [ 1 ] . getBoundingClientRect ( ) ;
2142
2144
2143
2145
expect ( Math . round ( triggerRect . right ) ) . toBe ( Math . round ( panelRect . left ) ) ;
2144
2146
expect ( Math . round ( triggerRect . top ) ) . toBe ( Math . round ( panelRect . top ) + MENU_PANEL_TOP_PADDING ) ;
@@ -2148,7 +2150,7 @@ describe('MatMenu', () => {
2148
2150
compileTestComponent ( ) ;
2149
2151
instance . rootTriggerEl . nativeElement . style . position = 'fixed' ;
2150
2152
instance . rootTriggerEl . nativeElement . style . right = '10px' ;
2151
- instance . rootTriggerEl . nativeElement . style . top = '50% ' ;
2153
+ instance . rootTriggerEl . nativeElement . style . top = '200px ' ;
2152
2154
instance . rootTrigger . openMenu ( ) ;
2153
2155
fixture . detectChanges ( ) ;
2154
2156
tick ( 500 ) ;
@@ -2158,7 +2160,7 @@ describe('MatMenu', () => {
2158
2160
tick ( 500 ) ;
2159
2161
2160
2162
const triggerRect = overlay . querySelector ( '#level-one-trigger' ) ! . getBoundingClientRect ( ) ;
2161
- const panelRect = overlay . querySelectorAll ( '.cdk-overlay-pane ' ) [ 1 ] . getBoundingClientRect ( ) ;
2163
+ const panelRect = overlay . querySelectorAll ( '.mat-menu-panel ' ) [ 1 ] . getBoundingClientRect ( ) ;
2162
2164
2163
2165
expect ( Math . round ( triggerRect . left ) ) . toBe ( Math . round ( panelRect . right ) ) ;
2164
2166
expect ( Math . round ( triggerRect . top ) ) . toBe ( Math . round ( panelRect . top ) + MENU_PANEL_TOP_PADDING ) ;
@@ -2168,7 +2170,7 @@ describe('MatMenu', () => {
2168
2170
compileTestComponent ( 'rtl' ) ;
2169
2171
instance . rootTriggerEl . nativeElement . style . position = 'fixed' ;
2170
2172
instance . rootTriggerEl . nativeElement . style . left = '50%' ;
2171
- instance . rootTriggerEl . nativeElement . style . top = '50% ' ;
2173
+ instance . rootTriggerEl . nativeElement . style . top = '200px ' ;
2172
2174
instance . rootTrigger . openMenu ( ) ;
2173
2175
fixture . detectChanges ( ) ;
2174
2176
tick ( 500 ) ;
@@ -2178,7 +2180,7 @@ describe('MatMenu', () => {
2178
2180
tick ( 500 ) ;
2179
2181
2180
2182
const triggerRect = overlay . querySelector ( '#level-one-trigger' ) ! . getBoundingClientRect ( ) ;
2181
- const panelRect = overlay . querySelectorAll ( '.cdk-overlay-pane ' ) [ 1 ] . getBoundingClientRect ( ) ;
2183
+ const panelRect = overlay . querySelectorAll ( '.mat-menu-panel ' ) [ 1 ] . getBoundingClientRect ( ) ;
2182
2184
2183
2185
expect ( Math . round ( triggerRect . left ) ) . toBe ( Math . round ( panelRect . right ) ) ;
2184
2186
expect ( Math . round ( triggerRect . top ) ) . toBe ( Math . round ( panelRect . top ) + MENU_PANEL_TOP_PADDING ) ;
@@ -2188,7 +2190,7 @@ describe('MatMenu', () => {
2188
2190
compileTestComponent ( 'rtl' ) ;
2189
2191
instance . rootTriggerEl . nativeElement . style . position = 'fixed' ;
2190
2192
instance . rootTriggerEl . nativeElement . style . left = '10px' ;
2191
- instance . rootTriggerEl . nativeElement . style . top = '50% ' ;
2193
+ instance . rootTriggerEl . nativeElement . style . top = '200px ' ;
2192
2194
instance . rootTrigger . openMenu ( ) ;
2193
2195
fixture . detectChanges ( ) ;
2194
2196
tick ( 500 ) ;
@@ -2198,12 +2200,32 @@ describe('MatMenu', () => {
2198
2200
tick ( 500 ) ;
2199
2201
2200
2202
const triggerRect = overlay . querySelector ( '#level-one-trigger' ) ! . getBoundingClientRect ( ) ;
2201
- const panelRect = overlay . querySelectorAll ( '.cdk-overlay-pane ' ) [ 1 ] . getBoundingClientRect ( ) ;
2203
+ const panelRect = overlay . querySelectorAll ( '.mat-menu-panel ' ) [ 1 ] . getBoundingClientRect ( ) ;
2202
2204
2203
2205
expect ( Math . round ( triggerRect . right ) ) . toBe ( Math . round ( panelRect . left ) ) ;
2204
2206
expect ( Math . round ( triggerRect . top ) ) . toBe ( Math . round ( panelRect . top ) + MENU_PANEL_TOP_PADDING ) ;
2205
2207
} ) ) ;
2206
2208
2209
+ it ( 'should account for custom padding when offsetting the sub-menu' , ( ) => {
2210
+ compileTestComponent ( ) ;
2211
+ instance . rootTriggerEl . nativeElement . style . position = 'fixed' ;
2212
+ instance . rootTriggerEl . nativeElement . style . left = '10px' ;
2213
+ instance . rootTriggerEl . nativeElement . style . top = '200px' ;
2214
+ instance . rootTrigger . openMenu ( ) ;
2215
+ fixture . detectChanges ( ) ;
2216
+
2217
+ // Change the padding to something different from the default.
2218
+ ( overlay . querySelector ( '.mat-menu-content' ) as HTMLElement ) . style . padding = '15px 0' ;
2219
+
2220
+ instance . levelOneTrigger . openMenu ( ) ;
2221
+ fixture . detectChanges ( ) ;
2222
+
2223
+ const triggerRect = overlay . querySelector ( '#level-one-trigger' ) ! . getBoundingClientRect ( ) ;
2224
+ const panelRect = overlay . querySelectorAll ( '.mat-menu-panel' ) [ 1 ] . getBoundingClientRect ( ) ;
2225
+
2226
+ expect ( Math . round ( triggerRect . top ) ) . toBe ( Math . round ( panelRect . top ) + 15 ) ;
2227
+ } ) ;
2228
+
2207
2229
it ( 'should close all of the menus when an item is clicked' , fakeAsync ( ( ) => {
2208
2230
compileTestComponent ( ) ;
2209
2231
instance . rootTriggerEl . nativeElement . click ( ) ;
0 commit comments