@ribajs/bs5
Version:
Bootstrap 5 module for Riba.js
27 lines • 2.36 kB
JavaScript
import { Binder } from "@ribajs/core";
import { Dropdown } from "../services/dropdown.js";
export class DropdownBinder extends Binder {
static key = "bs5-dropdown";
toggler;
dropdownService;
bind(el) {
this.toggler = ((el.classList.contains("dropdown-toggle")
? el
: el.querySelector(".dropdown-toggle")) || el);
}
routine(el, option = {}) {
if (!this.toggler) {
throw new Error("No dropdown toggle element found!");
}
if (this.dropdownService) {
const dropdownService = this.dropdownService;
dropdownService.dispose();
this.toggler.dataset.bsToggle = "";
}
const dropdownService = new Dropdown(this.toggler, option);
this.toggler.dataset.bsToggle = "dropdown";
this.dropdownService = dropdownService;
this.dropdownService.hide();
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnM1LWRyb3Bkb3duLmJpbmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iaW5kZXJzL2JzNS1kcm9wZG93bi5iaW5kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFPbkQsTUFBTSxPQUFPLGNBQWUsU0FBUSxNQUduQztJQUNDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsY0FBYyxDQUFDO0lBRXBCLE9BQU8sQ0FBeUM7SUFFaEQsZUFBZSxDQUFZO0lBRW5DLElBQUksQ0FBQyxFQUFlO1FBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDO1lBQ3ZELENBQUMsQ0FBQyxFQUFFO1lBQ0osQ0FBQyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FFMUIsQ0FBQztJQUN4QixDQUFDO0lBRUQsT0FBTyxDQUFDLEVBQWUsRUFBRSxNQUFNLEdBQUcsRUFBRTtRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsTUFBTSxlQUFlLEdBQWEsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUN2RCxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7WUFFMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsTUFBTSxlQUFlLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUzRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBQzNDLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQyJ9