spikijs 1.1.37 → 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 +28 -47
- package/spiki.esm.min.js +1 -1
- package/spiki.js +28 -47
- 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
187
|
var hadKey = isArr ? Number(key) < target.length : Object.prototype.hasOwnProperty.call(target, key);
|
|
197
188
|
|
|
198
|
-
if (!hadKey) {
|
|
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
|
}
|
|
@@ -438,9 +427,9 @@ var spiki = (() => {
|
|
|
438
427
|
var key = isArr ? i : keys[i];
|
|
439
428
|
var item = isArr ? list[i] : list[key];
|
|
440
429
|
var unique;
|
|
441
|
-
if (item == null || typeof item !== 'object') unique =
|
|
442
|
-
else if (keyPath) unique =
|
|
443
|
-
else 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';
|
|
444
433
|
|
|
445
434
|
if (usedKeys[unique]) unique += '_' + i;
|
|
446
435
|
var row = nodePool[unique];
|
|
@@ -496,7 +485,6 @@ var spiki = (() => {
|
|
|
496
485
|
}
|
|
497
486
|
else if (attrName.charCodeAt(0) === 115 && attrName.charCodeAt(1) === 45) {
|
|
498
487
|
let type = attrName.slice(2);
|
|
499
|
-
if (type === 'data') continue;
|
|
500
488
|
let p = attrValue.indexOf('.') === -1 ? attrValue : attrValue.split('.');
|
|
501
489
|
|
|
502
490
|
if (type === 'init' || type === 'destroy') {
|
|
@@ -522,14 +510,11 @@ var spiki = (() => {
|
|
|
522
510
|
else if (type === 'model') {
|
|
523
511
|
bindings.push({ type: 'value', path: p });
|
|
524
512
|
el._s = scope; el._h = el._h || {};
|
|
525
|
-
var evt = (el.type === 'checkbox' || el.type === 'radio' || el.tagName
|
|
513
|
+
var evt = (el.type === 'checkbox' || el.type === 'radio' || el.tagName==='SELECT') ? 'change' : 'input';
|
|
526
514
|
|
|
527
515
|
if (evt === 'input') {
|
|
528
516
|
el.addEventListener('compositionstart', () => el._c = true);
|
|
529
|
-
el.addEventListener('compositionend', () => {
|
|
530
|
-
el._c = false;
|
|
531
|
-
el.dispatchEvent(new Event('input', { bubbles: true }));
|
|
532
|
-
});
|
|
517
|
+
el.addEventListener('compositionend', () => { el._c = false; handle({target: el, type: 'input'}); });
|
|
533
518
|
}
|
|
534
519
|
|
|
535
520
|
(el._h[evt] = el._h[evt] || []).push({ model: true, p: p });
|
|
@@ -547,13 +532,6 @@ var spiki = (() => {
|
|
|
547
532
|
}
|
|
548
533
|
}
|
|
549
534
|
|
|
550
|
-
var child = el.firstChild;
|
|
551
|
-
while (child) {
|
|
552
|
-
var nextSibling = child.nextSibling;
|
|
553
|
-
walk(child, scope, parentCleanups);
|
|
554
|
-
child = nextSibling;
|
|
555
|
-
}
|
|
556
|
-
|
|
557
535
|
if (bindings.length) {
|
|
558
536
|
parentCleanups.push(effect(() => {
|
|
559
537
|
var i = bindings.length;
|
|
@@ -572,6 +550,13 @@ var spiki = (() => {
|
|
|
572
550
|
}
|
|
573
551
|
}, nextTick));
|
|
574
552
|
}
|
|
553
|
+
|
|
554
|
+
var child = el.firstChild;
|
|
555
|
+
while (child) {
|
|
556
|
+
var nextSibling = child.nextSibling;
|
|
557
|
+
walk(child, scope, parentCleanups);
|
|
558
|
+
child = nextSibling;
|
|
559
|
+
}
|
|
575
560
|
};
|
|
576
561
|
|
|
577
562
|
walk(rootElement, state, cleanups);
|
|
@@ -581,7 +566,7 @@ var spiki = (() => {
|
|
|
581
566
|
unmount: () => {
|
|
582
567
|
if (state.destroy) state.destroy.call(state);
|
|
583
568
|
var i = cleanups.length; while (i--) cleanups[i]();
|
|
584
|
-
for
|
|
569
|
+
for(var k in listeners) rootElement.removeEventListener(k, handle);
|
|
585
570
|
if (state._c) for (var k in state._c) cleanup(state._c[k].r);
|
|
586
571
|
rootElement._m = null;
|
|
587
572
|
}
|
|
@@ -591,15 +576,11 @@ var spiki = (() => {
|
|
|
591
576
|
};
|
|
592
577
|
|
|
593
578
|
var raw = (o) => {
|
|
594
|
-
if (!o || typeof o !== 'object'
|
|
579
|
+
if (!o || typeof o !== 'object') return o;
|
|
595
580
|
var target = o._t || o;
|
|
596
581
|
if (Array.isArray(target)) return target.map(e => raw(e));
|
|
597
582
|
var result = {};
|
|
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
|
+
for (var i in target) result[i] = raw(target[i]);
|
|
603
584
|
return result;
|
|
604
585
|
};
|
|
605
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,
|
|
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
190
|
var hadKey = isArr ? Number(key) < target.length : Object.prototype.hasOwnProperty.call(target, key);
|
|
200
191
|
|
|
201
|
-
if (!hadKey) {
|
|
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
|
}
|
|
@@ -441,9 +430,9 @@ var spiki = (() => {
|
|
|
441
430
|
var key = isArr ? i : keys[i];
|
|
442
431
|
var item = isArr ? list[i] : list[key];
|
|
443
432
|
var unique;
|
|
444
|
-
if (item == null || typeof item !== 'object') unique =
|
|
445
|
-
else if (keyPath) unique =
|
|
446
|
-
else 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';
|
|
447
436
|
|
|
448
437
|
if (usedKeys[unique]) unique += '_' + i;
|
|
449
438
|
var row = nodePool[unique];
|
|
@@ -499,7 +488,6 @@ var spiki = (() => {
|
|
|
499
488
|
}
|
|
500
489
|
else if (attrName.charCodeAt(0) === 115 && attrName.charCodeAt(1) === 45) {
|
|
501
490
|
let type = attrName.slice(2);
|
|
502
|
-
if (type === 'data') continue;
|
|
503
491
|
let p = attrValue.indexOf('.') === -1 ? attrValue : attrValue.split('.');
|
|
504
492
|
|
|
505
493
|
if (type === 'init' || type === 'destroy') {
|
|
@@ -525,14 +513,11 @@ var spiki = (() => {
|
|
|
525
513
|
else if (type === 'model') {
|
|
526
514
|
bindings.push({ type: 'value', path: p });
|
|
527
515
|
el._s = scope; el._h = el._h || {};
|
|
528
|
-
var evt = (el.type === 'checkbox' || el.type === 'radio' || el.tagName
|
|
516
|
+
var evt = (el.type === 'checkbox' || el.type === 'radio' || el.tagName==='SELECT') ? 'change' : 'input';
|
|
529
517
|
|
|
530
518
|
if (evt === 'input') {
|
|
531
519
|
el.addEventListener('compositionstart', () => el._c = true);
|
|
532
|
-
el.addEventListener('compositionend', () => {
|
|
533
|
-
el._c = false;
|
|
534
|
-
el.dispatchEvent(new Event('input', { bubbles: true }));
|
|
535
|
-
});
|
|
520
|
+
el.addEventListener('compositionend', () => { el._c = false; handle({target: el, type: 'input'}); });
|
|
536
521
|
}
|
|
537
522
|
|
|
538
523
|
(el._h[evt] = el._h[evt] || []).push({ model: true, p: p });
|
|
@@ -550,13 +535,6 @@ var spiki = (() => {
|
|
|
550
535
|
}
|
|
551
536
|
}
|
|
552
537
|
|
|
553
|
-
var child = el.firstChild;
|
|
554
|
-
while (child) {
|
|
555
|
-
var nextSibling = child.nextSibling;
|
|
556
|
-
walk(child, scope, parentCleanups);
|
|
557
|
-
child = nextSibling;
|
|
558
|
-
}
|
|
559
|
-
|
|
560
538
|
if (bindings.length) {
|
|
561
539
|
parentCleanups.push(effect(() => {
|
|
562
540
|
var i = bindings.length;
|
|
@@ -575,6 +553,13 @@ var spiki = (() => {
|
|
|
575
553
|
}
|
|
576
554
|
}, nextTick));
|
|
577
555
|
}
|
|
556
|
+
|
|
557
|
+
var child = el.firstChild;
|
|
558
|
+
while (child) {
|
|
559
|
+
var nextSibling = child.nextSibling;
|
|
560
|
+
walk(child, scope, parentCleanups);
|
|
561
|
+
child = nextSibling;
|
|
562
|
+
}
|
|
578
563
|
};
|
|
579
564
|
|
|
580
565
|
walk(rootElement, state, cleanups);
|
|
@@ -584,7 +569,7 @@ var spiki = (() => {
|
|
|
584
569
|
unmount: () => {
|
|
585
570
|
if (state.destroy) state.destroy.call(state);
|
|
586
571
|
var i = cleanups.length; while (i--) cleanups[i]();
|
|
587
|
-
for
|
|
572
|
+
for(var k in listeners) rootElement.removeEventListener(k, handle);
|
|
588
573
|
if (state._c) for (var k in state._c) cleanup(state._c[k].r);
|
|
589
574
|
rootElement._m = null;
|
|
590
575
|
}
|
|
@@ -594,15 +579,11 @@ var spiki = (() => {
|
|
|
594
579
|
};
|
|
595
580
|
|
|
596
581
|
var raw = (o) => {
|
|
597
|
-
if (!o || typeof o !== 'object'
|
|
582
|
+
if (!o || typeof o !== 'object') return o;
|
|
598
583
|
var target = o._t || o;
|
|
599
584
|
if (Array.isArray(target)) return target.map(e => raw(e));
|
|
600
585
|
var result = {};
|
|
601
|
-
for (var i in target)
|
|
602
|
-
if (Object.prototype.hasOwnProperty.call(target, i) && i.charCodeAt(0) !== 36 && i.charCodeAt(0) !== 95) {
|
|
603
|
-
result[i] = raw(target[i]);
|
|
604
|
-
}
|
|
605
|
-
}
|
|
586
|
+
for (var i in target) result[i] = raw(target[i]);
|
|
606
587
|
return result;
|
|
607
588
|
};
|
|
608
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,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,
|
|
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}();
|