From c7113b44c825d1a91e683c424f5e35b610fb370b Mon Sep 17 00:00:00 2001 From: "Shlomi Assaf (shlassaf)" Date: Tue, 14 Jun 2016 21:12:12 +0300 Subject: [PATCH] fix: trap focus inside bootstrap container - fixes #113 --- .../plugins/bootstrap/modal-container.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/components/angular2-modal/plugins/bootstrap/modal-container.ts b/src/components/angular2-modal/plugins/bootstrap/modal-container.ts index 55c80e36..519153a4 100644 --- a/src/components/angular2-modal/plugins/bootstrap/modal-container.ts +++ b/src/components/angular2-modal/plugins/bootstrap/modal-container.ts @@ -5,7 +5,8 @@ import { ReflectiveInjector, ViewChild, ViewEncapsulation, - AfterViewInit + AfterViewInit, + ElementRef } from '@angular/core'; import { DialogRef, ModalCompileConfig } from '../../angular2-modal'; @@ -48,6 +49,7 @@ export class BSModalContainer implements AfterViewInit { @ViewChild('modalDialog', {read: ViewContainerRef}) private _viewContainer: ViewContainerRef; constructor(public dialog: DialogRef, + private el: ElementRef, private _compileConfig: ModalCompileConfig, private _modal: Modal, private _cr: ComponentResolver) { @@ -67,8 +69,12 @@ export class BSModalContainer implements AfterViewInit { const childInjector = Array.isArray(bindings) && bindings.length > 0 ? ReflectiveInjector.fromResolvedProviders(bindings, ctxInjector) : ctxInjector; - return this.dialog.contentRef = - vcr.createComponent(cmpFactory, vcr.length, childInjector); + + if (this.el.nativeElement) { + this.el.nativeElement.focus(); + } + + this.dialog.contentRef = vcr.createComponent(cmpFactory, vcr.length, childInjector); }); }