sprae 11.5.2 → 11.5.4
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/core.js +14 -8
- package/directive/class.js +1 -3
- package/directive/ref.js +7 -7
- package/directive/value.js +6 -5
- package/directive/with.js +9 -1
- package/dist/sprae.auto.js +42 -18
- package/dist/sprae.auto.js.map +3 -3
- package/dist/sprae.auto.min.js +2 -2
- package/dist/sprae.auto.min.js.map +3 -3
- package/dist/sprae.js +26 -16
- package/dist/sprae.js.map +3 -3
- package/dist/sprae.min.js +3 -3
- package/dist/sprae.min.js.map +3 -3
- package/dist/sprae.umd.js +43 -18
- package/dist/sprae.umd.js.map +3 -3
- package/dist/sprae.umd.min.js +2 -2
- package/dist/sprae.umd.min.js.map +3 -3
- package/package.json +1 -1
- package/readme.md +2 -2
- package/store.js +10 -7
package/dist/sprae.min.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
var O,
|
|
1
|
+
var O,k=(e,i,t=new Set)=>(i={get value(){return O?.deps.push(t.add(O)),e},set value(r){if(r!==e){e=r;for(let n of t)n()}},peek(){return e}},i.toJSON=i.then=i.toString=i.valueOf=()=>i.value,i),x=(e,i,t,r)=>(t=n=>{i?.call?.(),n=O,O=t;try{i=e()}finally{O=n}},r=t.deps=[],t(),n=>{for(i?.call?.();n=r.pop();)n.delete(t)}),V=(e,i=k(),t,r)=>(t={get value(){return r||(r=x(()=>i.value=e())),i.value},peek:i.peek},t.toJSON=t.then=t.toString=t.valueOf=()=>t.value,t),W=e=>e(),K=W,ee=e=>(k=e.signal,x=e.effect,V=e.computed,W=e.batch||W,K=e.untracked||K),S=Symbol("signals"),N=Symbol("change"),j="__",T=(e,i)=>{if(!e||e[S]||e[Symbol.toStringTag])return e;if(e.constructor!==Object)return Array.isArray(e)?te(e):e;let t=Object.create(i?.[S]||{}),r=k(Object.keys(e).length),n,a=new Proxy(t,{get:(u,o)=>o===N?r:o===S?t:o===j?n:o in t?t[o]?.valueOf():globalThis[o],set:(u,o,d,h)=>o===j?(n=d,1):(h=o in t,I(t,o,d),h||++r.value),deleteProperty:(u,o)=>(t[o]&&(t[o][Symbol.dispose]?.(),delete t[o],r.value--),1),ownKeys:()=>(r.value,Reflect.ownKeys(t)),has:u=>!0}),s=Object.getOwnPropertyDescriptors(e);for(let u in e)s[u]?.get?(t[u]=V(s[u].get.bind(a)))._set=s[u].set?.bind(a):(t[u]=null,I(t,u,e[u]));return a},te=e=>{let i,t=k(e.length),r=Array(e.length).fill(),n=new Proxy(r,{get(a,s){return typeof s=="symbol"?s===N?t:s===S?r:r[s]:s==="length"?re.includes(i)?t.peek():t.value:(i=s,(r[s]??(r[s]=k(T(e[s])))).valueOf())},set(a,s,u){if(s==="length"){for(let o=u;o<r.length;o++)delete n[o];t.value=r.length=u}else I(r,s,u),s>=t.peek()&&(t.value=r.length=+s+1);return 1},deleteProperty:(a,s)=>(r[s]?.[Symbol.dispose]?.(),delete r[s],1)});return n},re=["push","pop","shift","unshift","splice"],I=(e,i,t)=>{let r=e[i],n;i[0]==="_"?e[i]=t:r?t===(n=r.peek())||(r._set?r._set(t):Array.isArray(t)&&Array.isArray(n)?n[N]?W(()=>{for(let a=0;a<t.length;a++)n[a]=t[a];n.length=t.length}):r.value=t:r.value=T(t)):e[i]=r=t?.peek?t:k(T(t))},B=(e,i=$(`${e}=${j}`))=>(t,r)=>(t[j]=r,i(t)),H=T,X=Symbol.dispose||(Symbol.dispose=Symbol("dispose")),m=Symbol("state"),M=Symbol("on"),E=Symbol("off"),R={},p=(e,i,t=$)=>R[e]=(r,n,a,s,u,o)=>(u=i(r,a,n,s),o=t(n),()=>u(o(a))),Z=(e=document.body,i)=>{if(e[m])return Object.assign(e[m],i);let t=T(i||{}),r=[],n=[],a=(s,u=s.attributes)=>{if(u)for(let o=0;o<u.length;){let{name:d,value:h}=u[o],l,c;if(d.startsWith(F)){s.removeAttribute(d);for(c of d.slice(F.length).split(":"))if(l=(R[c]||R.default)(s,h,t,c),n.push(l),r.push(x(l)),s[m]===null)return}else o++}for(let o of s.childNodes)o.nodeType==1&&a(o)};return a(e),m in e||(e[m]=t,e[E]=()=>(r.map(s=>s()),r=[]),e[M]=()=>r=n.map(s=>x(s)),e[X]=()=>(e[E](),e[E]=e[M]=e[X]=e[m]=null)),t};Z.use=e=>(e.signal&&ee(e),e.compile&&(G=e.compile),e.prefix&&(F=e.prefix));var $=(e,i,t)=>{if(t=z[e=e.trim()])return t;try{t=G(e)}catch(r){q(r,i,e)}return z[e]=r=>{try{return t(r)}catch(n){q(n,i,e)}}},z={},q=(e,i="",t="")=>{throw Object.assign(e,{message:`\u2234 ${e.message}
|
|
2
2
|
|
|
3
|
-
${
|
|
3
|
+
${i}${t?`="${t}"
|
|
4
4
|
|
|
5
|
-
`:""}`,expr:t})},
|
|
5
|
+
`:""}`,expr:t})},G,F=":",L=e=>{if(!e.nodeType)return e;let i=e.content.cloneNode(!0),t=[...e.attributes],r=document.createTextNode(""),n=(i.append(r),[...i.childNodes]);return{childNodes:n,content:i,remove:()=>i.append(...n),replaceWith(a){a!==r&&(r.before(a),i.append(...n))},attributes:t,removeAttribute(a){t.splice(t.findIndex(s=>s.name===a),1)}}},_=Z,Q=Symbol("if");p("if",(e,i)=>{let t=document.createTextNode(""),r=e.nextElementSibling,n,a,s;return e.replaceWith(t),a=e.content?L(e):e,a[m]=null,r?.hasAttribute(":else")&&(r.removeAttribute(":else"),r.hasAttribute(":if")||(r.remove(),s=r.content?L(r):r,s[m]=null)),(u,o=u?a:e[Q]?null:s)=>{r&&(r[Q]=o===a),n!=o&&(n&&(n.remove(),n[E]?.()),(n=o)&&(t.before(n.content||n),n[m]===null?(delete n[m],_(n,i)):n[M]()))}}),p("each",(e,i,t)=>{let[r,n="$"]=t.split(/\bin\b/)[0].trim().split(/\s*,\s*/),a=document.createTextNode(""),s,u,o,d=0,h=()=>{var l,c;let y=0,b=o,g=b.length;if(s&&!s[N]){for(let v of s[S]||[])v[Symbol.dispose]();s=null,d=0}if(g<d)s.length=g;else{if(!s)s=b;else for(;y<d;)s[y]=b[y++];for(;y<g;y++){s[y]=b[y];let v=y,C=H({[r]:s[S]?.[v]||s[v],[n]:u?u[v]:v},i),A=e.content?L(e):e.cloneNode(!0);a.before(A.content||A),_(A,C),((c=s[l=S]||(s[l]=[]))[y]||(c[y]={}))[Symbol.dispose]=()=>{A[Symbol.dispose]?.(),A.remove()}}}d=g};return e.replaceWith(a),e[m]=null,l=>{u=null,typeof l=="number"?o=Array.from({length:l},(y,b)=>b+1):l?.constructor===Object?(u=Object.keys(l),o=Object.values(l)):o=l||[];let c=0;return x(()=>{o[N]?.value,c++||(h(),queueMicrotask(()=>(c>1&&h(),c=0)))})}},e=>$(e.split(/\bin\b/)[1])),p("ref",(e,i,t)=>typeof $(t)(i)=="function"?r=>r.call(null,e):(B(t)(i,e),r=>r)),p("with",(e,i,t)=>(t=null,r=>t?_(e,r):K(()=>_(e,t=H(r,i))))),p("text",e=>(e.content&&e.replaceWith(e=L(e).childNodes[0]),i=>e.textContent=i??"")),p("class",(e,i)=>(i=new Set,t=>{let r=new Set;t&&(typeof t=="string"?t.split(" ").map(n=>r.add(n)):Array.isArray(t)?t.map(n=>n&&r.add(n)):Object.entries(t).map(([n,a])=>a&&r.add(n)));for(let n of i)r.has(n)?r.delete(n):e.classList.remove(n);for(let n of i=r)e.classList.add(n)})),p("style",(e,i)=>(i=e.getAttribute("style"),t=>{if(typeof t=="string")e.setAttribute("style",i+(i.endsWith(";")?"":"; ")+t);else{i&&e.setAttribute("style",i);for(let r in t)r[0]=="-"?e.style.setProperty(r,t[r]):e.style[r]=t[r]}})),p("default",(e,i,t,r)=>{if(!r.startsWith("on"))return r?l=>P(e,r,l):l=>{for(let c in l)P(e,U(c),l[c])};let n=r.split("..").map(l=>{let c={evt:"",target:e,test:()=>!0};return c.evt=(l.startsWith("on")?l.slice(2):l).replace(/\.(\w+)?-?([-\w]+)?/g,(y,b,g="")=>(c.test=ie[b]?.(c,...g.split("-"))||c.test,"")),c}),a=(l,{evt:c,target:y,test:b,defer:g,stop:v,prevent:C,immediate:A,...J},D)=>(g&&(l=g(l)),D=w=>{try{b(w)&&(v&&(A?w.stopImmediatePropagation():w.stopPropagation()),C&&w.preventDefault(),l?.call(i,w))}catch(Y){q(Y,`:on${c}`,l)}},y.addEventListener(c,D,J),()=>y.removeEventListener(c,D,J));if(n.length==1)return l=>a(l,n[0]);let s,u,o,d=0,h=l=>{o=a(c=>(o(),u=l?.(c),(d=++d%n.length)?h(u):s&&h(s)),n[d])};return l=>(s=l,!o&&h(s),()=>s=null)});var ie={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,i=108){e.defer=t=>ne(t,i)},debounce(e,i=108){e.defer=t=>se(t,i)},outside:e=>i=>{let t=e.target;return!(t.contains(i.target)||i.target.isConnected===!1||t.offsetWidth<1&&t.offsetHeight<1)},self:e=>i=>i.target===e.target,ctrl:(e,...i)=>t=>f.ctrl(t)&&i.every(r=>f[r]?f[r](t):t.key===r),shift:(e,...i)=>t=>f.shift(t)&&i.every(r=>f[r]?f[r](t):t.key===r),alt:(e,...i)=>t=>f.alt(t)&&i.every(r=>f[r]?f[r](t):t.key===r),meta:(e,...i)=>t=>f.meta(t)&&i.every(r=>f[r]?f[r](t):t.key===r),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)},ne=(e,i)=>{let t,r,n=a=>{t=!0,setTimeout(()=>{if(t=!1,r)return r=!1,n(a),e(a)},i)};return a=>t?r=!0:(n(a),e(a))},se=(e,i)=>{let t;return r=>{clearTimeout(t),t=setTimeout(()=>{t=null,e(r)},i)}},P=(e,i,t)=>{t==null||t===!1?e.removeAttribute(i):e.setAttribute(i,t===!0?"":typeof t=="number"||typeof t=="string"?t:"")},U=e=>e.replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g,(i,t)=>(t?"-":"")+i.toLowerCase());p("value",(e,i,t)=>{const r=e.type==="text"||e.type===""?n=>e.setAttribute("value",e.value=n??""):e.tagName==="TEXTAREA"||e.type==="text"||e.type===""?(n,a,s)=>(a=e.selectionStart,s=e.selectionEnd,e.setAttribute("value",e.value=n??""),a&&e.setSelectionRange(a,s)):e.type==="checkbox"?n=>(e.checked=n,P(e,"checked",n)):e.type==="select-one"?n=>{for(let a of e.options)a.value==n?a.setAttribute("selected",""):a.removeAttribute("selected");e.value=n}:e.type==="select-multiple"?n=>{for(let a of e.options)a.removeAttribute("selected");for(let a of n)e.querySelector(`[value="${a}"]`).setAttribute("selected","")}:n=>e.value=n;try{const n=B(t),a=e.type==="checkbox"?()=>n(i,e.checked):e.type==="select-multiple"?()=>n(i,[...e.selectedOptions].map(s=>s.value)):()=>n(i,e.selectedIndex<0?null:e.value);e.oninput=e.onchange=a,e.type?.startsWith("select")&&(new MutationObserver(a).observe(e,{childList:!0,subtree:!0,attributes:!0}),_(e,i)),$(t)(i)??a()}catch{}return r}),p("fx",e=>i=>i),p("aria",e=>i=>{for(let t in i)P(e,"aria-"+U(t),i[t]==null?null:i[t]+"")}),p("data",e=>i=>{for(let t in i)e.dataset[t]=i[t]}),_.use({compile:e=>_.constructor(`with (arguments[0]) { return ${e} };`)});var ae=_;export{ae as default};
|
package/dist/sprae.min.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["sprae.js"],
|
|
4
|
-
"sourcesContent": ["// signal.js\nvar current;\nvar signal = (v, s, obs = /* @__PURE__ */ new Set()) => (s = {\n get value() {\n current?.deps.push(obs.add(current));\n return v;\n },\n set value(val) {\n if (val === v) return;\n v = val;\n for (let sub of obs) sub();\n },\n peek() {\n return v;\n }\n}, s.toJSON = s.then = s.toString = s.valueOf = () => s.value, s);\nvar effect = (fn, teardown, fx, deps) => (fx = (prev) => {\n teardown?.call?.();\n prev = current, current = fx;\n try {\n teardown = fn();\n } finally {\n current = prev;\n }\n}, deps = fx.deps = [], fx(), (dep) => {\n teardown?.call?.();\n while (dep = deps.pop()) dep.delete(fx);\n});\nvar computed = (fn, s = signal(), c, e) => (c = {\n get value() {\n e || (e = effect(() => s.value = fn()));\n return s.value;\n },\n peek: s.peek\n}, c.toJSON = c.then = c.toString = c.valueOf = () => c.value, c);\nvar batch = (fn) => fn();\nvar untracked = batch;\nvar use = (s) => (signal = s.signal, effect = s.effect, computed = s.computed, batch = s.batch || batch, untracked = s.untracked || untracked);\n\n// store.js\nvar _signals = Symbol(\"signals\");\nvar _change = Symbol(\"change\");\nvar _stash = \"__\";\nvar store = (values, parent) => {\n if (!values) return values;\n if (values[_signals] || values[Symbol.toStringTag]) return values;\n if (values.constructor !== Object) return Array.isArray(values) ? list(values) : values;\n let signals = { ...parent?.[_signals] }, _len = signal(Object.keys(values).length), stash, state = new Proxy(signals, {\n get: (_, k) => k === _change ? _len : k === _signals ? signals : k === _stash ? stash : signals[k]?.valueOf(),\n set: (_, k, v, s) => (k === _stash ? stash = v : s = k in signals, set(signals, k, v), s || ++_len.value),\n // bump length for new signal\n deleteProperty: (_, k) => (signals[k] && (signals[k][Symbol.dispose]?.(), delete signals[k], _len.value--), 1),\n // subscribe to length when object is spread\n ownKeys: () => (_len.value, Reflect.ownKeys(signals))\n }), descs = Object.getOwnPropertyDescriptors(values);\n for (let k in values) {\n if (descs[k]?.get)\n (signals[k] = computed(descs[k].get.bind(state)))._set = descs[k].set?.bind(state);\n else\n signals[k] = null, set(signals, k, values[k]);\n }\n return state;\n};\nvar list = (values) => {\n let lastProp, _len = signal(values.length), signals = Array(values.length).fill(), state = new Proxy(signals, {\n get(_, k) {\n if (typeof k === \"symbol\") return k === _change ? _len : k === _signals ? signals : signals[k];\n if (k === \"length\") return mut.includes(lastProp) ? _len.peek() : _len.value;\n lastProp = k;\n return (signals[k] ?? (signals[k] = signal(store(values[k])))).valueOf();\n },\n set(_, k, v) {\n if (k === \"length\") {\n for (let i = v; i < signals.length; i++) delete state[i];\n _len.value = signals.length = v;\n } else {\n set(signals, k, v);\n if (k >= _len.peek()) _len.value = signals.length = +k + 1;\n }\n return 1;\n },\n deleteProperty: (_, k) => (signals[k]?.[Symbol.dispose]?.(), delete signals[k], 1)\n });\n return state;\n};\nvar mut = [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"];\nvar set = (signals, k, v) => {\n let s = signals[k], cur;\n if (k[0] === \"_\") signals[k] = v;\n else if (!s) signals[k] = s = v?.peek ? v : signal(store(v));\n else if (v === (cur = s.peek())) ;\n else if (s._set) s._set(v);\n else if (Array.isArray(v) && Array.isArray(cur)) {\n if (cur[_change]) batch(() => {\n for (let i = 0; i < v.length; i++) cur[i] = v[i];\n cur.length = v.length;\n });\n else s.value = v;\n } else s.value = store(v);\n};\nvar setter = (expr, set2 = parse(`${expr}=${_stash}`)) => (state, value) => (state[_stash] = value, // save value to stash\nset2(state));\nvar ensure = (state, expr, name = expr.match(/^\\w+(?=\\s*(?:\\.|\\[|$))/)) => {\n var _a, _b;\n return name && ((_a = state[_signals])[_b = name[0]] ?? (_a[_b] = null));\n};\nvar store_default = store;\n\n// core.js\nvar _dispose = Symbol.dispose || (Symbol.dispose = Symbol(\"dispose\"));\nvar _state = Symbol(\"state\");\nvar _on = Symbol(\"on\");\nvar _off = Symbol(\"off\");\nvar directive = {};\nvar dir = (name, create, p = parse) => directive[name] = (el, expr, state, name2, update, evaluate) => (evaluate = p(expr), update = create(el, state, expr, name2, evaluate), () => update(evaluate(state)));\nvar sprae = (el = document.body, values) => {\n if (el[_state]) return Object.assign(el[_state], values);\n let state = store(values || {}), offs = [], fx = [], init = (el2, attrs = el2.attributes) => {\n if (attrs) for (let i = 0; i < attrs.length; ) {\n let { name, value } = attrs[i], update, dir2;\n if (name.startsWith(prefix)) {\n el2.removeAttribute(name);\n for (dir2 of name.slice(prefix.length).split(\":\")) {\n update = (directive[dir2] || directive.default)(el2, value, state, dir2);\n fx.push(update), offs.push(effect(update));\n if (el2[_state] === null) return;\n }\n } else i++;\n }\n for (let child of el2.childNodes) child.nodeType == 1 && init(child);\n };\n init(el);\n if (!(_state in el)) {\n el[_state] = state;\n el[_off] = () => (offs.map((off) => off()), offs = []);\n el[_on] = () => offs = fx.map((f) => effect(f));\n el[_dispose] = () => (el[_off](), el[_off] = el[_on] = el[_dispose] = el[_state] = null);\n }\n return state;\n};\nsprae.use = (s) => (s.signal && use(s), s.compile && (compile = s.compile), s.prefix && (prefix = s.prefix));\nvar parse = (expr, dir2, fn) => {\n if (fn = memo[expr = expr.trim()]) return fn;\n try {\n fn = compile(expr);\n } catch (e) {\n err(e, dir2, expr);\n }\n return memo[expr] = fn;\n};\nvar memo = {};\nvar err = (e, dir2 = \"\", expr = \"\") => {\n throw Object.assign(e, { message: `\\u2234 ${e.message}\n\n${dir2}${expr ? `=\"${expr}\"\n\n` : \"\"}`, expr });\n};\nvar compile;\nvar prefix = \":\";\nvar frag = (tpl) => {\n if (!tpl.nodeType) return tpl;\n let content = tpl.content.cloneNode(true), attributes = [...tpl.attributes], ref = document.createTextNode(\"\"), childNodes = (content.append(ref), [...content.childNodes]);\n return {\n // get parentNode() { return childNodes[0].parentNode },\n childNodes,\n content,\n remove: () => content.append(...childNodes),\n replaceWith(el) {\n if (el === ref) return;\n ref.before(el);\n content.append(...childNodes);\n },\n attributes,\n removeAttribute(name) {\n attributes.splice(attributes.findIndex((a) => a.name === name), 1);\n }\n // setAttributeNode() { }\n };\n};\nvar core_default = sprae;\n\n// directive/if.js\nvar _prevIf = Symbol(\"if\");\ndir(\"if\", (el, state) => {\n let holder = document.createTextNode(\"\");\n let next = el.nextElementSibling, curEl, ifEl, elseEl;\n el.replaceWith(holder);\n ifEl = el.content ? frag(el) : el;\n ifEl[_state] = null;\n if (next?.hasAttribute(\":else\")) {\n next.removeAttribute(\":else\");\n if (!next.hasAttribute(\":if\")) next.remove(), elseEl = next.content ? frag(next) : next, elseEl[_state] = null;\n }\n return (value, newEl = value ? ifEl : el[_prevIf] ? null : elseEl) => {\n if (next) next[_prevIf] = newEl === ifEl;\n if (curEl != newEl) {\n if (curEl) curEl.remove(), curEl[_off]?.();\n if (curEl = newEl) {\n holder.before(curEl.content || curEl);\n curEl[_state] === null ? (delete curEl[_state], core_default(curEl, state)) : curEl[_on]();\n }\n }\n };\n});\n\n// directive/each.js\ndir(\n \"each\",\n (tpl, state, expr) => {\n let [itemVar, idxVar = \"$\"] = expr.split(/\\bin\\b/)[0].trim().split(/\\s*,\\s*/);\n let holder = document.createTextNode(\"\");\n let cur, keys2, items, prevl = 0;\n let update = () => {\n var _a, _b;\n let i = 0, newItems = items, newl = newItems.length;\n if (cur && !cur[_change]) {\n for (let s of cur[_signals] || []) s[Symbol.dispose]();\n cur = null, prevl = 0;\n }\n if (newl < prevl) cur.length = newl;\n else {\n if (!cur) cur = newItems;\n else while (i < prevl) cur[i] = newItems[i++];\n for (; i < newl; i++) {\n cur[i] = newItems[i];\n let idx = i, scope = store_default({\n [itemVar]: cur[_signals]?.[idx] || cur[idx],\n [idxVar]: keys2 ? keys2[idx] : idx\n }, state), el = tpl.content ? frag(tpl) : tpl.cloneNode(true);\n holder.before(el.content || el);\n core_default(el, scope);\n ((_b = cur[_a = _signals] || (cur[_a] = []))[i] || (_b[i] = {}))[Symbol.dispose] = () => {\n el[Symbol.dispose]?.(), el.remove();\n };\n }\n }\n prevl = newl;\n };\n tpl.replaceWith(holder);\n tpl[_state] = null;\n return (value) => {\n keys2 = null;\n if (typeof value === \"number\") items = Array.from({ length: value }, (_, i) => i + 1);\n else if (value?.constructor === Object) keys2 = Object.keys(value), items = Object.values(value);\n else items = value || [];\n let planned = 0;\n return effect(() => {\n items[_change]?.value;\n if (!planned++) update(), queueMicrotask(() => (planned > 1 && update(), planned = 0));\n });\n };\n },\n // redefine evaluator to take second part of expression\n (expr) => parse(expr.split(/\\bin\\b/)[1])\n);\n\n// directive/ref.js\ndir(\"ref\", (el, state, expr, _, ev) => (ensure(state, expr), ev(state) == null ? (setter(expr)(state, el), (_2) => _2) : (v) => v.call(null, el)));\n\n// directive/with.js\ndir(\"with\", (el, rootState, state) => (state = null, (values) => core_default(el, state ? values : state = store_default(values, rootState))));\n\n// directive/text.js\ndir(\"text\", (el) => (\n // <template :text=\"a\"/> or previously initialized template\n (el.content && el.replaceWith(el = frag(el).childNodes[0]), (value) => el.textContent = value == null ? \"\" : value)\n));\n\n// directive/class.js\ndir(\n \"class\",\n (el, cur) => (cur = /* @__PURE__ */ new Set(), (v) => {\n let clsx = /* @__PURE__ */ new Set();\n if (v) {\n if (typeof v === \"string\") v.split(\" \").map((cls) => clsx.add(cls));\n else if (Array.isArray(v)) v.map((v2) => v2 && clsx.add(v2));\n else Object.entries(v).map(([k, v2]) => v2 && clsx.add(k));\n }\n for (let cls of cur) if (clsx.has(cls)) clsx.delete(cls);\n else el.classList.remove(cls);\n for (let cls of cur = clsx) el.classList.add(cls);\n })\n);\ndirective.className = directive.class;\n\n// directive/style.js\ndir(\n \"style\",\n (el, initStyle) => (initStyle = el.getAttribute(\"style\"), (v) => {\n if (typeof v === \"string\") el.setAttribute(\"style\", initStyle + (initStyle.endsWith(\";\") ? \"\" : \"; \") + v);\n else {\n if (initStyle) el.setAttribute(\"style\", initStyle);\n for (let k in v) k[0] == \"-\" ? el.style.setProperty(k, v[k]) : el.style[k] = v[k];\n }\n })\n);\n\n// directive/default.js\ndir(\"default\", (target, state, expr, name) => {\n if (!name.startsWith(\"on\"))\n return name ? (value) => attr(target, name, value) : (value) => {\n for (let key in value) attr(target, dashcase(key), value[key]);\n };\n let ctxs = name.split(\"..\").map((e) => {\n let ctx = { evt: \"\", target, test: () => true };\n ctx.evt = (e.startsWith(\"on\") ? e.slice(2) : e).replace(\n /\\.(\\w+)?-?([-\\w]+)?/g,\n (_, mod, param = \"\") => (ctx.test = mods[mod]?.(ctx, ...param.split(\"-\")) || ctx.test, \"\")\n );\n return ctx;\n });\n let addListener = (fn, { evt, target: target2, test, defer, stop, prevent, immediate, ...opts }, cb) => {\n if (defer) fn = defer(fn);\n cb = (e) => {\n try {\n test(e) && (stop && (immediate ? e.stopImmediatePropagation() : e.stopPropagation()), prevent && e.preventDefault(), fn?.call(state, e));\n } catch (error) {\n err(error, `:on${evt}`, fn);\n }\n };\n target2.addEventListener(evt, cb, opts);\n return () => target2.removeEventListener(evt, cb, opts);\n };\n if (ctxs.length == 1) return (v) => addListener(v, ctxs[0]);\n let startFn, nextFn, off, idx = 0;\n let nextListener = (fn) => {\n off = addListener((e) => (off(), nextFn = fn?.(e), (idx = ++idx % ctxs.length) ? nextListener(nextFn) : startFn && nextListener(startFn)), ctxs[idx]);\n };\n return (value) => (startFn = value, !off && nextListener(startFn), () => startFn = null);\n});\nvar mods = {\n // actions\n prevent(ctx) {\n ctx.prevent = true;\n },\n stop(ctx) {\n ctx.stop = true;\n },\n immediate(ctx) {\n ctx.immediate = true;\n },\n // options\n once(ctx) {\n ctx.once = true;\n },\n passive(ctx) {\n ctx.passive = true;\n },\n capture(ctx) {\n ctx.capture = true;\n },\n // target\n window(ctx) {\n ctx.target = window;\n },\n document(ctx) {\n ctx.target = document;\n },\n parent(ctx) {\n ctx.target = ctx.target.parentNode;\n },\n throttle(ctx, limit = 108) {\n ctx.defer = (fn) => throttle(fn, limit);\n },\n debounce(ctx, wait = 108) {\n ctx.defer = (fn) => debounce(fn, wait);\n },\n // test\n outside: (ctx) => (e) => {\n let target = ctx.target;\n if (target.contains(e.target)) return false;\n if (e.target.isConnected === false) return false;\n if (target.offsetWidth < 1 && target.offsetHeight < 1) return false;\n return true;\n },\n self: (ctx) => (e) => e.target === ctx.target,\n // keyboard\n ctrl: (_, ...param) => (e) => keys.ctrl(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n shift: (_, ...param) => (e) => keys.shift(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n alt: (_, ...param) => (e) => keys.alt(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n meta: (_, ...param) => (e) => keys.meta(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n // NOTE: we don't expose up/left/right/down as too verbose: can and better be handled/differentiated at once\n arrow: () => keys.arrow,\n enter: () => keys.enter,\n esc: () => keys.esc,\n tab: () => keys.tab,\n space: () => keys.space,\n delete: () => keys.delete,\n digit: () => keys.digit,\n letter: () => keys.letter,\n char: () => keys.char\n};\nvar keys = {\n ctrl: (e) => e.ctrlKey || e.key === \"Control\" || e.key === \"Ctrl\",\n shift: (e) => e.shiftKey || e.key === \"Shift\",\n alt: (e) => e.altKey || e.key === \"Alt\",\n meta: (e) => e.metaKey || e.key === \"Meta\" || e.key === \"Command\",\n arrow: (e) => e.key.startsWith(\"Arrow\"),\n enter: (e) => e.key === \"Enter\",\n esc: (e) => e.key.startsWith(\"Esc\"),\n tab: (e) => e.key === \"Tab\",\n space: (e) => e.key === \"\\xA0\" || e.key === \"Space\" || e.key === \" \",\n delete: (e) => e.key === \"Delete\" || e.key === \"Backspace\",\n digit: (e) => /^\\d$/.test(e.key),\n letter: (e) => /^\\p{L}$/gu.test(e.key),\n char: (e) => /^\\S$/.test(e.key)\n};\nvar throttle = (fn, limit) => {\n let pause, planned, block = (e) => {\n pause = true;\n setTimeout(() => {\n pause = false;\n if (planned) return planned = false, block(e), fn(e);\n }, limit);\n };\n return (e) => {\n if (pause) return planned = true;\n block(e);\n return fn(e);\n };\n};\nvar debounce = (fn, wait) => {\n let timeout;\n return (e) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n timeout = null;\n fn(e);\n }, wait);\n };\n};\nvar attr = (el, name, v) => {\n if (v == null || v === false) el.removeAttribute(name);\n else el.setAttribute(name, v === true ? \"\" : typeof v === \"number\" || typeof v === \"string\" ? v : \"\");\n};\nvar dashcase = (str) => {\n return str.replace(/[A-Z\\u00C0-\\u00D6\\u00D8-\\u00DE]/g, (match, i) => (i ? \"-\" : \"\") + match.toLowerCase());\n};\n\n// directive/value.js\ndir(\"value\", (el, state, expr) => {\n const update = el.type === \"text\" || el.type === \"\" ? (value) => el.setAttribute(\"value\", el.value = value == null ? \"\" : value) : el.tagName === \"TEXTAREA\" || el.type === \"text\" || el.type === \"\" ? (value, from, to) => (\n // we retain selection in input\n (from = el.selectionStart, to = el.selectionEnd, el.setAttribute(\"value\", el.value = value == null ? \"\" : value), from && el.setSelectionRange(from, to))\n ) : el.type === \"checkbox\" ? (value) => (el.checked = value, attr(el, \"checked\", value)) : el.type === \"select-one\" ? (value) => {\n for (let o of el.options)\n o.value == value ? o.setAttribute(\"selected\", \"\") : o.removeAttribute(\"selected\");\n el.value = value;\n } : el.type === \"select-multiple\" ? (value) => {\n for (let o of el.options) o.removeAttribute(\"selected\");\n for (let v of value) el.querySelector(`[value=\"${v}\"]`).setAttribute(\"selected\", \"\");\n } : (value) => el.value = value;\n ensure(state, expr);\n try {\n const set2 = setter(expr);\n const handleChange = el.type === \"checkbox\" ? () => set2(state, el.checked) : el.type === \"select-multiple\" ? () => set2(state, [...el.selectedOptions].map((o) => o.value)) : () => set2(state, el.selectedIndex < 0 ? null : el.value);\n el.oninput = el.onchange = handleChange;\n if (el.type?.startsWith(\"select\")) {\n new MutationObserver(handleChange).observe(el, { childList: true, subtree: true, attributes: true });\n core_default(el, state);\n }\n } catch {\n }\n return update;\n});\n\n// directive/fx.js\ndir(\"fx\", (_) => (_2) => _2);\n\n// directive/aria.js\ndir(\"aria\", (el) => (value) => {\n for (let key in value) attr(el, \"aria-\" + dashcase(key), value[key] == null ? null : value[key] + \"\");\n});\n\n// directive/data.js\ndir(\"data\", (el) => (value) => {\n for (let key in value) el.dataset[key] = value[key];\n});\n\n// sprae.js\ncore_default.use({ compile: (expr) => core_default.constructor(`with (arguments[0]) { return ${expr} };`) });\nvar sprae_default = core_default;\nexport {\n sprae_default as default\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["current", "signal", "v", "s", "obs", "val", "sub", "effect", "fn", "teardown", "fx", "deps", "prev", "dep", "computed", "c", "e", "batch", "untracked", "use", "_signals", "_change", "_stash", "store", "values", "parent", "list", "signals", "_len", "stash", "state", "_", "k", "set", "descs", "lastProp", "mut", "i", "cur", "setter", "expr", "set2", "parse", "value", "
|
|
4
|
+
"sourcesContent": ["// signal.js\nvar current;\nvar signal = (v, s, obs = /* @__PURE__ */ new Set()) => (s = {\n get value() {\n current?.deps.push(obs.add(current));\n return v;\n },\n set value(val) {\n if (val === v) return;\n v = val;\n for (let sub of obs) sub();\n },\n peek() {\n return v;\n }\n}, s.toJSON = s.then = s.toString = s.valueOf = () => s.value, s);\nvar effect = (fn, teardown, fx, deps) => (fx = (prev) => {\n teardown?.call?.();\n prev = current, current = fx;\n try {\n teardown = fn();\n } finally {\n current = prev;\n }\n}, deps = fx.deps = [], fx(), (dep) => {\n teardown?.call?.();\n while (dep = deps.pop()) dep.delete(fx);\n});\nvar computed = (fn, s = signal(), c, e) => (c = {\n get value() {\n e || (e = effect(() => s.value = fn()));\n return s.value;\n },\n peek: s.peek\n}, c.toJSON = c.then = c.toString = c.valueOf = () => c.value, c);\nvar batch = (fn) => fn();\nvar untracked = batch;\nvar use = (s) => (signal = s.signal, effect = s.effect, computed = s.computed, batch = s.batch || batch, untracked = s.untracked || untracked);\n\n// store.js\nvar _signals = Symbol(\"signals\");\nvar _change = Symbol(\"change\");\nvar _stash = \"__\";\nvar store = (values, parent) => {\n if (!values) return values;\n if (values[_signals] || values[Symbol.toStringTag]) return values;\n if (values.constructor !== Object) return Array.isArray(values) ? list(values) : values;\n let signals = Object.create(parent?.[_signals] || {}), _len = signal(Object.keys(values).length), stash;\n let state = new Proxy(signals, {\n get: (_, k) => k === _change ? _len : k === _signals ? signals : k === _stash ? stash : k in signals ? signals[k]?.valueOf() : globalThis[k],\n set: (_, k, v, s) => k === _stash ? (stash = v, 1) : (s = k in signals, set(signals, k, v), s || ++_len.value),\n // bump length for new signal\n deleteProperty: (_, k) => (signals[k] && (signals[k][Symbol.dispose]?.(), delete signals[k], _len.value--), 1),\n // subscribe to length when object is spread\n ownKeys: () => (_len.value, Reflect.ownKeys(signals)),\n has: (_) => true\n // sandbox prevents writing to global\n }), descs = Object.getOwnPropertyDescriptors(values);\n for (let k in values) {\n if (descs[k]?.get)\n (signals[k] = computed(descs[k].get.bind(state)))._set = descs[k].set?.bind(state);\n else\n signals[k] = null, set(signals, k, values[k]);\n }\n return state;\n};\nvar list = (values) => {\n let lastProp, _len = signal(values.length), signals = Array(values.length).fill(), state = new Proxy(signals, {\n get(_, k) {\n if (typeof k === \"symbol\") return k === _change ? _len : k === _signals ? signals : signals[k];\n if (k === \"length\") return mut.includes(lastProp) ? _len.peek() : _len.value;\n lastProp = k;\n return (signals[k] ?? (signals[k] = signal(store(values[k])))).valueOf();\n },\n set(_, k, v) {\n if (k === \"length\") {\n for (let i = v; i < signals.length; i++) delete state[i];\n _len.value = signals.length = v;\n } else {\n set(signals, k, v);\n if (k >= _len.peek()) _len.value = signals.length = +k + 1;\n }\n return 1;\n },\n deleteProperty: (_, k) => (signals[k]?.[Symbol.dispose]?.(), delete signals[k], 1)\n });\n return state;\n};\nvar mut = [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"];\nvar set = (signals, k, v) => {\n let s = signals[k], cur;\n if (k[0] === \"_\") signals[k] = v;\n else if (!s) signals[k] = s = v?.peek ? v : signal(store(v));\n else if (v === (cur = s.peek())) ;\n else if (s._set) s._set(v);\n else if (Array.isArray(v) && Array.isArray(cur)) {\n if (cur[_change]) batch(() => {\n for (let i = 0; i < v.length; i++) cur[i] = v[i];\n cur.length = v.length;\n });\n else s.value = v;\n } else s.value = store(v);\n};\nvar setter = (expr, set2 = parse(`${expr}=${_stash}`)) => (state, value) => (state[_stash] = value, // save value to stash\nset2(state));\nvar store_default = store;\n\n// core.js\nvar _dispose = Symbol.dispose || (Symbol.dispose = Symbol(\"dispose\"));\nvar _state = Symbol(\"state\");\nvar _on = Symbol(\"on\");\nvar _off = Symbol(\"off\");\nvar directive = {};\nvar dir = (name, create, p = parse) => directive[name] = (el, expr, state, name2, update, evaluate) => (update = create(el, state, expr, name2), evaluate = p(expr), () => update(evaluate(state)));\nvar sprae = (el = document.body, values) => {\n if (el[_state]) return Object.assign(el[_state], values);\n let state = store(values || {}), offs = [], fx = [];\n let init = (el2, attrs = el2.attributes) => {\n if (attrs) for (let i = 0; i < attrs.length; ) {\n let { name, value } = attrs[i], update, dir2;\n if (name.startsWith(prefix)) {\n el2.removeAttribute(name);\n for (dir2 of name.slice(prefix.length).split(\":\")) {\n update = (directive[dir2] || directive.default)(el2, value, state, dir2);\n fx.push(update);\n offs.push(effect(update));\n if (el2[_state] === null) return;\n }\n } else i++;\n }\n for (let child of el2.childNodes) child.nodeType == 1 && init(child);\n };\n init(el);\n if (!(_state in el)) {\n el[_state] = state;\n el[_off] = () => (offs.map((off) => off()), offs = []);\n el[_on] = () => offs = fx.map((f) => effect(f));\n el[_dispose] = () => (el[_off](), el[_off] = el[_on] = el[_dispose] = el[_state] = null);\n }\n return state;\n};\nsprae.use = (s) => (s.signal && use(s), s.compile && (compile = s.compile), s.prefix && (prefix = s.prefix));\nvar parse = (expr, dir2, fn) => {\n if (fn = memo[expr = expr.trim()]) return fn;\n try {\n fn = compile(expr);\n } catch (e) {\n err(e, dir2, expr);\n }\n return memo[expr] = (s) => {\n try {\n return fn(s);\n } catch (e) {\n err(e, dir2, expr);\n }\n };\n};\nvar memo = {};\nvar err = (e, dir2 = \"\", expr = \"\") => {\n throw Object.assign(e, { message: `\\u2234 ${e.message}\n\n${dir2}${expr ? `=\"${expr}\"\n\n` : \"\"}`, expr });\n};\nvar compile;\nvar prefix = \":\";\nvar frag = (tpl) => {\n if (!tpl.nodeType) return tpl;\n let content = tpl.content.cloneNode(true), attributes = [...tpl.attributes], ref = document.createTextNode(\"\"), childNodes = (content.append(ref), [...content.childNodes]);\n return {\n // get parentNode() { return childNodes[0].parentNode },\n childNodes,\n content,\n remove: () => content.append(...childNodes),\n replaceWith(el) {\n if (el === ref) return;\n ref.before(el);\n content.append(...childNodes);\n },\n attributes,\n removeAttribute(name) {\n attributes.splice(attributes.findIndex((a) => a.name === name), 1);\n }\n // setAttributeNode() { }\n };\n};\nvar core_default = sprae;\n\n// directive/if.js\nvar _prevIf = Symbol(\"if\");\ndir(\"if\", (el, state) => {\n let holder = document.createTextNode(\"\");\n let next = el.nextElementSibling, curEl, ifEl, elseEl;\n el.replaceWith(holder);\n ifEl = el.content ? frag(el) : el;\n ifEl[_state] = null;\n if (next?.hasAttribute(\":else\")) {\n next.removeAttribute(\":else\");\n if (!next.hasAttribute(\":if\")) next.remove(), elseEl = next.content ? frag(next) : next, elseEl[_state] = null;\n }\n return (value, newEl = value ? ifEl : el[_prevIf] ? null : elseEl) => {\n if (next) next[_prevIf] = newEl === ifEl;\n if (curEl != newEl) {\n if (curEl) curEl.remove(), curEl[_off]?.();\n if (curEl = newEl) {\n holder.before(curEl.content || curEl);\n curEl[_state] === null ? (delete curEl[_state], core_default(curEl, state)) : curEl[_on]();\n }\n }\n };\n});\n\n// directive/each.js\ndir(\n \"each\",\n (tpl, state, expr) => {\n let [itemVar, idxVar = \"$\"] = expr.split(/\\bin\\b/)[0].trim().split(/\\s*,\\s*/);\n let holder = document.createTextNode(\"\");\n let cur, keys2, items, prevl = 0;\n let update = () => {\n var _a, _b;\n let i = 0, newItems = items, newl = newItems.length;\n if (cur && !cur[_change]) {\n for (let s of cur[_signals] || []) s[Symbol.dispose]();\n cur = null, prevl = 0;\n }\n if (newl < prevl) cur.length = newl;\n else {\n if (!cur) cur = newItems;\n else while (i < prevl) cur[i] = newItems[i++];\n for (; i < newl; i++) {\n cur[i] = newItems[i];\n let idx = i, scope = store_default({\n [itemVar]: cur[_signals]?.[idx] || cur[idx],\n [idxVar]: keys2 ? keys2[idx] : idx\n }, state), el = tpl.content ? frag(tpl) : tpl.cloneNode(true);\n holder.before(el.content || el);\n core_default(el, scope);\n ((_b = cur[_a = _signals] || (cur[_a] = []))[i] || (_b[i] = {}))[Symbol.dispose] = () => {\n el[Symbol.dispose]?.(), el.remove();\n };\n }\n }\n prevl = newl;\n };\n tpl.replaceWith(holder);\n tpl[_state] = null;\n return (value) => {\n keys2 = null;\n if (typeof value === \"number\") items = Array.from({ length: value }, (_, i) => i + 1);\n else if (value?.constructor === Object) keys2 = Object.keys(value), items = Object.values(value);\n else items = value || [];\n let planned = 0;\n return effect(() => {\n items[_change]?.value;\n if (!planned++) update(), queueMicrotask(() => (planned > 1 && update(), planned = 0));\n });\n };\n },\n // redefine evaluator to take second part of expression\n (expr) => parse(expr.split(/\\bin\\b/)[1])\n);\n\n// directive/ref.js\ndir(\"ref\", (el, state, expr) => typeof parse(expr)(state) == \"function\" ? (v) => v.call(null, el) : (setter(expr)(state, el), (_) => _));\n\n// directive/with.js\ndir(\"with\", (el, rootState, state) => (state = null, (values) => !state ? (\n // NOTE: we force untracked because internal directives can eval outside of effects (like ref etc) that would cause unwanted subscribe\n // FIXME: since this can be async effect, we should create & sprae it in advance.\n untracked(() => core_default(el, state = store_default(values, rootState)))\n) : core_default(el, values)));\n\n// directive/text.js\ndir(\"text\", (el) => (\n // <template :text=\"a\"/> or previously initialized template\n (el.content && el.replaceWith(el = frag(el).childNodes[0]), (value) => el.textContent = value == null ? \"\" : value)\n));\n\n// directive/class.js\ndir(\n \"class\",\n (el, cur) => (cur = /* @__PURE__ */ new Set(), (v) => {\n let clsx = /* @__PURE__ */ new Set();\n if (v) {\n if (typeof v === \"string\") v.split(\" \").map((cls) => clsx.add(cls));\n else if (Array.isArray(v)) v.map((v2) => v2 && clsx.add(v2));\n else Object.entries(v).map(([k, v2]) => v2 && clsx.add(k));\n }\n for (let cls of cur) if (clsx.has(cls)) clsx.delete(cls);\n else el.classList.remove(cls);\n for (let cls of cur = clsx) el.classList.add(cls);\n })\n);\n\n// directive/style.js\ndir(\n \"style\",\n (el, initStyle) => (initStyle = el.getAttribute(\"style\"), (v) => {\n if (typeof v === \"string\") el.setAttribute(\"style\", initStyle + (initStyle.endsWith(\";\") ? \"\" : \"; \") + v);\n else {\n if (initStyle) el.setAttribute(\"style\", initStyle);\n for (let k in v) k[0] == \"-\" ? el.style.setProperty(k, v[k]) : el.style[k] = v[k];\n }\n })\n);\n\n// directive/default.js\ndir(\"default\", (target, state, expr, name) => {\n if (!name.startsWith(\"on\"))\n return name ? (value) => attr(target, name, value) : (value) => {\n for (let key in value) attr(target, dashcase(key), value[key]);\n };\n let ctxs = name.split(\"..\").map((e) => {\n let ctx = { evt: \"\", target, test: () => true };\n ctx.evt = (e.startsWith(\"on\") ? e.slice(2) : e).replace(\n /\\.(\\w+)?-?([-\\w]+)?/g,\n (_, mod, param = \"\") => (ctx.test = mods[mod]?.(ctx, ...param.split(\"-\")) || ctx.test, \"\")\n );\n return ctx;\n });\n let addListener = (fn, { evt, target: target2, test, defer, stop, prevent, immediate, ...opts }, cb) => {\n if (defer) fn = defer(fn);\n cb = (e) => {\n try {\n test(e) && (stop && (immediate ? e.stopImmediatePropagation() : e.stopPropagation()), prevent && e.preventDefault(), fn?.call(state, e));\n } catch (error) {\n err(error, `:on${evt}`, fn);\n }\n };\n target2.addEventListener(evt, cb, opts);\n return () => target2.removeEventListener(evt, cb, opts);\n };\n if (ctxs.length == 1) return (v) => addListener(v, ctxs[0]);\n let startFn, nextFn, off, idx = 0;\n let nextListener = (fn) => {\n off = addListener((e) => (off(), nextFn = fn?.(e), (idx = ++idx % ctxs.length) ? nextListener(nextFn) : startFn && nextListener(startFn)), ctxs[idx]);\n };\n return (value) => (startFn = value, !off && nextListener(startFn), () => startFn = null);\n});\nvar mods = {\n // actions\n prevent(ctx) {\n ctx.prevent = true;\n },\n stop(ctx) {\n ctx.stop = true;\n },\n immediate(ctx) {\n ctx.immediate = true;\n },\n // options\n once(ctx) {\n ctx.once = true;\n },\n passive(ctx) {\n ctx.passive = true;\n },\n capture(ctx) {\n ctx.capture = true;\n },\n // target\n window(ctx) {\n ctx.target = window;\n },\n document(ctx) {\n ctx.target = document;\n },\n parent(ctx) {\n ctx.target = ctx.target.parentNode;\n },\n throttle(ctx, limit = 108) {\n ctx.defer = (fn) => throttle(fn, limit);\n },\n debounce(ctx, wait = 108) {\n ctx.defer = (fn) => debounce(fn, wait);\n },\n // test\n outside: (ctx) => (e) => {\n let target = ctx.target;\n if (target.contains(e.target)) return false;\n if (e.target.isConnected === false) return false;\n if (target.offsetWidth < 1 && target.offsetHeight < 1) return false;\n return true;\n },\n self: (ctx) => (e) => e.target === ctx.target,\n // keyboard\n ctrl: (_, ...param) => (e) => keys.ctrl(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n shift: (_, ...param) => (e) => keys.shift(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n alt: (_, ...param) => (e) => keys.alt(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n meta: (_, ...param) => (e) => keys.meta(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),\n // NOTE: we don't expose up/left/right/down as too verbose: can and better be handled/differentiated at once\n arrow: () => keys.arrow,\n enter: () => keys.enter,\n esc: () => keys.esc,\n tab: () => keys.tab,\n space: () => keys.space,\n delete: () => keys.delete,\n digit: () => keys.digit,\n letter: () => keys.letter,\n char: () => keys.char\n};\nvar keys = {\n ctrl: (e) => e.ctrlKey || e.key === \"Control\" || e.key === \"Ctrl\",\n shift: (e) => e.shiftKey || e.key === \"Shift\",\n alt: (e) => e.altKey || e.key === \"Alt\",\n meta: (e) => e.metaKey || e.key === \"Meta\" || e.key === \"Command\",\n arrow: (e) => e.key.startsWith(\"Arrow\"),\n enter: (e) => e.key === \"Enter\",\n esc: (e) => e.key.startsWith(\"Esc\"),\n tab: (e) => e.key === \"Tab\",\n space: (e) => e.key === \"\\xA0\" || e.key === \"Space\" || e.key === \" \",\n delete: (e) => e.key === \"Delete\" || e.key === \"Backspace\",\n digit: (e) => /^\\d$/.test(e.key),\n letter: (e) => /^\\p{L}$/gu.test(e.key),\n char: (e) => /^\\S$/.test(e.key)\n};\nvar throttle = (fn, limit) => {\n let pause, planned, block = (e) => {\n pause = true;\n setTimeout(() => {\n pause = false;\n if (planned) return planned = false, block(e), fn(e);\n }, limit);\n };\n return (e) => {\n if (pause) return planned = true;\n block(e);\n return fn(e);\n };\n};\nvar debounce = (fn, wait) => {\n let timeout;\n return (e) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n timeout = null;\n fn(e);\n }, wait);\n };\n};\nvar attr = (el, name, v) => {\n if (v == null || v === false) el.removeAttribute(name);\n else el.setAttribute(name, v === true ? \"\" : typeof v === \"number\" || typeof v === \"string\" ? v : \"\");\n};\nvar dashcase = (str) => {\n return str.replace(/[A-Z\\u00C0-\\u00D6\\u00D8-\\u00DE]/g, (match, i) => (i ? \"-\" : \"\") + match.toLowerCase());\n};\n\n// directive/value.js\ndir(\"value\", (el, state, expr) => {\n const update = el.type === \"text\" || el.type === \"\" ? (value) => el.setAttribute(\"value\", el.value = value == null ? \"\" : value) : el.tagName === \"TEXTAREA\" || el.type === \"text\" || el.type === \"\" ? (value, from, to) => (\n // we retain selection in input\n (from = el.selectionStart, to = el.selectionEnd, el.setAttribute(\"value\", el.value = value == null ? \"\" : value), from && el.setSelectionRange(from, to))\n ) : el.type === \"checkbox\" ? (value) => (el.checked = value, attr(el, \"checked\", value)) : el.type === \"select-one\" ? (value) => {\n for (let o of el.options)\n o.value == value ? o.setAttribute(\"selected\", \"\") : o.removeAttribute(\"selected\");\n el.value = value;\n } : el.type === \"select-multiple\" ? (value) => {\n for (let o of el.options) o.removeAttribute(\"selected\");\n for (let v of value) el.querySelector(`[value=\"${v}\"]`).setAttribute(\"selected\", \"\");\n } : (value) => el.value = value;\n try {\n const set2 = setter(expr);\n const handleChange = el.type === \"checkbox\" ? () => set2(state, el.checked) : el.type === \"select-multiple\" ? () => set2(state, [...el.selectedOptions].map((o) => o.value)) : () => set2(state, el.selectedIndex < 0 ? null : el.value);\n el.oninput = el.onchange = handleChange;\n if (el.type?.startsWith(\"select\")) {\n new MutationObserver(handleChange).observe(el, { childList: true, subtree: true, attributes: true });\n core_default(el, state);\n }\n parse(expr)(state) ?? handleChange();\n } catch {\n }\n return update;\n});\n\n// directive/fx.js\ndir(\"fx\", (_) => (_2) => _2);\n\n// directive/aria.js\ndir(\"aria\", (el) => (value) => {\n for (let key in value) attr(el, \"aria-\" + dashcase(key), value[key] == null ? null : value[key] + \"\");\n});\n\n// directive/data.js\ndir(\"data\", (el) => (value) => {\n for (let key in value) el.dataset[key] = value[key];\n});\n\n// sprae.js\ncore_default.use({ compile: (expr) => core_default.constructor(`with (arguments[0]) { return ${expr} };`) });\nvar sprae_default = core_default;\nexport {\n sprae_default as default\n};\n"],
|
|
5
|
+
"mappings": "AACA,IAAIA,EACAC,EAAS,CAACC,EAAGC,EAAGC,EAAsB,IAAI,OAAWD,EAAI,CAC3D,IAAI,OAAQ,CACV,OAAAH,GAAS,KAAK,KAAKI,EAAI,IAAIJ,CAAO,CAAC,EAC5BE,CACT,EACA,IAAI,MAAMG,EAAK,CACb,GAAIA,IAAQH,EACZ,CAAAA,EAAIG,EACJ,QAASC,KAAOF,EAAKE,EAAI,EAC3B,EACA,MAAO,CACL,OAAOJ,CACT,CACF,EAAGC,EAAE,OAASA,EAAE,KAAOA,EAAE,SAAWA,EAAE,QAAU,IAAMA,EAAE,MAAOA,GAC3DI,EAAS,CAACC,EAAIC,EAAUC,EAAIC,KAAUD,EAAME,GAAS,CACvDH,GAAU,OAAO,EACjBG,EAAOZ,EAASA,EAAUU,EAC1B,GAAI,CACFD,EAAWD,EAAG,CAChB,QAAE,CACAR,EAAUY,CACZ,CACF,EAAGD,EAAOD,EAAG,KAAO,CAAC,EAAGA,EAAG,EAAIG,GAAQ,CAErC,IADAJ,GAAU,OAAO,EACVI,EAAMF,EAAK,IAAI,GAAGE,EAAI,OAAOH,CAAE,CACxC,GACII,EAAW,CAACN,EAAIL,EAAIF,EAAO,EAAGc,EAAGC,KAAOD,EAAI,CAC9C,IAAI,OAAQ,CACV,OAAAC,IAAMA,EAAIT,EAAO,IAAMJ,EAAE,MAAQK,EAAG,CAAC,GAC9BL,EAAE,KACX,EACA,KAAMA,EAAE,IACV,EAAGY,EAAE,OAASA,EAAE,KAAOA,EAAE,SAAWA,EAAE,QAAU,IAAMA,EAAE,MAAOA,GAC3DE,EAAST,GAAOA,EAAG,EACnBU,EAAYD,EACZE,GAAOhB,IAAOF,EAASE,EAAE,OAAQI,EAASJ,EAAE,OAAQW,EAAWX,EAAE,SAAUc,EAAQd,EAAE,OAASc,EAAOC,EAAYf,EAAE,WAAae,GAGhIE,EAAW,OAAO,SAAS,EAC3BC,EAAU,OAAO,QAAQ,EACzBC,EAAS,KACTC,EAAQ,CAACC,EAAQC,IAAW,CAE9B,GADI,CAACD,GACDA,EAAOJ,CAAQ,GAAKI,EAAO,OAAO,WAAW,EAAG,OAAOA,EAC3D,GAAIA,EAAO,cAAgB,OAAQ,OAAO,MAAM,QAAQA,CAAM,EAAIE,GAAKF,CAAM,EAAIA,EACjF,IAAIG,EAAU,OAAO,OAAOF,IAASL,CAAQ,GAAK,CAAC,CAAC,EAAGQ,EAAO3B,EAAO,OAAO,KAAKuB,CAAM,EAAE,MAAM,EAAGK,EAC9FC,EAAQ,IAAI,MAAMH,EAAS,CAC7B,IAAK,CAACI,EAAGC,IAAMA,IAAMX,EAAUO,EAAOI,IAAMZ,EAAWO,EAAUK,IAAMV,EAASO,EAAQG,KAAKL,EAAUA,EAAQK,CAAC,GAAG,QAAQ,EAAI,WAAWA,CAAC,EAC3I,IAAK,CAACD,EAAGC,EAAG9B,EAAGC,IAAM6B,IAAMV,GAAUO,EAAQ3B,EAAG,IAAMC,EAAI6B,KAAKL,EAASM,EAAIN,EAASK,EAAG9B,CAAC,EAAGC,GAAK,EAAEyB,EAAK,OAExG,eAAgB,CAACG,EAAGC,KAAOL,EAAQK,CAAC,IAAML,EAAQK,CAAC,EAAE,OAAO,OAAO,IAAI,EAAG,OAAOL,EAAQK,CAAC,EAAGJ,EAAK,SAAU,GAE5G,QAAS,KAAOA,EAAK,MAAO,QAAQ,QAAQD,CAAO,GACnD,IAAMI,GAAM,EAEd,CAAC,EAAGG,EAAQ,OAAO,0BAA0BV,CAAM,EACnD,QAASQ,KAAKR,EACRU,EAAMF,CAAC,GAAG,KACXL,EAAQK,CAAC,EAAIlB,EAASoB,EAAMF,CAAC,EAAE,IAAI,KAAKF,CAAK,CAAC,GAAG,KAAOI,EAAMF,CAAC,EAAE,KAAK,KAAKF,CAAK,GAEjFH,EAAQK,CAAC,EAAI,KAAMC,EAAIN,EAASK,EAAGR,EAAOQ,CAAC,CAAC,GAEhD,OAAOF,CACT,EACIJ,GAAQF,GAAW,CACrB,IAAIW,EAAUP,EAAO3B,EAAOuB,EAAO,MAAM,EAAGG,EAAU,MAAMH,EAAO,MAAM,EAAE,KAAK,EAAGM,EAAQ,IAAI,MAAMH,EAAS,CAC5G,IAAII,EAAGC,EAAG,CACR,OAAI,OAAOA,GAAM,SAAiBA,IAAMX,EAAUO,EAAOI,IAAMZ,EAAWO,EAAUA,EAAQK,CAAC,EACzFA,IAAM,SAAiBI,GAAI,SAASD,CAAQ,EAAIP,EAAK,KAAK,EAAIA,EAAK,OACvEO,EAAWH,GACHL,EAAQK,CAAC,IAAML,EAAQK,CAAC,EAAI/B,EAAOsB,EAAMC,EAAOQ,CAAC,CAAC,CAAC,IAAI,QAAQ,EACzE,EACA,IAAID,EAAGC,EAAG9B,EAAG,CACX,GAAI8B,IAAM,SAAU,CAClB,QAASK,EAAInC,EAAGmC,EAAIV,EAAQ,OAAQU,IAAK,OAAOP,EAAMO,CAAC,EACvDT,EAAK,MAAQD,EAAQ,OAASzB,CAChC,MACE+B,EAAIN,EAASK,EAAG9B,CAAC,EACb8B,GAAKJ,EAAK,KAAK,IAAGA,EAAK,MAAQD,EAAQ,OAAS,CAACK,EAAI,GAE3D,MAAO,EACT,EACA,eAAgB,CAACD,EAAGC,KAAOL,EAAQK,CAAC,IAAI,OAAO,OAAO,IAAI,EAAG,OAAOL,EAAQK,CAAC,EAAG,EAClF,CAAC,EACD,OAAOF,CACT,EACIM,GAAM,CAAC,OAAQ,MAAO,QAAS,UAAW,QAAQ,EAClDH,EAAM,CAACN,EAASK,EAAG9B,IAAM,CAC3B,IAAIC,EAAIwB,EAAQK,CAAC,EAAGM,EAChBN,EAAE,CAAC,IAAM,IAAKL,EAAQK,CAAC,EAAI9B,EACrBC,EACDD,KAAOoC,EAAMnC,EAAE,KAAK,KACpBA,EAAE,KAAMA,EAAE,KAAKD,CAAC,EAChB,MAAM,QAAQA,CAAC,GAAK,MAAM,QAAQoC,CAAG,EACxCA,EAAIjB,CAAO,EAAGJ,EAAM,IAAM,CAC5B,QAASoB,EAAI,EAAGA,EAAInC,EAAE,OAAQmC,IAAKC,EAAID,CAAC,EAAInC,EAAEmC,CAAC,EAC/CC,EAAI,OAASpC,EAAE,MACjB,CAAC,EACIC,EAAE,MAAQD,EACVC,EAAE,MAAQoB,EAAMrB,CAAC,GATXyB,EAAQK,CAAC,EAAI7B,EAAID,GAAG,KAAOA,EAAID,EAAOsB,EAAMrB,CAAC,CAAC,CAU7D,EACIqC,EAAS,CAACC,EAAMC,EAAOC,EAAM,GAAGF,CAAI,IAAIlB,CAAM,EAAE,IAAM,CAACQ,EAAOa,KAAWb,EAAMR,CAAM,EAAIqB,EAC7FF,EAAKX,CAAK,GACNc,EAAgBrB,EAGhBsB,EAAW,OAAO,UAAY,OAAO,QAAU,OAAO,SAAS,GAC/DC,EAAS,OAAO,OAAO,EACvBC,EAAM,OAAO,IAAI,EACjBC,EAAO,OAAO,KAAK,EACnBC,EAAY,CAAC,EACbC,EAAM,CAACC,EAAMC,EAAQC,EAAIX,IAAUO,EAAUE,CAAI,EAAI,CAACG,EAAId,EAAMV,EAAOyB,EAAOC,EAAQC,KAAcD,EAASJ,EAAOE,EAAIxB,EAAOU,EAAMe,CAAK,EAAGE,EAAWJ,EAAEb,CAAI,EAAG,IAAMgB,EAAOC,EAAS3B,CAAK,CAAC,GAC7L4B,EAAQ,CAACJ,EAAK,SAAS,KAAM9B,IAAW,CAC1C,GAAI8B,EAAGR,CAAM,EAAG,OAAO,OAAO,OAAOQ,EAAGR,CAAM,EAAGtB,CAAM,EACvD,IAAIM,EAAQP,EAAMC,GAAU,CAAC,CAAC,EAAGmC,EAAO,CAAC,EAAGjD,EAAK,CAAC,EAC9CkD,EAAO,CAACC,EAAKC,EAAQD,EAAI,aAAe,CAC1C,GAAIC,EAAO,QAASzB,EAAI,EAAGA,EAAIyB,EAAM,QAAU,CAC7C,GAAI,CAAE,KAAAX,EAAM,MAAAR,CAAM,EAAImB,EAAMzB,CAAC,EAAGmB,EAAQO,EACxC,GAAIZ,EAAK,WAAWa,CAAM,EAAG,CAC3BH,EAAI,gBAAgBV,CAAI,EACxB,IAAKY,KAAQZ,EAAK,MAAMa,EAAO,MAAM,EAAE,MAAM,GAAG,EAI9C,GAHAR,GAAUP,EAAUc,CAAI,GAAKd,EAAU,SAASY,EAAKlB,EAAOb,EAAOiC,CAAI,EACvErD,EAAG,KAAK8C,CAAM,EACdG,EAAK,KAAKpD,EAAOiD,CAAM,CAAC,EACpBK,EAAIf,CAAM,IAAM,KAAM,MAE9B,MAAOT,GACT,CACA,QAAS4B,KAASJ,EAAI,WAAYI,EAAM,UAAY,GAAKL,EAAKK,CAAK,CACrE,EACA,OAAAL,EAAKN,CAAE,EACDR,KAAUQ,IACdA,EAAGR,CAAM,EAAIhB,EACbwB,EAAGN,CAAI,EAAI,KAAOW,EAAK,IAAKO,GAAQA,EAAI,CAAC,EAAGP,EAAO,CAAC,GACpDL,EAAGP,CAAG,EAAI,IAAMY,EAAOjD,EAAG,IAAKyD,GAAM5D,EAAO4D,CAAC,CAAC,EAC9Cb,EAAGT,CAAQ,EAAI,KAAOS,EAAGN,CAAI,EAAE,EAAGM,EAAGN,CAAI,EAAIM,EAAGP,CAAG,EAAIO,EAAGT,CAAQ,EAAIS,EAAGR,CAAM,EAAI,OAE9EhB,CACT,EACA4B,EAAM,IAAOvD,IAAOA,EAAE,QAAUgB,GAAIhB,CAAC,EAAGA,EAAE,UAAYiE,EAAUjE,EAAE,SAAUA,EAAE,SAAW6D,EAAS7D,EAAE,SACpG,IAAIuC,EAAQ,CAACF,EAAMuB,EAAMvD,IAAO,CAC9B,GAAIA,EAAK6D,EAAK7B,EAAOA,EAAK,KAAK,CAAC,EAAG,OAAOhC,EAC1C,GAAI,CACFA,EAAK4D,EAAQ5B,CAAI,CACnB,OAASxB,EAAG,CACVsD,EAAItD,EAAG+C,EAAMvB,CAAI,CACnB,CACA,OAAO6B,EAAK7B,CAAI,EAAKrC,GAAM,CACzB,GAAI,CACF,OAAOK,EAAGL,CAAC,CACb,OAASa,EAAG,CACVsD,EAAItD,EAAG+C,EAAMvB,CAAI,CACnB,CACF,CACF,EACI6B,EAAO,CAAC,EACRC,EAAM,CAAC,EAAGP,EAAO,GAAIvB,EAAO,KAAO,CACrC,MAAM,OAAO,OAAO,EAAG,CAAE,QAAS,UAAU,EAAE,OAAO;AAAA;AAAA,EAErDuB,CAAI,GAAGvB,EAAO,KAAKA,CAAI;AAAA;AAAA,EAErB,EAAE,GAAI,KAAAA,CAAK,CAAC,CAChB,EACI4B,EACAJ,EAAS,IACTO,EAAQC,GAAQ,CAClB,GAAI,CAACA,EAAI,SAAU,OAAOA,EAC1B,IAAIC,EAAUD,EAAI,QAAQ,UAAU,EAAI,EAAGE,EAAa,CAAC,GAAGF,EAAI,UAAU,EAAGG,EAAM,SAAS,eAAe,EAAE,EAAGC,GAAcH,EAAQ,OAAOE,CAAG,EAAG,CAAC,GAAGF,EAAQ,UAAU,GACzK,MAAO,CAEL,WAAAG,EACA,QAAAH,EACA,OAAQ,IAAMA,EAAQ,OAAO,GAAGG,CAAU,EAC1C,YAAYtB,EAAI,CACVA,IAAOqB,IACXA,EAAI,OAAOrB,CAAE,EACbmB,EAAQ,OAAO,GAAGG,CAAU,EAC9B,EACA,WAAAF,EACA,gBAAgBvB,EAAM,CACpBuB,EAAW,OAAOA,EAAW,UAAWG,GAAMA,EAAE,OAAS1B,CAAI,EAAG,CAAC,CACnE,CAEF,CACF,EACI2B,EAAepB,EAGfqB,EAAU,OAAO,IAAI,EACzB7B,EAAI,KAAM,CAACI,EAAIxB,IAAU,CACvB,IAAIkD,EAAS,SAAS,eAAe,EAAE,EACnCC,EAAO3B,EAAG,mBAAoB4B,EAAOC,EAAMC,EAC/C,OAAA9B,EAAG,YAAY0B,CAAM,EACrBG,EAAO7B,EAAG,QAAUiB,EAAKjB,CAAE,EAAIA,EAC/B6B,EAAKrC,CAAM,EAAI,KACXmC,GAAM,aAAa,OAAO,IAC5BA,EAAK,gBAAgB,OAAO,EACvBA,EAAK,aAAa,KAAK,IAAGA,EAAK,OAAO,EAAGG,EAASH,EAAK,QAAUV,EAAKU,CAAI,EAAIA,EAAMG,EAAOtC,CAAM,EAAI,OAErG,CAACH,EAAO0C,EAAQ1C,EAAQwC,EAAO7B,EAAGyB,CAAO,EAAI,KAAOK,IAAW,CAChEH,IAAMA,EAAKF,CAAO,EAAIM,IAAUF,GAChCD,GAASG,IACPH,IAAOA,EAAM,OAAO,EAAGA,EAAMlC,CAAI,IAAI,IACrCkC,EAAQG,KACVL,EAAO,OAAOE,EAAM,SAAWA,CAAK,EACpCA,EAAMpC,CAAM,IAAM,MAAQ,OAAOoC,EAAMpC,CAAM,EAAGgC,EAAaI,EAAOpD,CAAK,GAAKoD,EAAMnC,CAAG,EAAE,GAG/F,CACF,CAAC,EAGDG,EACE,OACA,CAACsB,EAAK1C,EAAOU,IAAS,CACpB,GAAI,CAAC8C,EAASC,EAAS,GAAG,EAAI/C,EAAK,MAAM,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,SAAS,EACxEwC,EAAS,SAAS,eAAe,EAAE,EACnC1C,EAAKkD,EAAOC,EAAOC,EAAQ,EAC3BlC,EAAS,IAAM,CACjB,IAAImC,EAAIC,EACR,IAAIvD,EAAI,EAAGwD,EAAWJ,EAAOK,EAAOD,EAAS,OAC7C,GAAIvD,GAAO,CAACA,EAAIjB,CAAO,EAAG,CACxB,QAASlB,KAAKmC,EAAIlB,CAAQ,GAAK,CAAC,EAAGjB,EAAE,OAAO,OAAO,EAAE,EACrDmC,EAAM,KAAMoD,EAAQ,CACtB,CACA,GAAII,EAAOJ,EAAOpD,EAAI,OAASwD,MAC1B,CACH,GAAI,CAACxD,EAAKA,EAAMuD,MACX,MAAOxD,EAAIqD,GAAOpD,EAAID,CAAC,EAAIwD,EAASxD,GAAG,EAC5C,KAAOA,EAAIyD,EAAMzD,IAAK,CACpBC,EAAID,CAAC,EAAIwD,EAASxD,CAAC,EACnB,IAAI0D,EAAM1D,EAAG2D,EAAQpD,EAAc,CACjC,CAAC0C,CAAO,EAAGhD,EAAIlB,CAAQ,IAAI2E,CAAG,GAAKzD,EAAIyD,CAAG,EAC1C,CAACR,CAAM,EAAGC,EAAQA,EAAMO,CAAG,EAAIA,CACjC,EAAGjE,CAAK,EAAGwB,EAAKkB,EAAI,QAAUD,EAAKC,CAAG,EAAIA,EAAI,UAAU,EAAI,EAC5DQ,EAAO,OAAO1B,EAAG,SAAWA,CAAE,EAC9BwB,EAAaxB,EAAI0C,CAAK,IACpBJ,EAAKtD,EAAIqD,EAAKvE,CAAQ,IAAMkB,EAAIqD,CAAE,EAAI,CAAC,IAAItD,CAAC,IAAMuD,EAAGvD,CAAC,EAAI,CAAC,IAAI,OAAO,OAAO,EAAI,IAAM,CACvFiB,EAAG,OAAO,OAAO,IAAI,EAAGA,EAAG,OAAO,CACpC,CACF,CACF,CACAoC,EAAQI,CACV,EACA,OAAAtB,EAAI,YAAYQ,CAAM,EACtBR,EAAI1B,CAAM,EAAI,KACNH,GAAU,CAChB6C,EAAQ,KACJ,OAAO7C,GAAU,SAAU8C,EAAQ,MAAM,KAAK,CAAE,OAAQ9C,CAAM,EAAG,CAACZ,EAAGM,IAAMA,EAAI,CAAC,EAC3EM,GAAO,cAAgB,QAAQ6C,EAAQ,OAAO,KAAK7C,CAAK,EAAG8C,EAAQ,OAAO,OAAO9C,CAAK,GAC1F8C,EAAQ9C,GAAS,CAAC,EACvB,IAAIsD,EAAU,EACd,OAAO1F,EAAO,IAAM,CAClBkF,EAAMpE,CAAO,GAAG,MACX4E,MAAWzC,EAAO,EAAG,eAAe,KAAOyC,EAAU,GAAKzC,EAAO,EAAGyC,EAAU,EAAE,EACvF,CAAC,CACH,CACF,EAECzD,GAASE,EAAMF,EAAK,MAAM,QAAQ,EAAE,CAAC,CAAC,CACzC,EAGAU,EAAI,MAAO,CAACI,EAAIxB,EAAOU,IAAS,OAAOE,EAAMF,CAAI,EAAEV,CAAK,GAAK,WAAc5B,GAAMA,EAAE,KAAK,KAAMoD,CAAE,GAAKf,EAAOC,CAAI,EAAEV,EAAOwB,CAAE,EAAIvB,GAAMA,EAAE,EAGvImB,EAAI,OAAQ,CAACI,EAAI4C,EAAWpE,KAAWA,EAAQ,KAAON,GAAYM,EAI9DgD,EAAaxB,EAAI9B,CAAM,EADzBN,EAAU,IAAM4D,EAAaxB,EAAIxB,EAAQc,EAAcpB,EAAQ0E,CAAS,CAAC,CAAC,EAC/C,EAG7BhD,EAAI,OAASI,IAEVA,EAAG,SAAWA,EAAG,YAAYA,EAAKiB,EAAKjB,CAAE,EAAE,WAAW,CAAC,CAAC,EAAIX,GAAUW,EAAG,YAAcX,GAAgB,GACzG,EAGDO,EACE,QACA,CAACI,EAAIhB,KAASA,EAAsB,IAAI,IAAQpC,GAAM,CACpD,IAAIiG,EAAuB,IAAI,IAC3BjG,IACE,OAAOA,GAAM,SAAUA,EAAE,MAAM,GAAG,EAAE,IAAKkG,GAAQD,EAAK,IAAIC,CAAG,CAAC,EACzD,MAAM,QAAQlG,CAAC,EAAGA,EAAE,IAAKmG,GAAOA,GAAMF,EAAK,IAAIE,CAAE,CAAC,EACtD,OAAO,QAAQnG,CAAC,EAAE,IAAI,CAAC,CAAC8B,EAAGqE,CAAE,IAAMA,GAAMF,EAAK,IAAInE,CAAC,CAAC,GAE3D,QAASoE,KAAO9D,EAAS6D,EAAK,IAAIC,CAAG,EAAGD,EAAK,OAAOC,CAAG,EAClD9C,EAAG,UAAU,OAAO8C,CAAG,EAC5B,QAASA,KAAO9D,EAAM6D,EAAM7C,EAAG,UAAU,IAAI8C,CAAG,CAClD,EACF,EAGAlD,EACE,QACA,CAACI,EAAIgD,KAAeA,EAAYhD,EAAG,aAAa,OAAO,EAAIpD,GAAM,CAC/D,GAAI,OAAOA,GAAM,SAAUoD,EAAG,aAAa,QAASgD,GAAaA,EAAU,SAAS,GAAG,EAAI,GAAK,MAAQpG,CAAC,MACpG,CACCoG,GAAWhD,EAAG,aAAa,QAASgD,CAAS,EACjD,QAAStE,KAAK9B,EAAG8B,EAAE,CAAC,GAAK,IAAMsB,EAAG,MAAM,YAAYtB,EAAG9B,EAAE8B,CAAC,CAAC,EAAIsB,EAAG,MAAMtB,CAAC,EAAI9B,EAAE8B,CAAC,CAClF,CACF,EACF,EAGAkB,EAAI,UAAW,CAACqD,EAAQzE,EAAOU,EAAMW,IAAS,CAC5C,GAAI,CAACA,EAAK,WAAW,IAAI,EACvB,OAAOA,EAAQR,GAAU6D,EAAKD,EAAQpD,EAAMR,CAAK,EAAKA,GAAU,CAC9D,QAAS8D,KAAO9D,EAAO6D,EAAKD,EAAQG,EAASD,CAAG,EAAG9D,EAAM8D,CAAG,CAAC,CAC/D,EACF,IAAIE,EAAOxD,EAAK,MAAM,IAAI,EAAE,IAAKnC,GAAM,CACrC,IAAI4F,EAAM,CAAE,IAAK,GAAI,OAAAL,EAAQ,KAAM,IAAM,EAAK,EAC9C,OAAAK,EAAI,KAAO5F,EAAE,WAAW,IAAI,EAAIA,EAAE,MAAM,CAAC,EAAIA,GAAG,QAC9C,uBACA,CAACe,EAAG8E,EAAKC,EAAQ,MAAQF,EAAI,KAAOG,GAAKF,CAAG,IAAID,EAAK,GAAGE,EAAM,MAAM,GAAG,CAAC,GAAKF,EAAI,KAAM,GACzF,EACOA,CACT,CAAC,EACGI,EAAc,CAACxG,EAAI,CAAE,IAAAyG,EAAK,OAAQC,EAAS,KAAAC,EAAM,MAAAC,EAAO,KAAAC,EAAM,QAAAC,EAAS,UAAAC,EAAW,GAAGC,CAAK,EAAGC,KAC3FL,IAAO5G,EAAK4G,EAAM5G,CAAE,GACxBiH,EAAMzG,GAAM,CACV,GAAI,CACFmG,EAAKnG,CAAC,IAAMqG,IAASE,EAAYvG,EAAE,yBAAyB,EAAIA,EAAE,gBAAgB,GAAIsG,GAAWtG,EAAE,eAAe,EAAGR,GAAI,KAAKsB,EAAOd,CAAC,EACxI,OAAS0G,EAAO,CACdpD,EAAIoD,EAAO,MAAMT,CAAG,GAAIzG,CAAE,CAC5B,CACF,EACA0G,EAAQ,iBAAiBD,EAAKQ,EAAID,CAAI,EAC/B,IAAMN,EAAQ,oBAAoBD,EAAKQ,EAAID,CAAI,GAExD,GAAIb,EAAK,QAAU,EAAG,OAAQzG,GAAM8G,EAAY9G,EAAGyG,EAAK,CAAC,CAAC,EAC1D,IAAIgB,EAASC,EAAQ1D,EAAK6B,EAAM,EAC5B8B,EAAgBrH,GAAO,CACzB0D,EAAM8C,EAAahG,IAAOkD,EAAI,EAAG0D,EAASpH,IAAKQ,CAAC,GAAI+E,EAAM,EAAEA,EAAMY,EAAK,QAAUkB,EAAaD,CAAM,EAAID,GAAWE,EAAaF,CAAO,GAAIhB,EAAKZ,CAAG,CAAC,CACtJ,EACA,OAAQpD,IAAWgF,EAAUhF,EAAO,CAACuB,GAAO2D,EAAaF,CAAO,EAAG,IAAMA,EAAU,KACrF,CAAC,EACD,IAAIZ,GAAO,CAET,QAAQH,EAAK,CACXA,EAAI,QAAU,EAChB,EACA,KAAKA,EAAK,CACRA,EAAI,KAAO,EACb,EACA,UAAUA,EAAK,CACbA,EAAI,UAAY,EAClB,EAEA,KAAKA,EAAK,CACRA,EAAI,KAAO,EACb,EACA,QAAQA,EAAK,CACXA,EAAI,QAAU,EAChB,EACA,QAAQA,EAAK,CACXA,EAAI,QAAU,EAChB,EAEA,OAAOA,EAAK,CACVA,EAAI,OAAS,MACf,EACA,SAASA,EAAK,CACZA,EAAI,OAAS,QACf,EACA,OAAOA,EAAK,CACVA,EAAI,OAASA,EAAI,OAAO,UAC1B,EACA,SAASA,EAAKkB,EAAQ,IAAK,CACzBlB,EAAI,MAASpG,GAAOuH,GAASvH,EAAIsH,CAAK,CACxC,EACA,SAASlB,EAAKoB,EAAO,IAAK,CACxBpB,EAAI,MAASpG,GAAOyH,GAASzH,EAAIwH,CAAI,CACvC,EAEA,QAAUpB,GAAS5F,GAAM,CACvB,IAAIuF,EAASK,EAAI,OAGjB,MAFI,EAAAL,EAAO,SAASvF,EAAE,MAAM,GACxBA,EAAE,OAAO,cAAgB,IACzBuF,EAAO,YAAc,GAAKA,EAAO,aAAe,EAEtD,EACA,KAAOK,GAAS5F,GAAMA,EAAE,SAAW4F,EAAI,OAEvC,KAAM,CAAC7E,KAAM+E,IAAW9F,GAAMkH,EAAK,KAAKlH,CAAC,GAAK8F,EAAM,MAAOzD,GAAM6E,EAAK7E,CAAC,EAAI6E,EAAK7E,CAAC,EAAErC,CAAC,EAAIA,EAAE,MAAQqC,CAAC,EACnG,MAAO,CAACtB,KAAM+E,IAAW9F,GAAMkH,EAAK,MAAMlH,CAAC,GAAK8F,EAAM,MAAOzD,GAAM6E,EAAK7E,CAAC,EAAI6E,EAAK7E,CAAC,EAAErC,CAAC,EAAIA,EAAE,MAAQqC,CAAC,EACrG,IAAK,CAACtB,KAAM+E,IAAW9F,GAAMkH,EAAK,IAAIlH,CAAC,GAAK8F,EAAM,MAAOzD,GAAM6E,EAAK7E,CAAC,EAAI6E,EAAK7E,CAAC,EAAErC,CAAC,EAAIA,EAAE,MAAQqC,CAAC,EACjG,KAAM,CAACtB,KAAM+E,IAAW9F,GAAMkH,EAAK,KAAKlH,CAAC,GAAK8F,EAAM,MAAOzD,GAAM6E,EAAK7E,CAAC,EAAI6E,EAAK7E,CAAC,EAAErC,CAAC,EAAIA,EAAE,MAAQqC,CAAC,EAEnG,MAAO,IAAM6E,EAAK,MAClB,MAAO,IAAMA,EAAK,MAClB,IAAK,IAAMA,EAAK,IAChB,IAAK,IAAMA,EAAK,IAChB,MAAO,IAAMA,EAAK,MAClB,OAAQ,IAAMA,EAAK,OACnB,MAAO,IAAMA,EAAK,MAClB,OAAQ,IAAMA,EAAK,OACnB,KAAM,IAAMA,EAAK,IACnB,EACIA,EAAO,CACT,KAAO,GAAM,EAAE,SAAW,EAAE,MAAQ,WAAa,EAAE,MAAQ,OAC3D,MAAQ,GAAM,EAAE,UAAY,EAAE,MAAQ,QACtC,IAAM,GAAM,EAAE,QAAU,EAAE,MAAQ,MAClC,KAAO,GAAM,EAAE,SAAW,EAAE,MAAQ,QAAU,EAAE,MAAQ,UACxD,MAAQ,GAAM,EAAE,IAAI,WAAW,OAAO,EACtC,MAAQ,GAAM,EAAE,MAAQ,QACxB,IAAM,GAAM,EAAE,IAAI,WAAW,KAAK,EAClC,IAAM,GAAM,EAAE,MAAQ,MACtB,MAAQ,GAAM,EAAE,MAAQ,QAAU,EAAE,MAAQ,SAAW,EAAE,MAAQ,IACjE,OAAS,GAAM,EAAE,MAAQ,UAAY,EAAE,MAAQ,YAC/C,MAAQ,GAAM,OAAO,KAAK,EAAE,GAAG,EAC/B,OAAS,GAAM,YAAY,KAAK,EAAE,GAAG,EACrC,KAAO,GAAM,OAAO,KAAK,EAAE,GAAG,CAChC,EACIH,GAAW,CAACvH,EAAIsH,IAAU,CAC5B,IAAIK,EAAOlC,EAASmC,EAASpH,GAAM,CACjCmH,EAAQ,GACR,WAAW,IAAM,CAEf,GADAA,EAAQ,GACJlC,EAAS,OAAOA,EAAU,GAAOmC,EAAMpH,CAAC,EAAGR,EAAGQ,CAAC,CACrD,EAAG8G,CAAK,CACV,EACA,OAAQ9G,GACFmH,EAAclC,EAAU,IAC5BmC,EAAMpH,CAAC,EACAR,EAAGQ,CAAC,EAEf,EACIiH,GAAW,CAACzH,EAAIwH,IAAS,CAC3B,IAAIK,EACJ,OAAQrH,GAAM,CACZ,aAAaqH,CAAO,EACpBA,EAAU,WAAW,IAAM,CACzBA,EAAU,KACV7H,EAAGQ,CAAC,CACN,EAAGgH,CAAI,CACT,CACF,EACIxB,EAAO,CAAClD,EAAIH,EAAMjD,IAAM,CACtBA,GAAK,MAAQA,IAAM,GAAOoD,EAAG,gBAAgBH,CAAI,EAChDG,EAAG,aAAaH,EAAMjD,IAAM,GAAO,GAAK,OAAOA,GAAM,UAAY,OAAOA,GAAM,SAAWA,EAAI,EAAE,CACtG,EACIwG,EAAY4B,GACPA,EAAI,QAAQ,mCAAoC,CAACC,EAAOlG,KAAOA,EAAI,IAAM,IAAMkG,EAAM,YAAY,CAAC,EAI3GrF,EAAI,QAAS,CAACI,EAAIxB,EAAOU,IAAS,CAChC,MAAMgB,EAASF,EAAG,OAAS,QAAUA,EAAG,OAAS,GAAMX,GAAUW,EAAG,aAAa,QAASA,EAAG,MAAQX,GAAgB,EAAU,EAAIW,EAAG,UAAY,YAAcA,EAAG,OAAS,QAAUA,EAAG,OAAS,GAAK,CAACX,EAAO6F,EAAMC,KAElND,EAAOlF,EAAG,eAAgBmF,EAAKnF,EAAG,aAAcA,EAAG,aAAa,QAASA,EAAG,MAAQX,GAAgB,EAAU,EAAG6F,GAAQlF,EAAG,kBAAkBkF,EAAMC,CAAE,GACrJnF,EAAG,OAAS,WAAcX,IAAWW,EAAG,QAAUX,EAAO6D,EAAKlD,EAAI,UAAWX,CAAK,GAAKW,EAAG,OAAS,aAAgBX,GAAU,CAC/H,QAAS+F,KAAKpF,EAAG,QACfoF,EAAE,OAAS/F,EAAQ+F,EAAE,aAAa,WAAY,EAAE,EAAIA,EAAE,gBAAgB,UAAU,EAClFpF,EAAG,MAAQX,CACb,EAAIW,EAAG,OAAS,kBAAqBX,GAAU,CAC7C,QAAS+F,KAAKpF,EAAG,QAASoF,EAAE,gBAAgB,UAAU,EACtD,QAASxI,KAAKyC,EAAOW,EAAG,cAAc,WAAWpD,CAAC,IAAI,EAAE,aAAa,WAAY,EAAE,CACrF,EAAKyC,GAAUW,EAAG,MAAQX,EAC1B,GAAI,CACF,MAAMF,EAAOF,EAAOC,CAAI,EAClBmG,EAAerF,EAAG,OAAS,WAAa,IAAMb,EAAKX,EAAOwB,EAAG,OAAO,EAAIA,EAAG,OAAS,kBAAoB,IAAMb,EAAKX,EAAO,CAAC,GAAGwB,EAAG,eAAe,EAAE,IAAKoF,GAAMA,EAAE,KAAK,CAAC,EAAI,IAAMjG,EAAKX,EAAOwB,EAAG,cAAgB,EAAI,KAAOA,EAAG,KAAK,EACvOA,EAAG,QAAUA,EAAG,SAAWqF,EACvBrF,EAAG,MAAM,WAAW,QAAQ,IAC9B,IAAI,iBAAiBqF,CAAY,EAAE,QAAQrF,EAAI,CAAE,UAAW,GAAM,QAAS,GAAM,WAAY,EAAK,CAAC,EACnGwB,EAAaxB,EAAIxB,CAAK,GAExBY,EAAMF,CAAI,EAAEV,CAAK,GAAK6G,EAAa,CACrC,MAAQ,CACR,CACA,OAAOnF,CACT,CAAC,EAGDN,EAAI,KAAOnB,GAAO6G,GAAOA,CAAE,EAG3B1F,EAAI,OAASI,GAAQX,GAAU,CAC7B,QAAS8D,KAAO9D,EAAO6D,EAAKlD,EAAI,QAAUoD,EAASD,CAAG,EAAG9D,EAAM8D,CAAG,GAAK,KAAO,KAAO9D,EAAM8D,CAAG,EAAI,EAAE,CACtG,CAAC,EAGDvD,EAAI,OAASI,GAAQX,GAAU,CAC7B,QAAS8D,KAAO9D,EAAOW,EAAG,QAAQmD,CAAG,EAAI9D,EAAM8D,CAAG,CACpD,CAAC,EAGD3B,EAAa,IAAI,CAAE,QAAUtC,GAASsC,EAAa,YAAY,gCAAgCtC,CAAI,KAAK,CAAE,CAAC,EAC3G,IAAIqG,GAAgB/D,EACpB,OACE+D,MAAiB",
|
|
6
|
+
"names": ["current", "signal", "v", "s", "obs", "val", "sub", "effect", "fn", "teardown", "fx", "deps", "prev", "dep", "computed", "c", "e", "batch", "untracked", "use", "_signals", "_change", "_stash", "store", "values", "parent", "list", "signals", "_len", "stash", "state", "_", "k", "set", "descs", "lastProp", "mut", "i", "cur", "setter", "expr", "set2", "parse", "value", "store_default", "_dispose", "_state", "_on", "_off", "directive", "dir", "name", "create", "p", "el", "name2", "update", "evaluate", "sprae", "offs", "init", "el2", "attrs", "dir2", "prefix", "child", "off", "f", "compile", "memo", "err", "frag", "tpl", "content", "attributes", "ref", "childNodes", "a", "core_default", "_prevIf", "holder", "next", "curEl", "ifEl", "elseEl", "newEl", "itemVar", "idxVar", "keys2", "items", "prevl", "_a", "_b", "newItems", "newl", "idx", "scope", "planned", "rootState", "clsx", "cls", "v2", "initStyle", "target", "attr", "key", "dashcase", "ctxs", "ctx", "mod", "param", "mods", "addListener", "evt", "target2", "test", "defer", "stop", "prevent", "immediate", "opts", "cb", "error", "startFn", "nextFn", "nextListener", "limit", "throttle", "wait", "debounce", "keys", "pause", "block", "timeout", "str", "match", "from", "to", "o", "handleChange", "_2", "sprae_default"]
|
|
7
7
|
}
|
package/dist/sprae.umd.js
CHANGED
|
@@ -64,7 +64,17 @@ var init_signal = __esm({
|
|
|
64
64
|
});
|
|
65
65
|
|
|
66
66
|
// store.js
|
|
67
|
-
var
|
|
67
|
+
var store_exports = {};
|
|
68
|
+
__export(store_exports, {
|
|
69
|
+
_change: () => _change,
|
|
70
|
+
_signals: () => _signals,
|
|
71
|
+
_stash: () => _stash,
|
|
72
|
+
default: () => store_default,
|
|
73
|
+
list: () => list,
|
|
74
|
+
setter: () => setter,
|
|
75
|
+
store: () => store
|
|
76
|
+
});
|
|
77
|
+
var _signals, _change, _stash, store, list, mut, set, setter, store_default;
|
|
68
78
|
var init_store = __esm({
|
|
69
79
|
"store.js"() {
|
|
70
80
|
init_signal();
|
|
@@ -76,13 +86,16 @@ var init_store = __esm({
|
|
|
76
86
|
if (!values) return values;
|
|
77
87
|
if (values[_signals] || values[Symbol.toStringTag]) return values;
|
|
78
88
|
if (values.constructor !== Object) return Array.isArray(values) ? list(values) : values;
|
|
79
|
-
let signals =
|
|
80
|
-
|
|
81
|
-
|
|
89
|
+
let signals = Object.create(parent?.[_signals] || {}), _len = signal(Object.keys(values).length), stash;
|
|
90
|
+
let state = new Proxy(signals, {
|
|
91
|
+
get: (_, k) => k === _change ? _len : k === _signals ? signals : k === _stash ? stash : k in signals ? signals[k]?.valueOf() : globalThis[k],
|
|
92
|
+
set: (_, k, v, s) => k === _stash ? (stash = v, 1) : (s = k in signals, set(signals, k, v), s || ++_len.value),
|
|
82
93
|
// bump length for new signal
|
|
83
94
|
deleteProperty: (_, k) => (signals[k] && (signals[k][Symbol.dispose]?.(), delete signals[k], _len.value--), 1),
|
|
84
95
|
// subscribe to length when object is spread
|
|
85
|
-
ownKeys: () => (_len.value, Reflect.ownKeys(signals))
|
|
96
|
+
ownKeys: () => (_len.value, Reflect.ownKeys(signals)),
|
|
97
|
+
has: (_) => true
|
|
98
|
+
// sandbox prevents writing to global
|
|
86
99
|
}), descs = Object.getOwnPropertyDescriptors(values);
|
|
87
100
|
for (let k in values) {
|
|
88
101
|
if (descs[k]?.get)
|
|
@@ -131,10 +144,6 @@ var init_store = __esm({
|
|
|
131
144
|
};
|
|
132
145
|
setter = (expr, set2 = parse(`${expr}=${_stash}`)) => (state, value) => (state[_stash] = value, // save value to stash
|
|
133
146
|
set2(state));
|
|
134
|
-
ensure = (state, expr, name = expr.match(/^\w+(?=\s*(?:\.|\[|$))/)) => {
|
|
135
|
-
var _a, _b;
|
|
136
|
-
return name && ((_a = state[_signals])[_b = name[0]] ?? (_a[_b] = null));
|
|
137
|
-
};
|
|
138
147
|
store_default = store;
|
|
139
148
|
}
|
|
140
149
|
});
|
|
@@ -150,17 +159,19 @@ var init_core = __esm({
|
|
|
150
159
|
_on = Symbol("on");
|
|
151
160
|
_off = Symbol("off");
|
|
152
161
|
directive = {};
|
|
153
|
-
dir = (name, create, p = parse) => directive[name] = (el, expr, state, name2, update, evaluate) => (
|
|
162
|
+
dir = (name, create, p = parse) => directive[name] = (el, expr, state, name2, update, evaluate) => (update = create(el, state, expr, name2), evaluate = p(expr), () => update(evaluate(state)));
|
|
154
163
|
sprae = (el = document.body, values) => {
|
|
155
164
|
if (el[_state]) return Object.assign(el[_state], values);
|
|
156
|
-
let state = store(values || {}), offs = [], fx = []
|
|
165
|
+
let state = store(values || {}), offs = [], fx = [];
|
|
166
|
+
let init = (el2, attrs = el2.attributes) => {
|
|
157
167
|
if (attrs) for (let i = 0; i < attrs.length; ) {
|
|
158
168
|
let { name, value } = attrs[i], update, dir2;
|
|
159
169
|
if (name.startsWith(prefix)) {
|
|
160
170
|
el2.removeAttribute(name);
|
|
161
171
|
for (dir2 of name.slice(prefix.length).split(":")) {
|
|
162
172
|
update = (directive[dir2] || directive.default)(el2, value, state, dir2);
|
|
163
|
-
fx.push(update)
|
|
173
|
+
fx.push(update);
|
|
174
|
+
offs.push(effect(update));
|
|
164
175
|
if (el2[_state] === null) return;
|
|
165
176
|
}
|
|
166
177
|
} else i++;
|
|
@@ -184,7 +195,13 @@ var init_core = __esm({
|
|
|
184
195
|
} catch (e) {
|
|
185
196
|
err(e, dir2, expr);
|
|
186
197
|
}
|
|
187
|
-
return memo[expr] =
|
|
198
|
+
return memo[expr] = (s) => {
|
|
199
|
+
try {
|
|
200
|
+
return fn(s);
|
|
201
|
+
} catch (e) {
|
|
202
|
+
err(e, dir2, expr);
|
|
203
|
+
}
|
|
204
|
+
};
|
|
188
205
|
};
|
|
189
206
|
memo = {};
|
|
190
207
|
err = (e, dir2 = "", expr = "") => {
|
|
@@ -311,8 +328,9 @@ var init_each = __esm({
|
|
|
311
328
|
var init_ref = __esm({
|
|
312
329
|
"directive/ref.js"() {
|
|
313
330
|
init_core();
|
|
331
|
+
init_signal();
|
|
314
332
|
init_store();
|
|
315
|
-
dir("ref", (el, state, expr
|
|
333
|
+
dir("ref", (el, state, expr) => typeof parse(expr)(state) == "function" ? (v) => v.call(null, el) : (setter(expr)(state, el), (_) => _));
|
|
316
334
|
}
|
|
317
335
|
});
|
|
318
336
|
|
|
@@ -320,8 +338,13 @@ var init_ref = __esm({
|
|
|
320
338
|
var init_with = __esm({
|
|
321
339
|
"directive/with.js"() {
|
|
322
340
|
init_core();
|
|
341
|
+
init_signal();
|
|
323
342
|
init_store();
|
|
324
|
-
dir("with", (el, rootState, state) => (state = null, (values) =>
|
|
343
|
+
dir("with", (el, rootState, state) => (state = null, (values) => !state ? (
|
|
344
|
+
// NOTE: we force untracked because internal directives can eval outside of effects (like ref etc) that would cause unwanted subscribe
|
|
345
|
+
// FIXME: since this can be async effect, we should create & sprae it in advance.
|
|
346
|
+
untracked(() => core_default(el, state = store_default(values, rootState)))
|
|
347
|
+
) : core_default(el, values)));
|
|
325
348
|
}
|
|
326
349
|
});
|
|
327
350
|
|
|
@@ -354,7 +377,6 @@ var init_class = __esm({
|
|
|
354
377
|
for (let cls of cur = clsx) el.classList.add(cls);
|
|
355
378
|
})
|
|
356
379
|
);
|
|
357
|
-
directive.className = directive.class;
|
|
358
380
|
}
|
|
359
381
|
});
|
|
360
382
|
|
|
@@ -528,6 +550,7 @@ var init_value = __esm({
|
|
|
528
550
|
"directive/value.js"() {
|
|
529
551
|
init_core();
|
|
530
552
|
init_core();
|
|
553
|
+
init_signal();
|
|
531
554
|
init_store();
|
|
532
555
|
init_default();
|
|
533
556
|
dir("value", (el, state, expr) => {
|
|
@@ -542,7 +565,6 @@ var init_value = __esm({
|
|
|
542
565
|
for (let o of el.options) o.removeAttribute("selected");
|
|
543
566
|
for (let v of value) el.querySelector(`[value="${v}"]`).setAttribute("selected", "");
|
|
544
567
|
} : (value) => el.value = value;
|
|
545
|
-
ensure(state, expr);
|
|
546
568
|
try {
|
|
547
569
|
const set2 = setter(expr);
|
|
548
570
|
const handleChange = el.type === "checkbox" ? () => set2(state, el.checked) : el.type === "select-multiple" ? () => set2(state, [...el.selectedOptions].map((o) => o.value)) : () => set2(state, el.selectedIndex < 0 ? null : el.value);
|
|
@@ -551,6 +573,7 @@ var init_value = __esm({
|
|
|
551
573
|
new MutationObserver(handleChange).observe(el, { childList: true, subtree: true, attributes: true });
|
|
552
574
|
core_default(el, state);
|
|
553
575
|
}
|
|
576
|
+
parse(expr)(state) ?? handleChange();
|
|
554
577
|
} catch {
|
|
555
578
|
}
|
|
556
579
|
return update;
|
|
@@ -614,7 +637,9 @@ var init_sprae = __esm({
|
|
|
614
637
|
});
|
|
615
638
|
|
|
616
639
|
// <stdin>
|
|
617
|
-
|
|
640
|
+
var sprae2 = (init_sprae(), __toCommonJS(sprae_exports)).default;
|
|
641
|
+
sprae2.store = (init_store(), __toCommonJS(store_exports)).default;
|
|
642
|
+
module.exports = sprae2;
|
|
618
643
|
;if (typeof module.exports == "object" && typeof exports == "object") {
|
|
619
644
|
var __cp = (to, from, except, desc) => {
|
|
620
645
|
if ((from && typeof from === "object") || typeof from === "function") {
|