@helfy/helfy 0.0.4 → 0.0.5
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/ts-plugin/index.js +14 -10
- package/package.json +1 -1
package/dist/ts-plugin/index.js
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
var H=Object.defineProperty,N=Object.defineProperties;var ee=Object.getOwnPropertyDescriptors;var D=Object.getOwnPropertySymbols;var te=Object.prototype.hasOwnProperty,ne=Object.prototype.propertyIsEnumerable;var z=(t,i,e)=>i in t?H(t,i,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[i]=e,A=(t,i)=>{for(var e in i||(i={}))te.call(i,e)&&z(t,e,i[e]);if(D)for(var e of D(i))ne.call(i,e)&&z(t,e,i[e]);return t},P=(t,i)=>N(t,ee(i));var W=/@[A-Za-z_$][\w$]*/,re=/^\s*@(if|for)\b/,se=/^\s*@(elseif|else|empty)\b/,q=/^\s*@slot(?::|\.)[A-Za-z_$][\w$]*/,y=".__helfy__.ts",E=new Map;function ie(t,i){var n,l;if(!t||t.__helfyHostWrapped||!i)return;t.__helfyHostWrapped=!0,t.__helfyOriginalCache=E;let e=(n=t.getScriptSnapshot)==null?void 0:n.bind(t),s=(l=t.readFile)==null?void 0:l.bind(t);e&&(t.getScriptSnapshot=c=>{let o=e(c);if(!o||typeof c!="string"||!c.endsWith(".tsx"))return o;let d=o.getText(0,o.getLength());if(!d.includes("@bind")&&!d.includes("@ref(")&&!d.includes("@field("))return o;let u=Z(d);return E.set(c,{original:d,transformed:u}),i.ScriptSnapshot.fromString(u)}),s&&(t.readFile=(c,o)=>{let d=s(c,o);if(!d||typeof c!="string"||!c.endsWith(".tsx")||!d.includes("@bind")&&!d.includes("@ref(")&&!d.includes("@field("))return d;let u=Z(d);return E.set(c,{original:d,transformed:u}),u})}function F(t,i){let e=E.get(t);return e?Q(e.original).origToTrans(i):i}function k(t,i,e){let s=E.get(t);if(!s)return{start:i,length:e};let n=Q(s.original),l=n.transToOrig(i),c=n.transToOrig(i+e);return{start:l,length:Math.max(0,c-l)}}function Q(t){let i=[],e=0,s=/@ref\s*\(\s*this\s*\.\s*([A-Za-z_$][\w$]*)\s*\)/g,n;for(;(n=s.exec(t))!==null;){let f=n[1],r=n[0],a=`ref={(el: typeof this.${f})=>this.${f}=el}`;i.push({start:n.index,end:n.index+r.length,newLen:a.length,exprStart:n.index+5,exprEnd:n.index+r.length-1,newExprStart:14})}let l=/@bind:([A-Za-z_$][\w$]*)\s*\(/g;for(;(n=l.exec(t))!==null;){let f=1,r=n.index+n[0].length;for(;r<t.length&&f>0;){let $=t[r];if($==="(")f++;else if($===")"){if(f--,f===0){r++;break}}else if($==="'"||$==='"'||$==="`"){let S=$;for(r++;r<t.length&&t[r]!==S;)t[r]==="\\"&&r++,r++;r++;continue}r++}let a=n.index+n[0].length,h=r-1,x=t.slice(a,h).trim(),p=`$_bind_${n[1]}={${x}}`,g=7+n[1].length+2;i.push({start:n.index,end:r,newLen:p.length,exprStart:a,exprEnd:h,newExprStart:g})}let c=/@bind\s*\(/g;for(;(n=c.exec(t))!==null;){let f=n.index,r=1,a=n.index+n[0].length;for(;a<t.length&&r>0;){let w=t[a];if(w==="(")r++;else if(w===")"){if(r--,r===0){a++;break}}else if(w==="'"||w==='"'||w==="`"){let v=w;for(a++;a<t.length&&t[a]!==v;)t[a]==="\\"&&a++,a++;a++;continue}a++}let h=n.index+n[0].length,x=a-1,p=t.slice(h,x).trim(),$=G(t,f)?"onInput":"oninput",S=`value={${p}} ${$}={(e: Event & { target: { value: string } })=>${p}=e.target.value as typeof ${p}}`;i.push({start:f,end:a,newLen:S.length,exprStart:h,exprEnd:x,newExprStart:7})}let o=/@field\s*\(/g;for(;(n=o.exec(t))!==null;){let f=n.index,r=1,a=n.index+n[0].length;for(;a<t.length&&r>0;){let T=t[a];if(T==="(")r++;else if(T===")"){if(r--,r===0){a++;break}}else if(T==="'"||T==='"'||T==="`"){let Y=T;for(a++;a<t.length&&t[a]!==Y;)t[a]==="\\"&&a++,a++;a++;continue}a++}let h=n.index+n[0].length,x=a-1,p=t.slice(h,x).trim();if(!M(p))continue;let g=R(t,f);if(!g)continue;let $=U(t,f),S=$?K($.content,t,$.start):null,w=S?`[${S.expr}, ${p}?.isTouched && ${p}?.error && 'input-error'].filter(Boolean).join(' ')`:`${p}?.isTouched && ${p}?.error ? 'input-error' : undefined`;S&&i.push({start:S.start,end:S.end,newLen:0,exprStart:S.start,exprEnd:S.end,newExprStart:0});let v=p+".value",C=p+".value",m=`() => { ${p}.isTouched = true; }`,b=`${p}?.isTouched && ${p}?.error ? "true" : "false"`,L;if(g.isComponent)L=`value={${v}} onInput={(e: Event & { target: HTMLInputElement })=>${C}=e.target.value} onBlur={${m}} class={${w}} aria-invalid={${b}}`;else if(g.tag==="input"&&(g.type==="checkbox"||g.type==="radio"))L=`checked={${v}} onchange={(e: Event & { target: HTMLInputElement })=>${C}=e.target.checked} onblur={${m}} class={${w}} aria-invalid={${b}}`;else if(g.tag==="select")L=`value={${v}} onchange={(e: Event & { target: HTMLSelectElement })=>${C}=e.target.value} onblur={${m}} class={${w}} aria-invalid={${b}}`;else{let T=g.tag==="textarea"?"HTMLTextAreaElement":"HTMLInputElement";L=`value={${v}} oninput={(e: Event & { target: ${T} })=>${C}=e.target.value} onblur={${m}} class={${w}} aria-invalid={${b}}`}i.push({start:f,end:a,newLen:L.length,exprStart:h,exprEnd:x,newExprStart:7})}return i.sort((f,r)=>f.start-r.start),{origToTrans:f=>{let r=0,a=0;for(let h of i){let x=h.start-a;if(a+x>f)return r+(f-a);r+=x,a=h.start;let p=h.end-h.start;if(f<h.end)return f>=h.exprStart&&f<h.exprEnd?r+h.newExprStart+(f-h.exprStart):r;r+=h.newLen,a=h.end}return r+(f-a)},transToOrig:f=>{let r=0,a=0;for(let h of i){let x=h.start-a;if(r+x>f)return a+(f-r);r+=x,a=h.start;let p=h.newLen;if(r+p>f){let g=f-r,$=h.exprEnd-h.exprStart;return g>=h.newExprStart&&g<h.newExprStart+$?h.exprStart+(g-h.newExprStart):h.start}r+=p,a=h.end}return a+(f-r)}}}function Z(t){let i=le(t);return i=O(i),i=oe(i),i}function le(t){let i=t,e=/@ref\s*\(\s*this\s*\.\s*([A-Za-z_$][\w$]*)\s*\)/g,s,n=[];for(;(s=e.exec(t))!==null;){let l=s[0],c=s[1];n.push({start:s.index,end:s.index+l.length,code:`ref={(el: typeof this.${c})=>this.${c}=el}`})}for(let l=n.length-1;l>=0;l--){let{start:c,end:o,code:d}=n[l];i=i.slice(0,c)+d+i.slice(o)}return i}function O(t){let i=t,e=/@bind:([A-Za-z_$][\w$]*)\s*\(/g,s,n=[];for(;(s=e.exec(i))!==null;){let o=s[1],d=1,u=s.index+s[0].length;for(;u<i.length&&d>0;){let a=i[u];if(a==="(")d++;else if(a===")"){if(d--,d===0){u++;break}}else if(a==="'"||a==='"'||a==="`"){let h=a;for(u++;u<i.length&&i[u]!==h;)i[u]==="\\"&&u++,u++;u++;continue}u++}let f=i.slice(s.index+s[0].length,u-1).trim(),r=`$_bind_${o}={${f}}`;n.push({start:s.index,end:u,code:r})}for(let o=n.length-1;o>=0;o--){let{start:d,end:u,code:f}=n[o];i=i.slice(0,d)+f+i.slice(u)}let l=/@bind\s*\(/g,c=[];for(;(s=l.exec(i))!==null;){let o=s.index,d=1,u=s.index+s[0].length;for(;u<i.length&&d>0;){let g=i[u];if(g==="(")d++;else if(g===")"){if(d--,d===0){u++;break}}else if(g==="'"||g==='"'||g==="`"){let $=g;for(u++;u<i.length&&i[u]!==$;)i[u]==="\\"&&u++,u++;u++;continue}u++}let f=i.slice(s.index+s[0].length,u-1).trim(),r=R(i,o),a=M(f),h=a?f+".value":f,x=a?f+".value":f,p;if(r&&r.tag==="input"&&(r.type==="checkbox"||r.type==="radio"))p=`checked={${h}} onchange={(e)=>${x}=e.target.checked}`;else{let $=G(i,o)?"onInput":"oninput";p=`value={${h}} ${$}={(e: Event & { target: { value: string } })=>${x}=e.target.value}`}c.push({start:o,end:u,code:p})}for(let o=c.length-1;o>=0;o--){let{start:d,end:u,code:f}=c[o];i=i.slice(0,d)+f+i.slice(u)}return i}function ce(t,i){if(t[i]!=="{")return-1;let e=1,s=i+1;for(;s<t.length&&e>0;){let n=t[s];if(n==="{")e++;else if(n==="}")e--;else if(n==="'"||n==='"'||n==="`"){let l=n;for(s++;s<t.length&&t[s]!==l;)t[s]==="\\"&&s++,s++;s++;continue}e>0&&s++}return e===0?s:-1}function U(t,i){let e=i-1;for(;e>=0;){let s=t[e];if(s==="'"||s==='"'||s==="`"){for(e--;e>=0&&t[e]!==s;)e--;e--;continue}if(s==="<"){let n=e,l=e+1;for(;l<t.length;){let c=t[l];if(c==="'"||c==='"'||c==="`"){for(l++;l<t.length&&t[l]!==c;)t[l]==="\\"&&l++,l++;l++;continue}if(c===">")return{start:n,end:l+1,content:t.slice(n,l+1)};if(c==="/"&&t[l+1]===">")return{start:n,end:l+2,content:t.slice(n,l+2)};l++}return null}e--}return null}function K(t,i,e){let n=/\bclass\s*=\s*(\{|"[^"]*"|'[^']*')/g.exec(t);if(!n)return null;let l=e+n.index,c,o;if(n[1]==="{"){let d=l+n[0].length-1,u=ce(i,d);if(u<0)return null;c=i.slice(d+1,u).trim(),o=u+1}else c=n[1],o=l+n[0].length;return{expr:c,start:l,end:o}}function oe(t){let i=t,e=/@field\s*\(/g,s,n=[];for(;(s=e.exec(t))!==null;){let l=s.index,c=1,o=s.index+s[0].length;for(;o<t.length&&c>0;){let S=t[o];if(S==="(")c++;else if(S===")"){if(c--,c===0){o++;break}}else if(S==="'"||S==='"'||S==="`"){let w=S;for(o++;o<t.length&&t[o]!==w;)t[o]==="\\"&&o++,o++;o++;continue}o++}let d=t.slice(s.index+s[0].length,o-1).trim();if(!M(d))continue;let u=R(t,l);if(!u)continue;let f=U(t,l),r=f?K(f.content,t,f.start):null,a=r?`[${r.expr}, ${d}?.isTouched && ${d}?.error && 'input-error'].filter(Boolean).join(' ')`:`${d}?.isTouched && ${d}?.error ? 'input-error' : undefined`;r&&n.push({start:r.start,end:r.end,code:""});let h=d+".value",x=d+".value",p=`() => { ${d}.isTouched = true; }`,g=`${d}?.isTouched && ${d}?.error ? "true" : "false"`,$;if(u.isComponent)$=`value={${h}} onInput={(e: Event & { target: HTMLInputElement })=>${x}=e.target.value} onBlur={${p}} class={${a}} aria-invalid={${g}}`;else if(u.tag==="input"&&(u.type==="checkbox"||u.type==="radio"))$=`checked={${h}} onchange={(e: Event & { target: HTMLInputElement })=>${x}=e.target.checked} onblur={${p}} class={${a}} aria-invalid={${g}}`;else if(u.tag==="select")$=`value={${h}} onchange={(e: Event & { target: HTMLSelectElement })=>${x}=e.target.value} onblur={${p}} class={${a}} aria-invalid={${g}}`;else{let S=u.tag==="textarea"?"HTMLTextAreaElement":"HTMLInputElement";$=`value={${h}} oninput={(e: Event & { target: ${S} })=>${x}=e.target.value} onblur={${p}} class={${a}} aria-invalid={${g}}`}n.push({start:l,end:o,code:$})}n.sort((l,c)=>c.start-l.start);for(let l of n)i=i.slice(0,l.start)+l.code+i.slice(l.end);return i}function G(t,i){let s=t.slice(Math.max(0,i-200),i).match(new RegExp("<([A-Za-z][A-Za-z0-9]*)\\s[^>]*$","s"));return s?s[1][0]===s[1][0].toUpperCase()&&s[1].length>1:!1}function M(t){return/^this\.([A-Za-z_$][\w$]*\.)+[A-Za-z_$][\w$]*$/.test(t.trim())}function R(t,i){let e=i-1;for(;e>=0;){let s=t[e];if(s==="'"||s==='"'||s==="`"){for(e--;e>=0&&t[e]!==s;)e--;e--;continue}if(s==="<"){for(e++;e<t.length&&/\s/.test(t[e]);)e++;let n=t.slice(e).match(/^([A-Za-z][A-Za-z0-9]*)/);if(!n)return null;let l=n[1],c=l.toLowerCase(),d=t.slice(e,i+200).match(/type\s*=\s*["'](checkbox|radio|text|email|password|search|tel|url)["']/);return{tag:c,type:d?d[1].toLowerCase():c==="input"?"text":void 0,isComponent:l[0]===l[0].toUpperCase()&&l.length>1}}e--}return null}function ae(t){let i=t.match(/^\s*/)[0],e=t.slice(i.length),s="",n=0;for(;n<e.length;)if(e[n]==="<")for(s+=" ",n++;n<e.length;)if(e[n]==="{"){let l=0,c=n;for(;c<e.length;){if(e[c]==="{")l++;else if(e[c]==="}"&&(l--,l===0)){c++;break}c++}s+=e.slice(n,c),n=c}else if(e[n]===">"){s+=" ",n++;break}else if(e.startsWith("@bind:",n)){let l=e.slice(n).match(/^@bind:([A-Za-z_$][\w$]*)\s*\(/);if(l){let c=l[1],o=n+l[0].length,d=1;for(;o<e.length&&d>0;){if(e[o]==="(")d++;else if(e[o]===")"){if(d--,d===0){o++;break}}else if(e[o]==="'"||e[o]==='"'||e[o]==="`"){let f=e[o];for(o++;o<e.length&&e[o]!==f;)e[o]==="\\"&&o++,o++;o++;continue}o++}let u=e.slice(n+l[0].length,o-1).trim();s+="$_bind_"+c+"={"+u+"}",n=o}else s+=" ",n++}else if(e.slice(n).match(/^@bind\s*\(/)){let l=e.slice(n).match(/^@bind\s*\(/);if(l){let c=n+l[0].length,o=1;for(;c<e.length&&o>0;){if(e[c]==="(")o++;else if(e[c]===")"){if(o--,o===0){c++;break}}else if(e[c]==="'"||e[c]==='"'||e[c]==="`"){let u=e[c];for(c++;c<e.length&&e[c]!==u;)e[c]==="\\"&&c++,c++;c++;continue}c++}let d=e.slice(n+l[0].length,c-1);s+="value={"+d+"}",n=c}else s+=" ",n++}else if(e.slice(n).match(/^@field\s*\(/)){let l=e.slice(n).match(/^@field\s*\(/);if(l){let c=n+l[0].length,o=1;for(;c<e.length&&o>0;){if(e[c]==="(")o++;else if(e[c]===")"){if(o--,o===0){c++;break}}else if(e[c]==="'"||e[c]==='"'||e[c]==="`"){let u=e[c];for(c++;c<e.length&&e[c]!==u;)e[c]==="\\"&&c++,c++;c++;continue}c++}let d=e.slice(n+l[0].length,c-1).trim();s+="value={"+d+".value}",n=c}else s+=" ",n++}else if(e.startsWith("@ref(",n)){let l=n+5,c=l,o=1;for(;l<e.length&&o>0;){if(e[l]==="(")o++;else if(e[l]===")"){if(o--,o===0){l++;break}}else if(e[l]==="'"||e[l]==='"'||e[l]==="`"){let d=e[l];for(l++;l<e.length&&e[l]!==d;)e[l]==="\\"&&l++,l++;l++;continue}l++}s+=" ",s+=e.slice(c,l-1),s+=" ",n=l}else s+=" ",n++;else if(e[n]==="{"){let l=0,c=n;for(;c<e.length;){if(e[c]==="{")l++;else if(e[c]==="}"&&(l--,l===0)){c++;break}c++}s+=e.slice(n,c),n=c}else s+=" ",n++;return i+s}function V(t){let i=t.split(`
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
`)
|
|
7
|
-
`))
|
|
8
|
-
`)
|
|
9
|
-
`),o=
|
|
10
|
-
`);return
|
|
1
|
+
var se=Object.defineProperty,ie=Object.defineProperties;var le=Object.getOwnPropertyDescriptors;var V=Object.getOwnPropertySymbols;var ce=Object.prototype.hasOwnProperty,oe=Object.prototype.propertyIsEnumerable;var W=(e,s,t)=>s in e?se(e,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[s]=t,P=(e,s)=>{for(var t in s||(s={}))ce.call(s,t)&&W(e,t,s[t]);if(V)for(var t of V(s))oe.call(s,t)&&W(e,t,s[t]);return e},k=(e,s)=>ie(e,le(s));var K=/@[A-Za-z_$][\w$]*/,ae=/^\s*@(if|for)\b/,ue=/^\s*@(elseif|else|empty)\b/,G=/^\s*@slot(?::|\.)[A-Za-z_$][\w$]*/,A=".__helfy__.ts",L=new Map;function B(e,s){var i,c;if(!e||e.__helfyHostWrapped||!s)return;e.__helfyHostWrapped=!0,e.__helfyOriginalCache=L;let t=(i=e.getScriptSnapshot)==null?void 0:i.bind(e),n=(c=e.readFile)==null?void 0:c.bind(e),r=(l,d)=>{if(!d||typeof l!="string"||!l.endsWith(".tsx"))return d;let o=d.getText(0,d.getLength());if(!o.includes("@bind")&&!o.includes("@ref(")&&!o.includes("@field(")&&!o.includes("@slot."))return d;let f=q(o);return L.set(l,{original:o,transformed:f}),s.ScriptSnapshot.fromString(f)};if(t){let l=d=>r(d,t(d));try{Object.defineProperty(e,"getScriptSnapshot",{value:l,configurable:!0,writable:!0})}catch(d){e.getScriptSnapshot=l}}n&&(e.readFile=(l,d)=>{let o=n(l,d);if(!o||typeof l!="string"||!l.endsWith(".tsx")||!o.includes("@bind")&&!o.includes("@ref(")&&!o.includes("@field(")&&!o.includes("@slot."))return o;let f=q(o);return L.set(l,{original:o,transformed:f}),f})}function j(e,s){let t=L.get(e);return t?J(t.original).origToTrans(s):s}function F(e,s,t){let n=L.get(e);if(!n)return{start:s,length:t};let r=J(n.original),i=r.transToOrig(s),c=r.transToOrig(s+t);return{start:i,length:Math.max(0,c-i)}}function J(e){let s=[],t=0,n=/@ref\s*\(\s*this\s*\.\s*([A-Za-z_$][\w$]*)\s*\)/g,r;for(;(r=n.exec(e))!==null;){let u=r[1],h=r[0],p=`ref={(el: typeof this.${u})=>this.${u}=el}`;s.push({start:r.index,end:r.index+h.length,newLen:p.length,exprStart:r.index+5,exprEnd:r.index+h.length-1,newExprStart:14})}let i=/@bind:([A-Za-z_$][\w$]*)\s*\(/g;for(;(r=i.exec(e))!==null;){let u=1,h=r.index+r[0].length;for(;h<e.length&&u>0;){let m=e[h];if(m==="(")u++;else if(m===")"){if(u--,u===0){h++;break}}else if(m==="'"||m==='"'||m==="`"){let S=m;for(h++;h<e.length&&e[h]!==S;)e[h]==="\\"&&h++,h++;h++;continue}h++}let p=r.index+r[0].length,a=h-1,g=e.slice(p,a).trim(),$=`$_bind_${r[1]}={${g}}`,x=7+r[1].length+2;s.push({start:r.index,end:h,newLen:$.length,exprStart:p,exprEnd:a,newExprStart:x})}let c=/@bind\s*\(/g;for(;(r=c.exec(e))!==null;){let u=r.index,h=1,p=r.index+r[0].length;for(;p<e.length&&h>0;){let b=e[p];if(b==="(")h++;else if(b===")"){if(h--,h===0){p++;break}}else if(b==="'"||b==='"'||b==="`"){let E=b;for(p++;p<e.length&&e[p]!==E;)e[p]==="\\"&&p++,p++;p++;continue}p++}let a=r.index+r[0].length,g=p-1,$=e.slice(a,g).trim(),m=te(e,u)?"onInput":"oninput",S=`value={${$}} ${m}={(e: Event & { target: { value: string } })=>${$}=e.target.value as typeof ${$}}`;s.push({start:u,end:p,newLen:S.length,exprStart:a,exprEnd:g,newExprStart:7})}let l=/@field\s*\(/g;for(;(r=l.exec(e))!==null;){let u=r.index,h=1,p=r.index+r[0].length;for(;p<e.length&&h>0;){let v=e[p];if(v==="(")h++;else if(v===")"){if(h--,h===0){p++;break}}else if(v==="'"||v==='"'||v==="`"){let I=v;for(p++;p<e.length&&e[p]!==I;)e[p]==="\\"&&p++,p++;p++;continue}p++}let a=r.index+r[0].length,g=p-1,$=e.slice(a,g).trim();if(!D($))continue;let x=Z(e,u);if(!x)continue;let m=N(e,u),S=m?ee(m.content,e,m.start):null,b=S?`[${S.expr}, ${$}?.isTouched && ${$}?.error && 'input-error'].filter(Boolean).join(' ')`:`${$}?.isTouched && ${$}?.error ? 'input-error' : undefined`;S&&s.push({start:S.start,end:S.end,newLen:0,exprStart:S.start,exprEnd:S.end,newExprStart:0});let E=$+".value",C=$+".value",y=`() => { ${$}.isTouched = true; }`,T=`${$}?.isTouched && ${$}?.error ? "true" : "false"`,w;if(x.isComponent)w=`value={${E}} onInput={(e: Event & { target: HTMLInputElement })=>${C}=e.target.value} onBlur={${y}} class={${b}} aria-invalid={${T}}`;else if(x.tag==="input"&&(x.type==="checkbox"||x.type==="radio"))w=`checked={${E}} onchange={(e: Event & { target: HTMLInputElement })=>${C}=e.target.checked} onblur={${y}} class={${b}} aria-invalid={${T}}`;else if(x.tag==="select")w=`value={${E}} onchange={(e: Event & { target: HTMLSelectElement })=>${C}=e.target.value} onblur={${y}} class={${b}} aria-invalid={${T}}`;else{let v=x.tag==="textarea"?"HTMLTextAreaElement":"HTMLInputElement";w=`value={${E}} oninput={(e: Event & { target: ${v} })=>${C}=e.target.value} onblur={${y}} class={${b}} aria-invalid={${T}}`}s.push({start:u,end:p,newLen:w.length,exprStart:a,exprEnd:g,newExprStart:7})}let d=/@slot\.([A-Za-z_$][\w$]*)\s*\(/g;for(;(r=d.exec(e))!==null;){let u=r.index,h=u+6+r[1].length;if(h=_(e,h),e[h]!=="(")continue;let p=X(e,h);if(p<0)continue;let a=e.slice(h+1,p).trim()||"{}",g=p+1;if(g=_(e,g),e[g]!=="{")continue;let $=Y(e,g);if($<0)continue;let x=(e.slice(0,u).match(/([ \t]*)$/)||["",""])[1],m=e.slice(g+1,$),S=`${x}{$._slot("${r[1]}", (${a}) => (
|
|
2
|
+
${m}
|
|
3
|
+
${x}))}`,b=x.length+10+r[1].length+6+a.length+8;s.push({start:u,end:$+1,newLen:S.length,exprStart:g+1,exprEnd:$,newExprStart:b})}return s.sort((u,h)=>u.start-h.start),{origToTrans:u=>{let h=0,p=0;for(let a of s){let g=a.start-p;if(p+g>u)return h+(u-p);h+=g,p=a.start;let $=a.end-a.start;if(u<a.end)return u>=a.exprStart&&u<a.exprEnd?h+a.newExprStart+(u-a.exprStart):h;h+=a.newLen,p=a.end}return h+(u-p)},transToOrig:u=>{let h=0,p=0;for(let a of s){let g=a.start-p;if(h+g>u)return p+(u-h);h+=g,p=a.start;let $=a.newLen;if(h+$>u){let x=u-h,m=a.exprEnd-a.exprStart;return x>=a.newExprStart&&x<a.newExprStart+m?a.exprStart+(x-a.newExprStart):a.start}h+=$,p=a.end}return p+(u-h)}}}function q(e){let s=he(e);return s=z(s),s=pe(s),s=fe(s),s}function fe(e){let s="",t=0,n=/@slot\.([A-Za-z_$][\w$]*)\s*\(/g,r;for(;(r=n.exec(e))!==null;){s+=e.slice(t,r.index),t=r.index;let i=r.index,c=(e.slice(0,i).match(/([ \t]*)$/)||["",""])[1],l=i+6+r[1].length;if(l=_(e,l),e[l]!=="("){s+=e[t],t++,n.lastIndex=t;continue}let d=X(e,l);if(d<0){s+=e[t],t++,n.lastIndex=t;continue}let o=e.slice(l+1,d).trim()||"{}",f=d+1;if(f=_(e,f),e[f]!=="{"){s+=e[t],t++,n.lastIndex=t;continue}let u=Y(e,f);if(u<0){s+=e[t],t++,n.lastIndex=t;continue}let h=e.slice(f+1,u),p=`${c}{$._slot("${r[1]}", (${o}) => (
|
|
4
|
+
${h}
|
|
5
|
+
${c}))}`;s+=p,t=u+1}return s+=e.slice(t),s}function _(e,s){for(;s<e.length&&/\s/.test(e[s]);)s++;return s}function X(e,s){let t=1,n=s+1;for(;n<e.length&&t>0;){let r=e[n];if(r==="(")t++;else if(r===")"){if(t--,t===0)return n}else if(r==="'"||r==='"'||r==="`"){n=H(e,n);continue}n++}return-1}function Y(e,s){let t=1,n=s+1;for(;n<e.length&&t>0;){let r=e[n];if(r==="{")t++;else if(r==="}"){if(t--,t===0)return n}else if(r==="'"||r==='"'||r==="`"){n=H(e,n);continue}n++}return-1}function H(e,s){let t=e[s],n=s+1;for(;n<e.length;){if(e[n]==="\\"){n+=2;continue}if(e[n]===t)return n+1;if(t==="`"&&e[n]==="$"&&e[n+1]==="{"){n+=2;let r=1;for(;n<e.length&&r>0;)e[n]==="{"?r++:e[n]==="}"&&r--,n++;continue}n++}return n}function he(e){let s=e,t=/@ref\s*\(\s*this\s*\.\s*([A-Za-z_$][\w$]*)\s*\)/g,n,r=[];for(;(n=t.exec(e))!==null;){let i=n[0],c=n[1];r.push({start:n.index,end:n.index+i.length,code:`ref={(el: typeof this.${c})=>this.${c}=el}`})}for(let i=r.length-1;i>=0;i--){let{start:c,end:l,code:d}=r[i];s=s.slice(0,c)+d+s.slice(l)}return s}function z(e){let s=e,t=/@bind:([A-Za-z_$][\w$]*)\s*\(/g,n,r=[];for(;(n=t.exec(s))!==null;){let l=n[1],d=1,o=n.index+n[0].length;for(;o<s.length&&d>0;){let h=s[o];if(h==="(")d++;else if(h===")"){if(d--,d===0){o++;break}}else if(h==="'"||h==='"'||h==="`"){let p=h;for(o++;o<s.length&&s[o]!==p;)s[o]==="\\"&&o++,o++;o++;continue}o++}let f=s.slice(n.index+n[0].length,o-1).trim(),u=`$_bind_${l}={${f}}`;r.push({start:n.index,end:o,code:u})}for(let l=r.length-1;l>=0;l--){let{start:d,end:o,code:f}=r[l];s=s.slice(0,d)+f+s.slice(o)}let i=/@bind\s*\(/g,c=[];for(;(n=i.exec(s))!==null;){let l=n.index,d=1,o=n.index+n[0].length;for(;o<s.length&&d>0;){let $=s[o];if($==="(")d++;else if($===")"){if(d--,d===0){o++;break}}else if($==="'"||$==='"'||$==="`"){let x=$;for(o++;o<s.length&&s[o]!==x;)s[o]==="\\"&&o++,o++;o++;continue}o++}let f=s.slice(n.index+n[0].length,o-1).trim(),u=Z(s,l),h=D(f),p=h?f+".value":f,a=h?f+".value":f,g;if(u&&u.tag==="input"&&(u.type==="checkbox"||u.type==="radio"))g=`checked={${p}} onchange={(e)=>${a}=e.target.checked}`;else{let x=te(s,l)?"onInput":"oninput";g=`value={${p}} ${x}={(e: Event & { target: { value: string } })=>${a}=e.target.value}`}c.push({start:l,end:o,code:g})}for(let l=c.length-1;l>=0;l--){let{start:d,end:o,code:f}=c[l];s=s.slice(0,d)+f+s.slice(o)}return s}function de(e,s){if(e[s]!=="{")return-1;let t=1,n=s+1;for(;n<e.length&&t>0;){let r=e[n];if(r==="{")t++;else if(r==="}")t--;else if(r==="'"||r==='"'||r==="`"){let i=r;for(n++;n<e.length&&e[n]!==i;)e[n]==="\\"&&n++,n++;n++;continue}t>0&&n++}return t===0?n:-1}function N(e,s){let t=s-1;for(;t>=0;){let n=e[t];if(n==="'"||n==='"'||n==="`"){for(t--;t>=0&&e[t]!==n;)t--;t--;continue}if(n==="<"){let r=t,i=t+1;for(;i<e.length;){let c=e[i];if(c==="'"||c==='"'||c==="`"){for(i++;i<e.length&&e[i]!==c;)e[i]==="\\"&&i++,i++;i++;continue}if(c===">")return{start:r,end:i+1,content:e.slice(r,i+1)};if(c==="/"&&e[i+1]===">")return{start:r,end:i+2,content:e.slice(r,i+2)};i++}return null}t--}return null}function ee(e,s,t){let r=/\bclass\s*=\s*(\{|"[^"]*"|'[^']*')/g.exec(e);if(!r)return null;let i=t+r.index,c,l;if(r[1]==="{"){let d=i+r[0].length-1,o=de(s,d);if(o<0)return null;c=s.slice(d+1,o).trim(),l=o+1}else c=r[1],l=i+r[0].length;return{expr:c,start:i,end:l}}function pe(e){let s=e,t=/@field\s*\(/g,n,r=[];for(;(n=t.exec(e))!==null;){let i=n.index,c=1,l=n.index+n[0].length;for(;l<e.length&&c>0;){let m=e[l];if(m==="(")c++;else if(m===")"){if(c--,c===0){l++;break}}else if(m==="'"||m==='"'||m==="`"){let S=m;for(l++;l<e.length&&e[l]!==S;)e[l]==="\\"&&l++,l++;l++;continue}l++}let d=e.slice(n.index+n[0].length,l-1).trim();if(!D(d))continue;let o=Z(e,i);if(!o)continue;let f=N(e,i),u=f?ee(f.content,e,f.start):null,h=u?`[${u.expr}, ${d}?.isTouched && ${d}?.error && 'input-error'].filter(Boolean).join(' ')`:`${d}?.isTouched && ${d}?.error ? 'input-error' : undefined`;u&&r.push({start:u.start,end:u.end,code:""});let p=d+".value",a=d+".value",g=`() => { ${d}.isTouched = true; }`,$=`${d}?.isTouched && ${d}?.error ? "true" : "false"`,x;if(o.isComponent)x=`value={${p}} onInput={(e: Event & { target: HTMLInputElement })=>${a}=e.target.value} onBlur={${g}} class={${h}} aria-invalid={${$}}`;else if(o.tag==="input"&&(o.type==="checkbox"||o.type==="radio"))x=`checked={${p}} onchange={(e: Event & { target: HTMLInputElement })=>${a}=e.target.checked} onblur={${g}} class={${h}} aria-invalid={${$}}`;else if(o.tag==="select")x=`value={${p}} onchange={(e: Event & { target: HTMLSelectElement })=>${a}=e.target.value} onblur={${g}} class={${h}} aria-invalid={${$}}`;else{let m=o.tag==="textarea"?"HTMLTextAreaElement":"HTMLInputElement";x=`value={${p}} oninput={(e: Event & { target: ${m} })=>${a}=e.target.value} onblur={${g}} class={${h}} aria-invalid={${$}}`}r.push({start:i,end:l,code:x})}r.sort((i,c)=>c.start-i.start);for(let i of r)s=s.slice(0,i.start)+i.code+s.slice(i.end);return s}function te(e,s){let n=e.slice(Math.max(0,s-200),s).match(new RegExp("<([A-Za-z][A-Za-z0-9]*)\\s[^>]*$","s"));return n?n[1][0]===n[1][0].toUpperCase()&&n[1].length>1:!1}function D(e){return/^this\.([A-Za-z_$][\w$]*\.)+[A-Za-z_$][\w$]*$/.test(e.trim())}function Z(e,s){let t=s-1;for(;t>=0;){let n=e[t];if(n==="'"||n==='"'||n==="`"){for(t--;t>=0&&e[t]!==n;)t--;t--;continue}if(n==="<"){for(t++;t<e.length&&/\s/.test(e[t]);)t++;let r=e.slice(t).match(/^([A-Za-z][A-Za-z0-9]*)/);if(!r)return null;let i=r[1],c=i.toLowerCase(),d=e.slice(t,s+200).match(/type\s*=\s*["'](checkbox|radio|text|email|password|search|tel|url)["']/);return{tag:c,type:d?d[1].toLowerCase():c==="input"?"text":void 0,isComponent:i[0]===i[0].toUpperCase()&&i.length>1}}t--}return null}function ge(e){let s=e.match(/^\s*/)[0],t=e.slice(s.length),n="",r=0;for(;r<t.length;)if(t[r]==="<")for(n+=" ",r++;r<t.length;)if(t[r]==="{"){let i=0,c=r;for(;c<t.length;){if(t[c]==="{")i++;else if(t[c]==="}"&&(i--,i===0)){c++;break}c++}n+=t.slice(r,c),r=c}else if(t[r]===">"){n+=" ",r++;break}else if(t.startsWith("@bind:",r)){let i=t.slice(r).match(/^@bind:([A-Za-z_$][\w$]*)\s*\(/);if(i){let c=i[1],l=r+i[0].length,d=1;for(;l<t.length&&d>0;){if(t[l]==="(")d++;else if(t[l]===")"){if(d--,d===0){l++;break}}else if(t[l]==="'"||t[l]==='"'||t[l]==="`"){let f=t[l];for(l++;l<t.length&&t[l]!==f;)t[l]==="\\"&&l++,l++;l++;continue}l++}let o=t.slice(r+i[0].length,l-1).trim();n+="$_bind_"+c+"={"+o+"}",r=l}else n+=" ",r++}else if(t.slice(r).match(/^@bind\s*\(/)){let i=t.slice(r).match(/^@bind\s*\(/);if(i){let c=r+i[0].length,l=1;for(;c<t.length&&l>0;){if(t[c]==="(")l++;else if(t[c]===")"){if(l--,l===0){c++;break}}else if(t[c]==="'"||t[c]==='"'||t[c]==="`"){let o=t[c];for(c++;c<t.length&&t[c]!==o;)t[c]==="\\"&&c++,c++;c++;continue}c++}let d=t.slice(r+i[0].length,c-1);n+="value={"+d+"}",r=c}else n+=" ",r++}else if(t.slice(r).match(/^@field\s*\(/)){let i=t.slice(r).match(/^@field\s*\(/);if(i){let c=r+i[0].length,l=1;for(;c<t.length&&l>0;){if(t[c]==="(")l++;else if(t[c]===")"){if(l--,l===0){c++;break}}else if(t[c]==="'"||t[c]==='"'||t[c]==="`"){let o=t[c];for(c++;c<t.length&&t[c]!==o;)t[c]==="\\"&&c++,c++;c++;continue}c++}let d=t.slice(r+i[0].length,c-1).trim();n+="value={"+d+".value}",r=c}else n+=" ",r++}else if(t.startsWith("@ref(",r)){let i=r+5,c=i,l=1;for(;i<t.length&&l>0;){if(t[i]==="(")l++;else if(t[i]===")"){if(l--,l===0){i++;break}}else if(t[i]==="'"||t[i]==='"'||t[i]==="`"){let d=t[i];for(i++;i<t.length&&t[i]!==d;)t[i]==="\\"&&i++,i++;i++;continue}i++}n+=" ",n+=t.slice(c,i-1),n+=" ",r=i}else n+=" ",r++;else if(t[r]==="{"){let i=0,c=r;for(;c<t.length;){if(t[c]==="{")i++;else if(t[c]==="}"&&(i--,i===0)){c++;break}c++}n+=t.slice(r,c),r=c}else n+=" ",r++;return s+n}function Q(e){let s=e.split(`
|
|
6
|
+
`),t=[],n=!1,r=0,i=!1;for(let c=0;c<s.length;c++){let l=s[c];if(!n){/\brender\s*\(\s*\)\s*\{/.test(l)&&(n=!0,r=1),t.push(l.replace(/@(if|elseif|else|for|empty)\b/g," $1"));continue}if(r+=re(l),r<=0){n=!1,i=!1,t.push(l);continue}if(!i){if(/^\s*return\s*\(\s*$/.test(l)){i=!0,t.push(l.replace(/return\s*\(/,d=>"{"+" ".repeat(d.length-1)));continue}t.push(l.replace(/@(if|elseif|else|for|empty)\b/g," $1"));continue}if(/^\s*\)\s*$/.test(l)){i=!1,t.push(l.replace(")","}"));continue}if(G.test(l)){t.push(xe(l));continue}if(/@(if|elseif|else|for|empty)\b/.test(l)){t.push(/@for\b/.test(l)?$e(l):l.replace(/@(if|elseif|else|for|empty)\b/g," $1"));continue}if(/^\s*</.test(l)){t.push(ge(l));continue}t.push(l)}return t.join(`
|
|
7
|
+
`)}function $e(e){let s=e.match(/^(\s*)@for\s*\((.+)\)\s*\{\s*$/);if(!s)return e.replace("@for"," for");let[,t,n]=s,r=n.indexOf(";"),c=(r>=0?n.slice(0,r):n).trim().match(/^(\w+)(?:\s*,\s*(\w+))?\s+of\s+(.+)$/);if(!c)return e.replace("@for"," for");let[,l,d,o]=c,f=e.length-t.length,u;if(d)u=`for (const ${l} of ${o.trim()}) {let ${d}=0;`;else{let h=`for (const ${l} of ${o.trim()})`;u=h+" ".repeat(Math.max(1,f-h.length-1))+"{"}return u.length<f?u+=" ".repeat(f-u.length):u.length>f&&(u=u.slice(0,f)),t+u}function xe(e){let s=e.match(/^(\s*)(.+)$/);if(!s)return e;let[,t,n]=s,r=n.length,l=/^@[A-Za-z_$][\w$]*\s*\([^)]*\)\s*\{\s*$/.test(n)||/^@slot(?::|\.)[A-Za-z_$][\w$]*\s*\([^)]*\)\s*(?:fallback\s*)?\{\s*$/.test(n)?"{":";";return l.length<r?l+=" ".repeat(r-l.length):l.length>r&&(l=l.slice(0,r)),t+l}function me(e){let s=e.match(/^(\s*)@for\s*\((.+)\)\s*\{\s*$/);if(!s)return null;let[,t,n]=s,r=n.indexOf(";"),c=(r>=0?n.slice(0,r):n).trim().match(/^(\w+)(?:\s*,\s*(\w+))?\s+of\s+(.+)$/);if(!c)return null;let[,l,d,o]=c,f=o.trim(),u=t.length,h=6,p=d?h+l.length+2:-1,a=h+l.length+(d?2+d.length+4:4),g=-1;if(r>=0){let S=n.slice(r),b=S.match(/;\s*track\s+(\w+)/);b&&(g=6+r+S.indexOf(b[1]))}let $=11,x=$+l.length+4,m=d?$+l.length+4+f.length+7:-1;return{indentLen:u,el:l,idx:d,iterTrimmed:f,elOrig:h,idxOrig:p,iterOrig:a,trackElOrig:g,elVirt:$,iterVirt:x,idxVirt:m}}function O(e,s){let{line:t,character:n}=e.getLineAndCharacterOfPosition(s),r=e.getFullText().split(`
|
|
8
|
+
`);if(!/@for\b/.test(r[t]))return null;let i=me(r[t]);if(!i)return null;let{indentLen:c,el:l,idx:d,iterTrimmed:o,elOrig:f,idxOrig:u,iterOrig:h,trackElOrig:p,elVirt:a,iterVirt:g,idxVirt:$}=i,x=n-c,m;if(x>=f&&x<f+l.length)m=a+(x-f);else if(d&&u>=0&&x>=u&&x<u+d.length)m=$+(x-u);else if(x>=h&&x<h+o.length)m=g+(x-h);else if(p>=0&&x>=p&&x<p+l.length)m=a+(x-p);else return null;return e.getPositionOfLineAndCharacter(t,c+m)}function Se(e,s){var r,i,c,l,d;function t(o){return typeof o=="string"&&o.endsWith(A)}function n(o){return t(o)?o.slice(0,-A.length):o}return{getCompilationSettings(){let o=e.getCompilationSettings();return k(P({},o),{plugins:[]})},getNewLine:()=>{var o;return((o=e.getNewLine)==null?void 0:o.call(e))||`
|
|
9
|
+
`},getProjectVersion:()=>{var o;return((o=e.getProjectVersion)==null?void 0:o.call(e))||"0"},getScriptFileNames(){let o=e.getScriptFileNames(),f=o.filter(u=>u.endsWith(".tsx")).map(u=>u+A);return[...o,...f]},getScriptKind(o){var f,u;return t(o)?s.ScriptKind.TS:(u=(f=e.getScriptKind)==null?void 0:f.call(e,o))!=null?u:s.ScriptKind.Unknown},getScriptVersion(o){let f=e.getScriptVersion(n(o));return t(o)?f+"-v":f},getScriptSnapshot(o){let f=e.getScriptSnapshot(n(o));if(!f)return f;if(t(o)){let u=f.getText(0,f.getLength());return s.ScriptSnapshot.fromString(Q(u))}if(typeof o=="string"&&o.endsWith(".tsx")){let u=f.getText(0,f.getLength());if(u.includes("@bind"))return s.ScriptSnapshot.fromString(z(u))}return f},getCurrentDirectory:()=>e.getCurrentDirectory(),getDefaultLibFileName:o=>e.getDefaultLibFileName(o),fileExists(o){var f,u,h,p;if(t(o)){let a=n(o);return(u=(f=e.fileExists)==null?void 0:f.call(e,a))!=null?u:!!e.getScriptSnapshot(a)}return(p=(h=e.fileExists)==null?void 0:h.call(e,o))!=null?p:!1},readFile(o,f){var h;let u=(h=e.readFile)==null?void 0:h.call(e,n(o),f);return t(o)&&u!=null?Q(u):typeof o=="string"&&o.endsWith(".tsx")&&u!=null&&u.includes("@bind")?z(u):u},resolveModuleNames:e.resolveModuleNames?(o,f,...u)=>e.resolveModuleNames(o,n(f),...u):void 0,resolveTypeReferenceDirectives:(r=e.resolveTypeReferenceDirectives)==null?void 0:r.bind(e),getResolvedModuleWithFailedLookupLocationsFromCache:(i=e.getResolvedModuleWithFailedLookupLocationsFromCache)==null?void 0:i.bind(e),readDirectory:(c=e.readDirectory)==null?void 0:c.bind(e),directoryExists:(l=e.directoryExists)==null?void 0:l.bind(e),getDirectories:(d=e.getDirectories)==null?void 0:d.bind(e),useCaseSensitiveFileNames:()=>{var o,f;return(f=(o=e.useCaseSensitiveFileNames)==null?void 0:o.call(e))!=null?f:!1}}}function we(e){let s=e==null?void 0:e.typescript;function t(n){var h,p;n.project.projectService.logger.info("[helfy-ts-plugin] Loaded"),B(n.languageServiceHost,s);let r=(p=(h=n.project).getCompilerHost)==null?void 0:p.call(h);r&&r!==n.languageServiceHost&&B(r,s);let i=n.languageService,c=Object.create(null);for(let a of Object.keys(i)){let g=i[a];c[a]=typeof g=="function"?(...$)=>g.apply(i,$):g}c.getSyntacticDiagnostics=a=>R(a,M(i,a,i.getSyntacticDiagnostics(a))),c.getSemanticDiagnostics=a=>R(a,M(i,a,i.getSemanticDiagnostics(a))),c.getSuggestionDiagnostics=a=>R(a,M(i,a,i.getSuggestionDiagnostics(a)));let l=null;if(s)try{let a=Se(n.languageServiceHost,s);l=s.createLanguageService(a),n.project.projectService.logger.info("[helfy-ts-plugin] Virtual LS created")}catch(a){n.project.projectService.logger.info("[helfy-ts-plugin] Virtual LS error: "+a)}let d=null;function o(a,g){var x;let $=(x=a.version)!=null?x:a.fileName;if(!d||d.version!==$){let m=a.getFullText().split(`
|
|
10
|
+
`);d={version:$,set:ne(m)}}return d.set.has(g)}function f(a,g){var m;if(!l||!a.endsWith(".tsx"))return!1;let $=(m=i.getProgram())==null?void 0:m.getSourceFile(a);if(!$||!K.test($.getFullText()))return!1;let{line:x}=$.getLineAndCharacterOfPosition(g);return o($,x)}function u(a,g){var x,m;let $=(x=i.getProgram())==null?void 0:x.getSourceFile(a);return $&&(m=O($,g))!=null?m:g}return c.getCompletionsAtPosition=(a,g,$)=>{var C,y,T;let x=L.has(a),m=x?j(a,g):g;if(!f(a,g)){let w=i.getCompletionsAtPosition(a,m,$);return x&&(w!=null&&w.entries)&&(w.entries=w.entries.map(v=>{if(v.replacementSpan){let I=F(a,v.replacementSpan.start,v.replacementSpan.length);return k(P({},v),{replacementSpan:I})}return v})),w}let S=(C=i.getProgram())==null?void 0:C.getSourceFile(a),b=(y=S==null?void 0:S.getFullText().split(`
|
|
11
|
+
`))!=null?y:[],{line:E}=S?S.getLineAndCharacterOfPosition(g):{line:-1};if(/@for\b/.test((T=b[E])!=null?T:"")){let w=S?O(S,g):null;if(w===null)return i.getCompletionsAtPosition(a,g,$);try{return l.getCompletionsAtPosition(a+A,w,$)||i.getCompletionsAtPosition(a,g,$)}catch(v){return i.getCompletionsAtPosition(a,g,$)}}try{return l.getCompletionsAtPosition(a+A,g,$)||i.getCompletionsAtPosition(a,g,$)}catch(w){return i.getCompletionsAtPosition(a,g,$)}},c.getSignatureHelpItems=(a,g,$)=>{let x=L.has(a),m=x?j(a,g):g;if(!f(a,g)){let S=i.getSignatureHelpItems(a,m,$);if(x&&(S!=null&&S.applicableSpan)){let b=F(a,S.applicableSpan.start,S.applicableSpan.length);S.applicableSpan=b}return S}try{return l.getSignatureHelpItems(a+A,u(a,g),$)||i.getSignatureHelpItems(a,g,$)}catch(S){return i.getSignatureHelpItems(a,g,$)}},c.getQuickInfoAtPosition=(a,g)=>{var C,y,T;let $=L.has(a),x=$?j(a,g):g,m=$?x:g;if(!f(a,g)){let w=i.getQuickInfoAtPosition(a,m);if($&&(w!=null&&w.textSpan)){let v=F(a,w.textSpan.start,w.textSpan.length);return k(P({},w),{textSpan:v})}return w}let S=(C=i.getProgram())==null?void 0:C.getSourceFile(a),b=(y=S==null?void 0:S.getFullText().split(`
|
|
12
|
+
`))!=null?y:[],{line:E}=S?S.getLineAndCharacterOfPosition(g):{line:-1};if(/@for\b/.test((T=b[E])!=null?T:"")){let w=S?O(S,g):null;if(w===null)return i.getQuickInfoAtPosition(a,g);try{return l.getQuickInfoAtPosition(a+A,w)||i.getQuickInfoAtPosition(a,g)}catch(v){return i.getQuickInfoAtPosition(a,g)}}try{return l.getQuickInfoAtPosition(a+A,g)||i.getQuickInfoAtPosition(a,g)}catch(w){return i.getQuickInfoAtPosition(a,g)}},c}return{create:t}}function R(e,s){return!L.has(e)||!s.length?s:s.map(t=>{var r;if(t.start==null)return t;let n=F(e,t.start,(r=t.length)!=null?r:0);return k(P({},t),{start:n.start,length:n.length})})}function be(e){let s=new Set;for(let t of e){let n=t.match(/@slot\.\w+\s*\(\s*\{([^}]*)\}\s*\)\s*\{/);if(n)for(let r of n[1].split(",")){let i=r.split(":")[0].trim();/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(i)&&s.add(i)}}return s}function M(e,s,t){if(!t.length||!s.endsWith(".tsx"))return t;let n=e.getProgram();if(!n)return t;let r=n.getSourceFile(s);if(!r){let f=s.replace(/\\/g,"/");for(let u of n.getSourceFiles())if(u.fileName.replace(/\\/g,"/")===f||u.fileName.endsWith(s)||f.endsWith(u.fileName.replace(/\\/g,"/"))){r=u;break}}if(!r)return t;let i=r.getFullText();if(!K.test(i))return t;let c=i.split(`
|
|
13
|
+
`),l=ne(c),d=be(c),o=c.map((f,u)=>l.has(u)?f:"").join(`
|
|
14
|
+
`);return t.filter(f=>{if(f.start==null)return!0;let u=r.getLineAndCharacterOfPosition(f.start).line;if(l.has(u)||f.code===1109&&d.size>0)return!1;if(f.code===6198||f.code===6133||f.code===2304){let h=i.slice(f.start,f.start+(f.length||0)).trim(),p=(h.match(/^[a-zA-Z_$][a-zA-Z0-9_$]*/)||[h])[0];if(p&&(new RegExp("\\b"+p.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"\\b").test(o)||d.has(p))||f.code===2304&&i.includes("@slot.")&&new RegExp("@slot\\.\\w+\\s*\\(\\s*\\{[^}]*\\b"+p.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"\\b").test(i))return!1}return!0})}function ne(e){let s=new Set,t=0;for(;t<e.length;)if(ae.test(e[t])){let n=U(e,t);for(let r=t;r<=n;r++)s.add(r);t=n+1}else if(ve(e[t]))if(/\{\s*$/.test(e[t])){let r=U(e,t);for(let i=t;i<=r;i++)s.add(i);t=r+1}else s.add(t),t++;else if(/@ref\s*\(/.test(e[t])){t>0&&/<\s*[A-Za-z_]/.test(e[t-1])&&!/>\s*$/.test(e[t-1].trim())&&s.add(t-1),s.add(t);let n=t+1;for(;n<e.length&&!/\/>/.test(e[n]);)s.add(n),n++;n<e.length&&s.add(n),n+1<e.length&&/^\s*\)\s*;?\s*$/.test(e[n+1])?(s.add(n+1),t=n+2):t=n+1}else if(/@bind\s*\(/.test(e[t])||/@bind:[A-Za-z_$][\w$]*\s*\(/.test(e[t])||/@field\s*\(/.test(e[t])){t>0&&/<\s*[A-Za-z_]/.test(e[t-1])&&!/>\s*$/.test(e[t-1].trim())&&s.add(t-1),s.add(t);let n=t+1;for(;n<e.length&&!/\/>/.test(e[n]);)s.add(n),n++;n<e.length&&s.add(n),n+1<e.length&&/^\s*\)\s*;?\s*$/.test(e[n+1])?(s.add(n+1),t=n+2):t=n+1}else t++;return s}function ve(e){return G.test(e)}function U(e,s){let t=0;for(let n=s;n<e.length;n++)if(t+=re(e[n]),t<=0){let r=Ee(e,n+1);if(r!==-1&&ue.test(e[r])){t=0,n=r-1;continue}return n}return e.length-1}function re(e){let s=0,t=!1,n="";for(let r=0;r<e.length;r++){let i=e[r];if(t){if(i==="\\"){r++;continue}i===n&&(t=!1);continue}if(i==="'"||i==='"'||i==="`"){t=!0,n=i;continue}i==="{"&&s++,i==="}"&&s--}return s}function Ee(e,s){for(let t=s;t<e.length;t++)if(e[t].trim())return t;return-1}module.exports=we;
|