@@ -44,7 +44,7 @@ import {
4444 DOCUMENT ,
4545 signal ,
4646} from '@angular/core' ;
47- import { fromEvent , merge , Observable , Subject } from 'rxjs' ;
47+ import { merge , Observable , Subject } from 'rxjs' ;
4848import { debounceTime , filter , map , mapTo , startWith , take , takeUntil } from 'rxjs/operators' ;
4949import { _animationsDisabled } from '../core' ;
5050
@@ -350,27 +350,23 @@ export class MatDrawer implements AfterViewInit, OnDestroy {
350350 * time a key is pressed. Instead we re-enter the zone only if the `ESC` key is pressed
351351 * and we don't have close disabled.
352352 */
353- this . _ngZone . runOutsideAngular ( ( ) => {
353+ this . _eventCleanups = this . _ngZone . runOutsideAngular ( ( ) => {
354+ const renderer = this . _renderer ;
354355 const element = this . _elementRef . nativeElement ;
355- ( fromEvent ( element , 'keydown' ) as Observable < KeyboardEvent > )
356- . pipe (
357- filter ( event => {
358- return event . keyCode === ESCAPE && ! this . disableClose && ! hasModifierKey ( event ) ;
359- } ) ,
360- takeUntil ( this . _destroyed ) ,
361- )
362- . subscribe ( event =>
363- this . _ngZone . run ( ( ) => {
364- this . close ( ) ;
365- event . stopPropagation ( ) ;
366- event . preventDefault ( ) ;
367- } ) ,
368- ) ;
369356
370- this . _eventCleanups = [
371- this . _renderer . listen ( element , 'transitionrun' , this . _handleTransitionEvent ) ,
372- this . _renderer . listen ( element , 'transitionend' , this . _handleTransitionEvent ) ,
373- this . _renderer . listen ( element , 'transitioncancel' , this . _handleTransitionEvent ) ,
357+ return [
358+ renderer . listen ( element , 'keydown' , ( event : KeyboardEvent ) => {
359+ if ( event . keyCode === ESCAPE && ! this . disableClose && ! hasModifierKey ( event ) ) {
360+ this . _ngZone . run ( ( ) => {
361+ this . close ( ) ;
362+ event . stopPropagation ( ) ;
363+ event . preventDefault ( ) ;
364+ } ) ;
365+ }
366+ } ) ,
367+ renderer . listen ( element , 'transitionrun' , this . _handleTransitionEvent ) ,
368+ renderer . listen ( element , 'transitionend' , this . _handleTransitionEvent ) ,
369+ renderer . listen ( element , 'transitioncancel' , this . _handleTransitionEvent ) ,
374370 ] ;
375371 } ) ;
376372
0 commit comments