sprae 10.6.2 → 10.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/directive/class.js +2 -3
- package/directive/default.js +2 -7
- package/directive/if.js +1 -1
- package/directive/ref.js +1 -2
- package/directive/style.js +2 -3
- package/dist/sprae.js +79 -82
- package/dist/sprae.min.js +1 -1
- package/package.json +1 -1
- package/readme.md +0 -6
package/directive/class.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { directive } from "../core.js";
|
|
2
|
-
import { ipol } from './default.js';
|
|
3
2
|
import { effect } from "../signal.js";
|
|
4
3
|
|
|
5
4
|
directive.class = (el, evaluate, state) => {
|
|
@@ -8,8 +7,8 @@ directive.class = (el, evaluate, state) => {
|
|
|
8
7
|
let v = evaluate(state);
|
|
9
8
|
let clsx = new Set;
|
|
10
9
|
if (v) {
|
|
11
|
-
if (typeof v === "string")
|
|
12
|
-
else if (Array.isArray(v)) v.map(v =>
|
|
10
|
+
if (typeof v === "string") v.split(' ').map(cls => clsx.add(cls));
|
|
11
|
+
else if (Array.isArray(v)) v.map(v => v && clsx.add(v));
|
|
13
12
|
else Object.entries(v).map(([k, v]) => v && clsx.add(k));
|
|
14
13
|
}
|
|
15
14
|
for (let cls of cur) if (clsx.has(cls)) clsx.delete(cls); else el.classList.remove(cls);
|
package/directive/default.js
CHANGED
|
@@ -6,8 +6,8 @@ directive.default = (target, evaluate, state, name) => {
|
|
|
6
6
|
// simple prop
|
|
7
7
|
if (!name.startsWith('on')) return effect(() => {
|
|
8
8
|
let value = evaluate(state);
|
|
9
|
-
if (name) attr(target, name,
|
|
10
|
-
else for (let key in value) attr(target, dashcase(key),
|
|
9
|
+
if (name) attr(target, name, value)
|
|
10
|
+
else for (let key in value) attr(target, dashcase(key), value[key]);
|
|
11
11
|
});
|
|
12
12
|
|
|
13
13
|
// bind event to a target
|
|
@@ -155,8 +155,3 @@ const debounce = (fn, wait) => {
|
|
|
155
155
|
export const dashcase = (str) => {
|
|
156
156
|
return str.replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g, (match) => "-" + match.toLowerCase());
|
|
157
157
|
}
|
|
158
|
-
|
|
159
|
-
// interpolate a$<b> fields from context
|
|
160
|
-
export const ipol = (v, state) => {
|
|
161
|
-
return v?.replace ? v.replace(/\$<([^>]+)>/g, (match, field) => state[field] ?? '') : v
|
|
162
|
-
};
|
package/directive/if.js
CHANGED
|
@@ -41,7 +41,7 @@ directive.if = (ifEl, evaluate, state) => {
|
|
|
41
41
|
cur = newEls;
|
|
42
42
|
for (let el of cur) {
|
|
43
43
|
parent.insertBefore(el, holder)
|
|
44
|
-
memo.get(el)
|
|
44
|
+
memo.get(el) === null && memo.delete(el) // remove fake memo to sprae as new
|
|
45
45
|
sprae(el, state)
|
|
46
46
|
}
|
|
47
47
|
}
|
package/directive/ref.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { directive } from "../core.js";
|
|
2
2
|
import { _change, _signals } from "../store.js";
|
|
3
|
-
import { ipol } from './default.js';
|
|
4
3
|
|
|
5
4
|
// ref must be last within primaries, since that must be skipped by :each, but before secondaries
|
|
6
5
|
directive.ref = (el, expr, state) => {
|
|
7
|
-
state[
|
|
6
|
+
state[expr] = el
|
|
8
7
|
}
|
|
9
8
|
|
|
10
9
|
directive.ref.parse = expr => expr
|
package/directive/style.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { directive } from "../core.js";
|
|
2
|
-
import { ipol } from './default.js';
|
|
3
2
|
import { effect } from "../signal.js";
|
|
4
3
|
|
|
5
4
|
directive.style = (el, evaluate, state) => {
|
|
@@ -8,10 +7,10 @@ directive.style = (el, evaluate, state) => {
|
|
|
8
7
|
|
|
9
8
|
return effect(() => {
|
|
10
9
|
let v = evaluate(state);
|
|
11
|
-
if (typeof v === "string") el.setAttribute("style", initStyle +
|
|
10
|
+
if (typeof v === "string") el.setAttribute("style", initStyle + v);
|
|
12
11
|
else {
|
|
13
12
|
el.setAttribute("style", initStyle);
|
|
14
|
-
for (let k in v) el.style.setProperty(k,
|
|
13
|
+
for (let k in v) el.style.setProperty(k, v[k]);
|
|
15
14
|
}
|
|
16
15
|
});
|
|
17
16
|
};
|
package/dist/sprae.js
CHANGED
|
@@ -353,23 +353,99 @@ directive.if = (ifEl, evaluate, state) => {
|
|
|
353
353
|
cur = newEls;
|
|
354
354
|
for (let el of cur) {
|
|
355
355
|
parent.insertBefore(el, holder);
|
|
356
|
-
memo.get(el)
|
|
356
|
+
memo.get(el) === null && memo.delete(el);
|
|
357
357
|
sprae(el, state);
|
|
358
358
|
}
|
|
359
359
|
}
|
|
360
360
|
});
|
|
361
361
|
};
|
|
362
362
|
|
|
363
|
+
// directive/ref.js
|
|
364
|
+
directive.ref = (el, expr, state) => {
|
|
365
|
+
state[expr] = el;
|
|
366
|
+
};
|
|
367
|
+
directive.ref.parse = (expr) => expr;
|
|
368
|
+
|
|
369
|
+
// directive/with.js
|
|
370
|
+
directive.with = (el, evaluate, rootState) => {
|
|
371
|
+
let state;
|
|
372
|
+
return effect(() => {
|
|
373
|
+
let values = evaluate(rootState);
|
|
374
|
+
sprae(el, state ? values : state = store(values, rootState));
|
|
375
|
+
});
|
|
376
|
+
};
|
|
377
|
+
|
|
378
|
+
// directive/html.js
|
|
379
|
+
directive.html = (el, evaluate, state) => {
|
|
380
|
+
let tpl = evaluate(state);
|
|
381
|
+
if (!tpl)
|
|
382
|
+
return;
|
|
383
|
+
let content = (tpl.content || tpl).cloneNode(true);
|
|
384
|
+
el.replaceChildren(content);
|
|
385
|
+
sprae(el, state);
|
|
386
|
+
};
|
|
387
|
+
|
|
388
|
+
// directive/text.js
|
|
389
|
+
directive.text = (el, evaluate, state) => {
|
|
390
|
+
if (el.content)
|
|
391
|
+
el.replaceWith(el = document.createTextNode(""));
|
|
392
|
+
return effect(() => {
|
|
393
|
+
let value = evaluate(state);
|
|
394
|
+
el.textContent = value == null ? "" : value;
|
|
395
|
+
});
|
|
396
|
+
};
|
|
397
|
+
|
|
398
|
+
// directive/class.js
|
|
399
|
+
directive.class = (el, evaluate, state) => {
|
|
400
|
+
let cur = /* @__PURE__ */ new Set();
|
|
401
|
+
return effect(() => {
|
|
402
|
+
let v = evaluate(state);
|
|
403
|
+
let clsx = /* @__PURE__ */ new Set();
|
|
404
|
+
if (v) {
|
|
405
|
+
if (typeof v === "string")
|
|
406
|
+
v.split(" ").map((cls) => clsx.add(cls));
|
|
407
|
+
else if (Array.isArray(v))
|
|
408
|
+
v.map((v2) => v2 && clsx.add(v2));
|
|
409
|
+
else
|
|
410
|
+
Object.entries(v).map(([k, v2]) => v2 && clsx.add(k));
|
|
411
|
+
}
|
|
412
|
+
for (let cls of cur)
|
|
413
|
+
if (clsx.has(cls))
|
|
414
|
+
clsx.delete(cls);
|
|
415
|
+
else
|
|
416
|
+
el.classList.remove(cls);
|
|
417
|
+
for (let cls of cur = clsx)
|
|
418
|
+
el.classList.add(cls);
|
|
419
|
+
});
|
|
420
|
+
};
|
|
421
|
+
|
|
422
|
+
// directive/style.js
|
|
423
|
+
directive.style = (el, evaluate, state) => {
|
|
424
|
+
let initStyle = el.getAttribute("style") || "";
|
|
425
|
+
if (!initStyle.endsWith(";"))
|
|
426
|
+
initStyle += "; ";
|
|
427
|
+
return effect(() => {
|
|
428
|
+
let v = evaluate(state);
|
|
429
|
+
if (typeof v === "string")
|
|
430
|
+
el.setAttribute("style", initStyle + v);
|
|
431
|
+
else {
|
|
432
|
+
el.setAttribute("style", initStyle);
|
|
433
|
+
for (let k in v)
|
|
434
|
+
el.style.setProperty(k, v[k]);
|
|
435
|
+
}
|
|
436
|
+
});
|
|
437
|
+
};
|
|
438
|
+
|
|
363
439
|
// directive/default.js
|
|
364
440
|
directive.default = (target, evaluate, state, name) => {
|
|
365
441
|
if (!name.startsWith("on"))
|
|
366
442
|
return effect(() => {
|
|
367
443
|
let value = evaluate(state);
|
|
368
444
|
if (name)
|
|
369
|
-
attr(target, name,
|
|
445
|
+
attr(target, name, value);
|
|
370
446
|
else
|
|
371
447
|
for (let key in value)
|
|
372
|
-
attr(target, dashcase(key),
|
|
448
|
+
attr(target, dashcase(key), value[key]);
|
|
373
449
|
});
|
|
374
450
|
const ctxs = name.split("..").map((e) => {
|
|
375
451
|
let ctx = { evt: "", target, test: () => true };
|
|
@@ -507,85 +583,6 @@ var debounce = (fn, wait) => {
|
|
|
507
583
|
var dashcase = (str) => {
|
|
508
584
|
return str.replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g, (match) => "-" + match.toLowerCase());
|
|
509
585
|
};
|
|
510
|
-
var ipol = (v, state) => {
|
|
511
|
-
return v?.replace ? v.replace(/\$<([^>]+)>/g, (match, field) => state[field] ?? "") : v;
|
|
512
|
-
};
|
|
513
|
-
|
|
514
|
-
// directive/ref.js
|
|
515
|
-
directive.ref = (el, expr, state) => {
|
|
516
|
-
state[ipol(expr, state)] = el;
|
|
517
|
-
};
|
|
518
|
-
directive.ref.parse = (expr) => expr;
|
|
519
|
-
|
|
520
|
-
// directive/with.js
|
|
521
|
-
directive.with = (el, evaluate, rootState) => {
|
|
522
|
-
let state;
|
|
523
|
-
return effect(() => {
|
|
524
|
-
let values = evaluate(rootState);
|
|
525
|
-
sprae(el, state ? values : state = store(values, rootState));
|
|
526
|
-
});
|
|
527
|
-
};
|
|
528
|
-
|
|
529
|
-
// directive/html.js
|
|
530
|
-
directive.html = (el, evaluate, state) => {
|
|
531
|
-
let tpl = evaluate(state);
|
|
532
|
-
if (!tpl)
|
|
533
|
-
return;
|
|
534
|
-
let content = (tpl.content || tpl).cloneNode(true);
|
|
535
|
-
el.replaceChildren(content);
|
|
536
|
-
sprae(el, state);
|
|
537
|
-
};
|
|
538
|
-
|
|
539
|
-
// directive/text.js
|
|
540
|
-
directive.text = (el, evaluate, state) => {
|
|
541
|
-
if (el.content)
|
|
542
|
-
el.replaceWith(el = document.createTextNode(""));
|
|
543
|
-
return effect(() => {
|
|
544
|
-
let value = evaluate(state);
|
|
545
|
-
el.textContent = value == null ? "" : value;
|
|
546
|
-
});
|
|
547
|
-
};
|
|
548
|
-
|
|
549
|
-
// directive/class.js
|
|
550
|
-
directive.class = (el, evaluate, state) => {
|
|
551
|
-
let cur = /* @__PURE__ */ new Set();
|
|
552
|
-
return effect(() => {
|
|
553
|
-
let v = evaluate(state);
|
|
554
|
-
let clsx = /* @__PURE__ */ new Set();
|
|
555
|
-
if (v) {
|
|
556
|
-
if (typeof v === "string")
|
|
557
|
-
ipol(v, state).split(" ").map((cls) => clsx.add(cls));
|
|
558
|
-
else if (Array.isArray(v))
|
|
559
|
-
v.map((v2) => (v2 = ipol(v2, state)) && clsx.add(v2));
|
|
560
|
-
else
|
|
561
|
-
Object.entries(v).map(([k, v2]) => v2 && clsx.add(k));
|
|
562
|
-
}
|
|
563
|
-
for (let cls of cur)
|
|
564
|
-
if (clsx.has(cls))
|
|
565
|
-
clsx.delete(cls);
|
|
566
|
-
else
|
|
567
|
-
el.classList.remove(cls);
|
|
568
|
-
for (let cls of cur = clsx)
|
|
569
|
-
el.classList.add(cls);
|
|
570
|
-
});
|
|
571
|
-
};
|
|
572
|
-
|
|
573
|
-
// directive/style.js
|
|
574
|
-
directive.style = (el, evaluate, state) => {
|
|
575
|
-
let initStyle = el.getAttribute("style") || "";
|
|
576
|
-
if (!initStyle.endsWith(";"))
|
|
577
|
-
initStyle += "; ";
|
|
578
|
-
return effect(() => {
|
|
579
|
-
let v = evaluate(state);
|
|
580
|
-
if (typeof v === "string")
|
|
581
|
-
el.setAttribute("style", initStyle + ipol(v, state));
|
|
582
|
-
else {
|
|
583
|
-
el.setAttribute("style", initStyle);
|
|
584
|
-
for (let k in v)
|
|
585
|
-
el.style.setProperty(k, ipol(v[k], state));
|
|
586
|
-
}
|
|
587
|
-
});
|
|
588
|
-
};
|
|
589
586
|
|
|
590
587
|
// directive/value.js
|
|
591
588
|
directive.value = (el, evaluate, state) => {
|
package/dist/sprae.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e,t,r,l,n,s=Object.defineProperty,o=Symbol("signals"),a=Symbol("length");function i(t,r){if(!t)return t;if(t[o])return t;if(Array.isArray(t))return function(t){let r;if(t[o])return t;let l=e(t.length),n=Array(t.length).fill();const s=new Proxy(n,{get:(s,c)=>"symbol"==typeof c?c===a?l:c===o?n:n[c]:"length"===c?u[r]?l.peek():l.value:(r=c,n[c]?n[c].valueOf():c<n.length?(n[c]=e(i(t[c]))).value:void 0),set(e,t,r){if("length"===t){for(let e=r,t=n.length;e<t;e++)delete s[e];return l.value=n.length=r,!0}return c(n,t,r),t>=l.peek()&&(l.value=n.length=Number(t)+1),!0},deleteProperty:(e,t)=>(n[t]&&f(n,t),1)});return s}(t);if(t.constructor!==Object)return t;let l={...r?.[o]},s=e(Object.values(t).length);const p=new Proxy(l,{get:(e,t)=>t===a?s:t===o?l:l[t]?.valueOf(),set:(e,t,r,n)=>(n=l[t],c(l,t,r),n??++s.value,1),deleteProperty:(e,t)=>(l[t]&&(f(l,t),s.value--),1),ownKeys:()=>(s.value,Reflect.ownKeys(l))});for(let e in t){const r=Object.getOwnPropertyDescriptor(t,e);r?.get?(l[e]=n(r.get.bind(p)))._set=r.set?.bind(p):(l[e]=void 0,c(l,e,t[e]))}return p}var u={push:1,pop:1,shift:1,unshift:1,splice:1};function c(t,n,s){let o=t[n];if("_"===n[0])t[n]=s;else if(o)if(s===o.peek());else if(o._set)o._set(s);else if(Array.isArray(s)&&Array.isArray(o.peek())){const e=o.peek();e[a]?r((()=>{l((()=>{let t=0,r=s.length;for(;t<r;t++)e[t]=s[t];e.length=r}))})):o.value=s}else o.value=i(s);else t[n]=o=s?.peek?s:e(i(s))}function f(e,t){const r=e[t],l=r[Symbol.dispose];l&&delete r[Symbol.dispose],delete e[t],l?.()}var p=Symbol.dispose||=Symbol("dispose"),d={},y=new WeakMap;function h(e,t){if(!e?.children)return;if(y.has(e))return Object.assign(y.get(e),t);const r=i(t||{}),l=[];return function e(t,n=t.parentNode){if(t.attributes)for(let e=0;e<t.attributes.length;){let s=t.attributes[e];if(":"===s.name[0]){t.removeAttribute(s.name);let e=s.name.slice(1).split(":");for(let n of e){let e=d[n]||d.default,o=e(t,(e.parse||g)(s.value,g),r,n);o&&l.push(o)}if(y.has(t))return t[p]&&l.push(t[p]);if(t.parentNode!==n)return}else e++}for(let r of[...t.children])e(r,t)}(e),y.has(e)||y.set(e,r),e[p]=()=>{for(;l.length;)l.pop()();y.delete(e)},r}var m,v={},g=(e,t,r)=>{if(r=v[e=e.trim()])return r;try{r=m(e)}catch(r){b(r,t,e)}return v[e]=r},b=(e,t,r="")=>{throw Object.assign(e,{message:`∴ ${e.message}\n\n${t}${r?`="${r}"\n\n`:""}`,expr:r})};h.use=s=>{s.signal&&function(s){e=s.signal,t=s.effect,n=s.computed,l=s.batch||(e=>e()),r=s.untracked||l}(s),s.compile&&(m=s.compile)};var k,A,S={};((e,t)=>{for(var r in t)s(e,r,{get:t[r],enumerable:!0})})(S,{batch:()=>x,computed:()=>N,effect:()=>O,signal:()=>w,untracked:()
|
|
1
|
+
var e,t,r,l,n,s=Object.defineProperty,o=Symbol("signals"),a=Symbol("length");function i(t,r){if(!t)return t;if(t[o])return t;if(Array.isArray(t))return function(t){let r;if(t[o])return t;let l=e(t.length),n=Array(t.length).fill();const s=new Proxy(n,{get:(s,c)=>"symbol"==typeof c?c===a?l:c===o?n:n[c]:"length"===c?u[r]?l.peek():l.value:(r=c,n[c]?n[c].valueOf():c<n.length?(n[c]=e(i(t[c]))).value:void 0),set(e,t,r){if("length"===t){for(let e=r,t=n.length;e<t;e++)delete s[e];return l.value=n.length=r,!0}return c(n,t,r),t>=l.peek()&&(l.value=n.length=Number(t)+1),!0},deleteProperty:(e,t)=>(n[t]&&f(n,t),1)});return s}(t);if(t.constructor!==Object)return t;let l={...r?.[o]},s=e(Object.values(t).length);const p=new Proxy(l,{get:(e,t)=>t===a?s:t===o?l:l[t]?.valueOf(),set:(e,t,r,n)=>(n=l[t],c(l,t,r),n??++s.value,1),deleteProperty:(e,t)=>(l[t]&&(f(l,t),s.value--),1),ownKeys:()=>(s.value,Reflect.ownKeys(l))});for(let e in t){const r=Object.getOwnPropertyDescriptor(t,e);r?.get?(l[e]=n(r.get.bind(p)))._set=r.set?.bind(p):(l[e]=void 0,c(l,e,t[e]))}return p}var u={push:1,pop:1,shift:1,unshift:1,splice:1};function c(t,n,s){let o=t[n];if("_"===n[0])t[n]=s;else if(o)if(s===o.peek());else if(o._set)o._set(s);else if(Array.isArray(s)&&Array.isArray(o.peek())){const e=o.peek();e[a]?r((()=>{l((()=>{let t=0,r=s.length;for(;t<r;t++)e[t]=s[t];e.length=r}))})):o.value=s}else o.value=i(s);else t[n]=o=s?.peek?s:e(i(s))}function f(e,t){const r=e[t],l=r[Symbol.dispose];l&&delete r[Symbol.dispose],delete e[t],l?.()}var p=Symbol.dispose||=Symbol("dispose"),d={},y=new WeakMap;function h(e,t){if(!e?.children)return;if(y.has(e))return Object.assign(y.get(e),t);const r=i(t||{}),l=[];return function e(t,n=t.parentNode){if(t.attributes)for(let e=0;e<t.attributes.length;){let s=t.attributes[e];if(":"===s.name[0]){t.removeAttribute(s.name);let e=s.name.slice(1).split(":");for(let n of e){let e=d[n]||d.default,o=e(t,(e.parse||g)(s.value,g),r,n);o&&l.push(o)}if(y.has(t))return t[p]&&l.push(t[p]);if(t.parentNode!==n)return}else e++}for(let r of[...t.children])e(r,t)}(e),y.has(e)||y.set(e,r),e[p]=()=>{for(;l.length;)l.pop()();y.delete(e)},r}var m,v={},g=(e,t,r)=>{if(r=v[e=e.trim()])return r;try{r=m(e)}catch(r){b(r,t,e)}return v[e]=r},b=(e,t,r="")=>{throw Object.assign(e,{message:`∴ ${e.message}\n\n${t}${r?`="${r}"\n\n`:""}`,expr:r})};h.use=s=>{s.signal&&function(s){e=s.signal,t=s.effect,n=s.computed,l=s.batch||(e=>e()),r=s.untracked||l}(s),s.compile&&(m=s.compile)};var k,A,S={};((e,t)=>{for(var r in t)s(e,r,{get:t[r],enumerable:!0})})(S,{batch:()=>x,computed:()=>N,effect:()=>O,signal:()=>w,untracked:()=>j});var w=(e,t,r=new Set)=>((t={get value(){return k?.deps.push(r.add(k)),e},set value(t){if(t!==e){e=t;for(let e of r)A?A.add(e):e()}},peek:()=>e}).toJSON=t.then=t.toString=t.valueOf=()=>t.value,t),O=(e,t,r,l)=>(l=(r=l=>{t?.call?.(),l=k,k=r;try{t=e()}finally{k=l}}).deps=[],r(),e=>{for(t?.call?.();e=l.pop();)e.delete(r)}),N=(e,t=w(),r,l)=>((r={get value(){return l||=O((()=>t.value=e())),t.value},peek:t.peek}).toJSON=r.then=r.toString=r.valueOf=()=>r.value,r),x=e=>{let t=A;t||(A=new Set);try{e()}finally{if(!t){t=A,A=null;for(const e of t)e()}}},j=(e,t,r)=>(t=k,k=null,r=e(),k=t,r),$=Symbol(":each");d.each=(e,[l,s,u],c)=>{const f=e[$]=document.createTextNode("");e.replaceWith(f);let p,d,y=0;const m=n((()=>{d=null;let e=u(c);return"number"==typeof e&&(e=Array.from({length:e},((e,t)=>t+1))),e?.constructor===Object&&(d=Object.keys(e),e=Object.values(e)),e||[]})),v=()=>{r((()=>{let t=0,r=m.value,n=r.length;if(p&&!p[a]){for(let e of p[o]||[])e[Symbol.dispose]();p=null,y=0}if(n<y)p.length=n;else{if(p)for(;t<y;t++)p[t]=r[t];else p=r;for(;t<n;t++){p[t]=r[t];let n=t,a=i({[l]:p[o]?.[n]||p[n],[s]:d?d[n]:n},c),u=(e.content||e).cloneNode(!0),y=e.content?{children:[...u.children],remove(){this.children.map((e=>e.remove()))}}:u;f.before(u),h(y,a),((p[o]||=[])[t]||={})[Symbol.dispose]=()=>{y[Symbol.dispose](),y.remove()}}}y=n}))};let g=0;return t((()=>{m.value[a]?.value,g?g++:(v(),queueMicrotask((()=>(g&&v(),g=0))))}))},d.each.parse=(e,t)=>{let[r,l]=e.split(/\s+in\s+/),[n,s="$"]=r.split(/\s*,\s*/);return[n,s,t(l)]};var E=Symbol("if");d.if=(e,r,l)=>{let n,s,o,a=e.parentNode,i=e.nextElementSibling,u=document.createTextNode(""),c=[];e.after(u),e.remove(),n=c,s=e.content?[...e.content.childNodes]:[e],i?.hasAttribute(":else")?(i.removeAttribute(":else"),i.hasAttribute(":if")?o=c:(i.remove(),o=i.content?[...i.content.childNodes]:[i])):o=c;for(let e of[...s,...o])y.set(e,null);return t((()=>{const t=r(l)?s:e[E]?c:o;if(i&&(i[E]=t===s),n!=t){n[0]?.[$]&&(n=[n[0][$]]);for(let e of n)e.remove();n=t;for(let e of n)a.insertBefore(e,u),null===y.get(e)&&y.delete(e),h(e,l)}}))},d.ref=(e,t,r)=>{r[t]=e},d.ref.parse=e=>e,d.with=(e,r,l)=>{let n;return t((()=>{let t=r(l);h(e,n?t:n=i(t,l))}))},d.html=(e,t,r)=>{let l=t(r);if(!l)return;let n=(l.content||l).cloneNode(!0);e.replaceChildren(n),h(e,r)},d.text=(e,r,l)=>(e.content&&e.replaceWith(e=document.createTextNode("")),t((()=>{let t=r(l);e.textContent=null==t?"":t}))),d.class=(e,r,l)=>{let n=new Set;return t((()=>{let t=r(l),s=new Set;t&&("string"==typeof t?t.split(" ").map((e=>s.add(e))):Array.isArray(t)?t.map((e=>e&&s.add(e))):Object.entries(t).map((([e,t])=>t&&s.add(e))));for(let t of n)s.has(t)?s.delete(t):e.classList.remove(t);for(let t of n=s)e.classList.add(t)}))},d.style=(e,r,l)=>{let n=e.getAttribute("style")||"";return n.endsWith(";")||(n+="; "),t((()=>{let t=r(l);if("string"==typeof t)e.setAttribute("style",n+t);else{e.setAttribute("style",n);for(let r in t)e.style.setProperty(r,t[r])}}))},d.default=(e,r,l,n)=>{if(!n.startsWith("on"))return t((()=>{let t=r(l);if(n)W(e,n,t);else for(let r in t)W(e,D(r),t[r])}));const s=n.split("..").map((t=>{let r={evt:"",target:e,test:()=>!0};return r.evt=(t.startsWith("on")?t.slice(2):t).replace(/\.(\w+)?-?([-\w]+)?/g,((e,t,l="")=>(r.test=P[t]?.(r,...l.split("-"))||r.test,""))),r}));if(1==s.length)return t((()=>f(r(l),s[0])));let o,a,i,u=0;const c=e=>{i=f((t=>(i(),a=e?.(t),(u=++u%s.length)?c(a):o&&c(o))),s[u])};return t((()=>(o=r(l),!i&&c(o),()=>o=null)));function f(e,{evt:t,target:r,test:l,defer:n,stop:s,prevent:o,immediate:a,...i}){n&&(e=n(e));const u=r=>{try{l(r)&&(s&&(a?r.stopImmediatePropagation():r.stopPropagation()),o&&r.preventDefault(),e?.(r))}catch(r){b(r,`:on${t}`,e)}};return r.addEventListener(t,u,i),()=>r.removeEventListener(t,u,i)}};var P={prevent(e){e.prevent=!0},stop(e){e.stop=!0},immediate(e){e.immediate=!0},once(e){e.once=!0},passive(e){e.passive=!0},capture(e){e.capture=!0},window(e){e.target=window},document(e){e.target=document},throttle(e,t){e.defer=e=>C(e,t?Number(t)||0:108)},debounce(e,t){e.defer=e=>_(e,t?Number(t)||0:108)},outside:e=>t=>{let r=e.target;return!(r.contains(t.target)||!1===t.target.isConnected||r.offsetWidth<1&&r.offsetHeight<1)},self:e=>t=>t.target===e.target,ctrl:(e,...t)=>e=>T.ctrl(e)&&t.every((t=>T[t]?T[t](e):e.key===t)),shift:(e,...t)=>e=>T.shift(e)&&t.every((t=>T[t]?T[t](e):e.key===t)),alt:(e,...t)=>e=>T.alt(e)&&t.every((t=>T[t]?T[t](e):e.key===t)),meta:(e,...t)=>e=>T.meta(e)&&t.every((t=>T[t]?T[t](e):e.key===t)),arrow:()=>T.arrow,enter:()=>T.enter,esc:()=>T.esc,tab:()=>T.tab,space:()=>T.space,delete:()=>T.delete,digit:()=>T.digit,letter:()=>T.letter,char:()=>T.char},T={ctrl:e=>e.ctrlKey||"Control"===e.key||"Ctrl"===e.key,shift:e=>e.shiftKey||"Shift"===e.key,alt:e=>e.altKey||"Alt"===e.key,meta:e=>e.metaKey||"Meta"===e.key||"Command"===e.key,arrow:e=>e.key.startsWith("Arrow"),enter:e=>"Enter"===e.key,esc:e=>e.key.startsWith("Esc"),tab:e=>"Tab"===e.key,space:e=>" "===e.key||"Space"===e.key||" "===e.key,delete:e=>"Delete"===e.key||"Backspace"===e.key,digit:e=>/^\d$/.test(e.key),letter:e=>/^\p{L}$/gu.test(e.key),char:e=>/^\S$/.test(e.key)},W=(e,t,r)=>{null==r||!1===r?e.removeAttribute(t):e.setAttribute(t,!0===r?"":"number"==typeof r||"string"==typeof r?r:"")},C=(e,t)=>{let r,l,n=s=>{r=!0,setTimeout((()=>{if(r=!1,l)return l=!1,n(s),e(s)}),t)};return t=>r?l=!0:(n(t),e(t))},_=(e,t)=>{let r;return l=>{clearTimeout(r),r=setTimeout((()=>{r=null,e(l)}),t)}},D=e=>e.replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g,(e=>"-"+e.toLowerCase()));d.value=(e,r,l)=>{let n,s,o="text"===e.type||""===e.type?t=>e.setAttribute("value",e.value=null==t?"":t):"TEXTAREA"===e.tagName||"text"===e.type||""===e.type?t=>(n=e.selectionStart,s=e.selectionEnd,e.setAttribute("value",e.value=null==t?"":t),n&&e.setSelectionRange(n,s)):"checkbox"===e.type?t=>(e.checked=t,W(e,"checked",t)):"select-one"===e.type?t=>{for(let t in e.options)t.removeAttribute("selected");e.value=t,e.selectedOptions[0]?.setAttribute("selected","")}:t=>e.value=t;return t((()=>o(r(l))))},d.fx=(e,r,l)=>t((()=>r(l))),h.use(S),h.use({compile:e=>h.constructor("__scope",`with (__scope) { return ${e} };`)});var K=h;export{K as default};
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -83,9 +83,6 @@ Set class value.
|
|
|
83
83
|
<!-- appends class -->
|
|
84
84
|
<div class="foo" :class="bar"></div>
|
|
85
85
|
|
|
86
|
-
<!-- interpolation -->
|
|
87
|
-
<div :class="'foo $<bar>'"></div>
|
|
88
|
-
|
|
89
86
|
<!-- array/object, a-la clsx -->
|
|
90
87
|
<div :class="[foo && 'foo', {bar: bar}]"></div>
|
|
91
88
|
```
|
|
@@ -98,9 +95,6 @@ Set style value.
|
|
|
98
95
|
<!-- extends style -->
|
|
99
96
|
<div style="foo: bar" :style="'baz: qux'">
|
|
100
97
|
|
|
101
|
-
<!-- interpolation -->
|
|
102
|
-
<div :style="'foo: $<bar>'"></div>
|
|
103
|
-
|
|
104
98
|
<!-- object -->
|
|
105
99
|
<div :style="{foo: 'bar'}"></div>
|
|
106
100
|
|