spikijs 1.1.32 → 1.1.33
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.esm.js +54 -35
- package/spiki.esm.min.js +1 -1
- package/spiki.js +54 -35
- package/spiki.min.js +1 -1
package/package.json
CHANGED
package/spiki.esm.js
CHANGED
|
@@ -35,8 +35,7 @@ var spiki = (() => {
|
|
|
35
35
|
var queue = scheduler;
|
|
36
36
|
scheduler = [];
|
|
37
37
|
isFlushing = false;
|
|
38
|
-
var i = queue.length;
|
|
39
|
-
while (i--) {
|
|
38
|
+
for (var i = 0; i < queue.length; i++) {
|
|
40
39
|
queue[i]._q = false;
|
|
41
40
|
queue[i]();
|
|
42
41
|
}
|
|
@@ -128,8 +127,15 @@ var spiki = (() => {
|
|
|
128
127
|
return () => cleanup(runner);
|
|
129
128
|
};
|
|
130
129
|
|
|
130
|
+
var isTrackable = (obj) => {
|
|
131
|
+
return obj && typeof obj === 'object' && !obj._y &&
|
|
132
|
+
!(obj instanceof Node) && !(obj instanceof Date) &&
|
|
133
|
+
!(obj instanceof RegExp) && !(obj instanceof Map) &&
|
|
134
|
+
!(obj instanceof Set) && !(obj instanceof Promise);
|
|
135
|
+
};
|
|
136
|
+
|
|
131
137
|
var makeReactive = (obj) => {
|
|
132
|
-
if (!obj
|
|
138
|
+
if (!isTrackable(obj)) return obj;
|
|
133
139
|
if (Object.prototype.hasOwnProperty.call(obj, '_p')) return obj._p;
|
|
134
140
|
|
|
135
141
|
var proxy = new Proxy(obj, {
|
|
@@ -141,6 +147,7 @@ var spiki = (() => {
|
|
|
141
147
|
if (key === '_c') return target._c;
|
|
142
148
|
|
|
143
149
|
if (Array.isArray(target) && arrInst.hasOwnProperty(key)) return arrInst[key];
|
|
150
|
+
|
|
144
151
|
var desc = Object.getOwnPropertyDescriptor(target, key);
|
|
145
152
|
if (desc && desc.get) {
|
|
146
153
|
var c = target._c || (Object.defineProperty(target, '_c', {
|
|
@@ -154,8 +161,8 @@ var spiki = (() => {
|
|
|
154
161
|
var prev = activeEffect;
|
|
155
162
|
activeEffect = runner;
|
|
156
163
|
try {
|
|
157
|
-
comp.d = false;
|
|
158
|
-
comp.v = desc.get.call(
|
|
164
|
+
comp.d = false;
|
|
165
|
+
comp.v = desc.get.call(target._p);
|
|
159
166
|
} finally {
|
|
160
167
|
activeEffect = prev;
|
|
161
168
|
}
|
|
@@ -171,11 +178,15 @@ var spiki = (() => {
|
|
|
171
178
|
}
|
|
172
179
|
if (comp.d) comp.r();
|
|
173
180
|
track(target, key);
|
|
174
|
-
return (comp.v
|
|
181
|
+
return isTrackable(comp.v) ? makeReactive(comp.v) : comp.v;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
if (Object.prototype.hasOwnProperty.call(target, key)) {
|
|
185
|
+
track(target, Array.isArray(target) ? 'length' : key);
|
|
175
186
|
}
|
|
176
|
-
|
|
187
|
+
|
|
177
188
|
var res = Reflect.get(target, key, receiver);
|
|
178
|
-
return (res
|
|
189
|
+
return isTrackable(res) ? makeReactive(res) : res;
|
|
179
190
|
},
|
|
180
191
|
set: (target, key, val, receiver) => {
|
|
181
192
|
var old = target[key];
|
|
@@ -184,13 +195,13 @@ var spiki = (() => {
|
|
|
184
195
|
|
|
185
196
|
if (target._i && !hadKey) {
|
|
186
197
|
var proto = Object.getPrototypeOf(target);
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
return
|
|
198
|
+
while (proto && proto !== Object.prototype) {
|
|
199
|
+
var rawProto = proto._t || proto;
|
|
200
|
+
if (Object.prototype.hasOwnProperty.call(rawProto, key)) {
|
|
201
|
+
proto[key] = val;
|
|
202
|
+
return true;
|
|
192
203
|
}
|
|
193
|
-
proto = Object.getPrototypeOf(
|
|
204
|
+
proto = Object.getPrototypeOf(rawProto);
|
|
194
205
|
}
|
|
195
206
|
}
|
|
196
207
|
|
|
@@ -303,10 +314,12 @@ var spiki = (() => {
|
|
|
303
314
|
|
|
304
315
|
if (handler.model) {
|
|
305
316
|
var val = target.type === 'checkbox' ? target.checked : target.value;
|
|
306
|
-
if (
|
|
317
|
+
if (target.type === 'number' || target.type === 'range') {
|
|
318
|
+
val = val === '' ? null : Number(val);
|
|
319
|
+
} else if (typeof val === 'string') {
|
|
307
320
|
var clean = val.trim();
|
|
308
|
-
if (clean && isFinite(clean)) {
|
|
309
|
-
|
|
321
|
+
if (clean && clean.length < 16 && clean.charCodeAt(clean.length - 1) !== 46 && isFinite(clean)) {
|
|
322
|
+
if (clean.charCodeAt(0) !== 48 || clean.length === 1 || clean.charCodeAt(1) === 46) {
|
|
310
323
|
val = Number(clean);
|
|
311
324
|
}
|
|
312
325
|
}
|
|
@@ -423,9 +436,9 @@ var spiki = (() => {
|
|
|
423
436
|
var key = isArr ? i : keys[i];
|
|
424
437
|
var item = isArr ? list[i] : list[key];
|
|
425
438
|
var unique;
|
|
426
|
-
if (item == null || typeof item !== 'object') unique = String(item);
|
|
427
|
-
else if (keyPath) unique = evalPath(item, keyPath).val;
|
|
428
|
-
else unique = String(key)
|
|
439
|
+
if (item == null || typeof item !== 'object') unique = 'p_' + String(item);
|
|
440
|
+
else if (keyPath) unique = 'k_' + evalPath(item, keyPath).val;
|
|
441
|
+
else unique = 'i_' + String(key);
|
|
429
442
|
|
|
430
443
|
if (usedKeys[unique]) unique += '_' + i;
|
|
431
444
|
var row = nodePool[unique];
|
|
@@ -506,11 +519,14 @@ var spiki = (() => {
|
|
|
506
519
|
else if (type === 'model') {
|
|
507
520
|
bindings.push({ type: 'value', path: p });
|
|
508
521
|
el._s = scope; el._h = el._h || {};
|
|
509
|
-
var evt = (el.type === 'checkbox' || el.type === 'radio' || el.tagName==='SELECT') ? 'change' : 'input';
|
|
522
|
+
var evt = (el.type === 'checkbox' || el.type === 'radio' || el.tagName === 'SELECT') ? 'change' : 'input';
|
|
510
523
|
|
|
511
524
|
if (evt === 'input') {
|
|
512
525
|
el.addEventListener('compositionstart', () => el._c = true);
|
|
513
|
-
el.addEventListener('compositionend', () => {
|
|
526
|
+
el.addEventListener('compositionend', () => {
|
|
527
|
+
el._c = false;
|
|
528
|
+
el.dispatchEvent(new Event('input', { bubbles: true }));
|
|
529
|
+
});
|
|
514
530
|
}
|
|
515
531
|
|
|
516
532
|
(el._h[evt] = el._h[evt] || []).push({ model: true, p: p });
|
|
@@ -528,6 +544,13 @@ var spiki = (() => {
|
|
|
528
544
|
}
|
|
529
545
|
}
|
|
530
546
|
|
|
547
|
+
var child = el.firstChild;
|
|
548
|
+
while (child) {
|
|
549
|
+
var nextSibling = child.nextSibling;
|
|
550
|
+
walk(child, scope, parentCleanups);
|
|
551
|
+
child = nextSibling;
|
|
552
|
+
}
|
|
553
|
+
|
|
531
554
|
if (bindings.length) {
|
|
532
555
|
parentCleanups.push(effect(() => {
|
|
533
556
|
var i = bindings.length;
|
|
@@ -546,13 +569,6 @@ var spiki = (() => {
|
|
|
546
569
|
}
|
|
547
570
|
}, nextTick));
|
|
548
571
|
}
|
|
549
|
-
|
|
550
|
-
var child = el.firstChild;
|
|
551
|
-
while (child) {
|
|
552
|
-
var nextSibling = child.nextSibling;
|
|
553
|
-
walk(child, scope, parentCleanups);
|
|
554
|
-
child = nextSibling;
|
|
555
|
-
}
|
|
556
572
|
};
|
|
557
573
|
|
|
558
574
|
walk(rootElement, state, cleanups);
|
|
@@ -562,7 +578,7 @@ var spiki = (() => {
|
|
|
562
578
|
unmount: () => {
|
|
563
579
|
if (state.destroy) state.destroy.call(state);
|
|
564
580
|
var i = cleanups.length; while (i--) cleanups[i]();
|
|
565
|
-
for(var k in listeners) rootElement.removeEventListener(k, handle);
|
|
581
|
+
for (var k in listeners) rootElement.removeEventListener(k, handle, !!captureEvents[k]);
|
|
566
582
|
if (state._c) for (var k in state._c) cleanup(state._c[k].r);
|
|
567
583
|
rootElement._m = null;
|
|
568
584
|
}
|
|
@@ -572,11 +588,15 @@ var spiki = (() => {
|
|
|
572
588
|
};
|
|
573
589
|
|
|
574
590
|
var raw = (o) => {
|
|
575
|
-
if (!o || typeof o !== 'object') return o;
|
|
591
|
+
if (!o || typeof o !== 'object' || o instanceof Node || o instanceof Date || o instanceof RegExp) return o;
|
|
576
592
|
var target = o._t || o;
|
|
577
593
|
if (Array.isArray(target)) return target.map(e => raw(e));
|
|
578
594
|
var result = {};
|
|
579
|
-
for (var i in target)
|
|
595
|
+
for (var i in target) {
|
|
596
|
+
if (Object.prototype.hasOwnProperty.call(target, i) && i.charCodeAt(0) !== 36 && i.charCodeAt(0) !== 95) {
|
|
597
|
+
result[i] = raw(target[i]);
|
|
598
|
+
}
|
|
599
|
+
}
|
|
580
600
|
return result;
|
|
581
601
|
};
|
|
582
602
|
|
|
@@ -592,8 +612,7 @@ var spiki = (() => {
|
|
|
592
612
|
},
|
|
593
613
|
start: () => {
|
|
594
614
|
var els = document.querySelectorAll('[s-data]');
|
|
595
|
-
var i = els.length;
|
|
596
|
-
while (i--) mount(els[i]);
|
|
615
|
+
for (var i = 0; i < els.length; i++) mount(els[i]);
|
|
597
616
|
},
|
|
598
617
|
store: (name, value) => {
|
|
599
618
|
if (value === undefined) {
|
|
@@ -612,4 +631,4 @@ var spiki = (() => {
|
|
|
612
631
|
};
|
|
613
632
|
})();
|
|
614
633
|
|
|
615
|
-
export default spiki;
|
|
634
|
+
export default spiki;
|
package/spiki.esm.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var spiki=(()=>{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=e.length;t
|
|
1
|
+
var spiki=(()=>{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}},p={};["push","pop","shift","unshift","splice","sort","reverse"].forEach(e=>{p[e]=function(...t){o=!0;try{return Array.prototype[e].apply(this,t)}finally{o=!1,u(this,"length")}}});var f=(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=[]},h=(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)},d=e=>e&&"object"==typeof e&&!e._y&&!(e instanceof Node)&&!(e instanceof Date)&&!(e instanceof RegExp)&&!(e instanceof Map)&&!(e instanceof Set)&&!(e instanceof Promise),y=e=>{if(!d(e))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)&&p.hasOwnProperty(t))return p[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(),f(e,t),d(i.v)?y(i.v):i.v}Object.prototype.hasOwnProperty.call(e,t)&&f(e,Array.isArray(e)?"length":t);var s=Reflect.get(e,t,r);return d(s)?y(s):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 p=Reflect.set(e,t,r,a);return!o&&p&&(!l||r!==n||r&&"object"==typeof r)&&(u(e,t),i?u(e,"length"):l||u(e,"_k")),p},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=>(f(e,"_k"),Reflect.ownKeys(e))});return Object.defineProperty(e,"_p",{value:t}),t};e=y({});var g=Object.create(null);g.text=(e,t)=>{t=null==t?"":t,e.textContent!==String(t)&&(e.textContent=t)},g.html=(e,t)=>{e.innerHTML!=t&&(e.innerHTML=null==t?"":t)},g.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)},g.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)}},g.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 b=(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=y(o);i.$refs={},i.$root=r,i.$store=e,i.$parent=a;var p=[],u=Object.create(null),d=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 p=o[s],f=p.p;if(p.model){var u="checkbox"===t.type?t.checked:t.value;if("number"===t.type||"range"===t.type)u=""===u?null:Number(u);else if("string"==typeof u){var v=u.trim();v&&v.length<16&&46!==v.charCodeAt(v.length-1)&&isFinite(v)&&(48===v.charCodeAt(0)&&1!==v.length&&46!==v.charCodeAt(1)||(u=Number(v)))}if("string"==typeof f)l&&(l[f]=u);else{for(var h=l,d=0,y=f.length-1;d<y&&h;)h=h[f[d++]];h&&(h[f[y]]=u)}}else{var g=c(l,f);"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,d,!!l[e]))},m=(e,t,a)=>{if(1===e.nodeType&&!e.hasAttribute("s-ignore"))if(e!==r&&e.hasAttribute("s-data")){var n=b(e,t);n&&a.push(n.unmount)}else{var o=e.getAttribute("s-if"),l=!o&&"TEMPLATE"===e.tagName&&e.getAttribute("s-for"),p=[];if(e.hasAttribute("class")&&!e._n&&(e._n=e.getAttribute("class")),o){var u=document.createTextNode(""),v=null,d=[];e.replaceWith(u);var O="!"===o[0],A=O?o.slice(1):o,j=-1===A.indexOf(".")?A:A.split(".");return a.push(()=>{for(var e=d.length;e--;)d[e]()}),a.push(h(()=>{var r=c(t,j).val;if(O&&(r=!r),r)v||((v=e.cloneNode(!0)).removeAttribute("s-if"),m(v,t,d),u.parentNode.insertBefore(v,u));else if(v){for(var a=d.length;a--;)d[a]();d=[],v.remove(),v=null}},s))}if(l){var x=l.indexOf(" in ");if(-1!==x){var P,N=l.slice(0,x).trim(),E=l.slice(x+4).trim(),k=N.replace(/[()]/g,"").split(","),w=k[0].trim(),C=k[1]?k[1].trim():null,S=-1===E.indexOf(".")?E:E.split("."),T=e.getAttribute("s-key"),L=T?-1===T.indexOf(".")?T:T.split("."):null,$=(u=document.createTextNode(""),Object.create(null));return e.replaceWith(u),a.push(()=>{for(var e in $)$[e].cleanups.forEach(e=>e())}),a.push(h(()=>{var r=c(t,S).val||[];"number"==typeof r&&(r=Array.from({length:Math.max(0,Math.floor(r))},(e,t)=>t+1)),Array.isArray(r)&&f(r,"length");var a=document.createDocumentFragment(),n=u.nextSibling;P=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 p,v=o?s:i[s],h=o?r[s]:r[v];p=null==h||"object"!=typeof h?"p_"+String(h):L?"k_"+c(h,L).val:"i_"+String(v),P[p]&&(p+="_"+s);var d=$[p];if(d)d.scope[w]=h,C&&(d.scope[C]=v);else{var g=e.content.cloneNode(!0),b=Object.create(t);Object.defineProperty(b,"_i",{value:!0});var _=y(b);_[w]=h,C&&(_[C]=v);for(var O=Array.prototype.slice.call(g.childNodes),A=[],j=0;j<O.length;j++)m(O[j],_,A);d={nodes:Array.prototype.slice.call(g.childNodes),scope:_,cleanups:A},$[p]=d}if(d.nodes[0]===n)a.childNodes.length&&u.parentNode.insertBefore(a,n),n=d.nodes[d.nodes.length-1].nextSibling;else for(j=0;j<d.nodes.length;j++)a.appendChild(d.nodes[j]);P[p]=!0}for(var x in a.childNodes.length&&u.parentNode.insertBefore(a,n),$)P[x]||($[x].cleanups.forEach(e=>e()),$[x].nodes.forEach(e=>e.remove()),delete $[x])},s))}}if(e.hasAttributes())for(var M=e.attributes,R=M.length;R--;){var B=M[R],D=B.name,q=B.value;if(58===D.charCodeAt(0)){var F=D.slice(1),H=33===q.charCodeAt(0),K=H?q.slice(1):q;j=-1===K.indexOf(".")?K:K.split(".");p.push({type:"attr",name:F,path:j,neg:H})}else if(115===D.charCodeAt(0)&&45===D.charCodeAt(1)){let r=D.slice(2),n=-1===q.indexOf(".")?q:q.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(h(()=>{var r=c(t,n);"function"==typeof r.val&&r.val.call(r.ctx,e)},s));else if("model"===r){p.push({type:"value",path:n}),e._s=t,e._h=e._h||{};var W="checkbox"===e.type||"radio"===e.type||"SELECT"===e.tagName?"change":"input";"input"===W&&(e.addEventListener("compositionstart",()=>e._c=!0),e.addEventListener("compositionend",()=>{e._c=!1,e.dispatchEvent(new Event("input",{bubbles:!0}))})),(e._h[W]=e._h[W]||[]).push({model:!0,p:n}),_(W)}else"ref"===r?i.$refs[q]=e:g[r]?p.push({type:r,path:n}):(e._s=t,e._h=e._h||{},(e._h[r]=e._h[r]||[]).unshift({p:n}),_(r))}}for(var z=e.firstChild;z;){var G=z.nextSibling;m(z,t,a),z=G}p.length&&a.push(h(()=>{for(var r=p.length;r--;){var a=p[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?g.class(e,o):g.attr(e,o,a.name)):g[a.type](e,o)}},s))}};m(r,i,p),i.init&&i.init();var O={unmount:()=>{i.destroy&&i.destroy.call(i);for(var e=p.length;e--;)p[e]();for(var t in u)r.removeEventListener(t,d,!!l[t]);if(i._c)for(var t in i._c)v(i._c[t].r);r._m=null}};return r._m=O,O}},_=e=>{if(!e||"object"!=typeof e||e instanceof Node||e instanceof Date||e instanceof RegExp)return e;var t=e._t||e;if(Array.isArray(t))return t.map(e=>_(e));var r={};for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&36!==a.charCodeAt(0)&&95!==a.charCodeAt(0)&&(r[a]=_(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++)b(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:_,mount:e=>b(e),unmount:e=>{e&&e._m&&e._m.unmount()}}})();export default spiki;
|
package/spiki.js
CHANGED
|
@@ -38,8 +38,7 @@ var spiki = (() => {
|
|
|
38
38
|
var queue = scheduler;
|
|
39
39
|
scheduler = [];
|
|
40
40
|
isFlushing = false;
|
|
41
|
-
var i = queue.length;
|
|
42
|
-
while (i--) {
|
|
41
|
+
for (var i = 0; i < queue.length; i++) {
|
|
43
42
|
queue[i]._q = false;
|
|
44
43
|
queue[i]();
|
|
45
44
|
}
|
|
@@ -131,8 +130,15 @@ var spiki = (() => {
|
|
|
131
130
|
return () => cleanup(runner);
|
|
132
131
|
};
|
|
133
132
|
|
|
133
|
+
var isTrackable = (obj) => {
|
|
134
|
+
return obj && typeof obj === 'object' && !obj._y &&
|
|
135
|
+
!(obj instanceof Node) && !(obj instanceof Date) &&
|
|
136
|
+
!(obj instanceof RegExp) && !(obj instanceof Map) &&
|
|
137
|
+
!(obj instanceof Set) && !(obj instanceof Promise);
|
|
138
|
+
};
|
|
139
|
+
|
|
134
140
|
var makeReactive = (obj) => {
|
|
135
|
-
if (!obj
|
|
141
|
+
if (!isTrackable(obj)) return obj;
|
|
136
142
|
if (Object.prototype.hasOwnProperty.call(obj, '_p')) return obj._p;
|
|
137
143
|
|
|
138
144
|
var proxy = new Proxy(obj, {
|
|
@@ -144,6 +150,7 @@ var spiki = (() => {
|
|
|
144
150
|
if (key === '_c') return target._c;
|
|
145
151
|
|
|
146
152
|
if (Array.isArray(target) && arrInst.hasOwnProperty(key)) return arrInst[key];
|
|
153
|
+
|
|
147
154
|
var desc = Object.getOwnPropertyDescriptor(target, key);
|
|
148
155
|
if (desc && desc.get) {
|
|
149
156
|
var c = target._c || (Object.defineProperty(target, '_c', {
|
|
@@ -157,8 +164,8 @@ var spiki = (() => {
|
|
|
157
164
|
var prev = activeEffect;
|
|
158
165
|
activeEffect = runner;
|
|
159
166
|
try {
|
|
160
|
-
comp.d = false;
|
|
161
|
-
comp.v = desc.get.call(
|
|
167
|
+
comp.d = false;
|
|
168
|
+
comp.v = desc.get.call(target._p);
|
|
162
169
|
} finally {
|
|
163
170
|
activeEffect = prev;
|
|
164
171
|
}
|
|
@@ -174,11 +181,15 @@ var spiki = (() => {
|
|
|
174
181
|
}
|
|
175
182
|
if (comp.d) comp.r();
|
|
176
183
|
track(target, key);
|
|
177
|
-
return (comp.v
|
|
184
|
+
return isTrackable(comp.v) ? makeReactive(comp.v) : comp.v;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
if (Object.prototype.hasOwnProperty.call(target, key)) {
|
|
188
|
+
track(target, Array.isArray(target) ? 'length' : key);
|
|
178
189
|
}
|
|
179
|
-
|
|
190
|
+
|
|
180
191
|
var res = Reflect.get(target, key, receiver);
|
|
181
|
-
return (res
|
|
192
|
+
return isTrackable(res) ? makeReactive(res) : res;
|
|
182
193
|
},
|
|
183
194
|
set: (target, key, val, receiver) => {
|
|
184
195
|
var old = target[key];
|
|
@@ -187,13 +198,13 @@ var spiki = (() => {
|
|
|
187
198
|
|
|
188
199
|
if (target._i && !hadKey) {
|
|
189
200
|
var proto = Object.getPrototypeOf(target);
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
return
|
|
201
|
+
while (proto && proto !== Object.prototype) {
|
|
202
|
+
var rawProto = proto._t || proto;
|
|
203
|
+
if (Object.prototype.hasOwnProperty.call(rawProto, key)) {
|
|
204
|
+
proto[key] = val;
|
|
205
|
+
return true;
|
|
195
206
|
}
|
|
196
|
-
proto = Object.getPrototypeOf(
|
|
207
|
+
proto = Object.getPrototypeOf(rawProto);
|
|
197
208
|
}
|
|
198
209
|
}
|
|
199
210
|
|
|
@@ -306,10 +317,12 @@ var spiki = (() => {
|
|
|
306
317
|
|
|
307
318
|
if (handler.model) {
|
|
308
319
|
var val = target.type === 'checkbox' ? target.checked : target.value;
|
|
309
|
-
if (
|
|
320
|
+
if (target.type === 'number' || target.type === 'range') {
|
|
321
|
+
val = val === '' ? null : Number(val);
|
|
322
|
+
} else if (typeof val === 'string') {
|
|
310
323
|
var clean = val.trim();
|
|
311
|
-
if (clean && isFinite(clean)) {
|
|
312
|
-
|
|
324
|
+
if (clean && clean.length < 16 && clean.charCodeAt(clean.length - 1) !== 46 && isFinite(clean)) {
|
|
325
|
+
if (clean.charCodeAt(0) !== 48 || clean.length === 1 || clean.charCodeAt(1) === 46) {
|
|
313
326
|
val = Number(clean);
|
|
314
327
|
}
|
|
315
328
|
}
|
|
@@ -426,9 +439,9 @@ var spiki = (() => {
|
|
|
426
439
|
var key = isArr ? i : keys[i];
|
|
427
440
|
var item = isArr ? list[i] : list[key];
|
|
428
441
|
var unique;
|
|
429
|
-
if (item == null || typeof item !== 'object') unique = String(item);
|
|
430
|
-
else if (keyPath) unique = evalPath(item, keyPath).val;
|
|
431
|
-
else unique = String(key)
|
|
442
|
+
if (item == null || typeof item !== 'object') unique = 'p_' + String(item);
|
|
443
|
+
else if (keyPath) unique = 'k_' + evalPath(item, keyPath).val;
|
|
444
|
+
else unique = 'i_' + String(key);
|
|
432
445
|
|
|
433
446
|
if (usedKeys[unique]) unique += '_' + i;
|
|
434
447
|
var row = nodePool[unique];
|
|
@@ -509,11 +522,14 @@ var spiki = (() => {
|
|
|
509
522
|
else if (type === 'model') {
|
|
510
523
|
bindings.push({ type: 'value', path: p });
|
|
511
524
|
el._s = scope; el._h = el._h || {};
|
|
512
|
-
var evt = (el.type === 'checkbox' || el.type === 'radio' || el.tagName==='SELECT') ? 'change' : 'input';
|
|
525
|
+
var evt = (el.type === 'checkbox' || el.type === 'radio' || el.tagName === 'SELECT') ? 'change' : 'input';
|
|
513
526
|
|
|
514
527
|
if (evt === 'input') {
|
|
515
528
|
el.addEventListener('compositionstart', () => el._c = true);
|
|
516
|
-
el.addEventListener('compositionend', () => {
|
|
529
|
+
el.addEventListener('compositionend', () => {
|
|
530
|
+
el._c = false;
|
|
531
|
+
el.dispatchEvent(new Event('input', { bubbles: true }));
|
|
532
|
+
});
|
|
517
533
|
}
|
|
518
534
|
|
|
519
535
|
(el._h[evt] = el._h[evt] || []).push({ model: true, p: p });
|
|
@@ -524,13 +540,20 @@ var spiki = (() => {
|
|
|
524
540
|
bindings.push({ type: type, path: p });
|
|
525
541
|
} else {
|
|
526
542
|
el._s = scope; el._h = el._h || {};
|
|
527
|
-
|
|
543
|
+
(el._h[type] = el._h[type] || []).unshift({ p: p });
|
|
528
544
|
addListen(type);
|
|
529
545
|
}
|
|
530
546
|
}
|
|
531
547
|
}
|
|
532
548
|
}
|
|
533
549
|
|
|
550
|
+
var child = el.firstChild;
|
|
551
|
+
while (child) {
|
|
552
|
+
var nextSibling = child.nextSibling;
|
|
553
|
+
walk(child, scope, parentCleanups);
|
|
554
|
+
child = nextSibling;
|
|
555
|
+
}
|
|
556
|
+
|
|
534
557
|
if (bindings.length) {
|
|
535
558
|
parentCleanups.push(effect(() => {
|
|
536
559
|
var i = bindings.length;
|
|
@@ -549,13 +572,6 @@ var spiki = (() => {
|
|
|
549
572
|
}
|
|
550
573
|
}, nextTick));
|
|
551
574
|
}
|
|
552
|
-
|
|
553
|
-
var child = el.firstChild;
|
|
554
|
-
while (child) {
|
|
555
|
-
var nextSibling = child.nextSibling;
|
|
556
|
-
walk(child, scope, parentCleanups);
|
|
557
|
-
child = nextSibling;
|
|
558
|
-
}
|
|
559
575
|
};
|
|
560
576
|
|
|
561
577
|
walk(rootElement, state, cleanups);
|
|
@@ -565,7 +581,7 @@ var spiki = (() => {
|
|
|
565
581
|
unmount: () => {
|
|
566
582
|
if (state.destroy) state.destroy.call(state);
|
|
567
583
|
var i = cleanups.length; while (i--) cleanups[i]();
|
|
568
|
-
for(var k in listeners) rootElement.removeEventListener(k, handle);
|
|
584
|
+
for (var k in listeners) rootElement.removeEventListener(k, handle, !!captureEvents[k]);
|
|
569
585
|
if (state._c) for (var k in state._c) cleanup(state._c[k].r);
|
|
570
586
|
rootElement._m = null;
|
|
571
587
|
}
|
|
@@ -575,11 +591,15 @@ var spiki = (() => {
|
|
|
575
591
|
};
|
|
576
592
|
|
|
577
593
|
var raw = (o) => {
|
|
578
|
-
if (!o || typeof o !== 'object') return o;
|
|
594
|
+
if (!o || typeof o !== 'object' || o instanceof Node || o instanceof Date || o instanceof RegExp) return o;
|
|
579
595
|
var target = o._t || o;
|
|
580
596
|
if (Array.isArray(target)) return target.map(e => raw(e));
|
|
581
597
|
var result = {};
|
|
582
|
-
for (var i in target)
|
|
598
|
+
for (var i in target) {
|
|
599
|
+
if (Object.prototype.hasOwnProperty.call(target, i) && i.charCodeAt(0) !== 36 && i.charCodeAt(0) !== 95) {
|
|
600
|
+
result[i] = raw(target[i]);
|
|
601
|
+
}
|
|
602
|
+
}
|
|
583
603
|
return result;
|
|
584
604
|
};
|
|
585
605
|
|
|
@@ -595,8 +615,7 @@ var spiki = (() => {
|
|
|
595
615
|
},
|
|
596
616
|
start: () => {
|
|
597
617
|
var els = document.querySelectorAll('[s-data]');
|
|
598
|
-
var i = els.length;
|
|
599
|
-
while (i--) mount(els[i]);
|
|
618
|
+
for (var i = 0; i < els.length; i++) mount(els[i]);
|
|
600
619
|
},
|
|
601
620
|
store: (name, value) => {
|
|
602
621
|
if (value === undefined) {
|
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,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=e.length;t
|
|
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=[]},h=(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)},d=e=>e&&"object"==typeof e&&!e._y&&!(e instanceof Node)&&!(e instanceof Date)&&!(e instanceof RegExp)&&!(e instanceof Map)&&!(e instanceof Set)&&!(e instanceof Promise),y=e=>{if(!d(e))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),d(i.v)?y(i.v):i.v}Object.prototype.hasOwnProperty.call(e,t)&&p(e,Array.isArray(e)?"length":t);var s=Reflect.get(e,t,r);return d(s)?y(s):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=y({});var g=Object.create(null);g.text=(e,t)=>{t=null==t?"":t,e.textContent!==String(t)&&(e.textContent=t)},g.html=(e,t)=>{e.innerHTML!=t&&(e.innerHTML=null==t?"":t)},g.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)},g.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)}},g.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 b=(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=y(o);i.$refs={},i.$root=r,i.$store=e,i.$parent=a;var f=[],u=Object.create(null),d=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("number"===t.type||"range"===t.type)u=""===u?null:Number(u);else if("string"==typeof u){var v=u.trim();v&&v.length<16&&46!==v.charCodeAt(v.length-1)&&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 h=l,d=0,y=p.length-1;d<y&&h;)h=h[p[d++]];h&&(h[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,d,!!l[e]))},m=(e,t,a)=>{if(1===e.nodeType&&!e.hasAttribute("s-ignore"))if(e!==r&&e.hasAttribute("s-data")){var n=b(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,d=[];e.replaceWith(u);var O="!"===o[0],A=O?o.slice(1):o,j=-1===A.indexOf(".")?A:A.split(".");return a.push(()=>{for(var e=d.length;e--;)d[e]()}),a.push(h(()=>{var r=c(t,j).val;if(O&&(r=!r),r)v||((v=e.cloneNode(!0)).removeAttribute("s-if"),m(v,t,d),u.parentNode.insertBefore(v,u));else if(v){for(var a=d.length;a--;)d[a]();d=[],v.remove(),v=null}},s))}if(l){var x=l.indexOf(" in ");if(-1!==x){var P,N=l.slice(0,x).trim(),w=l.slice(x+4).trim(),E=N.replace(/[()]/g,"").split(","),k=E[0].trim(),C=E[1]?E[1].trim():null,S=-1===w.indexOf(".")?w:w.split("."),T=e.getAttribute("s-key"),L=T?-1===T.indexOf(".")?T:T.split("."):null,$=(u=document.createTextNode(""),Object.create(null));return e.replaceWith(u),a.push(()=>{for(var e in $)$[e].cleanups.forEach(e=>e())}),a.push(h(()=>{var r=c(t,S).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;P=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],h=o?r[s]:r[v];f=null==h||"object"!=typeof h?"p_"+String(h):L?"k_"+c(h,L).val:"i_"+String(v),P[f]&&(f+="_"+s);var d=$[f];if(d)d.scope[k]=h,C&&(d.scope[C]=v);else{var g=e.content.cloneNode(!0),b=Object.create(t);Object.defineProperty(b,"_i",{value:!0});var _=y(b);_[k]=h,C&&(_[C]=v);for(var O=Array.prototype.slice.call(g.childNodes),A=[],j=0;j<O.length;j++)m(O[j],_,A);d={nodes:Array.prototype.slice.call(g.childNodes),scope:_,cleanups:A},$[f]=d}if(d.nodes[0]===n)a.childNodes.length&&u.parentNode.insertBefore(a,n),n=d.nodes[d.nodes.length-1].nextSibling;else for(j=0;j<d.nodes.length;j++)a.appendChild(d.nodes[j]);P[f]=!0}for(var x in a.childNodes.length&&u.parentNode.insertBefore(a,n),$)P[x]||($[x].cleanups.forEach(e=>e()),$[x].nodes.forEach(e=>e.remove()),delete $[x])},s))}}if(e.hasAttributes())for(var M=e.attributes,R=M.length;R--;){var B=M[R],D=B.name,q=B.value;if(58===D.charCodeAt(0)){var F=D.slice(1),H=33===q.charCodeAt(0),K=H?q.slice(1):q;j=-1===K.indexOf(".")?K:K.split(".");f.push({type:"attr",name:F,path:j,neg:H})}else if(115===D.charCodeAt(0)&&45===D.charCodeAt(1)){let r=D.slice(2),n=-1===q.indexOf(".")?q:q.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(h(()=>{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 W="checkbox"===e.type||"radio"===e.type||"SELECT"===e.tagName?"change":"input";"input"===W&&(e.addEventListener("compositionstart",()=>e._c=!0),e.addEventListener("compositionend",()=>{e._c=!1,e.dispatchEvent(new Event("input",{bubbles:!0}))})),(e._h[W]=e._h[W]||[]).push({model:!0,p:n}),_(W)}else"ref"===r?i.$refs[q]=e:g[r]?f.push({type:r,path:n}):(e._s=t,e._h=e._h||{},(e._h[r]=e._h[r]||[]).unshift({p:n}),_(r))}}for(var z=e.firstChild;z;){var G=z.nextSibling;m(z,t,a),z=G}f.length&&a.push(h(()=>{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?g.class(e,o):g.attr(e,o,a.name)):g[a.type](e,o)}},s))}};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,d,!!l[t]);if(i._c)for(var t in i._c)v(i._c[t].r);r._m=null}};return r._m=O,O}},_=e=>{if(!e||"object"!=typeof e||e instanceof Node||e instanceof Date||e instanceof RegExp)return e;var t=e._t||e;if(Array.isArray(t))return t.map(e=>_(e));var r={};for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&36!==a.charCodeAt(0)&&95!==a.charCodeAt(0)&&(r[a]=_(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++)b(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:_,mount:e=>b(e),unmount:e=>{e&&e._m&&e._m.unmount()}}})();window.spiki=e}();
|