UNPKG

@ribajs/core

Version:

Core module of Riba.js

22 lines 2.14 kB
import { Binder } from "../binder.js"; import { setAttribute } from "@ribajs/utils"; export class AttributeBinder extends Binder { static key = "attr-*"; routine(el, newValue) { if (!this.type) { throw new Error("Can't set attribute of " + this.type); } const { newValue: newValueFormatted, oldValue, changed, } = setAttribute(el, this.type, newValue); if (this.type === "src" && el.tagName.toUpperCase() === "SOURCE" && el.parentElement?.tagName.toUpperCase() === "VIDEO") { el.parentElement.load(); } if (changed) { el.dispatchEvent(new CustomEvent("binder-changed", { detail: { name: this.type, newValue: newValueFormatted, oldValue }, })); } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLmJpbmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaW5kZXJzL2F0dHJpYnV0ZS5iaW5kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUTdDLE1BQU0sT0FBTyxlQUEwQyxTQUFRLE1BQVk7SUFDekUsTUFBTSxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUM7SUFFdEIsT0FBTyxDQUFDLEVBQUssRUFBRSxRQUFXO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBRUQsTUFBTSxFQUNKLFFBQVEsRUFBRSxpQkFBaUIsRUFDM0IsUUFBUSxFQUNSLE9BQU8sR0FDUixHQUFHLFlBQVksQ0FBQyxFQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFHekQsSUFDRSxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUs7WUFDbEIsRUFBd0IsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssUUFBUTtZQUV6RCxFQUF3QixDQUFDLGFBQzNCLEVBQUUsT0FBTyxDQUFDLFdBQVcsRUFBRSxLQUFLLE9BQU8sRUFDcEMsQ0FBQztZQUNDLEVBQXdCLENBQUMsYUFBa0MsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2RSxDQUFDO1FBRUQsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNYLEVBQWtCLENBQUMsYUFBYSxDQUMvQixJQUFJLFdBQVcsQ0FBMkIsZ0JBQWdCLEVBQUU7Z0JBQzFELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUU7YUFDbkUsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQyJ9