Skip to content

Commit 1659004

Browse files
crisbetojosephperrott
authored andcommitted
fix(overlay): CdkConnectedOverlay ignoring offset from position config (#10451)
1 parent 0b8240c commit 1659004

File tree

2 files changed

+32
-6
lines changed

2 files changed

+32
-6
lines changed

src/cdk/overlay/overlay-directives.spec.ts

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,32 @@ describe('Overlay directives', () => {
333333
expect(Math.floor(triggerRect.bottom)).toBe(Math.floor(overlayRect.top));
334334
});
335335

336+
it('should take the offset from the position', () => {
337+
const trigger = fixture.nativeElement.querySelector('#trigger');
338+
339+
trigger.style.position = 'fixed';
340+
trigger.style.top = '200px';
341+
trigger.style.left = '200px';
342+
343+
fixture.componentInstance.positionOverrides = [{
344+
originX: 'start',
345+
originY: 'top',
346+
overlayX: 'start',
347+
overlayY: 'top',
348+
offsetX: 20,
349+
offsetY: 10
350+
}];
351+
352+
fixture.componentInstance.isOpen = true;
353+
fixture.detectChanges();
354+
355+
const triggerRect = trigger.getBoundingClientRect();
356+
const overlayRect = getPaneElement().getBoundingClientRect();
357+
358+
expect(Math.floor(overlayRect.top)).toBe(Math.floor(triggerRect.top) + 10);
359+
expect(Math.floor(overlayRect.left)).toBe(Math.floor(triggerRect.left) + 20);
360+
});
361+
336362
});
337363

338364
describe('outputs', () => {
@@ -418,8 +444,8 @@ class ConnectedOverlayDirectiveTest {
418444
height: number | string;
419445
minWidth: number | string;
420446
minHeight: number | string;
421-
offsetX = 0;
422-
offsetY = 0;
447+
offsetX: number;
448+
offsetY: number;
423449
triggerOverride: CdkOverlayOrigin;
424450
hasBackdrop: boolean;
425451
backdropClickHandler = jasmine.createSpy('backdropClick handler');

src/cdk/overlay/overlay-directives.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,8 @@ export class CdkConnectedOverlay implements OnDestroy, OnChanges {
115115
private _hasBackdrop = false;
116116
private _lockPosition = false;
117117
private _backdropSubscription = Subscription.EMPTY;
118-
private _offsetX: number = 0;
119-
private _offsetY: number = 0;
118+
private _offsetX: number;
119+
private _offsetY: number;
120120
private _position: FlexibleConnectedPositionStrategy;
121121

122122
/** Origin for the connected overlay. */
@@ -311,8 +311,8 @@ export class CdkConnectedOverlay implements OnDestroy, OnChanges {
311311
originY: pos.originY,
312312
overlayX: pos.overlayX,
313313
overlayY: pos.overlayY,
314-
offsetX: this.offsetX,
315-
offsetY: this.offsetY
314+
offsetX: pos.offsetX || this.offsetX,
315+
offsetY: pos.offsetY || this.offsetY
316316
}));
317317

318318
positionStrategy.withPositions(positions);

0 commit comments

Comments
 (0)