@ribajs/bs4
Version:
Bootstrap 4 module for Riba.js
25 lines • 2.46 kB
JavaScript
import { Binder } from "@ribajs/core";
import { DropdownService } from "../services/dropdown.service.js";
export class DropdownBinder extends Binder {
static key = "bs4-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) {
this.dropdownService.dispose();
this.toggler.removeEventListener("click", this.dropdownService.toggle);
}
this.dropdownService = new DropdownService(this.toggler, option);
this.dropdownService.toggle = this.dropdownService.toggle.bind(this.dropdownService);
this.toggler.addEventListener("click", this.dropdownService.toggle);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnM0LWRyb3Bkb3duLmJpbmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iaW5kZXJzL2JzNC1kcm9wZG93bi5iaW5kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFNbEUsTUFBTSxPQUFPLGNBQWUsU0FBUSxNQUEyQjtJQUM3RCxNQUFNLENBQUMsR0FBRyxHQUFHLGNBQWMsQ0FBQztJQUVwQixPQUFPLENBQXlDO0lBRWhELGVBQWUsQ0FBbUI7SUFFMUMsSUFBSSxDQUFDLEVBQWU7UUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUM7WUFDdkQsQ0FBQyxDQUFDLEVBQUU7WUFDSixDQUFDLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUUxQixDQUFDO0lBQ3hCLENBQUM7SUFFRCxPQUFPLENBQUMsRUFBZSxFQUFFLFNBQWMsRUFBRTtRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUM1RCxJQUFJLENBQUMsZUFBZSxDQUNyQixDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0RSxDQUFDIn0=