UNPKG

@ribajs/router

Version:

Routing extension for Riba.js inspired by Barba.js

51 lines 4.09 kB
import { Binder } from "@ribajs/core"; import { EventDispatcher } from "@ribajs/events"; import { onParentRoute } from "@ribajs/utils/src/url"; export class ParentRouteClassStarBinder extends Binder { static class = "parent-route-class-*"; dispatcher = new EventDispatcher("main"); className; url; _onUrlChange() { if (!this.url) { throw new Error("url is not defined!"); } if (!this.className) { throw new Error("className is not defined!"); } if (onParentRoute(this.url)) { this.el.classList.add(this.className); if (this.el.getAttribute("type") === "radio") { this.el.checked = true; } return true; } else { this.el.classList.remove(this.className); if (this.el.getAttribute("type") === "radio") { this.el.checked = false; } } return false; } onUrlChange = this._onUrlChange.bind(this); routine(el, url) { this.url = url; this.className = this.args[0].toString() || "active"; const isAnkerHTMLElement = el.tagName === "A"; if (!this.url && isAnkerHTMLElement) { const href = el.getAttribute("href"); if (href) { this.url = href; } } this.onUrlChange(); } bind() { this.dispatcher.on("newPageReady", this.onUrlChange); } unbind() { this.dispatcher.off("newPageReady", this.onUrlChange); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyZW50LXJvdXRlLWNsYXNzLXN0YXIuYmluZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2JpbmRlcnMvcGFyZW50LXJvdXRlLWNsYXNzLXN0YXIuYmluZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsTUFHL0M7SUFDQyxNQUFNLENBQUMsS0FBSyxHQUFHLHNCQUFzQixDQUFDO0lBRTlCLFVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV6QyxTQUFTLENBQVU7SUFFbkIsR0FBRyxDQUFVO0lBRWIsWUFBWTtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBRUQsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUV0QyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUM1QyxJQUFJLENBQUMsRUFBdUIsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQy9DLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUV6QyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUM1QyxJQUFJLENBQUMsRUFBdUIsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ2hELENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBT25ELE9BQU8sQ0FBQyxFQUFlLEVBQUUsR0FBWTtRQUNuQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxRQUFRLENBQUM7UUFDckQsTUFBTSxrQkFBa0IsR0FBRyxFQUFFLENBQUMsT0FBTyxLQUFLLEdBQUcsQ0FBQztRQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDckMsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztZQUNsQixDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hELENBQUMifQ==