@ribajs/bs4
Version:
Bootstrap 4 module for Riba.js
70 lines • 5.33 kB
JavaScript
import { Component } from "@ribajs/core";
import template from "./bs4-toast-item.component.html?raw";
import { ToastService, EVENT_HIDDEN } from "../../services/toast.service.js";
import { getElementFromEvent } from "@ribajs/utils/src/dom.js";
export class Bs4ToastItemComponent extends Component {
static tagName = "bs4-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(Bs4ToastItemComponent.observedAttributes);
}
async afterBind() {
this.initToastService();
await super.afterBind();
}
initToastService() {
const toast = this.scope.toast;
const toastEl = this.firstElementChild;
if (toast && toastEl) {
this.toastService = new ToastService(toastEl, {
delay: toast.delay !== undefined ? toast.delay : ToastService.Default.delay,
autohide: toast.autoHide !== undefined
? toast.autoHide
: ToastService.Default.autohide,
animation: toast.animation !== undefined
? toast.animation
: ToastService.Default.animation,
});
toastEl.addEventListener(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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnM0LXRvYXN0LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYnM0LXRvYXN0LWl0ZW0vYnM0LXRvYXN0LWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQStCLE1BQU0sY0FBYyxDQUFDO0FBRXRFLE9BQU8sUUFBUSxNQUFNLHFDQUFxQyxDQUFDO0FBRTNELE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFZL0QsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFNBQVM7SUFDM0MsTUFBTSxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQztJQUVsQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ1osUUFBUSxHQUFHLElBQUksQ0FBQztJQUVoQixZQUFZLENBQWdCO0lBRXRDLE1BQU0sS0FBSyxrQkFBa0I7UUFDM0IsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVTLGtCQUFrQjtRQUMxQixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVNLEtBQUssR0FBVTtRQUNwQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ2xDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDVCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ2hDLEtBQUssRUFBRSxTQUFTO0tBQ2pCLENBQUM7SUFFRjtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVTLGlCQUFpQjtRQUN6QixLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVTLEtBQUssQ0FBQyxTQUFTO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFUyxnQkFBZ0I7UUFDeEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDL0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUF1QyxDQUFDO1FBQzdELElBQUksS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxZQUFZLENBQUMsT0FBTyxFQUFFO2dCQUM1QyxLQUFLLEVBQ0gsS0FBSyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSztnQkFDdEUsUUFBUSxFQUNOLEtBQUssQ0FBQyxRQUFRLEtBQUssU0FBUztvQkFDMUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRO29CQUNoQixDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxRQUFRO2dCQUNuQyxTQUFTLEVBQ1AsS0FBSyxDQUFDLFNBQVMsS0FBSyxTQUFTO29CQUMzQixDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVM7b0JBQ2pCLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVM7YUFDckMsQ0FBQyxDQUFDO1lBR0gsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtnQkFDMUQsSUFBSSxFQUFFLElBQUk7YUFDWCxDQUFDLENBQUM7WUFHSCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBR00sT0FBTztRQUNaLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUdNLFFBQVEsQ0FBQyxLQUFZLEVBQUUsRUFBZ0I7UUFDNUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsRUFBRSxHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFDRCxNQUFNLGNBQWMsR0FDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsT0FBTyxJQUFJLElBQUksQ0FBQztRQUN0QyxJQUNFLE9BQU8sY0FBYyxFQUFFLFVBQVUsS0FBSyxVQUFVO1lBQ2hELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztZQUNoQixFQUFFLEVBQ0YsQ0FBQztZQUNELGNBQWMsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNFLENBQUM7SUFDSCxDQUFDO0lBQ1MsUUFBUTtRQUNoQixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDIn0=