spikijs 1.1.30 → 1.1.31

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.30",
4
+ "version": "1.1.31",
5
5
  "type": "module",
6
6
  "repository": {
7
7
  "type": "git",
package/spiki.esm.js CHANGED
@@ -138,13 +138,40 @@ var spiki = (() => {
138
138
  if (key === '_t') return target;
139
139
  if (key === '_d') return target._d;
140
140
  if (key === '_i') return target._i;
141
+ if (key === '_c') return target._c;
141
142
 
142
143
  if (Array.isArray(target) && arrInst.hasOwnProperty(key)) return arrInst[key];
143
144
  var desc = Object.getOwnPropertyDescriptor(target, key);
144
145
  if (desc && desc.get) {
145
- var cacheKey = '_' + key;
146
- if (!(cacheKey in target)) effect(() => receiver[cacheKey] = desc.get.call(receiver));
147
- return receiver[cacheKey];
146
+ var c = target._c || (Object.defineProperty(target, '_c', {
147
+ value: Object.create(null)
148
+ }), target._c);
149
+
150
+ var comp = c[key];
151
+ if (!comp) {
152
+ var runner = () => {
153
+ cleanup(runner);
154
+ var prev = activeEffect;
155
+ activeEffect = runner;
156
+ try {
157
+ comp.d = false;
158
+ comp.v = desc.get.call(receiver);
159
+ } finally {
160
+ activeEffect = prev;
161
+ }
162
+ };
163
+ runner.deps = [];
164
+ runner.sched = () => {
165
+ if (!comp.d) {
166
+ comp.d = true;
167
+ trigger(target, key);
168
+ }
169
+ };
170
+ comp = c[key] = { r: runner, d: true, v: undefined };
171
+ }
172
+ if (comp.d) comp.r();
173
+ track(target, key);
174
+ return (comp.v && typeof comp.v === 'object' && !(comp.v instanceof Node)) ? makeReactive(comp.v) : comp.v;
148
175
  }
149
176
  track(target, key);
150
177
  var res = Reflect.get(target, key, receiver);
@@ -536,6 +563,7 @@ var spiki = (() => {
536
563
  if (state.destroy) state.destroy.call(state);
537
564
  var i = cleanups.length; while (i--) cleanups[i]();
538
565
  for(var k in listeners) rootElement.removeEventListener(k, handle);
566
+ if (state._c) for (var k in state._c) cleanup(state._c[k].r);
539
567
  rootElement._m = null;
540
568
  }
541
569
  };
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--;)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=>{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(Array.isArray(e)&&f.hasOwnProperty(t))return f[t];var a=Object.getOwnPropertyDescriptor(e,t);if(a&&a.get){var n="_"+t;return n in e||h(()=>r[n]=a.get.call(r)),r[n]}p(e,t);var o=Reflect.get(e,t,r);return!o||"object"!=typeof o||o instanceof Node?o:d(o)},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;){if(Object.prototype.hasOwnProperty.call(s,t)){var c=Reflect.set(s,t,r);return!o&&(r!==n||r&&"object"==typeof r)&&u(e,t),c}s=Object.getPrototypeOf(s)}c=Reflect.set(e,t,r,a);return!o&&c&&(!l||r!==n||r&&"object"==typeof r)&&(u(e,t),i?u(e,"length"):l||u(e,"_k")),c},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=d({});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=d(o);i.$refs={},i.$root=r,i.$store=e,i.$parent=a;var f=[],u=Object.create(null),v=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 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}},b=e=>{u[e]||(u[e]=!0,r.addEventListener(e,v,!!l[e]))},_=(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(""),m=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(h(()=>{var r=c(t,x).val;if(A&&(r=!r),r)m||((m=e.cloneNode(!0)).removeAttribute("s-if"),_(m,t,O),u.parentNode.insertBefore(m,u));else if(m){for(var a=O.length;a--;)O[a]();O=[],m.remove(),m=null}},s))}if(l){var P=l.indexOf(" in ");if(-1!==P){var N,k=l.slice(0,P).trim(),E=l.slice(P+4).trim(),w=k.replace(/[()]/g,"").split(","),C=w[0].trim(),S=w[1]?w[1].trim():null,T=-1===E.indexOf(".")?E:E.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(h(()=>{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],h=o?r[s]:r[v];f=null==h||"object"!=typeof h?String(h):$?c(h,$).val:String(v)+"_o",N[f]&&(f+="_"+s);var y=B[f];if(y)y.scope[C]=h,S&&(y.scope[S]=v);else{var g=e.content.cloneNode(!0),b=Object.create(t);Object.defineProperty(b,"_i",{value:!0});var m=d(b);m[C]=h,S&&(m[S]=v);for(var O=Array.prototype.slice.call(g.childNodes),A=[],j=0;j<O.length;j++)_(O[j],m,A);y={nodes:Array.prototype.slice.call(g.childNodes),scope:m,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,R=M.length;R--;){var q=M[R],D=q.name,F=q.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(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 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,v({target:e,type:"input"})})),(e._h[z]=e._h[z]||[]).push({model:!0,p:n}),b(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}),b(r))}}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?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;_(G,t,a),G=I}}};_(r,i,f),i.init&&i.init();var m={unmount:()=>{i.destroy&&i.destroy.call(i);for(var e=f.length;e--;)f[e]();for(var t in u)r.removeEventListener(t,v);r._m=null}};return r._m=m,m}},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]=r},compose:(...e)=>{for(var t={},r=0;r<e.length;r++){var a=e[r];a&&Object.defineProperties(t,Object.getOwnPropertyDescriptors("function"==typeof a?a():a))}return t},start:()=>{for(var e=document.querySelectorAll("[s-data]"),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;
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--;)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 e=n;n=l;try{i.d=!1,i.v=a.get.call(r)}finally{n=e}};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)}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;){if(Object.prototype.hasOwnProperty.call(s,t)){var c=Reflect.set(s,t,r);return!o&&(r!==n||r&&"object"==typeof r)&&u(e,t),c}s=Object.getPrototypeOf(s)}c=Reflect.set(e,t,r,a);return!o&&c&&(!l||r!==n||r&&"object"==typeof r)&&(u(e,t),i?u(e,"length"):l||u(e,"_k")),c},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,k=l.slice(0,P).trim(),E=l.slice(P+4).trim(),w=k.replace(/[()]/g,"").split(","),C=w[0].trim(),S=w[1]?w[1].trim():null,T=-1===E.indexOf(".")?E:E.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,R=M.length;R--;){var q=M[R],D=q.name,F=q.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]=r},compose:(...e)=>{for(var t={},r=0;r<e.length;r++){var a=e[r];a&&Object.defineProperties(t,Object.getOwnPropertyDescriptors("function"==typeof a?a():a))}return t},start:()=>{for(var e=document.querySelectorAll("[s-data]"),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
@@ -141,13 +141,40 @@ var spiki = (() => {
141
141
  if (key === '_t') return target;
142
142
  if (key === '_d') return target._d;
143
143
  if (key === '_i') return target._i;
144
+ if (key === '_c') return target._c;
144
145
 
145
146
  if (Array.isArray(target) && arrInst.hasOwnProperty(key)) return arrInst[key];
146
147
  var desc = Object.getOwnPropertyDescriptor(target, key);
147
148
  if (desc && desc.get) {
148
- var cacheKey = '_' + key;
149
- if (!(cacheKey in target)) effect(() => receiver[cacheKey] = desc.get.call(receiver));
150
- return receiver[cacheKey];
149
+ var c = target._c || (Object.defineProperty(target, '_c', {
150
+ value: Object.create(null)
151
+ }), target._c);
152
+
153
+ var comp = c[key];
154
+ if (!comp) {
155
+ var runner = () => {
156
+ cleanup(runner);
157
+ var prev = activeEffect;
158
+ activeEffect = runner;
159
+ try {
160
+ comp.d = false;
161
+ comp.v = desc.get.call(receiver);
162
+ } finally {
163
+ activeEffect = prev;
164
+ }
165
+ };
166
+ runner.deps = [];
167
+ runner.sched = () => {
168
+ if (!comp.d) {
169
+ comp.d = true;
170
+ trigger(target, key);
171
+ }
172
+ };
173
+ comp = c[key] = { r: runner, d: true, v: undefined };
174
+ }
175
+ if (comp.d) comp.r();
176
+ track(target, key);
177
+ return (comp.v && typeof comp.v === 'object' && !(comp.v instanceof Node)) ? makeReactive(comp.v) : comp.v;
151
178
  }
152
179
  track(target, key);
153
180
  var res = Reflect.get(target, key, receiver);
@@ -539,6 +566,7 @@ var spiki = (() => {
539
566
  if (state.destroy) state.destroy.call(state);
540
567
  var i = cleanups.length; while (i--) cleanups[i]();
541
568
  for(var k in listeners) rootElement.removeEventListener(k, handle);
569
+ if (state._c) for (var k in state._c) cleanup(state._c[k].r);
542
570
  rootElement._m = null;
543
571
  }
544
572
  };
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--;)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=>{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(Array.isArray(e)&&f.hasOwnProperty(t))return f[t];var a=Object.getOwnPropertyDescriptor(e,t);if(a&&a.get){var n="_"+t;return n in e||h(()=>r[n]=a.get.call(r)),r[n]}p(e,t);var o=Reflect.get(e,t,r);return!o||"object"!=typeof o||o instanceof Node?o:d(o)},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;){if(Object.prototype.hasOwnProperty.call(s,t)){var c=Reflect.set(s,t,r);return!o&&(r!==n||r&&"object"==typeof r)&&u(e,t),c}s=Object.getPrototypeOf(s)}c=Reflect.set(e,t,r,a);return!o&&c&&(!l||r!==n||r&&"object"==typeof r)&&(u(e,t),i?u(e,"length"):l||u(e,"_k")),c},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=d({});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=d(o);i.$refs={},i.$root=r,i.$store=e,i.$parent=a;var f=[],u=Object.create(null),v=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 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}},b=e=>{u[e]||(u[e]=!0,r.addEventListener(e,v,!!l[e]))},_=(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(""),m=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(h(()=>{var r=c(t,x).val;if(A&&(r=!r),r)m||((m=e.cloneNode(!0)).removeAttribute("s-if"),_(m,t,O),u.parentNode.insertBefore(m,u));else if(m){for(var a=O.length;a--;)O[a]();O=[],m.remove(),m=null}},s))}if(l){var P=l.indexOf(" in ");if(-1!==P){var N,k=l.slice(0,P).trim(),w=l.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(h(()=>{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],h=o?r[s]:r[v];f=null==h||"object"!=typeof h?String(h):$?c(h,$).val:String(v)+"_o",N[f]&&(f+="_"+s);var y=B[f];if(y)y.scope[C]=h,S&&(y.scope[S]=v);else{var g=e.content.cloneNode(!0),b=Object.create(t);Object.defineProperty(b,"_i",{value:!0});var m=d(b);m[C]=h,S&&(m[S]=v);for(var O=Array.prototype.slice.call(g.childNodes),A=[],j=0;j<O.length;j++)_(O[j],m,A);y={nodes:Array.prototype.slice.call(g.childNodes),scope:m,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,R=M.length;R--;){var q=M[R],D=q.name,F=q.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(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 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,v({target:e,type:"input"})})),(e._h[z]=e._h[z]||[]).push({model:!0,p:n}),b(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}),b(r))}}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?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;_(G,t,a),G=I}}};_(r,i,f),i.init&&i.init();var m={unmount:()=>{i.destroy&&i.destroy.call(i);for(var e=f.length;e--;)f[e]();for(var t in u)r.removeEventListener(t,v);r._m=null}};return r._m=m,m}},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]=r},compose:(...e)=>{for(var t={},r=0;r<e.length;r++){var a=e[r];a&&Object.defineProperties(t,Object.getOwnPropertyDescriptors("function"==typeof a?a():a))}return t},start:()=>{for(var e=document.querySelectorAll("[s-data]"),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}();
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--;)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 e=n;n=l;try{i.d=!1,i.v=a.get.call(r)}finally{n=e}};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)}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;){if(Object.prototype.hasOwnProperty.call(s,t)){var c=Reflect.set(s,t,r);return!o&&(r!==n||r&&"object"==typeof r)&&u(e,t),c}s=Object.getPrototypeOf(s)}c=Reflect.set(e,t,r,a);return!o&&c&&(!l||r!==n||r&&"object"==typeof r)&&(u(e,t),i?u(e,"length"):l||u(e,"_k")),c},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,k=l.slice(0,P).trim(),w=l.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),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,R=M.length;R--;){var q=M[R],D=q.name,F=q.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]=r},compose:(...e)=>{for(var t={},r=0;r<e.length;r++){var a=e[r];a&&Object.defineProperties(t,Object.getOwnPropertyDescriptors("function"==typeof a?a():a))}return t},start:()=>{for(var e=document.querySelectorAll("[s-data]"),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}();