From bb14fec043f4d9689617d56ab985c30a0aa65356 Mon Sep 17 00:00:00 2001 From: "Md. Enzam Hossain" Date: Wed, 17 Apr 2019 15:40:31 -0700 Subject: [PATCH] fix(overlay): add panelClass from position to the overlay CdkConnectedOverlay directive was ignoring panelClass from cdkConnectedOverlayPositions. This change adds support to add panelClass from positions to the overlay. --- src/cdk/overlay/overlay-directives.spec.ts | 17 +++++++++++++++++ src/cdk/overlay/overlay-directives.ts | 3 ++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/cdk/overlay/overlay-directives.spec.ts b/src/cdk/overlay/overlay-directives.spec.ts index 49fe0a3bd0bc..ff8d346fe473 100644 --- a/src/cdk/overlay/overlay-directives.spec.ts +++ b/src/cdk/overlay/overlay-directives.spec.ts @@ -391,6 +391,23 @@ describe('Overlay directives', () => { expect(Math.floor(overlayRect.left)).toBe(Math.floor(triggerRect.left) + 20); }); + it('should take the offset from the position', () => { + fixture.componentInstance.positionOverrides = [{ + originX: 'start', + originY: 'top', + overlayX: 'start', + overlayY: 'top', + panelClass: 'custom-class' + }]; + + fixture.componentInstance.isOpen = true; + fixture.detectChanges(); + + const panel = getPaneElement(); + expect(panel.classList).toContain('custom-class'); + expect(panel.classList).toContain('cdk-test-panel-class'); + }); + it('should be able to set the viewport margin', () => { expect(fixture.componentInstance.connectedOverlayDirective.viewportMargin).not.toBe(10); diff --git a/src/cdk/overlay/overlay-directives.ts b/src/cdk/overlay/overlay-directives.ts index 8775e66481c0..c360c50bea7c 100644 --- a/src/cdk/overlay/overlay-directives.ts +++ b/src/cdk/overlay/overlay-directives.ts @@ -326,7 +326,8 @@ export class CdkConnectedOverlay implements OnDestroy, OnChanges { overlayX: currentPosition.overlayX, overlayY: currentPosition.overlayY, offsetX: currentPosition.offsetX || this.offsetX, - offsetY: currentPosition.offsetY || this.offsetY + offsetY: currentPosition.offsetY || this.offsetY, + panelClass: currentPosition.panelClass || undefined, })); return positionStrategy