Skip to content

Commit c3a29d2

Browse files
committed
feat(dialog): allow setting the layout direction
Allows users to set the layout direction of a dialog.
1 parent 0e24345 commit c3a29d2

File tree

3 files changed

+15
-0
lines changed

3 files changed

+15
-0
lines changed

src/lib/dialog/dialog-config.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import {ViewContainerRef} from '@angular/core';
2+
import {LayoutDirection} from '../core';
23

34
/** Valid ARIA roles for a dialog element. */
45
export type DialogRole = 'dialog' | 'alertdialog';
@@ -48,5 +49,8 @@ export class MdDialogConfig {
4849
/** Data being injected into the child component. */
4950
data?: any = null;
5051

52+
/** Layout direction for the dialog's content. */
53+
direction?: LayoutDirection = 'ltr';
54+
5155
// TODO(jelbourn): add configuration for lifecycle hooks, ARIA labelling.
5256
}

src/lib/dialog/dialog.spec.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,16 @@ describe('MdDialog', () => {
312312
expect(overlayPane.style.width).toBe('200px');
313313
});
314314

315+
it('should allow setting the layout direction', () => {
316+
let dialogRef = dialog.open(PizzaMsg, { direction: 'rtl' });
317+
318+
viewContainerFixture.detectChanges();
319+
320+
let overlayPane = overlayContainerElement.querySelector('.cdk-overlay-pane');
321+
322+
expect(overlayPane.getAttribute('dir')).toBe('rtl');
323+
});
324+
315325
it('should close all of the dialogs', async(() => {
316326
dialog.open(PizzaMsg);
317327
dialog.open(PizzaMsg);

src/lib/dialog/dialog.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ export class MdDialog {
122122
private _getOverlayState(dialogConfig: MdDialogConfig): OverlayState {
123123
let overlayState = new OverlayState();
124124
overlayState.hasBackdrop = dialogConfig.hasBackdrop;
125+
overlayState.direction = dialogConfig.direction;
125126
overlayState.scrollStrategy = new BlockScrollStrategy(this._viewportRuler);
126127
if (dialogConfig.backdropClass) {
127128
overlayState.backdropClass = dialogConfig.backdropClass;

0 commit comments

Comments
 (0)