UNPKG

@ribajs/bs4

Version:

Bootstrap 4 module for Riba.js

57 lines 4.52 kB
import { Component } from "@ribajs/core"; import { EventDispatcher } from "@ribajs/events"; import { hasChildNodesTrim } from "@ribajs/utils/src/dom.js"; export class Bs4NotificationContainerComponent extends Component { static tagName = "bs4-notification-container"; autobind = true; _debug = false; notificationDispatcher; static get observedAttributes() { return ["icon-url", "position-class", "channel-name"]; } scope = { notifications: [], positionClass: "absolute-bottom absolute-center", channelName: "toast", onItemHide: this.onItemHide, }; constructor() { super(); } connectedCallback() { super.connectedCallback(); this.init(Bs4NotificationContainerComponent.observedAttributes); } onItemHide(event, el, index, notification) { if (index > -1) { this.notifications.splice(index, 1); } else { console.warn("Notification not found", notification); } } onShowNotification(notification) { this.debug("Received notification container on " + this.scope.channelName, this.scope, notification); this.scope.notifications.push(notification); } async afterBind() { this.notificationDispatcher = new EventDispatcher(this.scope.channelName); this.notificationDispatcher.on("show-notification", this.onShowNotification, this); await super.afterBind(); } disconnectedCallback() { super.disconnectedCallback(); this.notificationDispatcher.off("show-notification", this.onShowNotification, this); } requiredAttributes() { return []; } async template() { if (!hasChildNodesTrim(this)) { const { default: template } = await import("./bs4-notification-container.component.html?raw"); return template; } return null; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnM0LW5vdGlmaWNhdGlvbi1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYnM0LW5vdGlmaWNhdGlvbi1jb250YWluZXIvYnM0LW5vdGlmaWNhdGlvbi1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSxjQUFjLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBVzdELE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxTQUFTO0lBQ3ZELE1BQU0sQ0FBQyxPQUFPLEdBQUcsNEJBQTRCLENBQUM7SUFFM0MsUUFBUSxHQUFHLElBQUksQ0FBQztJQUNuQixNQUFNLEdBQUcsS0FBSyxDQUFDO0lBRVosc0JBQXNCLENBQW1CO0lBRW5ELE1BQU0sS0FBSyxrQkFBa0I7UUFDM0IsT0FBTyxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRU0sS0FBSyxHQUFVO1FBQ3BCLGFBQWEsRUFBRSxFQUFFO1FBQ2pCLGFBQWEsRUFBRSxpQ0FBaUM7UUFDaEQsV0FBVyxFQUFFLE9BQU87UUFDcEIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO0tBQzVCLENBQUM7SUFFRjtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVTLGlCQUFpQjtRQUN6QixLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUdNLFVBQVUsQ0FFZixLQUFZLEVBQ1osRUFBZSxFQUNmLEtBQWEsRUFDYixZQUEwQjtRQUUxQixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUN2RCxDQUFDO0lBQ0gsQ0FBQztJQUVTLGtCQUFrQixDQUFDLFlBQTBCO1FBQ3JELElBQUksQ0FBQyxLQUFLLENBQ1IscUNBQXFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQzlELElBQUksQ0FBQyxLQUFLLEVBQ1YsWUFBWSxDQUNiLENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVTLEtBQUssQ0FBQyxTQUFTO1FBRXZCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQzVCLG1CQUFtQixFQUNuQixJQUFJLENBQUMsa0JBQWtCLEVBQ3ZCLElBQUksQ0FDTCxDQUFDO1FBQ0YsTUFBTSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVTLG9CQUFvQjtRQUM1QixLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsc0JBQTBDLENBQUMsR0FBRyxDQUNsRCxtQkFBbUIsRUFDbkIsSUFBSSxDQUFDLGtCQUFrQixFQUN2QixJQUFJLENBQ0wsQ0FBQztJQUNKLENBQUM7SUFFUyxrQkFBa0I7UUFDMUIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRVMsS0FBSyxDQUFDLFFBQVE7UUFFdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDN0IsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FDeEMsaURBQWlELENBQ2xELENBQUM7WUFDRixPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDIn0=