mirror of
https://github.com/jaandrle/deka-dom-el
synced 2025-07-01 12:22:15 +02:00
⚡ Docs
This commit is contained in:
13
docs/components/examples/events/abortSignal.js
Normal file
13
docs/components/examples/events/abortSignal.js
Normal file
@ -0,0 +1,13 @@
|
||||
import { el, on } from "deka-dom-el";
|
||||
const log= mark=> console.log.bind(console, mark);
|
||||
|
||||
const abort_controller= new AbortController();
|
||||
const { signal }= abort_controller;
|
||||
|
||||
const button= el("button", "Test click");
|
||||
button.addEventListener("click", log("`addEventListener`"), { signal });
|
||||
on("click", log("`on`"), { signal })(button);
|
||||
|
||||
document.body.append(
|
||||
button, " ", el("button", { textContent: "Off", onclick: ()=> abort_controller.abort() })
|
||||
);
|
10
docs/components/examples/events/compare.js
Normal file
10
docs/components/examples/events/compare.js
Normal file
@ -0,0 +1,10 @@
|
||||
import { el, on } from "deka-dom-el";
|
||||
const log= mark=> console.log.bind(console, mark);
|
||||
|
||||
const button= el("button", "Test click");
|
||||
button.addEventListener("click", log("`addEventListener`"), { once: true });
|
||||
on("click", log("`on`"), { once: true })(button);
|
||||
|
||||
document.body.append(
|
||||
button
|
||||
);
|
24
docs/components/examples/events/compareDispatch.js
Normal file
24
docs/components/examples/events/compareDispatch.js
Normal file
@ -0,0 +1,24 @@
|
||||
import { el, on, dispatchEvent } from "deka-dom-el";
|
||||
document.body.append(
|
||||
el("p", "Listenning to `test` event.", on("test", console.log)).append(
|
||||
el("br"),
|
||||
el("button", "native", on("click", native)),
|
||||
" ",
|
||||
el("button", "dde", on("click", dde)),
|
||||
" ",
|
||||
el("button", "dde with options", on("click", ddeOptions))
|
||||
)
|
||||
);
|
||||
function native(){
|
||||
this.dispatchEvent(
|
||||
new CustomEvent("test",
|
||||
{ bubbles: true, detail: "hi" }
|
||||
)
|
||||
);
|
||||
}
|
||||
function dde(){
|
||||
dispatchEvent("test")(this.parentElement, "hi");
|
||||
}
|
||||
function ddeOptions(){
|
||||
dispatchEvent("test", { bubbles: true })(this, "hi");
|
||||
}
|
4
docs/components/examples/events/intro.js
Normal file
4
docs/components/examples/events/intro.js
Normal file
@ -0,0 +1,4 @@
|
||||
// use NPM or for example https://cdn.jsdelivr.net/gh/jaandrle/deka-dom-el/dist/esm.js
|
||||
import { on, dispatchEvent } from "deka-dom-el";
|
||||
|
||||
/** @type {ddeElementAddon} */
|
18
docs/components/examples/events/live-cycle.js
Normal file
18
docs/components/examples/events/live-cycle.js
Normal file
@ -0,0 +1,18 @@
|
||||
import { el, on } from "deka-dom-el";
|
||||
const paragraph= el("p", "See live-cycle events in console.",
|
||||
el=> log({ type: "dde:created", detail: el }),
|
||||
on.connected(log),
|
||||
on.disconnected(log),
|
||||
on.attributeChanged(log));
|
||||
|
||||
document.body.append(
|
||||
paragraph,
|
||||
el("button", "Update attribute", on("click", ()=> paragraph.setAttribute("test", Math.random().toString()))),
|
||||
" ",
|
||||
el("button", "Remove", on("click", ()=> paragraph.remove()))
|
||||
);
|
||||
|
||||
/** @param {Partial<CustomEvent>} event */
|
||||
function log({ type, detail }){
|
||||
console.log({ _this: this, type, detail });
|
||||
}
|
24
docs/components/examples/events/templateWithListeners.js
Normal file
24
docs/components/examples/events/templateWithListeners.js
Normal file
@ -0,0 +1,24 @@
|
||||
import { el, on } from "deka-dom-el";
|
||||
const abort_controller= new AbortController();
|
||||
const { signal }= abort_controller;
|
||||
/** @type {ddeElementAddon<HTMLButtonElement>} */
|
||||
const onclickOff= on("click", ()=> abort_controller.abort(), { signal });
|
||||
/** @type {(ref?: HTMLOutputElement)=> HTMLOutputElement | null} */
|
||||
const ref= (store=> ref=> ref ? (store= ref) : store)(null);
|
||||
|
||||
document.body.append(
|
||||
el("button", "Test `on`",
|
||||
on("click", console.log, { signal }),
|
||||
on("click", update, { signal }),
|
||||
on("mouseup", update, { signal })),
|
||||
" ",
|
||||
el("button", "Off", onclickOff),
|
||||
el("output", { style: { display: "block", whiteSpace: "pre" } }, ref)
|
||||
);
|
||||
/** @param {MouseEvent} event @this {HTMLButtonElement} */
|
||||
function update(event){
|
||||
ref().append(
|
||||
event.type,
|
||||
"\n"
|
||||
);
|
||||
}
|
Reference in New Issue
Block a user