sprae
Version:
DOM microhydration
6 lines (3 loc) • 11.2 kB
JavaScript
(function(L,_){typeof exports=="object"&&typeof module=="object"?module.exports=_():typeof define=="function"&&define.amd?define("sprae",[],_):typeof exports=="object"?exports.sprae=_():L.sprae=_()})(typeof self<"u"?self:typeof globalThis<"u"?globalThis:void 0,()=>{var L={},_={exports:L},Q=Object.defineProperty,ve=Object.getOwnPropertyDescriptor,ae=Object.getOwnPropertyNames,je=Object.prototype.hasOwnProperty,d=(e,r)=>function(){return e&&(r=(0,e[ae(e)[0]])(e=0)),r},le=(e,r)=>{for(var t in r)Q(e,t,{get:r[t],enumerable:!0})},Oe=(e,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of ae(r))!je.call(e,s)&&s!==t&&Q(e,s,{get:()=>r[s],enumerable:!(i=ve(r,s))||i.enumerable});return e},ue=e=>Oe(Q({},"__esModule",{value:!0}),e),C,A,N,U,D,q,ce,T=d({"signal.js"(){A=(e,r,t=new Set)=>(r={get value(){return C?.deps.push(t.add(C)),e},set value(i){if(i!==e){e=i;for(let s of t)s()}},peek(){return e}},r.toJSON=r.then=r.toString=r.valueOf=()=>r.value,r),N=(e,r,t,i)=>(t=s=>{r?.call?.(),s=C,C=t;try{r=e()}finally{C=s}},i=t.deps=[],t(),s=>{for(r?.call?.();s=i.pop();)s.delete(t)}),U=(e,r=A(),t,i)=>(t={get value(){return i||(i=N(()=>r.value=e())),r.value},peek:r.peek},t.toJSON=t.then=t.toString=t.valueOf=()=>t.value,t),D=e=>e(),q=D,ce=e=>(A=e.signal,N=e.effect,U=e.computed,D=e.batch||D,q=e.untracked||q)}}),fe={};le(fe,{_change:()=>S,_signals:()=>j,_stash:()=>$,default:()=>B,list:()=>Y,setter:()=>V,store:()=>k});var j,S,$,k,Y,de,F,V,B,E=d({"store.js"(){T(),p(),j=Symbol("signals"),S=Symbol("change"),$="__",k=(e,r)=>{if(!e||e[j]||e[Symbol.toStringTag])return e;if(e.constructor!==Object)return Array.isArray(e)?Y(e):e;let t=Object.create(r?.[j]||{}),i=A(Object.keys(e).length),s,o=new Proxy(t,{get:(u,a)=>a===S?i:a===j?t:a===$?s:a in t?t[a]?.valueOf():globalThis[a],set:(u,a,y,m)=>a===$?(s=y,1):(m=a in t,F(t,a,y),m||++i.value),deleteProperty:(u,a)=>(t[a]&&(t[a][Symbol.dispose]?.(),delete t[a],i.value--),1),ownKeys:()=>(i.value,Reflect.ownKeys(t)),has:u=>!0}),n=Object.getOwnPropertyDescriptors(e);for(let u in e)n[u]?.get?(t[u]=U(n[u].get.bind(o)))._set=n[u].set?.bind(o):(t[u]=null,F(t,u,e[u]));return o},Y=e=>{let r,t=A(e.length),i=Array(e.length).fill(),s=new Proxy(i,{get(o,n){return typeof n=="symbol"?n===S?t:n===j?i:i[n]:n==="length"?de.includes(r)?t.peek():t.value:(r=n,(i[n]??(i[n]=A(k(e[n])))).valueOf())},set(o,n,u){if(n==="length"){for(let a=u;a<i.length;a++)delete s[a];t.value=i.length=u}else F(i,n,u),n>=t.peek()&&(t.value=i.length=+n+1);return 1},deleteProperty:(o,n)=>(i[n]?.[Symbol.dispose]?.(),delete i[n],1)});return s},de=["push","pop","shift","unshift","splice"],F=(e,r,t)=>{let i=e[r],s;r[0]==="_"?e[r]=t:i?t===(s=i.peek())||(i._set?i._set(t):Array.isArray(t)&&Array.isArray(s)?s[S]?D(()=>{for(let o=0;o<t.length;o++)s[o]=t[o];s.length=t.length}):i.value=t:i.value=k(t)):e[r]=i=t?.peek?t:A(k(t))},V=(e,r=W(`${e}=${$}`))=>(t,i)=>(t[$]=i,r(t)),B=k}}),ee,g,H,K,X,b,te,W,re,Z,pe,z,I,O,p=d({"core.js"(){T(),E(),ee=Symbol.dispose||(Symbol.dispose=Symbol("dispose")),g=Symbol("state"),H=Symbol("on"),K=Symbol("off"),X={},b=(e,r,t=W)=>X[e]=(i,s,o,n,u,a)=>(u=r(i,o,s,n),a=t(s,":"+n),()=>u(a(o))),te=(e=document.body,r)=>{if(e[g])return Object.assign(e[g],r);let t=k(r||{}),i=[],s=[],o=(n,u=n.attributes)=>{if(u)for(let a=0;a<u.length;){let{name:y,value:m}=u[a],l,c;if(y.startsWith(z)){n.removeAttribute(y);for(c of y.slice(z.length).split(":"))if(l=(X[c]||X.default)(n,m,t,c),s.push(l),i.push(N(l)),n[g]===null)return}else a++}for(let a of n.childNodes)a.nodeType==1&&o(a)};return o(e),g in e||(e[g]=t,e[K]=()=>(i.map(n=>n()),i=[]),e[H]=()=>i=s.map(n=>N(n)),e[ee]=()=>(e[K](),e[K]=e[H]=e[ee]=e[g]=null)),t},te.use=e=>(e.signal&&ce(e),e.compile&&(pe=e.compile),e.prefix&&(z=e.prefix)),W=(e,r,t)=>{if(t=re[e=e.trim()])return t;try{t=pe(e)}catch(i){Z(i,r,e)}return re[e]=i=>{try{return t(i)}catch(s){Z(s,r,e)}}},re={},Z=(e,r="",t="")=>{throw Object.assign(e,{message:`\u2234 ${e.message}
${r}${t?`="${t}"
`:""}`,expr:t})},z=":",I=e=>{if(!e.nodeType)return e;let r=e.content.cloneNode(!0),t=[...e.attributes],i=document.createTextNode(""),s=(r.append(i),[...r.childNodes]);return{childNodes:s,content:r,remove:()=>r.append(...s),replaceWith(o){o!==i&&(i.before(o),r.append(...s))},attributes:t,removeAttribute(o){t.splice(t.findIndex(n=>n.name===o),1)}}},O=te}}),G,we=d({"directive/if.js"(){p(),G=Symbol("if"),b("if",(e,r)=>{let t=document.createTextNode(""),i=e.nextElementSibling,s,o,n;return e.replaceWith(t),o=e.content?I(e):e,o[g]=null,i?.hasAttribute(":else")?(i.removeAttribute(":else"),i.hasAttribute(":if")||(i.remove(),n=i.content?I(i):i,n[g]=null)):i=null,(u,a=e[G]?null:u?o:n)=>{i&&(i[G]=e[G]||a==o),s!=a&&(s&&(s.remove(),s[K]?.()),(s=a)&&(t.before(s.content||s),s[g]===null?(delete s[g],O(s,r)):s[H]()))}})}}),xe=d({"directive/each.js"(){p(),E(),T(),b("each",(e,r,t)=>{let[i,s="$"]=t.split(/\bin\b/)[0].trim().split(/\s*,\s*/),o=document.createTextNode(""),n,u,a,y=0,m=()=>{var l,c;let h=0,v=a,w=v.length;if(n&&!n[S]){for(let x of n[j]||[])x[Symbol.dispose]();n=null,y=0}if(w<y)n.length=w;else{if(!n)n=v;else for(;h<y;)n[h]=v[h++];for(;h<w;h++){n[h]=v[h];let x=h,ne=B({[i]:n[j]?.[x]||n[x],[s]:u?u[x]:x},r),P=e.content?I(e):e.cloneNode(!0);o.before(P.content||P),O(P,ne),((c=n[l=j]||(n[l]=[]))[h]||(c[h]={}))[Symbol.dispose]=()=>{P[Symbol.dispose]?.(),P.remove()}}}y=w};return e.replaceWith(o),e[g]=null,l=>{u=null,typeof l=="number"?a=Array.from({length:l},(h,v)=>v+1):l?.constructor===Object?(u=Object.keys(l),a=Object.values(l)):a=l||[];let c=0;return N(()=>{a[S]?.value,c++||(m(),queueMicrotask(()=>(c>1&&m(),c=0)))})}},e=>W(e.split(/\bin\b/)[1]))}}),Ae=d({"directive/ref.js"(){p(),T(),E(),b("ref",(e,r,t)=>typeof W(t)(r)=="function"?i=>i.call(null,e):(V(t)(r,e),i=>i))}}),Se=d({"directive/with.js"(){p(),T(),E(),b("with",(e,r,t)=>(t=null,i=>t?O(e,i):q(()=>O(e,t=B(i,r)))))}}),ke=d({"directive/text.js"(){p(),b("text",e=>(e.content&&e.replaceWith(e=I(e).childNodes[0]),r=>e.textContent=r??""))}}),Pe=d({"directive/class.js"(){p(),b("class",(e,r)=>(r=new Set,t=>{let i=new Set;t&&(typeof t=="string"?t.split(" ").map(s=>i.add(s)):Array.isArray(t)?t.map(s=>s&&i.add(s)):Object.entries(t).map(([s,o])=>o&&i.add(s)));for(let s of r)i.has(s)?i.delete(s):e.classList.remove(s);for(let s of r=i)e.classList.add(s)}))}}),Ne=d({"directive/style.js"(){p(),b("style",(e,r)=>(r=e.getAttribute("style"),t=>{if(typeof t=="string")e.setAttribute("style",r+(r.endsWith(";")?"":"; ")+t);else{r&&e.setAttribute("style",r);for(let i in t)i[0]=="-"?e.style.setProperty(i,t[i]):e.style[i]=t[i]}}))}}),ye,f,he,be,M,ie,se=d({"directive/default.js"(){p(),b("default",(e,r,t,i)=>{if(!i.startsWith("on"))return i?l=>M(e,i,l):l=>{for(let c in l)M(e,ie(c),l[c])};let s=i.split("..").map(l=>{let c={evt:"",target:e,test:()=>!0};return c.evt=(l.startsWith("on")?l.slice(2):l).replace(/\.(\w+)?-?([-\w]+)?/g,(h,v,w="")=>(c.test=ye[v]?.(c,...w.split("-"))||c.test,"")),c}),o=(l,{evt:c,target:h,test:v,defer:w,stop:x,prevent:ne,immediate:P,..._e},oe)=>(w&&(l=w(l)),oe=R=>{try{v(R)&&(x&&(P?R.stopImmediatePropagation():R.stopPropagation()),ne&&R.preventDefault(),l?.call(r,R))}catch(De){Z(De,`:on${c}`,l)}},h.addEventListener(c,oe,_e),()=>h.removeEventListener(c,oe,_e));if(s.length==1)return l=>o(l,s[0]);let n,u,a,y=0,m=l=>{a=o(c=>(a(),u=l?.(c),(y=++y%s.length)?m(u):n&&m(n)),s[y])};return l=>(n=l,!a&&m(n),()=>n=null)}),ye={prevent(e){e.prevent=!0},stop(e){e.stop=!0},immediate(e){e.immediate=!0},once(e){e.once=!0},passive(e){e.passive=!0},capture(e){e.capture=!0},window(e){e.target=window},document(e){e.target=document},parent(e){e.target=e.target.parentNode},throttle(e,r=108){e.defer=t=>he(t,r)},debounce(e,r=108){e.defer=t=>be(t,r)},outside:e=>r=>{let t=e.target;return!(t.contains(r.target)||r.target.isConnected===!1||t.offsetWidth<1&&t.offsetHeight<1)},self:e=>r=>r.target===e.target,ctrl:(e,...r)=>t=>f.ctrl(t)&&r.every(i=>f[i]?f[i](t):t.key===i),shift:(e,...r)=>t=>f.shift(t)&&r.every(i=>f[i]?f[i](t):t.key===i),alt:(e,...r)=>t=>f.alt(t)&&r.every(i=>f[i]?f[i](t):t.key===i),meta:(e,...r)=>t=>f.meta(t)&&r.every(i=>f[i]?f[i](t):t.key===i),arrow:()=>f.arrow,enter:()=>f.enter,esc:()=>f.esc,tab:()=>f.tab,space:()=>f.space,delete:()=>f.delete,digit:()=>f.digit,letter:()=>f.letter,char:()=>f.char},f={ctrl:e=>e.ctrlKey||e.key==="Control"||e.key==="Ctrl",shift:e=>e.shiftKey||e.key==="Shift",alt:e=>e.altKey||e.key==="Alt",meta:e=>e.metaKey||e.key==="Meta"||e.key==="Command",arrow:e=>e.key.startsWith("Arrow"),enter:e=>e.key==="Enter",esc:e=>e.key.startsWith("Esc"),tab:e=>e.key==="Tab",space:e=>e.key==="\xA0"||e.key==="Space"||e.key===" ",delete:e=>e.key==="Delete"||e.key==="Backspace",digit:e=>/^\d$/.test(e.key),letter:e=>/^\p{L}$/gu.test(e.key),char:e=>/^\S$/.test(e.key)},he=(e,r)=>{let t,i,s=o=>{t=!0,setTimeout(()=>{if(t=!1,i)return i=!1,s(o),e(o)},r)};return o=>t?i=!0:(s(o),e(o))},be=(e,r)=>{let t;return i=>{clearTimeout(t),t=setTimeout(()=>{t=null,e(i)},r)}},M=(e,r,t)=>{t==null||t===!1?e.removeAttribute(r):e.setAttribute(r,t===!0?"":typeof t=="number"||typeof t=="string"?t:"")},ie=e=>e.replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g,(r,t)=>(t?"-":"")+r.toLowerCase())}}),Te=d({"directive/value.js"(){p(),p(),T(),E(),se(),b("value",(e,r,t)=>{const i=e.type==="text"||e.type===""?s=>e.setAttribute("value",e.value=s??""):e.tagName==="TEXTAREA"||e.type==="text"||e.type===""?(s,o,n)=>(o=e.selectionStart,n=e.selectionEnd,e.setAttribute("value",e.value=s??""),o&&e.setSelectionRange(o,n)):e.type==="checkbox"?s=>(e.checked=s,M(e,"checked",s)):e.type==="select-one"?s=>{for(let o of e.options)o.value==s?o.setAttribute("selected",""):o.removeAttribute("selected");e.value=s}:e.type==="select-multiple"?s=>{for(let o of e.options)o.removeAttribute("selected");for(let o of s)e.querySelector(`[value="${o}"]`).setAttribute("selected","")}:s=>e.value=s;try{const s=V(t),o=e.type==="checkbox"?()=>s(r,e.checked):e.type==="select-multiple"?()=>s(r,[...e.selectedOptions].map(n=>n.value)):()=>s(r,e.selectedIndex<0?null:e.value);e.oninput=e.onchange=o,e.type?.startsWith("select")&&(new MutationObserver(o).observe(e,{childList:!0,subtree:!0,attributes:!0}),O(e,r)),W(t)(r)??o()}catch{}return i})}}),$e=d({"directive/fx.js"(){p(),b("fx",e=>r=>r)}}),Ee=d({"directive/aria.js"(){p(),se(),b("aria",e=>r=>{for(let t in r)M(e,"aria-"+ie(t),r[t]==null?null:r[t]+"")})}}),We=d({"directive/data.js"(){p(),b("data",e=>r=>{for(let t in r)e.dataset[t]=r[t]})}}),ge={};le(ge,{default:()=>me});var me,Le=d({"sprae.js"(){p(),we(),xe(),Ae(),Se(),ke(),Pe(),Ne(),Te(),$e(),se(),Ee(),We(),O.use({compile:e=>O.constructor(`with (arguments[0]) { return ${e} };`)}),me=O}}),J=(Le(),ue(ge)).default;if(J.store=(E(),ue(fe)).default,J.use({prefix:document.currentScript.getAttribute("prefix")}),document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>J()):J(),_.exports=J,typeof _.exports=="object"&&typeof L=="object"){var Ce=(e,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of Object.getOwnPropertyNames(r))!Object.prototype.hasOwnProperty.call(e,s)&&s!==t&&Object.defineProperty(e,s,{get:()=>r[s],enumerable:!(i=Object.getOwnPropertyDescriptor(r,s))||i.enumerable});return e};_.exports=Ce(_.exports,L)}return _.exports});