UNPKG

@ribajs/bs5

Version:

Bootstrap 5 module for Riba.js

65 lines 5.07 kB
import { Binder } from "@ribajs/core"; import { Popover } from "@ribajs/bs5"; export class PopoverBinder extends Binder { static key = "bs5-popover"; popover; listeners = {}; routine(el, optionsOrContent) { let options = {}; if (typeof optionsOrContent === "string") { options.content = optionsOrContent; } else if (typeof optionsOrContent === "object") { options = { ...optionsOrContent }; } options.placement = options.placement || "auto"; const popover = new Popover(el, { ...Popover.Default, ...options, }); if (this.popover) { this.popover.dispose(); } this.popover = popover; const methodNames = [ "show", "hide", "toggle", "dispose", "enable", "disable", "update", ]; if (this.listeners) { for (const [trigger, listener] of Object.entries(this.listeners)) { this.el.removeEventListener(trigger, listener); } } this.listeners = Object.create(null); for (const methodName of methodNames) { if (popover[methodName] && typeof popover[methodName] === "function") { const trigger = `trigger-${String(methodName)}`; const listener = popover[methodName].bind(popover); this.el.addEventListener(trigger, listener); this.listeners[trigger] = listener; } else { console.warn("Unknown method " + methodName); } } } bind(el) { el.dispatchEvent(new CustomEvent("bound.bs.popover", { bubbles: true, cancelable: true })); } unbind() { if (this.popover) { this.popover.dispose(); } if (this.listeners) { for (const [trigger, listener] of Object.entries(this.listeners)) { this.el.removeEventListener(trigger, listener); } } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnM1LXBvcG92ZXIuYmluZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2JpbmRlcnMvYnM1LXBvcG92ZXIuYmluZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUFFLE9BQU8sRUFBa0IsTUFBTSxhQUFhLENBQUM7QUFLdEQsTUFBTSxPQUFPLGFBQWMsU0FBUSxNQUEyQjtJQUM1RCxNQUFNLENBQUMsR0FBRyxHQUFHLGFBQWEsQ0FBQztJQUVuQixPQUFPLENBQVc7SUFDbEIsU0FBUyxHQUFxQyxFQUFFLENBQUM7SUFFekQsT0FBTyxDQUFDLEVBQWUsRUFBRSxnQkFBeUM7UUFDaEUsSUFBSSxPQUFPLEdBQTRCLEVBQUUsQ0FBQztRQUUxQyxJQUFJLE9BQU8sZ0JBQWdCLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDekMsT0FBTyxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQztRQUNyQyxDQUFDO2FBQU0sSUFBSSxPQUFPLGdCQUFnQixLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2hELE9BQU8sR0FBRyxFQUFFLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUNwQyxDQUFDO1FBQ0QsT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQztRQUVoRCxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxFQUFFLEVBQUU7WUFDOUIsR0FBRyxPQUFPLENBQUMsT0FBTztZQUNsQixHQUFHLE9BQU87U0FDWCxDQUFDLENBQUM7UUFHSCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pCLENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQU92QixNQUFNLFdBQVcsR0FBNkI7WUFDNUMsTUFBTTtZQUNOLE1BQU07WUFDTixRQUFRO1lBQ1IsU0FBUztZQUNULFFBQVE7WUFDUixTQUFTO1lBQ1QsUUFBUTtTQUNULENBQUM7UUFHRixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixLQUFLLE1BQU0sQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDakUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsUUFBeUIsQ0FBQyxDQUFDO1lBQ2xFLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFLENBQUM7WUFDckMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssVUFBVSxFQUFFLENBQUM7Z0JBQ3JFLE1BQU0sT0FBTyxHQUFHLFdBQVcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ2hELE1BQU0sUUFBUSxHQUFJLE9BQU8sQ0FBQyxVQUFVLENBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzVELElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLFFBQVEsQ0FBQztZQUNyQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxVQUFVLENBQUMsQ0FBQztZQUMvQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLENBQUMsRUFBZTtRQUdsQixFQUFFLENBQUMsYUFBYSxDQUNkLElBQUksV0FBVyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FDekUsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNO1FBRUosSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN6QixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsS0FBSyxNQUFNLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pFLElBQUksQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLFFBQXlCLENBQUMsQ0FBQztZQUNsRSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUMifQ==