@aurelia-mdc-web/base
Version:
Base classes for Aurelia Material Components Web
55 lines • 1.81 kB
JavaScript
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