UNPKG

@aurelia-mdc-web/base

Version:

Base classes for Aurelia Material Components Web

51 lines 1.82 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() { const el = this.initialFocusEl instanceof HTMLElement || this.initialFocusEl === undefined ? this.initialFocusEl : this.initialFocusEl(); this.focusTrap = new FocusTrap(this.root, { initialFocusEl: el, skipInitialFocus: this.skipInitialFocus, skipRestoreFocus: this.skipRestoreFocus }); } trapFocus() { var _a; (_a = this.focusTrap) === null || _a === void 0 ? void 0 : _a.trapFocus(); } releaseFocus() { var _a; (_a = this.focusTrap) === null || _a === void 0 ? void 0 : _a.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