From be31d1fd44dd4f327d14e518573db7fba9478b9d Mon Sep 17 00:00:00 2001 From: DarkWiiPlayer Date: Sat, 22 May 2021 14:58:07 +0200 Subject: [PATCH] Add mutation observer to BetterHTMLElement --- BetterHTMLElement.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/BetterHTMLElement.js b/BetterHTMLElement.js index 36c96f7..e1308f5 100644 --- a/BetterHTMLElement.js +++ b/BetterHTMLElement.js @@ -1,4 +1,18 @@ export class BetterHTMLElement extends HTMLElement { + #observer + constructor() { + super() + let object = this + this.#observer = new MutationObserver((list, observer) => { + list.forEach(m => { + m.target.dispatchEvent(new CustomEvent("mutation", {bubbles: true, detail: m, cancelable: true})) + }) + }) + } + observe(options) { + if (this.#observer) this.#observer.observe(this, options) + } + attributeChangedCallback(attr, old, value) { let name = attr.replace(/-([a-z])/, (_, l) => l.toUpperCase()) if (name+"Changed" in this) this[name+"Changed"](value, old)