@ribajs/bs5
Version:
Bootstrap 5 module for Riba.js
65 lines • 5 kB
JavaScript
import { Component } from "@ribajs/core";
import { getElementFromEvent } from "@ribajs/utils/src/dom.js";
import { Modal } from "../../services/index.js";
import template from "./bs5-modal-item.component.html?raw";
export class Bs5ModalItemComponent extends Component {
static tagName = "bs5-modal-item";
_debug = false;
autobind = true;
modalService;
static get observedAttributes() {
return ["modal", "index"];
}
requiredAttributes() {
return ["modal"];
}
scope = {
onHidden: this.onHidden.bind(this),
index: -1,
dismiss: this.dismiss.bind(this),
};
constructor() {
super();
}
connectedCallback() {
super.connectedCallback();
this.init(Bs5ModalItemComponent.observedAttributes);
}
async afterBind() {
this.initModal();
await super.afterBind();
}
initModal() {
const modal = this.scope.modal;
const modalEl = this.firstElementChild;
if (modal && modalEl) {
this.modalService = new Modal(modalEl, {
focus: modal.focus !== undefined ? modal.focus : true,
keyboard: modal.keyboard !== undefined ? modal.keyboard : true,
backdrop: modal.backdrop !== undefined ? modal.backdrop : true,
});
modalEl.addEventListener(Modal.EVENT_HIDDEN, this.scope.onHidden, {
once: true,
});
this.modalService.show();
}
}
dismiss() {
this.modalService?.hide();
}
onHidden(event, el) {
if (!el) {
el = getElementFromEvent(event);
}
const notificationContainer = this.scope.$parent?.$parent || null;
if (typeof notificationContainer?.onItemHide === "function" &&
this.scope.modal &&
el) {
notificationContainer.onItemHide(event, el, this.scope.index, this.scope.modal);
}
}
async template() {
return template;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnM1LW1vZGFsLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYnM1LW1vZGFsLWl0ZW0vYnM1LW1vZGFsLWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSxjQUFjLENBQUM7QUFFcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLEtBQUssRUFBcUIsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRSxPQUFPLFFBQVEsTUFBTSxxQ0FBcUMsQ0FBQztBQWUzRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsU0FBUztJQUMzQyxNQUFNLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDO0lBRWxDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDWixRQUFRLEdBQUcsSUFBSSxDQUFDO0lBRWhCLFlBQVksQ0FBUztJQUUvQixNQUFNLEtBQUssa0JBQWtCO1FBQzNCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVTLGtCQUFrQjtRQUMxQixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVNLEtBQUssR0FBVTtRQUNwQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ2xDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDVCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0tBQ2pDLENBQUM7SUFFRjtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVTLGlCQUFpQjtRQUN6QixLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVTLEtBQUssQ0FBQyxTQUFTO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixNQUFNLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRVMsU0FBUztRQUNqQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUMvQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQXVDLENBQUM7UUFDN0QsSUFBSSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7Z0JBQ3JDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSTtnQkFDckQsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUM5RCxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUk7YUFDL0QsQ0FBQyxDQUFDO1lBR0gsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7Z0JBQ2hFLElBQUksRUFBRSxJQUFJO2FBQ1gsQ0FBQyxDQUFDO1lBR0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUdNLE9BQU87UUFDWixJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFHTSxRQUFRLENBQUMsS0FBWSxFQUFFLEVBQWdCO1FBQzVDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNSLEVBQUUsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBQ0QsTUFBTSxxQkFBcUIsR0FDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsT0FBTyxJQUFJLElBQUksQ0FBQztRQUN0QyxJQUNFLE9BQU8scUJBQXFCLEVBQUUsVUFBVSxLQUFLLFVBQVU7WUFDdkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLO1lBQ2hCLEVBQUUsRUFDRixDQUFDO1lBQ0QscUJBQXFCLENBQUMsVUFBVSxDQUM5QixLQUFLLEVBQ0wsRUFBRSxFQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FDakIsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBQ1MsS0FBSyxDQUFDLFFBQVE7UUFJdEIsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQyJ9