Comparing version 1.0.0 to 1.0.1
@@ -44,3 +44,5 @@ // dist/emit.js | ||
requestAnimationFrame(() => { | ||
for (const fn of queue) { | ||
const tmp = Array.from(queue); | ||
queue.clear(); | ||
for (const fn of tmp) { | ||
try { | ||
@@ -52,3 +54,2 @@ fn(); | ||
} | ||
queue.clear(); | ||
}); | ||
@@ -91,3 +92,3 @@ } | ||
const children = items.map((item) => { | ||
const key2 = getKey(item); | ||
const key2 = `${getKey(item)}`; | ||
let child = childrenByKey.get(key2); | ||
@@ -94,0 +95,0 @@ if (child) { |
@@ -1,1 +0,1 @@ | ||
function v(e,t,r){return e.dispatchEvent(new CustomEvent(t,{detail:r,bubbles:!0}))}var m=document.createElement("div");function w(e){return m.innerText=e,m.innerHTML}function L(e){switch(e.tagName){case"INPUT":return T(e);case"SELECT":return e.value||"";case"TEXTAREA":return e.value||"";default:return}}function T(e){switch(e.type){case"checkbox":case"radio":return!!e.checked;default:return e.value||""}}var u=new Set;function N(...e){u.size===0&&requestAnimationFrame(()=>{for(let t of u)try{t()}catch(r){document.dispatchEvent(new ErrorEvent("error",{error:r}))}u.clear()});for(let t of e)u.add(t)}function y(e,t){return e.querySelector(`:scope ${t}`)}function O(e,t){return e.querySelectorAll(`:scope ${t}`)}function C(e,t){let r=y(e,t);if(!r)throw new Error(`No element matching ${t} in ${e}`);return r}function I(e){let{container:t,items:r,key:n,create:o,update:s}=e,p=typeof n=="function"?n:typeof n=="string"?c=>c[n]:c=>{var i;return(i=c.id)!==null&&i!==void 0?i:c.key},d=new Set(t.children),x=new Map;d.forEach(c=>x.set(c.dataset.key,c));let A=r.map(c=>{let i=p(c),f=x.get(i);return f?d.delete(f):(f=o(c),f.dataset.key=i),s(f,c),f});d.forEach(c=>t.removeChild(c)),A.forEach((c,i)=>{c!==t.children[i]&&t.insertBefore(c,t.children[i])})}function h(e,t,r){return e.dispatchEvent(new CustomEvent(t,{detail:r,bubbles:!1}))}function F(e,t,r){e.addEventListener(t,n=>{for(let o of r)h(o,n.type,n.detail)})}function E(e,t,r){var n;if(typeof t!="string"){for(let[s,p]of Object.entries(t))E(e,s,p);return}let o=e.__setAttr=(n=e.__setAttr)!==null&&n!==void 0?n:{};(!o.hasOwnProperty(t)||o[t]!==r)&&(o[t]=r,r==null?e.removeAttribute(t):e.setAttribute(t,`${r}`))}function X(e,t){e.__setHTML!==t&&(e.__setHTML=t,e.__setText=NaN,e.innerHTML=t)}function z(e,t){e.__setText!==t&&(e.__setText=t,e.__setHTML=NaN,e.innerText=t)}function G(e,t){switch(e.tagName){case"INPUT":return l(e,t);case"SELECT":return k(e,t);case"TEXTAREA":return _(e,t)}}function l(e,t){let r=a(t);switch(e.type){case"checkbox":{let n=e.getAttribute("value")||"on",o=Array.isArray(r)?r.indexOf(n)>=0:r===n;e.checked!==o&&(e.checked=o);break}case"radio":{let n=e.getAttribute("value")||"on",o=r===n;e.checked!==o&&(e.checked=o);break}default:if(Array.isArray(r))break;e.value!==r&&(e.value=r);break}}function _(e,t){let r=a(t);!Array.isArray(r)&&e.value!==r&&(e.value=r)}function k(e,t){let r=a(t),n=e.multiple&&Array.isArray(r);for(let o of e.options){let s=o.value||o.textContent;o.selected=n?r.indexOf(s)>=0:r===s}}function a(e){return e==null||e===!1?"":e===!0?"on":Array.isArray(e)?e.map(a):`${e}`}export{v as emit,w as escapeHTML,L as getValue,N as nextFrame,y as qs,O as qsa,C as qsr,I as reconcile,F as relay,h as send,E as setAttr,X as setHTML,z as setText,G as setValue}; | ||
function v(e,t,r){return e.dispatchEvent(new CustomEvent(t,{detail:r,bubbles:!0}))}var m=document.createElement("div");function w(e){return m.innerText=e,m.innerHTML}function L(e){switch(e.tagName){case"INPUT":return T(e);case"SELECT":return e.value||"";case"TEXTAREA":return e.value||"";default:return}}function T(e){switch(e.type){case"checkbox":case"radio":return!!e.checked;default:return e.value||""}}var u=new Set;function N(...e){u.size===0&&requestAnimationFrame(()=>{let t=Array.from(u);u.clear();for(let r of t)try{r()}catch(o){document.dispatchEvent(new ErrorEvent("error",{error:o}))}});for(let t of e)u.add(t)}function y(e,t){return e.querySelector(`:scope ${t}`)}function O(e,t){return e.querySelectorAll(`:scope ${t}`)}function $(e,t){let r=y(e,t);if(!r)throw new Error(`No element matching ${t} in ${e}`);return r}function I(e){let{container:t,items:r,key:o,create:n,update:i}=e,p=typeof o=="function"?o:typeof o=="string"?c=>c[o]:c=>{var s;return(s=c.id)!==null&&s!==void 0?s:c.key},d=new Set(t.children),x=new Map;d.forEach(c=>x.set(c.dataset.key,c));let A=r.map(c=>{let s=`${p(c)}`,f=x.get(s);return f?d.delete(f):(f=n(c),f.dataset.key=s),i(f,c),f});d.forEach(c=>t.removeChild(c)),A.forEach((c,s)=>{c!==t.children[s]&&t.insertBefore(c,t.children[s])})}function h(e,t,r){return e.dispatchEvent(new CustomEvent(t,{detail:r,bubbles:!1}))}function F(e,t,r){e.addEventListener(t,o=>{for(let n of r)h(n,o.type,o.detail)})}function E(e,t,r){var o;if(typeof t!="string"){for(let[i,p]of Object.entries(t))E(e,i,p);return}let n=e.__setAttr=(o=e.__setAttr)!==null&&o!==void 0?o:{};(!n.hasOwnProperty(t)||n[t]!==r)&&(n[t]=r,r==null?e.removeAttribute(t):e.setAttribute(t,`${r}`))}function X(e,t){e.__setHTML!==t&&(e.__setHTML=t,e.__setText=NaN,e.innerHTML=t)}function z(e,t){e.__setText!==t&&(e.__setText=t,e.__setHTML=NaN,e.innerText=t)}function G(e,t){switch(e.tagName){case"INPUT":return l(e,t);case"SELECT":return k(e,t);case"TEXTAREA":return _(e,t)}}function l(e,t){let r=a(t);switch(e.type){case"checkbox":{let o=e.getAttribute("value")||"on",n=Array.isArray(r)?r.indexOf(o)>=0:r===o;e.checked!==n&&(e.checked=n);break}case"radio":{let o=e.getAttribute("value")||"on",n=r===o;e.checked!==n&&(e.checked=n);break}default:if(Array.isArray(r))break;e.value!==r&&(e.value=r);break}}function _(e,t){let r=a(t);!Array.isArray(r)&&e.value!==r&&(e.value=r)}function k(e,t){let r=a(t),o=e.multiple&&Array.isArray(r);for(let n of e.options){let i=n.value||n.textContent;n.selected=o?r.indexOf(i)>=0:r===i}}function a(e){return e==null||e===!1?"":e===!0?"on":Array.isArray(e)?e.map(a):`${e}`}export{v as emit,w as escapeHTML,L as getValue,N as nextFrame,y as qs,O as qsa,$ as qsr,I as reconcile,F as relay,h as send,E as setAttr,X as setHTML,z as setText,G as setValue}; |
@@ -8,3 +8,5 @@ const queue = new Set(); | ||
requestAnimationFrame(() => { | ||
for (const fn of queue) { | ||
const tmp = Array.from(queue); | ||
queue.clear(); | ||
for (const fn of tmp) { | ||
try { | ||
@@ -17,3 +19,2 @@ fn(); | ||
} | ||
queue.clear(); | ||
}); | ||
@@ -20,0 +21,0 @@ } |
@@ -16,3 +16,3 @@ /** | ||
const children = items.map((item) => { | ||
const key = getKey(item); | ||
const key = `${getKey(item)}`; | ||
let child = childrenByKey.get(key); | ||
@@ -19,0 +19,0 @@ if (child) { |
{ | ||
"name": "exdom", | ||
"version": "1.0.0", | ||
"version": "1.0.1", | ||
"description": "Essential DOM utilities", | ||
@@ -40,9 +40,9 @@ "keywords": [ | ||
"c8": "^7.12.0", | ||
"esbuild": "^0.16.12", | ||
"esbuild": "^0.17.19", | ||
"eslint": "^8.15.0", | ||
"express": "^4.18.1", | ||
"prettier": "^2.6.2", | ||
"typedoc": "^0.23.23", | ||
"typescript": "^4.6.4" | ||
"typedoc": "^0.24.7", | ||
"typescript": "^5.0.4" | ||
} | ||
} |
@@ -5,3 +5,3 @@ # exdom | ||
- Query selector short cuts | ||
- Query selector shortcuts | ||
- Soft HTML, text, attribute, and input value setters | ||
@@ -11,5 +11,33 @@ - Reconciliation | ||
Inspired by learnings from [VANILLA TODO](https://github.com/morris/vanilla-todo), | ||
a case study on viable techniques for vanilla web development. | ||
## Installation | ||
Via NPM: | ||
```sh | ||
npm install exdom | ||
``` | ||
When not using a bundler, the following additional setup helps: | ||
```ts | ||
// src/exdom.js or src/exdom.ts | ||
export * from 'https://cdn.jsdelivr.net/npm/exdom@1.0.1/dist/exdom.min.js'; | ||
// src/exdom.d.ts | ||
declare module 'https://cdn.jsdelivr.net/npm/exdom@1.0.1/dist/exdom.min.js' { | ||
export * from 'exdom'; | ||
} | ||
// src/app.js or src/app.ts | ||
import { ... } from './exdom.js'; | ||
// ... | ||
``` | ||
## Usage | ||
TODO | ||
See **[API reference](https://morris.github.io/exdom)** | ||
@@ -16,0 +44,0 @@ ## Tests |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
22323
571
46
0