UNPKG

@aurelia-mdc-web/base

Version:

Base classes for Aurelia Material Components Web

55 lines 1.81 kB
import { __decorate, __metadata } from "tslib"; import { inject } from 'aurelia-dependency-injection'; import { customAttribute } from 'aurelia-templating'; import { bindable } from 'aurelia-typed-observable-plugin'; import { FocusTrap } from '@material/dom/focus-trap'; import '../aurelia-typed-observable-plugin-fix'; let MdcFocusTrap = class MdcFocusTrap { constructor(root) { this.root = root; } attached() { if (!this.delay) { this.create(); } } create() { let initialFocusEl; if (this.initialFocusEl instanceof HTMLElement || this.initialFocusEl === undefined) { initialFocusEl = this.initialFocusEl; } else { initialFocusEl = this.initialFocusEl(); } this.focusTrap = new FocusTrap(this.root, { initialFocusEl, skipInitialFocus: this.skipInitialFocus, skipRestoreFocus: this.skipRestoreFocus }); } trapFocus() { this.focusTrap?.trapFocus(); } releaseFocus() { this.focusTrap?.releaseFocus(); } }; __decorate([ bindable.booleanAttr, __metadata("design:type", Boolean) ], MdcFocusTrap.prototype, "delay", void 0); __decorate([ bindable.none, __metadata("design:type", Object) ], MdcFocusTrap.prototype, "initialFocusEl", void 0); __decorate([ bindable.booleanAttr, __metadata("design:type", Boolean) ], MdcFocusTrap.prototype, "skipInitialFocus", void 0); __decorate([ bindable.booleanAttr, __metadata("design:type", Boolean) ], MdcFocusTrap.prototype, "skipRestoreFocus", void 0); MdcFocusTrap = __decorate([ customAttribute('mdc-focus-trap'), inject(Element), __metadata("design:paramtypes", [HTMLElement]) ], MdcFocusTrap); export { MdcFocusTrap }; //# sourceMappingURL=mdc-focus-trap.js.map