@@ -4,6 +4,7 @@ import { Direction } from '@angular/cdk/bidi';
4
4
import { ESCAPE , hasModifierKey } from '@angular/cdk/keycodes' ;
5
5
import {
6
6
ChangeDetectionStrategy ,
7
+ ChangeDetectorRef ,
7
8
Component ,
8
9
ContentChild ,
9
10
ElementRef ,
@@ -60,6 +61,7 @@ let popoverPanelUid = 0;
60
61
imports : [ CdkTrapFocus ] ,
61
62
} )
62
63
export class MtxPopover implements MtxPopoverPanel , OnInit , OnDestroy {
64
+ private _changeDetectorRef = inject ( ChangeDetectorRef ) ;
63
65
private _elementRef = inject ( ElementRef ) ;
64
66
private _unusedNgZone = inject ( NgZone ) ;
65
67
private _defaultOptions = inject < MtxPopoverDefaultOptions > ( MTX_POPOVER_DEFAULT_OPTIONS ) ;
@@ -312,18 +314,23 @@ export class MtxPopover implements MtxPopoverPanel, OnInit, OnDestroy {
312
314
* folds out from the correct direction.
313
315
*/
314
316
setPositionClasses ( pos = this . position ) : void {
315
- this . _classList [ 'mtx-popover-before-above' ] = pos [ 0 ] === 'before' && pos [ 1 ] === 'above' ;
316
- this . _classList [ 'mtx-popover-before-center' ] = pos [ 0 ] === 'before' && pos [ 1 ] === 'center' ;
317
- this . _classList [ 'mtx-popover-before-below' ] = pos [ 0 ] === 'before' && pos [ 1 ] === 'below' ;
318
- this . _classList [ 'mtx-popover-after-above' ] = pos [ 0 ] === 'after' && pos [ 1 ] === 'above' ;
319
- this . _classList [ 'mtx-popover-after-center' ] = pos [ 0 ] === 'after' && pos [ 1 ] === 'center' ;
320
- this . _classList [ 'mtx-popover-after-below' ] = pos [ 0 ] === 'after' && pos [ 1 ] === 'below' ;
321
- this . _classList [ 'mtx-popover-above-before' ] = pos [ 0 ] === 'above' && pos [ 1 ] === 'before' ;
322
- this . _classList [ 'mtx-popover-above-center' ] = pos [ 0 ] === 'above' && pos [ 1 ] === 'center' ;
323
- this . _classList [ 'mtx-popover-above-after' ] = pos [ 0 ] === 'above' && pos [ 1 ] === 'after' ;
324
- this . _classList [ 'mtx-popover-below-before' ] = pos [ 0 ] === 'below' && pos [ 1 ] === 'before' ;
325
- this . _classList [ 'mtx-popover-below-center' ] = pos [ 0 ] === 'below' && pos [ 1 ] === 'center' ;
326
- this . _classList [ 'mtx-popover-below-after' ] = pos [ 0 ] === 'below' && pos [ 1 ] === 'after' ;
317
+ this . _classList = {
318
+ ...this . _classList ,
319
+ [ 'mtx-popover-before-above' ] : pos [ 0 ] === 'before' && pos [ 1 ] === 'above' ,
320
+ [ 'mtx-popover-before-center' ] : pos [ 0 ] === 'before' && pos [ 1 ] === 'center' ,
321
+ [ 'mtx-popover-before-below' ] : pos [ 0 ] === 'before' && pos [ 1 ] === 'below' ,
322
+ [ 'mtx-popover-after-above' ] : pos [ 0 ] === 'after' && pos [ 1 ] === 'above' ,
323
+ [ 'mtx-popover-after-center' ] : pos [ 0 ] === 'after' && pos [ 1 ] === 'center' ,
324
+ [ 'mtx-popover-after-below' ] : pos [ 0 ] === 'after' && pos [ 1 ] === 'below' ,
325
+ [ 'mtx-popover-above-before' ] : pos [ 0 ] === 'above' && pos [ 1 ] === 'before' ,
326
+ [ 'mtx-popover-above-center' ] : pos [ 0 ] === 'above' && pos [ 1 ] === 'center' ,
327
+ [ 'mtx-popover-above-after' ] : pos [ 0 ] === 'above' && pos [ 1 ] === 'after' ,
328
+ [ 'mtx-popover-below-before' ] : pos [ 0 ] === 'below' && pos [ 1 ] === 'before' ,
329
+ [ 'mtx-popover-below-center' ] : pos [ 0 ] === 'below' && pos [ 1 ] === 'center' ,
330
+ [ 'mtx-popover-below-after' ] : pos [ 0 ] === 'below' && pos [ 1 ] === 'after' ,
331
+ } ;
332
+
333
+ this . _changeDetectorRef . markForCheck ( ) ;
327
334
}
328
335
329
336
/** Sets the popover-panel's elevation. */
0 commit comments