@aurelia-mdc-web/base
Version:
Base classes for Aurelia Material Components Web
52 lines • 2.09 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';
var MdcFocusTrap = /** @class */ (function () {
function MdcFocusTrap(root) {
this.root = root;
}
MdcFocusTrap.prototype.attached = function () {
if (!this.delay) {
this.create();
}
};
MdcFocusTrap.prototype.create = function () {
var 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 });
};
MdcFocusTrap.prototype.trapFocus = function () {
var _a;
(_a = this.focusTrap) === null || _a === void 0 ? void 0 : _a.trapFocus();
};
MdcFocusTrap.prototype.releaseFocus = function () {
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);
return MdcFocusTrap;
}());
export { MdcFocusTrap };
//# sourceMappingURL=mdc-focus-trap.js.map