primeng
Version:
[](https://opensource.org/licenses/MIT) [](https://badge.fury.io/js/primeng) [
{"version":3,"file":"primeng-focustrap.mjs","sources":["../../src/app/components/focustrap/focustrap.ts","../../src/app/components/focustrap/primeng-focustrap.ts"],"sourcesContent":["import { NgModule, Directive, ElementRef, HostListener, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomHandler } from 'primeng/dom';\n\n@Directive({\n selector: '[pFocusTrap]',\n host: {\n class: 'p-element'\n }\n})\nexport class FocusTrap {\n @Input() pFocusTrapDisabled: boolean;\n\n constructor(public el: ElementRef) {}\n\n @HostListener('keydown.tab', ['$event'])\n @HostListener('keydown.shift.tab', ['$event'])\n onkeydown(e) {\n if (this.pFocusTrapDisabled !== true) {\n e.preventDefault();\n let focusableElements = DomHandler.getFocusableElements(this.el.nativeElement);\n if (focusableElements && focusableElements.length > 0) {\n if (!focusableElements[0].ownerDocument.activeElement) {\n focusableElements[0].focus();\n } else {\n let focusedIndex = focusableElements.indexOf(focusableElements[0].ownerDocument.activeElement);\n\n if (e.shiftKey) {\n if (focusedIndex == -1 || focusedIndex === 0) focusableElements[focusableElements.length - 1].focus();\n else focusableElements[focusedIndex - 1].focus();\n } else {\n if (focusedIndex == -1 || focusedIndex === focusableElements.length - 1) focusableElements[0].focus();\n else focusableElements[focusedIndex + 1].focus();\n }\n }\n }\n }\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [FocusTrap],\n declarations: [FocusTrap]\n})\nexport class FocusTrapModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}