Skip to content

Commit 488d556

Browse files
kostia-levjoejordanbrown
authored andcommitted
fix(popover): arrow orientation on first popover opening fix (#45)
#28
1 parent 6ee3979 commit 488d556

File tree

3 files changed

+10
-6
lines changed

3 files changed

+10
-6
lines changed

projects/material-extended/mde/src/lib/popover/popover-interfaces.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ElementRef, EventEmitter, TemplateRef } from '@angular/core';
1+
import { ElementRef, EventEmitter, NgZone, TemplateRef } from '@angular/core';
22
import { MdePopoverPositionX, MdePopoverPositionY, MdePopoverTriggerEvent } from './popover-types';
33

44
export interface MdePopoverPanel {
@@ -19,6 +19,7 @@ export interface MdePopoverPanel {
1919
setCurrentStyles: () => void;
2020
templateRef: TemplateRef<any>;
2121
close: EventEmitter<void>;
22+
zone: NgZone;
2223
setPositionClasses: (x: MdePopoverPositionX, y: MdePopoverPositionY) => void;
2324
_emitCloseEvent: () => void;
2425
}

projects/material-extended/mde/src/lib/popover/popover-trigger.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -380,11 +380,13 @@ export class MdePopoverTrigger implements AfterViewInit, OnDestroy { // tslint:d
380380
posisionY = posisionY === 'below' ? 'above' : 'below';
381381
}
382382

383-
this.popover.positionX = posisionX;
384-
this.popover.positionY = posisionY;
385-
this.popover.setCurrentStyles();
383+
this.popover.zone.run(() => {
384+
this.popover.positionX = posisionX;
385+
this.popover.positionY = posisionY;
386+
this.popover.setCurrentStyles();
386387

387-
this.popover.setPositionClasses(posisionX, posisionY);
388+
this.popover.setPositionClasses(posisionX, posisionY);
389+
});
388390
});
389391
}
390392

projects/material-extended/mde/src/lib/popover/popover.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {
1010
ElementRef,
1111
ChangeDetectionStrategy,
1212
HostBinding,
13+
NgZone
1314
} from '@angular/core';
1415

1516
import { ESCAPE } from '@angular/cdk/keycodes';
@@ -195,7 +196,7 @@ export class MdePopover implements MdePopoverPanel, OnDestroy { // tslint:disabl
195196

196197
@ViewChild(TemplateRef) templateRef: TemplateRef<any>;
197198

198-
constructor(private _elementRef: ElementRef) {
199+
constructor(private _elementRef: ElementRef, public zone: NgZone) {
199200
this.setPositionClasses();
200201
}
201202

0 commit comments

Comments
 (0)