@@ -23,14 +23,14 @@ export class FocusOriginMonitor {
2323
2424 /** Register an element to receive focus classes. */
2525 registerElementForFocusClasses ( element : Element , renderer : Renderer ) {
26- renderer . listen ( element , 'focus' , ( ) => this . _onFocus ( element , renderer ) ) ;
27- renderer . listen ( element , 'blur' , ( ) => this . _onBlur ( element , renderer ) ) ;
26+ element . addEventListener ( 'focus' , ( ) => this . _onFocus ( element , renderer ) , true ) ;
27+ element . addEventListener ( 'blur' , ( ) => this . _onBlur ( element , renderer ) , true ) ;
2828 }
2929
3030 /** Focuses the element via the specified focus origin. */
3131 focusVia ( element : Node , renderer : Renderer , origin : FocusOrigin ) {
3232 this . _setOriginForCurrentEventQueue ( origin ) ;
33- renderer . invokeElementMethod ( element , ' focus' ) ;
33+ ( element as HTMLElement ) . focus ( ) ;
3434 }
3535
3636 /** Sets the origin and schedules an async function to clear it at the end of the event queue. */
@@ -41,20 +41,19 @@ export class FocusOriginMonitor {
4141
4242 /** Handles focus events on a registered element. */
4343 private _onFocus ( element : Element , renderer : Renderer ) {
44- renderer . setElementClass ( element , 'cdk-focused' , true ) ;
45- renderer . setElementClass ( element , 'cdk-keyboard-focused' , this . _origin == 'keyboard' ) ;
46- renderer . setElementClass ( element , 'cdk-mouse-focused' , this . _origin == 'mouse' ) ;
47- renderer . setElementClass ( element , 'cdk-program-focused' ,
48- ! this . _origin || this . _origin == 'program' ) ;
44+ element . classList . toggle ( 'cdk-focused' , true ) ;
45+ element . classList . toggle ( 'cdk-keyboard-focused' , this . _origin == 'keyboard' ) ;
46+ element . classList . toggle ( 'cdk-mouse-focused' , this . _origin == 'mouse' ) ;
47+ element . classList . toggle ( 'cdk-program-focused' , ! this . _origin || this . _origin == 'program' ) ;
4948 this . _origin = null ;
5049 }
5150
5251 /** Handles blur events on a registered element. */
5352 private _onBlur ( element : Element , renderer : Renderer ) {
54- renderer . setElementClass ( element , 'cdk-focused' , false ) ;
55- renderer . setElementClass ( element , 'cdk-keyboard-focused' , false ) ;
56- renderer . setElementClass ( element , 'cdk-mouse-focused' , false ) ;
57- renderer . setElementClass ( element , 'cdk-program-focused' , false ) ;
53+ element . classList . toggle ( 'cdk-focused' , false ) ;
54+ element . classList . toggle ( 'cdk-keyboard-focused' , false ) ;
55+ element . classList . toggle ( 'cdk-mouse-focused' , false ) ;
56+ element . classList . toggle ( 'cdk-program-focused' , false ) ;
5857 }
5958}
6059
0 commit comments