Skip to content

Commit

Permalink
feat(modal): focus is now trapped inside any opened modal
Browse files Browse the repository at this point in the history
Closes #642
Closes #2441
  • Loading branch information
Benoit Charbonnier authored and pkozlowski-opensource committed Jun 8, 2018
1 parent 2315c8c commit cf48325
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 3 deletions.
18 changes: 15 additions & 3 deletions demo/src/app/components/modal/demos/basic/modal-basic.html
Original file line number Diff line number Diff line change
@@ -1,15 +1,27 @@
<ng-template #content let-c="close" let-d="dismiss">
<div class="modal-header">
<h4 class="modal-title">Modal title</h4>
<h4 class="modal-title">Profile update</h4>
<button type="button" class="close" aria-label="Close" (click)="d('Cross click')">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<p>One fine body&hellip;</p>
<form>
<div class="form-group">
<label for="dateOfBirth">Date of birth</label>
<div class="input-group">
<input id="dateOfBirth" class="form-control" placeholder="yyyy-mm-dd" name="dp" ngbDatepicker #dp="ngbDatepicker">
<div class="input-group-append">
<button class="btn btn-outline-secondary" (click)="dp.toggle()" type="button">
<img src="img/calendar-icon.svg" style="width: 1.2rem; height: 1rem; cursor: pointer;"/>
</button>
</div>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-outline-dark" (click)="c('Close click')">Close</button>
<button type="button" class="btn btn-outline-dark" (click)="c('Save click')">Save</button>
</div>
</ng-template>

Expand Down
2 changes: 2 additions & 0 deletions src/modal/modal-window.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import {
} from '@angular/core';

import {ModalDismissReasons} from './modal-dismiss-reasons';
import {ngbFocusTrap} from '../util/focus-trap';

@Component({
selector: 'ngb-modal-window',
Expand Down Expand Up @@ -44,6 +45,7 @@ export class NgbModalWindow implements OnInit,

constructor(@Inject(DOCUMENT) document, private _elRef: ElementRef<HTMLElement>, private _renderer: Renderer2) {
this._document = document;
ngbFocusTrap(this._elRef.nativeElement, this.dismissEvent);
}

backdropClick($event): void {
Expand Down

0 comments on commit cf48325

Please sign in to comment.