diff --git a/src/preview-mode/custom-element/SpoilerSpanElement.ts b/src/preview-mode/custom-element/SpoilerSpanElement.ts new file mode 100644 index 0000000..b3c5cc8 --- /dev/null +++ b/src/preview-mode/custom-element/SpoilerSpanElement.ts @@ -0,0 +1,19 @@ +export class SpoilerSpanElement extends HTMLElement { + constructor() { + super(); + } + clickListener = (evt: MouseEvent) => { + let curTarget = evt.currentTarget as HTMLElement; + if (curTarget.getAttribute("revealed") === null) { + curTarget.setAttribute("revealed", ""); + } else { + curTarget.removeAttribute("revealed"); + } + } + connectedCallback() { + this.addEventListener("click", this.clickListener); + } + disconnectedCallback() { + this.removeEventListener("click", this.clickListener); + } +} \ No newline at end of file diff --git a/src/preview-mode/custom-element/index.ts b/src/preview-mode/custom-element/index.ts new file mode 100644 index 0000000..5f4f415 --- /dev/null +++ b/src/preview-mode/custom-element/index.ts @@ -0,0 +1 @@ +export * from "./SpoilerSpanElement"; \ No newline at end of file