From 13223df574a289405c5d53c6d4b19823f74aa1ac Mon Sep 17 00:00:00 2001 From: mmalerba Date: Fri, 9 Dec 2016 15:20:08 -0800 Subject: [PATCH] fix(sidenav): make `focus-trap` occupy full height of sidenav (#2145) * fix(sidenav) make `focus-trap` occupy full height of sidenav * add class to sidenav focus-trap * prefix focus-trap class --- src/demo-app/sidenav/sidenav-demo.scss | 2 +- src/demo-app/sidenav/sidenav-demo.ts | 3 ++- src/lib/core/a11y/focus-trap.html | 2 +- src/lib/sidenav/sidenav.scss | 13 ++++++++++--- src/lib/sidenav/sidenav.ts | 6 +++++- 5 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/demo-app/sidenav/sidenav-demo.scss b/src/demo-app/sidenav/sidenav-demo.scss index 47813d80273..92c7d2455db 100644 --- a/src/demo-app/sidenav/sidenav-demo.scss +++ b/src/demo-app/sidenav/sidenav-demo.scss @@ -1,7 +1,7 @@ .demo-sidenav-layout { border: 3px solid black; - md-sidenav { + .md-sidenav-focus-trap > .cdk-focus-trap-content { padding: 10px; } } diff --git a/src/demo-app/sidenav/sidenav-demo.ts b/src/demo-app/sidenav/sidenav-demo.ts index 3e653e11525..ed5b512679d 100644 --- a/src/demo-app/sidenav/sidenav-demo.ts +++ b/src/demo-app/sidenav/sidenav-demo.ts @@ -1,4 +1,4 @@ -import {Component} from '@angular/core'; +import {Component, ViewEncapsulation} from '@angular/core'; @Component({ @@ -6,6 +6,7 @@ import {Component} from '@angular/core'; selector: 'sidenav-demo', templateUrl: 'sidenav-demo.html', styleUrls: ['sidenav-demo.css'], + encapsulation: ViewEncapsulation.None, }) export class SidenavDemo { side = 'start'; diff --git a/src/lib/core/a11y/focus-trap.html b/src/lib/core/a11y/focus-trap.html index 077fc134b42..5950764b385 100644 --- a/src/lib/core/a11y/focus-trap.html +++ b/src/lib/core/a11y/focus-trap.html @@ -1,3 +1,3 @@
-
+
diff --git a/src/lib/sidenav/sidenav.scss b/src/lib/sidenav/sidenav.scss index bb0533cd473..a27fed7958f 100644 --- a/src/lib/sidenav/sidenav.scss +++ b/src/lib/sidenav/sidenav.scss @@ -109,9 +109,6 @@ md-sidenav { min-width: 5%; outline: 0; - // TODO(kara): revisit scrolling behavior for sidenavs - overflow-y: auto; - @include md-sidenav-transition(0, -100%); &.md-sidenav-side { @@ -136,6 +133,16 @@ md-sidenav { } } +.md-sidenav-focus-trap { + height: 100%; + + > .cdk-focus-trap-content { + box-sizing: border-box; + height: 100%; + overflow-y: auto; // TODO(kara): revisit scrolling behavior for sidenavs + } +} + .md-sidenav-invalid { display: none; } diff --git a/src/lib/sidenav/sidenav.ts b/src/lib/sidenav/sidenav.ts index a993045b660..d433575b487 100644 --- a/src/lib/sidenav/sidenav.ts +++ b/src/lib/sidenav/sidenav.ts @@ -46,7 +46,11 @@ export class MdSidenavToggleResult { @Component({ moduleId: module.id, selector: 'md-sidenav, mat-sidenav', - template: '', + // TODO(mmalerba): move template to separate file. + template: ` + + + `, host: { '(transitionend)': '_onTransitionEnd($event)', '(keydown)': 'handleKeydown($event)',