Skip to content

Commit f34b490

Browse files
committedJan 17, 2025
fix(popover): fix position classList (#394)
1 parent d02321f commit f34b490

File tree

1 file changed

+19
-12
lines changed

1 file changed

+19
-12
lines changed
 

‎projects/extensions/popover/popover.ts

+19-12
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { Direction } from '@angular/cdk/bidi';
44
import { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';
55
import {
66
ChangeDetectionStrategy,
7+
ChangeDetectorRef,
78
Component,
89
ContentChild,
910
ElementRef,
@@ -60,6 +61,7 @@ let popoverPanelUid = 0;
6061
imports: [CdkTrapFocus],
6162
})
6263
export class MtxPopover implements MtxPopoverPanel, OnInit, OnDestroy {
64+
private _changeDetectorRef = inject(ChangeDetectorRef);
6365
private _elementRef = inject(ElementRef);
6466
private _unusedNgZone = inject(NgZone);
6567
private _defaultOptions = inject<MtxPopoverDefaultOptions>(MTX_POPOVER_DEFAULT_OPTIONS);
@@ -312,18 +314,23 @@ export class MtxPopover implements MtxPopoverPanel, OnInit, OnDestroy {
312314
* folds out from the correct direction.
313315
*/
314316
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();
327334
}
328335

329336
/** Sets the popover-panel's elevation. */

0 commit comments

Comments
 (0)
Please sign in to comment.