spikijs 1.1.38 → 1.1.39
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/package.json +1 -1
- package/spiki.d.ts +7 -10
- package/spiki.esm.js +33 -48
- package/spiki.esm.min.js +1 -1
- package/spiki.js +33 -48
- package/spiki.min.js +1 -1
package/package.json
CHANGED
package/spiki.d.ts
CHANGED
|
@@ -42,6 +42,10 @@ export interface SpikiInstance {
|
|
|
42
42
|
*/
|
|
43
43
|
destroy?(): void;
|
|
44
44
|
|
|
45
|
+
/**
|
|
46
|
+
* Allows dynamic properties (e.g. variables from s-for).
|
|
47
|
+
*/
|
|
48
|
+
[key: string]: any;
|
|
45
49
|
}
|
|
46
50
|
|
|
47
51
|
/**
|
|
@@ -52,18 +56,11 @@ export type ComponentFactory<T> = () => T & ThisType<T & SpikiInstance>;
|
|
|
52
56
|
|
|
53
57
|
export interface Spiki {
|
|
54
58
|
/**
|
|
55
|
-
* Registers a new component
|
|
56
|
-
* @param name Name matching 's-data' in HTML.
|
|
57
|
-
* @param factory Factory function returning state.
|
|
58
|
-
*/
|
|
59
|
-
data<T>(name: string, factory: ComponentFactory<T>): void;
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Registers a new component with one or more modules/factories.
|
|
59
|
+
* Registers a new component.
|
|
63
60
|
* @param name Name matching 's-data' in HTML.
|
|
64
|
-
* @param
|
|
61
|
+
* @param factory Function returning the state object.
|
|
65
62
|
*/
|
|
66
|
-
data<T extends object>(name: string,
|
|
63
|
+
data<T extends object>(name: string, factory: ComponentFactory<T>): void;
|
|
67
64
|
|
|
68
65
|
/**
|
|
69
66
|
* Scans the document and mounts all components.
|
package/spiki.esm.js
CHANGED
|
@@ -96,9 +96,7 @@ var spiki = (() => {
|
|
|
96
96
|
var i = 0, len = effects.length;
|
|
97
97
|
for (; i < len; i++) {
|
|
98
98
|
var effect = effects[i];
|
|
99
|
-
|
|
100
|
-
effect.sched ? effect.sched(effect) : effect();
|
|
101
|
-
}
|
|
99
|
+
effect.sched ? effect.sched(effect) : effect();
|
|
102
100
|
}
|
|
103
101
|
}
|
|
104
102
|
};
|
|
@@ -129,15 +127,8 @@ var spiki = (() => {
|
|
|
129
127
|
return () => cleanup(runner);
|
|
130
128
|
};
|
|
131
129
|
|
|
132
|
-
var isTrackable = (obj) => {
|
|
133
|
-
return obj && typeof obj === 'object' && !obj._y &&
|
|
134
|
-
!(obj instanceof Node) && !(obj instanceof Date) &&
|
|
135
|
-
!(obj instanceof RegExp) && !(obj instanceof Map) &&
|
|
136
|
-
!(obj instanceof Set) && !(obj instanceof Promise);
|
|
137
|
-
};
|
|
138
|
-
|
|
139
130
|
var makeReactive = (obj) => {
|
|
140
|
-
if (!
|
|
131
|
+
if (!obj || typeof obj !== 'object' || obj._y || obj instanceof Node) return obj;
|
|
141
132
|
if (Object.prototype.hasOwnProperty.call(obj, '_p')) return obj._p;
|
|
142
133
|
|
|
143
134
|
var proxy = new Proxy(obj, {
|
|
@@ -180,22 +171,22 @@ var spiki = (() => {
|
|
|
180
171
|
}
|
|
181
172
|
if (comp.d) comp.r();
|
|
182
173
|
track(target, key);
|
|
183
|
-
return
|
|
174
|
+
return (comp.v && typeof comp.v === 'object' && !(comp.v instanceof Node)) ? makeReactive(comp.v) : comp.v;
|
|
184
175
|
}
|
|
185
176
|
|
|
186
177
|
if (Object.prototype.hasOwnProperty.call(target, key)) {
|
|
187
|
-
track(target,
|
|
178
|
+
track(target, key);
|
|
188
179
|
}
|
|
189
180
|
|
|
190
181
|
var res = Reflect.get(target, key, receiver);
|
|
191
|
-
return
|
|
182
|
+
return (res && typeof res === 'object' && !(res instanceof Node)) ? makeReactive(res) : res;
|
|
192
183
|
},
|
|
193
184
|
set: (target, key, val, receiver) => {
|
|
194
185
|
var old = target[key];
|
|
195
186
|
var isArr = Array.isArray(target);
|
|
196
|
-
var hadKey = isArr ?
|
|
187
|
+
var hadKey = isArr ? Number(key) < target.length : Object.prototype.hasOwnProperty.call(target, key);
|
|
197
188
|
|
|
198
|
-
if (
|
|
189
|
+
if (target._i && !hadKey) {
|
|
199
190
|
var proto = Object.getPrototypeOf(target);
|
|
200
191
|
while (proto && proto !== Object.prototype) {
|
|
201
192
|
var rawProto = proto._t || proto;
|
|
@@ -283,13 +274,13 @@ var spiki = (() => {
|
|
|
283
274
|
if (!cmpReg[name]) return;
|
|
284
275
|
|
|
285
276
|
var data = cmpReg[name]();
|
|
286
|
-
data.$refs = {};
|
|
287
|
-
data.$root = rootElement;
|
|
288
|
-
data.$store = globalStore;
|
|
289
|
-
data.$parent = parentScope;
|
|
290
277
|
if (parentScope) Object.setPrototypeOf(data, parentScope);
|
|
291
278
|
|
|
292
279
|
var state = makeReactive(data);
|
|
280
|
+
state.$refs = {};
|
|
281
|
+
state.$root = rootElement;
|
|
282
|
+
state.$store = globalStore;
|
|
283
|
+
state.$parent = parentScope;
|
|
293
284
|
|
|
294
285
|
var cleanups = [];
|
|
295
286
|
var listeners = Object.create(null);
|
|
@@ -316,12 +307,10 @@ var spiki = (() => {
|
|
|
316
307
|
|
|
317
308
|
if (handler.model) {
|
|
318
309
|
var val = target.type === 'checkbox' ? target.checked : target.value;
|
|
319
|
-
if (
|
|
320
|
-
val = val === '' ? null : Number(val);
|
|
321
|
-
} else if (typeof val === 'string') {
|
|
310
|
+
if (typeof val === 'string') {
|
|
322
311
|
var clean = val.trim();
|
|
323
|
-
if (clean &&
|
|
324
|
-
|
|
312
|
+
if (clean && isFinite(clean)) {
|
|
313
|
+
if (clean.charCodeAt(0) !== 48 || clean.length === 1 || clean.charCodeAt(1) === 46) {
|
|
325
314
|
val = Number(clean);
|
|
326
315
|
}
|
|
327
316
|
}
|
|
@@ -437,7 +426,11 @@ var spiki = (() => {
|
|
|
437
426
|
for (var i = 0; i < len; i++) {
|
|
438
427
|
var key = isArr ? i : keys[i];
|
|
439
428
|
var item = isArr ? list[i] : list[key];
|
|
440
|
-
var unique
|
|
429
|
+
var unique;
|
|
430
|
+
if (item == null || typeof item !== 'object') unique = String(item);
|
|
431
|
+
else if (keyPath) unique = evalPath(item, keyPath).val;
|
|
432
|
+
else unique = String(key) + '_o';
|
|
433
|
+
|
|
441
434
|
if (usedKeys[unique]) unique += '_' + i;
|
|
442
435
|
var row = nodePool[unique];
|
|
443
436
|
if (row) {
|
|
@@ -458,14 +451,14 @@ var spiki = (() => {
|
|
|
458
451
|
nodePool[unique] = row;
|
|
459
452
|
}
|
|
460
453
|
if (row.nodes[0] === anchor) {
|
|
461
|
-
if (frag.childNodes.length
|
|
454
|
+
if (frag.childNodes.length) end.parentNode.insertBefore(frag, anchor);
|
|
462
455
|
anchor = row.nodes[row.nodes.length - 1].nextSibling;
|
|
463
456
|
} else {
|
|
464
457
|
for (var n = 0; n < row.nodes.length; n++) frag.appendChild(row.nodes[n]);
|
|
465
458
|
}
|
|
466
459
|
usedKeys[unique] = true;
|
|
467
460
|
}
|
|
468
|
-
if (frag.childNodes.length
|
|
461
|
+
if (frag.childNodes.length) end.parentNode.insertBefore(frag, anchor);
|
|
469
462
|
for (var k in nodePool) if (!usedKeys[k]) {
|
|
470
463
|
nodePool[k].cleanups.forEach(c => c());
|
|
471
464
|
nodePool[k].nodes.forEach(n => n.remove());
|
|
@@ -492,7 +485,6 @@ var spiki = (() => {
|
|
|
492
485
|
}
|
|
493
486
|
else if (attrName.charCodeAt(0) === 115 && attrName.charCodeAt(1) === 45) {
|
|
494
487
|
let type = attrName.slice(2);
|
|
495
|
-
if (type === 'data') continue;
|
|
496
488
|
let p = attrValue.indexOf('.') === -1 ? attrValue : attrValue.split('.');
|
|
497
489
|
|
|
498
490
|
if (type === 'init' || type === 'destroy') {
|
|
@@ -518,14 +510,11 @@ var spiki = (() => {
|
|
|
518
510
|
else if (type === 'model') {
|
|
519
511
|
bindings.push({ type: 'value', path: p });
|
|
520
512
|
el._s = scope; el._h = el._h || {};
|
|
521
|
-
var evt = (el.type === 'checkbox' || el.type === 'radio' || el.tagName
|
|
513
|
+
var evt = (el.type === 'checkbox' || el.type === 'radio' || el.tagName==='SELECT') ? 'change' : 'input';
|
|
522
514
|
|
|
523
515
|
if (evt === 'input') {
|
|
524
516
|
el.addEventListener('compositionstart', () => el._c = true);
|
|
525
|
-
el.addEventListener('compositionend', () => {
|
|
526
|
-
el._c = false;
|
|
527
|
-
el.dispatchEvent(new Event('input', { bubbles: true }));
|
|
528
|
-
});
|
|
517
|
+
el.addEventListener('compositionend', () => { el._c = false; handle({target: el, type: 'input'}); });
|
|
529
518
|
}
|
|
530
519
|
|
|
531
520
|
(el._h[evt] = el._h[evt] || []).push({ model: true, p: p });
|
|
@@ -543,13 +532,6 @@ var spiki = (() => {
|
|
|
543
532
|
}
|
|
544
533
|
}
|
|
545
534
|
|
|
546
|
-
var child = el.firstChild;
|
|
547
|
-
while (child) {
|
|
548
|
-
var nextSibling = child.nextSibling;
|
|
549
|
-
walk(child, scope, parentCleanups);
|
|
550
|
-
child = nextSibling;
|
|
551
|
-
}
|
|
552
|
-
|
|
553
535
|
if (bindings.length) {
|
|
554
536
|
parentCleanups.push(effect(() => {
|
|
555
537
|
var i = bindings.length;
|
|
@@ -568,6 +550,13 @@ var spiki = (() => {
|
|
|
568
550
|
}
|
|
569
551
|
}, nextTick));
|
|
570
552
|
}
|
|
553
|
+
|
|
554
|
+
var child = el.firstChild;
|
|
555
|
+
while (child) {
|
|
556
|
+
var nextSibling = child.nextSibling;
|
|
557
|
+
walk(child, scope, parentCleanups);
|
|
558
|
+
child = nextSibling;
|
|
559
|
+
}
|
|
571
560
|
};
|
|
572
561
|
|
|
573
562
|
walk(rootElement, state, cleanups);
|
|
@@ -577,7 +566,7 @@ var spiki = (() => {
|
|
|
577
566
|
unmount: () => {
|
|
578
567
|
if (state.destroy) state.destroy.call(state);
|
|
579
568
|
var i = cleanups.length; while (i--) cleanups[i]();
|
|
580
|
-
for
|
|
569
|
+
for(var k in listeners) rootElement.removeEventListener(k, handle);
|
|
581
570
|
if (state._c) for (var k in state._c) cleanup(state._c[k].r);
|
|
582
571
|
rootElement._m = null;
|
|
583
572
|
}
|
|
@@ -587,15 +576,11 @@ var spiki = (() => {
|
|
|
587
576
|
};
|
|
588
577
|
|
|
589
578
|
var raw = (o) => {
|
|
590
|
-
if (!o || typeof o !== 'object'
|
|
579
|
+
if (!o || typeof o !== 'object') return o;
|
|
591
580
|
var target = o._t || o;
|
|
592
581
|
if (Array.isArray(target)) return target.map(e => raw(e));
|
|
593
582
|
var result = {};
|
|
594
|
-
for (var i in target)
|
|
595
|
-
if (Object.prototype.hasOwnProperty.call(target, i) && i.charCodeAt(0) !== 36 && i.charCodeAt(0) !== 95) {
|
|
596
|
-
result[i] = raw(target[i]);
|
|
597
|
-
}
|
|
598
|
-
}
|
|
583
|
+
for (var i in target) result[i] = raw(target[i]);
|
|
599
584
|
return result;
|
|
600
585
|
};
|
|
601
586
|
|
package/spiki.esm.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var spiki=(()=>{var e,t=Object.create(null),r=[],a=!1,n=null,o=!1,l=Promise.resolve(),i={blur:1,focus:1,scroll:1,load:1,error:1,mouseenter:1,mouseleave:1,toggle:1},s=e=>{e._q||(e._q=!0,r.push(e),a||(a=!0,l.then(()=>{var e=r;r=[],a=!1;for(var t=0;t<e.length;t++)e[t]._q=!1,e[t]()})))},c=(e,t)=>{var r,a=e;if("string"==typeof t)r=e?e[t]:void 0;else{for(var n=0,o=t.length;n<o-1&&a;)a=a[t[n++]];r=a?a[t[o-1]]:void 0}if(void 0===r){var l=Array.isArray(t)?t.join("."):t;console.warn("[spikijs] Property undefined: "+l)}return{ctx:a,val:r}},
|
|
1
|
+
var spiki=(()=>{var e,t=Object.create(null),r=[],a=!1,n=null,o=!1,l=Promise.resolve(),i={blur:1,focus:1,scroll:1,load:1,error:1,mouseenter:1,mouseleave:1,toggle:1},s=e=>{e._q||(e._q=!0,r.push(e),a||(a=!0,l.then(()=>{var e=r;r=[],a=!1;for(var t=0;t<e.length;t++)e[t]._q=!1,e[t]()})))},c=(e,t)=>{var r,a=e;if("string"==typeof t)r=e?e[t]:void 0;else{for(var n=0,o=t.length;n<o-1&&a;)a=a[t[n++]];r=a?a[t[o-1]]:void 0}if(void 0===r){var l=Array.isArray(t)?t.join("."):t;console.warn("[spikijs] Property undefined: "+l)}return{ctx:a,val:r}},f={};["push","pop","shift","unshift","splice","sort","reverse"].forEach(e=>{f[e]=function(...t){o=!0;try{return Array.prototype[e].apply(this,t)}finally{o=!1,u(this,"length")}}});var p=(e,t)=>{if(n){var r=e._d||(Object.defineProperty(e,"_d",{value:Object.create(null),writable:!0}),e._d),a=r[t]||(r[t]=[]);-1===a.indexOf(n)&&(a.push(n),n.deps.push(a))}},u=(e,t)=>{if(!o&&e._d&&e._d[t])for(var r=e._d[t].slice(),a=0,n=r.length;a<n;a++){var l=r[a];l.sched?l.sched(l):l()}},v=e=>{for(var t=e.deps.length;t--;){var r=e.deps[t],a=r.indexOf(e);-1!==a&&(r[a]=r[r.length-1],r.pop())}e.deps=[]},d=(e,t)=>{var r=()=>{v(r);var t=n;n=r;try{e()}finally{n=t}};return r.deps=[],r.sched=t,r(),()=>v(r)},h=e=>{if(!e||"object"!=typeof e||e._y||e instanceof Node)return e;if(Object.prototype.hasOwnProperty.call(e,"_p"))return e._p;var t=new Proxy(e,{get:(e,t,r)=>{if("_y"===t)return r===e._p;if("_t"===t)return e;if("_d"===t)return e._d;if("_i"===t)return e._i;if("_c"===t)return e._c;if(Array.isArray(e)&&f.hasOwnProperty(t))return f[t];var a=Object.getOwnPropertyDescriptor(e,t);if(a&&a.get){var o=e._c||(Object.defineProperty(e,"_c",{value:Object.create(null)}),e._c),l=o[t];if(!l){var i=()=>{v(i);var t=n;n=i;try{l.d=!1,l.v=a.get.call(e._p)}finally{n=t}};i.deps=[],i.sched=()=>{l.d||(l.d=!0,u(e,t))},l=o[t]={r:i,d:!0,v:void 0}}return l.d&&l.r(),p(e,t),!l.v||"object"!=typeof l.v||l.v instanceof Node?l.v:h(l.v)}Object.prototype.hasOwnProperty.call(e,t)&&p(e,t);var s=Reflect.get(e,t,r);return!s||"object"!=typeof s||s instanceof Node?s:h(s)},set:(e,t,r,a)=>{var n=e[t],l=Array.isArray(e),i=l?Number(t)<e.length:Object.prototype.hasOwnProperty.call(e,t);if(e._i&&!i)for(var s=Object.getPrototypeOf(e);s&&s!==Object.prototype;){var c=s._t||s;if(Object.prototype.hasOwnProperty.call(c,t))return s[t]=r,!0;s=Object.getPrototypeOf(c)}var f=Reflect.set(e,t,r,a);return!o&&f&&(!i||r!==n||r&&"object"==typeof r)&&(u(e,t),l?u(e,"length"):i||u(e,"_k")),f},deleteProperty:(e,t)=>{var r=Object.prototype.hasOwnProperty.call(e,t),a=Reflect.deleteProperty(e,t);return a&&r&&(u(e,t),Array.isArray(e)?u(e,"length"):u(e,"_k")),a},ownKeys:e=>(p(e,"_k"),Reflect.ownKeys(e))});return Object.defineProperty(e,"_p",{value:t}),t};e=h({});var y=Object.create(null);y.text=(e,t)=>{t=null==t?"":t,e.textContent!==String(t)&&(e.textContent=t)},y.html=(e,t)=>{e.innerHTML!=t&&(e.innerHTML=null==t?"":t)},y.value=(e,t)=>{"checkbox"===e.type?e.checked=!!t:"radio"===e.type?e.checked=e.value==t:e.value!=t&&(e.value=null==t?"":t)},y.attr=(e,t,r)=>{if(null==t||!1===t)e.removeAttribute(r);else{var a=!0===t?"":String(t);e.getAttribute(r)!==a&&e.setAttribute(r,a)}},y.class=(e,t)=>{var r=e._n||"",a=Object.create(null);if(r.split(/\s+/).forEach(e=>e&&(a[e]=1)),"string"==typeof t)t.split(/\s+/).forEach(e=>e&&(a[e]=1));else if(t)for(var n in t)t[n]?a[n]=1:delete a[n];var o=Object.keys(a).join(" ");(e.getAttribute("class")||"")!==o&&e.setAttribute("class",o)};var g=(r,a)=>{if(r._m)return r._m;var n=r.getAttribute("s-data");if(t[n]){var o=t[n]();a&&Object.setPrototypeOf(o,a);var l=h(o);l.$refs={},l.$root=r,l.$store=e,l.$parent=a;var f=[],u=Object.create(null),b=e=>{var t=e.target;if("input"!==e.type||!t._c)for(var a=r.parentNode,n=e.type;t&&t!==a&&!e.cancelBubble;){var o=t._h&&t._h[n];if(o){var i=t._s;if(!i||i.$root!==l.$root){t=t.parentNode;continue}for(var s=o.length;s--;){var f=o[s],p=f.p;if(f.model){var u="checkbox"===t.type?t.checked:t.value;if("string"==typeof u){var v=u.trim();v&&isFinite(v)&&(48===v.charCodeAt(0)&&1!==v.length&&46!==v.charCodeAt(1)||(u=Number(v)))}if("string"==typeof p)i&&(i[p]=u);else{for(var d=i,h=0,y=p.length-1;h<y&&d;)d=d[p[h++]];d&&(d[p[y]]=u)}}else{var g=c(i,p);"function"==typeof g.val&&(Object.defineProperty(e,"currentTarget",{configurable:!0,value:t}),g.val.call(g.ctx,e))}if(e.cancelBubble)break}}t=t.parentNode}},_=e=>{u[e]||(u[e]=!0,r.addEventListener(e,b,!!i[e]))},m=(e,t,a)=>{if(1===e.nodeType&&!e.hasAttribute("s-ignore"))if(e!==r&&e.hasAttribute("s-data")){var n=g(e,t);n&&a.push(n.unmount)}else{var o=e.getAttribute("s-if"),i=!o&&"TEMPLATE"===e.tagName&&e.getAttribute("s-for"),f=[];if(e.hasAttribute("class")&&!e._n&&(e._n=e.getAttribute("class")),o){var u=document.createTextNode(""),v=null,O=[];e.replaceWith(u);var A="!"===o[0],j=A?o.slice(1):o,x=-1===j.indexOf(".")?j:j.split(".");return a.push(()=>{for(var e=O.length;e--;)O[e]()}),a.push(d(()=>{var r=c(t,x).val;if(A&&(r=!r),r)v||((v=e.cloneNode(!0)).removeAttribute("s-if"),m(v,t,O),u.parentNode.insertBefore(v,u));else if(v){for(var a=O.length;a--;)O[a]();O=[],v.remove(),v=null}},s))}if(i){var P=i.indexOf(" in ");if(-1!==P){var N,k=i.slice(0,P).trim(),w=i.slice(P+4).trim(),E=k.replace(/[()]/g,"").split(","),C=E[0].trim(),S=E[1]?E[1].trim():null,T=-1===w.indexOf(".")?w:w.split("."),L=e.getAttribute("s-key"),$=L?-1===L.indexOf(".")?L:L.split("."):null,B=(u=document.createTextNode(""),Object.create(null));return e.replaceWith(u),a.push(()=>{for(var e in B)B[e].cleanups.forEach(e=>e())}),a.push(d(()=>{var r=c(t,T).val||[];"number"==typeof r&&(r=Array.from({length:Math.max(0,Math.floor(r))},(e,t)=>t+1)),Array.isArray(r)&&p(r,"length");var a=document.createDocumentFragment(),n=u.nextSibling;N=Object.create(null);for(var o=Array.isArray(r),l=o?r:Object.keys(r),i=o?r.length:l.length,s=0;s<i;s++){var f,v=o?s:l[s],d=o?r[s]:r[v];f=null==d||"object"!=typeof d?String(d):$?c(d,$).val:String(v)+"_o",N[f]&&(f+="_"+s);var y=B[f];if(y)y.scope[C]=d,S&&(y.scope[S]=v);else{var g=e.content.cloneNode(!0),b=Object.create(t);Object.defineProperty(b,"_i",{value:!0});var _=h(b);_[C]=d,S&&(_[S]=v);for(var O=Array.prototype.slice.call(g.childNodes),A=[],j=0;j<O.length;j++)m(O[j],_,A);y={nodes:Array.prototype.slice.call(g.childNodes),scope:_,cleanups:A},B[f]=y}if(y.nodes[0]===n)a.childNodes.length&&u.parentNode.insertBefore(a,n),n=y.nodes[y.nodes.length-1].nextSibling;else for(j=0;j<y.nodes.length;j++)a.appendChild(y.nodes[j]);N[f]=!0}for(var x in a.childNodes.length&&u.parentNode.insertBefore(a,n),B)N[x]||(B[x].cleanups.forEach(e=>e()),B[x].nodes.forEach(e=>e.remove()),delete B[x])},s))}}if(e.hasAttributes())for(var M=e.attributes,q=M.length;q--;){var R=M[q],D=R.name,F=R.value;if(58===D.charCodeAt(0)){var H=D.slice(1),K=33===F.charCodeAt(0),W=K?F.slice(1):F;x=-1===W.indexOf(".")?W:W.split(".");f.push({type:"attr",name:H,path:x,neg:K})}else if(115===D.charCodeAt(0)&&45===D.charCodeAt(1)){let r=D.slice(2),n=-1===F.indexOf(".")?F:F.split(".");if("init"===r||"destroy"===r)((r,n)=>{var o=c(t,n);"function"==typeof o.val&&("init"===r?s(()=>{var t=o.val.call(o.ctx,e);"function"==typeof t&&a.push(t)}):a.push(()=>o.val.call(o.ctx,e)))})(r,n);else if("effect"===r)a.push(d(()=>{var r=c(t,n);"function"==typeof r.val&&r.val.call(r.ctx,e)},s));else if("model"===r){f.push({type:"value",path:n}),e._s=t,e._h=e._h||{};var z="checkbox"===e.type||"radio"===e.type||"SELECT"===e.tagName?"change":"input";"input"===z&&(e.addEventListener("compositionstart",()=>e._c=!0),e.addEventListener("compositionend",()=>{e._c=!1,b({target:e,type:"input"})})),(e._h[z]=e._h[z]||[]).push({model:!0,p:n}),_(z)}else"ref"===r?l.$refs[F]=e:y[r]?f.push({type:r,path:n}):(e._s=t,e._h=e._h||{},(e._h[r]=e._h[r]||[]).unshift({p:n}),_(r))}}f.length&&a.push(d(()=>{for(var r=f.length;r--;){var a=f[r],n=c(t,a.path),o="function"==typeof n.val?n.val.call(n.ctx,e):n.val;"attr"===a.type?(a.neg&&(o=!o),"class"===a.name?y.class(e,o):y.attr(e,o,a.name)):y[a.type](e,o)}},s));for(var G=e.firstChild;G;){var I=G.nextSibling;m(G,t,a),G=I}}};m(r,l,f),l.init&&l.init();var O={unmount:()=>{l.destroy&&l.destroy.call(l);for(var e=f.length;e--;)f[e]();for(var t in u)r.removeEventListener(t,b);if(l._c)for(var t in l._c)v(l._c[t].r);r._m=null}};return r._m=O,O}},b=e=>{if(!e||"object"!=typeof e)return e;var t=e._t||e;if(Array.isArray(t))return t.map(e=>b(e));var r={};for(var a in t)r[a]=b(t[a]);return r};return{data:(e,...r)=>{t[e]=1===r.length?r[0]:()=>{for(var e={},t=0;t<r.length;t++)Object.defineProperties(e,Object.getOwnPropertyDescriptors(r[t]()));return e}},start:()=>{for(var e=document.querySelectorAll("[s-data]"),t=0;t<e.length;t++)g(e[t])},store:(t,r)=>{if(void 0===r)return e[t];e[t]=r;var a=e[t];return a&&"function"==typeof a.init&&a.init.call(a),a},raw:b,mount:e=>g(e),unmount:e=>{e&&e._m&&e._m.unmount()}}})();export default spiki;
|
package/spiki.js
CHANGED
|
@@ -99,9 +99,7 @@ var spiki = (() => {
|
|
|
99
99
|
var i = 0, len = effects.length;
|
|
100
100
|
for (; i < len; i++) {
|
|
101
101
|
var effect = effects[i];
|
|
102
|
-
|
|
103
|
-
effect.sched ? effect.sched(effect) : effect();
|
|
104
|
-
}
|
|
102
|
+
effect.sched ? effect.sched(effect) : effect();
|
|
105
103
|
}
|
|
106
104
|
}
|
|
107
105
|
};
|
|
@@ -132,15 +130,8 @@ var spiki = (() => {
|
|
|
132
130
|
return () => cleanup(runner);
|
|
133
131
|
};
|
|
134
132
|
|
|
135
|
-
var isTrackable = (obj) => {
|
|
136
|
-
return obj && typeof obj === 'object' && !obj._y &&
|
|
137
|
-
!(obj instanceof Node) && !(obj instanceof Date) &&
|
|
138
|
-
!(obj instanceof RegExp) && !(obj instanceof Map) &&
|
|
139
|
-
!(obj instanceof Set) && !(obj instanceof Promise);
|
|
140
|
-
};
|
|
141
|
-
|
|
142
133
|
var makeReactive = (obj) => {
|
|
143
|
-
if (!
|
|
134
|
+
if (!obj || typeof obj !== 'object' || obj._y || obj instanceof Node) return obj;
|
|
144
135
|
if (Object.prototype.hasOwnProperty.call(obj, '_p')) return obj._p;
|
|
145
136
|
|
|
146
137
|
var proxy = new Proxy(obj, {
|
|
@@ -183,22 +174,22 @@ var spiki = (() => {
|
|
|
183
174
|
}
|
|
184
175
|
if (comp.d) comp.r();
|
|
185
176
|
track(target, key);
|
|
186
|
-
return
|
|
177
|
+
return (comp.v && typeof comp.v === 'object' && !(comp.v instanceof Node)) ? makeReactive(comp.v) : comp.v;
|
|
187
178
|
}
|
|
188
179
|
|
|
189
180
|
if (Object.prototype.hasOwnProperty.call(target, key)) {
|
|
190
|
-
track(target,
|
|
181
|
+
track(target, key);
|
|
191
182
|
}
|
|
192
183
|
|
|
193
184
|
var res = Reflect.get(target, key, receiver);
|
|
194
|
-
return
|
|
185
|
+
return (res && typeof res === 'object' && !(res instanceof Node)) ? makeReactive(res) : res;
|
|
195
186
|
},
|
|
196
187
|
set: (target, key, val, receiver) => {
|
|
197
188
|
var old = target[key];
|
|
198
189
|
var isArr = Array.isArray(target);
|
|
199
|
-
var hadKey = isArr ?
|
|
190
|
+
var hadKey = isArr ? Number(key) < target.length : Object.prototype.hasOwnProperty.call(target, key);
|
|
200
191
|
|
|
201
|
-
if (
|
|
192
|
+
if (target._i && !hadKey) {
|
|
202
193
|
var proto = Object.getPrototypeOf(target);
|
|
203
194
|
while (proto && proto !== Object.prototype) {
|
|
204
195
|
var rawProto = proto._t || proto;
|
|
@@ -286,13 +277,13 @@ var spiki = (() => {
|
|
|
286
277
|
if (!cmpReg[name]) return;
|
|
287
278
|
|
|
288
279
|
var data = cmpReg[name]();
|
|
289
|
-
data.$refs = {};
|
|
290
|
-
data.$root = rootElement;
|
|
291
|
-
data.$store = globalStore;
|
|
292
|
-
data.$parent = parentScope;
|
|
293
280
|
if (parentScope) Object.setPrototypeOf(data, parentScope);
|
|
294
281
|
|
|
295
282
|
var state = makeReactive(data);
|
|
283
|
+
state.$refs = {};
|
|
284
|
+
state.$root = rootElement;
|
|
285
|
+
state.$store = globalStore;
|
|
286
|
+
state.$parent = parentScope;
|
|
296
287
|
|
|
297
288
|
var cleanups = [];
|
|
298
289
|
var listeners = Object.create(null);
|
|
@@ -319,12 +310,10 @@ var spiki = (() => {
|
|
|
319
310
|
|
|
320
311
|
if (handler.model) {
|
|
321
312
|
var val = target.type === 'checkbox' ? target.checked : target.value;
|
|
322
|
-
if (
|
|
323
|
-
val = val === '' ? null : Number(val);
|
|
324
|
-
} else if (typeof val === 'string') {
|
|
313
|
+
if (typeof val === 'string') {
|
|
325
314
|
var clean = val.trim();
|
|
326
|
-
if (clean &&
|
|
327
|
-
|
|
315
|
+
if (clean && isFinite(clean)) {
|
|
316
|
+
if (clean.charCodeAt(0) !== 48 || clean.length === 1 || clean.charCodeAt(1) === 46) {
|
|
328
317
|
val = Number(clean);
|
|
329
318
|
}
|
|
330
319
|
}
|
|
@@ -440,7 +429,11 @@ var spiki = (() => {
|
|
|
440
429
|
for (var i = 0; i < len; i++) {
|
|
441
430
|
var key = isArr ? i : keys[i];
|
|
442
431
|
var item = isArr ? list[i] : list[key];
|
|
443
|
-
var unique
|
|
432
|
+
var unique;
|
|
433
|
+
if (item == null || typeof item !== 'object') unique = String(item);
|
|
434
|
+
else if (keyPath) unique = evalPath(item, keyPath).val;
|
|
435
|
+
else unique = String(key) + '_o';
|
|
436
|
+
|
|
444
437
|
if (usedKeys[unique]) unique += '_' + i;
|
|
445
438
|
var row = nodePool[unique];
|
|
446
439
|
if (row) {
|
|
@@ -461,14 +454,14 @@ var spiki = (() => {
|
|
|
461
454
|
nodePool[unique] = row;
|
|
462
455
|
}
|
|
463
456
|
if (row.nodes[0] === anchor) {
|
|
464
|
-
if (frag.childNodes.length
|
|
457
|
+
if (frag.childNodes.length) end.parentNode.insertBefore(frag, anchor);
|
|
465
458
|
anchor = row.nodes[row.nodes.length - 1].nextSibling;
|
|
466
459
|
} else {
|
|
467
460
|
for (var n = 0; n < row.nodes.length; n++) frag.appendChild(row.nodes[n]);
|
|
468
461
|
}
|
|
469
462
|
usedKeys[unique] = true;
|
|
470
463
|
}
|
|
471
|
-
if (frag.childNodes.length
|
|
464
|
+
if (frag.childNodes.length) end.parentNode.insertBefore(frag, anchor);
|
|
472
465
|
for (var k in nodePool) if (!usedKeys[k]) {
|
|
473
466
|
nodePool[k].cleanups.forEach(c => c());
|
|
474
467
|
nodePool[k].nodes.forEach(n => n.remove());
|
|
@@ -495,7 +488,6 @@ var spiki = (() => {
|
|
|
495
488
|
}
|
|
496
489
|
else if (attrName.charCodeAt(0) === 115 && attrName.charCodeAt(1) === 45) {
|
|
497
490
|
let type = attrName.slice(2);
|
|
498
|
-
if (type === 'data') continue;
|
|
499
491
|
let p = attrValue.indexOf('.') === -1 ? attrValue : attrValue.split('.');
|
|
500
492
|
|
|
501
493
|
if (type === 'init' || type === 'destroy') {
|
|
@@ -521,14 +513,11 @@ var spiki = (() => {
|
|
|
521
513
|
else if (type === 'model') {
|
|
522
514
|
bindings.push({ type: 'value', path: p });
|
|
523
515
|
el._s = scope; el._h = el._h || {};
|
|
524
|
-
var evt = (el.type === 'checkbox' || el.type === 'radio' || el.tagName
|
|
516
|
+
var evt = (el.type === 'checkbox' || el.type === 'radio' || el.tagName==='SELECT') ? 'change' : 'input';
|
|
525
517
|
|
|
526
518
|
if (evt === 'input') {
|
|
527
519
|
el.addEventListener('compositionstart', () => el._c = true);
|
|
528
|
-
el.addEventListener('compositionend', () => {
|
|
529
|
-
el._c = false;
|
|
530
|
-
el.dispatchEvent(new Event('input', { bubbles: true }));
|
|
531
|
-
});
|
|
520
|
+
el.addEventListener('compositionend', () => { el._c = false; handle({target: el, type: 'input'}); });
|
|
532
521
|
}
|
|
533
522
|
|
|
534
523
|
(el._h[evt] = el._h[evt] || []).push({ model: true, p: p });
|
|
@@ -546,13 +535,6 @@ var spiki = (() => {
|
|
|
546
535
|
}
|
|
547
536
|
}
|
|
548
537
|
|
|
549
|
-
var child = el.firstChild;
|
|
550
|
-
while (child) {
|
|
551
|
-
var nextSibling = child.nextSibling;
|
|
552
|
-
walk(child, scope, parentCleanups);
|
|
553
|
-
child = nextSibling;
|
|
554
|
-
}
|
|
555
|
-
|
|
556
538
|
if (bindings.length) {
|
|
557
539
|
parentCleanups.push(effect(() => {
|
|
558
540
|
var i = bindings.length;
|
|
@@ -571,6 +553,13 @@ var spiki = (() => {
|
|
|
571
553
|
}
|
|
572
554
|
}, nextTick));
|
|
573
555
|
}
|
|
556
|
+
|
|
557
|
+
var child = el.firstChild;
|
|
558
|
+
while (child) {
|
|
559
|
+
var nextSibling = child.nextSibling;
|
|
560
|
+
walk(child, scope, parentCleanups);
|
|
561
|
+
child = nextSibling;
|
|
562
|
+
}
|
|
574
563
|
};
|
|
575
564
|
|
|
576
565
|
walk(rootElement, state, cleanups);
|
|
@@ -580,7 +569,7 @@ var spiki = (() => {
|
|
|
580
569
|
unmount: () => {
|
|
581
570
|
if (state.destroy) state.destroy.call(state);
|
|
582
571
|
var i = cleanups.length; while (i--) cleanups[i]();
|
|
583
|
-
for
|
|
572
|
+
for(var k in listeners) rootElement.removeEventListener(k, handle);
|
|
584
573
|
if (state._c) for (var k in state._c) cleanup(state._c[k].r);
|
|
585
574
|
rootElement._m = null;
|
|
586
575
|
}
|
|
@@ -590,15 +579,11 @@ var spiki = (() => {
|
|
|
590
579
|
};
|
|
591
580
|
|
|
592
581
|
var raw = (o) => {
|
|
593
|
-
if (!o || typeof o !== 'object'
|
|
582
|
+
if (!o || typeof o !== 'object') return o;
|
|
594
583
|
var target = o._t || o;
|
|
595
584
|
if (Array.isArray(target)) return target.map(e => raw(e));
|
|
596
585
|
var result = {};
|
|
597
|
-
for (var i in target)
|
|
598
|
-
if (Object.prototype.hasOwnProperty.call(target, i) && i.charCodeAt(0) !== 36 && i.charCodeAt(0) !== 95) {
|
|
599
|
-
result[i] = raw(target[i]);
|
|
600
|
-
}
|
|
601
|
-
}
|
|
586
|
+
for (var i in target) result[i] = raw(target[i]);
|
|
602
587
|
return result;
|
|
603
588
|
};
|
|
604
589
|
|
package/spiki.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(){"use strict";var e=(()=>{var e,t=Object.create(null),r=[],a=!1,n=null,o=!1,
|
|
1
|
+
!function(){"use strict";var e=(()=>{var e,t=Object.create(null),r=[],a=!1,n=null,o=!1,i=Promise.resolve(),l={blur:1,focus:1,scroll:1,load:1,error:1,mouseenter:1,mouseleave:1,toggle:1},s=e=>{e._q||(e._q=!0,r.push(e),a||(a=!0,i.then(()=>{var e=r;r=[],a=!1;for(var t=0;t<e.length;t++)e[t]._q=!1,e[t]()})))},c=(e,t)=>{var r,a=e;if("string"==typeof t)r=e?e[t]:void 0;else{for(var n=0,o=t.length;n<o-1&&a;)a=a[t[n++]];r=a?a[t[o-1]]:void 0}if(void 0===r){var i=Array.isArray(t)?t.join("."):t;console.warn("[spikijs] Property undefined: "+i)}return{ctx:a,val:r}},f={};["push","pop","shift","unshift","splice","sort","reverse"].forEach(e=>{f[e]=function(...t){o=!0;try{return Array.prototype[e].apply(this,t)}finally{o=!1,u(this,"length")}}});var p=(e,t)=>{if(n){var r=e._d||(Object.defineProperty(e,"_d",{value:Object.create(null),writable:!0}),e._d),a=r[t]||(r[t]=[]);-1===a.indexOf(n)&&(a.push(n),n.deps.push(a))}},u=(e,t)=>{if(!o&&e._d&&e._d[t])for(var r=e._d[t].slice(),a=0,n=r.length;a<n;a++){var i=r[a];i.sched?i.sched(i):i()}},v=e=>{for(var t=e.deps.length;t--;){var r=e.deps[t],a=r.indexOf(e);-1!==a&&(r[a]=r[r.length-1],r.pop())}e.deps=[]},d=(e,t)=>{var r=()=>{v(r);var t=n;n=r;try{e()}finally{n=t}};return r.deps=[],r.sched=t,r(),()=>v(r)},h=e=>{if(!e||"object"!=typeof e||e._y||e instanceof Node)return e;if(Object.prototype.hasOwnProperty.call(e,"_p"))return e._p;var t=new Proxy(e,{get:(e,t,r)=>{if("_y"===t)return r===e._p;if("_t"===t)return e;if("_d"===t)return e._d;if("_i"===t)return e._i;if("_c"===t)return e._c;if(Array.isArray(e)&&f.hasOwnProperty(t))return f[t];var a=Object.getOwnPropertyDescriptor(e,t);if(a&&a.get){var o=e._c||(Object.defineProperty(e,"_c",{value:Object.create(null)}),e._c),i=o[t];if(!i){var l=()=>{v(l);var t=n;n=l;try{i.d=!1,i.v=a.get.call(e._p)}finally{n=t}};l.deps=[],l.sched=()=>{i.d||(i.d=!0,u(e,t))},i=o[t]={r:l,d:!0,v:void 0}}return i.d&&i.r(),p(e,t),!i.v||"object"!=typeof i.v||i.v instanceof Node?i.v:h(i.v)}Object.prototype.hasOwnProperty.call(e,t)&&p(e,t);var s=Reflect.get(e,t,r);return!s||"object"!=typeof s||s instanceof Node?s:h(s)},set:(e,t,r,a)=>{var n=e[t],i=Array.isArray(e),l=i?Number(t)<e.length:Object.prototype.hasOwnProperty.call(e,t);if(e._i&&!l)for(var s=Object.getPrototypeOf(e);s&&s!==Object.prototype;){var c=s._t||s;if(Object.prototype.hasOwnProperty.call(c,t))return s[t]=r,!0;s=Object.getPrototypeOf(c)}var f=Reflect.set(e,t,r,a);return!o&&f&&(!l||r!==n||r&&"object"==typeof r)&&(u(e,t),i?u(e,"length"):l||u(e,"_k")),f},deleteProperty:(e,t)=>{var r=Object.prototype.hasOwnProperty.call(e,t),a=Reflect.deleteProperty(e,t);return a&&r&&(u(e,t),Array.isArray(e)?u(e,"length"):u(e,"_k")),a},ownKeys:e=>(p(e,"_k"),Reflect.ownKeys(e))});return Object.defineProperty(e,"_p",{value:t}),t};e=h({});var y=Object.create(null);y.text=(e,t)=>{t=null==t?"":t,e.textContent!==String(t)&&(e.textContent=t)},y.html=(e,t)=>{e.innerHTML!=t&&(e.innerHTML=null==t?"":t)},y.value=(e,t)=>{"checkbox"===e.type?e.checked=!!t:"radio"===e.type?e.checked=e.value==t:e.value!=t&&(e.value=null==t?"":t)},y.attr=(e,t,r)=>{if(null==t||!1===t)e.removeAttribute(r);else{var a=!0===t?"":String(t);e.getAttribute(r)!==a&&e.setAttribute(r,a)}},y.class=(e,t)=>{var r=e._n||"",a=Object.create(null);if(r.split(/\s+/).forEach(e=>e&&(a[e]=1)),"string"==typeof t)t.split(/\s+/).forEach(e=>e&&(a[e]=1));else if(t)for(var n in t)t[n]?a[n]=1:delete a[n];var o=Object.keys(a).join(" ");(e.getAttribute("class")||"")!==o&&e.setAttribute("class",o)};var g=(r,a)=>{if(r._m)return r._m;var n=r.getAttribute("s-data");if(t[n]){var o=t[n]();a&&Object.setPrototypeOf(o,a);var i=h(o);i.$refs={},i.$root=r,i.$store=e,i.$parent=a;var f=[],u=Object.create(null),b=e=>{var t=e.target;if("input"!==e.type||!t._c)for(var a=r.parentNode,n=e.type;t&&t!==a&&!e.cancelBubble;){var o=t._h&&t._h[n];if(o){var l=t._s;if(!l||l.$root!==i.$root){t=t.parentNode;continue}for(var s=o.length;s--;){var f=o[s],p=f.p;if(f.model){var u="checkbox"===t.type?t.checked:t.value;if("string"==typeof u){var v=u.trim();v&&isFinite(v)&&(48===v.charCodeAt(0)&&1!==v.length&&46!==v.charCodeAt(1)||(u=Number(v)))}if("string"==typeof p)l&&(l[p]=u);else{for(var d=l,h=0,y=p.length-1;h<y&&d;)d=d[p[h++]];d&&(d[p[y]]=u)}}else{var g=c(l,p);"function"==typeof g.val&&(Object.defineProperty(e,"currentTarget",{configurable:!0,value:t}),g.val.call(g.ctx,e))}if(e.cancelBubble)break}}t=t.parentNode}},_=e=>{u[e]||(u[e]=!0,r.addEventListener(e,b,!!l[e]))},m=(e,t,a)=>{if(1===e.nodeType&&!e.hasAttribute("s-ignore"))if(e!==r&&e.hasAttribute("s-data")){var n=g(e,t);n&&a.push(n.unmount)}else{var o=e.getAttribute("s-if"),l=!o&&"TEMPLATE"===e.tagName&&e.getAttribute("s-for"),f=[];if(e.hasAttribute("class")&&!e._n&&(e._n=e.getAttribute("class")),o){var u=document.createTextNode(""),v=null,O=[];e.replaceWith(u);var A="!"===o[0],j=A?o.slice(1):o,x=-1===j.indexOf(".")?j:j.split(".");return a.push(()=>{for(var e=O.length;e--;)O[e]()}),a.push(d(()=>{var r=c(t,x).val;if(A&&(r=!r),r)v||((v=e.cloneNode(!0)).removeAttribute("s-if"),m(v,t,O),u.parentNode.insertBefore(v,u));else if(v){for(var a=O.length;a--;)O[a]();O=[],v.remove(),v=null}},s))}if(l){var P=l.indexOf(" in ");if(-1!==P){var N,w=l.slice(0,P).trim(),k=l.slice(P+4).trim(),E=w.replace(/[()]/g,"").split(","),C=E[0].trim(),S=E[1]?E[1].trim():null,T=-1===k.indexOf(".")?k:k.split("."),L=e.getAttribute("s-key"),$=L?-1===L.indexOf(".")?L:L.split("."):null,B=(u=document.createTextNode(""),Object.create(null));return e.replaceWith(u),a.push(()=>{for(var e in B)B[e].cleanups.forEach(e=>e())}),a.push(d(()=>{var r=c(t,T).val||[];"number"==typeof r&&(r=Array.from({length:Math.max(0,Math.floor(r))},(e,t)=>t+1)),Array.isArray(r)&&p(r,"length");var a=document.createDocumentFragment(),n=u.nextSibling;N=Object.create(null);for(var o=Array.isArray(r),i=o?r:Object.keys(r),l=o?r.length:i.length,s=0;s<l;s++){var f,v=o?s:i[s],d=o?r[s]:r[v];f=null==d||"object"!=typeof d?String(d):$?c(d,$).val:String(v)+"_o",N[f]&&(f+="_"+s);var y=B[f];if(y)y.scope[C]=d,S&&(y.scope[S]=v);else{var g=e.content.cloneNode(!0),b=Object.create(t);Object.defineProperty(b,"_i",{value:!0});var _=h(b);_[C]=d,S&&(_[S]=v);for(var O=Array.prototype.slice.call(g.childNodes),A=[],j=0;j<O.length;j++)m(O[j],_,A);y={nodes:Array.prototype.slice.call(g.childNodes),scope:_,cleanups:A},B[f]=y}if(y.nodes[0]===n)a.childNodes.length&&u.parentNode.insertBefore(a,n),n=y.nodes[y.nodes.length-1].nextSibling;else for(j=0;j<y.nodes.length;j++)a.appendChild(y.nodes[j]);N[f]=!0}for(var x in a.childNodes.length&&u.parentNode.insertBefore(a,n),B)N[x]||(B[x].cleanups.forEach(e=>e()),B[x].nodes.forEach(e=>e.remove()),delete B[x])},s))}}if(e.hasAttributes())for(var M=e.attributes,q=M.length;q--;){var R=M[q],D=R.name,F=R.value;if(58===D.charCodeAt(0)){var H=D.slice(1),K=33===F.charCodeAt(0),W=K?F.slice(1):F;x=-1===W.indexOf(".")?W:W.split(".");f.push({type:"attr",name:H,path:x,neg:K})}else if(115===D.charCodeAt(0)&&45===D.charCodeAt(1)){let r=D.slice(2),n=-1===F.indexOf(".")?F:F.split(".");if("init"===r||"destroy"===r)((r,n)=>{var o=c(t,n);"function"==typeof o.val&&("init"===r?s(()=>{var t=o.val.call(o.ctx,e);"function"==typeof t&&a.push(t)}):a.push(()=>o.val.call(o.ctx,e)))})(r,n);else if("effect"===r)a.push(d(()=>{var r=c(t,n);"function"==typeof r.val&&r.val.call(r.ctx,e)},s));else if("model"===r){f.push({type:"value",path:n}),e._s=t,e._h=e._h||{};var z="checkbox"===e.type||"radio"===e.type||"SELECT"===e.tagName?"change":"input";"input"===z&&(e.addEventListener("compositionstart",()=>e._c=!0),e.addEventListener("compositionend",()=>{e._c=!1,b({target:e,type:"input"})})),(e._h[z]=e._h[z]||[]).push({model:!0,p:n}),_(z)}else"ref"===r?i.$refs[F]=e:y[r]?f.push({type:r,path:n}):(e._s=t,e._h=e._h||{},(e._h[r]=e._h[r]||[]).unshift({p:n}),_(r))}}f.length&&a.push(d(()=>{for(var r=f.length;r--;){var a=f[r],n=c(t,a.path),o="function"==typeof n.val?n.val.call(n.ctx,e):n.val;"attr"===a.type?(a.neg&&(o=!o),"class"===a.name?y.class(e,o):y.attr(e,o,a.name)):y[a.type](e,o)}},s));for(var G=e.firstChild;G;){var I=G.nextSibling;m(G,t,a),G=I}}};m(r,i,f),i.init&&i.init();var O={unmount:()=>{i.destroy&&i.destroy.call(i);for(var e=f.length;e--;)f[e]();for(var t in u)r.removeEventListener(t,b);if(i._c)for(var t in i._c)v(i._c[t].r);r._m=null}};return r._m=O,O}},b=e=>{if(!e||"object"!=typeof e)return e;var t=e._t||e;if(Array.isArray(t))return t.map(e=>b(e));var r={};for(var a in t)r[a]=b(t[a]);return r};return{data:(e,...r)=>{t[e]=1===r.length?r[0]:()=>{for(var e={},t=0;t<r.length;t++)Object.defineProperties(e,Object.getOwnPropertyDescriptors(r[t]()));return e}},start:()=>{for(var e=document.querySelectorAll("[s-data]"),t=0;t<e.length;t++)g(e[t])},store:(t,r)=>{if(void 0===r)return e[t];e[t]=r;var a=e[t];return a&&"function"==typeof a.init&&a.init.call(a),a},raw:b,mount:e=>g(e),unmount:e=>{e&&e._m&&e._m.unmount()}}})();window.spiki=e}();
|