UNPKG

@ribajs/bs5

Version:

Bootstrap 5 module for Riba.js

65 lines 5 kB
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