mirror of
https://github.com/jaandrle/deka-dom-el
synced 2024-11-24 17:39:36 +01:00
Jan Andrle
55a8f14b6b
♻️ add linting to codebase ♻️ Update prototype methods 🐛 update maxcomplexity in jshintConfig ♻️ Improve DOM element property handling ♻️ update setDelete function ✨ Add type annotation for signals() ♻️ Cleanup when signal removed
31 lines
919 B
JavaScript
31 lines
919 B
JavaScript
import { namespace, el, assign, on, registerReactivity } from "../index.js";
|
|
import { S } from "../src/signals.js";
|
|
// import { empty, namespace, on, dispatch } from "../index.js";
|
|
// import "../dist/dde-with-signals.js";
|
|
// Object.assign(globalThis, dde);
|
|
// import { el, on, off, S } from "../dist/esm-with-signals.js";
|
|
const style= createStyle();
|
|
Object.assign(globalThis, { S, el, assign, namespace, on, registerReactivity, style });
|
|
export { S, el, on, registerReactivity, style };
|
|
|
|
function createStyle(){
|
|
const element= el("style");
|
|
const store= new WeakSet();
|
|
let host;
|
|
return {
|
|
element,
|
|
host(k, h= k.name){
|
|
if(store.has(k)) return { css: ()=> {} };
|
|
store.add(k);
|
|
host= h;
|
|
return this;
|
|
},
|
|
css(...args){
|
|
const textContent= String.raw(...args).replaceAll(":host", "."+host);
|
|
const className= host;
|
|
element.appendChild(el("#text", { textContent }));
|
|
return className;
|
|
}
|
|
};
|
|
}
|