jq79 0.4.3 → 0.4.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/dist/jq79.cjs +12 -10
- package/dist/jq79.cjs.map +1 -1
- package/dist/jq79.global.js +12 -10
- package/dist/jq79.global.js.map +1 -1
- package/dist/jq79.js +12 -10
- package/dist/jq79.js.map +1 -1
- package/package.json +1 -1
- package/src/jq79.ts +148 -9
package/dist/jq79.cjs
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
var
|
|
2
|
-
`,n);return e===-1?t.length:e},
|
|
3
|
-
`)return e;if(
|
|
4
|
-
`){let
|
|
5
|
-
`||i===";"||i==="}"?
|
|
6
|
-
`||
|
|
7
|
-
`||l===";"||l==="}"?
|
|
8
|
-
`)},
|
|
9
|
-
|
|
1
|
+
var G=Object.defineProperty;var Vt=Object.getOwnPropertyDescriptor;var Qt=Object.getOwnPropertyNames;var Yt=Object.prototype.hasOwnProperty;var te=(t,n,e)=>n in t?G(t,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[n]=e;var ee=(t,n)=>{for(var e in n)G(t,e,{get:n[e],enumerable:!0})},ne=(t,n,e,s)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of Qt(n))!Yt.call(t,o)&&o!==e&&G(t,o,{get:()=>n[o],enumerable:!(s=Vt(n,o))||s.enumerable});return t};var se=t=>ne(G({},"__esModule",{value:!0}),t);var v=(t,n,e)=>te(t,typeof n!="symbol"?n+"":n,e);var Ve={};ee(Ve,{$:()=>F,$$:()=>Z,$create:()=>K,$reactive:()=>B,Component79:()=>k,enableHotReload:()=>Xt,hotUpdate:()=>Kt,parseComponent:()=>Je,renderComponent:()=>Me});module.exports=se(Ve);function F(t,n){return typeof t=="string"?document.querySelector(t):t.querySelector(n)}function Z(t,n){return Array.from(typeof t=="string"?document.querySelectorAll(t):t.querySelectorAll(n))}var K=(t,n={})=>{let e=document.createElement(t);for(let[s,o]of Object.entries(n))if(s==="className")e.className=Array.isArray(o)?o.join(" "):o;else if(s==="textContent")e.textContent=o;else if(s==="children")for(let r of o)e.appendChild(r);else e.setAttribute(s,o);return e},oe=new Set(["a","b","i","em","strong","p","br","ul","ol","li","blockquote","code","pre","span","div","h1","h2","h3","h4","h5","h6","img"]),bt={a:new Set(["href","title"]),img:new Set(["src","alt"]),"*":new Set(["class"])},re=new Set(["http:","https:","mailto:"]);function ie(t){try{let n=new URL(t,"https://example.com");return re.has(n.protocol)}catch{return!1}}var le={"https:":"443","http:":"80"};function ce(t){let n=t.trim().toLowerCase().match(/^([a-z\d*][a-z\d.*-]*?)(?::(\d{1,5}|\*))?$/);if(!n)return null;let[,e,s]=n,o=e.split(".");return o.some(i=>i!=="*"&&!/^[a-z\d-]+$/.test(i))?null:{host:new RegExp(`^${o.map(i=>i==="*"?"[^.]+":i).join("\\.")}$`),port:!s||s==="*"?null:s}}var wt=t=>{let n=(Array.isArray(t)?t:t.split(",")).map(ce).filter(e=>e!==null);return e=>{let s=e.hostname.toLowerCase(),o=e.port||le[e.protocol]||"";return n.some(r=>r.host.test(s)&&(r.port===null||r.port===o))}};function ae(t,n,e,s){try{return!!t(new URL(n,document.baseURI),e,s)}catch{return!1}}var Et=512;function St(t,n,e,s){if(e>Et)throw new RangeError(`jq79: sanitizeHTML input nests deeper than ${Et} elements`);for(let o of Array.from(t.childNodes))if(o.nodeType===Node.ELEMENT_NODE){let r=fe(o,e,s);r&&n.appendChild(r)}else o.nodeType===Node.TEXT_NODE&&n.appendChild(o.cloneNode())}function fe(t,n,e){let s=t.tagName.toLowerCase();if(!oe.has(s))return null;let o=document.createElement(s);for(let r of Array.from(t.attributes)){let i=r.name.toLowerCase(),l=bt[s]?.has(i),a=bt["*"]?.has(i);!l&&!a||(i==="href"||i==="src")&&(!ie(r.value)||e&&!ae(e,r.value,s,i))||o.setAttribute(i,r.value)}return s==="a"&&o.setAttribute("rel","noopener noreferrer"),St(t,o,n+1,e),o}function $t(t,n){let e=new DOMParser().parseFromString(t,"text/html"),s=document.createElement("div");return St(e.body,s,0,n?.allowUrl),s.innerHTML}var ue=(t,n)=>n.split(".").reduce((e,s)=>e?.[s],t),Rt=t=>{if(Array.isArray(t))return!0;let n=Object.getPrototypeOf(t);return n===Object.prototype||n===null},xt=(t,n,e)=>{Object.entries(t).forEach(([s,o])=>{let r=n?`${n}.${s}`:s;o&&typeof o=="object"&&Rt(o)?xt(o,r,e):e(r,o)})},de=(t,n)=>t===n||t.startsWith(`${n}.`)||n.startsWith(`${t}.`),ot=Symbol("jq79.raw"),X=t=>{let n=t;for(;n!==null&&typeof n=="object"&&n[ot];)n=n[ot];return n},Tt=Symbol("jq79.store"),H=t=>t!==null&&typeof t=="object"&&t[Tt]===!0,I=[],q=t=>{I.push(new Set);try{return t()}finally{I.pop()}},B=t=>{let n=new Map,e=new Set,s=new Set,o=new WeakMap,r=Object.create(null),i=(c,f,d=!1)=>{n.get(c)?.forEach(g=>g(f,c)),e.forEach(g=>g(c,f)),s.forEach(g=>{(d||Array.from(g.deps).some(A=>de(A,c)))&&g.run()})},l=c=>c!==null&&typeof c=="object"&&Rt(c),a=new Map,p=(c,f)=>{let d=a.get(f);d?.store!==c&&(d?.unsubscribe(),a.set(f,{store:c,unsubscribe:c.$onAny((g,A)=>i(`${f}.${g}`,A))}))},u=c=>{a.get(c)?.unsubscribe(),a.delete(c)},y=(c,f)=>{let d=o.get(c);if(d)return d;let g=null,A=new Proxy(c,{has(S,m){return Reflect.has(S,m)||typeof m=="string"&&g?.has(m)===!0},get(S,m,b){if(m===ot)return S;if(m===Tt)return f==="";if(typeof m!="string")return Reflect.get(S,m,b);if(f===""&&m in r)return r[m];let R=f?`${f}.${m}`:m;I[I.length-1]?.add(R);let E=Reflect.get(S,m,b);if(H(E))return p(E,R),E;let T=X(E);return l(T)?y(T,R):T},set(S,m,b,R){if(R!==A&&!Object.prototype.hasOwnProperty.call(S,m))return Reflect.set(S,m,b,R);let E=f?`${f}.${m}`:m,T=H(b)?b:X(b),L=!Object.prototype.hasOwnProperty.call(S,m);if(!L&&Object.is(S[m],T)&&(T===null||typeof T!="object"))return!0;S[m]=T,g?.delete(m),H(T)?p(T,E):u(E);let _=H(T)||!l(T)?T:y(T,E);return i(E,_,L),!0},deleteProperty(S,m){if(typeof m!="string")return Reflect.deleteProperty(S,m);let b=Object.prototype.hasOwnProperty.call(S,m),R=Reflect.deleteProperty(S,m);if(R&&b){let E=f?`${f}.${m}`:m;(g??(g=new Set)).add(m),u(E),i(E,void 0)}return R}});return o.set(c,A),A},w=y(X(t),"");Object.entries(X(t)).forEach(([c,f])=>{H(f)&&p(f,c)});let C=(c,f,{immediate:d=!1}={})=>(n.has(c)||n.set(c,new Set),n.get(c).add(f),d&&f(ue(w,c),c),()=>n.get(c)?.delete(f)),h=(c,{immediate:f=!1}={})=>(e.add(c),f&&xt(w,"",(d,g)=>c(d,g)),()=>e.delete(c)),$=c=>{let f=!1,d=!1,g={deps:new Set,run:()=>{if(f){d=!0;return}f=!0;try{let A=0;do{d=!1;let S=new Set;I.push(S);try{c()}finally{I.pop(),g.deps=S}}while(d&&++A<100);d&&console.error("jq79: an effect re-woke itself 100 times in a row (it writes what it reads); giving up on it settling")}finally{f=!1}}};return s.add(g),g.run(),()=>{s.delete(g)}},x=()=>{a.forEach(({unsubscribe:c})=>c()),a.clear()};return r.$on=C,r.$onAny=h,r.$effect=$,r.$dispose=x,w},W=t=>{let n=[],e=[];return{effect:s=>{n.push(t.$effect(s)),e.push(s)},onDispose:s=>{n.push(s)},refresh:()=>{e.forEach(s=>s())},dispose:()=>{n.splice(0).forEach(s=>s()),e.length=0}}};var Ct=/(?:let|var|const)(?:\s+(?=[A-Za-z_$])|\s*(?=[{[]))/y,At=/\$:\s*/y,V=/import(?=\s*\()/y,Nt=/\$:\s*([A-Za-z_$][\w$]*)\s*=(?!=)/y,M=(t,n)=>{let e=t[n],s=n+1;for(;s<t.length;){if(t[s]==="\\"){s+=2;continue}if(t[s]===e)return s+1;s++}return t.length},O=(t,n)=>{let e=t.indexOf(`
|
|
2
|
+
`,n);return e===-1?t.length:e},j=(t,n)=>{let e=t.indexOf("*/",n+2);return e===-1?t.length:e+2},J=(t,n)=>{let e=n;for(;e<t.length;){if(/\s/.test(t[e])){e++;continue}if(t[e]==="/"&&t[e+1]==="/"){e=O(t,e);continue}if(t[e]==="/"&&t[e+1]==="*"){e=j(t,e);continue}break}return e},pe=new Set(["return","typeof","case","in","instanceof","new","delete","void","do","else","yield","await"]),D=(t,n)=>{let e=n-1;for(;e>=0;){let o=t[e];if(/\s/.test(o)){e--;continue}if(o==="/"&&t[e-1]==="*"){let r=t.lastIndexOf("/*",e-2);if(r===-1)return!0;e=r-1;continue}break}if(e<0)return!0;let s=t[e];if(/[\w$]/.test(s)){let o=e;for(;o>0&&/[\w$]/.test(t[o-1]);)o--;return pe.has(t.slice(o,e+1))}return(s==="+"||s==="-")&&t[e-1]===s?!1:!")]}\"'`.".includes(s)},P=(t,n)=>{let e=n+1,s=!1;for(;e<t.length;){let o=t[e];if(o==="\\"){e+=2;continue}if(o===`
|
|
3
|
+
`)return e;if(o==="[")s=!0;else if(o==="]")s=!1;else if(o==="/"&&!s){for(e++;e<t.length&&/[a-z]/i.test(t[e]);)e++;return e}e++}return t.length},he=/^(\?\.|\?\?|&&|\|\||\*\*|[.,+\-*/%&|^<>=?:([])/,me=(t,n)=>{let e=n-1;for(;e>=0;){let s=t[e];if(/\s/.test(s)){e--;continue}if(s==="/"&&t[e-1]==="*"){let o=t.lastIndexOf("/*",e-2);if(o===-1)return"";e=o-1;continue}return s}return""},vt=(t,n)=>{let e=0,s=n;for(;s<t.length;){let o=t[s];if(o==="'"||o==='"'||o==="`"){s=M(t,s);continue}if(o==="/"&&t[s+1]==="/"){s=O(t,s);continue}if(o==="/"&&t[s+1]==="*"){s=j(t,s);continue}if(o==="/"&&D(t,s)){s=P(t,s);continue}if("([{".includes(o))e++;else if(")]}".includes(o))e--;else{if(e<=0&&o===";")return s;if(e<=0&&o===`
|
|
4
|
+
`){let r=J(t,s+1);if(!(r<t.length&&(he.test(t.slice(r,r+2))||[",","="].includes(me(t,s)))))return s;s=r;continue}}s++}return t.length},ge=t=>{let n=[],e=0,s=0,o=0,r=l=>{n.push({raw:t.slice(s,l),codeEnd:Math.max(0,o-s)}),s=l+1,o=s},i=0;for(;i<t.length;){let l=t[i];if(l==="'"||l==='"'||l==="`"){i=M(t,i),o=i;continue}if(l==="/"&&t[i+1]==="/"){i=O(t,i);continue}if(l==="/"&&t[i+1]==="*"){i=j(t,i);continue}if(l==="/"&&D(t,i)){i=P(t,i),o=i;continue}if("([{".includes(l))e++;else if(")]}".includes(l))e--;else if(l===","&&e<=0){r(i),i++;continue}/\s/.test(l)||(o=i+1),i++}return r(t.length),n},rt=t=>{let n=t.trim();if(!n.startsWith("{")&&!n.startsWith("["))return it.test(n)?[n]:[];let e=[];for(let s of ct(n.slice(1,Lt(n)))){s.startsWith("...")&&(s=s.slice(3).trim());let o=at(s);if(o!==-1&&(s=s.slice(0,o).trim()),n.startsWith("{")){let r=lt(s,":");if(r!==-1){e.push(...rt(s.slice(r+1)));continue}}e.push(...rt(s))}return e},ye=t=>{let n=[],e=ge(t).map(({raw:r,codeEnd:i})=>{let l=r.match(/^\s*/)[0];if(i<=l.length)return{text:r,empty:!0};let a=r.slice(l.length,i),p=r.slice(i),u=at(a),y=(u===-1?a:a.slice(0,u)).trim(),w=a[0]==="{"||a[0]==="[";w?n.push(...rt(y)):it.test(y)&&n.push(y);let C=Y(a).code;return{text:`${l}${w?`(${C})`:C}${p}`,empty:!1}}),s=[];for(;e.length&&e[e.length-1].empty;)s.unshift(e.pop().text);let o=e.map(r=>r.text).join(",")+s.join("");return o.trimStart().startsWith("(")&&(o=`;${o}`),{vars:n,code:o}},Y=t=>{let n=[],e="",s=0,o=0,r=!0;for(;s<t.length;){let i=t[s],l=t[s+1];if(i==="'"||i==='"'||i==="`"){let a=M(t,s);e+=t.slice(s,a),s=a,r=!1;continue}if(i==="/"&&(l==="/"||l==="*")){let a=l==="/"?O(t,s):j(t,s);e+=t.slice(s,a),s=a;continue}if(i==="/"&&D(t,s)){let a=P(t,s);e+=t.slice(s,a),s=a,r=!1;continue}if(i==="i"&&(s===0||!/[\w$.]/.test(t[s-1]))&&(V.lastIndex=s,V.test(t))){e+="$__import",s+=6,r=!1;continue}if(o===0&&r){Ct.lastIndex=s;let a=Ct.exec(t);if(a){let u=s+a[0].length,y=vt(t,u),{vars:w,code:C}=ye(t.slice(u,y));n.push(...w),e+=C,s=y,r=!1;continue}At.lastIndex=s;let p=At.exec(t);if(p){Nt.lastIndex=s;let u=Nt.exec(t);u&&n.push(u[1]);let y=s+p[0].length,w=vt(t,y);e+=`$__effect(() => { ${Y(t.slice(y,w)).code} });`,s=w;continue}}"([{".includes(i)?o++:")]}".includes(i)&&(o=Math.max(0,o-1)),i===`
|
|
5
|
+
`||i===";"||i==="}"?r=!0:/\s/.test(i)||(r=!1),e+=i,s++}return{vars:n,code:e}},Q=/export\s+default(?![\w$])/y,_t=/import\s*(?:([\w$\s,{}*]+?)\s*from\s*)?(["'])([^"'\n]+)\2/y,be=t=>{let n=[],e=0,s=0;for(let o=0;o<=t.length;o++){let r=t[o];if(r==="{")e++;else if(r==="}")e--;else if(o===t.length||r===","&&e===0){let i=t.slice(s,o).trim();i&&n.push(i),s=o+1}}return n},Ee=(t,n,e)=>{let s=`await $__import(${JSON.stringify(n)})`;if(t===void 0)return s;let o=be(t),r=[],i=s;if(o.length>1){let l=`$__mod${e}`;r.push(`${l} = ${s}`),i=l}for(let l of o)l.startsWith("{")?r.push(`${l.replace(/\s+as\s+/g,": ")} = ${i}`):l.startsWith("*")?r.push(`${l.replace(/^\*\s*as\s+/,"")} = ${i}`):r.push(`${l} = $__default(${i})`);return`const ${r.join(", ")}`},it=/^[A-Za-z_$][\w$]*$/,Lt=t=>{let n=0,e=0;for(;e<t.length;){let s=t[e];if(s==="'"||s==='"'||s==="`"){e=M(t,e);continue}if(s==="/"&&t[e+1]==="/"){e=O(t,e);continue}if(s==="/"&&t[e+1]==="*"){e=j(t,e);continue}if(s==="/"&&D(t,e)){e=P(t,e);continue}if("([{".includes(s))n++;else if(")]}".includes(s)&&--n===0)return e;e++}return t.length},lt=(t,n)=>{let e=0,s=0;for(;s<t.length;){let o=t[s];if(o==="'"||o==='"'||o==="`"){s=M(t,s);continue}if(o==="/"&&t[s+1]==="/"){s=O(t,s);continue}if(o==="/"&&t[s+1]==="*"){s=j(t,s);continue}if(o==="/"&&o!==n&&D(t,s)){s=P(t,s);continue}if("([{".includes(o))e++;else if(")]}".includes(o))e--;else if(e===0&&o===n)return s;s++}return-1},ct=t=>{let n=[],e=0,s=0,o=0;for(;o<=t.length;){let r=t[o];if(r==="'"||r==='"'||r==="`"){o=M(t,o);continue}if(r==="/"&&t[o+1]==="/"){o=O(t,o);continue}if(r==="/"&&t[o+1]==="*"){o=j(t,o);continue}if(r==="/"&&D(t,o)){o=P(t,o);continue}if(r!==void 0&&"([{".includes(r))e++;else if(r!==void 0&&")]}".includes(r))e--;else if(o===t.length||r===","&&e===0){let i=t.slice(s,o).trim();i&&n.push(i),s=o+1}o++}return n},at=t=>{let n=0;for(;n<t.length;){let e=lt(t.slice(n),"=");if(e===-1)return-1;let s=n+e;if(t[s+1]!=="="&&t[s+1]!==">"&&t[s-1]!=="="&&t[s-1]!=="!")return s;n=s+1}return-1},ft=t=>{let n=(t??"").trim();if(!n.startsWith("{"))return null;let e=Lt(n);if(e>=n.length)return null;let s=[];for(let o of ct(n.slice(1,e))){if(o.startsWith("..."))continue;let r=at(o),i=r===-1?o:o.slice(0,r),l=r===-1?void 0:o.slice(r+1).trim(),a=lt(i,":"),p=(a===-1?i:i.slice(0,a)).trim();it.test(p)&&s.push(l===void 0?{name:p}:{name:p,default:l})}return s},we=t=>{let n=0,e=0,s=!0;for(;n<t.length;){let o=t[n];if(o==="'"||o==='"'||o==="`"){n=M(t,n),s=!1;continue}if(o==="/"&&t[n+1]==="/"){n=O(t,n);continue}if(o==="/"&&t[n+1]==="*"){n=j(t,n);continue}if(o==="/"&&D(t,n)){n=P(t,n),s=!1;continue}if(o==="e"&&e===0&&s&&(n===0||!/[\w$.]/.test(t[n-1]))){Q.lastIndex=n;let r=Q.exec(t);if(r)return n+r[0].length}"([{".includes(o)?e++:")]}".includes(o)&&(e=Math.max(0,e-1)),o===`
|
|
6
|
+
`||o===";"||o==="}"?s=!0:/\s/.test(o)||(s=!1),n++}return-1},Se=/^async(?![\w$])/,$e=/^function(?![\w$])\s*\*?\s*[A-Za-z_$][\w$]*|^function(?![\w$])\s*\*?/,Re=t=>{let n=we(t);if(n===-1)return null;let e=J(t,n),s=t.slice(e);Se.test(s)&&(e=J(t,e+5));let o=$e.exec(t.slice(e));if(o&&(e=J(t,e+o[0].length)),t[e]!=="(")return null;let r=0,i=e;for(;i<t.length;){let l=t[i];if(l==="'"||l==='"'||l==="`"){i=M(t,i);continue}if(l==="/"&&t[i+1]==="/"){i=O(t,i);continue}if(l==="/"&&t[i+1]==="*"){i=j(t,i);continue}if(l==="/"&&D(t,i)){i=P(t,i);continue}if("([{".includes(l))r++;else if(")]}".includes(l)&&--r===0)break;i++}return ct(t.slice(e+1,i))[0]??""},Ot=t=>{let n=Re(t);if(n===null)return null;let e=ft(n),s=e?.find(o=>o.name.startsWith("$"))?.name;if(s)throw new Error(`jq79: the factory signature is (props, ctx), so \`${s}\` can't be destructured from the first parameter. Write \`export default (props, { ${s} }) => \u2026\`, or \`_\` in place of props if the component takes none.`);return e},jt=t=>{let n="",e=0,s=0,o=!0,r=!1,i=0;for(;e<t.length;){let l=t[e],a=t[e+1],p=e===0||!/[\w$.]/.test(t[e-1]);if(l==="'"||l==='"'||l==="`"){let u=M(t,e);n+=t.slice(e,u),e=u,o=!1;continue}if(l==="/"&&(a==="/"||a==="*")){let u=a==="/"?O(t,e):j(t,e);n+=t.slice(e,u),e=u;continue}if(l==="/"&&D(t,e)){let u=P(t,e);n+=t.slice(e,u),e=u,o=!1;continue}if(l==="i"&&p){if(V.lastIndex=e,V.test(t)){n+="$__import",e+=6,o=!1;continue}if(s===0&&o){_t.lastIndex=e;let u=_t.exec(t);if(u){n+=Ee(u[1],u[3],i++),e+=u[0].length,o=!1;continue}}}if(l==="e"&&p&&s===0&&o){Q.lastIndex=e;let u=Q.exec(t);if(u){r=!0,n+="$__exports.default =",e+=u[0].length,o=!1;continue}}"([{".includes(l)?s++:")]}".includes(l)&&(s=Math.max(0,s-1)),l===`
|
|
7
|
+
`||l===";"||l==="}"?o=!0:/\s/.test(l)||(o=!1),n+=l,e++}return r?n:null};var It=t=>Object.fromEntries(Array.from(t.attributes).map(n=>[n.name,n.value])),Wt=t=>({tag:t.tagName.toLowerCase(),attrs:It(t),children:Array.from(t.childNodes).flatMap(n=>{if(n.nodeType===Node.TEXT_NODE){let e=n.textContent??"";return e?[e]:[]}return n.nodeType===Node.ELEMENT_NODE?[Wt(n)]:[]})}),Mt=new Map,Ht=(t,n)=>{let e=`${n.join(",")}|${t}`,s=Mt.get(e);if(s===void 0){try{s=new Function("$scope",...n,`with ($scope) { return (${t}
|
|
8
|
+
); }`)}catch{s=null}Mt.set(e,s)}return s},N=(t,n,e)=>{let s=Ht(t,e?Object.keys(e):[]);if(s)try{return s(n,...e?Object.values(e):[])}catch{return}},xe=(t,n)=>t.replace(/{{\s*([\s\S]+?)\s*}}/g,(e,s)=>N(s,n)??""),qt=new Set([":attrs",":class",":value",":checked",":selected",":if",":elseif",":else",":each",":key",":with",":text",":html",":html.allowed"]),Te=/^\s*\(?\s*(\w+)\s*(?:,\s*(\w+))?\s*\)?\s+in\s+([\s\S]+)$/,Ce=(t,n,e,s)=>{let[o,...r]=n.slice(1).split("."),i=new Set(r);t.addEventListener(o,l=>{if(i.has("self")&&l.target!==t)return;i.has("prevent")&&l.preventDefault(),i.has("stop")&&l.stopPropagation();let a=N(e,s,{$event:l});typeof a=="function"&&a.call(t,l)},{once:i.has("once"),capture:i.has("capture")})},Ae=(t,n,e,s)=>{let[o,...r]=n.slice(1).split("."),i=new Set(r),l=a=>{i.has("prevent")&&a.preventDefault(),i.has("stop")&&a.stopPropagation(),i.has("once")&&t.off(o,l),q(()=>{let p=N(e,s,{$event:a});typeof p=="function"&&p(a)})};t.on(o,l)},tt=t=>t.replace(/-(\w)/g,(n,e)=>e.toUpperCase()),dt=t=>t instanceof DocumentFragment?{first:t.firstChild,last:t.lastChild}:{first:t,last:t},et=({first:t,last:n})=>{for(let e=t;e;){let s=e===n?null:e.nextSibling;e.parentNode?.removeChild(e),e=s}},Ne=({first:t,last:n},e)=>{let s=e.nextSibling;for(let o=t;o;){let r=o===n?null:o.nextSibling;e.parentNode.insertBefore(o,s),o=r}},Dt=(t,n)=>{let e=n.replace(/-/g,"").toLowerCase();for(let s=t;s&&s!==Object.prototype;s=Object.getPrototypeOf(s))for(let o of Object.keys(s))if(/^[A-Z]/.test(o)&&o.replace(/-/g,"").toLowerCase()===e)return o;return null},Pt=(t,n,e,s,o)=>{let r=document.createComment(t),i=document.createComment(`/${t}`),l=document.createDocumentFragment();l.append(r,i);let a={},p={},u=[];Object.entries(n.attrs).forEach(([c,f])=>{if(!(c===mt||qt.has(c)))if(c.startsWith("@"))u.push([c,f]);else if(c===":model"||c.startsWith(":model.")){let d=c===":model"?"default":tt(c.slice(7));p[d]=f||(c===":model"?"model":d)}else if(c.startsWith(":")){let d=tt(c.slice(1));a[d]=f||d}else a[tt(c)]=JSON.stringify(f)});let y=c=>c==="default"?":model":`:model.${c}`,w=c=>c==="default"?"model":c,C=c=>`${c}
|
|
9
|
+
= $value`;Object.entries(p).forEach(([c,f])=>{let d=w(c);a[d]!==void 0&&console.warn(`jq79: <${n.tag}> binds prop "${d}" through both :${d} and ${y(c)} - ${y(c)} wins`),a[d]=f,Ht(C(f),["$value"])===null&&console.warn(`jq79: ${y(c)}="${f}" is not assignable - updates from <${n.tag}> will be dropped`)});let h=null,$=null,x=null;return s.effect(()=>{let c=N(t,e),f=c instanceof k?c:null;if(f===$||(x?.dispose(),x=null,h?.destroy(),h=null,$=f,!f))return;let d=new k({template:f.template,scripts:f.scripts,styles:f.styles,modules:f.modules,filename:f.filename});if(Object.keys(p).length){let m=new Set,b=(R,E)=>{m.has(R)||(m.add(R),console.warn(E))};d.on("model:update",(R,E)=>{if(E===null||typeof E!="object"){b("payload",`jq79: model:update expects a { name?, value } payload, got ${E===null?"null":typeof E}`);return}let T=E.name==null?"default":tt(String(E.name)),L=p[T];if(L===void 0){b(T,`jq79: <${n.tag}> has no ${y(T)} - bound: ${Object.keys(p).map(y).join(", ")}`);return}q(()=>N(C(L),e,{$value:E.value}))})}u.forEach(([m,b])=>Ae(d,m,b,e));let g=q(()=>Object.fromEntries(Object.entries(a).map(([m,b])=>[m,N(b,e)]))),A=document.createDocumentFragment();(o?d.renderShadow(g):d.render(g)).mount(A),i.parentNode.insertBefore(A,i);let S=W(e);Object.entries(a).forEach(([m,b])=>{S.effect(()=>{d.data[m]=N(b,e)})}),x=S,h=d}),s.onDispose(()=>{x?.dispose(),h?.destroy()}),l},ve=(t,n)=>{let e=()=>{let s=N(t,n);return s!==null&&typeof s=="object"?s:null};return new Proxy(n,{has(s,o){let r=e();return r!==null&&Reflect.has(r,o)||Reflect.has(s,o)},get(s,o){let r=e();return r!==null&&Reflect.has(r,o)?r[o]:Reflect.get(s,o)},set(s,o,r){let i=e();return i!==null&&Reflect.has(i,o)?(i[o]=r,!0):Reflect.set(s,o,r)}})},nt=t=>typeof t=="string"?t.split(/\s+/).filter(Boolean):Array.isArray(t)?t.flatMap(nt):t!==null&&typeof t=="object"?Object.entries(t).flatMap(([n,e])=>e?nt(n):[]):[],_e=t=>typeof t=="function"?(n,e,s)=>{try{return!!t(n,e,s)}catch{return!1}}:typeof t=="string"||Array.isArray(t)?wt(t):()=>!1,pt=(t,n,e,s)=>{let o=t.attrs[":with"],r=o!==void 0?ve(o,n):n,i=Dt(r,t.tag);if(i)return Pt(i,t,r,e,s);let l=document.createElement(t.tag);if(l instanceof HTMLUnknownElement||t.tag.includes("-")){let h=!1;e.effect(()=>{if(h)return;let $=Dt(r,t.tag);if(!$)return;h=!0;let x=Pt($,t,r,e,s),c=dt(x);e.onDispose(()=>et(c)),l.replaceWith(x)})}Object.entries(t.attrs).forEach(([h,$])=>{h.startsWith("@")?Ce(l,h,$,r):h===":model"||h.startsWith(":model.")?l instanceof HTMLUnknownElement||t.tag.includes("-")||console.warn(`jq79: ${h} on <${t.tag}> does nothing - :model binds component tags only (for now)`):qt.has(h)||l.setAttribute(h,$)});let a=t.attrs[":attrs"];if(a!==void 0){let h=[];e.effect(()=>{h.forEach(x=>l.removeAttribute(x));let $=N(a,r);h=$&&typeof $=="object"?Object.keys($):[],h.forEach(x=>{let c=$[x];c!=null&&c!==!1&&l.setAttribute(x,String(c))})})}let p=t.attrs[":class"];if(p!==void 0){let h=new Set(nt(t.attrs.class??"")),$=[];e.effect(()=>{let x=nt(N(p,r));$.forEach(c=>{!x.includes(c)&&!h.has(c)&&l.classList.remove(c)}),l.classList.add(...x),$=x})}let u=t.attrs[":text"],y=t.attrs[":html"],w=t.attrs[":html.allowed"];w!==void 0&&y===void 0&&console.warn("jq79: :html.allowed without :html on the same element does nothing"),u!==void 0?e.effect(()=>{l.textContent=String(N(u,r)??"")}):y!==void 0?e.effect(()=>{let h=w!==void 0?{allowUrl:_e(N(w,r))}:void 0;l.innerHTML=$t(String(N(y,r)??""),h)}):l.appendChild(ht(t.children,r,e,s));let C=t.attrs[":value"];return C!==void 0&&e.effect(()=>{let h=String(N(C,r)??"");l.value!==h&&(l.value=h)}),[":checked",":selected"].forEach(h=>{let $=t.attrs[h];if($===void 0)return;let x=h.slice(1);e.effect(()=>{l[x]=!!N($,r)})}),l},Le=(t,n,e,s)=>{let o=document.createComment("if"),r=document.createDocumentFragment();r.appendChild(o);let i=null,l=null,a=null;return e.effect(()=>{let p=t.find(y=>y.expr===void 0||N(y.expr,n))??null;if(p===l||(a?.dispose(),i&&et(i),i=null,l=p,!p))return;a=W(n);let u=pt(p.node,n,a,s);i=dt(u),o.parentNode.insertBefore(u,o.nextSibling)}),r},z=(t,n,e)=>{Object.defineProperty(t,n,{value:e,writable:!0,enumerable:!0,configurable:!0})},Oe=t=>{if(t===null||typeof t!="object"||Array.isArray(t))return!1;let n=Object.getPrototypeOf(t);return n===Object.prototype||n===null},je=(t,n,e,s)=>{let o=t.attrs[":each"].match(Te);if(!o)return document.createComment(`invalid :each expression "${t.attrs[":each"]}"`);let[,r,i,l]=o,a=t.attrs[":key"],{[":each"]:p,[":key"]:u,...y}=t.attrs,w={...t,attrs:y},C=document.createComment("each"),h=document.createDocumentFragment();h.appendChild(C),(":if"in t.attrs||":elseif"in t.attrs||":else"in t.attrs)&&console.warn("jq79: :if/:elseif/:else on a :each element is ignored; filter the list expression instead");let $=[],x=!1;return e.effect(()=>{let c=N(l,n),f=Array.isArray(c)?c.map((b,R)=>[R,b]):Oe(c)?Object.entries(c):[],d=new Map;$.forEach(b=>{let R=d.get(b.key);R?R.push(b):d.set(b.key,[b])});let g=new Set,A=[],S=f.map(([b,R],E)=>{let T=Object.create(n);z(T,r,R),i&&z(T,i,b),z(T,"$index",E);let L=a!==void 0?N(a,T):b;g.has(L)&&!x&&(x=!0,console.warn(`jq79: duplicate :key in :each "${t.attrs[":each"]}"; duplicates pair up by position`)),g.add(L);let _=d.get(L)?.shift();if(_&&Object.is(_.item,R))return _.scope.$index!==E&&A.push(_),z(_.scope,"$index",E),i&&z(_.scope,i,b),_;_&&(_.fx.dispose(),et(_.range));let yt=W(n),Jt=dt(pt(w,T,yt,s));return{key:L,item:R,scope:T,fx:yt,range:Jt}});d.forEach(b=>b.forEach(R=>{R.fx.dispose(),et(R.range)}));let m=C;S.forEach(b=>{m.nextSibling!==b.range.first&&Ne(b.range,m),m=b.range.last}),A.forEach(b=>q(()=>b.fx.refresh())),$=S}),h},ht=(t,n,e,s=!1)=>{let o=document.createDocumentFragment(),r=0;for(;r<t.length;){let i=t[r];if(typeof i=="string"){let l=document.createTextNode(i);i.includes("{{")&&e.effect(()=>{l.textContent=xe(i,n)}),o.appendChild(l),r++;continue}if(":each"in i.attrs){o.appendChild(je(i,n,e,s)),r++;continue}if(":if"in i.attrs){let l=[{expr:i.attrs[":if"],node:i}];r++;let a=u=>{let y=r;for(;y<t.length&&typeof t[y]=="string"&&!t[y].trim();)y++;let w=t[y];if(typeof w=="object"&&u in w.attrs)return r=y+1,w};for(let u=a(":elseif");u;u=a(":elseif"))l.push({expr:u.attrs[":elseif"],node:u});let p=a(":else");p&&l.push({node:p}),o.appendChild(Le(l,n,e,s));continue}o.appendChild(pt(i,n,e,s)),r++}return o},Me=(t,n,e=!1)=>ht(t.template,n,W(n),e),De=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),Pe=/<([A-Za-z][\w-]*)((?:"[^"]*"|'[^']*'|[^>"'])*?)\/>/g,Ue=/(<script[\s\S]*?<\/script\s*>|<style[\s\S]*?<\/style\s*>)/gi,ke=t=>t.split(Ue).map((n,e)=>e%2===1?n:n.replace(Pe,(s,o,r)=>De.has(o.toLowerCase())?s:`<${o}${r}></${o}>`)).join(""),mt="data-jq79",Fe=t=>{let n=2166136261;for(let e=0;e<t.length;e++)n=Math.imul(n^t.charCodeAt(e),16777619);return(n>>>0).toString(36)},Bt=(t,n)=>{t.forEach(e=>{typeof e!="string"&&(e.attrs[mt]=n,Bt(e.children,n))})},Ie=(t,n)=>t.split(",").map(e=>{let s=e.trim(),o=s.indexOf("::"),r=o===-1?s:s.slice(0,o),i=o===-1?"":s.slice(o);return`${r}[${mt}="${n}"]${i}`}).join(", "),zt=(t,n)=>{Array.from(t).forEach(e=>{e instanceof CSSStyleRule?e.selectorText=Ie(e.selectorText,n):e instanceof CSSGroupingRule&&zt(e.cssRules,n)})},We=(t,n)=>{/:deep\(|::v-deep|>>>/.test(t)&&console.warn("jq79: :deep()/::v-deep/>>> are not supported in <style scoped>; the rule will be dropped by the browser");let e=new CSSStyleSheet;return e.replaceSync(t),zt(e.cssRules,n),Array.from(e.cssRules).map(s=>s.cssText).join(`
|
|
10
|
+
`)},ut=t=>{let e=new DOMParser().parseFromString(`<template>${ke(t)}</template>`,"text/html").querySelector("template"),s=[],o=[],r=[];Array.from(e.content.children).forEach(l=>{let a={attrs:It(l),content:l.textContent??""};l.tagName==="SCRIPT"?s.push(a):l.tagName==="STYLE"?o.push(a):r.push(Wt(l))}),o.forEach(l=>{"lang"in l.attrs&&console.warn(`jq79: <style lang="${l.attrs.lang}"> needs the jq79/vite plugin to compile it. This component didn't go through the bundler, so its styles were left uncompiled and the browser will ignore them.`)});let i=l=>"scoped"in l.attrs&&!("lang"in l.attrs);if(o.some(i)){let l=Fe(t);Bt(r,l),o.forEach(a=>{i(a)&&(a.scoped=We(a.content,l))})}return{template:r,scripts:s,styles:o}},gt=t=>/\.html?([?#]|$)/.test(t)?k.fetch(t):import(t),Gt=(t,n)=>t?`
|
|
11
|
+
//# sourceURL=${t}?jq79-script=${n}`:"",Ut=t=>t.scoped??t.content,st=new Map,He=t=>{let n=st.get(t);if(!n){let e=document.createElement("style");e.textContent=t,document.head.appendChild(e),n={el:e,count:0},st.set(t,n)}n.count++},qe=t=>{let n=st.get(t);n&&--n.count<=0&&(n.el.remove(),st.delete(t))},Zt={$:F,$$:Z,$create:K,$reactive:B},Be=(t,n,e,s={},o=gt,r={})=>{let i={...Zt,...s},l=new Proxy(n,{has:(p,u)=>u!=="$__effect"&&u!=="$__import"&&(Reflect.has(p,u)||!(u in globalThis)&&!(u in i))});new Function("$scope","$__effect","$__import",...Object.keys(i),`return (async () => { with ($scope) { ${t} } })()${Gt(r.filename,r.index??0)}`)(l,e,o,...Object.values(i)).catch(p=>console.error("jq79: error in :setup script",p))},kt=(t,n)=>{n?.forEach(({name:e,default:s})=>{t[e]===void 0&&(t[e]=s===void 0?void 0:N(s,t))})},ze=t=>t&&t.default!==void 0?t.default:t,Ge=(t,n,e,s={},o=gt,r={})=>{let i={...Zt,...s},l={},a=new Function("$__exports","$__default","$__import",...Object.keys(i),`return (async () => { "use strict";
|
|
10
12
|
${t}
|
|
11
|
-
;$__exports.done = true })()${
|
|
13
|
+
;$__exports.done = true })()${Gt(r.filename,r.index??0)}`)(l,ze,o,...Object.values(i)),p=w=>console.error("jq79: error in factory script",w),u=!1,y=()=>{if(u)return;u=!0;let w=l.default;if(typeof w!="function")return;let C=h=>{h&&typeof h=="object"&&Object.assign(n,h)};try{let h=w(n,{$data:n,$props:n,$effect:e,...s});h instanceof Promise?h.then(C).catch(p):C(h)}catch(h){p(h)}};a.then(y,p),l.done&&y()},Ze="__JQ79_HMR_ENABLED__",Ke="__JQ79_HMR__",U=null,Xe=t=>{if(!U||!t.filename)return;let n=U.get(t.filename);n||U.set(t.filename,n=new Set),n.add(new WeakRef(t))},Ft=t=>{try{return new URL(t,document.baseURI).pathname}catch{return t}},Kt=(t,n)=>{if(!U)return 0;let e=Ft(t),s=ut(n),o=0;for(let[r,i]of U)if(Ft(r)===e){for(let l of i){let a=l.deref();if(!a){i.delete(l);continue}a.hotReplace(s)&&o++}i.size||U.delete(r)}return o},Xt=()=>{U??(U=new Map),globalThis[Ke]={update:Kt}},k=class t{constructor(n,e={}){v(this,"template");v(this,"scripts");v(this,"styles");v(this,"modules");v(this,"filename");v(this,"data",null);v(this,"fx",null);v(this,"content",null);v(this,"startMarker",null);v(this,"endMarker",null);v(this,"styleEls",[]);v(this,"ownsSharedStyles",!1);v(this,"useShadow",!1);v(this,"mountRoot",null);v(this,"resolveMounted",null);v(this,"emitListeners",new Map);let s=typeof n=="string"?ut(n):n;this.template=s.template,this.scripts=s.scripts,this.styles=s.styles,this.modules=e.modules??(typeof n=="string"?void 0:n.modules),this.filename=e.filename??(typeof n=="string"?void 0:n.filename),Xe(this)}hotReplace(n){let e=typeof n=="string"?ut(n):n,s=this.startMarker,o=!!(s&&this.content),r=o&&s.isConnected,i=r?s.parentNode:null,l=r?this.endMarker.nextSibling:null,a={...this.data},p=this.useShadow;return o&&this.destroy(),this.template=e.template,this.scripts=e.scripts,this.styles=e.styles,!o||(this.renderWith(a,p),!i)?!1:(p&&this.styleEls.forEach(u=>i.insertBefore(u,l)),i.insertBefore(this.content,l),this.mountRoot=i,this.resolveMounted?.(),!0)}static async fetch(n){let e=await fetch(n);if(!e.ok)throw new Error(`failed to fetch component from ${n}: ${e.status}`);return new t(await e.text(),{filename:n})}on(n,e){return this.emitListeners.has(n)||this.emitListeners.set(n,new Set),this.emitListeners.get(n).add(e),this}off(n,e){return this.emitListeners.get(n)?.delete(e),this}render(n={}){return this.renderWith(n,!1)}renderShadow(n={}){return this.renderWith(n,!0)}renderWith(n,e){this.destroy();let s=B({...n}),o=W(s);this.data=s,this.fx=o,this.useShadow=e,this.startMarker=document.createComment("jq79"),this.endMarker=document.createComment("/jq79");let r=this.startMarker,i=(f,d)=>{let g=new CustomEvent(f,{detail:d,bubbles:!0,composed:!0,cancelable:!0});return r===this.startMarker&&this.emitListeners.get(f)?.forEach(A=>A(g,d)),g.cancelBubble||r.dispatchEvent(g),!g.defaultPrevented},l,a=new Promise(f=>{l=f});this.resolveMounted=l;let p=()=>a,u=this.endMarker,y=f=>{let d=[];for(let g=r.nextSibling;g&&g!==u;g=g.nextSibling)g instanceof Element&&(g.matches(f)&&d.push(g),d.push(...Array.from(g.querySelectorAll(f))));return d},w=f=>y(f)[0]??null,C=this.modules,h=f=>C&&f in C?Promise.resolve(C[f]):gt(f),$=f=>`await $mounted();${f}`;this.scripts.forEach((f,d)=>{let g={$emit:i,$mounted:p,$self:w,$$self:y},A={filename:this.filename,index:d},S=jt(f.content);if(S!==null){kt(s,Ot(f.content));let E=":mounted"in f.attrs?$(S):S;Ge(E,s,o.effect,g,h,A);return}let{vars:m,code:b}=Y(f.content);kt(s,ft(f.attrs[":setup"])),m.forEach(E=>{E in s||(s[E]=void 0)});let R=":mounted"in f.attrs?$(b):b;Be(R,s,o.effect,g,h,A)});let x=document.createDocumentFragment(),c=new Proxy(s,{has:(f,d)=>d==="$emit"||Reflect.has(f,d),get:(f,d,g)=>d==="$emit"&&!Reflect.has(f,d)?i:Reflect.get(f,d,g)});return x.append(this.startMarker,ht(this.template,c,o,e),this.endMarker),this.content=x,e?this.styleEls=this.styles.map(f=>{let d=document.createElement("style");return d.textContent=f.content,d}):(this.styles.forEach(f=>He(Ut(f))),this.ownsSharedStyles=!0),this}mount(n,e){let s=typeof n=="string"?F(n):n;if(!s)throw new Error(`mount target not found: ${n}`);return(!this.content||e!==void 0)&&this.renderWith(e??{},this.useShadow),this.attach(s)}mountShadow(n,e){let s=typeof n=="string"?F(n):n;if(!s)throw new Error(`mount target not found: ${n}`);return(!this.content||e!==void 0||!this.useShadow)&&this.renderWith(e??{},!0),this.attach(s)}attach(n){this.mountRoot&&this.detach();let e=this.useShadow&&n instanceof Element?n.shadowRoot??n.attachShadow({mode:"open"}):n;return this.useShadow&&this.styleEls.forEach(s=>e.appendChild(s)),e.appendChild(this.content),this.mountRoot=e,this.resolveMounted?.(),this}detach(){if(!this.mountRoot||!this.content||!this.startMarker||!this.endMarker)return this;let n=this.startMarker;for(;n;){let e=n.nextSibling;if(this.content.appendChild(n),n===this.endMarker)break;n=e}return this.mountRoot=null,this}destroy(){return this.detach(),this.fx?.dispose(),this.fx=null,this.data?.$dispose(),this.styleEls.forEach(n=>n.parentNode?.removeChild(n)),this.styleEls=[],this.ownsSharedStyles&&(this.styles.forEach(n=>qe(Ut(n))),this.ownsSharedStyles=!1),this.content=null,this.startMarker=null,this.endMarker=null,this.data=null,this.resolveMounted=null,this}},Je=t=>new k(t);typeof globalThis<"u"&&globalThis[Ze]&&Xt();0&&(module.exports={$,$$,$create,$reactive,Component79,enableHotReload,hotUpdate,parseComponent,renderComponent});
|
|
12
14
|
//# sourceMappingURL=jq79.cjs.map
|