mirror of
https://gitee.com/myxzgzs/boyue-kfcode-hasfj.git
synced 2025-06-21 17:29:36 +08:00
4 lines
3.3 KiB
JavaScript
4 lines
3.3 KiB
JavaScript
import{_ as M,aA as x,aB as V,r as o,a3 as $,D as B,c as m,o as b,F as C,f as S,R as I,aC as F,ax as y,k as n,I as H,J as D}from"./index-CrAWI0wi.js";const O=["innerHTML"],P={__name:"mybatis-input",props:x({height:{type:String,default:"200px"},width:{type:String,default:"100%"},mode:{type:String,default:"input"}},{modelValue:{},modelModifiers:{}}),emits:x(["change"],["update:modelValue"]),setup(h,{emit:T}){const f=V(h,"modelValue"),w=h,c=o("200px"),p=o("100%"),v=T,i=o(0),d=o({}),u=o({});function k(a){let t=[];for(let e=0;e<a.length;e++){let l=a[e];if(l==="("||l==="{"||l==="["||l==="<")t.push(l);else if(l===")"||l==="}"||l==="]"||l===">"){let s=t.pop();if(l===")"&&s!=="("||l==="}"&&s!=="{"||l==="]"&&s!=="["||l===">"&&s!=="<")return!1}}return t.length===0}function q(a){const t=[{filter:/(?!=[\s]|[ ])?(count\(|date_format\(|find_in_set\()(.*?)(\))(?!=[\s]|[ ])?/gi,replace(e){return e.replace(this.filter,'<span class="code-sql">$1<span class="code-fun-params">$2</span>$3</span>')}},{filter:new RegExp("(?<=^| |\\s)(select|where|insert|update|delete|create|alter|drop|database|table|from|order|group|by|having|join|into|values|like|between|null|not|and|or|in|bigint|varchar|date|timestamp|union|all|as)(?=\\s| |$)","gi"),replace(e){return e.replace(this.filter,'<span class="code-sql">$1</span>')}},{filter:/(<.*?>)/g,replace(e){return e.replace(this.filter,'<span class="code-tag">$1</span>')}},{filter:/(<\/.*?>)/g,replace(e){return e.replace(this.filter,'<span class="code-tag">$1</span>')}},{filter:/(#{.*?})/g,replace(e){return e.replace(this.filter,'<span class="code-insert-params">$1</span>')}}];for(let e of t)e.filter.test(a)&&(a=e.replace(a));return a}const L=()=>{const a=(""+f.value).split(`
|
|
`);let t=0,e=null;function l(s){d.value[t]=s,s=s.replace(/</g,"<").replace(/>/g,">").replace(/\n/g,"<br/>").replace(/\s/g," "),u.value[t]=q(s),t=t+1}for(let s=0;s<a.length;s++)e==null?e=a[s]:e=e+`
|
|
`+a[s],k(e)&&e!=u[t]&&(l(e),e=null);(i.value=t)&&(i.value=t)};$(()=>f.value,()=>{L(),v("change",{texts:d.value,htmls:u.value,length:i.value,scrollTop:r.value.scrollTop,scrollLeft:r.value.scrollLeft})});const r=o(null),g=o(null);function _(a){g.value.scrollTop=r.value.scrollTop,g.value.scrollLeft=r.value.scrollLeft,v("change",{texts:d.value,htmls:u.value,length:i.value,scrollTop:r.value.scrollTop,scrollLeft:r.value.scrollLeft})}return B(()=>{const a=new MutationObserver((e,l)=>{c.value=getComputedStyle(r.value).getPropertyValue("height"),p.value=getComputedStyle(r.value).getPropertyValue("width")}),t={attributes:!0,childList:!1,subtree:!0,attributeFilter:["style"],attributeOldValue:!0};a.observe(r.value,t),L(),c.value=w.height,p.value=w.width,v("change",{texts:d.value,htmls:u.value,length:i.value,scrollTop:r.value.scrollTop,scrollLeft:r.value.scrollLeft})}),(a,t)=>(b(),m("div",{class:"sql-wrap",style:y({height:n(c),width:n(p)})},[C(S("textarea",{class:"sql-input",ref_key:"sqlInput",ref:r,onScroll:_,"onUpdate:modelValue":t[0]||(t[0]=e=>f.value=e),style:y({height:n(c),width:n(p)})},null,36),[[I,h.mode==="input"],[F,f.value]]),S("div",{class:"sql-show",ref_key:"sqlShow",ref:g,onScroll:_,style:y({height:n(c),width:n(p)})},[(b(!0),m(H,null,D(n(i),e=>(b(),m("div",{class:"sql-line",key:e,innerHTML:n(u)[e-1]},null,8,O))),128))],36)],4))}},z=M(P,[["__scopeId","data-v-6a1de948"]]);export{z as default};
|