@next-bricks/vs 1.13.4 → 1.13.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.
Files changed (27) hide show
  1. package/dist/bricks.json +1 -1
  2. package/dist/chunks/{4837.e0ad607c.js → 4837.d2932173.js} +2 -2
  3. package/dist/chunks/{4837.e0ad607c.js.map → 4837.d2932173.js.map} +1 -1
  4. package/dist/chunks/5009.7d9a4942.js +3 -0
  5. package/dist/chunks/5009.7d9a4942.js.map +1 -0
  6. package/dist/chunks/5399.5fd2e9ef.js +2 -0
  7. package/dist/chunks/5399.5fd2e9ef.js.map +1 -0
  8. package/dist/chunks/{3706.3fb4ae7b.js → 7096.36df679e.js} +2 -2
  9. package/dist/chunks/{3706.3fb4ae7b.js.map → 7096.36df679e.js.map} +1 -1
  10. package/dist/chunks/{7218.ec74f3f4.js → 7218.461752c9.js} +2 -2
  11. package/dist/chunks/{7218.ec74f3f4.js.map → 7218.461752c9.js.map} +1 -1
  12. package/dist/chunks/{7242.e853a1b7.js → 7242.c96815c3.js} +2 -2
  13. package/dist/chunks/{7242.e853a1b7.js.map → 7242.c96815c3.js.map} +1 -1
  14. package/dist/chunks/{code-editor.6b18bf42.js → code-editor.b8130f7c.js} +2 -2
  15. package/dist/chunks/{code-editor.6b18bf42.js.map → code-editor.b8130f7c.js.map} +1 -1
  16. package/dist/chunks/main.c3e47e73.js +2 -0
  17. package/dist/chunks/{main.7b1ffd9c.js.map → main.c3e47e73.js.map} +1 -1
  18. package/dist/index.b494daa6.js +2 -0
  19. package/dist/{index.41b40834.js.map → index.b494daa6.js.map} +1 -1
  20. package/package.json +2 -2
  21. package/dist/chunks/3413.9577b6db.js +0 -3
  22. package/dist/chunks/3413.9577b6db.js.map +0 -1
  23. package/dist/chunks/5399.0b919a30.js +0 -2
  24. package/dist/chunks/5399.0b919a30.js.map +0 -1
  25. package/dist/chunks/main.7b1ffd9c.js +0 -2
  26. package/dist/index.41b40834.js +0 -2
  27. /package/dist/chunks/{3413.9577b6db.js.LICENSE.txt → 5009.7d9a4942.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";(globalThis.webpackChunk_next_bricks_vs=globalThis.webpackChunk_next_bricks_vs||[]).push([[7242],{7242:(e,t,n)=>{n.r(t);var i,s=n(4635),r=n(918),a=n(6902),o=n(5536),l=n(6121),c=n(829),u=n(2740),h=n(8769),d=n.n(h),g=n(4782),m=n(279),p=n(1389),k=n(7873),f=n(426),A=n(3683),v=n(6197),y=n(3909),w=n(2257),b=n(3135),M=n(1732),C=n.n(M),E=(n(6477),n(2445)),x=n(7137),L=n(4929),S=n(2738),B=n(4804),N=n(4102),W=n(9287),_=n(5502),R=n(8182),P=n(3373),z=n.n(P),I=(n(3569),n(1968)),O=n(1836);let V,D,F,H,K,T,Y,q,j,U,J,X,$,G,Q,Z,ee,te,ne,ie,se,re,ae,oe,le,ce,ue,he,de,ge,me,pe,ke,fe,Ae,ve,ye,we,be,Me,Ce,Ee,xe,Le,Se,Be,Ne,We,_e,Re,Pe,ze,Ie,Oe,Ve,De,Fe,He,Ke,Te,Ye;(0,_.initializeReactI18n)(R.NS,R.I),(0,v.kz)(A),(0,y.kz)(A),(0,w.kz)(A,"brick_next_yaml"),(0,b.kz)(A);const{defineElement:qe,property:je,event:Ue}=(0,g.createDecorators)(),Je=(0,p.wrapBrick)("eo-form-item"),Xe=(0,p.wrapBrick)("eo-tooltip"),$e=(0,p.wrapBrick)("eo-icon"),Ge=(0,m.unwrapProvider)("basic.copy-to-clipboard"),Qe=(0,m.unwrapProvider)("basic.show-notification");let Ze;var et=new WeakMap,tt=new WeakMap,nt=new WeakMap,it=new WeakMap,st=new WeakMap,rt=new WeakMap,at=new WeakMap,ot=new WeakMap,lt=new WeakMap,ct=new WeakMap,ut=new WeakMap,ht=new WeakMap,dt=new WeakMap,gt=new WeakMap,mt=new WeakMap,pt=new WeakMap,kt=new WeakMap,ft=new WeakMap,At=new WeakMap,vt=new WeakMap,yt=new WeakMap,wt=new WeakMap,bt=new WeakMap,Mt=new WeakMap,Ct=new WeakMap,Et=new WeakSet,xt=new WeakMap,Lt=new WeakMap,St=new WeakMap,Bt=new WeakMap,Nt=new WeakMap,Wt=new WeakMap;class _t extends f.N{constructor(){super(...arguments),(0,s.A)(this,Et),(0,r.A)(this,et,D(this)),(0,r.A)(this,tt,(F(this),H(this))),(0,r.A)(this,nt,(K(this),T(this))),(0,r.A)(this,it,(Y(this),q(this))),(0,r.A)(this,st,(j(this),U(this))),(0,r.A)(this,rt,(J(this),X(this))),(0,r.A)(this,at,($(this),G(this))),(0,r.A)(this,ot,(Q(this),Z(this))),(0,r.A)(this,lt,(ee(this),te(this))),(0,r.A)(this,ct,(ne(this),ie(this))),(0,r.A)(this,ut,(se(this),re(this))),(0,r.A)(this,ht,(ae(this),oe(this))),(0,r.A)(this,dt,(le(this),ce(this))),(0,r.A)(this,gt,(ue(this),he(this))),(0,r.A)(this,mt,(de(this),ge(this))),(0,r.A)(this,pt,(me(this),pe(this))),(0,r.A)(this,kt,(ke(this),fe(this))),(0,r.A)(this,ft,(Ae(this),ve(this))),(0,r.A)(this,At,(ye(this),we(this))),(0,r.A)(this,vt,(be(this),Me(this))),(0,r.A)(this,yt,(Ce(this),Ee(this))),(0,r.A)(this,wt,(xe(this),Le(this))),(0,r.A)(this,bt,(Se(this),Be(this))),(0,r.A)(this,Mt,(Ne(this),We(this))),(0,r.A)(this,Ct,(_e(this),Re(this))),(0,r.A)(this,xt,(Ie(this),Oe(this))),(0,r.A)(this,Lt,(Fe(this),e=>{var t;this.value=e,null===(t=this.getFormElement())||void 0===t||t.formStore.onChange(this.name,e),(0,o.A)(Et,this,Pe).emit(e)})),(0,r.A)(this,St,(e=>{(0,o.A)(Et,this,Ve).emit(e)})),(0,r.A)(this,Bt,He(this)),(0,r.A)(this,Nt,(Ye(this),e=>{(0,o.A)(Et,this,Ke).emit(e)})),(0,r.A)(this,Wt,(e=>{if("brick_next_yaml"===this.language||"yaml"===this.language)try{C().load(e)}catch{return"请填写正确的格式"}return""}))}get name(){return(0,c.A)(et,this)}set name(e){(0,l.A)(et,this,e)}get label(){return(0,c.A)(tt,this)}set label(e){(0,l.A)(tt,this,e)}get value(){return(0,c.A)(nt,this)}set value(e){(0,l.A)(nt,this,e)}get language(){return(0,c.A)(it,this)}set language(e){(0,l.A)(it,this,e)}get theme(){return(0,c.A)(st,this)}set theme(e){(0,l.A)(st,this,e)}get required(){return(0,c.A)(rt,this)}set required(e){(0,l.A)(rt,this,e)}get readOnly(){return(0,c.A)(at,this)}set readOnly(e){(0,l.A)(at,this,e)}get automaticLayout(){return(0,c.A)(ot,this)}set automaticLayout(e){(0,l.A)(ot,this,e)}get minLines(){return(0,c.A)(lt,this)}set minLines(e){(0,l.A)(lt,this,e)}get completers(){return(0,c.A)(ct,this)}set completers(e){(0,l.A)(ct,this,e)}get advancedCompleters(){return(0,c.A)(ut,this)}set advancedCompleters(e){(0,l.A)(ut,this,e)}get markers(){return(0,c.A)(ht,this)}set markers(e){(0,l.A)(ht,this,e)}get links(){return(0,c.A)(dt,this)}set links(e){(0,l.A)(dt,this,e)}get maxLines(){return(0,c.A)(gt,this)}set maxLines(e){(0,l.A)(gt,this,e)}get height(){return(0,c.A)(mt,this)}set height(e){(0,l.A)(mt,this,e)}get message(){return(0,c.A)(pt,this)}set message(e){(0,l.A)(pt,this,e)}get placeholder(){return(0,c.A)(kt,this)}set placeholder(e){(0,l.A)(kt,this,e)}get showExpandButton(){return(0,c.A)(ft,this)}set showExpandButton(e){(0,l.A)(ft,this,e)}get lineNumbers(){return(0,c.A)(At,this)}set lineNumbers(e){(0,l.A)(At,this,e)}get tokenConfig(){return(0,c.A)(vt,this)}set tokenConfig(e){(0,l.A)(vt,this,e)}get customValidationInBrickNextYaml(){return(0,c.A)(yt,this)}set customValidationInBrickNextYaml(e){(0,l.A)(yt,this,e)}get showCopyButton(){return(0,c.A)(wt,this)}set showCopyButton(e){(0,l.A)(wt,this,e)}get glyphMargin(){return(0,c.A)(bt,this)}set glyphMargin(e){(0,l.A)(bt,this,e)}get extraLibs(){return(0,c.A)(Mt,this)}set extraLibs(e){(0,l.A)(Mt,this,e)}connectedCallback(){this.style.display||(this.style.display="block"),super.connectedCallback()}render(){return d().createElement(Je,{exportparts:"message",curElement:this,formElement:this.getFormElement(),name:this.name,label:this.label,required:this.required,helpBrick:this.helpBrick,labelBrick:this.labelBrick,notRender:this.notRender,validator:(0,c.A)(Wt,this)},d().createElement(Rt,{value:this.value,language:this.language,readOnly:this.readOnly,theme:this.theme,automaticLayout:this.automaticLayout,minLines:this.minLines,maxLines:this.maxLines,height:this.height,completers:this.completers,advancedCompleters:this.advancedCompleters,extraLibs:this.extraLibs,markers:this.markers,links:this.links,tokenConfig:this.tokenConfig,lineNumbers:this.lineNumbers,glyphMargin:this.glyphMargin,placeholder:this.placeholder,showCopyButton:this.showCopyButton,showExpandButton:this.showExpandButton,validateState:this.validateState,onChange:(0,c.A)(Lt,this),onUserInput:(0,c.A)(St,this),onTokenClick:(0,c.A)(Nt,this),customValidationInBrickNextYaml:this.customValidationInBrickNextYaml}))}}function Rt(e){let{value:t,language:n,theme:i,minLines:s,maxLines:r,height:a,automaticLayout:o,completers:l,advancedCompleters:c,markers:u,readOnly:g,links:m,extraLibs:p,tokenConfig:f={showDSKey:!1},showExpandButton:v,showCopyButton:y=!0,lineNumbers:w="on",glyphMargin:b=!1,placeholder:M,validateState:C,onChange:P,onUserInput:V,onTokenClick:D,customValidationInBrickNextYaml:F}=e;const H=t??"",K=n??"plaintext",T=i??"auto",Y=s??3,q=r??1/0,j=a??500,[U,J]=(0,h.useState)(!1),X=(0,h.useMemo)((()=>(0,E.uniqueId)("worker")),[]),{t:$}=(0,_.useTranslation)(R.NS),G=(0,h.useRef)(null),Q=(0,h.useRef)(),Z=(0,h.useRef)(),ee=(0,h.useRef)({width:300,height:Pt(H,Y,q)}),[te,ne]=(0,h.useState)(),ie=(0,h.useRef)(o),se=(0,k.useCurrentTheme)();(0,h.useEffect)((()=>{if("brick_next_yaml"!==K)return;const e=S.h.getInstance(X),t=e.addEventListener("message",(e=>{const{token:t,data:n}=e.data,i=Z.current.getModel();if(i)switch(t){case"parse_yaml":{var s;const{value:e,tokens:t,markers:r}=n;null===(s=Q.current)||void 0===s||s.set(t.map((e=>({range:new A.Range(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),options:{inlineClassName:"highlight"}})))),A.editor.setModelMarkers(i,"brick_next_yaml",r),V(e);break}case"parse_yaml_error":var r;A.editor.setModelMarkers(i,"brick_next_yaml",[]),null==Q||null===(r=Q.current)||void 0===r||r.set([]),V(void 0)}}));return()=>{e.removeEventListener(t)}}),[]),(0,h.useEffect)((()=>{const e="auto"===T?"dark"===se||"dark-v2"===se?"vs-dark":"vs":T,t=e.includes("dark")?"#FFFFFF0F":"#0000000A";A.editor.defineTheme("custom-theme",{base:e,inherit:!0,rules:[],colors:{"editor.lineHighlightBackground":`${t}`}}),A.editor.setTheme("custom-theme")}),[se,T]),(0,h.useEffect)((()=>{if(Z.current){const e=Z.current.getModel();A.editor.setModelLanguage(e,K)}}),[K]),(0,h.useEffect)((()=>{if("brick_next_yaml"===K){const e=(0,L.v)(l,c,X,f),t=A.languages.registerCompletionItemProvider("brick_next_yaml",{provideCompletionItems:e,triggerCharacters:[".",":","<"]});return()=>{t.dispose()}}}),[l,c,K]);const re=(0,h.useCallback)((()=>{if("brick_next_yaml"!==K||!Z.current)return;const e=S.h.getInstance(X),t=Z.current.getModel();e.postMessage({token:"parse_yaml",data:{value:null==t?void 0:t.getValue(),links:m,markers:u},options:f})}),[K,f,m,u,X]),ae=(0,h.useMemo)((()=>(0,E.debounce)(re,300)),[re]);(0,h.useEffect)((()=>{const e=Z.current;if(e){const t=e.getModel();null!=t&&t.getValue&&H!==t.getValue()&&(t.setValue(H),ae())}}),[H,ae]),(0,h.useEffect)((()=>{ae()}),[]),(0,h.useLayoutEffect)((()=>{var e;if("fit-content"!==ie.current||!G.current)return;ee.current.width=G.current.getBoundingClientRect().width,null===(e=Z.current)||void 0===e||e.layout(ee.current);const t=new ResizeObserver((e=>{for(const n of e)if(n.target===G.current){const e=n.contentBoxSize?n.contentBoxSize[0].inlineSize:n.contentRect.width,i=n.contentBoxSize?n.contentBoxSize[0].blockSize:n.contentRect.height;var t;(e!==ee.current.width||U)&&(ee.current.width=e,null===(t=Z.current)||void 0===t||t.layout({width:e,height:U?i:ee.current.height}));break}}));return t.observe(G.current),()=>{t.disconnect()}}),[U]),(0,h.useLayoutEffect)((()=>{if("fit-container"!==ie.current)return;const e=function(e){let t=e;for(;t;){const e="vs.code-editor"===t.tagName.toLowerCase();if(t=t.parentElement,e)return t}}(G.current);if(!e)return;const t=new ResizeObserver((()=>{ne(e.offsetHeight)}));return t.observe(e),()=>{t.disconnect()}}),[]),(0,h.useEffect)((()=>{"fit-container"!==ie.current&&"fit-content"!==ie.current&&ne(j)}),[j]),(0,h.useEffect)((()=>{Z.current&&Z.current.updateOptions({readOnly:g})}),[g]),(0,h.useEffect)((()=>{if(Z.current||!G.current)return;const e=A.editor.createModel(H,K);if("brick_next_yaml"===K){const t=(0,N.AR)(e.uri);A.editor.createModel(H,"javascript",t),A.languages.typescript.javascriptDefaults.addExtraLib((0,N.Eh)(),e.uri.toString()+"d.ts")}Z.current=A.editor.create(G.current,{model:e,minimap:{enabled:!1,showRegionSectionHeaders:!1,showMarkSectionHeaders:!1},scrollBeyondLastLine:!1,tabSize:2,insertSpaces:!0,automaticLayout:"fit-content"!==ie.current,fontSize:x.yU,lineHeight:x.fE,scrollbar:{horizontalScrollbarSize:x.lP,verticalScrollbarSize:x.lP,horizontalSliderSize:8,verticalSliderSize:8,alwaysConsumeMouseWheel:!1},padding:{top:x.Vu,bottom:"fit-content"==ie.current?void 0:x.Vu},overviewRulerBorder:!1,mouseWheelScrollSensitivity:.5,fixedOverflowWidgets:!0,lineNumbers:w,lineNumbersMinChars:3,glyphMargin:b,folding:"off"!==w,suggest:{insertMode:"insert",preview:!0},readOnly:g,quickSuggestions:{strings:!0,other:!0,comments:!0},renderLineHighlightOnlyWhenFocus:!0,unicodeHighlight:{ambiguousCharacters:!1}}),Q.current=Z.current.createDecorationsCollection()}),[]),(0,h.useEffect)((()=>{const e=p??[],t="typescript"===K?"typescriptDefaults":"javascriptDefaults",n=(0,W.m)(e,{languageDefaults:t});return()=>{for(const e of n)e.dispose()}}),[p,K]),(0,h.useEffect)((()=>{const e=Z.current;if("brick_next_yaml"===K&&e){const t=e.getModel(),n=e.onMouseDown((function(e){var n;const i=Q.current;((null==i||null===(n=i.getRanges)||void 0===n?void 0:n.call(i))??[]).forEach((n=>{const i=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";n&&e.target.position&&e.event[i]&&n.containsPosition(e.target.position)&&D(t.getValueInRange(n))}))})),i=e.onMouseMove((function(e){const t=Q.current;t&&t.getRanges().forEach((n=>{const i=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";if(n&&e.target.position&&e.event[i]&&n.containsPosition(e.target.position)){const e=t.getRanges().map((e=>({range:e,options:{inlineClassName:n.equalsRange(e)?"highlight pointer":"highlight"}})));t.set(e)}else if(!e.event[i]){const e=t.getRanges().map((e=>({range:e,options:{inlineClassName:"highlight"}})));t.set(e)}}))}));return()=>{null==i||i.dispose(),null==n||n.dispose()}}}),[K,D,se,T]),(0,h.useEffect)((()=>{const e=Z.current;if(!e||!G.current||"fit-content"!==ie.current)return;const t=e.onDidContentSizeChange((t=>{if(!U&&t.contentHeightChanged){const n=zt(t.contentHeight,Y,q);n!==ee.current.height&&(ee.current.height=n,e.layout(ee.current))}})),n=zt(e.getContentHeight(),Y,q);return n!==ee.current.height&&(ee.current.height=n,e.layout(ee.current)),()=>{t.dispose()}}),[q,Y,U]);const oe=(0,h.useCallback)((async(e,t)=>{A.editor.setModelMarkers(e,"semantic_validate",[]);const n=e.findPreviousMatch("<%[~=]?",t,!0,!1,null,!1),i=e.findNextMatch("%>",t,!1,!1,null,!1),s=null==n?void 0:n.range,r=null==i?void 0:i.range;if(s&&r){const n=new A.Range(s.startLineNumber,s.endColumn,r.startLineNumber,r.startColumn),i=e.getValueInRange(n);if(n.containsPosition(t)&&!/<% | %>/.test(i)){const t=(0,N.AR)(e.uri);A.editor.getModel(t).setValue(i);const r=e.getOffsetAt(new A.Position(s.startLineNumber,s.endColumn));if(I.b.getInstance(X).updateState({content:i,range:n,offset:r}),!F)return;const a=await A.languages.typescript.getJavaScriptWorker(),o=await a(t),l=(await o.getSemanticDiagnostics(t.toString())).map((t=>{const n=r+(t.start??0),i=e.getPositionAt(n);return{startLineNumber:i.lineNumber,startColumn:i.column,endLineNumber:i.lineNumber,endColumn:i.column+t.length,message:t.messageText,severity:A.MarkerSeverity.Warning}}));A.editor.setModelMarkers(e,"semantic_validate",l)}}}),[X]);(0,h.useEffect)((()=>{if(!Z.current)return;const e=Z.current.getModel(),t=e.onDidChangeContent((async()=>{(0,B.J)(X),["brick_next_yaml"].includes(K)&&(oe(e,Z.current.getPosition()),ae()),P(e.getValue())}));return()=>{t.dispose()}}),[ae,P,X,K,oe]),(0,h.useEffect)((()=>{if(U){const e=t=>{"Escape"!==t.key&&"Esc"!==t.key||(window.removeEventListener("keydown",e),J(!1))};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}}}),[U]),(0,h.useEffect)((()=>()=>{var e,t;null===(e=Z.current)||void 0===e||null===(e=e.getModel())||void 0===e||e.dispose(),null===(t=Z.current)||void 0===t||t.dispose()}),[]),(0,h.useEffect)((()=>{if(!Z.current&&!M)return;const e=new O.j(M,Z.current);return()=>{e.dispose()}}),[M]);const le=(0,h.useCallback)((()=>{if(Z.current){const e=Z.current.getModel();Ge(e.getValue()).then((()=>Qe({type:"success",message:$(R.K.COPY_SUCCESS)}))).catch((()=>Qe({type:"error",message:$(R.K.COPY_FAILED)})))}}),[$]),ce=(0,h.useCallback)((()=>{J(!U)}),[U]);return d().createElement("div",{className:z()("code-editor-wrapper",{expanded:U,error:"error"===C})},d().createElement("div",{ref:G,style:{height:U?"100%":te,overflow:U?"scroll":""}}),d().createElement("div",{className:"toolbar"},y&&d().createElement(Xe,{content:$(R.K.COPY)},d().createElement($e,{className:"copy-icon",icon:"copy",lib:"antd",theme:"outlined",onClick:le})),v&&d().createElement(Xe,{content:$(U?R.K.COLLAPSE:R.K.EXPAND)},d().createElement($e,{className:"expand-icon",icon:U?"compress":"expand",lib:"antd",theme:"outlined",onClick:ce}))))}function Pt(e,t,n){return It(Math.min(n,Math.max(t,e.split("\n").length)))}function zt(e,t,n){let i=e;return(e-x.Vu)%x.fE==0&&(i=e+x.lP),Math.min(It(n),Math.max(i,It(t)))}function It(e){return e*x.fE+x.lP+x.Vu}i=_t,({e:[D,F,H,K,T,Y,q,j,U,J,X,$,G,Q,Z,ee,te,ne,ie,se,re,ae,oe,le,ce,ue,he,de,ge,me,pe,ke,fe,Ae,ve,ye,we,be,Me,Ce,Ee,xe,Le,Se,Be,Ne,We,_e,Re,Pe,ze,Ie,Oe,Ve,De,Fe,He,Ke,Te,Ye],c:[Ze,V]}=(0,u.A)(i,[qe("vs.code-editor",{shadowOptions:!1})],[[je(),1,"name"],[je(),1,"label"],[je(),1,"value"],[je(),1,"language"],[je(),1,"theme"],[je({type:Boolean}),1,"required"],[je({type:Boolean}),1,"readOnly"],[je(),1,"automaticLayout"],[je({type:Number}),1,"minLines"],[je({attribute:!1}),1,"completers"],[je({attribute:!1}),1,"advancedCompleters"],[je({attribute:!1}),1,"markers"],[je({attribute:!1}),1,"links"],[je({type:Number}),1,"maxLines"],[je({attribute:!1}),1,"height"],[je(),1,"message"],[je(),1,"placeholder"],[je({type:Boolean}),1,"showExpandButton"],[je(),1,"lineNumbers"],[je({attribute:!1}),1,"tokenConfig"],[je({type:Boolean}),1,"customValidationInBrickNextYaml"],[je({type:Boolean}),1,"showCopyButton"],[je({type:Boolean}),1,"glyphMargin"],[je({attribute:!1}),1,"extraLibs"],[Ue({type:"code.change"}),1,"codeChange",e=>(0,c.A)(Ct,e),(e,t)=>(0,l.A)(Ct,e,t)],[Ue({type:"user.input"}),1,"userInput",e=>(0,c.A)(xt,e),(e,t)=>(0,l.A)(xt,e,t)],[Ue({type:"token.click"}),1,"tokenClickEvent",e=>(0,c.A)(Bt,e),(e,t)=>(0,l.A)(Bt,e,t)]],0,(e=>Wt.has((0,a.A)(e))),f.N)),V()}}]);
2
- //# sourceMappingURL=7242.e853a1b7.js.map
1
+ "use strict";(globalThis.webpackChunk_next_bricks_vs=globalThis.webpackChunk_next_bricks_vs||[]).push([[7242],{7242:(e,t,n)=>{n.r(t);var i,s=n(4635),r=n(918),a=n(6902),o=n(5536),l=n(6121),c=n(829),u=n(2740),h=n(8769),d=n.n(h),g=n(4782),m=n(279),p=n(1389),k=n(4047),f=n(426),A=n(3683),v=n(6197),y=n(3909),w=n(2257),b=n(3135),M=n(1732),C=n.n(M),E=(n(6477),n(2445)),x=n(7137),L=n(4929),S=n(2738),B=n(4804),N=n(4102),W=n(9287),_=n(5502),R=n(8182),P=n(3373),z=n.n(P),I=(n(3569),n(1968)),O=n(1836);let V,D,F,H,K,T,Y,q,j,U,J,X,$,G,Q,Z,ee,te,ne,ie,se,re,ae,oe,le,ce,ue,he,de,ge,me,pe,ke,fe,Ae,ve,ye,we,be,Me,Ce,Ee,xe,Le,Se,Be,Ne,We,_e,Re,Pe,ze,Ie,Oe,Ve,De,Fe,He,Ke,Te,Ye;(0,_.initializeReactI18n)(R.NS,R.I),(0,v.kz)(A),(0,y.kz)(A),(0,w.kz)(A,"brick_next_yaml"),(0,b.kz)(A);const{defineElement:qe,property:je,event:Ue}=(0,g.createDecorators)(),Je=(0,p.wrapBrick)("eo-form-item"),Xe=(0,p.wrapBrick)("eo-tooltip"),$e=(0,p.wrapBrick)("eo-icon"),Ge=(0,m.unwrapProvider)("basic.copy-to-clipboard"),Qe=(0,m.unwrapProvider)("basic.show-notification");let Ze;var et=new WeakMap,tt=new WeakMap,nt=new WeakMap,it=new WeakMap,st=new WeakMap,rt=new WeakMap,at=new WeakMap,ot=new WeakMap,lt=new WeakMap,ct=new WeakMap,ut=new WeakMap,ht=new WeakMap,dt=new WeakMap,gt=new WeakMap,mt=new WeakMap,pt=new WeakMap,kt=new WeakMap,ft=new WeakMap,At=new WeakMap,vt=new WeakMap,yt=new WeakMap,wt=new WeakMap,bt=new WeakMap,Mt=new WeakMap,Ct=new WeakMap,Et=new WeakSet,xt=new WeakMap,Lt=new WeakMap,St=new WeakMap,Bt=new WeakMap,Nt=new WeakMap,Wt=new WeakMap;class _t extends f.N{constructor(){super(...arguments),(0,s.A)(this,Et),(0,r.A)(this,et,D(this)),(0,r.A)(this,tt,(F(this),H(this))),(0,r.A)(this,nt,(K(this),T(this))),(0,r.A)(this,it,(Y(this),q(this))),(0,r.A)(this,st,(j(this),U(this))),(0,r.A)(this,rt,(J(this),X(this))),(0,r.A)(this,at,($(this),G(this))),(0,r.A)(this,ot,(Q(this),Z(this))),(0,r.A)(this,lt,(ee(this),te(this))),(0,r.A)(this,ct,(ne(this),ie(this))),(0,r.A)(this,ut,(se(this),re(this))),(0,r.A)(this,ht,(ae(this),oe(this))),(0,r.A)(this,dt,(le(this),ce(this))),(0,r.A)(this,gt,(ue(this),he(this))),(0,r.A)(this,mt,(de(this),ge(this))),(0,r.A)(this,pt,(me(this),pe(this))),(0,r.A)(this,kt,(ke(this),fe(this))),(0,r.A)(this,ft,(Ae(this),ve(this))),(0,r.A)(this,At,(ye(this),we(this))),(0,r.A)(this,vt,(be(this),Me(this))),(0,r.A)(this,yt,(Ce(this),Ee(this))),(0,r.A)(this,wt,(xe(this),Le(this))),(0,r.A)(this,bt,(Se(this),Be(this))),(0,r.A)(this,Mt,(Ne(this),We(this))),(0,r.A)(this,Ct,(_e(this),Re(this))),(0,r.A)(this,xt,(Ie(this),Oe(this))),(0,r.A)(this,Lt,(Fe(this),e=>{var t;this.value=e,null===(t=this.getFormElement())||void 0===t||t.formStore.onChange(this.name,e),(0,o.A)(Et,this,Pe).emit(e)})),(0,r.A)(this,St,(e=>{(0,o.A)(Et,this,Ve).emit(e)})),(0,r.A)(this,Bt,He(this)),(0,r.A)(this,Nt,(Ye(this),e=>{(0,o.A)(Et,this,Ke).emit(e)})),(0,r.A)(this,Wt,(e=>{if("brick_next_yaml"===this.language||"yaml"===this.language)try{C().load(e)}catch{return"请填写正确的格式"}return""}))}get name(){return(0,c.A)(et,this)}set name(e){(0,l.A)(et,this,e)}get label(){return(0,c.A)(tt,this)}set label(e){(0,l.A)(tt,this,e)}get value(){return(0,c.A)(nt,this)}set value(e){(0,l.A)(nt,this,e)}get language(){return(0,c.A)(it,this)}set language(e){(0,l.A)(it,this,e)}get theme(){return(0,c.A)(st,this)}set theme(e){(0,l.A)(st,this,e)}get required(){return(0,c.A)(rt,this)}set required(e){(0,l.A)(rt,this,e)}get readOnly(){return(0,c.A)(at,this)}set readOnly(e){(0,l.A)(at,this,e)}get automaticLayout(){return(0,c.A)(ot,this)}set automaticLayout(e){(0,l.A)(ot,this,e)}get minLines(){return(0,c.A)(lt,this)}set minLines(e){(0,l.A)(lt,this,e)}get completers(){return(0,c.A)(ct,this)}set completers(e){(0,l.A)(ct,this,e)}get advancedCompleters(){return(0,c.A)(ut,this)}set advancedCompleters(e){(0,l.A)(ut,this,e)}get markers(){return(0,c.A)(ht,this)}set markers(e){(0,l.A)(ht,this,e)}get links(){return(0,c.A)(dt,this)}set links(e){(0,l.A)(dt,this,e)}get maxLines(){return(0,c.A)(gt,this)}set maxLines(e){(0,l.A)(gt,this,e)}get height(){return(0,c.A)(mt,this)}set height(e){(0,l.A)(mt,this,e)}get message(){return(0,c.A)(pt,this)}set message(e){(0,l.A)(pt,this,e)}get placeholder(){return(0,c.A)(kt,this)}set placeholder(e){(0,l.A)(kt,this,e)}get showExpandButton(){return(0,c.A)(ft,this)}set showExpandButton(e){(0,l.A)(ft,this,e)}get lineNumbers(){return(0,c.A)(At,this)}set lineNumbers(e){(0,l.A)(At,this,e)}get tokenConfig(){return(0,c.A)(vt,this)}set tokenConfig(e){(0,l.A)(vt,this,e)}get customValidationInBrickNextYaml(){return(0,c.A)(yt,this)}set customValidationInBrickNextYaml(e){(0,l.A)(yt,this,e)}get showCopyButton(){return(0,c.A)(wt,this)}set showCopyButton(e){(0,l.A)(wt,this,e)}get glyphMargin(){return(0,c.A)(bt,this)}set glyphMargin(e){(0,l.A)(bt,this,e)}get extraLibs(){return(0,c.A)(Mt,this)}set extraLibs(e){(0,l.A)(Mt,this,e)}connectedCallback(){this.style.display||(this.style.display="block"),super.connectedCallback()}render(){return d().createElement(Je,{exportparts:"message",curElement:this,formElement:this.getFormElement(),name:this.name,label:this.label,required:this.required,helpBrick:this.helpBrick,labelBrick:this.labelBrick,notRender:this.notRender,validator:(0,c.A)(Wt,this)},d().createElement(Rt,{value:this.value,language:this.language,readOnly:this.readOnly,theme:this.theme,automaticLayout:this.automaticLayout,minLines:this.minLines,maxLines:this.maxLines,height:this.height,completers:this.completers,advancedCompleters:this.advancedCompleters,extraLibs:this.extraLibs,markers:this.markers,links:this.links,tokenConfig:this.tokenConfig,lineNumbers:this.lineNumbers,glyphMargin:this.glyphMargin,placeholder:this.placeholder,showCopyButton:this.showCopyButton,showExpandButton:this.showExpandButton,validateState:this.validateState,onChange:(0,c.A)(Lt,this),onUserInput:(0,c.A)(St,this),onTokenClick:(0,c.A)(Nt,this),customValidationInBrickNextYaml:this.customValidationInBrickNextYaml}))}}function Rt(e){let{value:t,language:n,theme:i,minLines:s,maxLines:r,height:a,automaticLayout:o,completers:l,advancedCompleters:c,markers:u,readOnly:g,links:m,extraLibs:p,tokenConfig:f={showDSKey:!1},showExpandButton:v,showCopyButton:y=!0,lineNumbers:w="on",glyphMargin:b=!1,placeholder:M,validateState:C,onChange:P,onUserInput:V,onTokenClick:D,customValidationInBrickNextYaml:F}=e;const H=t??"",K=n??"plaintext",T=i??"auto",Y=s??3,q=r??1/0,j=a??500,[U,J]=(0,h.useState)(!1),X=(0,h.useMemo)((()=>(0,E.uniqueId)("worker")),[]),{t:$}=(0,_.useTranslation)(R.NS),G=(0,h.useRef)(null),Q=(0,h.useRef)(),Z=(0,h.useRef)(),ee=(0,h.useRef)({width:300,height:Pt(H,Y,q)}),[te,ne]=(0,h.useState)(),ie=(0,h.useRef)(o),se=(0,k.useCurrentTheme)();(0,h.useEffect)((()=>{if("brick_next_yaml"!==K)return;const e=S.h.getInstance(X),t=e.addEventListener("message",(e=>{const{token:t,data:n}=e.data,i=Z.current.getModel();if(i)switch(t){case"parse_yaml":{var s;const{value:e,tokens:t,markers:r}=n;null===(s=Q.current)||void 0===s||s.set(t.map((e=>({range:new A.Range(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),options:{inlineClassName:"highlight"}})))),A.editor.setModelMarkers(i,"brick_next_yaml",r),V(e);break}case"parse_yaml_error":var r;A.editor.setModelMarkers(i,"brick_next_yaml",[]),null==Q||null===(r=Q.current)||void 0===r||r.set([]),V(void 0)}}));return()=>{e.removeEventListener(t)}}),[]),(0,h.useEffect)((()=>{const e="auto"===T?"dark"===se||"dark-v2"===se?"vs-dark":"vs":T,t=e.includes("dark")?"#FFFFFF0F":"#0000000A";A.editor.defineTheme("custom-theme",{base:e,inherit:!0,rules:[],colors:{"editor.lineHighlightBackground":`${t}`}}),A.editor.setTheme("custom-theme")}),[se,T]),(0,h.useEffect)((()=>{if(Z.current){const e=Z.current.getModel();A.editor.setModelLanguage(e,K)}}),[K]),(0,h.useEffect)((()=>{if("brick_next_yaml"===K){const e=(0,L.v)(l,c,X,f),t=A.languages.registerCompletionItemProvider("brick_next_yaml",{provideCompletionItems:e,triggerCharacters:[".",":","<"]});return()=>{t.dispose()}}}),[l,c,K]);const re=(0,h.useCallback)((()=>{if("brick_next_yaml"!==K||!Z.current)return;const e=S.h.getInstance(X),t=Z.current.getModel();e.postMessage({token:"parse_yaml",data:{value:null==t?void 0:t.getValue(),links:m,markers:u},options:f})}),[K,f,m,u,X]),ae=(0,h.useMemo)((()=>(0,E.debounce)(re,300)),[re]);(0,h.useEffect)((()=>{const e=Z.current;if(e){const t=e.getModel();null!=t&&t.getValue&&H!==t.getValue()&&(t.setValue(H),ae())}}),[H,ae]),(0,h.useEffect)((()=>{ae()}),[]),(0,h.useLayoutEffect)((()=>{var e;if("fit-content"!==ie.current||!G.current)return;ee.current.width=G.current.getBoundingClientRect().width,null===(e=Z.current)||void 0===e||e.layout(ee.current);const t=new ResizeObserver((e=>{for(const n of e)if(n.target===G.current){const e=n.contentBoxSize?n.contentBoxSize[0].inlineSize:n.contentRect.width,i=n.contentBoxSize?n.contentBoxSize[0].blockSize:n.contentRect.height;var t;(e!==ee.current.width||U)&&(ee.current.width=e,null===(t=Z.current)||void 0===t||t.layout({width:e,height:U?i:ee.current.height}));break}}));return t.observe(G.current),()=>{t.disconnect()}}),[U]),(0,h.useLayoutEffect)((()=>{if("fit-container"!==ie.current)return;const e=function(e){let t=e;for(;t;){const e="vs.code-editor"===t.tagName.toLowerCase();if(t=t.parentElement,e)return t}}(G.current);if(!e)return;const t=new ResizeObserver((()=>{ne(e.offsetHeight)}));return t.observe(e),()=>{t.disconnect()}}),[]),(0,h.useEffect)((()=>{"fit-container"!==ie.current&&"fit-content"!==ie.current&&ne(j)}),[j]),(0,h.useEffect)((()=>{Z.current&&Z.current.updateOptions({readOnly:g})}),[g]),(0,h.useEffect)((()=>{if(Z.current||!G.current)return;const e=A.editor.createModel(H,K);if("brick_next_yaml"===K){const t=(0,N.AR)(e.uri);A.editor.createModel(H,"javascript",t),A.languages.typescript.javascriptDefaults.addExtraLib((0,N.Eh)(),e.uri.toString()+"d.ts")}Z.current=A.editor.create(G.current,{model:e,minimap:{enabled:!1,showRegionSectionHeaders:!1,showMarkSectionHeaders:!1},scrollBeyondLastLine:!1,tabSize:2,insertSpaces:!0,automaticLayout:"fit-content"!==ie.current,fontSize:x.yU,lineHeight:x.fE,scrollbar:{horizontalScrollbarSize:x.lP,verticalScrollbarSize:x.lP,horizontalSliderSize:8,verticalSliderSize:8,alwaysConsumeMouseWheel:!1},padding:{top:x.Vu,bottom:"fit-content"==ie.current?void 0:x.Vu},overviewRulerBorder:!1,mouseWheelScrollSensitivity:.5,fixedOverflowWidgets:!0,lineNumbers:w,lineNumbersMinChars:3,glyphMargin:b,folding:"off"!==w,suggest:{insertMode:"insert",preview:!0},readOnly:g,quickSuggestions:{strings:!0,other:!0,comments:!0},renderLineHighlightOnlyWhenFocus:!0,unicodeHighlight:{ambiguousCharacters:!1}}),Q.current=Z.current.createDecorationsCollection()}),[]),(0,h.useEffect)((()=>{const e=p??[],t="typescript"===K?"typescriptDefaults":"javascriptDefaults",n=(0,W.m)(e,{languageDefaults:t});return()=>{for(const e of n)e.dispose()}}),[p,K]),(0,h.useEffect)((()=>{const e=Z.current;if("brick_next_yaml"===K&&e){const t=e.getModel(),n=e.onMouseDown((function(e){var n;const i=Q.current;((null==i||null===(n=i.getRanges)||void 0===n?void 0:n.call(i))??[]).forEach((n=>{const i=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";n&&e.target.position&&e.event[i]&&n.containsPosition(e.target.position)&&D(t.getValueInRange(n))}))})),i=e.onMouseMove((function(e){const t=Q.current;t&&t.getRanges().forEach((n=>{const i=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";if(n&&e.target.position&&e.event[i]&&n.containsPosition(e.target.position)){const e=t.getRanges().map((e=>({range:e,options:{inlineClassName:n.equalsRange(e)?"highlight pointer":"highlight"}})));t.set(e)}else if(!e.event[i]){const e=t.getRanges().map((e=>({range:e,options:{inlineClassName:"highlight"}})));t.set(e)}}))}));return()=>{null==i||i.dispose(),null==n||n.dispose()}}}),[K,D,se,T]),(0,h.useEffect)((()=>{const e=Z.current;if(!e||!G.current||"fit-content"!==ie.current)return;const t=e.onDidContentSizeChange((t=>{if(!U&&t.contentHeightChanged){const n=zt(t.contentHeight,Y,q);n!==ee.current.height&&(ee.current.height=n,e.layout(ee.current))}})),n=zt(e.getContentHeight(),Y,q);return n!==ee.current.height&&(ee.current.height=n,e.layout(ee.current)),()=>{t.dispose()}}),[q,Y,U]);const oe=(0,h.useCallback)((async(e,t)=>{A.editor.setModelMarkers(e,"semantic_validate",[]);const n=e.findPreviousMatch("<%[~=]?",t,!0,!1,null,!1),i=e.findNextMatch("%>",t,!1,!1,null,!1),s=null==n?void 0:n.range,r=null==i?void 0:i.range;if(s&&r){const n=new A.Range(s.startLineNumber,s.endColumn,r.startLineNumber,r.startColumn),i=e.getValueInRange(n);if(n.containsPosition(t)&&!/<% | %>/.test(i)){const t=(0,N.AR)(e.uri);A.editor.getModel(t).setValue(i);const r=e.getOffsetAt(new A.Position(s.startLineNumber,s.endColumn));if(I.b.getInstance(X).updateState({content:i,range:n,offset:r}),!F)return;const a=await A.languages.typescript.getJavaScriptWorker(),o=await a(t),l=(await o.getSemanticDiagnostics(t.toString())).map((t=>{const n=r+(t.start??0),i=e.getPositionAt(n);return{startLineNumber:i.lineNumber,startColumn:i.column,endLineNumber:i.lineNumber,endColumn:i.column+t.length,message:t.messageText,severity:A.MarkerSeverity.Warning}}));A.editor.setModelMarkers(e,"semantic_validate",l)}}}),[X]);(0,h.useEffect)((()=>{if(!Z.current)return;const e=Z.current.getModel(),t=e.onDidChangeContent((async()=>{(0,B.J)(X),["brick_next_yaml"].includes(K)&&(oe(e,Z.current.getPosition()),ae()),P(e.getValue())}));return()=>{t.dispose()}}),[ae,P,X,K,oe]),(0,h.useEffect)((()=>{if(U){const e=t=>{"Escape"!==t.key&&"Esc"!==t.key||(window.removeEventListener("keydown",e),J(!1))};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}}}),[U]),(0,h.useEffect)((()=>()=>{var e,t;null===(e=Z.current)||void 0===e||null===(e=e.getModel())||void 0===e||e.dispose(),null===(t=Z.current)||void 0===t||t.dispose()}),[]),(0,h.useEffect)((()=>{if(!Z.current&&!M)return;const e=new O.j(M,Z.current);return()=>{e.dispose()}}),[M]);const le=(0,h.useCallback)((()=>{if(Z.current){const e=Z.current.getModel();Ge(e.getValue()).then((()=>Qe({type:"success",message:$(R.K.COPY_SUCCESS)}))).catch((()=>Qe({type:"error",message:$(R.K.COPY_FAILED)})))}}),[$]),ce=(0,h.useCallback)((()=>{J(!U)}),[U]);return d().createElement("div",{className:z()("code-editor-wrapper",{expanded:U,error:"error"===C})},d().createElement("div",{ref:G,style:{height:U?"100%":te,overflow:U?"scroll":""}}),d().createElement("div",{className:"toolbar"},y&&d().createElement(Xe,{content:$(R.K.COPY)},d().createElement($e,{className:"copy-icon",icon:"copy",lib:"antd",theme:"outlined",onClick:le})),v&&d().createElement(Xe,{content:$(U?R.K.COLLAPSE:R.K.EXPAND)},d().createElement($e,{className:"expand-icon",icon:U?"compress":"expand",lib:"antd",theme:"outlined",onClick:ce}))))}function Pt(e,t,n){return It(Math.min(n,Math.max(t,e.split("\n").length)))}function zt(e,t,n){let i=e;return(e-x.Vu)%x.fE==0&&(i=e+x.lP),Math.min(It(n),Math.max(i,It(t)))}function It(e){return e*x.fE+x.lP+x.Vu}i=_t,({e:[D,F,H,K,T,Y,q,j,U,J,X,$,G,Q,Z,ee,te,ne,ie,se,re,ae,oe,le,ce,ue,he,de,ge,me,pe,ke,fe,Ae,ve,ye,we,be,Me,Ce,Ee,xe,Le,Se,Be,Ne,We,_e,Re,Pe,ze,Ie,Oe,Ve,De,Fe,He,Ke,Te,Ye],c:[Ze,V]}=(0,u.A)(i,[qe("vs.code-editor",{shadowOptions:!1})],[[je(),1,"name"],[je(),1,"label"],[je(),1,"value"],[je(),1,"language"],[je(),1,"theme"],[je({type:Boolean}),1,"required"],[je({type:Boolean}),1,"readOnly"],[je(),1,"automaticLayout"],[je({type:Number}),1,"minLines"],[je({attribute:!1}),1,"completers"],[je({attribute:!1}),1,"advancedCompleters"],[je({attribute:!1}),1,"markers"],[je({attribute:!1}),1,"links"],[je({type:Number}),1,"maxLines"],[je({attribute:!1}),1,"height"],[je(),1,"message"],[je(),1,"placeholder"],[je({type:Boolean}),1,"showExpandButton"],[je(),1,"lineNumbers"],[je({attribute:!1}),1,"tokenConfig"],[je({type:Boolean}),1,"customValidationInBrickNextYaml"],[je({type:Boolean}),1,"showCopyButton"],[je({type:Boolean}),1,"glyphMargin"],[je({attribute:!1}),1,"extraLibs"],[Ue({type:"code.change"}),1,"codeChange",e=>(0,c.A)(Ct,e),(e,t)=>(0,l.A)(Ct,e,t)],[Ue({type:"user.input"}),1,"userInput",e=>(0,c.A)(xt,e),(e,t)=>(0,l.A)(xt,e,t)],[Ue({type:"token.click"}),1,"tokenClickEvent",e=>(0,c.A)(Bt,e),(e,t)=>(0,l.A)(Bt,e,t)]],0,(e=>Wt.has((0,a.A)(e))),f.N)),V()}}]);
2
+ //# sourceMappingURL=7242.c96815c3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunks/7242.e853a1b7.js","mappings":"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","sources":["webpack:///./src/code-editor/index.tsx"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { unwrapProvider } from \"@next-core/utils/general\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"@next-bricks/form/form-item\";\nimport * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\nimport { register as registerJavaScript } from \"@next-core/monaco-contributions/javascript\";\nimport { register as registerTypeScript } from \"@next-core/monaco-contributions/typescript\";\nimport { register as registerYaml } from \"@next-core/monaco-contributions/yaml\";\nimport { register as registerHtml } from \"@next-core/monaco-contributions/html\";\nimport yaml from \"js-yaml\";\nimport \"@next-core/theme\";\nimport { uniqueId, debounce } from \"lodash\";\nimport {\n EDITOR_SCROLLBAR_SIZE,\n EDITOR_PADDING_VERTICAL,\n EDITOR_LINE_HEIGHT,\n EDITOR_FONT_SIZE,\n} from \"./constants.js\";\nimport { AdvancedCompleterMap, ExtraLib } from \"./interfaces.js\";\nimport { brickNextYAMLProviderCompletionItems } from \"./utils/brickNextYaml.js\";\nimport { Level } from \"./utils/constants.js\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { VSWorkers } from \"./workers/index.mjs\";\nimport { setEditorId } from \"./utils/editorId.js\";\nimport {\n getEmbeddedJavascriptUri,\n getBrickYamlBuiltInDeclare,\n} from \"./utils/jsSuggestInBrickYaml.js\";\nimport { addExtraLibs } from \"./utils/addExtraLibs.js\";\nimport type { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport type { copyToClipboard as _copyToClipboard } from \"@next-bricks/basic/data-providers/copy-to-clipboard\";\nimport type { showNotification as _showNotification } from \"@next-bricks/basic/data-providers/show-notification/show-notification\";\nimport classNames from \"classnames\";\nimport \"./index.css\";\nimport { EmbeddedModelContext } from \"./utils/embeddedModelState.js\";\nimport { PlaceholderContentWidget } from \"./widget/Placeholder.js\";\n\ninitializeReactI18n(NS, locales);\n\nregisterJavaScript(monaco);\nregisterTypeScript(monaco);\nregisterYaml(monaco, \"brick_next_yaml\");\nregisterHtml(monaco);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst copyToClipboard = unwrapProvider<typeof _copyToClipboard>(\n \"basic.copy-to-clipboard\"\n);\nconst showNotification = unwrapProvider<typeof _showNotification>(\n \"basic.show-notification\"\n);\n\nexport interface CodeEditorProps {\n name?: string;\n label?: string;\n value?: string;\n language?: string;\n theme?: string;\n placeholder?: string;\n required?: boolean;\n readOnly?: boolean;\n automaticLayout?: \"fit-container\" | \"fit-content\" | \"none\";\n minLines?: number;\n maxLines?: number;\n height?: string | number;\n completers?: monaco.languages.CompletionItem[];\n tokenConfig?: TokenConfig;\n advancedCompleters?: AdvancedCompleterMap;\n extraLibs?: ExtraLib[];\n markers?: Marker[];\n links?: string[];\n showExpandButton?: boolean;\n showCopyButton?: boolean;\n lineNumbers?: monaco.editor.LineNumbersType;\n glyphMargin?: boolean;\n validateState?: string;\n customValidationInBrickNextYaml?: boolean;\n}\n\nexport interface Marker {\n token: string;\n level?: keyof typeof Level;\n message?: string;\n code?: {\n value: string;\n target: string;\n };\n params?: string[];\n}\n\nexport type TokenConfig = {\n showDSKey: boolean;\n};\n\n/**\n * 构件代码编辑器\n * @category form-input-advanced\n */\nexport\n@defineElement(\"vs.code-editor\", {\n // There are a few issues for monaco-editor with shadow DOM.\n // So we use light DOM for now.\n // See https://github.com/microsoft/monaco-editor/issues?q=is%3Aissue+is%3Aopen+shadow+dom\n shadowOptions: false,\n})\nclass CodeEditor extends FormItemElementBase implements CodeEditorProps {\n @property()\n accessor name: string | undefined;\n\n @property()\n accessor label: string | undefined;\n\n @property()\n accessor value: string | undefined;\n\n /**\n * @default \"plaintext\"\n */\n @property()\n accessor language: string | undefined;\n\n /**\n * 主题,支持 `\"auto\" | \"vs\" | \"vs-dark\"`\n *\n * @default \"auto\"\n * @group ui\n */\n @property() accessor theme: string | undefined;\n\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n @property({\n type: Boolean,\n })\n accessor readOnly: boolean | undefined;\n\n @property()\n accessor automaticLayout:\n | \"fit-container\"\n | \"fit-content\"\n | \"none\"\n | undefined;\n\n /**\n * @default 3\n */\n @property({ type: Number })\n accessor minLines: number | undefined;\n\n @property({\n attribute: false,\n })\n accessor completers: monaco.languages.CompletionItem[] | undefined;\n\n @property({\n attribute: false,\n })\n accessor advancedCompleters: AdvancedCompleterMap | undefined;\n\n @property({ attribute: false })\n accessor markers: Marker[] | undefined;\n\n @property({ attribute: false })\n accessor links: string[] | undefined;\n\n /**\n * @default Infinity\n */\n @property({ type: Number })\n accessor maxLines: number | undefined;\n\n @property({ attribute: false })\n accessor height: string | number | undefined;\n\n @property()\n accessor message: string | undefined;\n\n @property()\n accessor placeholder: string | undefined;\n\n /**\n * 是否展示展开按钮\n */\n @property({ type: Boolean })\n accessor showExpandButton: boolean | undefined;\n\n /**\n * 行数配置\n */\n @property()\n accessor lineNumbers: monaco.editor.LineNumbersType | undefined;\n\n /**\n * 自定义高亮配置\n */\n @property({\n attribute: false,\n })\n accessor tokenConfig: TokenConfig | undefined;\n\n /**\n * 在 brick_next_yaml 中是否开启语义相关校验\n * @default false\n */\n @property({\n type: Boolean,\n })\n accessor customValidationInBrickNextYaml: boolean | undefined;\n\n /**\n * 是否展示复制按钮\n * @default true\n */\n @property({ type: Boolean })\n accessor showCopyButton: boolean | undefined;\n\n /**\n * 显示字形边距\n * @default false\n */\n @property({ type: Boolean })\n accessor glyphMargin: boolean | undefined;\n\n /**\n * @description 额外声明的 lib 库\n */\n @property({\n attribute: false,\n })\n accessor extraLibs: ExtraLib[] | undefined;\n\n @event({ type: \"code.change\" })\n accessor #codeChange!: EventEmitter<string>;\n\n @event({ type: \"user.input\" })\n accessor #userInput!: EventEmitter<any>;\n\n #handleChange = (value: string) => {\n this.value = value;\n this.getFormElement()?.formStore.onChange(this.name!, value);\n this.#codeChange.emit(value);\n };\n\n #handleUserInput = (value: any) => {\n this.#userInput.emit(value);\n };\n\n @event({ type: \"token.click\" })\n accessor #tokenClickEvent!: EventEmitter<string>;\n\n #handleTokenClick = (word: string) => {\n this.#tokenClickEvent.emit(word);\n };\n\n #handleValidator = (value: string) => {\n if (this.language === \"brick_next_yaml\" || this.language === \"yaml\") {\n try {\n yaml.load(value);\n } catch {\n return \"请填写正确的格式\";\n }\n }\n return \"\";\n };\n\n connectedCallback(): void {\n // Don't override user's style settings.\n // istanbul ignore else\n if (!this.style.display) {\n this.style.display = \"block\";\n }\n super.connectedCallback();\n }\n\n render() {\n return (\n <WrappedFormItem\n exportparts=\"message\"\n curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n required={this.required}\n helpBrick={this.helpBrick}\n labelBrick={this.labelBrick}\n notRender={this.notRender}\n validator={this.#handleValidator}\n >\n <CodeEditorComponent\n value={this.value}\n language={this.language}\n readOnly={this.readOnly}\n theme={this.theme}\n automaticLayout={this.automaticLayout}\n minLines={this.minLines}\n maxLines={this.maxLines}\n height={this.height}\n completers={this.completers}\n advancedCompleters={this.advancedCompleters}\n extraLibs={this.extraLibs}\n markers={this.markers}\n links={this.links}\n tokenConfig={this.tokenConfig}\n lineNumbers={this.lineNumbers}\n glyphMargin={this.glyphMargin}\n placeholder={this.placeholder}\n showCopyButton={this.showCopyButton}\n showExpandButton={this.showExpandButton}\n validateState={this.validateState}\n onChange={this.#handleChange}\n onUserInput={this.#handleUserInput}\n onTokenClick={this.#handleTokenClick}\n customValidationInBrickNextYaml={this.customValidationInBrickNextYaml}\n />\n </WrappedFormItem>\n );\n }\n}\n\nexport function CodeEditorComponent({\n value: _value,\n language: _language,\n theme: _theme,\n minLines: _minLines,\n maxLines: _maxLines,\n height: _height,\n automaticLayout,\n completers,\n advancedCompleters,\n markers,\n readOnly,\n links,\n extraLibs,\n tokenConfig = {\n showDSKey: false,\n },\n showExpandButton,\n showCopyButton = true,\n lineNumbers = \"on\",\n glyphMargin = false,\n placeholder,\n validateState,\n onChange,\n onUserInput,\n onTokenClick,\n customValidationInBrickNextYaml,\n}: CodeEditorProps & {\n onChange(value: string): void;\n onUserInput: (value: any) => void;\n onTokenClick(word: string): void;\n}) {\n const value = _value ?? \"\";\n const language = _language ?? \"plaintext\";\n const theme = _theme ?? \"auto\";\n const minLines = _minLines ?? 3;\n const maxLines = _maxLines ?? Infinity;\n const height = _height ?? 500;\n const [expanded, setExpanded] = useState(false);\n const workerId = useMemo(() => uniqueId(\"worker\"), []);\n\n const { t } = useTranslation(NS);\n\n const containerRef = useRef<HTMLDivElement>(null);\n const decorationsCollection =\n useRef<monaco.editor.IEditorDecorationsCollection>();\n const editorRef = useRef<monaco.editor.IStandaloneCodeEditor>();\n const size = useRef<monaco.editor.IDimension>({\n width: 300,\n height: getContentHeightByCode(value, minLines, maxLines),\n });\n const [actualHeight, setActualHeight] = useState<string | number>();\n // `automaticLayout` should never change\n const automaticLayoutRef = useRef(automaticLayout);\n const systemTheme = useCurrentTheme();\n\n useEffect(() => {\n if (language !== \"brick_next_yaml\") return;\n const workerInstance = VSWorkers.getInstance(workerId);\n const id = workerInstance.addEventListener(\"message\", (message: any) => {\n const { token, data } = message.data;\n const model = editorRef.current!.getModel();\n if (!model) return;\n switch (token) {\n case \"parse_yaml\": {\n const { value, tokens, markers } = data;\n\n decorationsCollection.current?.set(\n tokens.map((token: any) => ({\n range: new monaco.Range(\n token.startLineNumber,\n token.startColumn,\n token.endLineNumber,\n token.endColumn\n ),\n options: {\n inlineClassName: \"highlight\",\n },\n }))\n );\n monaco.editor.setModelMarkers(model, \"brick_next_yaml\", markers);\n onUserInput(value);\n break;\n }\n case \"parse_yaml_error\": {\n monaco.editor.setModelMarkers(model, \"brick_next_yaml\", []);\n decorationsCollection?.current?.set([]);\n onUserInput(undefined);\n break;\n }\n }\n });\n return () => {\n workerInstance.removeEventListener(id);\n };\n }, []);\n\n useEffect(() => {\n const computedTheme =\n theme === \"auto\"\n ? systemTheme === \"dark\" || systemTheme === \"dark-v2\"\n ? \"vs-dark\"\n : \"vs\"\n : theme;\n const lineHeightBackground = computedTheme.includes(\"dark\")\n ? \"#FFFFFF0F\"\n : \"#0000000A\";\n monaco.editor.defineTheme(\"custom-theme\", {\n base: computedTheme as \"vs-dark\" | \"vs\",\n inherit: true,\n rules: [],\n colors: {\n \"editor.lineHighlightBackground\": `${lineHeightBackground}`,\n },\n });\n // Currently theme is configured globally.\n // See https://github.com/microsoft/monaco-editor/issues/338\n monaco.editor.setTheme(\"custom-theme\");\n }, [systemTheme, theme]);\n\n useEffect(() => {\n if (editorRef.current) {\n const currentModel = editorRef.current.getModel()!;\n monaco.editor.setModelLanguage(currentModel, language);\n }\n }, [language]);\n\n useEffect(() => {\n if (language === \"brick_next_yaml\") {\n const provideCompletionItems = brickNextYAMLProviderCompletionItems(\n completers,\n advancedCompleters,\n workerId,\n tokenConfig\n );\n const monacoProviderRef = monaco.languages.registerCompletionItemProvider(\n \"brick_next_yaml\",\n {\n provideCompletionItems,\n triggerCharacters: [\".\", \":\", \"<\"],\n } as monaco.languages.CompletionItemProvider\n );\n return () => {\n monacoProviderRef.dispose();\n };\n }\n }, [completers, advancedCompleters, language]);\n\n const parseYaml = useCallback(() => {\n if (language !== \"brick_next_yaml\" || !editorRef.current) return;\n const workerInstance = VSWorkers.getInstance(workerId);\n const currentModel = editorRef.current.getModel();\n workerInstance.postMessage({\n token: \"parse_yaml\",\n data: {\n value: currentModel?.getValue(),\n links,\n markers,\n },\n options: tokenConfig,\n });\n }, [language, tokenConfig, links, markers, workerId]);\n\n const debounceParse = useMemo(() => debounce(parseYaml, 300), [parseYaml]);\n\n useEffect(() => {\n const editor = editorRef.current;\n if (editor) {\n const currentModel = editor.getModel();\n if (currentModel?.getValue && value !== currentModel.getValue()) {\n currentModel.setValue(value as string);\n debounceParse();\n }\n }\n }, [value, debounceParse]);\n\n useEffect(() => {\n debounceParse();\n }, []);\n\n useLayoutEffect(() => {\n if (automaticLayoutRef.current !== \"fit-content\" || !containerRef.current) {\n return;\n }\n\n size.current.width = containerRef.current.getBoundingClientRect().width;\n editorRef.current?.layout(size.current);\n\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === containerRef.current) {\n const newWidth = entry.contentBoxSize\n ? entry.contentBoxSize[0].inlineSize\n : entry.contentRect.width;\n const newHeight = entry.contentBoxSize\n ? entry.contentBoxSize[0].blockSize\n : entry.contentRect.height;\n if (newWidth !== size.current.width || expanded) {\n size.current.width = newWidth;\n editorRef.current?.layout({\n width: newWidth,\n height: expanded ? newHeight : size.current.height,\n });\n }\n break;\n }\n }\n });\n observer.observe(containerRef.current);\n\n return () => {\n observer.disconnect();\n };\n }, [expanded]);\n\n useLayoutEffect(() => {\n if (automaticLayoutRef.current !== \"fit-container\") {\n return;\n }\n\n const container = getDOMContainer(containerRef.current);\n if (!container) {\n return;\n }\n // Manually layout the editor once the container resized.\n const observer = new ResizeObserver((): void => {\n setActualHeight(container.offsetHeight);\n });\n observer.observe(container);\n return () => {\n observer.disconnect();\n };\n }, []);\n\n useEffect(() => {\n if (\n automaticLayoutRef.current !== \"fit-container\" &&\n automaticLayoutRef.current !== \"fit-content\"\n ) {\n setActualHeight(height);\n }\n }, [height]);\n\n useEffect(() => {\n if (!editorRef.current) return;\n editorRef.current.updateOptions({\n readOnly,\n });\n }, [readOnly]);\n\n useEffect(() => {\n if (editorRef.current || !containerRef.current) {\n return;\n }\n const model = monaco.editor.createModel(value, language);\n if (language === \"brick_next_yaml\") {\n // 注册嵌套的 model, language 为 js\n const uri = getEmbeddedJavascriptUri(model.uri);\n monaco.editor.createModel(value, \"javascript\", uri);\n monaco.languages.typescript.javascriptDefaults.addExtraLib(\n getBrickYamlBuiltInDeclare(),\n model.uri.toString() + \"d.ts\"\n );\n }\n\n editorRef.current = monaco.editor.create(containerRef.current, {\n model,\n minimap: {\n enabled: false,\n showRegionSectionHeaders: false,\n showMarkSectionHeaders: false,\n },\n scrollBeyondLastLine: false,\n tabSize: 2,\n insertSpaces: true,\n automaticLayout: automaticLayoutRef.current !== \"fit-content\",\n fontSize: EDITOR_FONT_SIZE,\n lineHeight: EDITOR_LINE_HEIGHT,\n scrollbar: {\n horizontalScrollbarSize: EDITOR_SCROLLBAR_SIZE,\n verticalScrollbarSize: EDITOR_SCROLLBAR_SIZE,\n horizontalSliderSize: 8,\n verticalSliderSize: 8,\n alwaysConsumeMouseWheel: false,\n },\n padding: {\n top: EDITOR_PADDING_VERTICAL,\n // When use `fit-content`, we always plus the height with the vertical padding.\n // Thus the possible x-scrollbar will not take extra space at the bottom.\n bottom:\n automaticLayoutRef.current == \"fit-content\"\n ? undefined\n : EDITOR_PADDING_VERTICAL,\n },\n overviewRulerBorder: false,\n mouseWheelScrollSensitivity: 0.5,\n fixedOverflowWidgets: true,\n lineNumbers: lineNumbers,\n lineNumbersMinChars: 3,\n glyphMargin: glyphMargin,\n folding: lineNumbers !== \"off\",\n suggest: {\n insertMode: \"insert\",\n preview: true,\n },\n readOnly: readOnly,\n quickSuggestions: { strings: true, other: true, comments: true },\n renderLineHighlightOnlyWhenFocus: true,\n unicodeHighlight: {\n ambiguousCharacters: false,\n },\n });\n\n decorationsCollection.current =\n editorRef.current.createDecorationsCollection();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const libs: ExtraLib[] = extraLibs ?? [];\n\n const languageDefaults =\n language === \"typescript\" ? \"typescriptDefaults\" : \"javascriptDefaults\";\n const disposables = addExtraLibs(libs, {\n languageDefaults,\n });\n return () => {\n for (const item of disposables) {\n item.dispose();\n }\n };\n }, [extraLibs, language]);\n\n useEffect(() => {\n const editor = editorRef.current;\n if (language === \"brick_next_yaml\" && editor) {\n const model = editor.getModel()!;\n const editorMouseDownEvent = editor.onMouseDown(function (e) {\n const decorations = decorationsCollection.current;\n (decorations?.getRanges?.() ?? []).forEach((range) => {\n const modKey = /Mac|iPod|iPhone|iPad/.test(navigator.platform)\n ? \"metaKey\"\n : \"ctrlKey\";\n if (\n range &&\n e.target.position &&\n e.event[modKey] &&\n range.containsPosition(e.target.position)\n ) {\n onTokenClick(model.getValueInRange(range));\n }\n });\n });\n\n const mouseOverEvent = editor.onMouseMove(function (e) {\n const decorations = decorationsCollection.current;\n if (!decorations) return;\n decorations.getRanges().forEach((range) => {\n const modKey = /Mac|iPod|iPhone|iPad/.test(navigator.platform)\n ? \"metaKey\"\n : \"ctrlKey\";\n if (\n range &&\n e.target.position &&\n e.event[modKey] &&\n range.containsPosition(e.target.position)\n ) {\n const newDecorations = decorations.getRanges().map((item) => ({\n range: item,\n options: {\n inlineClassName: range.equalsRange(item)\n ? \"highlight pointer\"\n : \"highlight\",\n },\n }));\n decorations.set(newDecorations);\n } else if (!e.event[modKey]) {\n const newDecorations = decorations.getRanges().map((item) => ({\n range: item,\n options: {\n inlineClassName: \"highlight\",\n },\n }));\n decorations.set(newDecorations);\n }\n });\n });\n\n return () => {\n mouseOverEvent?.dispose();\n editorMouseDownEvent?.dispose();\n };\n }\n }, [language, onTokenClick, systemTheme, theme]);\n\n useEffect(() => {\n const editor = editorRef.current;\n if (\n !editor ||\n !containerRef.current ||\n automaticLayoutRef.current !== \"fit-content\"\n ) {\n return;\n }\n\n const listener = editor.onDidContentSizeChange((e) => {\n if (expanded) return;\n if (e.contentHeightChanged) {\n const newHeight = fixEditorHeightWithScrollBar(\n e.contentHeight,\n minLines,\n maxLines\n );\n if (newHeight !== size.current.height) {\n size.current.height = newHeight;\n editor.layout(size.current);\n }\n }\n });\n\n const newHeight = fixEditorHeightWithScrollBar(\n editor.getContentHeight(),\n minLines,\n maxLines\n );\n if (newHeight !== size.current.height) {\n size.current.height = newHeight;\n editor.layout(size.current);\n }\n\n return () => {\n listener.dispose();\n };\n }, [maxLines, minLines, expanded]);\n\n // istanbul ignore next\n const embeddedModelProcessor = useCallback(\n async (model: monaco.editor.IModel, position: monaco.Position) => {\n monaco.editor.setModelMarkers(model, \"semantic_validate\", []);\n\n const prefixEvaluateOperator = model.findPreviousMatch(\n \"<%[~=]?\",\n position,\n true,\n false,\n null,\n false\n );\n\n const suffixEvaluateOperator = model.findNextMatch(\n \"%>\",\n position,\n false,\n false,\n null,\n false\n );\n\n const prefixEvaluateRange = prefixEvaluateOperator?.range;\n const suffixEvaluateRange = suffixEvaluateOperator?.range;\n\n if (prefixEvaluateRange && suffixEvaluateRange) {\n const range = new monaco.Range(\n prefixEvaluateRange.startLineNumber,\n prefixEvaluateRange.endColumn,\n suffixEvaluateRange.startLineNumber,\n suffixEvaluateRange.startColumn\n );\n\n const content = model.getValueInRange(range);\n if (range.containsPosition(position!) && !/<% | %>/.test(content)) {\n const newUri = getEmbeddedJavascriptUri(model.uri);\n const embeddedModel = monaco.editor.getModel(newUri);\n\n embeddedModel!.setValue(content);\n const offset = model.getOffsetAt(\n new monaco.Position(\n prefixEvaluateRange.startLineNumber,\n prefixEvaluateRange.endColumn\n )\n );\n\n const embeddedContext = EmbeddedModelContext.getInstance(workerId);\n\n embeddedContext.updateState({ content, range, offset });\n\n if (!customValidationInBrickNextYaml) return;\n\n const getWorker =\n await monaco.languages.typescript.getJavaScriptWorker();\n\n const worker = await getWorker(newUri);\n\n const diagnostics = await worker.getSemanticDiagnostics(\n newUri.toString()\n );\n\n const semanticMarkers = diagnostics.map((item) => {\n const finalOffset = offset + (item.start ?? 0);\n const currentPosition = model.getPositionAt(finalOffset);\n\n return {\n startLineNumber: currentPosition.lineNumber,\n startColumn: currentPosition.column,\n endLineNumber: currentPosition.lineNumber,\n endColumn: currentPosition.column + item.length!,\n message: item.messageText as string,\n severity: monaco.MarkerSeverity.Warning,\n };\n });\n\n monaco.editor.setModelMarkers(\n model,\n \"semantic_validate\",\n semanticMarkers\n );\n }\n }\n },\n [workerId]\n );\n\n useEffect(() => {\n if (!editorRef.current) {\n return;\n }\n const currentModel = editorRef.current.getModel()!;\n const listener = currentModel.onDidChangeContent(async () => {\n setEditorId(workerId);\n\n if ([\"brick_next_yaml\"].includes(language)) {\n embeddedModelProcessor(currentModel, editorRef.current!.getPosition()!);\n debounceParse();\n }\n onChange(currentModel.getValue());\n });\n return () => {\n listener.dispose();\n };\n }, [debounceParse, onChange, workerId, language, embeddedModelProcessor]);\n\n useEffect(() => {\n if (expanded) {\n const fn = (e: KeyboardEvent): void => {\n if (e.key === \"Escape\" || e.key === \"Esc\") {\n window.removeEventListener(\"keydown\", fn);\n setExpanded(false);\n }\n };\n window.addEventListener(\"keydown\", fn);\n return () => {\n window.removeEventListener(\"keydown\", fn);\n };\n }\n }, [expanded]);\n\n useEffect(() => {\n return () => {\n editorRef.current?.getModel()?.dispose();\n editorRef.current?.dispose();\n };\n }, []);\n\n useEffect(() => {\n if (!editorRef.current && !placeholder) return;\n const placeholderWidget = new PlaceholderContentWidget(\n placeholder!,\n editorRef.current!\n );\n\n return () => {\n placeholderWidget.dispose();\n };\n }, [placeholder]);\n\n const handleCopyIconClick = useCallback(() => {\n if (editorRef.current) {\n const currentModel = editorRef.current.getModel()!;\n copyToClipboard(currentModel.getValue())\n .then(() =>\n showNotification({ type: \"success\", message: t(K.COPY_SUCCESS) })\n )\n .catch(() =>\n showNotification({ type: \"error\", message: t(K.COPY_FAILED) })\n );\n }\n }, [t]);\n\n const handleExpandedClick = useCallback(() => {\n setExpanded(!expanded);\n }, [expanded]);\n\n return (\n <div\n className={classNames(\"code-editor-wrapper\", {\n expanded,\n error: validateState === \"error\",\n })}\n >\n <div\n ref={containerRef}\n style={{\n height: expanded ? \"100%\" : actualHeight,\n overflow: expanded ? \"scroll\" : \"\",\n }}\n />\n <div className=\"toolbar\">\n {showCopyButton && (\n <WrappedTooltip content={t(K.COPY) as string}>\n <WrappedIcon\n className=\"copy-icon\"\n icon=\"copy\"\n lib=\"antd\"\n theme=\"outlined\"\n onClick={handleCopyIconClick}\n />\n </WrappedTooltip>\n )}\n {showExpandButton && (\n <WrappedTooltip\n content={(expanded ? t(K.COLLAPSE) : t(K.EXPAND)) as string}\n >\n <WrappedIcon\n className=\"expand-icon\"\n icon={expanded ? \"compress\" : \"expand\"}\n lib=\"antd\"\n theme=\"outlined\"\n onClick={handleExpandedClick}\n />\n </WrappedTooltip>\n )}\n </div>\n </div>\n );\n}\n\nfunction getContentHeightByCode(\n code: string,\n minLines: number,\n maxLines: number\n): number {\n return getContentHeightByLines(\n Math.min(maxLines, Math.max(minLines, code.split(\"\\n\").length))\n );\n}\n\nfunction fixEditorHeightWithScrollBar(\n contentHeight: number,\n minLines: number,\n maxLines: number\n): number {\n let fixedHeight = contentHeight;\n if ((contentHeight - EDITOR_PADDING_VERTICAL) % EDITOR_LINE_HEIGHT === 0) {\n fixedHeight = contentHeight + EDITOR_SCROLLBAR_SIZE;\n }\n return Math.min(\n getContentHeightByLines(maxLines),\n Math.max(fixedHeight, getContentHeightByLines(minLines))\n );\n}\n\nfunction getContentHeightByLines(lines: number): number {\n return (\n lines * EDITOR_LINE_HEIGHT + EDITOR_SCROLLBAR_SIZE + EDITOR_PADDING_VERTICAL\n );\n}\n\n/** Get the direct DOM container of `vs.code-editor` */\nfunction getDOMContainer(element: HTMLElement | null) {\n let brick = element;\n while (brick) {\n const found = brick.tagName.toLowerCase() === \"vs.code-editor\";\n brick = brick.parentElement;\n if (found) {\n return brick;\n }\n }\n}\n"],"names":["initializeReactI18n","NS","locales","registerJavaScript","monaco","registerTypeScript","registerYaml","registerHtml","defineElement","property","event","createDecorators","WrappedFormItem","wrapBrick","WrappedTooltip","WrappedIcon","copyToClipboard","unwrapProvider","showNotification","_CodeEditor","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_T","_U","_V","_W","_X","_Y","_CodeEditor_brand","WeakSet","_Z","_handleChange","_handleUserInput","_a","_handleTokenClick","_handleValidator","CodeEditor","FormItemElementBase","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_init_name","_init_extra_name","_init_label","_init_extra_label","_init_value","_init_extra_value","_init_language","_init_extra_language","_init_theme","_init_extra_theme","_init_required","_init_extra_required","_init_readOnly","_init_extra_readOnly","_init_automaticLayout","_init_extra_automaticLayout","_init_minLines","_init_extra_minLines","_init_completers","_init_extra_completers","_init_advancedCompleters","_init_extra_advancedCompleters","_init_markers","_init_extra_markers","_init_links","_init_extra_links","_init_maxLines","_init_extra_maxLines","_init_height","_init_extra_height","_init_message","_init_extra_message","_init_placeholder","_init_extra_placeholder","_init_showExpandButton","_init_extra_showExpandButton","_init_lineNumbers","_init_extra_lineNumbers","_init_tokenConfig","_init_extra_tokenConfig","_init_customValidationInBrickNextYaml","_init_extra_customValidationInBrickNextYaml","_init_showCopyButton","_init_extra_showCopyButton","_init_glyphMargin","_init_extra_glyphMargin","_init_extraLibs","_init_extra_extraLibs","_init_codeChange","_init_extra_codeChange","_init_userInput","_init_extra_userInput","value","_this$getFormElement","this","getFormElement","formStore","onChange","name","_classPrivateGetter","_get_codeChange","emit","_get_userInput","_init_tokenClickEvent","_init_extra_tokenClickEvent","word","_get_tokenClickEvent","language","yaml","_classPrivateFieldGet","v","_classPrivateFieldSet","label","theme","required","readOnly","automaticLayout","minLines","completers","advancedCompleters","markers","links","maxLines","height","message","placeholder","showExpandButton","lineNumbers","tokenConfig","customValidationInBrickNextYaml","showCopyButton","glyphMargin","extraLibs","connectedCallback","style","display","super","render","React","exportparts","curElement","formElement","helpBrick","labelBrick","notRender","validator","CodeEditorComponent","validateState","onUserInput","onTokenClick","_ref","_value","_language","_theme","_minLines","_maxLines","_height","showDSKey","Infinity","expanded","setExpanded","useState","workerId","useMemo","uniqueId","t","useTranslation","containerRef","useRef","decorationsCollection","editorRef","size","width","getContentHeightByCode","actualHeight","setActualHeight","automaticLayoutRef","systemTheme","useCurrentTheme","useEffect","workerInstance","VSWorkers","getInstance","id","addEventListener","token","data","model","current","getModel","_decorationsCollectio","tokens","set","map","range","startLineNumber","startColumn","endLineNumber","endColumn","options","inlineClassName","setModelMarkers","_decorationsCollectio2","undefined","removeEventListener","computedTheme","lineHeightBackground","includes","defineTheme","base","inherit","rules","colors","setTheme","currentModel","setModelLanguage","provideCompletionItems","brickNextYAMLProviderCompletionItems","monacoProviderRef","registerCompletionItemProvider","triggerCharacters","dispose","parseYaml","useCallback","postMessage","getValue","debounceParse","debounce","editor","setValue","useLayoutEffect","_editorRef$current","getBoundingClientRect","layout","observer","ResizeObserver","entries","entry","target","newWidth","contentBoxSize","inlineSize","contentRect","newHeight","blockSize","_editorRef$current2","observe","disconnect","container","element","brick","found","tagName","toLowerCase","parentElement","getDOMContainer","offsetHeight","updateOptions","createModel","uri","getEmbeddedJavascriptUri","typescript","javascriptDefaults","addExtraLib","getBrickYamlBuiltInDeclare","toString","create","minimap","enabled","showRegionSectionHeaders","showMarkSectionHeaders","scrollBeyondLastLine","tabSize","insertSpaces","fontSize","EDITOR_FONT_SIZE","lineHeight","EDITOR_LINE_HEIGHT","scrollbar","horizontalScrollbarSize","EDITOR_SCROLLBAR_SIZE","verticalScrollbarSize","horizontalSliderSize","verticalSliderSize","alwaysConsumeMouseWheel","padding","top","EDITOR_PADDING_VERTICAL","bottom","overviewRulerBorder","mouseWheelScrollSensitivity","fixedOverflowWidgets","lineNumbersMinChars","folding","suggest","insertMode","preview","quickSuggestions","strings","other","comments","renderLineHighlightOnlyWhenFocus","unicodeHighlight","ambiguousCharacters","createDecorationsCollection","libs","languageDefaults","disposables","addExtraLibs","item","editorMouseDownEvent","onMouseDown","e","_decorations$getRange","decorations","getRanges","call","forEach","modKey","test","navigator","platform","position","containsPosition","getValueInRange","mouseOverEvent","onMouseMove","newDecorations","equalsRange","listener","onDidContentSizeChange","contentHeightChanged","fixEditorHeightWithScrollBar","contentHeight","getContentHeight","embeddedModelProcessor","async","prefixEvaluateOperator","findPreviousMatch","suffixEvaluateOperator","findNextMatch","prefixEvaluateRange","suffixEvaluateRange","content","newUri","offset","getOffsetAt","EmbeddedModelContext","updateState","getWorker","getJavaScriptWorker","worker","semanticMarkers","getSemanticDiagnostics","finalOffset","start","currentPosition","getPositionAt","lineNumber","column","length","messageText","severity","Warning","onDidChangeContent","setEditorId","getPosition","fn","key","window","_editorRef$current3","_editorRef$current4","placeholderWidget","PlaceholderContentWidget","handleCopyIconClick","then","type","K","COPY_SUCCESS","catch","COPY_FAILED","handleExpandedClick","className","classNames","error","ref","overflow","COPY","icon","lib","onClick","COLLAPSE","EXPAND","code","getContentHeightByLines","Math","min","max","split","fixedHeight","lines","_CodeEditor2","_set_codeChange","_set_userInput","_set_tokenClickEvent","c","_initClass","_applyDecs","shadowOptions","Boolean","Number","attribute","o","_","has","_checkInRHS"],"sourceRoot":""}
1
+ {"version":3,"file":"chunks/7242.c96815c3.js","mappings":"wpBAsDAA,EAAAA,EAAAA,qBAAoBC,EAAAA,GAAIC,EAAAA,IAExBC,EAAAA,EAAAA,IAAmBC,IACnBC,EAAAA,EAAAA,IAAmBD,IACnBE,EAAAA,EAAAA,IAAaF,EAAQ,oBACrBG,EAAAA,EAAAA,IAAaH,GAEb,MAAM,cAAEI,GAAa,SAAEC,GAAUC,MAAKA,KAAKC,EAAAA,EAAAA,oBAErCC,IAAkBC,EAAAA,EAAAA,WAAmC,gBACrDC,IAAiBD,EAAAA,EAAAA,WAAmC,cACpDE,IAAcF,EAAAA,EAAAA,WAAyC,WACvDG,IAAkBC,EAAAA,EAAAA,gBACtB,2BAEIC,IAAmBD,EAAAA,EAAAA,gBACvB,2BACA,IAAAE,GAAA,IAAAC,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QAAAS,GAAA,IAAAT,QAAAU,GAAA,IAAAV,QAAAW,GAAA,IAAAX,QAAAY,GAAA,IAAAZ,QAAAa,GAAA,IAAAb,QAAAc,GAAA,IAAAd,QAAAe,GAAA,IAAAf,QAAAgB,GAAA,IAAAhB,QAAAiB,GAAA,IAAAjB,QAAAkB,GAAA,IAAAlB,QAAAmB,GAAA,IAAAnB,QAAAoB,GAAA,IAAApB,QAAAqB,GAAA,IAAArB,QAAAsB,GAAA,IAAAtB,QAAAuB,GAAA,IAAAvB,QAAAwB,GAAA,IAAAxB,QAAAyB,GAAA,IAAAC,QAAAC,GAAA,IAAA3B,QAAA4B,GAAA,IAAA5B,QAAA6B,GAAA,IAAA7B,QAAA8B,GAAA,IAAA9B,QAAA+B,GAAA,IAAA/B,QAAAgC,GAAA,IAAAhC,QAiDF,MAAAiC,WAMyBC,EAAAA,EAA+CC,WAAAA,GAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAZ,KAAAa,EAAAA,EAAAA,GAAA,KAAAvC,GAAAwC,EAAA,QAAAD,EAAAA,EAAAA,GAAA,KAAArC,IAAAuC,EAAA,MAAAC,EAAA,SAAAH,EAAAA,EAAAA,GAAA,KAAApC,IAAAwC,EAAA,MAAAC,EAAA,SAUtEL,EAAAA,EAAAA,GAAA,KAAAnC,IAAAyC,EAAA,MAAAC,EAAA,SAMAP,EAAAA,EAAAA,GAAA,KAAAlC,IAAA0C,EAAA,MAAAC,EAAA,SAAAT,EAAAA,EAAAA,GAAA,KAAAjC,IAAA2C,EAAA,MAAAC,EAAA,SAAAX,EAAAA,EAAAA,GAAA,KAAAhC,IAAA4C,EAAA,MAAAC,EAAA,SAAAb,EAAAA,EAAAA,GAAA,KAAA/B,IAAA6C,EAAA,MAAAC,EAAA,SAyBAf,EAAAA,EAAAA,GAAA,KAAA9B,IAAA8C,GAAA,MAAAC,GAAA,SAAAjB,EAAAA,EAAAA,GAAA,KAAA7B,IAAA+C,GAAA,MAAAC,GAAA,SAAAnB,EAAAA,EAAAA,GAAA,KAAA5B,IAAAgD,GAAA,MAAAC,GAAA,SAAArB,EAAAA,EAAAA,GAAA,KAAA3B,IAAAiD,GAAA,MAAAC,GAAA,SAAAvB,EAAAA,EAAAA,GAAA,KAAA1B,IAAAkD,GAAA,MAAAC,GAAA,SAsBAzB,EAAAA,EAAAA,GAAA,KAAAzB,IAAAmD,GAAA,MAAAC,GAAA,SAAA3B,EAAAA,EAAAA,GAAA,KAAAxB,IAAAoD,GAAA,MAAAC,GAAA,SAAA7B,EAAAA,EAAAA,GAAA,KAAAvB,IAAAqD,GAAA,MAAAC,GAAA,SAAA/B,EAAAA,EAAAA,GAAA,KAAAtB,IAAAsD,GAAA,MAAAC,GAAA,SAeAjC,EAAAA,EAAAA,GAAA,KAAArB,IAAAuD,GAAA,MAAAC,GAAA,SAMAnC,EAAAA,EAAAA,GAAA,KAAApB,IAAAwD,GAAA,MAAAC,GAAA,SAMArC,EAAAA,EAAAA,GAAA,KAAAnB,IAAAyD,GAAA,MAAAC,GAAA,SAQAvC,EAAAA,EAAAA,GAAA,KAAAlB,IAAA0D,GAAA,MAAAC,GAAA,SASAzC,EAAAA,EAAAA,GAAA,KAAAjB,IAAA2D,GAAA,MAAAC,GAAA,SAOA3C,EAAAA,EAAAA,GAAA,KAAAhB,IAAA4D,GAAA,MAAAC,GAAA,SAOA7C,EAAAA,EAAAA,GAAA,KAAAf,IAAA6D,GAAA,MAAAC,GAAA,SAAA/C,EAAAA,EAAAA,GAAA,KAAAd,IAAA8D,GAAA,MAAAC,GAAA,SAAAjD,EAAAA,EAAAA,GAAA,KAAAX,IAAA6D,GAAA,MAAAC,GAAA,SAcAnD,EAAAA,EAAAA,GAAA,KAAAV,IAAa8D,GAAA,MAAIC,IAAkB,IAAAC,EACjCC,KAAKF,MAAQA,EACQ,QAArBC,EAAAC,KAAKC,wBAAgB,IAAAF,GAArBA,EAAuBG,UAAUC,SAASH,KAAKI,KAAON,IACtDO,EAAAA,EAAAA,GAAAzE,GAAAoE,KAAKM,IAAYC,KAAKT,EAAM,KAG9BrD,EAAAA,EAAAA,GAAA,KAAAT,IAAoB8D,KAClBO,EAAAA,EAAAA,GAAAzE,GAAAoE,KAAKQ,IAAWD,KAAKT,EAAM,KAC3BrD,EAAAA,EAAAA,GAAA,KAAAR,GAAAwE,GAAA,QAKFhE,EAAAA,EAAAA,GAAA,KAAAP,IAAiBwE,GAAA,MAAIC,KACnBN,EAAAA,EAAAA,GAAAzE,GAAAoE,KAAKY,IAAiBL,KAAKI,EAAK,KAGlClE,EAAAA,EAAAA,GAAA,KAAAN,IAAoB2D,IAClB,GAAsB,oBAAlBE,KAAKa,UAAoD,SAAlBb,KAAKa,SAC9C,IACEC,IAAAA,KAAUhB,EACZ,CAAE,MACA,MAAO,UACT,CAEF,MAAO,EAAE,GACT,SA/JOM,GAAI,OAAAW,EAAAA,EAAAA,GAAA7G,GAAA,cAAJkG,CAAIY,IAAAC,EAAAA,EAAAA,GAAA/G,GAAA,KAAA8G,EAAA,UAGJE,GAAK,OAAAH,EAAAA,EAAAA,GAAA3G,GAAA,eAAL8G,CAAKF,IAAAC,EAAAA,EAAAA,GAAA7G,GAAA,KAAA4G,EAAA,UAGLlB,GAAK,OAAAiB,EAAAA,EAAAA,GAAA1G,GAAA,eAALyF,CAAKkB,IAAAC,EAAAA,EAAAA,GAAA5G,GAAA,KAAA2G,EAAA,aAMLH,GAAQ,OAAAE,EAAAA,EAAAA,GAAAzG,GAAA,kBAARuG,CAAQG,IAAAC,EAAAA,EAAAA,GAAA3G,GAAA,KAAA0G,EAAA,UAQIG,GAAK,OAAAJ,EAAAA,EAAAA,GAAAxG,GAAA,eAAL4G,CAAKH,IAAAC,EAAAA,EAAAA,GAAA1G,GAAA,KAAAyG,EAAA,aAKjBI,GAAQ,OAAAL,EAAAA,EAAAA,GAAAvG,GAAA,kBAAR4G,CAAQJ,IAAAC,EAAAA,EAAAA,GAAAzG,GAAA,KAAAwG,EAAA,aAKRK,GAAQ,OAAAN,EAAAA,EAAAA,GAAAtG,GAAA,kBAAR4G,CAAQL,IAAAC,EAAAA,EAAAA,GAAAxG,GAAA,KAAAuG,EAAA,oBAGRM,GAAe,OAAAP,EAAAA,EAAAA,GAAArG,GAAA,yBAAf4G,CAAeN,IAAAC,EAAAA,EAAAA,GAAAvG,GAAA,KAAAsG,EAAA,aAUfO,GAAQ,OAAAR,EAAAA,EAAAA,GAAApG,GAAA,kBAAR4G,CAAQP,IAAAC,EAAAA,EAAAA,GAAAtG,GAAA,KAAAqG,EAAA,eAKRQ,GAAU,OAAAT,EAAAA,EAAAA,GAAAnG,GAAA,oBAAV4G,CAAUR,IAAAC,EAAAA,EAAAA,GAAArG,GAAA,KAAAoG,EAAA,uBAKVS,GAAkB,OAAAV,EAAAA,EAAAA,GAAAlG,GAAA,4BAAlB4G,CAAkBT,IAAAC,EAAAA,EAAAA,GAAApG,GAAA,KAAAmG,EAAA,YAGlBU,GAAO,OAAAX,EAAAA,EAAAA,GAAAjG,GAAA,iBAAP4G,CAAOV,IAAAC,EAAAA,EAAAA,GAAAnG,GAAA,KAAAkG,EAAA,UAGPW,GAAK,OAAAZ,EAAAA,EAAAA,GAAAhG,GAAA,eAAL4G,CAAKX,IAAAC,EAAAA,EAAAA,GAAAlG,GAAA,KAAAiG,EAAA,aAMLY,GAAQ,OAAAb,EAAAA,EAAAA,GAAA/F,GAAA,kBAAR4G,CAAQZ,IAAAC,EAAAA,EAAAA,GAAAjG,GAAA,KAAAgG,EAAA,WAGRa,GAAM,OAAAd,EAAAA,EAAAA,GAAA9F,GAAA,gBAAN4G,CAAMb,IAAAC,EAAAA,EAAAA,GAAAhG,GAAA,KAAA+F,EAAA,YAGNc,GAAO,OAAAf,EAAAA,EAAAA,GAAA7F,GAAA,iBAAP4G,CAAOd,IAAAC,EAAAA,EAAAA,GAAA/F,GAAA,KAAA8F,EAAA,gBAGPe,GAAW,OAAAhB,EAAAA,EAAAA,GAAA5F,GAAA,qBAAX4G,CAAWf,IAAAC,EAAAA,EAAAA,GAAA9F,GAAA,KAAA6F,EAAA,qBAMXgB,GAAgB,OAAAjB,EAAAA,EAAAA,GAAA3F,GAAA,0BAAhB4G,CAAgBhB,IAAAC,EAAAA,EAAAA,GAAA7F,GAAA,KAAA4F,EAAA,gBAMhBiB,GAAW,OAAAlB,EAAAA,EAAAA,GAAA1F,GAAA,qBAAX4G,CAAWjB,IAAAC,EAAAA,EAAAA,GAAA5F,GAAA,KAAA2F,EAAA,gBAQXkB,GAAW,OAAAnB,EAAAA,EAAAA,GAAAzF,GAAA,qBAAX4G,CAAWlB,IAAAC,EAAAA,EAAAA,GAAA3F,GAAA,KAAA0F,EAAA,oCASXmB,GAA+B,OAAApB,EAAAA,EAAAA,GAAAxF,GAAA,yCAA/B4G,CAA+BnB,IAAAC,EAAAA,EAAAA,GAAA1F,GAAA,KAAAyF,EAAA,mBAO/BoB,GAAc,OAAArB,EAAAA,EAAAA,GAAAvF,GAAA,wBAAd4G,CAAcpB,IAAAC,EAAAA,EAAAA,GAAAzF,GAAA,KAAAwF,EAAA,gBAOdqB,GAAW,OAAAtB,EAAAA,EAAAA,GAAAtF,GAAA,qBAAX4G,CAAWrB,IAAAC,EAAAA,EAAAA,GAAAxF,GAAA,KAAAuF,EAAA,cAQXsB,GAAS,OAAAvB,EAAAA,EAAAA,GAAArF,GAAA,mBAAT4G,CAAStB,IAAAC,EAAAA,EAAAA,GAAAvF,GAAA,KAAAsF,EAAA,CAoClBuB,iBAAAA,GAGOvC,KAAKwC,MAAMC,UACdzC,KAAKwC,MAAMC,QAAU,SAEvBC,MAAMH,mBACR,CAEAI,MAAAA,GACE,OACEC,IAAAA,cAAClJ,GAAe,CACdmJ,YAAY,UACZC,WAAY9C,KACZ+C,YAAa/C,KAAKC,iBAClBG,KAAMJ,KAAKI,KACXc,MAAOlB,KAAKkB,MACZE,SAAUpB,KAAKoB,SACf4B,UAAWhD,KAAKgD,UAChBC,WAAYjD,KAAKiD,WACjBC,UAAWlD,KAAKkD,UAChBC,WAAWpC,EAAAA,EAAAA,GAAK5E,GAAL6D,OAEX4C,IAAAA,cAACQ,GAAmB,CAClBtD,MAAOE,KAAKF,MACZe,SAAUb,KAAKa,SACfQ,SAAUrB,KAAKqB,SACfF,MAAOnB,KAAKmB,MACZG,gBAAiBtB,KAAKsB,gBACtBC,SAAUvB,KAAKuB,SACfK,SAAU5B,KAAK4B,SACfC,OAAQ7B,KAAK6B,OACbL,WAAYxB,KAAKwB,WACjBC,mBAAoBzB,KAAKyB,mBACzBa,UAAWtC,KAAKsC,UAChBZ,QAAS1B,KAAK0B,QACdC,MAAO3B,KAAK2B,MACZO,YAAalC,KAAKkC,YAClBD,YAAajC,KAAKiC,YAClBI,YAAarC,KAAKqC,YAClBN,YAAa/B,KAAK+B,YAClBK,eAAgBpC,KAAKoC,eACrBJ,iBAAkBhC,KAAKgC,iBACvBqB,cAAerD,KAAKqD,cACpBlD,UAAUY,EAAAA,EAAAA,GAAKhF,GAALiE,MACVsD,aAAavC,EAAAA,EAAAA,GAAK/E,GAALgE,MACbuD,cAAcxC,EAAAA,EAAAA,GAAK7E,GAAL8D,MACdmC,gCAAiCnC,KAAKmC,kCAI9C,EAGK,SAASiB,GAAmBI,GA+BhC,IA9BD1D,MAAO2D,EACP5C,SAAU6C,EACVvC,MAAOwC,EACPpC,SAAUqC,EACVhC,SAAUiC,EACVhC,OAAQiC,EAAO,gBACfxC,EAAe,WACfE,EAAU,mBACVC,EAAkB,QAClBC,EAAO,SACPL,EAAQ,MACRM,EAAK,UACLW,EAAS,YACTJ,EAAc,CACZ6B,WAAW,GACZ,iBACD/B,EAAgB,eAChBI,GAAiB,EAAI,YACrBH,EAAc,KAAI,YAClBI,GAAc,EAAK,YACnBN,EAAW,cACXsB,EAAa,SACblD,EAAQ,YACRmD,EAAW,aACXC,EAAY,gCACZpB,GAKDqB,EACC,MAAM1D,EAAQ2D,GAAU,GAClB5C,EAAW6C,GAAa,YACxBvC,EAAQwC,GAAU,OAClBpC,EAAWqC,GAAa,EACxBhC,EAAWiC,GAAaG,IACxBnC,EAASiC,GAAW,KACnBG,EAAUC,IAAeC,EAAAA,EAAAA,WAAS,GACnCC,GAAWC,EAAAA,EAAAA,UAAQ,KAAMC,EAAAA,EAAAA,UAAS,WAAW,KAE7C,EAAEC,IAAMC,EAAAA,EAAAA,gBAAezL,EAAAA,IAEvB0L,GAAeC,EAAAA,EAAAA,QAAuB,MACtCC,GACJD,EAAAA,EAAAA,UACIE,GAAYF,EAAAA,EAAAA,UACZG,IAAOH,EAAAA,EAAAA,QAAiC,CAC5CI,MAAO,IACPjD,OAAQkD,GAAuBjF,EAAOyB,EAAUK,MAE3CoD,GAAcC,KAAmBd,EAAAA,EAAAA,YAElCe,IAAqBR,EAAAA,EAAAA,QAAOpD,GAC5B6D,IAAcC,EAAAA,EAAAA,oBAEpBC,EAAAA,EAAAA,YAAU,KACR,GAAiB,oBAAbxE,EAAgC,OACpC,MAAMyE,EAAiBC,EAAAA,EAAUC,YAAYpB,GACvCqB,EAAKH,EAAeI,iBAAiB,WAAY5D,IACrD,MAAM,MAAE6D,EAAK,KAAEC,GAAS9D,EAAQ8D,KAC1BC,EAAQjB,EAAUkB,QAASC,WACjC,GAAKF,EACL,OAAQF,GACN,IAAK,aAAc,KAAAK,EACjB,MAAM,MAAElG,EAAK,OAAEmG,EAAM,QAAEvE,GAAYkE,EAEN,QAA7BI,EAAArB,EAAsBmB,eAAO,IAAAE,GAA7BA,EAA+BE,IAC7BD,EAAOE,KAAKR,IAAU,CACpBS,MAAO,IAAIlN,EAAAA,MACTyM,EAAMU,gBACNV,EAAMW,YACNX,EAAMY,cACNZ,EAAMa,WAERC,QAAS,CACPC,gBAAiB,kBAIvBxN,EAAAA,OAAcyN,gBAAgBd,EAAO,kBAAmBnE,GACxD4B,EAAYxD,GACZ,KACF,CACA,IAAK,mBAAoB,IAAA8G,EACvB1N,EAAAA,OAAcyN,gBAAgBd,EAAO,kBAAmB,IACxDlB,SAA8B,QAATiC,EAArBjC,EAAuBmB,eAAO,IAAAc,GAA9BA,EAAgCV,IAAI,IACpC5C,OAAYuD,GAGhB,IAEF,MAAO,KACLvB,EAAewB,oBAAoBrB,EAAG,CACvC,GACA,KAEHJ,EAAAA,EAAAA,YAAU,KACR,MAAM0B,EACM,SAAV5F,EACoB,SAAhBgE,IAA0C,YAAhBA,GACxB,UACA,KACFhE,EACA6F,EAAuBD,EAAcE,SAAS,QAChD,YACA,YACJ/N,EAAAA,OAAcgO,YAAY,eAAgB,CACxCC,KAAMJ,EACNK,SAAS,EACTC,MAAO,GACPC,OAAQ,CACN,iCAAkC,GAAGN,OAKzC9N,EAAAA,OAAcqO,SAAS,eAAe,GACrC,CAACpC,GAAahE,KAEjBkE,EAAAA,EAAAA,YAAU,KACR,GAAIT,EAAUkB,QAAS,CACrB,MAAM0B,EAAe5C,EAAUkB,QAAQC,WACvC7M,EAAAA,OAAcuO,iBAAiBD,EAAc3G,EAC/C,IACC,CAACA,KAEJwE,EAAAA,EAAAA,YAAU,KACR,GAAiB,oBAAbxE,EAAgC,CAClC,MAAM6G,GAAyBC,EAAAA,EAAAA,GAC7BnG,EACAC,EACA2C,EACAlC,GAEI0F,EAAoB1O,EAAAA,UAAiB2O,+BACzC,kBACA,CACEH,yBACAI,kBAAmB,CAAC,IAAK,IAAK,OAGlC,MAAO,KACLF,EAAkBG,SAAS,CAE/B,IACC,CAACvG,EAAYC,EAAoBZ,IAEpC,MAAMmH,IAAYC,EAAAA,EAAAA,cAAY,KAC5B,GAAiB,oBAAbpH,IAAmC+D,EAAUkB,QAAS,OAC1D,MAAMR,EAAiBC,EAAAA,EAAUC,YAAYpB,GACvCoD,EAAe5C,EAAUkB,QAAQC,WACvCT,EAAe4C,YAAY,CACzBvC,MAAO,aACPC,KAAM,CACJ9F,MAAO0H,aAAY,EAAZA,EAAcW,WACrBxG,QACAD,WAEF+E,QAASvE,GACT,GACD,CAACrB,EAAUqB,EAAaP,EAAOD,EAAS0C,IAErCgE,IAAgB/D,EAAAA,EAAAA,UAAQ,KAAMgE,EAAAA,EAAAA,UAASL,GAAW,MAAM,CAACA,MAE/D3C,EAAAA,EAAAA,YAAU,KACR,MAAMiD,EAAS1D,EAAUkB,QACzB,GAAIwC,EAAQ,CACV,MAAMd,EAAec,EAAOvC,WACxByB,SAAAA,EAAcW,UAAYrI,IAAU0H,EAAaW,aACnDX,EAAae,SAASzI,GACtBsI,KAEJ,IACC,CAACtI,EAAOsI,MAEX/C,EAAAA,EAAAA,YAAU,KACR+C,IAAe,GACd,KAEHI,EAAAA,EAAAA,kBAAgB,KAAM,IAAAC,EACpB,GAAmC,gBAA/BvD,GAAmBY,UAA8BrB,EAAaqB,QAChE,OAGFjB,GAAKiB,QAAQhB,MAAQL,EAAaqB,QAAQ4C,wBAAwB5D,MACjD,QAAjB2D,EAAA7D,EAAUkB,eAAO,IAAA2C,GAAjBA,EAAmBE,OAAO9D,GAAKiB,SAE/B,MAAM8C,EAAW,IAAIC,gBAAgBC,IACnC,IAAK,MAAMC,KAASD,EAClB,GAAIC,EAAMC,SAAWvE,EAAaqB,QAAS,CACzC,MAAMmD,EAAWF,EAAMG,eACnBH,EAAMG,eAAe,GAAGC,WACxBJ,EAAMK,YAAYtE,MAChBuE,EAAYN,EAAMG,eACpBH,EAAMG,eAAe,GAAGI,UACxBP,EAAMK,YAAYvH,OAC2B,IAAA0H,GAA7CN,IAAapE,GAAKiB,QAAQhB,OAASb,KACrCY,GAAKiB,QAAQhB,MAAQmE,EACJ,QAAjBM,EAAA3E,EAAUkB,eAAO,IAAAyD,GAAjBA,EAAmBZ,OAAO,CACxB7D,MAAOmE,EACPpH,OAAQoC,EAAWoF,EAAYxE,GAAKiB,QAAQjE,UAGhD,KACF,CACF,IAIF,OAFA+G,EAASY,QAAQ/E,EAAaqB,SAEvB,KACL8C,EAASa,YAAY,CACtB,GACA,CAACxF,KAEJuE,EAAAA,EAAAA,kBAAgB,KACd,GAAmC,kBAA/BtD,GAAmBY,QACrB,OAGF,MAAM4D,EAgcV,SAAyBC,GACvB,IAAIC,EAAQD,EACZ,KAAOC,GAAO,CACZ,MAAMC,EAAwC,mBAAhCD,EAAME,QAAQC,cAE5B,GADAH,EAAQA,EAAMI,cACVH,EACF,OAAOD,CAEX,CACF,CAzcsBK,CAAgBxF,EAAaqB,SAC/C,IAAK4D,EACH,OAGF,MAAMd,EAAW,IAAIC,gBAAe,KAClC5D,GAAgByE,EAAUQ,aAAa,IAGzC,OADAtB,EAASY,QAAQE,GACV,KACLd,EAASa,YAAY,CACtB,GACA,KAEHpE,EAAAA,EAAAA,YAAU,KAEyB,kBAA/BH,GAAmBY,SACY,gBAA/BZ,GAAmBY,SAEnBb,GAAgBpD,EAClB,GACC,CAACA,KAEJwD,EAAAA,EAAAA,YAAU,KACHT,EAAUkB,SACflB,EAAUkB,QAAQqE,cAAc,CAC9B9I,YACA,GACD,CAACA,KAEJgE,EAAAA,EAAAA,YAAU,KACR,GAAIT,EAAUkB,UAAYrB,EAAaqB,QACrC,OAEF,MAAMD,EAAQ3M,EAAAA,OAAckR,YAAYtK,EAAOe,GAC/C,GAAiB,oBAAbA,EAAgC,CAElC,MAAMwJ,GAAMC,EAAAA,EAAAA,IAAyBzE,EAAMwE,KAC3CnR,EAAAA,OAAckR,YAAYtK,EAAO,aAAcuK,GAC/CnR,EAAAA,UAAiBqR,WAAWC,mBAAmBC,aAC7CC,EAAAA,EAAAA,MACA7E,EAAMwE,IAAIM,WAAa,OAE3B,CAEA/F,EAAUkB,QAAU5M,EAAAA,OAAc0R,OAAOnG,EAAaqB,QAAS,CAC7DD,QACAgF,QAAS,CACPC,SAAS,EACTC,0BAA0B,EAC1BC,wBAAwB,GAE1BC,sBAAsB,EACtBC,QAAS,EACTC,cAAc,EACd7J,gBAAgD,gBAA/B4D,GAAmBY,QACpCsF,SAAUC,EAAAA,GACVC,WAAYC,EAAAA,GACZC,UAAW,CACTC,wBAAyBC,EAAAA,GACzBC,sBAAuBD,EAAAA,GACvBE,qBAAsB,EACtBC,mBAAoB,EACpBC,yBAAyB,GAE3BC,QAAS,CACPC,IAAKC,EAAAA,GAGLC,OACgC,eAA9BhH,GAAmBY,aACfe,EACAoF,EAAAA,IAERE,qBAAqB,EACrBC,4BAA6B,GAC7BC,sBAAsB,EACtBpK,YAAaA,EACbqK,oBAAqB,EACrBjK,YAAaA,EACbkK,QAAyB,QAAhBtK,EACTuK,QAAS,CACPC,WAAY,SACZC,SAAS,GAEXrL,SAAUA,EACVsL,iBAAkB,CAAEC,SAAS,EAAMC,OAAO,EAAMC,UAAU,GAC1DC,kCAAkC,EAClCC,iBAAkB,CAChBC,qBAAqB,KAIzBtI,EAAsBmB,QACpBlB,EAAUkB,QAAQoH,6BAA6B,GAEhD,KAEH7H,EAAAA,EAAAA,YAAU,KACR,MAAM8H,EAAmB7K,GAAa,GAEhC8K,EACS,eAAbvM,EAA4B,qBAAuB,qBAC/CwM,GAAcC,EAAAA,EAAAA,GAAaH,EAAM,CACrCC,qBAEF,MAAO,KACL,IAAK,MAAMG,KAAQF,EACjBE,EAAKxF,SACP,CACD,GACA,CAACzF,EAAWzB,KAEfwE,EAAAA,EAAAA,YAAU,KACR,MAAMiD,EAAS1D,EAAUkB,QACzB,GAAiB,oBAAbjF,GAAkCyH,EAAQ,CAC5C,MAAMzC,EAAQyC,EAAOvC,WACfyH,EAAuBlF,EAAOmF,aAAY,SAAUC,GAAG,IAAAC,EAC3D,MAAMC,EAAcjJ,EAAsBmB,UACzC8H,SAAsB,QAAXD,EAAXC,EAAaC,iBAAS,IAAAF,OAAA,EAAtBA,EAAAG,KAAAF,KAA8B,IAAIG,SAAS3H,IAC1C,MAAM4H,EAAS,uBAAuBC,KAAKC,UAAUC,UACjD,UACA,UAEF/H,GACAsH,EAAE1E,OAAOoF,UACTV,EAAElU,MAAMwU,IACR5H,EAAMiI,iBAAiBX,EAAE1E,OAAOoF,WAEhC7K,EAAasC,EAAMyI,gBAAgBlI,GACrC,GAEJ,IAEMmI,EAAiBjG,EAAOkG,aAAY,SAAUd,GAClD,MAAME,EAAcjJ,EAAsBmB,QACrC8H,GACLA,EAAYC,YAAYE,SAAS3H,IAC/B,MAAM4H,EAAS,uBAAuBC,KAAKC,UAAUC,UACjD,UACA,UACJ,GACE/H,GACAsH,EAAE1E,OAAOoF,UACTV,EAAElU,MAAMwU,IACR5H,EAAMiI,iBAAiBX,EAAE1E,OAAOoF,UAChC,CACA,MAAMK,EAAiBb,EAAYC,YAAY1H,KAAKoH,IAAI,CACtDnH,MAAOmH,EACP9G,QAAS,CACPC,gBAAiBN,EAAMsI,YAAYnB,GAC/B,oBACA,iBAGRK,EAAY1H,IAAIuI,EAClB,MAAO,IAAKf,EAAElU,MAAMwU,GAAS,CAC3B,MAAMS,EAAiBb,EAAYC,YAAY1H,KAAKoH,IAAI,CACtDnH,MAAOmH,EACP9G,QAAS,CACPC,gBAAiB,iBAGrBkH,EAAY1H,IAAIuI,EAClB,IAEJ,IAEA,MAAO,KACLF,SAAAA,EAAgBxG,UAChByF,SAAAA,EAAsBzF,SAAS,CAEnC,IACC,CAAClH,EAAU0C,EAAc4B,GAAahE,KAEzCkE,EAAAA,EAAAA,YAAU,KACR,MAAMiD,EAAS1D,EAAUkB,QACzB,IACGwC,IACA7D,EAAaqB,SACiB,gBAA/BZ,GAAmBY,QAEnB,OAGF,MAAM6I,EAAWrG,EAAOsG,wBAAwBlB,IAC9C,IAAIzJ,GACAyJ,EAAEmB,qBAAsB,CAC1B,MAAMxF,EAAYyF,GAChBpB,EAAEqB,cACFxN,EACAK,GAEEyH,IAAcxE,GAAKiB,QAAQjE,SAC7BgD,GAAKiB,QAAQjE,OAASwH,EACtBf,EAAOK,OAAO9D,GAAKiB,SAEvB,KAGIuD,EAAYyF,GAChBxG,EAAO0G,mBACPzN,EACAK,GAOF,OALIyH,IAAcxE,GAAKiB,QAAQjE,SAC7BgD,GAAKiB,QAAQjE,OAASwH,EACtBf,EAAOK,OAAO9D,GAAKiB,UAGd,KACL6I,EAAS5G,SAAS,CACnB,GACA,CAACnG,EAAUL,EAAU0C,IAGxB,MAAMgL,IAAyBhH,EAAAA,EAAAA,cAC7BiH,MAAOrJ,EAA6BuI,KAClClV,EAAAA,OAAcyN,gBAAgBd,EAAO,oBAAqB,IAE1D,MAAMsJ,EAAyBtJ,EAAMuJ,kBACnC,UACAhB,GACA,GACA,EACA,MACA,GAGIiB,EAAyBxJ,EAAMyJ,cACnC,KACAlB,GACA,GACA,EACA,MACA,GAGImB,EAAsBJ,aAAsB,EAAtBA,EAAwB/I,MAC9CoJ,EAAsBH,aAAsB,EAAtBA,EAAwBjJ,MAEpD,GAAImJ,GAAuBC,EAAqB,CAC9C,MAAMpJ,EAAQ,IAAIlN,EAAAA,MAChBqW,EAAoBlJ,gBACpBkJ,EAAoB/I,UACpBgJ,EAAoBnJ,gBACpBmJ,EAAoBlJ,aAGhBmJ,EAAU5J,EAAMyI,gBAAgBlI,GACtC,GAAIA,EAAMiI,iBAAiBD,KAAe,UAAUH,KAAKwB,GAAU,CACjE,MAAMC,GAASpF,EAAAA,EAAAA,IAAyBzE,EAAMwE,KACxBnR,EAAAA,OAAc6M,SAAS2J,GAE9BnH,SAASkH,GACxB,MAAME,EAAS9J,EAAM+J,YACnB,IAAI1W,EAAAA,SACFqW,EAAoBlJ,gBACpBkJ,EAAoB/I,YAQxB,GAJwBqJ,EAAAA,EAAqBrK,YAAYpB,GAEzC0L,YAAY,CAAEL,UAASrJ,QAAOuJ,YAEzCxN,EAAiC,OAEtC,MAAM4N,QACE7W,EAAAA,UAAiBqR,WAAWyF,sBAE9BC,QAAeF,EAAUL,GAMzBQ,SAJoBD,EAAOE,uBAC/BT,EAAO/E,aAG2BxE,KAAKoH,IACvC,MAAM6C,EAAcT,GAAUpC,EAAK8C,OAAS,GACtCC,EAAkBzK,EAAM0K,cAAcH,GAE5C,MAAO,CACL/J,gBAAiBiK,EAAgBE,WACjClK,YAAagK,EAAgBG,OAC7BlK,cAAe+J,EAAgBE,WAC/BhK,UAAW8J,EAAgBG,OAASlD,EAAKmD,OACzC5O,QAASyL,EAAKoD,YACdC,SAAU1X,EAAAA,eAAsB2X,QACjC,IAGH3X,EAAAA,OAAcyN,gBACZd,EACA,oBACAqK,EAEJ,CACF,IAEF,CAAC9L,KAGHiB,EAAAA,EAAAA,YAAU,KACR,IAAKT,EAAUkB,QACb,OAEF,MAAM0B,EAAe5C,EAAUkB,QAAQC,WACjC4I,EAAWnH,EAAasJ,oBAAmB5B,WAC/C6B,EAAAA,EAAAA,GAAY3M,GAER,CAAC,mBAAmB6C,SAASpG,KAC/BoO,GAAuBzH,EAAc5C,EAAUkB,QAASkL,eACxD5I,MAEFjI,EAASqH,EAAaW,WAAW,IAEnC,MAAO,KACLwG,EAAS5G,SAAS,CACnB,GACA,CAACK,GAAejI,EAAUiE,EAAUvD,EAAUoO,MAEjD5J,EAAAA,EAAAA,YAAU,KACR,GAAIpB,EAAU,CACZ,MAAMgN,EAAMvD,IACI,WAAVA,EAAEwD,KAA8B,QAAVxD,EAAEwD,MAC1BC,OAAOrK,oBAAoB,UAAWmK,GACtC/M,GAAY,GACd,EAGF,OADAiN,OAAOzL,iBAAiB,UAAWuL,GAC5B,KACLE,OAAOrK,oBAAoB,UAAWmK,EAAG,CAE7C,IACC,CAAChN,KAEJoB,EAAAA,EAAAA,YAAU,IACD,KAAM,IAAA+L,EAAAC,EACM,QAAjBD,EAAAxM,EAAUkB,eAAO,IAAAsL,GAAY,QAAZA,EAAjBA,EAAmBrL,kBAAU,IAAAqL,GAA7BA,EAA+BrJ,UACd,QAAjBsJ,EAAAzM,EAAUkB,eAAO,IAAAuL,GAAjBA,EAAmBtJ,SAAS,GAE7B,KAEH1C,EAAAA,EAAAA,YAAU,KACR,IAAKT,EAAUkB,UAAY/D,EAAa,OACxC,MAAMuP,EAAoB,IAAIC,EAAAA,EAC5BxP,EACA6C,EAAUkB,SAGZ,MAAO,KACLwL,EAAkBvJ,SAAS,CAC5B,GACA,CAAChG,IAEJ,MAAMyP,IAAsBvJ,EAAAA,EAAAA,cAAY,KACtC,GAAIrD,EAAUkB,QAAS,CACrB,MAAM0B,EAAe5C,EAAUkB,QAAQC,WACvCjM,GAAgB0N,EAAaW,YAC1BsJ,MAAK,IACJzX,GAAiB,CAAE0X,KAAM,UAAW5P,QAASyC,EAAEoN,EAAAA,EAAEC,kBAElDC,OAAM,IACL7X,GAAiB,CAAE0X,KAAM,QAAS5P,QAASyC,EAAEoN,EAAAA,EAAEG,gBAErD,IACC,CAACvN,IAEEwN,IAAsB9J,EAAAA,EAAAA,cAAY,KACtC/D,GAAaD,EAAS,GACrB,CAACA,IAEJ,OACErB,IAAAA,cAAA,OACEoP,UAAWC,IAAW,sBAAuB,CAC3ChO,WACAiO,MAAyB,UAAlB7O,KAGTT,IAAAA,cAAA,OACEuP,IAAK1N,EACLjC,MAAO,CACLX,OAAQoC,EAAW,OAASe,GAC5BoN,SAAUnO,EAAW,SAAW,MAGpCrB,IAAAA,cAAA,OAAKoP,UAAU,WACZ5P,GACCQ,IAAAA,cAAChJ,GAAc,CAAC6V,QAASlL,EAAEoN,EAAAA,EAAEU,OAC3BzP,IAAAA,cAAC/I,GAAW,CACVmY,UAAU,YACVM,KAAK,OACLC,IAAI,OACJpR,MAAM,WACNqR,QAAShB,MAIdxP,GACCY,IAAAA,cAAChJ,GAAc,CACb6V,QAAqBlL,EAAXN,EAAa0N,EAAAA,EAAEc,SAAcd,EAAAA,EAAEe,SAEzC9P,IAAAA,cAAC/I,GAAW,CACVmY,UAAU,cACVM,KAAMrO,EAAW,WAAa,SAC9BsO,IAAI,OACJpR,MAAM,WACNqR,QAAST,OAOvB,CAEA,SAAShN,GACP4N,EACApR,EACAK,GAEA,OAAOgR,GACLC,KAAKC,IAAIlR,EAAUiR,KAAKE,IAAIxR,EAAUoR,EAAKK,MAAM,MAAMtC,SAE3D,CAEA,SAAS5B,GACPC,EACAxN,EACAK,GAEA,IAAIqR,EAAclE,EAIlB,OAHKA,EAAgB9C,EAAAA,IAA2BV,EAAAA,IAAuB,IACrE0H,EAAclE,EAAgBrD,EAAAA,IAEzBmH,KAAKC,IACVF,GAAwBhR,GACxBiR,KAAKE,IAAIE,EAAaL,GAAwBrR,IAElD,CAEA,SAASqR,GAAwBM,GAC/B,OACEA,EAAQ3H,EAAAA,GAAqBG,EAAAA,GAAwBO,EAAAA,EAEzD,CA3pBCkH,EAAA/W,KAAAsR,GAAAhR,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAY,GAAA8S,GAAAzT,GAAAC,GAAAY,GAAA6S,GAAAxT,GAAAY,GAAAG,GAAA0S,GAAA5S,IAAA6S,GAAAtZ,GAAAuZ,KAAAC,EAAAA,EAAAA,GAAAN,EAAA,CA7NA7Z,GAAc,iBAAkB,CAI/Boa,eAAe,KACf,EAECna,KAAU,WAGVA,KAAU,YAGVA,KAAU,YAMVA,KAAU,eASVA,KAAU,YAEVA,GAAS,CACRmY,KAAMiC,UACN,eAGDpa,GAAS,CACRmY,KAAMiC,UACN,eAGDpa,KAAU,sBAUVA,GAAS,CAAEmY,KAAMkC,SAAS,eAG1Bra,GAAS,CACRsa,WAAW,IACX,iBAGDta,GAAS,CACRsa,WAAW,IACX,yBAGDta,GAAS,CAAEsa,WAAW,IAAQ,cAG9Bta,GAAS,CAAEsa,WAAW,IAAQ,YAM9Bta,GAAS,CAAEmY,KAAMkC,SAAS,eAG1Bra,GAAS,CAAEsa,WAAW,IAAQ,aAG9Bta,KAAU,cAGVA,KAAU,kBAMVA,GAAS,CAAEmY,KAAMiC,UAAU,uBAM3Bpa,KAAU,kBAMVA,GAAS,CACRsa,WAAW,IACX,kBAODta,GAAS,CACRmY,KAAMiC,UACN,sCAODpa,GAAS,CAAEmY,KAAMiC,UAAU,qBAO3Bpa,GAAS,CAAEmY,KAAMiC,UAAU,kBAM3Bpa,GAAS,CACRsa,WAAW,IACX,gBAGDra,GAAM,CAAEkY,KAAM,gBAAgB,eAAAoC,IAAA/S,EAAAA,EAAAA,GAAApF,GAAAmY,GAAA,CAAAA,EAAA9S,KAAAC,EAAAA,EAAAA,GAAAtF,GAAAmY,EAAA9S,IAAA,CAG9BxH,GAAM,CAAEkY,KAAM,eAAe,cAAAoC,IAAA/S,EAAAA,EAAAA,GAAAjF,GAAAgY,GAAA,CAAAA,EAAA9S,KAAAC,EAAAA,EAAAA,GAAAnF,GAAAgY,EAAA9S,IAAA,CAa7BxH,GAAM,CAAEkY,KAAM,gBAAgB,oBAAAoC,IAAA/S,EAAAA,EAAAA,GAAA9E,GAAA6X,GAAA,CAAAA,EAAA9S,KAAAC,EAAAA,EAAAA,GAAAhF,GAAA6X,EAAA9S,KAAA,GAAA+S,GAAA5X,GAAA6X,KAAAC,EAAAA,EAAAA,GAAAF,KAjJR1X,EAAAA,IAAmBmX,G","sources":["webpack:///./src/code-editor/index.tsx"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { unwrapProvider } from \"@next-core/utils/general\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"@next-bricks/form/form-item\";\nimport * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\nimport { register as registerJavaScript } from \"@next-core/monaco-contributions/javascript\";\nimport { register as registerTypeScript } from \"@next-core/monaco-contributions/typescript\";\nimport { register as registerYaml } from \"@next-core/monaco-contributions/yaml\";\nimport { register as registerHtml } from \"@next-core/monaco-contributions/html\";\nimport yaml from \"js-yaml\";\nimport \"@next-core/theme\";\nimport { uniqueId, debounce } from \"lodash\";\nimport {\n EDITOR_SCROLLBAR_SIZE,\n EDITOR_PADDING_VERTICAL,\n EDITOR_LINE_HEIGHT,\n EDITOR_FONT_SIZE,\n} from \"./constants.js\";\nimport { AdvancedCompleterMap, ExtraLib } from \"./interfaces.js\";\nimport { brickNextYAMLProviderCompletionItems } from \"./utils/brickNextYaml.js\";\nimport { Level } from \"./utils/constants.js\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { VSWorkers } from \"./workers/index.mjs\";\nimport { setEditorId } from \"./utils/editorId.js\";\nimport {\n getEmbeddedJavascriptUri,\n getBrickYamlBuiltInDeclare,\n} from \"./utils/jsSuggestInBrickYaml.js\";\nimport { addExtraLibs } from \"./utils/addExtraLibs.js\";\nimport type { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport type { copyToClipboard as _copyToClipboard } from \"@next-bricks/basic/data-providers/copy-to-clipboard\";\nimport type { showNotification as _showNotification } from \"@next-bricks/basic/data-providers/show-notification/show-notification\";\nimport classNames from \"classnames\";\nimport \"./index.css\";\nimport { EmbeddedModelContext } from \"./utils/embeddedModelState.js\";\nimport { PlaceholderContentWidget } from \"./widget/Placeholder.js\";\n\ninitializeReactI18n(NS, locales);\n\nregisterJavaScript(monaco);\nregisterTypeScript(monaco);\nregisterYaml(monaco, \"brick_next_yaml\");\nregisterHtml(monaco);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst copyToClipboard = unwrapProvider<typeof _copyToClipboard>(\n \"basic.copy-to-clipboard\"\n);\nconst showNotification = unwrapProvider<typeof _showNotification>(\n \"basic.show-notification\"\n);\n\nexport interface CodeEditorProps {\n name?: string;\n label?: string;\n value?: string;\n language?: string;\n theme?: string;\n placeholder?: string;\n required?: boolean;\n readOnly?: boolean;\n automaticLayout?: \"fit-container\" | \"fit-content\" | \"none\";\n minLines?: number;\n maxLines?: number;\n height?: string | number;\n completers?: monaco.languages.CompletionItem[];\n tokenConfig?: TokenConfig;\n advancedCompleters?: AdvancedCompleterMap;\n extraLibs?: ExtraLib[];\n markers?: Marker[];\n links?: string[];\n showExpandButton?: boolean;\n showCopyButton?: boolean;\n lineNumbers?: monaco.editor.LineNumbersType;\n glyphMargin?: boolean;\n validateState?: string;\n customValidationInBrickNextYaml?: boolean;\n}\n\nexport interface Marker {\n token: string;\n level?: keyof typeof Level;\n message?: string;\n code?: {\n value: string;\n target: string;\n };\n params?: string[];\n}\n\nexport type TokenConfig = {\n showDSKey: boolean;\n};\n\n/**\n * 构件代码编辑器\n * @category form-input-advanced\n */\nexport\n@defineElement(\"vs.code-editor\", {\n // There are a few issues for monaco-editor with shadow DOM.\n // So we use light DOM for now.\n // See https://github.com/microsoft/monaco-editor/issues?q=is%3Aissue+is%3Aopen+shadow+dom\n shadowOptions: false,\n})\nclass CodeEditor extends FormItemElementBase implements CodeEditorProps {\n @property()\n accessor name: string | undefined;\n\n @property()\n accessor label: string | undefined;\n\n @property()\n accessor value: string | undefined;\n\n /**\n * @default \"plaintext\"\n */\n @property()\n accessor language: string | undefined;\n\n /**\n * 主题,支持 `\"auto\" | \"vs\" | \"vs-dark\"`\n *\n * @default \"auto\"\n * @group ui\n */\n @property() accessor theme: string | undefined;\n\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n @property({\n type: Boolean,\n })\n accessor readOnly: boolean | undefined;\n\n @property()\n accessor automaticLayout:\n | \"fit-container\"\n | \"fit-content\"\n | \"none\"\n | undefined;\n\n /**\n * @default 3\n */\n @property({ type: Number })\n accessor minLines: number | undefined;\n\n @property({\n attribute: false,\n })\n accessor completers: monaco.languages.CompletionItem[] | undefined;\n\n @property({\n attribute: false,\n })\n accessor advancedCompleters: AdvancedCompleterMap | undefined;\n\n @property({ attribute: false })\n accessor markers: Marker[] | undefined;\n\n @property({ attribute: false })\n accessor links: string[] | undefined;\n\n /**\n * @default Infinity\n */\n @property({ type: Number })\n accessor maxLines: number | undefined;\n\n @property({ attribute: false })\n accessor height: string | number | undefined;\n\n @property()\n accessor message: string | undefined;\n\n @property()\n accessor placeholder: string | undefined;\n\n /**\n * 是否展示展开按钮\n */\n @property({ type: Boolean })\n accessor showExpandButton: boolean | undefined;\n\n /**\n * 行数配置\n */\n @property()\n accessor lineNumbers: monaco.editor.LineNumbersType | undefined;\n\n /**\n * 自定义高亮配置\n */\n @property({\n attribute: false,\n })\n accessor tokenConfig: TokenConfig | undefined;\n\n /**\n * 在 brick_next_yaml 中是否开启语义相关校验\n * @default false\n */\n @property({\n type: Boolean,\n })\n accessor customValidationInBrickNextYaml: boolean | undefined;\n\n /**\n * 是否展示复制按钮\n * @default true\n */\n @property({ type: Boolean })\n accessor showCopyButton: boolean | undefined;\n\n /**\n * 显示字形边距\n * @default false\n */\n @property({ type: Boolean })\n accessor glyphMargin: boolean | undefined;\n\n /**\n * @description 额外声明的 lib 库\n */\n @property({\n attribute: false,\n })\n accessor extraLibs: ExtraLib[] | undefined;\n\n @event({ type: \"code.change\" })\n accessor #codeChange!: EventEmitter<string>;\n\n @event({ type: \"user.input\" })\n accessor #userInput!: EventEmitter<any>;\n\n #handleChange = (value: string) => {\n this.value = value;\n this.getFormElement()?.formStore.onChange(this.name!, value);\n this.#codeChange.emit(value);\n };\n\n #handleUserInput = (value: any) => {\n this.#userInput.emit(value);\n };\n\n @event({ type: \"token.click\" })\n accessor #tokenClickEvent!: EventEmitter<string>;\n\n #handleTokenClick = (word: string) => {\n this.#tokenClickEvent.emit(word);\n };\n\n #handleValidator = (value: string) => {\n if (this.language === \"brick_next_yaml\" || this.language === \"yaml\") {\n try {\n yaml.load(value);\n } catch {\n return \"请填写正确的格式\";\n }\n }\n return \"\";\n };\n\n connectedCallback(): void {\n // Don't override user's style settings.\n // istanbul ignore else\n if (!this.style.display) {\n this.style.display = \"block\";\n }\n super.connectedCallback();\n }\n\n render() {\n return (\n <WrappedFormItem\n exportparts=\"message\"\n curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n required={this.required}\n helpBrick={this.helpBrick}\n labelBrick={this.labelBrick}\n notRender={this.notRender}\n validator={this.#handleValidator}\n >\n <CodeEditorComponent\n value={this.value}\n language={this.language}\n readOnly={this.readOnly}\n theme={this.theme}\n automaticLayout={this.automaticLayout}\n minLines={this.minLines}\n maxLines={this.maxLines}\n height={this.height}\n completers={this.completers}\n advancedCompleters={this.advancedCompleters}\n extraLibs={this.extraLibs}\n markers={this.markers}\n links={this.links}\n tokenConfig={this.tokenConfig}\n lineNumbers={this.lineNumbers}\n glyphMargin={this.glyphMargin}\n placeholder={this.placeholder}\n showCopyButton={this.showCopyButton}\n showExpandButton={this.showExpandButton}\n validateState={this.validateState}\n onChange={this.#handleChange}\n onUserInput={this.#handleUserInput}\n onTokenClick={this.#handleTokenClick}\n customValidationInBrickNextYaml={this.customValidationInBrickNextYaml}\n />\n </WrappedFormItem>\n );\n }\n}\n\nexport function CodeEditorComponent({\n value: _value,\n language: _language,\n theme: _theme,\n minLines: _minLines,\n maxLines: _maxLines,\n height: _height,\n automaticLayout,\n completers,\n advancedCompleters,\n markers,\n readOnly,\n links,\n extraLibs,\n tokenConfig = {\n showDSKey: false,\n },\n showExpandButton,\n showCopyButton = true,\n lineNumbers = \"on\",\n glyphMargin = false,\n placeholder,\n validateState,\n onChange,\n onUserInput,\n onTokenClick,\n customValidationInBrickNextYaml,\n}: CodeEditorProps & {\n onChange(value: string): void;\n onUserInput: (value: any) => void;\n onTokenClick(word: string): void;\n}) {\n const value = _value ?? \"\";\n const language = _language ?? \"plaintext\";\n const theme = _theme ?? \"auto\";\n const minLines = _minLines ?? 3;\n const maxLines = _maxLines ?? Infinity;\n const height = _height ?? 500;\n const [expanded, setExpanded] = useState(false);\n const workerId = useMemo(() => uniqueId(\"worker\"), []);\n\n const { t } = useTranslation(NS);\n\n const containerRef = useRef<HTMLDivElement>(null);\n const decorationsCollection =\n useRef<monaco.editor.IEditorDecorationsCollection>();\n const editorRef = useRef<monaco.editor.IStandaloneCodeEditor>();\n const size = useRef<monaco.editor.IDimension>({\n width: 300,\n height: getContentHeightByCode(value, minLines, maxLines),\n });\n const [actualHeight, setActualHeight] = useState<string | number>();\n // `automaticLayout` should never change\n const automaticLayoutRef = useRef(automaticLayout);\n const systemTheme = useCurrentTheme();\n\n useEffect(() => {\n if (language !== \"brick_next_yaml\") return;\n const workerInstance = VSWorkers.getInstance(workerId);\n const id = workerInstance.addEventListener(\"message\", (message: any) => {\n const { token, data } = message.data;\n const model = editorRef.current!.getModel();\n if (!model) return;\n switch (token) {\n case \"parse_yaml\": {\n const { value, tokens, markers } = data;\n\n decorationsCollection.current?.set(\n tokens.map((token: any) => ({\n range: new monaco.Range(\n token.startLineNumber,\n token.startColumn,\n token.endLineNumber,\n token.endColumn\n ),\n options: {\n inlineClassName: \"highlight\",\n },\n }))\n );\n monaco.editor.setModelMarkers(model, \"brick_next_yaml\", markers);\n onUserInput(value);\n break;\n }\n case \"parse_yaml_error\": {\n monaco.editor.setModelMarkers(model, \"brick_next_yaml\", []);\n decorationsCollection?.current?.set([]);\n onUserInput(undefined);\n break;\n }\n }\n });\n return () => {\n workerInstance.removeEventListener(id);\n };\n }, []);\n\n useEffect(() => {\n const computedTheme =\n theme === \"auto\"\n ? systemTheme === \"dark\" || systemTheme === \"dark-v2\"\n ? \"vs-dark\"\n : \"vs\"\n : theme;\n const lineHeightBackground = computedTheme.includes(\"dark\")\n ? \"#FFFFFF0F\"\n : \"#0000000A\";\n monaco.editor.defineTheme(\"custom-theme\", {\n base: computedTheme as \"vs-dark\" | \"vs\",\n inherit: true,\n rules: [],\n colors: {\n \"editor.lineHighlightBackground\": `${lineHeightBackground}`,\n },\n });\n // Currently theme is configured globally.\n // See https://github.com/microsoft/monaco-editor/issues/338\n monaco.editor.setTheme(\"custom-theme\");\n }, [systemTheme, theme]);\n\n useEffect(() => {\n if (editorRef.current) {\n const currentModel = editorRef.current.getModel()!;\n monaco.editor.setModelLanguage(currentModel, language);\n }\n }, [language]);\n\n useEffect(() => {\n if (language === \"brick_next_yaml\") {\n const provideCompletionItems = brickNextYAMLProviderCompletionItems(\n completers,\n advancedCompleters,\n workerId,\n tokenConfig\n );\n const monacoProviderRef = monaco.languages.registerCompletionItemProvider(\n \"brick_next_yaml\",\n {\n provideCompletionItems,\n triggerCharacters: [\".\", \":\", \"<\"],\n } as monaco.languages.CompletionItemProvider\n );\n return () => {\n monacoProviderRef.dispose();\n };\n }\n }, [completers, advancedCompleters, language]);\n\n const parseYaml = useCallback(() => {\n if (language !== \"brick_next_yaml\" || !editorRef.current) return;\n const workerInstance = VSWorkers.getInstance(workerId);\n const currentModel = editorRef.current.getModel();\n workerInstance.postMessage({\n token: \"parse_yaml\",\n data: {\n value: currentModel?.getValue(),\n links,\n markers,\n },\n options: tokenConfig,\n });\n }, [language, tokenConfig, links, markers, workerId]);\n\n const debounceParse = useMemo(() => debounce(parseYaml, 300), [parseYaml]);\n\n useEffect(() => {\n const editor = editorRef.current;\n if (editor) {\n const currentModel = editor.getModel();\n if (currentModel?.getValue && value !== currentModel.getValue()) {\n currentModel.setValue(value as string);\n debounceParse();\n }\n }\n }, [value, debounceParse]);\n\n useEffect(() => {\n debounceParse();\n }, []);\n\n useLayoutEffect(() => {\n if (automaticLayoutRef.current !== \"fit-content\" || !containerRef.current) {\n return;\n }\n\n size.current.width = containerRef.current.getBoundingClientRect().width;\n editorRef.current?.layout(size.current);\n\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === containerRef.current) {\n const newWidth = entry.contentBoxSize\n ? entry.contentBoxSize[0].inlineSize\n : entry.contentRect.width;\n const newHeight = entry.contentBoxSize\n ? entry.contentBoxSize[0].blockSize\n : entry.contentRect.height;\n if (newWidth !== size.current.width || expanded) {\n size.current.width = newWidth;\n editorRef.current?.layout({\n width: newWidth,\n height: expanded ? newHeight : size.current.height,\n });\n }\n break;\n }\n }\n });\n observer.observe(containerRef.current);\n\n return () => {\n observer.disconnect();\n };\n }, [expanded]);\n\n useLayoutEffect(() => {\n if (automaticLayoutRef.current !== \"fit-container\") {\n return;\n }\n\n const container = getDOMContainer(containerRef.current);\n if (!container) {\n return;\n }\n // Manually layout the editor once the container resized.\n const observer = new ResizeObserver((): void => {\n setActualHeight(container.offsetHeight);\n });\n observer.observe(container);\n return () => {\n observer.disconnect();\n };\n }, []);\n\n useEffect(() => {\n if (\n automaticLayoutRef.current !== \"fit-container\" &&\n automaticLayoutRef.current !== \"fit-content\"\n ) {\n setActualHeight(height);\n }\n }, [height]);\n\n useEffect(() => {\n if (!editorRef.current) return;\n editorRef.current.updateOptions({\n readOnly,\n });\n }, [readOnly]);\n\n useEffect(() => {\n if (editorRef.current || !containerRef.current) {\n return;\n }\n const model = monaco.editor.createModel(value, language);\n if (language === \"brick_next_yaml\") {\n // 注册嵌套的 model, language 为 js\n const uri = getEmbeddedJavascriptUri(model.uri);\n monaco.editor.createModel(value, \"javascript\", uri);\n monaco.languages.typescript.javascriptDefaults.addExtraLib(\n getBrickYamlBuiltInDeclare(),\n model.uri.toString() + \"d.ts\"\n );\n }\n\n editorRef.current = monaco.editor.create(containerRef.current, {\n model,\n minimap: {\n enabled: false,\n showRegionSectionHeaders: false,\n showMarkSectionHeaders: false,\n },\n scrollBeyondLastLine: false,\n tabSize: 2,\n insertSpaces: true,\n automaticLayout: automaticLayoutRef.current !== \"fit-content\",\n fontSize: EDITOR_FONT_SIZE,\n lineHeight: EDITOR_LINE_HEIGHT,\n scrollbar: {\n horizontalScrollbarSize: EDITOR_SCROLLBAR_SIZE,\n verticalScrollbarSize: EDITOR_SCROLLBAR_SIZE,\n horizontalSliderSize: 8,\n verticalSliderSize: 8,\n alwaysConsumeMouseWheel: false,\n },\n padding: {\n top: EDITOR_PADDING_VERTICAL,\n // When use `fit-content`, we always plus the height with the vertical padding.\n // Thus the possible x-scrollbar will not take extra space at the bottom.\n bottom:\n automaticLayoutRef.current == \"fit-content\"\n ? undefined\n : EDITOR_PADDING_VERTICAL,\n },\n overviewRulerBorder: false,\n mouseWheelScrollSensitivity: 0.5,\n fixedOverflowWidgets: true,\n lineNumbers: lineNumbers,\n lineNumbersMinChars: 3,\n glyphMargin: glyphMargin,\n folding: lineNumbers !== \"off\",\n suggest: {\n insertMode: \"insert\",\n preview: true,\n },\n readOnly: readOnly,\n quickSuggestions: { strings: true, other: true, comments: true },\n renderLineHighlightOnlyWhenFocus: true,\n unicodeHighlight: {\n ambiguousCharacters: false,\n },\n });\n\n decorationsCollection.current =\n editorRef.current.createDecorationsCollection();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const libs: ExtraLib[] = extraLibs ?? [];\n\n const languageDefaults =\n language === \"typescript\" ? \"typescriptDefaults\" : \"javascriptDefaults\";\n const disposables = addExtraLibs(libs, {\n languageDefaults,\n });\n return () => {\n for (const item of disposables) {\n item.dispose();\n }\n };\n }, [extraLibs, language]);\n\n useEffect(() => {\n const editor = editorRef.current;\n if (language === \"brick_next_yaml\" && editor) {\n const model = editor.getModel()!;\n const editorMouseDownEvent = editor.onMouseDown(function (e) {\n const decorations = decorationsCollection.current;\n (decorations?.getRanges?.() ?? []).forEach((range) => {\n const modKey = /Mac|iPod|iPhone|iPad/.test(navigator.platform)\n ? \"metaKey\"\n : \"ctrlKey\";\n if (\n range &&\n e.target.position &&\n e.event[modKey] &&\n range.containsPosition(e.target.position)\n ) {\n onTokenClick(model.getValueInRange(range));\n }\n });\n });\n\n const mouseOverEvent = editor.onMouseMove(function (e) {\n const decorations = decorationsCollection.current;\n if (!decorations) return;\n decorations.getRanges().forEach((range) => {\n const modKey = /Mac|iPod|iPhone|iPad/.test(navigator.platform)\n ? \"metaKey\"\n : \"ctrlKey\";\n if (\n range &&\n e.target.position &&\n e.event[modKey] &&\n range.containsPosition(e.target.position)\n ) {\n const newDecorations = decorations.getRanges().map((item) => ({\n range: item,\n options: {\n inlineClassName: range.equalsRange(item)\n ? \"highlight pointer\"\n : \"highlight\",\n },\n }));\n decorations.set(newDecorations);\n } else if (!e.event[modKey]) {\n const newDecorations = decorations.getRanges().map((item) => ({\n range: item,\n options: {\n inlineClassName: \"highlight\",\n },\n }));\n decorations.set(newDecorations);\n }\n });\n });\n\n return () => {\n mouseOverEvent?.dispose();\n editorMouseDownEvent?.dispose();\n };\n }\n }, [language, onTokenClick, systemTheme, theme]);\n\n useEffect(() => {\n const editor = editorRef.current;\n if (\n !editor ||\n !containerRef.current ||\n automaticLayoutRef.current !== \"fit-content\"\n ) {\n return;\n }\n\n const listener = editor.onDidContentSizeChange((e) => {\n if (expanded) return;\n if (e.contentHeightChanged) {\n const newHeight = fixEditorHeightWithScrollBar(\n e.contentHeight,\n minLines,\n maxLines\n );\n if (newHeight !== size.current.height) {\n size.current.height = newHeight;\n editor.layout(size.current);\n }\n }\n });\n\n const newHeight = fixEditorHeightWithScrollBar(\n editor.getContentHeight(),\n minLines,\n maxLines\n );\n if (newHeight !== size.current.height) {\n size.current.height = newHeight;\n editor.layout(size.current);\n }\n\n return () => {\n listener.dispose();\n };\n }, [maxLines, minLines, expanded]);\n\n // istanbul ignore next\n const embeddedModelProcessor = useCallback(\n async (model: monaco.editor.IModel, position: monaco.Position) => {\n monaco.editor.setModelMarkers(model, \"semantic_validate\", []);\n\n const prefixEvaluateOperator = model.findPreviousMatch(\n \"<%[~=]?\",\n position,\n true,\n false,\n null,\n false\n );\n\n const suffixEvaluateOperator = model.findNextMatch(\n \"%>\",\n position,\n false,\n false,\n null,\n false\n );\n\n const prefixEvaluateRange = prefixEvaluateOperator?.range;\n const suffixEvaluateRange = suffixEvaluateOperator?.range;\n\n if (prefixEvaluateRange && suffixEvaluateRange) {\n const range = new monaco.Range(\n prefixEvaluateRange.startLineNumber,\n prefixEvaluateRange.endColumn,\n suffixEvaluateRange.startLineNumber,\n suffixEvaluateRange.startColumn\n );\n\n const content = model.getValueInRange(range);\n if (range.containsPosition(position!) && !/<% | %>/.test(content)) {\n const newUri = getEmbeddedJavascriptUri(model.uri);\n const embeddedModel = monaco.editor.getModel(newUri);\n\n embeddedModel!.setValue(content);\n const offset = model.getOffsetAt(\n new monaco.Position(\n prefixEvaluateRange.startLineNumber,\n prefixEvaluateRange.endColumn\n )\n );\n\n const embeddedContext = EmbeddedModelContext.getInstance(workerId);\n\n embeddedContext.updateState({ content, range, offset });\n\n if (!customValidationInBrickNextYaml) return;\n\n const getWorker =\n await monaco.languages.typescript.getJavaScriptWorker();\n\n const worker = await getWorker(newUri);\n\n const diagnostics = await worker.getSemanticDiagnostics(\n newUri.toString()\n );\n\n const semanticMarkers = diagnostics.map((item) => {\n const finalOffset = offset + (item.start ?? 0);\n const currentPosition = model.getPositionAt(finalOffset);\n\n return {\n startLineNumber: currentPosition.lineNumber,\n startColumn: currentPosition.column,\n endLineNumber: currentPosition.lineNumber,\n endColumn: currentPosition.column + item.length!,\n message: item.messageText as string,\n severity: monaco.MarkerSeverity.Warning,\n };\n });\n\n monaco.editor.setModelMarkers(\n model,\n \"semantic_validate\",\n semanticMarkers\n );\n }\n }\n },\n [workerId]\n );\n\n useEffect(() => {\n if (!editorRef.current) {\n return;\n }\n const currentModel = editorRef.current.getModel()!;\n const listener = currentModel.onDidChangeContent(async () => {\n setEditorId(workerId);\n\n if ([\"brick_next_yaml\"].includes(language)) {\n embeddedModelProcessor(currentModel, editorRef.current!.getPosition()!);\n debounceParse();\n }\n onChange(currentModel.getValue());\n });\n return () => {\n listener.dispose();\n };\n }, [debounceParse, onChange, workerId, language, embeddedModelProcessor]);\n\n useEffect(() => {\n if (expanded) {\n const fn = (e: KeyboardEvent): void => {\n if (e.key === \"Escape\" || e.key === \"Esc\") {\n window.removeEventListener(\"keydown\", fn);\n setExpanded(false);\n }\n };\n window.addEventListener(\"keydown\", fn);\n return () => {\n window.removeEventListener(\"keydown\", fn);\n };\n }\n }, [expanded]);\n\n useEffect(() => {\n return () => {\n editorRef.current?.getModel()?.dispose();\n editorRef.current?.dispose();\n };\n }, []);\n\n useEffect(() => {\n if (!editorRef.current && !placeholder) return;\n const placeholderWidget = new PlaceholderContentWidget(\n placeholder!,\n editorRef.current!\n );\n\n return () => {\n placeholderWidget.dispose();\n };\n }, [placeholder]);\n\n const handleCopyIconClick = useCallback(() => {\n if (editorRef.current) {\n const currentModel = editorRef.current.getModel()!;\n copyToClipboard(currentModel.getValue())\n .then(() =>\n showNotification({ type: \"success\", message: t(K.COPY_SUCCESS) })\n )\n .catch(() =>\n showNotification({ type: \"error\", message: t(K.COPY_FAILED) })\n );\n }\n }, [t]);\n\n const handleExpandedClick = useCallback(() => {\n setExpanded(!expanded);\n }, [expanded]);\n\n return (\n <div\n className={classNames(\"code-editor-wrapper\", {\n expanded,\n error: validateState === \"error\",\n })}\n >\n <div\n ref={containerRef}\n style={{\n height: expanded ? \"100%\" : actualHeight,\n overflow: expanded ? \"scroll\" : \"\",\n }}\n />\n <div className=\"toolbar\">\n {showCopyButton && (\n <WrappedTooltip content={t(K.COPY) as string}>\n <WrappedIcon\n className=\"copy-icon\"\n icon=\"copy\"\n lib=\"antd\"\n theme=\"outlined\"\n onClick={handleCopyIconClick}\n />\n </WrappedTooltip>\n )}\n {showExpandButton && (\n <WrappedTooltip\n content={(expanded ? t(K.COLLAPSE) : t(K.EXPAND)) as string}\n >\n <WrappedIcon\n className=\"expand-icon\"\n icon={expanded ? \"compress\" : \"expand\"}\n lib=\"antd\"\n theme=\"outlined\"\n onClick={handleExpandedClick}\n />\n </WrappedTooltip>\n )}\n </div>\n </div>\n );\n}\n\nfunction getContentHeightByCode(\n code: string,\n minLines: number,\n maxLines: number\n): number {\n return getContentHeightByLines(\n Math.min(maxLines, Math.max(minLines, code.split(\"\\n\").length))\n );\n}\n\nfunction fixEditorHeightWithScrollBar(\n contentHeight: number,\n minLines: number,\n maxLines: number\n): number {\n let fixedHeight = contentHeight;\n if ((contentHeight - EDITOR_PADDING_VERTICAL) % EDITOR_LINE_HEIGHT === 0) {\n fixedHeight = contentHeight + EDITOR_SCROLLBAR_SIZE;\n }\n return Math.min(\n getContentHeightByLines(maxLines),\n Math.max(fixedHeight, getContentHeightByLines(minLines))\n );\n}\n\nfunction getContentHeightByLines(lines: number): number {\n return (\n lines * EDITOR_LINE_HEIGHT + EDITOR_SCROLLBAR_SIZE + EDITOR_PADDING_VERTICAL\n );\n}\n\n/** Get the direct DOM container of `vs.code-editor` */\nfunction getDOMContainer(element: HTMLElement | null) {\n let brick = element;\n while (brick) {\n const found = brick.tagName.toLowerCase() === \"vs.code-editor\";\n brick = brick.parentElement;\n if (found) {\n return brick;\n }\n }\n}\n"],"names":["initializeReactI18n","NS","locales","registerJavaScript","monaco","registerTypeScript","registerYaml","registerHtml","defineElement","property","event","createDecorators","WrappedFormItem","wrapBrick","WrappedTooltip","WrappedIcon","copyToClipboard","unwrapProvider","showNotification","_CodeEditor","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_T","_U","_V","_W","_X","_Y","_CodeEditor_brand","WeakSet","_Z","_handleChange","_handleUserInput","_a","_handleTokenClick","_handleValidator","CodeEditor","FormItemElementBase","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_init_name","_init_extra_name","_init_label","_init_extra_label","_init_value","_init_extra_value","_init_language","_init_extra_language","_init_theme","_init_extra_theme","_init_required","_init_extra_required","_init_readOnly","_init_extra_readOnly","_init_automaticLayout","_init_extra_automaticLayout","_init_minLines","_init_extra_minLines","_init_completers","_init_extra_completers","_init_advancedCompleters","_init_extra_advancedCompleters","_init_markers","_init_extra_markers","_init_links","_init_extra_links","_init_maxLines","_init_extra_maxLines","_init_height","_init_extra_height","_init_message","_init_extra_message","_init_placeholder","_init_extra_placeholder","_init_showExpandButton","_init_extra_showExpandButton","_init_lineNumbers","_init_extra_lineNumbers","_init_tokenConfig","_init_extra_tokenConfig","_init_customValidationInBrickNextYaml","_init_extra_customValidationInBrickNextYaml","_init_showCopyButton","_init_extra_showCopyButton","_init_glyphMargin","_init_extra_glyphMargin","_init_extraLibs","_init_extra_extraLibs","_init_codeChange","_init_extra_codeChange","_init_userInput","_init_extra_userInput","value","_this$getFormElement","this","getFormElement","formStore","onChange","name","_classPrivateGetter","_get_codeChange","emit","_get_userInput","_init_tokenClickEvent","_init_extra_tokenClickEvent","word","_get_tokenClickEvent","language","yaml","_classPrivateFieldGet","v","_classPrivateFieldSet","label","theme","required","readOnly","automaticLayout","minLines","completers","advancedCompleters","markers","links","maxLines","height","message","placeholder","showExpandButton","lineNumbers","tokenConfig","customValidationInBrickNextYaml","showCopyButton","glyphMargin","extraLibs","connectedCallback","style","display","super","render","React","exportparts","curElement","formElement","helpBrick","labelBrick","notRender","validator","CodeEditorComponent","validateState","onUserInput","onTokenClick","_ref","_value","_language","_theme","_minLines","_maxLines","_height","showDSKey","Infinity","expanded","setExpanded","useState","workerId","useMemo","uniqueId","t","useTranslation","containerRef","useRef","decorationsCollection","editorRef","size","width","getContentHeightByCode","actualHeight","setActualHeight","automaticLayoutRef","systemTheme","useCurrentTheme","useEffect","workerInstance","VSWorkers","getInstance","id","addEventListener","token","data","model","current","getModel","_decorationsCollectio","tokens","set","map","range","startLineNumber","startColumn","endLineNumber","endColumn","options","inlineClassName","setModelMarkers","_decorationsCollectio2","undefined","removeEventListener","computedTheme","lineHeightBackground","includes","defineTheme","base","inherit","rules","colors","setTheme","currentModel","setModelLanguage","provideCompletionItems","brickNextYAMLProviderCompletionItems","monacoProviderRef","registerCompletionItemProvider","triggerCharacters","dispose","parseYaml","useCallback","postMessage","getValue","debounceParse","debounce","editor","setValue","useLayoutEffect","_editorRef$current","getBoundingClientRect","layout","observer","ResizeObserver","entries","entry","target","newWidth","contentBoxSize","inlineSize","contentRect","newHeight","blockSize","_editorRef$current2","observe","disconnect","container","element","brick","found","tagName","toLowerCase","parentElement","getDOMContainer","offsetHeight","updateOptions","createModel","uri","getEmbeddedJavascriptUri","typescript","javascriptDefaults","addExtraLib","getBrickYamlBuiltInDeclare","toString","create","minimap","enabled","showRegionSectionHeaders","showMarkSectionHeaders","scrollBeyondLastLine","tabSize","insertSpaces","fontSize","EDITOR_FONT_SIZE","lineHeight","EDITOR_LINE_HEIGHT","scrollbar","horizontalScrollbarSize","EDITOR_SCROLLBAR_SIZE","verticalScrollbarSize","horizontalSliderSize","verticalSliderSize","alwaysConsumeMouseWheel","padding","top","EDITOR_PADDING_VERTICAL","bottom","overviewRulerBorder","mouseWheelScrollSensitivity","fixedOverflowWidgets","lineNumbersMinChars","folding","suggest","insertMode","preview","quickSuggestions","strings","other","comments","renderLineHighlightOnlyWhenFocus","unicodeHighlight","ambiguousCharacters","createDecorationsCollection","libs","languageDefaults","disposables","addExtraLibs","item","editorMouseDownEvent","onMouseDown","e","_decorations$getRange","decorations","getRanges","call","forEach","modKey","test","navigator","platform","position","containsPosition","getValueInRange","mouseOverEvent","onMouseMove","newDecorations","equalsRange","listener","onDidContentSizeChange","contentHeightChanged","fixEditorHeightWithScrollBar","contentHeight","getContentHeight","embeddedModelProcessor","async","prefixEvaluateOperator","findPreviousMatch","suffixEvaluateOperator","findNextMatch","prefixEvaluateRange","suffixEvaluateRange","content","newUri","offset","getOffsetAt","EmbeddedModelContext","updateState","getWorker","getJavaScriptWorker","worker","semanticMarkers","getSemanticDiagnostics","finalOffset","start","currentPosition","getPositionAt","lineNumber","column","length","messageText","severity","Warning","onDidChangeContent","setEditorId","getPosition","fn","key","window","_editorRef$current3","_editorRef$current4","placeholderWidget","PlaceholderContentWidget","handleCopyIconClick","then","type","K","COPY_SUCCESS","catch","COPY_FAILED","handleExpandedClick","className","classNames","error","ref","overflow","COPY","icon","lib","onClick","COLLAPSE","EXPAND","code","getContentHeightByLines","Math","min","max","split","fixedHeight","lines","_CodeEditor2","_set_codeChange","_set_userInput","_set_tokenClickEvent","c","_initClass","_applyDecs","shadowOptions","Boolean","Number","attribute","o","_","has","_checkInRHS"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(globalThis.webpackChunk_next_bricks_vs=globalThis.webpackChunk_next_bricks_vs||[]).push([[3722],{2580:(e,t,n)=>{n.r(t),n.d(t,{CodeEditor:()=>Ze,CodeEditorComponent:()=>Rt});var i,s=n(4635),r=n(918),a=n(6902),o=n(5536),l=n(6121),c=n(829),u=n(2740),h=n(8769),d=n.n(h),g=n(4782),m=n(279),p=n(1389),k=n(7873),f=n(426),A=n(3683),v=n(6197),y=n(3909),w=n(2257),b=n(3135),M=n(1732),C=n.n(M),E=(n(6477),n(2445)),x=n(7137),L=n(4929),S=n(2738),B=n(4804),N=n(4102),W=n(9287),_=n(5502),R=n(8182),P=n(3373),z=n.n(P),I=(n(3569),n(1968)),O=n(1836);let V,D,F,H,K,T,Y,q,j,U,J,X,$,G,Q,Z,ee,te,ne,ie,se,re,ae,oe,le,ce,ue,he,de,ge,me,pe,ke,fe,Ae,ve,ye,we,be,Me,Ce,Ee,xe,Le,Se,Be,Ne,We,_e,Re,Pe,ze,Ie,Oe,Ve,De,Fe,He,Ke,Te,Ye;(0,_.initializeReactI18n)(R.NS,R.I),(0,v.kz)(A),(0,y.kz)(A),(0,w.kz)(A,"brick_next_yaml"),(0,b.kz)(A);const{defineElement:qe,property:je,event:Ue}=(0,g.createDecorators)(),Je=(0,p.wrapBrick)("eo-form-item"),Xe=(0,p.wrapBrick)("eo-tooltip"),$e=(0,p.wrapBrick)("eo-icon"),Ge=(0,m.unwrapProvider)("basic.copy-to-clipboard"),Qe=(0,m.unwrapProvider)("basic.show-notification");let Ze;var et=new WeakMap,tt=new WeakMap,nt=new WeakMap,it=new WeakMap,st=new WeakMap,rt=new WeakMap,at=new WeakMap,ot=new WeakMap,lt=new WeakMap,ct=new WeakMap,ut=new WeakMap,ht=new WeakMap,dt=new WeakMap,gt=new WeakMap,mt=new WeakMap,pt=new WeakMap,kt=new WeakMap,ft=new WeakMap,At=new WeakMap,vt=new WeakMap,yt=new WeakMap,wt=new WeakMap,bt=new WeakMap,Mt=new WeakMap,Ct=new WeakMap,Et=new WeakSet,xt=new WeakMap,Lt=new WeakMap,St=new WeakMap,Bt=new WeakMap,Nt=new WeakMap,Wt=new WeakMap;class _t extends f.N{constructor(){super(...arguments),(0,s.A)(this,Et),(0,r.A)(this,et,D(this)),(0,r.A)(this,tt,(F(this),H(this))),(0,r.A)(this,nt,(K(this),T(this))),(0,r.A)(this,it,(Y(this),q(this))),(0,r.A)(this,st,(j(this),U(this))),(0,r.A)(this,rt,(J(this),X(this))),(0,r.A)(this,at,($(this),G(this))),(0,r.A)(this,ot,(Q(this),Z(this))),(0,r.A)(this,lt,(ee(this),te(this))),(0,r.A)(this,ct,(ne(this),ie(this))),(0,r.A)(this,ut,(se(this),re(this))),(0,r.A)(this,ht,(ae(this),oe(this))),(0,r.A)(this,dt,(le(this),ce(this))),(0,r.A)(this,gt,(ue(this),he(this))),(0,r.A)(this,mt,(de(this),ge(this))),(0,r.A)(this,pt,(me(this),pe(this))),(0,r.A)(this,kt,(ke(this),fe(this))),(0,r.A)(this,ft,(Ae(this),ve(this))),(0,r.A)(this,At,(ye(this),we(this))),(0,r.A)(this,vt,(be(this),Me(this))),(0,r.A)(this,yt,(Ce(this),Ee(this))),(0,r.A)(this,wt,(xe(this),Le(this))),(0,r.A)(this,bt,(Se(this),Be(this))),(0,r.A)(this,Mt,(Ne(this),We(this))),(0,r.A)(this,Ct,(_e(this),Re(this))),(0,r.A)(this,xt,(Ie(this),Oe(this))),(0,r.A)(this,Lt,(Fe(this),e=>{var t;this.value=e,null===(t=this.getFormElement())||void 0===t||t.formStore.onChange(this.name,e),(0,o.A)(Et,this,Pe).emit(e)})),(0,r.A)(this,St,(e=>{(0,o.A)(Et,this,Ve).emit(e)})),(0,r.A)(this,Bt,He(this)),(0,r.A)(this,Nt,(Ye(this),e=>{(0,o.A)(Et,this,Ke).emit(e)})),(0,r.A)(this,Wt,(e=>{if("brick_next_yaml"===this.language||"yaml"===this.language)try{C().load(e)}catch{return"请填写正确的格式"}return""}))}get name(){return(0,c.A)(et,this)}set name(e){(0,l.A)(et,this,e)}get label(){return(0,c.A)(tt,this)}set label(e){(0,l.A)(tt,this,e)}get value(){return(0,c.A)(nt,this)}set value(e){(0,l.A)(nt,this,e)}get language(){return(0,c.A)(it,this)}set language(e){(0,l.A)(it,this,e)}get theme(){return(0,c.A)(st,this)}set theme(e){(0,l.A)(st,this,e)}get required(){return(0,c.A)(rt,this)}set required(e){(0,l.A)(rt,this,e)}get readOnly(){return(0,c.A)(at,this)}set readOnly(e){(0,l.A)(at,this,e)}get automaticLayout(){return(0,c.A)(ot,this)}set automaticLayout(e){(0,l.A)(ot,this,e)}get minLines(){return(0,c.A)(lt,this)}set minLines(e){(0,l.A)(lt,this,e)}get completers(){return(0,c.A)(ct,this)}set completers(e){(0,l.A)(ct,this,e)}get advancedCompleters(){return(0,c.A)(ut,this)}set advancedCompleters(e){(0,l.A)(ut,this,e)}get markers(){return(0,c.A)(ht,this)}set markers(e){(0,l.A)(ht,this,e)}get links(){return(0,c.A)(dt,this)}set links(e){(0,l.A)(dt,this,e)}get maxLines(){return(0,c.A)(gt,this)}set maxLines(e){(0,l.A)(gt,this,e)}get height(){return(0,c.A)(mt,this)}set height(e){(0,l.A)(mt,this,e)}get message(){return(0,c.A)(pt,this)}set message(e){(0,l.A)(pt,this,e)}get placeholder(){return(0,c.A)(kt,this)}set placeholder(e){(0,l.A)(kt,this,e)}get showExpandButton(){return(0,c.A)(ft,this)}set showExpandButton(e){(0,l.A)(ft,this,e)}get lineNumbers(){return(0,c.A)(At,this)}set lineNumbers(e){(0,l.A)(At,this,e)}get tokenConfig(){return(0,c.A)(vt,this)}set tokenConfig(e){(0,l.A)(vt,this,e)}get customValidationInBrickNextYaml(){return(0,c.A)(yt,this)}set customValidationInBrickNextYaml(e){(0,l.A)(yt,this,e)}get showCopyButton(){return(0,c.A)(wt,this)}set showCopyButton(e){(0,l.A)(wt,this,e)}get glyphMargin(){return(0,c.A)(bt,this)}set glyphMargin(e){(0,l.A)(bt,this,e)}get extraLibs(){return(0,c.A)(Mt,this)}set extraLibs(e){(0,l.A)(Mt,this,e)}connectedCallback(){this.style.display||(this.style.display="block"),super.connectedCallback()}render(){return d().createElement(Je,{exportparts:"message",curElement:this,formElement:this.getFormElement(),name:this.name,label:this.label,required:this.required,helpBrick:this.helpBrick,labelBrick:this.labelBrick,notRender:this.notRender,validator:(0,c.A)(Wt,this)},d().createElement(Rt,{value:this.value,language:this.language,readOnly:this.readOnly,theme:this.theme,automaticLayout:this.automaticLayout,minLines:this.minLines,maxLines:this.maxLines,height:this.height,completers:this.completers,advancedCompleters:this.advancedCompleters,extraLibs:this.extraLibs,markers:this.markers,links:this.links,tokenConfig:this.tokenConfig,lineNumbers:this.lineNumbers,glyphMargin:this.glyphMargin,placeholder:this.placeholder,showCopyButton:this.showCopyButton,showExpandButton:this.showExpandButton,validateState:this.validateState,onChange:(0,c.A)(Lt,this),onUserInput:(0,c.A)(St,this),onTokenClick:(0,c.A)(Nt,this),customValidationInBrickNextYaml:this.customValidationInBrickNextYaml}))}}function Rt(e){let{value:t,language:n,theme:i,minLines:s,maxLines:r,height:a,automaticLayout:o,completers:l,advancedCompleters:c,markers:u,readOnly:g,links:m,extraLibs:p,tokenConfig:f={showDSKey:!1},showExpandButton:v,showCopyButton:y=!0,lineNumbers:w="on",glyphMargin:b=!1,placeholder:M,validateState:C,onChange:P,onUserInput:V,onTokenClick:D,customValidationInBrickNextYaml:F}=e;const H=t??"",K=n??"plaintext",T=i??"auto",Y=s??3,q=r??1/0,j=a??500,[U,J]=(0,h.useState)(!1),X=(0,h.useMemo)((()=>(0,E.uniqueId)("worker")),[]),{t:$}=(0,_.useTranslation)(R.NS),G=(0,h.useRef)(null),Q=(0,h.useRef)(),Z=(0,h.useRef)(),ee=(0,h.useRef)({width:300,height:Pt(H,Y,q)}),[te,ne]=(0,h.useState)(),ie=(0,h.useRef)(o),se=(0,k.useCurrentTheme)();(0,h.useEffect)((()=>{if("brick_next_yaml"!==K)return;const e=S.h.getInstance(X),t=e.addEventListener("message",(e=>{const{token:t,data:n}=e.data,i=Z.current.getModel();if(i)switch(t){case"parse_yaml":{var s;const{value:e,tokens:t,markers:r}=n;null===(s=Q.current)||void 0===s||s.set(t.map((e=>({range:new A.Range(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),options:{inlineClassName:"highlight"}})))),A.editor.setModelMarkers(i,"brick_next_yaml",r),V(e);break}case"parse_yaml_error":var r;A.editor.setModelMarkers(i,"brick_next_yaml",[]),null==Q||null===(r=Q.current)||void 0===r||r.set([]),V(void 0)}}));return()=>{e.removeEventListener(t)}}),[]),(0,h.useEffect)((()=>{const e="auto"===T?"dark"===se||"dark-v2"===se?"vs-dark":"vs":T,t=e.includes("dark")?"#FFFFFF0F":"#0000000A";A.editor.defineTheme("custom-theme",{base:e,inherit:!0,rules:[],colors:{"editor.lineHighlightBackground":`${t}`}}),A.editor.setTheme("custom-theme")}),[se,T]),(0,h.useEffect)((()=>{if(Z.current){const e=Z.current.getModel();A.editor.setModelLanguage(e,K)}}),[K]),(0,h.useEffect)((()=>{if("brick_next_yaml"===K){const e=(0,L.v)(l,c,X,f),t=A.languages.registerCompletionItemProvider("brick_next_yaml",{provideCompletionItems:e,triggerCharacters:[".",":","<"]});return()=>{t.dispose()}}}),[l,c,K]);const re=(0,h.useCallback)((()=>{if("brick_next_yaml"!==K||!Z.current)return;const e=S.h.getInstance(X),t=Z.current.getModel();e.postMessage({token:"parse_yaml",data:{value:null==t?void 0:t.getValue(),links:m,markers:u},options:f})}),[K,f,m,u,X]),ae=(0,h.useMemo)((()=>(0,E.debounce)(re,300)),[re]);(0,h.useEffect)((()=>{const e=Z.current;if(e){const t=e.getModel();null!=t&&t.getValue&&H!==t.getValue()&&(t.setValue(H),ae())}}),[H,ae]),(0,h.useEffect)((()=>{ae()}),[]),(0,h.useLayoutEffect)((()=>{var e;if("fit-content"!==ie.current||!G.current)return;ee.current.width=G.current.getBoundingClientRect().width,null===(e=Z.current)||void 0===e||e.layout(ee.current);const t=new ResizeObserver((e=>{for(const n of e)if(n.target===G.current){const e=n.contentBoxSize?n.contentBoxSize[0].inlineSize:n.contentRect.width,i=n.contentBoxSize?n.contentBoxSize[0].blockSize:n.contentRect.height;var t;(e!==ee.current.width||U)&&(ee.current.width=e,null===(t=Z.current)||void 0===t||t.layout({width:e,height:U?i:ee.current.height}));break}}));return t.observe(G.current),()=>{t.disconnect()}}),[U]),(0,h.useLayoutEffect)((()=>{if("fit-container"!==ie.current)return;const e=function(e){let t=e;for(;t;){const e="vs.code-editor"===t.tagName.toLowerCase();if(t=t.parentElement,e)return t}}(G.current);if(!e)return;const t=new ResizeObserver((()=>{ne(e.offsetHeight)}));return t.observe(e),()=>{t.disconnect()}}),[]),(0,h.useEffect)((()=>{"fit-container"!==ie.current&&"fit-content"!==ie.current&&ne(j)}),[j]),(0,h.useEffect)((()=>{Z.current&&Z.current.updateOptions({readOnly:g})}),[g]),(0,h.useEffect)((()=>{if(Z.current||!G.current)return;const e=A.editor.createModel(H,K);if("brick_next_yaml"===K){const t=(0,N.AR)(e.uri);A.editor.createModel(H,"javascript",t),A.languages.typescript.javascriptDefaults.addExtraLib((0,N.Eh)(),e.uri.toString()+"d.ts")}Z.current=A.editor.create(G.current,{model:e,minimap:{enabled:!1,showRegionSectionHeaders:!1,showMarkSectionHeaders:!1},scrollBeyondLastLine:!1,tabSize:2,insertSpaces:!0,automaticLayout:"fit-content"!==ie.current,fontSize:x.yU,lineHeight:x.fE,scrollbar:{horizontalScrollbarSize:x.lP,verticalScrollbarSize:x.lP,horizontalSliderSize:8,verticalSliderSize:8,alwaysConsumeMouseWheel:!1},padding:{top:x.Vu,bottom:"fit-content"==ie.current?void 0:x.Vu},overviewRulerBorder:!1,mouseWheelScrollSensitivity:.5,fixedOverflowWidgets:!0,lineNumbers:w,lineNumbersMinChars:3,glyphMargin:b,folding:"off"!==w,suggest:{insertMode:"insert",preview:!0},readOnly:g,quickSuggestions:{strings:!0,other:!0,comments:!0},renderLineHighlightOnlyWhenFocus:!0,unicodeHighlight:{ambiguousCharacters:!1}}),Q.current=Z.current.createDecorationsCollection()}),[]),(0,h.useEffect)((()=>{const e=p??[],t="typescript"===K?"typescriptDefaults":"javascriptDefaults",n=(0,W.m)(e,{languageDefaults:t});return()=>{for(const e of n)e.dispose()}}),[p,K]),(0,h.useEffect)((()=>{const e=Z.current;if("brick_next_yaml"===K&&e){const t=e.getModel(),n=e.onMouseDown((function(e){var n;const i=Q.current;((null==i||null===(n=i.getRanges)||void 0===n?void 0:n.call(i))??[]).forEach((n=>{const i=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";n&&e.target.position&&e.event[i]&&n.containsPosition(e.target.position)&&D(t.getValueInRange(n))}))})),i=e.onMouseMove((function(e){const t=Q.current;t&&t.getRanges().forEach((n=>{const i=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";if(n&&e.target.position&&e.event[i]&&n.containsPosition(e.target.position)){const e=t.getRanges().map((e=>({range:e,options:{inlineClassName:n.equalsRange(e)?"highlight pointer":"highlight"}})));t.set(e)}else if(!e.event[i]){const e=t.getRanges().map((e=>({range:e,options:{inlineClassName:"highlight"}})));t.set(e)}}))}));return()=>{null==i||i.dispose(),null==n||n.dispose()}}}),[K,D,se,T]),(0,h.useEffect)((()=>{const e=Z.current;if(!e||!G.current||"fit-content"!==ie.current)return;const t=e.onDidContentSizeChange((t=>{if(!U&&t.contentHeightChanged){const n=zt(t.contentHeight,Y,q);n!==ee.current.height&&(ee.current.height=n,e.layout(ee.current))}})),n=zt(e.getContentHeight(),Y,q);return n!==ee.current.height&&(ee.current.height=n,e.layout(ee.current)),()=>{t.dispose()}}),[q,Y,U]);const oe=(0,h.useCallback)((async(e,t)=>{A.editor.setModelMarkers(e,"semantic_validate",[]);const n=e.findPreviousMatch("<%[~=]?",t,!0,!1,null,!1),i=e.findNextMatch("%>",t,!1,!1,null,!1),s=null==n?void 0:n.range,r=null==i?void 0:i.range;if(s&&r){const n=new A.Range(s.startLineNumber,s.endColumn,r.startLineNumber,r.startColumn),i=e.getValueInRange(n);if(n.containsPosition(t)&&!/<% | %>/.test(i)){const t=(0,N.AR)(e.uri);A.editor.getModel(t).setValue(i);const r=e.getOffsetAt(new A.Position(s.startLineNumber,s.endColumn));if(I.b.getInstance(X).updateState({content:i,range:n,offset:r}),!F)return;const a=await A.languages.typescript.getJavaScriptWorker(),o=await a(t),l=(await o.getSemanticDiagnostics(t.toString())).map((t=>{const n=r+(t.start??0),i=e.getPositionAt(n);return{startLineNumber:i.lineNumber,startColumn:i.column,endLineNumber:i.lineNumber,endColumn:i.column+t.length,message:t.messageText,severity:A.MarkerSeverity.Warning}}));A.editor.setModelMarkers(e,"semantic_validate",l)}}}),[X]);(0,h.useEffect)((()=>{if(!Z.current)return;const e=Z.current.getModel(),t=e.onDidChangeContent((async()=>{(0,B.J)(X),["brick_next_yaml"].includes(K)&&(oe(e,Z.current.getPosition()),ae()),P(e.getValue())}));return()=>{t.dispose()}}),[ae,P,X,K,oe]),(0,h.useEffect)((()=>{if(U){const e=t=>{"Escape"!==t.key&&"Esc"!==t.key||(window.removeEventListener("keydown",e),J(!1))};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}}}),[U]),(0,h.useEffect)((()=>()=>{var e,t;null===(e=Z.current)||void 0===e||null===(e=e.getModel())||void 0===e||e.dispose(),null===(t=Z.current)||void 0===t||t.dispose()}),[]),(0,h.useEffect)((()=>{if(!Z.current&&!M)return;const e=new O.j(M,Z.current);return()=>{e.dispose()}}),[M]);const le=(0,h.useCallback)((()=>{if(Z.current){const e=Z.current.getModel();Ge(e.getValue()).then((()=>Qe({type:"success",message:$(R.K.COPY_SUCCESS)}))).catch((()=>Qe({type:"error",message:$(R.K.COPY_FAILED)})))}}),[$]),ce=(0,h.useCallback)((()=>{J(!U)}),[U]);return d().createElement("div",{className:z()("code-editor-wrapper",{expanded:U,error:"error"===C})},d().createElement("div",{ref:G,style:{height:U?"100%":te,overflow:U?"scroll":""}}),d().createElement("div",{className:"toolbar"},y&&d().createElement(Xe,{content:$(R.K.COPY)},d().createElement($e,{className:"copy-icon",icon:"copy",lib:"antd",theme:"outlined",onClick:le})),v&&d().createElement(Xe,{content:$(U?R.K.COLLAPSE:R.K.EXPAND)},d().createElement($e,{className:"expand-icon",icon:U?"compress":"expand",lib:"antd",theme:"outlined",onClick:ce}))))}function Pt(e,t,n){return It(Math.min(n,Math.max(t,e.split("\n").length)))}function zt(e,t,n){let i=e;return(e-x.Vu)%x.fE==0&&(i=e+x.lP),Math.min(It(n),Math.max(i,It(t)))}function It(e){return e*x.fE+x.lP+x.Vu}i=_t,({e:[D,F,H,K,T,Y,q,j,U,J,X,$,G,Q,Z,ee,te,ne,ie,se,re,ae,oe,le,ce,ue,he,de,ge,me,pe,ke,fe,Ae,ve,ye,we,be,Me,Ce,Ee,xe,Le,Se,Be,Ne,We,_e,Re,Pe,ze,Ie,Oe,Ve,De,Fe,He,Ke,Te,Ye],c:[Ze,V]}=(0,u.A)(i,[qe("vs.code-editor",{shadowOptions:!1})],[[je(),1,"name"],[je(),1,"label"],[je(),1,"value"],[je(),1,"language"],[je(),1,"theme"],[je({type:Boolean}),1,"required"],[je({type:Boolean}),1,"readOnly"],[je(),1,"automaticLayout"],[je({type:Number}),1,"minLines"],[je({attribute:!1}),1,"completers"],[je({attribute:!1}),1,"advancedCompleters"],[je({attribute:!1}),1,"markers"],[je({attribute:!1}),1,"links"],[je({type:Number}),1,"maxLines"],[je({attribute:!1}),1,"height"],[je(),1,"message"],[je(),1,"placeholder"],[je({type:Boolean}),1,"showExpandButton"],[je(),1,"lineNumbers"],[je({attribute:!1}),1,"tokenConfig"],[je({type:Boolean}),1,"customValidationInBrickNextYaml"],[je({type:Boolean}),1,"showCopyButton"],[je({type:Boolean}),1,"glyphMargin"],[je({attribute:!1}),1,"extraLibs"],[Ue({type:"code.change"}),1,"codeChange",e=>(0,c.A)(Ct,e),(e,t)=>(0,l.A)(Ct,e,t)],[Ue({type:"user.input"}),1,"userInput",e=>(0,c.A)(xt,e),(e,t)=>(0,l.A)(xt,e,t)],[Ue({type:"token.click"}),1,"tokenClickEvent",e=>(0,c.A)(Bt,e),(e,t)=>(0,l.A)(Bt,e,t)]],0,(e=>Wt.has((0,a.A)(e))),f.N)),V()}}]);
2
- //# sourceMappingURL=code-editor.6b18bf42.js.map
1
+ "use strict";(globalThis.webpackChunk_next_bricks_vs=globalThis.webpackChunk_next_bricks_vs||[]).push([[3722],{2580:(e,t,n)=>{n.r(t),n.d(t,{CodeEditor:()=>Ze,CodeEditorComponent:()=>Rt});var i,s=n(4635),r=n(918),a=n(6902),o=n(5536),l=n(6121),c=n(829),u=n(2740),h=n(8769),d=n.n(h),g=n(4782),m=n(279),p=n(1389),k=n(4047),f=n(426),A=n(3683),v=n(6197),y=n(3909),w=n(2257),b=n(3135),M=n(1732),C=n.n(M),E=(n(6477),n(2445)),x=n(7137),L=n(4929),S=n(2738),B=n(4804),N=n(4102),W=n(9287),_=n(5502),R=n(8182),P=n(3373),z=n.n(P),I=(n(3569),n(1968)),O=n(1836);let V,D,F,H,K,T,Y,q,j,U,J,X,$,G,Q,Z,ee,te,ne,ie,se,re,ae,oe,le,ce,ue,he,de,ge,me,pe,ke,fe,Ae,ve,ye,we,be,Me,Ce,Ee,xe,Le,Se,Be,Ne,We,_e,Re,Pe,ze,Ie,Oe,Ve,De,Fe,He,Ke,Te,Ye;(0,_.initializeReactI18n)(R.NS,R.I),(0,v.kz)(A),(0,y.kz)(A),(0,w.kz)(A,"brick_next_yaml"),(0,b.kz)(A);const{defineElement:qe,property:je,event:Ue}=(0,g.createDecorators)(),Je=(0,p.wrapBrick)("eo-form-item"),Xe=(0,p.wrapBrick)("eo-tooltip"),$e=(0,p.wrapBrick)("eo-icon"),Ge=(0,m.unwrapProvider)("basic.copy-to-clipboard"),Qe=(0,m.unwrapProvider)("basic.show-notification");let Ze;var et=new WeakMap,tt=new WeakMap,nt=new WeakMap,it=new WeakMap,st=new WeakMap,rt=new WeakMap,at=new WeakMap,ot=new WeakMap,lt=new WeakMap,ct=new WeakMap,ut=new WeakMap,ht=new WeakMap,dt=new WeakMap,gt=new WeakMap,mt=new WeakMap,pt=new WeakMap,kt=new WeakMap,ft=new WeakMap,At=new WeakMap,vt=new WeakMap,yt=new WeakMap,wt=new WeakMap,bt=new WeakMap,Mt=new WeakMap,Ct=new WeakMap,Et=new WeakSet,xt=new WeakMap,Lt=new WeakMap,St=new WeakMap,Bt=new WeakMap,Nt=new WeakMap,Wt=new WeakMap;class _t extends f.N{constructor(){super(...arguments),(0,s.A)(this,Et),(0,r.A)(this,et,D(this)),(0,r.A)(this,tt,(F(this),H(this))),(0,r.A)(this,nt,(K(this),T(this))),(0,r.A)(this,it,(Y(this),q(this))),(0,r.A)(this,st,(j(this),U(this))),(0,r.A)(this,rt,(J(this),X(this))),(0,r.A)(this,at,($(this),G(this))),(0,r.A)(this,ot,(Q(this),Z(this))),(0,r.A)(this,lt,(ee(this),te(this))),(0,r.A)(this,ct,(ne(this),ie(this))),(0,r.A)(this,ut,(se(this),re(this))),(0,r.A)(this,ht,(ae(this),oe(this))),(0,r.A)(this,dt,(le(this),ce(this))),(0,r.A)(this,gt,(ue(this),he(this))),(0,r.A)(this,mt,(de(this),ge(this))),(0,r.A)(this,pt,(me(this),pe(this))),(0,r.A)(this,kt,(ke(this),fe(this))),(0,r.A)(this,ft,(Ae(this),ve(this))),(0,r.A)(this,At,(ye(this),we(this))),(0,r.A)(this,vt,(be(this),Me(this))),(0,r.A)(this,yt,(Ce(this),Ee(this))),(0,r.A)(this,wt,(xe(this),Le(this))),(0,r.A)(this,bt,(Se(this),Be(this))),(0,r.A)(this,Mt,(Ne(this),We(this))),(0,r.A)(this,Ct,(_e(this),Re(this))),(0,r.A)(this,xt,(Ie(this),Oe(this))),(0,r.A)(this,Lt,(Fe(this),e=>{var t;this.value=e,null===(t=this.getFormElement())||void 0===t||t.formStore.onChange(this.name,e),(0,o.A)(Et,this,Pe).emit(e)})),(0,r.A)(this,St,(e=>{(0,o.A)(Et,this,Ve).emit(e)})),(0,r.A)(this,Bt,He(this)),(0,r.A)(this,Nt,(Ye(this),e=>{(0,o.A)(Et,this,Ke).emit(e)})),(0,r.A)(this,Wt,(e=>{if("brick_next_yaml"===this.language||"yaml"===this.language)try{C().load(e)}catch{return"请填写正确的格式"}return""}))}get name(){return(0,c.A)(et,this)}set name(e){(0,l.A)(et,this,e)}get label(){return(0,c.A)(tt,this)}set label(e){(0,l.A)(tt,this,e)}get value(){return(0,c.A)(nt,this)}set value(e){(0,l.A)(nt,this,e)}get language(){return(0,c.A)(it,this)}set language(e){(0,l.A)(it,this,e)}get theme(){return(0,c.A)(st,this)}set theme(e){(0,l.A)(st,this,e)}get required(){return(0,c.A)(rt,this)}set required(e){(0,l.A)(rt,this,e)}get readOnly(){return(0,c.A)(at,this)}set readOnly(e){(0,l.A)(at,this,e)}get automaticLayout(){return(0,c.A)(ot,this)}set automaticLayout(e){(0,l.A)(ot,this,e)}get minLines(){return(0,c.A)(lt,this)}set minLines(e){(0,l.A)(lt,this,e)}get completers(){return(0,c.A)(ct,this)}set completers(e){(0,l.A)(ct,this,e)}get advancedCompleters(){return(0,c.A)(ut,this)}set advancedCompleters(e){(0,l.A)(ut,this,e)}get markers(){return(0,c.A)(ht,this)}set markers(e){(0,l.A)(ht,this,e)}get links(){return(0,c.A)(dt,this)}set links(e){(0,l.A)(dt,this,e)}get maxLines(){return(0,c.A)(gt,this)}set maxLines(e){(0,l.A)(gt,this,e)}get height(){return(0,c.A)(mt,this)}set height(e){(0,l.A)(mt,this,e)}get message(){return(0,c.A)(pt,this)}set message(e){(0,l.A)(pt,this,e)}get placeholder(){return(0,c.A)(kt,this)}set placeholder(e){(0,l.A)(kt,this,e)}get showExpandButton(){return(0,c.A)(ft,this)}set showExpandButton(e){(0,l.A)(ft,this,e)}get lineNumbers(){return(0,c.A)(At,this)}set lineNumbers(e){(0,l.A)(At,this,e)}get tokenConfig(){return(0,c.A)(vt,this)}set tokenConfig(e){(0,l.A)(vt,this,e)}get customValidationInBrickNextYaml(){return(0,c.A)(yt,this)}set customValidationInBrickNextYaml(e){(0,l.A)(yt,this,e)}get showCopyButton(){return(0,c.A)(wt,this)}set showCopyButton(e){(0,l.A)(wt,this,e)}get glyphMargin(){return(0,c.A)(bt,this)}set glyphMargin(e){(0,l.A)(bt,this,e)}get extraLibs(){return(0,c.A)(Mt,this)}set extraLibs(e){(0,l.A)(Mt,this,e)}connectedCallback(){this.style.display||(this.style.display="block"),super.connectedCallback()}render(){return d().createElement(Je,{exportparts:"message",curElement:this,formElement:this.getFormElement(),name:this.name,label:this.label,required:this.required,helpBrick:this.helpBrick,labelBrick:this.labelBrick,notRender:this.notRender,validator:(0,c.A)(Wt,this)},d().createElement(Rt,{value:this.value,language:this.language,readOnly:this.readOnly,theme:this.theme,automaticLayout:this.automaticLayout,minLines:this.minLines,maxLines:this.maxLines,height:this.height,completers:this.completers,advancedCompleters:this.advancedCompleters,extraLibs:this.extraLibs,markers:this.markers,links:this.links,tokenConfig:this.tokenConfig,lineNumbers:this.lineNumbers,glyphMargin:this.glyphMargin,placeholder:this.placeholder,showCopyButton:this.showCopyButton,showExpandButton:this.showExpandButton,validateState:this.validateState,onChange:(0,c.A)(Lt,this),onUserInput:(0,c.A)(St,this),onTokenClick:(0,c.A)(Nt,this),customValidationInBrickNextYaml:this.customValidationInBrickNextYaml}))}}function Rt(e){let{value:t,language:n,theme:i,minLines:s,maxLines:r,height:a,automaticLayout:o,completers:l,advancedCompleters:c,markers:u,readOnly:g,links:m,extraLibs:p,tokenConfig:f={showDSKey:!1},showExpandButton:v,showCopyButton:y=!0,lineNumbers:w="on",glyphMargin:b=!1,placeholder:M,validateState:C,onChange:P,onUserInput:V,onTokenClick:D,customValidationInBrickNextYaml:F}=e;const H=t??"",K=n??"plaintext",T=i??"auto",Y=s??3,q=r??1/0,j=a??500,[U,J]=(0,h.useState)(!1),X=(0,h.useMemo)((()=>(0,E.uniqueId)("worker")),[]),{t:$}=(0,_.useTranslation)(R.NS),G=(0,h.useRef)(null),Q=(0,h.useRef)(),Z=(0,h.useRef)(),ee=(0,h.useRef)({width:300,height:Pt(H,Y,q)}),[te,ne]=(0,h.useState)(),ie=(0,h.useRef)(o),se=(0,k.useCurrentTheme)();(0,h.useEffect)((()=>{if("brick_next_yaml"!==K)return;const e=S.h.getInstance(X),t=e.addEventListener("message",(e=>{const{token:t,data:n}=e.data,i=Z.current.getModel();if(i)switch(t){case"parse_yaml":{var s;const{value:e,tokens:t,markers:r}=n;null===(s=Q.current)||void 0===s||s.set(t.map((e=>({range:new A.Range(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),options:{inlineClassName:"highlight"}})))),A.editor.setModelMarkers(i,"brick_next_yaml",r),V(e);break}case"parse_yaml_error":var r;A.editor.setModelMarkers(i,"brick_next_yaml",[]),null==Q||null===(r=Q.current)||void 0===r||r.set([]),V(void 0)}}));return()=>{e.removeEventListener(t)}}),[]),(0,h.useEffect)((()=>{const e="auto"===T?"dark"===se||"dark-v2"===se?"vs-dark":"vs":T,t=e.includes("dark")?"#FFFFFF0F":"#0000000A";A.editor.defineTheme("custom-theme",{base:e,inherit:!0,rules:[],colors:{"editor.lineHighlightBackground":`${t}`}}),A.editor.setTheme("custom-theme")}),[se,T]),(0,h.useEffect)((()=>{if(Z.current){const e=Z.current.getModel();A.editor.setModelLanguage(e,K)}}),[K]),(0,h.useEffect)((()=>{if("brick_next_yaml"===K){const e=(0,L.v)(l,c,X,f),t=A.languages.registerCompletionItemProvider("brick_next_yaml",{provideCompletionItems:e,triggerCharacters:[".",":","<"]});return()=>{t.dispose()}}}),[l,c,K]);const re=(0,h.useCallback)((()=>{if("brick_next_yaml"!==K||!Z.current)return;const e=S.h.getInstance(X),t=Z.current.getModel();e.postMessage({token:"parse_yaml",data:{value:null==t?void 0:t.getValue(),links:m,markers:u},options:f})}),[K,f,m,u,X]),ae=(0,h.useMemo)((()=>(0,E.debounce)(re,300)),[re]);(0,h.useEffect)((()=>{const e=Z.current;if(e){const t=e.getModel();null!=t&&t.getValue&&H!==t.getValue()&&(t.setValue(H),ae())}}),[H,ae]),(0,h.useEffect)((()=>{ae()}),[]),(0,h.useLayoutEffect)((()=>{var e;if("fit-content"!==ie.current||!G.current)return;ee.current.width=G.current.getBoundingClientRect().width,null===(e=Z.current)||void 0===e||e.layout(ee.current);const t=new ResizeObserver((e=>{for(const n of e)if(n.target===G.current){const e=n.contentBoxSize?n.contentBoxSize[0].inlineSize:n.contentRect.width,i=n.contentBoxSize?n.contentBoxSize[0].blockSize:n.contentRect.height;var t;(e!==ee.current.width||U)&&(ee.current.width=e,null===(t=Z.current)||void 0===t||t.layout({width:e,height:U?i:ee.current.height}));break}}));return t.observe(G.current),()=>{t.disconnect()}}),[U]),(0,h.useLayoutEffect)((()=>{if("fit-container"!==ie.current)return;const e=function(e){let t=e;for(;t;){const e="vs.code-editor"===t.tagName.toLowerCase();if(t=t.parentElement,e)return t}}(G.current);if(!e)return;const t=new ResizeObserver((()=>{ne(e.offsetHeight)}));return t.observe(e),()=>{t.disconnect()}}),[]),(0,h.useEffect)((()=>{"fit-container"!==ie.current&&"fit-content"!==ie.current&&ne(j)}),[j]),(0,h.useEffect)((()=>{Z.current&&Z.current.updateOptions({readOnly:g})}),[g]),(0,h.useEffect)((()=>{if(Z.current||!G.current)return;const e=A.editor.createModel(H,K);if("brick_next_yaml"===K){const t=(0,N.AR)(e.uri);A.editor.createModel(H,"javascript",t),A.languages.typescript.javascriptDefaults.addExtraLib((0,N.Eh)(),e.uri.toString()+"d.ts")}Z.current=A.editor.create(G.current,{model:e,minimap:{enabled:!1,showRegionSectionHeaders:!1,showMarkSectionHeaders:!1},scrollBeyondLastLine:!1,tabSize:2,insertSpaces:!0,automaticLayout:"fit-content"!==ie.current,fontSize:x.yU,lineHeight:x.fE,scrollbar:{horizontalScrollbarSize:x.lP,verticalScrollbarSize:x.lP,horizontalSliderSize:8,verticalSliderSize:8,alwaysConsumeMouseWheel:!1},padding:{top:x.Vu,bottom:"fit-content"==ie.current?void 0:x.Vu},overviewRulerBorder:!1,mouseWheelScrollSensitivity:.5,fixedOverflowWidgets:!0,lineNumbers:w,lineNumbersMinChars:3,glyphMargin:b,folding:"off"!==w,suggest:{insertMode:"insert",preview:!0},readOnly:g,quickSuggestions:{strings:!0,other:!0,comments:!0},renderLineHighlightOnlyWhenFocus:!0,unicodeHighlight:{ambiguousCharacters:!1}}),Q.current=Z.current.createDecorationsCollection()}),[]),(0,h.useEffect)((()=>{const e=p??[],t="typescript"===K?"typescriptDefaults":"javascriptDefaults",n=(0,W.m)(e,{languageDefaults:t});return()=>{for(const e of n)e.dispose()}}),[p,K]),(0,h.useEffect)((()=>{const e=Z.current;if("brick_next_yaml"===K&&e){const t=e.getModel(),n=e.onMouseDown((function(e){var n;const i=Q.current;((null==i||null===(n=i.getRanges)||void 0===n?void 0:n.call(i))??[]).forEach((n=>{const i=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";n&&e.target.position&&e.event[i]&&n.containsPosition(e.target.position)&&D(t.getValueInRange(n))}))})),i=e.onMouseMove((function(e){const t=Q.current;t&&t.getRanges().forEach((n=>{const i=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";if(n&&e.target.position&&e.event[i]&&n.containsPosition(e.target.position)){const e=t.getRanges().map((e=>({range:e,options:{inlineClassName:n.equalsRange(e)?"highlight pointer":"highlight"}})));t.set(e)}else if(!e.event[i]){const e=t.getRanges().map((e=>({range:e,options:{inlineClassName:"highlight"}})));t.set(e)}}))}));return()=>{null==i||i.dispose(),null==n||n.dispose()}}}),[K,D,se,T]),(0,h.useEffect)((()=>{const e=Z.current;if(!e||!G.current||"fit-content"!==ie.current)return;const t=e.onDidContentSizeChange((t=>{if(!U&&t.contentHeightChanged){const n=zt(t.contentHeight,Y,q);n!==ee.current.height&&(ee.current.height=n,e.layout(ee.current))}})),n=zt(e.getContentHeight(),Y,q);return n!==ee.current.height&&(ee.current.height=n,e.layout(ee.current)),()=>{t.dispose()}}),[q,Y,U]);const oe=(0,h.useCallback)((async(e,t)=>{A.editor.setModelMarkers(e,"semantic_validate",[]);const n=e.findPreviousMatch("<%[~=]?",t,!0,!1,null,!1),i=e.findNextMatch("%>",t,!1,!1,null,!1),s=null==n?void 0:n.range,r=null==i?void 0:i.range;if(s&&r){const n=new A.Range(s.startLineNumber,s.endColumn,r.startLineNumber,r.startColumn),i=e.getValueInRange(n);if(n.containsPosition(t)&&!/<% | %>/.test(i)){const t=(0,N.AR)(e.uri);A.editor.getModel(t).setValue(i);const r=e.getOffsetAt(new A.Position(s.startLineNumber,s.endColumn));if(I.b.getInstance(X).updateState({content:i,range:n,offset:r}),!F)return;const a=await A.languages.typescript.getJavaScriptWorker(),o=await a(t),l=(await o.getSemanticDiagnostics(t.toString())).map((t=>{const n=r+(t.start??0),i=e.getPositionAt(n);return{startLineNumber:i.lineNumber,startColumn:i.column,endLineNumber:i.lineNumber,endColumn:i.column+t.length,message:t.messageText,severity:A.MarkerSeverity.Warning}}));A.editor.setModelMarkers(e,"semantic_validate",l)}}}),[X]);(0,h.useEffect)((()=>{if(!Z.current)return;const e=Z.current.getModel(),t=e.onDidChangeContent((async()=>{(0,B.J)(X),["brick_next_yaml"].includes(K)&&(oe(e,Z.current.getPosition()),ae()),P(e.getValue())}));return()=>{t.dispose()}}),[ae,P,X,K,oe]),(0,h.useEffect)((()=>{if(U){const e=t=>{"Escape"!==t.key&&"Esc"!==t.key||(window.removeEventListener("keydown",e),J(!1))};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}}}),[U]),(0,h.useEffect)((()=>()=>{var e,t;null===(e=Z.current)||void 0===e||null===(e=e.getModel())||void 0===e||e.dispose(),null===(t=Z.current)||void 0===t||t.dispose()}),[]),(0,h.useEffect)((()=>{if(!Z.current&&!M)return;const e=new O.j(M,Z.current);return()=>{e.dispose()}}),[M]);const le=(0,h.useCallback)((()=>{if(Z.current){const e=Z.current.getModel();Ge(e.getValue()).then((()=>Qe({type:"success",message:$(R.K.COPY_SUCCESS)}))).catch((()=>Qe({type:"error",message:$(R.K.COPY_FAILED)})))}}),[$]),ce=(0,h.useCallback)((()=>{J(!U)}),[U]);return d().createElement("div",{className:z()("code-editor-wrapper",{expanded:U,error:"error"===C})},d().createElement("div",{ref:G,style:{height:U?"100%":te,overflow:U?"scroll":""}}),d().createElement("div",{className:"toolbar"},y&&d().createElement(Xe,{content:$(R.K.COPY)},d().createElement($e,{className:"copy-icon",icon:"copy",lib:"antd",theme:"outlined",onClick:le})),v&&d().createElement(Xe,{content:$(U?R.K.COLLAPSE:R.K.EXPAND)},d().createElement($e,{className:"expand-icon",icon:U?"compress":"expand",lib:"antd",theme:"outlined",onClick:ce}))))}function Pt(e,t,n){return It(Math.min(n,Math.max(t,e.split("\n").length)))}function zt(e,t,n){let i=e;return(e-x.Vu)%x.fE==0&&(i=e+x.lP),Math.min(It(n),Math.max(i,It(t)))}function It(e){return e*x.fE+x.lP+x.Vu}i=_t,({e:[D,F,H,K,T,Y,q,j,U,J,X,$,G,Q,Z,ee,te,ne,ie,se,re,ae,oe,le,ce,ue,he,de,ge,me,pe,ke,fe,Ae,ve,ye,we,be,Me,Ce,Ee,xe,Le,Se,Be,Ne,We,_e,Re,Pe,ze,Ie,Oe,Ve,De,Fe,He,Ke,Te,Ye],c:[Ze,V]}=(0,u.A)(i,[qe("vs.code-editor",{shadowOptions:!1})],[[je(),1,"name"],[je(),1,"label"],[je(),1,"value"],[je(),1,"language"],[je(),1,"theme"],[je({type:Boolean}),1,"required"],[je({type:Boolean}),1,"readOnly"],[je(),1,"automaticLayout"],[je({type:Number}),1,"minLines"],[je({attribute:!1}),1,"completers"],[je({attribute:!1}),1,"advancedCompleters"],[je({attribute:!1}),1,"markers"],[je({attribute:!1}),1,"links"],[je({type:Number}),1,"maxLines"],[je({attribute:!1}),1,"height"],[je(),1,"message"],[je(),1,"placeholder"],[je({type:Boolean}),1,"showExpandButton"],[je(),1,"lineNumbers"],[je({attribute:!1}),1,"tokenConfig"],[je({type:Boolean}),1,"customValidationInBrickNextYaml"],[je({type:Boolean}),1,"showCopyButton"],[je({type:Boolean}),1,"glyphMargin"],[je({attribute:!1}),1,"extraLibs"],[Ue({type:"code.change"}),1,"codeChange",e=>(0,c.A)(Ct,e),(e,t)=>(0,l.A)(Ct,e,t)],[Ue({type:"user.input"}),1,"userInput",e=>(0,c.A)(xt,e),(e,t)=>(0,l.A)(xt,e,t)],[Ue({type:"token.click"}),1,"tokenClickEvent",e=>(0,c.A)(Bt,e),(e,t)=>(0,l.A)(Bt,e,t)]],0,(e=>Wt.has((0,a.A)(e))),f.N)),V()}}]);
2
+ //# sourceMappingURL=code-editor.b8130f7c.js.map