@ribajs/bs4
Version:
Bootstrap 4 module for Riba.js
31 lines • 2.83 kB
JavaScript
import { Binder } from "@ribajs/core";
import { scrollTo } from "@ribajs/utils/src/dom.js";
export class ScrollToOnEventBinder extends Binder {
static key = "scroll-to-on-*";
target;
_onEvent(event) {
const offset = Number(this.el.dataset.offset || 0);
const scrollElement = this.el.dataset.scrollElement
? document.querySelector(this.el.dataset.scrollElement)
: window;
if (this.target) {
scrollTo(this.target, offset, scrollElement);
event.preventDefault();
}
}
onEvent = this._onEvent.bind(this);
bind(el) {
this.onEvent = this.onEvent.bind(this);
const eventName = this.args[0];
el.addEventListener(eventName, this.onEvent, { passive: true });
}
routine(el, targetSelector) {
this.target =
document.querySelector(targetSelector) || undefined;
}
unbind(el) {
const eventName = this.args[0];
el.removeEventListener(eventName, this.onEvent);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLXRvLW9uLWV2ZW50LmJpbmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iaW5kZXJzL3Njcm9sbC10by1vbi1ldmVudC5iaW5kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFcEQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLE1BQWdDO0lBQ3pFLE1BQU0sQ0FBQyxHQUFHLEdBQUcsZ0JBQWdCLENBQUM7SUFFdEIsTUFBTSxDQUFlO0lBRXJCLFFBQVEsQ0FBQyxLQUFZO1FBQzNCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbkQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsYUFBYTtZQUNqRCxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBYyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7WUFDcEUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNYLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztZQUM3QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFTyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFM0MsSUFBSSxDQUFDLEVBQXNCO1FBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQVcsQ0FBQztRQUN6QyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsT0FBTyxDQUFDLEVBQXNCLEVBQUUsY0FBc0I7UUFDcEQsSUFBSSxDQUFDLE1BQU07WUFDVCxRQUFRLENBQUMsYUFBYSxDQUFjLGNBQWMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsTUFBTSxDQUFDLEVBQWU7UUFDcEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQVcsQ0FBQztRQUN6QyxFQUFFLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsRCxDQUFDIn0=