@ribajs/bs5
Version:
Bootstrap 5 module for Riba.js
66 lines • 5.04 kB
JavaScript
import { Component } from "@ribajs/core";
import template from "./bs5-toast-item.component.html?raw";
import { Toast } from "../../services/index.js";
import { getElementFromEvent } from "@ribajs/utils/src/dom.js";
export class Bs5ToastItemComponent extends Component {
static tagName = "bs5-toast-item";
_debug = false;
autobind = true;
toastService;
static get observedAttributes() {
return ["toast", "icon-url", "index"];
}
requiredAttributes() {
return ["toast"];
}
scope = {
onHidden: this.onHidden.bind(this),
index: -1,
dismiss: this.dismiss.bind(this),
toast: undefined,
};
constructor() {
super();
}
connectedCallback() {
super.connectedCallback();
this.init(Bs5ToastItemComponent.observedAttributes);
}
async afterBind() {
this.initToast();
await super.afterBind();
}
initToast() {
const toast = this.scope.toast;
const toastEl = this.firstElementChild;
if (toast && toastEl) {
this.toastService = new Toast(toastEl, {
delay: toast.delay !== undefined ? toast.delay : 5000,
autohide: toast.autoHide !== undefined ? toast.autoHide : true,
animation: toast.animation !== undefined ? toast.animation : true,
});
toastEl.addEventListener(Toast.EVENT_HIDDEN, this.scope.onHidden, {
once: true,
});
this.toastService.show();
}
}
dismiss() {
this.toastService?.hide();
}
onHidden(event, el) {
if (!el) {
el = getElementFromEvent(event);
}
const toastContainer = this.scope.$parent?.$parent || null;
if (typeof toastContainer?.onItemHide === "function" &&
this.scope.toast &&
el) {
toastContainer.onItemHide(event, el, this.scope.index, this.scope.toast);
}
}
template() {
return template;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnM1LXRvYXN0LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYnM1LXRvYXN0LWl0ZW0vYnM1LXRvYXN0LWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQStCLE1BQU0sY0FBYyxDQUFDO0FBRXRFLE9BQU8sUUFBUSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNELE9BQU8sRUFBRSxLQUFLLEVBQXFCLE1BQU0seUJBQXlCLENBQUM7QUFFbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFlL0QsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFNBQVM7SUFDM0MsTUFBTSxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQztJQUVsQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ1osUUFBUSxHQUFHLElBQUksQ0FBQztJQUVoQixZQUFZLENBQVM7SUFFL0IsTUFBTSxLQUFLLGtCQUFrQjtRQUMzQixPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRVMsa0JBQWtCO1FBQzFCLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRU0sS0FBSyxHQUFVO1FBQ3BCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDbEMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNULE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDaEMsS0FBSyxFQUFFLFNBQVM7S0FDakIsQ0FBQztJQUVGO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBRVMsaUJBQWlCO1FBQ3pCLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRVMsS0FBSyxDQUFDLFNBQVM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFUyxTQUFTO1FBQ2pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQy9CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBdUMsQ0FBQztRQUM3RCxJQUFJLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtnQkFDckMsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUNyRCxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUk7Z0JBQzlELFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSTthQUNsRSxDQUFDLENBQUM7WUFHSCxPQUFPLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtnQkFDaEUsSUFBSSxFQUFFLElBQUk7YUFDWCxDQUFDLENBQUM7WUFHSCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBR00sT0FBTztRQUNaLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUdNLFFBQVEsQ0FBQyxLQUFZLEVBQUUsRUFBZ0I7UUFDNUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsRUFBRSxHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFDRCxNQUFNLGNBQWMsR0FDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsT0FBTyxJQUFJLElBQUksQ0FBQztRQUN0QyxJQUNFLE9BQU8sY0FBYyxFQUFFLFVBQVUsS0FBSyxVQUFVO1lBQ2hELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztZQUNoQixFQUFFLEVBQ0YsQ0FBQztZQUNELGNBQWMsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNFLENBQUM7SUFDSCxDQUFDO0lBQ1MsUUFBUTtRQUNoQixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDIn0=