Skip to content

Commit 36918c3

Browse files
authored
Merge pull request #8298 from IgniteUI/mvenkov/handle_correctly_target_as_point
Check if position target is point
2 parents d93177c + 72147f7 commit 36918c3

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

projects/igniteui-angular/src/lib/services/overlay/overlay.spec.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -882,6 +882,35 @@ describe('igxOverlay', () => {
882882
expect(element.style.width).toBe('200px');
883883
expect(element.style.height).toBe('100px');
884884
});
885+
886+
it('should close overlay on outside click when target is point, #8297', fakeAsync(() => {
887+
const fix = TestBed.createComponent(EmptyPageComponent);
888+
const button = fix.componentInstance.buttonElement;
889+
const overlay = fix.componentInstance.overlay;
890+
fix.detectChanges();
891+
892+
const overlaySettings: OverlaySettings = {
893+
modal: false,
894+
closeOnOutsideClick: true,
895+
positionStrategy: new ConnectedPositioningStrategy()
896+
};
897+
898+
overlaySettings.target = new Point(10, 10);
899+
900+
overlay.show(overlay.attach(SimpleDynamicComponent), overlaySettings);
901+
tick();
902+
fix.detectChanges();
903+
904+
let overlayDiv: Element = document.getElementsByClassName(CLASS_OVERLAY_MAIN)[0];
905+
expect(overlayDiv).toBeDefined();
906+
907+
document.body.click();
908+
tick();
909+
fix.detectChanges();
910+
911+
overlayDiv = document.getElementsByClassName(CLASS_OVERLAY_MAIN)[0];
912+
expect(overlayDiv).toBeUndefined();
913+
}));
885914
});
886915

887916
describe('Unit Tests - Scroll Strategies: ', () => {

projects/igniteui-angular/src/lib/services/overlay/overlay.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -804,7 +804,7 @@ export class IgxOverlayService implements OnDestroy {
804804
return;
805805
}
806806
if (info.settings.closeOnOutsideClick) {
807-
const target = ev.target as any;
807+
const target = ev.target;
808808
const overlayElement = info.elementRef.nativeElement;
809809
// check if the click is on the overlay element or on an element from the exclusion list, and if so do not close the overlay
810810
const excludeElements = info.settings.excludeFromOutsideClick ?

0 commit comments

Comments
 (0)