spikijs 1.1.8 → 1.1.10

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "spikijs",
3
3
  "license": "MIT",
4
- "version": "1.1.8",
4
+ "version": "1.1.10",
5
5
  "type": "module",
6
6
  "repository": {
7
7
  "type": "git",
package/spiki.esm.js CHANGED
@@ -35,17 +35,22 @@ var spiki = (() => {
35
35
  };
36
36
 
37
37
  var evalPath = (scope, path) => {
38
+ var ctx = scope;
39
+ var val;
38
40
  if (typeof path === 'string') {
39
- return { ctx: scope, val: scope ? scope[path] : undefined };
41
+ val = scope ? scope[path] : undefined;
42
+ } else {
43
+ var i = 0, len = path.length;
44
+ while (i < len - 1 && ctx) {
45
+ ctx = ctx[path[i++]];
46
+ }
47
+ val = ctx ? ctx[path[len - 1]] : undefined;
40
48
  }
41
- var i = 0, len = path.length;
42
- while (i < len - 1 && scope) {
43
- scope = scope[path[i++]];
49
+ if (val === undefined) {
50
+ var displayPath = Array.isArray(path) ? path.join('.') : path;
51
+ console.warn('[Spiki] Property undefined: "' + displayPath + '"');
44
52
  }
45
- return {
46
- ctx: scope,
47
- val: scope ? scope[path[len - 1]] : undefined
48
- };
53
+ return { ctx: ctx, val: val };
49
54
  };
50
55
 
51
56
  // -------------------------------------------------------------------------
@@ -214,12 +219,11 @@ var spiki = (() => {
214
219
  };
215
220
 
216
221
  var mount = (rootElement, parentScope) => {
217
- if (rootElement._m) return;
222
+ if (rootElement._m) return rootElement._m;
218
223
 
219
224
  var name = rootElement.getAttribute('s-data');
220
225
  if (!cmpReg[name]) return;
221
226
 
222
- rootElement._m = true;
223
227
  var data = cmpReg[name]();
224
228
  if (parentScope) Object.setPrototypeOf(data, parentScope);
225
229
 
@@ -418,7 +422,12 @@ var spiki = (() => {
418
422
  ((type, path) => {
419
423
  var result = evalPath(scope, path);
420
424
  if (typeof result.val === 'function') {
421
- if (type === 'init') nextTick(() => result.val.call(result.ctx, el));
425
+ if (type === 'init') {
426
+ nextTick(() => {
427
+ var cleanupFn = result.val.call(result.ctx, el);
428
+ if (typeof cleanupFn === 'function') parentCleanups.push(cleanupFn);
429
+ });
430
+ }
422
431
  else parentCleanups.push(() => result.val.call(result.ctx, el));
423
432
  }
424
433
  })(type, p);
@@ -484,14 +493,16 @@ var spiki = (() => {
484
493
  walk(rootElement, state, cleanups);
485
494
  if (state.init) state.init();
486
495
 
487
- return {
496
+ var instance = {
488
497
  unmount: () => {
489
498
  if (state.destroy) state.destroy.call(state);
490
499
  cleanups.forEach(c => c());
491
500
  for(var k in listeners) rootElement.removeEventListener(k, handle);
492
- rootElement._m = false;
501
+ rootElement._m = null;
493
502
  }
494
503
  };
504
+ rootElement._m = instance;
505
+ return instance;
495
506
  };
496
507
 
497
508
  return {
@@ -502,7 +513,9 @@ var spiki = (() => {
502
513
  while (i--) mount(els[i]);
503
514
  },
504
515
  store: (k, v) => v === undefined ? globalStore[k] : (globalStore[k] = v),
505
- raw: (o) => (o && o._p) || o
516
+ raw: (o) => (o && o._p) || o,
517
+ mount: (el) => mount(el),
518
+ unmount: (el) => { if (el && el._m) el._m.unmount(); }
506
519
  };
507
520
  })();
508
521
 
package/spiki.esm.min.js CHANGED
@@ -1 +1 @@
1
- var spiki=(()=>{var L=Object,$=Array,s=Reflect,r=Promise,o=Node,q=document,j="length",D="value",F="push",K="forEach",M="indexOf",B="split",H="slice",R="call",i="get",W="prototype",f="hasOwnProperty",p="getPrototypeOf",t="defineProperty",z="create",G="isArray",I="getAttribute",J="removeAttribute",Q="hasAttribute",U="tagName",V="type",X="name",c="checked",Y="parentNode",Z="nextSibling",a="textContent",n="innerHTML",rr="replaceWith",er="insertBefore",tr="cloneNode",ar="remove",nr="createTextNode",or="addEventListener",ir="input",lr="checkbox",vr="function",sr="class",fr="object",pr="unshift",ur="trim",cr="cleanups",dr="nodes",l="deps",_r="className",yr="destroy",hr="init",mr="charCodeAt",v="sched",u=L[z](null),d=[],_=!1,y=null,h=!1,e=r.resolve(),gr=r=>{r._q||(r._q=!0,d[F](r),_||(_=!0,e.then(()=>{var r=d;_=!(d=[]);for(var e=r[j];e--;)r[e]._q=!1,r[e]()})))},br=(r,e)=>{if("string"==typeof e)return{ctx:r,val:r?r[e]:void 0};for(var t=0,a=e[j];t<a-1&&r;)r=r[e[t++]];return{ctx:r,val:r?r[e[a-1]]:void 0}},m={};[F,"pop","shift",pr,"splice","sort","reverse"][K](r=>{m[r]=function(){h=!0;try{return $[W][r].apply(this,arguments)}finally{h=!1,g(this,j)}}});var xr=(r,e)=>{!y||-1===(e=(r=r._d||(L[t](r,"_d",{value:L[z](null),writable:!0}),r._d))[e]||(r[e]=[]))[M](y)&&(e[F](y),y[l][F](e))},g=(r,e)=>{if(!h&&r._d&&r._d[e])for(var t=r._d[e][H](),a=0,n=t[j];a<n;a++){var o=t[a];o[v]?o[v](o):o()}},b=r=>{for(var e=r[l][j];e--;){var t=r[l][e],a=t[M](r);-1!==a&&(t[a]=t[t[j]-1],t.pop())}r[l]=[]},Ar=(e,r)=>{var t=()=>{b(t);var r=y;y=t;try{e()}finally{y=r}};return t[l]=[],t[v]=r,t(),()=>b(t)},Pr=r=>{if(!r||typeof r!=fr||r._y||r instanceof o)return r;if(r._p)return r._p;var e=new Proxy(r,{get:(r,e,t)=>{if("_y"===e)return!0;if("_d"===e)return r._d;if($[G](r)&&m[f](e))return m[e];var a=L.getOwnPropertyDescriptor(r,e);if(a&&a[i]){var n="_"+e;return n in r||Ar(()=>t[n]=a[i][R](t)),t[n]}return xr(r,e),!(e=s[i](r,e,t))||typeof e!=fr||e instanceof o?e:Pr(e)},set:(r,e,t,a)=>{var n=r[e],o=$[G](r),i=o?Number(e)<r[j]:L[W][f][R](r,e);if(!o&&!i)for(var l=L[p](r);l&&l!==L[W];){if(L[W][f][R](l,e)){var v=s.set(l,e,t);return h||t===n||g(r,e),v}l=L[p](l)}return v=s.set(r,e,t,a),!h&&v&&(i&&t===n||(g(r,e),o?g(r,j):i||g(r,"_k"))),v},deleteProperty:(r,e)=>{var t=L[W][f][R](r,e),a=s.deleteProperty(r,e);return a&&t&&(g(r,e),$[G](r)?g(r,j):g(r,"_k")),a},ownKeys:r=>(xr(r,"_k"),s.ownKeys(r))});return L[t](r,"_p",{value:e,enumerable:!1}),e},x=Pr({}),wr=L[z](null);wr.text=(r,e)=>{e=null==e?"":e,r[a]!==String(e)&&(r[a]=e)},wr.html=(r,e)=>{r[n]!=e&&(r[n]=null==e?"":e)},wr[D]=(r,e)=>{r[V]===lr?r[c]=!!e:"radio"===r[V]?r[c]=r[D]==e:r[D]!=e&&(r[D]=null==e?"":e)},wr.attr=(r,e,t)=>{null==e||!1===e?r[J](t):(e=!0===e?"":String(e),r[I](t)!==e&&r.setAttribute(t,e))},wr[sr]=(r,e)=>{var t=r._n||"",a="";if("string"==typeof e)a=e;else if(e)for(var n in e)e[n]&&(a+=(a?" ":"")+n);t=t+(t&&a?" ":"")+a,r[_r]!==t&&(r[_r]=t)};var Nr=(E,r)=>{if(!E._m){var e=E[I]("s-data");if(u[e]){E._m=!0,e=u[e](),r&&L.setPrototypeOf(e,r);var S=Pr(e);S.$refs={},S.$root=E,S.$store=x,S.$parent=r;var t=[],a=L[z](null),O=r=>{var e=r.target;if(r[V]!==ir||!e._c)for(var t=E[Y],a=r[V];e&&e!==t;){var n=e._h&&e._h[a];if(n)for(var o=e._s,i=n[j];i--;){var l=n[i],v=l.p;if(l.model){var s=e[V]===lr?e[c]:e[D];if("string"!=typeof s||(l=s[ur]())&&isFinite(l)&&(48===l[mr](0)&&1!==l[j]&&46!==l[mr](1)||(s=Number(l))),"string"==typeof v)o&&(o[v]=s);else{for(var f=o,p=0,u=v[j]-1;p<u&&f;)f=f[v[p++]];f&&(f[v[u]]=s)}}else typeof(s=br(o,v)).val==vr&&s.val[R](s.ctx,r)}e=e[Y]}},T=r=>{a[r]||(a[r]=!0,E[or](r,O))},C=(h,m,t)=>{if(1===h.nodeType&&!h[Q]("s-ignore"))if(h!==E&&h[Q]("s-data"))(r=Nr(h,m))&&t[F](r.unmount);else{var r=!(v=h[I]("s-if"))&&"TEMPLATE"===h[U]&&h[I]("s-for"),a=[];if(h[Q](sr)&&!h._n&&(h._n=h[_r]),v){var g=q[nr](""),e=null,n=[];h[rr](g);var o="!"===v[0],i=-1===(l=o?v[H](1):v)[M](".")?l:l[B](".");return t[F](()=>{n[K](r=>r())}),t[F](Ar(()=>{var r=br(m,i).val;o&&(r=!r),r?e||((e=h[tr](!0))[J]("s-if"),C(e,m,n),g[Y][er](e,g)):e&&(n[K](r=>r()),n=[],e[ar](),e=null)},gr))}if(r&&-1!==(v=r[M](" in "))){var b,l=r[H](0,v)[ur](),v=r[H](v+4)[ur](),x=(l=l.replace(/[()]/g,"")[B](","))[0][ur](),A=l[1]?l[1][ur]():null,P=-1===v[M](".")?v:v[B]("."),w=(v=h[I]("s-key"))?-1===v[M](".")?v:v[B]("."):null,g=q[nr](""),N=L[z](null);return h[rr](g),t[F](()=>{for(var r in N)N[r][cr][K](r=>r())}),t[F](Ar(()=>{var r=br(m,P).val||[];$[G](r)&&xr(r,j);var e=q.createDocumentFragment(),t=g;b=L[z](null);for(var a,n=$[G](r),o=n?r:L.keys(r),i=(n?r:o)[j],l=0;l<i;l++){var v=n?l:o[l],s=n?r[l]:r[v],f=null==s||typeof s!=fr?String(s):w?br(s,w).val:String(v)+"_o";b[f]&&(f+="_"+l);var p=N[f];if(p)p.scope[x]=s,A&&(p.scope[A]=v);else{var u=h.content[tr](!0),c=Pr(L[z](m));c[x]=s,A&&(c[A]=v);for(var d=$[W][H][R](u.childNodes),_=[],y=0;y<d[j];y++)C(d[y],c,_);p={nodes:d,scope:c,cleanups:_},N[f]=p}if(p[dr][0]!==t[Z]){for(y=0;y<p[dr][j];y++)e.appendChild(p[dr][y]);t[Y][er](e,t[Z])}t=p[dr][p[dr][j]-1],b[f]=!0}for(a in N)b[a]||(N[a][cr][K](r=>r()),N[a][dr][K](r=>r[ar]()),delete N[a])},gr))}if(h.hasAttributes())for(var s=h.attributes,f=s[j];f--;){var p,u,c=s[f],d=c[X],_=c[D];58===d[mr](0)?(p=d[H](1),c=(u=33===_[mr](0))?_[H](1):_,i=-1===c[M](".")?c:c[B]("."),a[F]({type:"attr",name:p,path:i,neg:u})):115===d[mr](0)&&45===d[mr](1)&&(u=d[H](2),i=-1===_[M](".")?_:_[B]("."),u===hr||u===yr?(r=>{var e=br(m,i);typeof e.val==vr&&(r===hr?gr(()=>e.val[R](e.ctx,h)):t[F](()=>e.val[R](e.ctx,h)))})(u):"effect"===u?t[F](Ar(()=>{var r=br(m,i);typeof r.val==vr&&r.val[R](r.ctx,h)},gr)):"model"===u?(a[F]({type:D,path:i}),h._s=m,h._h=h._h||{},(d=h[V]===lr||"radio"===h[V]||"SELECT"===h[U]?"change":ir)==ir&&(h[or]("compositionstart",()=>h._c=!0),h[or]("compositionend",()=>{h._c=!1,O({target:h,type:ir})})),(h._h[d]=h._h[d]||[])[pr]({model:!0,p:i}),T(d)):"ref"===u?S.$refs[_]=h:wr[u]?a[F]({type:u,path:i}):(h._s=m,h._h=h._h||{},(h._h[u]=h._h[u]||[])[F]({p:i}),T(u)))}a[j]&&t[F](Ar(()=>{for(var r=a[j];r--;){var e=a[r],t=(t=br(m,e.path)).val&&typeof t.val==vr?t.val[R](t.ctx,h):t.val;"attr"===e[V]?(e.neg&&(t=!t),e[X]===sr?wr[sr](h,t):wr.attr(h,t,e[X])):wr[e[V]](h,t)}},gr));for(var y=h.firstChild;y;){var k=y[Z];C(y,m,t),y=k}}};return C(E,S,t),S[hr]&&S[hr](),{unmount:()=>{for(var r in S[yr]&&S[yr][R](S),t[K](r=>r()),a)E.removeEventListener(r,O);E._m=!1}}}}};return{data:(r,e)=>{u[r]=e},start:()=>{for(var r=q.querySelectorAll("[s-data]"),e=r[j];e--;)Nr(r[e])},store:(r,e)=>void 0===e?x[r]:x[r]=e,raw:r=>r&&r._p||r}})();export default spiki;
1
+ var spiki=(()=>{var $=Object,q=Array,f=Reflect,e=Promise,o=Node,S=String,c=Number,j=document,D="length",F="value",K="push",M="forEach",B="indexOf",H="split",R="slice",W="call",l="get",z="prototype",s="hasOwnProperty",u="getPrototypeOf",t="defineProperty",G="create",I="isArray",J="getAttribute",Q="removeAttribute",U="hasAttribute",V="tagName",X="type",Y="name",_="checked",Z="parentNode",ee="nextSibling",a="textContent",n="innerHTML",re="replaceWith",te="insertBefore",ae="cloneNode",ne="remove",oe="createTextNode",le="addEventListener",ie="input",ve="checkbox",fe="function",se="class",ue="object",pe="unshift",ce="trim",_e="cleanups",de="nodes",i="deps",ye="className",he="destroy",me="init",ge="charCodeAt",v="sched",d="string",xe="unmount",be="attr",p=$[G](null),y=[],h=!1,m=null,g=!1,r=e.resolve(),Ae=e=>{e._q||(e._q=!0,y[K](e),h||(h=!0,r.then(()=>{var e=y;h=!(y=[]);for(var r=e[D];r--;)e[r]._q=!1,e[r]()})))},Pe=(e,r)=>{if(typeof r==d)return{ctx:e,val:e?e[r]:void 0};for(var t=0,a=r[D];t<a-1&&e;)e=e[r[t++]];return{ctx:e,val:e?e[r[a-1]]:void 0}},x={};[K,"pop","shift",pe,"splice","sort","reverse"][M](r=>{x[r]=function(...e){g=!0;try{return q[z][r].apply(this,e)}finally{g=!1,b(this,D)}}});var we=(e,r)=>{!m||-1===(r=(e=e._d||($[t](e,"_d",{value:$[G](null),writable:!0}),e._d))[r]||(e[r]=[]))[B](m)&&(r[K](m),m[i][K](r))},b=(e,r)=>{if(!g&&e._d&&e._d[r])for(var t=e._d[r][R](),a=0,n=t[D];a<n;a++){var o=t[a];o[v]?o[v](o):o()}},A=e=>{for(var r=e[i][D];r--;){var t=e[i][r],a=t[B](e);-1!==a&&(t[a]=t[t[D]-1],t.pop())}e[i]=[]},ke=(r,e)=>{var t=()=>{A(t);var e=m;m=t;try{r()}finally{m=e}};return t[i]=[],t[v]=e,t(),()=>A(t)},Ne=e=>{if(!e||typeof e!=ue||e._y||e instanceof o)return e;if(e._p)return e._p;var r=new Proxy(e,{get:(e,r,t)=>{if("_y"===r)return!0;if("_d"===r)return e._d;if(q[I](e)&&x[s](r))return x[r];var a=$.getOwnPropertyDescriptor(e,r);if(a&&a[l]){var n="_"+r;return n in e||ke(()=>t[n]=a[l][W](t)),t[n]}return we(e,r),!(r=f[l](e,r,t))||typeof r!=ue||r instanceof o?r:Ne(r)},set:(e,r,t,a)=>{var n=e[r],o=q[I](e),l=o?c(r)<e[D]:$[z][s][W](e,r);if(!o&&!l)for(var i=$[u](e);i&&i!==$[z];){if($[z][s][W](i,r)){var v=f.set(i,r,t);return g||t===n||b(e,r),v}i=$[u](i)}return v=f.set(e,r,t,a),!g&&v&&(l&&t===n||(b(e,r),o?b(e,D):l||b(e,"_k"))),v},deleteProperty:(e,r)=>{var t=$[z][s][W](e,r),a=f.deleteProperty(e,r);return a&&t&&(b(e,r),q[I](e)?b(e,D):b(e,"_k")),a},ownKeys:e=>(we(e,"_k"),f.ownKeys(e))});return $[t](e,"_p",{value:r,enumerable:!1}),r},P=Ne({}),Ee=$[G](null);Ee.text=(e,r)=>{r=null==r?"":r,e[a]!==S(r)&&(e[a]=r)},Ee.html=(e,r)=>{e[n]!=r&&(e[n]=null==r?"":r)},Ee[F]=(e,r)=>{e[X]===ve?e[_]=!!r:"radio"===e[X]?e[_]=e[F]==r:e[F]!=r&&(e[F]=null==r?"":r)},Ee[be]=(e,r,t)=>{null==r||!1===r?e[Q](t):(r=!0===r?"":S(r),e[J](t)!==r&&e.setAttribute(t,r))},Ee[se]=(e,r)=>{var t=e._n||"",a="";if(typeof r==d)a=r;else if(r)for(var n in r)r[n]&&(a+=(a?" ":"")+n);t=t+(t&&a?" ":"")+a,e[ye]!==t&&(e[ye]=t)};var Oe=(E,e)=>{if(E._m)return E._m;var r=E[J]("s-data");if(p[r]){r=p[r](),e&&$.setPrototypeOf(r,e);var O=Ne(r);O.$refs={},O.$root=E,O.$store=P,O.$parent=e;var t=[],a=$[G](null),T=e=>{var r=e.target;if(e[X]!==ie||!r._c)for(var t=E[Z],a=e[X];r&&r!==t;){var n=r._h&&r._h[a];if(n)for(var o=r._s,l=n[D];l--;){var i=n[l],v=i.p;if(i.model){var f=r[X]===ve?r[_]:r[F];if(typeof f!=d||(i=f[ce]())&&isFinite(i)&&(48===i[ge](0)&&1!==i[D]&&46!==i[ge](1)||(f=c(i))),typeof v==d)o&&(o[v]=f);else{for(var s=o,u=0,p=v[D]-1;u<p&&s;)s=s[v[u++]];s&&(s[v[p]]=f)}}else typeof(f=Pe(o,v)).val==fe&&f.val[W](f.ctx,e)}r=r[Z]}},C=e=>{a[e]||(a[e]=!0,E[le](e,T))},L=(h,m,t)=>{if(1===h.nodeType&&!h[U]("s-ignore"))if(h!==E&&h[U]("s-data"))(e=Oe(h,m))&&t[K](e[xe]);else{var e=!(v=h[J]("s-if"))&&"TEMPLATE"===h[V]&&h[J]("s-for"),a=[];if(h[U](se)&&!h._n&&(h._n=h[ye]),v){var g=j[oe](""),r=null,n=[];h[re](g);var o="!"===v[0],l=-1===(i=o?v[R](1):v)[B](".")?i:i[H](".");return t[K](()=>{n[M](e=>e())}),t[K](ke(()=>{var e=Pe(m,l).val;o&&(e=!e),e?r||((r=h[ae](!0))[Q]("s-if"),L(r,m,n),g[Z][te](r,g)):r&&(n[M](e=>e()),n=[],r[ne](),r=null)},Ae))}if(e&&-1!==(v=e[B](" in "))){var x,i=e[R](0,v)[ce](),v=e[R](v+4)[ce](),b=(i=i.replace(/[()]/g,"")[H](","))[0][ce](),A=i[1]?i[1][ce]():null,P=-1===v[B](".")?v:v[H]("."),w=(v=h[J]("s-key"))?-1===v[B](".")?v:v[H]("."):null,g=j[oe](""),k=$[G](null);return h[re](g),t[K](()=>{for(var e in k)k[e][_e][M](e=>e())}),t[K](ke(()=>{var e=Pe(m,P).val||[];q[I](e)&&we(e,D);var r=j.createDocumentFragment(),t=g;x=$[G](null);for(var a,n=q[I](e),o=n?e:$.keys(e),l=(n?e:o)[D],i=0;i<l;i++){var v=n?i:o[i],f=n?e[i]:e[v],s=null==f||typeof f!=ue?S(f):w?Pe(f,w).val:S(v)+"_o";x[s]&&(s+="_"+i);var u=k[s];if(u)u.scope[b]=f,A&&(u.scope[A]=v);else{var p=h.content[ae](!0),c=Ne($[G](m));c[b]=f,A&&(c[A]=v);for(var _=q[z][R][W](p.childNodes),d=[],y=0;y<_[D];y++)L(_[y],c,d);u={nodes:_,scope:c,cleanups:d},k[s]=u}if(u[de][0]!==t[ee]){for(y=0;y<u[de][D];y++)r.appendChild(u[de][y]);t[Z][te](r,t[ee])}t=u[de][u[de][D]-1],x[s]=!0}for(a in k)x[a]||(k[a][_e][M](e=>e()),k[a][de][M](e=>e[ne]()),delete k[a])},Ae))}if(h.hasAttributes())for(var f=h.attributes,s=f[D];s--;){var u,p,c=f[s],_=c[Y],d=c[F];58===_[ge](0)?(u=_[R](1),c=(p=33===d[ge](0))?d[R](1):d,l=-1===c[B](".")?c:c[H]("."),a[K]({type:be,name:u,path:l,neg:p})):115===_[ge](0)&&45===_[ge](1)&&(p=_[R](2),l=-1===d[B](".")?d:d[H]("."),p===me||p===he?(e=>{var r=Pe(m,l);typeof r.val==fe&&(e===me?Ae(()=>{var e=r.val[W](r.ctx,h);typeof e==fe&&t[K](e)}):t[K](()=>r.val[W](r.ctx,h)))})(p):"effect"===p?t[K](ke(()=>{var e=Pe(m,l);typeof e.val==fe&&e.val[W](e.ctx,h)},Ae)):"model"===p?(a[K]({type:F,path:l}),h._s=m,h._h=h._h||{},(_=h[X]===ve||"radio"===h[X]||"SELECT"===h[V]?"change":ie)==ie&&(h[le]("compositionstart",()=>h._c=!0),h[le]("compositionend",()=>{h._c=!1,T({target:h,type:ie})})),(h._h[_]=h._h[_]||[])[pe]({model:!0,p:l}),C(_)):"ref"===p?O.$refs[d]=h:Ee[p]?a[K]({type:p,path:l}):(h._s=m,h._h=h._h||{},(h._h[p]=h._h[p]||[])[K]({p:l}),C(p)))}a[D]&&t[K](ke(()=>{for(var e=a[D];e--;){var r=a[e],t=(t=Pe(m,r.path)).val&&typeof t.val==fe?t.val[W](t.ctx,h):t.val;r[X]===be?(r.neg&&(t=!t),r[Y]===se?Ee[se](h,t):Ee[be](h,t,r[Y])):Ee[r[X]](h,t)}},Ae));for(var y=h.firstChild;y;){var N=y[ee];L(y,m,t),y=N}}};return L(E,O,t),O[me]&&O[me](),e={unmount:()=>{for(var e in O[he]&&O[he][W](O),t[M](e=>e()),a)E.removeEventListener(e,T);E._m=null}},E._m=e}};return{data:(e,r)=>{p[e]=r},start:()=>{for(var e=j.querySelectorAll("[s-data]"),r=e[D];r--;)Oe(e[r])},store:(e,r)=>void 0===r?P[e]:P[e]=r,raw:e=>e&&e._p||e,mount:e=>Oe(e),unmount:e=>{e&&e._m&&e._m[xe]()}}})();export default spiki;
package/spiki.js CHANGED
@@ -38,17 +38,22 @@ var spiki = (() => {
38
38
  };
39
39
 
40
40
  var evalPath = (scope, path) => {
41
+ var ctx = scope;
42
+ var val;
41
43
  if (typeof path === 'string') {
42
- return { ctx: scope, val: scope ? scope[path] : undefined };
44
+ val = scope ? scope[path] : undefined;
45
+ } else {
46
+ var i = 0, len = path.length;
47
+ while (i < len - 1 && ctx) {
48
+ ctx = ctx[path[i++]];
49
+ }
50
+ val = ctx ? ctx[path[len - 1]] : undefined;
43
51
  }
44
- var i = 0, len = path.length;
45
- while (i < len - 1 && scope) {
46
- scope = scope[path[i++]];
52
+ if (val === undefined) {
53
+ var displayPath = Array.isArray(path) ? path.join('.') : path;
54
+ console.warn('[Spiki] Property undefined: "' + displayPath + '"');
47
55
  }
48
- return {
49
- ctx: scope,
50
- val: scope ? scope[path[len - 1]] : undefined
51
- };
56
+ return { ctx: ctx, val: val };
52
57
  };
53
58
 
54
59
  // -------------------------------------------------------------------------
@@ -217,12 +222,11 @@ var spiki = (() => {
217
222
  };
218
223
 
219
224
  var mount = (rootElement, parentScope) => {
220
- if (rootElement._m) return;
225
+ if (rootElement._m) return rootElement._m;
221
226
 
222
227
  var name = rootElement.getAttribute('s-data');
223
228
  if (!cmpReg[name]) return;
224
229
 
225
- rootElement._m = true;
226
230
  var data = cmpReg[name]();
227
231
  if (parentScope) Object.setPrototypeOf(data, parentScope);
228
232
 
@@ -421,7 +425,12 @@ var spiki = (() => {
421
425
  ((type, path) => {
422
426
  var result = evalPath(scope, path);
423
427
  if (typeof result.val === 'function') {
424
- if (type === 'init') nextTick(() => result.val.call(result.ctx, el));
428
+ if (type === 'init') {
429
+ nextTick(() => {
430
+ var cleanupFn = result.val.call(result.ctx, el);
431
+ if (typeof cleanupFn === 'function') parentCleanups.push(cleanupFn);
432
+ });
433
+ }
425
434
  else parentCleanups.push(() => result.val.call(result.ctx, el));
426
435
  }
427
436
  })(type, p);
@@ -487,14 +496,16 @@ var spiki = (() => {
487
496
  walk(rootElement, state, cleanups);
488
497
  if (state.init) state.init();
489
498
 
490
- return {
499
+ var instance = {
491
500
  unmount: () => {
492
501
  if (state.destroy) state.destroy.call(state);
493
502
  cleanups.forEach(c => c());
494
503
  for(var k in listeners) rootElement.removeEventListener(k, handle);
495
- rootElement._m = false;
504
+ rootElement._m = null;
496
505
  }
497
506
  };
507
+ rootElement._m = instance;
508
+ return instance;
498
509
  };
499
510
 
500
511
  return {
@@ -505,7 +516,9 @@ var spiki = (() => {
505
516
  while (i--) mount(els[i]);
506
517
  },
507
518
  store: (k, v) => v === undefined ? globalStore[k] : (globalStore[k] = v),
508
- raw: (o) => (o && o._p) || o
519
+ raw: (o) => (o && o._p) || o,
520
+ mount: (el) => mount(el),
521
+ unmount: (el) => { if (el && el._m) el._m.unmount(); }
509
522
  };
510
523
  })();
511
524
 
package/spiki.min.js CHANGED
@@ -1 +1 @@
1
- (()=>{"use strict";var r=(()=>{var L=Object,$=Array,s=Reflect,r=Promise,o=Node,q=document,j="length",D="value",F="push",K="forEach",M="indexOf",B="split",H="slice",R="call",i="get",W="prototype",f="hasOwnProperty",p="getPrototypeOf",t="defineProperty",z="create",G="isArray",I="getAttribute",J="removeAttribute",Q="hasAttribute",U="tagName",V="type",X="name",c="checked",Y="parentNode",Z="nextSibling",a="textContent",n="innerHTML",rr="replaceWith",er="insertBefore",tr="cloneNode",ar="remove",nr="createTextNode",or="addEventListener",ir="input",lr="checkbox",vr="function",sr="class",fr="object",pr="unshift",ur="trim",cr="cleanups",dr="nodes",l="deps",_r="className",yr="destroy",hr="init",mr="charCodeAt",v="sched",u=L[z](null),d=[],_=!1,y=null,h=!1,e=r.resolve(),gr=r=>{r._q||(r._q=!0,d[F](r),_||(_=!0,e.then(()=>{var r=d;_=!(d=[]);for(var e=r[j];e--;)r[e]._q=!1,r[e]()})))},br=(r,e)=>{if("string"==typeof e)return{ctx:r,val:r?r[e]:void 0};for(var t=0,a=e[j];t<a-1&&r;)r=r[e[t++]];return{ctx:r,val:r?r[e[a-1]]:void 0}},m={};[F,"pop","shift",pr,"splice","sort","reverse"][K](r=>{m[r]=function(){h=!0;try{return $[W][r].apply(this,arguments)}finally{h=!1,g(this,j)}}});var xr=(r,e)=>{!y||-1===(e=(r=r._d||(L[t](r,"_d",{value:L[z](null),writable:!0}),r._d))[e]||(r[e]=[]))[M](y)&&(e[F](y),y[l][F](e))},g=(r,e)=>{if(!h&&r._d&&r._d[e])for(var t=r._d[e][H](),a=0,n=t[j];a<n;a++){var o=t[a];o[v]?o[v](o):o()}},b=r=>{for(var e=r[l][j];e--;){var t=r[l][e],a=t[M](r);-1!==a&&(t[a]=t[t[j]-1],t.pop())}r[l]=[]},Ar=(e,r)=>{var t=()=>{b(t);var r=y;y=t;try{e()}finally{y=r}};return t[l]=[],t[v]=r,t(),()=>b(t)},Pr=r=>{if(!r||typeof r!=fr||r._y||r instanceof o)return r;if(r._p)return r._p;var e=new Proxy(r,{get:(r,e,t)=>{if("_y"===e)return!0;if("_d"===e)return r._d;if($[G](r)&&m[f](e))return m[e];var a=L.getOwnPropertyDescriptor(r,e);if(a&&a[i]){var n="_"+e;return n in r||Ar(()=>t[n]=a[i][R](t)),t[n]}return xr(r,e),!(e=s[i](r,e,t))||typeof e!=fr||e instanceof o?e:Pr(e)},set:(r,e,t,a)=>{var n=r[e],o=$[G](r),i=o?Number(e)<r[j]:L[W][f][R](r,e);if(!o&&!i)for(var l=L[p](r);l&&l!==L[W];){if(L[W][f][R](l,e)){var v=s.set(l,e,t);return h||t===n||g(r,e),v}l=L[p](l)}return v=s.set(r,e,t,a),!h&&v&&(i&&t===n||(g(r,e),o?g(r,j):i||g(r,"_k"))),v},deleteProperty:(r,e)=>{var t=L[W][f][R](r,e),a=s.deleteProperty(r,e);return a&&t&&(g(r,e),$[G](r)?g(r,j):g(r,"_k")),a},ownKeys:r=>(xr(r,"_k"),s.ownKeys(r))});return L[t](r,"_p",{value:e,enumerable:!1}),e},x=Pr({}),wr=L[z](null);wr.text=(r,e)=>{e=null==e?"":e,r[a]!==String(e)&&(r[a]=e)},wr.html=(r,e)=>{r[n]!=e&&(r[n]=null==e?"":e)},wr[D]=(r,e)=>{r[V]===lr?r[c]=!!e:"radio"===r[V]?r[c]=r[D]==e:r[D]!=e&&(r[D]=null==e?"":e)},wr.attr=(r,e,t)=>{null==e||!1===e?r[J](t):(e=!0===e?"":String(e),r[I](t)!==e&&r.setAttribute(t,e))},wr[sr]=(r,e)=>{var t=r._n||"",a="";if("string"==typeof e)a=e;else if(e)for(var n in e)e[n]&&(a+=(a?" ":"")+n);t=t+(t&&a?" ":"")+a,r[_r]!==t&&(r[_r]=t)};var Nr=(E,r)=>{if(!E._m){var e=E[I]("s-data");if(u[e]){E._m=!0,e=u[e](),r&&L.setPrototypeOf(e,r);var S=Pr(e);S.$refs={},S.$root=E,S.$store=x,S.$parent=r;var t=[],a=L[z](null),O=r=>{var e=r.target;if(r[V]!==ir||!e._c)for(var t=E[Y],a=r[V];e&&e!==t;){var n=e._h&&e._h[a];if(n)for(var o=e._s,i=n[j];i--;){var l=n[i],v=l.p;if(l.model){var s=e[V]===lr?e[c]:e[D];if("string"!=typeof s||(l=s[ur]())&&isFinite(l)&&(48===l[mr](0)&&1!==l[j]&&46!==l[mr](1)||(s=Number(l))),"string"==typeof v)o&&(o[v]=s);else{for(var f=o,p=0,u=v[j]-1;p<u&&f;)f=f[v[p++]];f&&(f[v[u]]=s)}}else typeof(s=br(o,v)).val==vr&&s.val[R](s.ctx,r)}e=e[Y]}},T=r=>{a[r]||(a[r]=!0,E[or](r,O))},C=(h,m,t)=>{if(1===h.nodeType&&!h[Q]("s-ignore"))if(h!==E&&h[Q]("s-data"))(r=Nr(h,m))&&t[F](r.unmount);else{var r=!(v=h[I]("s-if"))&&"TEMPLATE"===h[U]&&h[I]("s-for"),a=[];if(h[Q](sr)&&!h._n&&(h._n=h[_r]),v){var g=q[nr](""),e=null,n=[];h[rr](g);var o="!"===v[0],i=-1===(l=o?v[H](1):v)[M](".")?l:l[B](".");return t[F](()=>{n[K](r=>r())}),t[F](Ar(()=>{var r=br(m,i).val;o&&(r=!r),r?e||((e=h[tr](!0))[J]("s-if"),C(e,m,n),g[Y][er](e,g)):e&&(n[K](r=>r()),n=[],e[ar](),e=null)},gr))}if(r&&-1!==(v=r[M](" in "))){var b,l=r[H](0,v)[ur](),v=r[H](v+4)[ur](),x=(l=l.replace(/[()]/g,"")[B](","))[0][ur](),A=l[1]?l[1][ur]():null,P=-1===v[M](".")?v:v[B]("."),w=(v=h[I]("s-key"))?-1===v[M](".")?v:v[B]("."):null,g=q[nr](""),N=L[z](null);return h[rr](g),t[F](()=>{for(var r in N)N[r][cr][K](r=>r())}),t[F](Ar(()=>{var r=br(m,P).val||[];$[G](r)&&xr(r,j);var e=q.createDocumentFragment(),t=g;b=L[z](null);for(var a,n=$[G](r),o=n?r:L.keys(r),i=(n?r:o)[j],l=0;l<i;l++){var v=n?l:o[l],s=n?r[l]:r[v],f=null==s||typeof s!=fr?String(s):w?br(s,w).val:String(v)+"_o";b[f]&&(f+="_"+l);var p=N[f];if(p)p.scope[x]=s,A&&(p.scope[A]=v);else{var u=h.content[tr](!0),c=Pr(L[z](m));c[x]=s,A&&(c[A]=v);for(var d=$[W][H][R](u.childNodes),_=[],y=0;y<d[j];y++)C(d[y],c,_);p={nodes:d,scope:c,cleanups:_},N[f]=p}if(p[dr][0]!==t[Z]){for(y=0;y<p[dr][j];y++)e.appendChild(p[dr][y]);t[Y][er](e,t[Z])}t=p[dr][p[dr][j]-1],b[f]=!0}for(a in N)b[a]||(N[a][cr][K](r=>r()),N[a][dr][K](r=>r[ar]()),delete N[a])},gr))}if(h.hasAttributes())for(var s=h.attributes,f=s[j];f--;){var p,u,c=s[f],d=c[X],_=c[D];58===d[mr](0)?(p=d[H](1),c=(u=33===_[mr](0))?_[H](1):_,i=-1===c[M](".")?c:c[B]("."),a[F]({type:"attr",name:p,path:i,neg:u})):115===d[mr](0)&&45===d[mr](1)&&(u=d[H](2),i=-1===_[M](".")?_:_[B]("."),u===hr||u===yr?(r=>{var e=br(m,i);typeof e.val==vr&&(r===hr?gr(()=>e.val[R](e.ctx,h)):t[F](()=>e.val[R](e.ctx,h)))})(u):"effect"===u?t[F](Ar(()=>{var r=br(m,i);typeof r.val==vr&&r.val[R](r.ctx,h)},gr)):"model"===u?(a[F]({type:D,path:i}),h._s=m,h._h=h._h||{},(d=h[V]===lr||"radio"===h[V]||"SELECT"===h[U]?"change":ir)==ir&&(h[or]("compositionstart",()=>h._c=!0),h[or]("compositionend",()=>{h._c=!1,O({target:h,type:ir})})),(h._h[d]=h._h[d]||[])[pr]({model:!0,p:i}),T(d)):"ref"===u?S.$refs[_]=h:wr[u]?a[F]({type:u,path:i}):(h._s=m,h._h=h._h||{},(h._h[u]=h._h[u]||[])[F]({p:i}),T(u)))}a[j]&&t[F](Ar(()=>{for(var r=a[j];r--;){var e=a[r],t=(t=br(m,e.path)).val&&typeof t.val==vr?t.val[R](t.ctx,h):t.val;"attr"===e[V]?(e.neg&&(t=!t),e[X]===sr?wr[sr](h,t):wr.attr(h,t,e[X])):wr[e[V]](h,t)}},gr));for(var y=h.firstChild;y;){var k=y[Z];C(y,m,t),y=k}}};return C(E,S,t),S[hr]&&S[hr](),{unmount:()=>{for(var r in S[yr]&&S[yr][R](S),t[K](r=>r()),a)E.removeEventListener(r,O);E._m=!1}}}}};return{data:(r,e)=>{u[r]=e},start:()=>{for(var r=q.querySelectorAll("[s-data]"),e=r[j];e--;)Nr(r[e])},store:(r,e)=>void 0===e?x[r]:x[r]=e,raw:r=>r&&r._p||r}})();window.spiki=r})();
1
+ (()=>{"use strict";var e=(()=>{var $=Object,q=Array,f=Reflect,e=Promise,o=Node,S=String,c=Number,j=document,D="length",F="value",K="push",M="forEach",B="indexOf",H="split",R="slice",W="call",l="get",z="prototype",s="hasOwnProperty",u="getPrototypeOf",t="defineProperty",G="create",I="isArray",J="getAttribute",Q="removeAttribute",U="hasAttribute",V="tagName",X="type",Y="name",_="checked",Z="parentNode",ee="nextSibling",a="textContent",n="innerHTML",re="replaceWith",te="insertBefore",ae="cloneNode",ne="remove",oe="createTextNode",le="addEventListener",ie="input",ve="checkbox",fe="function",se="class",ue="object",pe="unshift",ce="trim",_e="cleanups",de="nodes",i="deps",ye="className",he="destroy",me="init",ge="charCodeAt",v="sched",d="string",xe="unmount",be="attr",p=$[G](null),y=[],h=!1,m=null,g=!1,r=e.resolve(),Ae=e=>{e._q||(e._q=!0,y[K](e),h||(h=!0,r.then(()=>{var e=y;h=!(y=[]);for(var r=e[D];r--;)e[r]._q=!1,e[r]()})))},Pe=(e,r)=>{if(typeof r==d)return{ctx:e,val:e?e[r]:void 0};for(var t=0,a=r[D];t<a-1&&e;)e=e[r[t++]];return{ctx:e,val:e?e[r[a-1]]:void 0}},x={};[K,"pop","shift",pe,"splice","sort","reverse"][M](r=>{x[r]=function(...e){g=!0;try{return q[z][r].apply(this,e)}finally{g=!1,b(this,D)}}});var we=(e,r)=>{!m||-1===(r=(e=e._d||($[t](e,"_d",{value:$[G](null),writable:!0}),e._d))[r]||(e[r]=[]))[B](m)&&(r[K](m),m[i][K](r))},b=(e,r)=>{if(!g&&e._d&&e._d[r])for(var t=e._d[r][R](),a=0,n=t[D];a<n;a++){var o=t[a];o[v]?o[v](o):o()}},A=e=>{for(var r=e[i][D];r--;){var t=e[i][r],a=t[B](e);-1!==a&&(t[a]=t[t[D]-1],t.pop())}e[i]=[]},ke=(r,e)=>{var t=()=>{A(t);var e=m;m=t;try{r()}finally{m=e}};return t[i]=[],t[v]=e,t(),()=>A(t)},Ne=e=>{if(!e||typeof e!=ue||e._y||e instanceof o)return e;if(e._p)return e._p;var r=new Proxy(e,{get:(e,r,t)=>{if("_y"===r)return!0;if("_d"===r)return e._d;if(q[I](e)&&x[s](r))return x[r];var a=$.getOwnPropertyDescriptor(e,r);if(a&&a[l]){var n="_"+r;return n in e||ke(()=>t[n]=a[l][W](t)),t[n]}return we(e,r),!(r=f[l](e,r,t))||typeof r!=ue||r instanceof o?r:Ne(r)},set:(e,r,t,a)=>{var n=e[r],o=q[I](e),l=o?c(r)<e[D]:$[z][s][W](e,r);if(!o&&!l)for(var i=$[u](e);i&&i!==$[z];){if($[z][s][W](i,r)){var v=f.set(i,r,t);return g||t===n||b(e,r),v}i=$[u](i)}return v=f.set(e,r,t,a),!g&&v&&(l&&t===n||(b(e,r),o?b(e,D):l||b(e,"_k"))),v},deleteProperty:(e,r)=>{var t=$[z][s][W](e,r),a=f.deleteProperty(e,r);return a&&t&&(b(e,r),q[I](e)?b(e,D):b(e,"_k")),a},ownKeys:e=>(we(e,"_k"),f.ownKeys(e))});return $[t](e,"_p",{value:r,enumerable:!1}),r},P=Ne({}),Ee=$[G](null);Ee.text=(e,r)=>{r=null==r?"":r,e[a]!==S(r)&&(e[a]=r)},Ee.html=(e,r)=>{e[n]!=r&&(e[n]=null==r?"":r)},Ee[F]=(e,r)=>{e[X]===ve?e[_]=!!r:"radio"===e[X]?e[_]=e[F]==r:e[F]!=r&&(e[F]=null==r?"":r)},Ee[be]=(e,r,t)=>{null==r||!1===r?e[Q](t):(r=!0===r?"":S(r),e[J](t)!==r&&e.setAttribute(t,r))},Ee[se]=(e,r)=>{var t=e._n||"",a="";if(typeof r==d)a=r;else if(r)for(var n in r)r[n]&&(a+=(a?" ":"")+n);t=t+(t&&a?" ":"")+a,e[ye]!==t&&(e[ye]=t)};var Oe=(E,e)=>{if(E._m)return E._m;var r=E[J]("s-data");if(p[r]){r=p[r](),e&&$.setPrototypeOf(r,e);var O=Ne(r);O.$refs={},O.$root=E,O.$store=P,O.$parent=e;var t=[],a=$[G](null),T=e=>{var r=e.target;if(e[X]!==ie||!r._c)for(var t=E[Z],a=e[X];r&&r!==t;){var n=r._h&&r._h[a];if(n)for(var o=r._s,l=n[D];l--;){var i=n[l],v=i.p;if(i.model){var f=r[X]===ve?r[_]:r[F];if(typeof f!=d||(i=f[ce]())&&isFinite(i)&&(48===i[ge](0)&&1!==i[D]&&46!==i[ge](1)||(f=c(i))),typeof v==d)o&&(o[v]=f);else{for(var s=o,u=0,p=v[D]-1;u<p&&s;)s=s[v[u++]];s&&(s[v[p]]=f)}}else typeof(f=Pe(o,v)).val==fe&&f.val[W](f.ctx,e)}r=r[Z]}},C=e=>{a[e]||(a[e]=!0,E[le](e,T))},L=(h,m,t)=>{if(1===h.nodeType&&!h[U]("s-ignore"))if(h!==E&&h[U]("s-data"))(e=Oe(h,m))&&t[K](e[xe]);else{var e=!(v=h[J]("s-if"))&&"TEMPLATE"===h[V]&&h[J]("s-for"),a=[];if(h[U](se)&&!h._n&&(h._n=h[ye]),v){var g=j[oe](""),r=null,n=[];h[re](g);var o="!"===v[0],l=-1===(i=o?v[R](1):v)[B](".")?i:i[H](".");return t[K](()=>{n[M](e=>e())}),t[K](ke(()=>{var e=Pe(m,l).val;o&&(e=!e),e?r||((r=h[ae](!0))[Q]("s-if"),L(r,m,n),g[Z][te](r,g)):r&&(n[M](e=>e()),n=[],r[ne](),r=null)},Ae))}if(e&&-1!==(v=e[B](" in "))){var x,i=e[R](0,v)[ce](),v=e[R](v+4)[ce](),b=(i=i.replace(/[()]/g,"")[H](","))[0][ce](),A=i[1]?i[1][ce]():null,P=-1===v[B](".")?v:v[H]("."),w=(v=h[J]("s-key"))?-1===v[B](".")?v:v[H]("."):null,g=j[oe](""),k=$[G](null);return h[re](g),t[K](()=>{for(var e in k)k[e][_e][M](e=>e())}),t[K](ke(()=>{var e=Pe(m,P).val||[];q[I](e)&&we(e,D);var r=j.createDocumentFragment(),t=g;x=$[G](null);for(var a,n=q[I](e),o=n?e:$.keys(e),l=(n?e:o)[D],i=0;i<l;i++){var v=n?i:o[i],f=n?e[i]:e[v],s=null==f||typeof f!=ue?S(f):w?Pe(f,w).val:S(v)+"_o";x[s]&&(s+="_"+i);var u=k[s];if(u)u.scope[b]=f,A&&(u.scope[A]=v);else{var p=h.content[ae](!0),c=Ne($[G](m));c[b]=f,A&&(c[A]=v);for(var _=q[z][R][W](p.childNodes),d=[],y=0;y<_[D];y++)L(_[y],c,d);u={nodes:_,scope:c,cleanups:d},k[s]=u}if(u[de][0]!==t[ee]){for(y=0;y<u[de][D];y++)r.appendChild(u[de][y]);t[Z][te](r,t[ee])}t=u[de][u[de][D]-1],x[s]=!0}for(a in k)x[a]||(k[a][_e][M](e=>e()),k[a][de][M](e=>e[ne]()),delete k[a])},Ae))}if(h.hasAttributes())for(var f=h.attributes,s=f[D];s--;){var u,p,c=f[s],_=c[Y],d=c[F];58===_[ge](0)?(u=_[R](1),c=(p=33===d[ge](0))?d[R](1):d,l=-1===c[B](".")?c:c[H]("."),a[K]({type:be,name:u,path:l,neg:p})):115===_[ge](0)&&45===_[ge](1)&&(p=_[R](2),l=-1===d[B](".")?d:d[H]("."),p===me||p===he?(e=>{var r=Pe(m,l);typeof r.val==fe&&(e===me?Ae(()=>{var e=r.val[W](r.ctx,h);typeof e==fe&&t[K](e)}):t[K](()=>r.val[W](r.ctx,h)))})(p):"effect"===p?t[K](ke(()=>{var e=Pe(m,l);typeof e.val==fe&&e.val[W](e.ctx,h)},Ae)):"model"===p?(a[K]({type:F,path:l}),h._s=m,h._h=h._h||{},(_=h[X]===ve||"radio"===h[X]||"SELECT"===h[V]?"change":ie)==ie&&(h[le]("compositionstart",()=>h._c=!0),h[le]("compositionend",()=>{h._c=!1,T({target:h,type:ie})})),(h._h[_]=h._h[_]||[])[pe]({model:!0,p:l}),C(_)):"ref"===p?O.$refs[d]=h:Ee[p]?a[K]({type:p,path:l}):(h._s=m,h._h=h._h||{},(h._h[p]=h._h[p]||[])[K]({p:l}),C(p)))}a[D]&&t[K](ke(()=>{for(var e=a[D];e--;){var r=a[e],t=(t=Pe(m,r.path)).val&&typeof t.val==fe?t.val[W](t.ctx,h):t.val;r[X]===be?(r.neg&&(t=!t),r[Y]===se?Ee[se](h,t):Ee[be](h,t,r[Y])):Ee[r[X]](h,t)}},Ae));for(var y=h.firstChild;y;){var N=y[ee];L(y,m,t),y=N}}};return L(E,O,t),O[me]&&O[me](),e={unmount:()=>{for(var e in O[he]&&O[he][W](O),t[M](e=>e()),a)E.removeEventListener(e,T);E._m=null}},E._m=e}};return{data:(e,r)=>{p[e]=r},start:()=>{for(var e=j.querySelectorAll("[s-data]"),r=e[D];r--;)Oe(e[r])},store:(e,r)=>void 0===r?P[e]:P[e]=r,raw:e=>e&&e._p||e,mount:e=>Oe(e),unmount:e=>{e&&e._m&&e._m[xe]()}}})();window.spiki=e})();