1 | (function (global, factory) {
|
2 | typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('primeng/dom')) :
|
3 | typeof define === 'function' && define.amd ? define('primeng/focustrap', ['exports', '@angular/core', '@angular/common', 'primeng/dom'], factory) :
|
4 | (global = global || self, factory((global.primeng = global.primeng || {}, global.primeng.focustrap = {}), global.ng.core, global.ng.common, global.primeng.dom));
|
5 | }(this, (function (exports, core, common, dom) { 'use strict';
|
6 |
|
7 | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
8 | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
9 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
10 | else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
11 | return c > 3 && r && Object.defineProperty(target, key, r), r;
|
12 | };
|
13 | var FocusTrap = (function () {
|
14 | function FocusTrap(el) {
|
15 | this.el = el;
|
16 | }
|
17 | FocusTrap.prototype.onkeydown = function (e) {
|
18 | if (this.pFocusTrapDisabled !== true) {
|
19 | e.preventDefault();
|
20 | var focusableElements = dom.DomHandler.getFocusableElements(this.el.nativeElement);
|
21 | if (focusableElements && focusableElements.length > 0) {
|
22 | if (!document.activeElement) {
|
23 | focusableElements[0].focus();
|
24 | }
|
25 | else {
|
26 | var focusedIndex = focusableElements.indexOf(document.activeElement);
|
27 | if (e.shiftKey) {
|
28 | if (focusedIndex == -1 || focusedIndex === 0)
|
29 | focusableElements[focusableElements.length - 1].focus();
|
30 | else
|
31 | focusableElements[focusedIndex - 1].focus();
|
32 | }
|
33 | else {
|
34 | if (focusedIndex == -1 || focusedIndex === (focusableElements.length - 1))
|
35 | focusableElements[0].focus();
|
36 | else
|
37 | focusableElements[focusedIndex + 1].focus();
|
38 | }
|
39 | }
|
40 | }
|
41 | }
|
42 | };
|
43 | FocusTrap.ctorParameters = function () { return [
|
44 | { type: core.ElementRef }
|
45 | ]; };
|
46 | __decorate([
|
47 | core.Input()
|
48 | ], FocusTrap.prototype, "pFocusTrapDisabled", void 0);
|
49 | __decorate([
|
50 | core.HostListener('keydown.tab', ['$event']),
|
51 | core.HostListener('keydown.shift.tab', ['$event'])
|
52 | ], FocusTrap.prototype, "onkeydown", null);
|
53 | FocusTrap = __decorate([
|
54 | core.Directive({
|
55 | selector: '[pFocusTrap]',
|
56 | })
|
57 | ], FocusTrap);
|
58 | return FocusTrap;
|
59 | }());
|
60 | var FocusTrapModule = (function () {
|
61 | function FocusTrapModule() {
|
62 | }
|
63 | FocusTrapModule = __decorate([
|
64 | core.NgModule({
|
65 | imports: [common.CommonModule],
|
66 | exports: [FocusTrap],
|
67 | declarations: [FocusTrap]
|
68 | })
|
69 | ], FocusTrapModule);
|
70 | return FocusTrapModule;
|
71 | }());
|
72 |
|
73 | exports.FocusTrap = FocusTrap;
|
74 | exports.FocusTrapModule = FocusTrapModule;
|
75 |
|
76 | Object.defineProperty(exports, '__esModule', { value: true });
|
77 |
|
78 | })));
|
79 |
|