UNPKG

@ribajs/bs4

Version:

Bootstrap 4 module for Riba.js

70 lines 5.33 kB
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=