UNPKG

sprae

Version:

DOM microhydration

16 lines (14 loc) 486 B
import { dir } from "../core.js"; dir('class', (el, cur) => ( cur = new Set, v => { let clsx = new Set; if (v) { if (typeof v === "string") v.split(' ').map(cls => clsx.add(cls)); else if (Array.isArray(v)) v.map(v => v && clsx.add(v)); else Object.entries(v).map(([k, v]) => v && clsx.add(k)); } for (let cls of cur) if (clsx.has(cls)) clsx.delete(cls); else el.classList.remove(cls); for (let cls of cur = clsx) el.classList.add(cls) }) )