@next-bricks/vs 1.18.5 → 1.18.6

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.
@@ -1,2 +1,2 @@
1
- "use strict";(globalThis.webpackChunk_next_bricks_vs=globalThis.webpackChunk_next_bricks_vs||[]).push([[9384],{49384:(e,t,n)=>{var i=n(74635),s=n(70918),r=n(26902),o=n(5536),a=n(86121),l=n(70829),c=n(62740),u=n(18769),h=n.n(u),d=n(90870),g=n(49936),m=n(30981),p=n(29711),k=n(51921),f=n(41361),v=n(41757),A=n(62001),b=n(77921),y=(n(95621),n(18965)),w=n(98967),M=n(55310),x=n.n(M),C=(n(34419),n(20563)),E=n(99442),S=n(87380),L=n(64437),W=n(25559),B=n(69704),N=n(91507),z=n(53373),P=n.n(z),_=n(97714),R=n(72414),O=(n(73569),n(15601)),I=n(69235),V=n(64322),D=n(59817),T=n(97659),F=n(44143),K=n(48217),H=n(85021),Y=n(80817),q=n(76915);let j,J,U,X,$,Z,G,Q,ee,te,ne,ie,se,re,oe,ae,le,ce,ue,he,de,ge,me,pe,ke,fe,ve,Ae,be,ye,we,Me,xe,Ce,Ee,Se,Le,We,Be,Ne,ze,Pe,_e,Re,Oe,Ie,Ve,De,Te,Fe,Ke,He,Ye,qe,je,Je,Ue,Xe,$e,Ze,Ge,Qe,et,tt,nt,it,st,rt,ot,at,lt,ct,ut;var ht,dt,gt;(0,B.initializeReactI18n)(N.NS,N.I),A.editor.defineTheme("tm-vs-light",y),A.editor.defineTheme("tm-vs-dark",w);const mt=["tm-vs-light","tm-vs-dark"],pt=["vs-dark","hc-black","tm-vs-dark"];(0,T.kz)(A),(0,F.kz)(A),(0,K.kz)(A);const kt=["cel_yaml","cel_str"],ft=["cel",...kt];for(const e of kt)A.languages.registerCompletionItemProvider(e,{triggerCharacters:["<"],provideCompletionItems:H.ix});for(const e of ft)A.languages.registerCompletionItemProvider(e,(0,H.ZY)(e));const{enabled:vt,...At}=null!==(ht=null===(dt=(0,k.getRuntime)())||void 0===dt?void 0:dt.getMiscSettings().globalMonacoEditorCopilotOptions)&&void 0!==ht?ht:{};vt&&A.languages.registerInlineCompletionsProvider(_.F,new _.$({...At,async request(e){var t;let{model:n,temperature:i,system:s,prompt:r,signal:o}=e;return null===(t=(await(0,R.b)({model:n,temperature:i,enableSensitiveWordsFilter:!1,stream:!1,messages:[...s?[{role:"system",content:s}]:[],{role:"user",content:r}]},{signal:o,interceptorParams:{ignoreLoadingBar:!0}})).choices)||void 0===t||null===(t=t[0])||void 0===t||null===(t=t.message)||void 0===t||null===(t=t.content)||void 0===t?void 0:t.trim()},HttpAbortError:f.HttpAbortError}));const{defineElement:bt,property:yt,event:wt}=(0,d.createDecorators)(),Mt=(0,m.wrapBrick)("eo-form-item"),xt=(0,m.wrapBrick)("eo-tooltip"),Ct=(0,m.wrapBrick)("eo-icon"),Et=(0,g.unwrapProvider)("basic.copy-to-clipboard"),St=(0,g.unwrapProvider)("basic.show-notification"),Lt="spell_check",Wt="brick_next_yaml_lint",Bt="extra_markers";let Nt;var zt=new WeakMap,Pt=new WeakMap,_t=new WeakMap,Rt=new WeakMap,Ot=new WeakMap,It=new WeakMap,Vt=new WeakMap,Dt=new WeakMap,Tt=new WeakMap,Ft=new WeakMap,Kt=new WeakMap,Ht=new WeakMap,Yt=new WeakMap,qt=new WeakMap,jt=new WeakMap,Jt=new WeakMap,Ut=new WeakMap,Xt=new WeakMap,$t=new WeakMap,Zt=new WeakMap,Gt=new WeakMap,Qt=new WeakMap,en=new WeakMap,tn=new WeakMap,nn=new WeakMap,sn=new WeakMap,rn=new WeakMap,on=new WeakMap,an=new WeakMap,ln=new WeakMap,cn=new WeakMap,un=new WeakSet,hn=new WeakMap,dn=new WeakMap,gn=new WeakMap,mn=new WeakMap,pn=new WeakMap,kn=new WeakMap;class fn extends v.N{constructor(){super(...arguments),(0,i.A)(this,un),(0,s.A)(this,zt,J(this)),(0,s.A)(this,Pt,(U(this),X(this))),(0,s.A)(this,_t,($(this),Z(this))),(0,s.A)(this,Rt,(G(this),Q(this))),(0,s.A)(this,Ot,(ee(this),te(this))),(0,s.A)(this,It,(ne(this),ie(this))),(0,s.A)(this,Vt,(se(this),re(this))),(0,s.A)(this,Dt,(oe(this),ae(this))),(0,s.A)(this,Tt,(le(this),ce(this))),(0,s.A)(this,Ft,(ue(this),he(this))),(0,s.A)(this,Kt,(de(this),ge(this))),(0,s.A)(this,Ht,(me(this),pe(this))),(0,s.A)(this,Yt,(ke(this),fe(this))),(0,s.A)(this,qt,(ve(this),Ae(this))),(0,s.A)(this,jt,(be(this),ye(this))),(0,s.A)(this,Jt,(we(this),Me(this))),(0,s.A)(this,Ut,(xe(this),Ce(this))),(0,s.A)(this,Xt,(Ee(this),Se(this))),(0,s.A)(this,$t,(Le(this),We(this))),(0,s.A)(this,Zt,(Be(this),Ne(this))),(0,s.A)(this,Gt,(ze(this),Pe(this))),(0,s.A)(this,Qt,(_e(this),Re(this))),(0,s.A)(this,en,(Oe(this),Ie(this))),(0,s.A)(this,tn,(Ve(this),De(this))),(0,s.A)(this,nn,(Te(this),Fe(this))),(0,s.A)(this,sn,(Ke(this),He(this))),(0,s.A)(this,rn,(Ye(this),qe(this))),(0,s.A)(this,on,(je(this),Je(this))),(0,s.A)(this,an,(Ue(this),Xe(this))),(0,s.A)(this,ln,($e(this),Ze(this))),(0,s.A)(this,cn,(Ge(this),Qe(this))),(0,s.A)(this,hn,(nt(this),it(this))),(0,s.A)(this,dn,(ot(this),e=>{var t;this.value=e,null===(t=this.getFormElement())||void 0===t||t.formStore.onChange(this.name,e),(0,o.A)(un,this,et).emit(e)})),(0,s.A)(this,gn,(e=>{(0,o.A)(un,this,st).emit(e)})),(0,s.A)(this,mn,at(this)),(0,s.A)(this,pn,(ut(this),e=>{(0,o.A)(un,this,lt).emit(e)})),(0,s.A)(this,kn,(e=>{if("brick_next_yaml"===this.language||"yaml"===this.language)try{x().load(e)}catch{return"请填写正确的格式"}return""}))}get name(){return(0,l.A)(zt,this)}set name(e){(0,a.A)(zt,this,e)}get label(){return(0,l.A)(Pt,this)}set label(e){(0,a.A)(Pt,this,e)}get value(){return(0,l.A)(_t,this)}set value(e){(0,a.A)(_t,this,e)}get language(){return(0,l.A)(Rt,this)}set language(e){(0,a.A)(Rt,this,e)}get theme(){return(0,l.A)(Ot,this)}set theme(e){(0,a.A)(Ot,this,e)}get required(){return(0,l.A)(It,this)}set required(e){(0,a.A)(It,this,e)}get readOnly(){return(0,l.A)(Vt,this)}set readOnly(e){(0,a.A)(Vt,this,e)}get automaticLayout(){return(0,l.A)(Dt,this)}set automaticLayout(e){(0,a.A)(Dt,this,e)}get minLines(){return(0,l.A)(Tt,this)}set minLines(e){(0,a.A)(Tt,this,e)}get completers(){return(0,l.A)(Ft,this)}set completers(e){(0,a.A)(Ft,this,e)}get advancedCompleters(){return(0,l.A)(Kt,this)}set advancedCompleters(e){(0,a.A)(Kt,this,e)}get markers(){return(0,l.A)(Ht,this)}set markers(e){(0,a.A)(Ht,this,e)}get links(){return(0,l.A)(Yt,this)}set links(e){(0,a.A)(Yt,this,e)}get maxLines(){return(0,l.A)(qt,this)}set maxLines(e){(0,a.A)(qt,this,e)}get height(){return(0,l.A)(jt,this)}set height(e){(0,a.A)(jt,this,e)}get message(){return(0,l.A)(Jt,this)}set message(e){(0,a.A)(Jt,this,e)}get placeholder(){return(0,l.A)(Ut,this)}set placeholder(e){(0,a.A)(Ut,this,e)}get showExpandButton(){return(0,l.A)(Xt,this)}set showExpandButton(e){(0,a.A)(Xt,this,e)}get lineNumbers(){return(0,l.A)($t,this)}set lineNumbers(e){(0,a.A)($t,this,e)}get tokenConfig(){return(0,l.A)(Zt,this)}set tokenConfig(e){(0,a.A)(Zt,this,e)}get customValidationInBrickNextYaml(){return(0,l.A)(Gt,this)}set customValidationInBrickNextYaml(e){(0,a.A)(Gt,this,e)}get showCopyButton(){return(0,l.A)(Qt,this)}set showCopyButton(e){(0,a.A)(Qt,this,e)}get glyphMargin(){return(0,l.A)(en,this)}set glyphMargin(e){(0,a.A)(en,this,e)}get extraLibs(){return(0,l.A)(tn,this)}set extraLibs(e){(0,a.A)(tn,this,e)}get extraMarkers(){return(0,l.A)(nn,this)}set extraMarkers(e){(0,a.A)(nn,this,e)}get fixedOverflowWidgets(){return(0,l.A)(sn,this)}set fixedOverflowWidgets(e){(0,a.A)(sn,this,e)}get spellCheck(){return(0,l.A)(rn,this)}set spellCheck(e){(0,a.A)(rn,this,e)}get knownWords(){return(0,l.A)(on,this)}set knownWords(e){(0,a.A)(on,this,e)}get domLibsEnabled(){return(0,l.A)(an,this)}set domLibsEnabled(e){(0,a.A)(an,this,e)}get uri(){return(0,l.A)(ln,this)}set uri(e){(0,a.A)(ln,this,e)}connectedCallback(){this.style.display||(this.style.display="block"),super.connectedCallback()}render(){return h().createElement(Mt,{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,l.A)(kn,this)},h().createElement(vn,{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,extraMarkers:this.extraMarkers,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,l.A)(dn,this),onUserInput:(0,l.A)(gn,this),onTokenClick:(0,l.A)(pn,this),customValidationInBrickNextYaml:this.customValidationInBrickNextYaml,fixedOverflowWidgets:this.fixedOverflowWidgets,spellCheck:this.spellCheck,knownWords:this.knownWords,domLibsEnabled:this.domLibsEnabled,uri:this.uri}))}}function vn(e){let{value:t,language:n,theme:i,minLines:s,maxLines:r,height:o,automaticLayout:a,completers:l,advancedCompleters:c,markers:d,readOnly:g,links:m,extraLibs:k,extraMarkers:f,tokenConfig:v,showExpandButton:y,showCopyButton:w=!0,lineNumbers:M="on",glyphMargin:x=!1,placeholder:z,validateState:_,onChange:R,onTokenClick:T,customValidationInBrickNextYaml:F,fixedOverflowWidgets:K,spellCheck:j,knownWords:J,domLibsEnabled:U,uri:X}=e;const $=null!=t?t:"",Z=null!=n?n:"plaintext",G=null!=i?i:"auto",Q=null!=s?s:3,ee=null!=r?r:1/0,te=null!=o?o:500,ne=null==K||K,ie=null==j||j,[se,re]=(0,u.useState)(!1),oe=(0,u.useMemo)((()=>(0,C.uniqueId)("worker")),[]),{t:ae}=(0,B.useTranslation)(N.NS),le=(0,u.useRef)(null),ce=(0,u.useRef)(),ue=(0,u.useRef)(),he=(0,u.useRef)({width:300,height:An($,Q,ee)}),[de,ge]=(0,u.useState)(),[me,pe]=(0,u.useState)(),ke=(0,u.useRef)(a),fe=(0,p.useCurrentTheme)(),ve=b.e.includes(Z),Ae=(0,u.useMemo)((()=>{const e="auto"===G?"dark"===fe||"dark-v2"===fe?"vs-dark":"vs":G;return ve&&!mt.includes(e)?pt.includes(e)?"tm-vs-dark":"tm-vs-light":e}),[fe,G,ve]),be=pt.includes(Ae);(0,u.useEffect)((()=>{if(mt.includes(Ae))return;const e=be?"#FFFFFF0F":"#0000000A";A.editor.defineTheme("custom-theme",{base:Ae,inherit:!0,rules:[],colors:{"editor.lineHighlightBackground":`${e}`}}),A.editor.setTheme("custom-theme")}),[Ae,be]),(0,u.useEffect)((()=>{A.editor.setTheme(Ae)}),[Ae]),(0,u.useEffect)((()=>{if(ue.current){const e=ue.current.getModel();A.editor.setModelLanguage(e,Z)}(0,b.A)(Z)}),[Z]),(0,u.useEffect)((()=>{if("brick_next_yaml"===Z){const e=(0,S.v)(l,Array.isArray(c)?void 0:c,oe,v),t=A.languages.registerCompletionItemProvider("brick_next_yaml",{provideCompletionItems:e,triggerCharacters:[".",":","<"]});return()=>{t.dispose()}}}),[l,c,Z,oe,v]),(0,u.useEffect)((()=>{if(Array.isArray(c)&&c.length>0&&ft.includes(Z)){const e=A.languages.registerCompletionItemProvider(Z,(0,H.MY)(Z,oe,c));return()=>{e.dispose()}}}),[Z,c,oe]),(0,u.useEffect)((()=>{const e=ue.current;if(e){const t=e.getModel();null!=t&&t.getValue&&$!==t.getValue()&&t.setValue($)}}),[$]),(0,u.useLayoutEffect)((()=>{var e;if("fit-content"!==ke.current||!le.current)return;he.current.width=le.current.getBoundingClientRect().width,null===(e=ue.current)||void 0===e||e.layout(he.current);const t=new ResizeObserver((e=>{for(const n of e)if(n.target===le.current){const e=n.contentBoxSize?n.contentBoxSize[0]?n.contentBoxSize[0].inlineSize:n.contentBoxSize.inlineSize:n.contentRect.width,i=n.contentBoxSize?n.contentBoxSize[0]?n.contentBoxSize[0].blockSize:n.contentBoxSize.blockSize:n.contentRect.height;var t;(e!==he.current.width||se)&&(he.current.width=e,null===(t=ue.current)||void 0===t||t.layout({width:e,height:se?i:he.current.height}));break}}));return t.observe(le.current),()=>{t.disconnect()}}),[se]),(0,u.useLayoutEffect)((()=>{if("fit-container"!==ke.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}}(le.current);if(!e)return;const t=new ResizeObserver((t=>{for(const n of t)if(n.target===e){const e=n.contentBoxSize?n.contentBoxSize[0]?n.contentBoxSize[0].inlineSize:n.contentBoxSize.inlineSize:n.contentRect.width;ge(e);const t=n.contentBoxSize?n.contentBoxSize[0]?n.contentBoxSize[0].blockSize:n.contentBoxSize.blockSize:n.contentRect.height;pe(t)}}));return t.observe(e),()=>{t.disconnect()}}),[]),(0,u.useEffect)((()=>{"fit-container"!==ke.current&&"fit-content"!==ke.current&&pe(te)}),[te]),(0,u.useEffect)((()=>{ue.current&&ue.current.updateOptions({readOnly:g,lineNumbersMinChars:se?5:3})}),[g,se]),(0,u.useEffect)((()=>{if(ue.current||!le.current)return;const e=A.editor.createModel($,Z,X?A.Uri.parse(X):void 0);let t;if("brick_next_yaml"===Z){const n=(0,W.AR)(e.uri);t=A.editor.createModel($,"javascript",n),A.languages.typescript.javascriptDefaults.addExtraLib((0,W.Eh)(),e.uri.toString()+"d.ts")}const n=ue.current=A.editor.create(le.current,{extraEditorClassName:"monaco-editor-v3",model:e,minimap:{enabled:!1,showRegionSectionHeaders:!1,showMarkSectionHeaders:!1},scrollBeyondLastLine:!1,tabSize:2,insertSpaces:!0,automaticLayout:"fit-content"!==ke.current,fontSize:E.yU,lineHeight:E.fE,scrollbar:{horizontalScrollbarSize:E.lP,verticalScrollbarSize:E.lP,horizontalSliderSize:8,verticalSliderSize:8,alwaysConsumeMouseWheel:!1},padding:{top:E.Vu,bottom:"fit-content"==ke.current?void 0:E.Vu},overviewRulerBorder:!1,mouseWheelScrollSensitivity:.5,fixedOverflowWidgets:ne,lineNumbers:M,lineNumbersMinChars:3,glyphMargin:x,folding:"off"!==M,suggest:{insertMode:"insert",preview:!0},readOnly:g,quickSuggestions:{strings:!0,other:!0,comments:!0},renderLineHighlightOnlyWhenFocus:!0,unicodeHighlight:{ambiguousCharacters:!1}});return ce.current=ue.current.createDecorationsCollection(),(0,Y.MX)(n),()=>{var i;e.dispose(),n.dispose(),null===(i=t)||void 0===i||i.dispose()}}),[]);const ye="typescript"===Z?"typescriptDefaults":"javascriptDefaults";(0,u.useEffect)((()=>{"javascript"!==Z&&"typescript"!==Z&&"brick_next_yaml"!==Z||A.languages.typescript[ye].setCompilerOptions({allowNonTsExtensions:!0,lib:U?void 0:["esnext"],target:A.languages.typescript.ScriptTarget.ESNext,module:A.languages.typescript.ModuleKind.ESNext,jsx:A.languages.typescript.JsxEmit.Preserve,skipLibCheck:!0,skipDefaultLibCheck:!0})}),[Z,U,ye]),(0,u.useEffect)((()=>{const e=ue.current;if(e)return()=>{(0,Y.X2)(e)}}),[]),(0,u.useEffect)((()=>{const e=ue.current;if(!e)return;const t=()=>{(0,q.$)(k,{languageDefaults:ye}),"javascript"!==Z&&"typescript"!==Z&&"brick_next_yaml"!==Z||A.languages.typescript[ye].setCompilerOptions({allowNonTsExtensions:!0,lib:U?void 0:["esnext"],target:A.languages.typescript.ScriptTarget.ESNext,module:A.languages.typescript.ModuleKind.ESNext,jsx:A.languages.typescript.JsxEmit.Preserve,skipLibCheck:!0,skipDefaultLibCheck:!0})};(0,Y.xx)(e)&&t();const n=e.onDidFocusEditorWidget((()=>{(0,Y.MX)(e)&&t()}));return()=>{n.dispose()}}),[U,k,Z,ye]),(0,u.useEffect)((()=>{const e=ue.current;if("brick_next_yaml"===Z&&e){const t=e.getModel(),n=e.onMouseDown((function(e){var n,i;const s=ce.current;(null!==(n=null==s||null===(i=s.getRanges)||void 0===i?void 0:i.call(s))&&void 0!==n?n:[]).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)&&T(t.getValueInRange(n))}))})),i=e.onMouseMove((function(e){const t=ce.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()}}}),[Z,T,fe,G]),(0,u.useEffect)((()=>{const e=ue.current;if(!e||!le.current||"fit-content"!==ke.current)return;const t=e.onDidContentSizeChange((t=>{if(!se&&t.contentHeightChanged){const n=bn(t.contentHeight,Q,ee);n!==he.current.height&&(he.current.height=n,e.layout(he.current))}})),n=bn(e.getContentHeight(),Q,ee);return n!==he.current.height&&(he.current.height=n,e.layout(he.current)),()=>{t.dispose()}}),[ee,Q,se]);const we=(0,u.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,W.AR)(e.uri);A.editor.getModel(t).setValue(i);const r=e.getOffsetAt(new A.Position(s.startLineNumber,s.endColumn));if(O.b.getInstance(oe).updateState({content:i,range:n,offset:r}),!F)return;const o=await A.languages.typescript.getJavaScriptWorker(),a=await o(t),l=(await a.getSemanticDiagnostics(t.toString())).map((t=>{var n;const i=r+(null!==(n=t.start)&&void 0!==n?n:0),s=e.getPositionAt(i);return{startLineNumber:s.lineNumber,startColumn:s.column,endLineNumber:s.lineNumber,endColumn:s.column+t.length,message:t.messageText,severity:A.MarkerSeverity.Warning}}));A.editor.setModelMarkers(e,"semantic_validate",l)}}}),[oe]);(0,u.useEffect)((()=>{if(!ue.current)return;const e=ue.current.getModel(),t=e.onDidChangeContent((async t=>{(0,L.J)(oe),["brick_next_yaml"].includes(Z)&&we(e,ue.current.getPosition()),t.isFlush||R(e.getValue())}));return()=>{t.dispose()}}),[R,oe,Z,we]),(0,u.useEffect)((()=>{if(se){const e=t=>{"Escape"!==t.key&&"Esc"!==t.key||(window.removeEventListener("keydown",e),re(!1))};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}}}),[se]),(0,u.useEffect)((()=>{if(!ue.current&&!z)return;const e=new I.j(z,ue.current,be?"rgba(174,174,175,0.4)":"rgba(89,89,89,0.4)");return()=>{e.dispose()}}),[z,be]);const Me=(0,u.useCallback)((()=>{if(ue.current){const e=ue.current.getModel();Et(e.getValue()).then((()=>St({type:"success",message:ae(N.K.COPY_SUCCESS)}))).catch((()=>St({type:"error",message:ae(N.K.COPY_FAILED)})))}}),[ae]),xe=(0,u.useCallback)((()=>{re(!se)}),[se]);return(0,u.useEffect)((()=>{const e=ue.current;if(!e||"brick_next_yaml"!==Z)return;let t=!1;const n=(0,C.debounce)((async()=>{var n;const i=await(0,V.K)();if(t)return;const{lintMarkers:s,lintDecorations:r}=await i.lint({source:e.getValue(),links:m,markers:d}),o=e.getModel();!t&&o&&(A.editor.setModelMarkers(o,Wt,s.map((e=>{let{start:t,end:n,message:i,severity:s,code:r}=e;const a=o.getPositionAt(t),l=o.getPositionAt(n);return{startLineNumber:a.lineNumber,startColumn:a.column,endLineNumber:l.lineNumber,endColumn:l.column,severity:A.MarkerSeverity[s],message:i,code:r}}))),null===(n=ce.current)||void 0===n||n.set(r.map((e=>{let{start:t,end:n,options:i}=e;return{range:A.Range.fromPositions(o.getPositionAt(t),o.getPositionAt(n)),options:i}}))))}),200),i=e.onDidChangeModelContent(n);return n(),()=>{t=!0,i.dispose(),A.editor.setModelMarkers(e.getModel(),Wt,[])}}),[Z,m,d,G,oe]),(0,u.useEffect)((()=>{var e;const t=null===(e=ue.current)||void 0===e?void 0:e.getModel();if(t&&null!=f&&f.length)return A.editor.setModelMarkers(t,Bt,f.map((e=>{let{severity:t,...n}=e;return{...n,severity:A.MarkerSeverity[t]}}))),()=>{A.editor.setModelMarkers(t,Bt,[])}}),[f]),(0,u.useEffect)((()=>{const e=ue.current;if(!e||!ie)return;let t=!1;const n=(0,C.debounce)((async()=>{const n=await(0,D.n)();if(t)return;const{markers:i}=await n.spellCheck({source:e.getValue(),knownWords:J}),s=e.getModel();!t&&s&&A.editor.setModelMarkers(s,Lt,i.map((e=>{let{start:t,end:n,message:i,severity:r}=e;const o=s.getPositionAt(t),a=s.getPositionAt(n);return{startLineNumber:o.lineNumber,startColumn:o.column,endLineNumber:a.lineNumber,endColumn:a.column,severity:A.MarkerSeverity[r],message:i}})))}),200),i=e.onDidChangeModelContent(n);return n(),()=>{t=!0,i.dispose(),A.editor.setModelMarkers(e.getModel(),Lt,[])}}),[ie,J]),h().createElement("div",{className:P()("code-editor-wrapper",{expanded:se,error:"error"===_})},h().createElement("div",{ref:le,style:{height:se?"100%":me,width:se?"100%":de,overflow:se?"scroll":""}}),h().createElement("div",{className:"toolbar-wrapper"},h().createElement("div",{className:"toolbar sticky"},w&&h().createElement(xt,{content:ae(N.K.COPY)},h().createElement(Ct,{className:"copy-icon",icon:"copy",lib:"antd",theme:"outlined",onClick:Me})),y&&h().createElement(xt,{content:ae(se?N.K.COLLAPSE:N.K.EXPAND)},h().createElement(Ct,{className:"expand-icon",icon:se?"compress":"expand",lib:"antd",theme:"outlined",onClick:xe})))))}function An(e,t,n){return yn(Math.min(n,Math.max(t,e.split("\n").length)))}function bn(e,t,n){let i=e;return(e-E.Vu)%E.fE==0&&(i=e+E.lP),Math.min(yn(n),Math.max(i,yn(t)))}function yn(e){return e*E.fE+E.lP+E.Vu}gt=fn,({e:[J,U,X,$,Z,G,Q,ee,te,ne,ie,se,re,oe,ae,le,ce,ue,he,de,ge,me,pe,ke,fe,ve,Ae,be,ye,we,Me,xe,Ce,Ee,Se,Le,We,Be,Ne,ze,Pe,_e,Re,Oe,Ie,Ve,De,Te,Fe,Ke,He,Ye,qe,je,Je,Ue,Xe,$e,Ze,Ge,Qe,et,tt,nt,it,st,rt,ot,at,lt,ct,ut],c:[Nt,j]}=(0,c.A)(gt,[bt("vs.code-editor",{shadowOptions:!1})],[[yt(),1,"name"],[yt(),1,"label"],[yt(),1,"value"],[yt(),1,"language"],[yt(),1,"theme"],[yt({type:Boolean}),1,"required"],[yt({type:Boolean}),1,"readOnly"],[yt(),1,"automaticLayout"],[yt({type:Number}),1,"minLines"],[yt({attribute:!1}),1,"completers"],[yt({attribute:!1}),1,"advancedCompleters"],[yt({attribute:!1}),1,"markers"],[yt({attribute:!1}),1,"links"],[yt({type:Number}),1,"maxLines"],[yt({attribute:!1}),1,"height"],[yt(),1,"message"],[yt(),1,"placeholder"],[yt({type:Boolean}),1,"showExpandButton"],[yt(),1,"lineNumbers"],[yt({attribute:!1}),1,"tokenConfig"],[yt({type:Boolean}),1,"customValidationInBrickNextYaml"],[yt({type:Boolean}),1,"showCopyButton"],[yt({type:Boolean}),1,"glyphMargin"],[yt({attribute:!1}),1,"extraLibs"],[yt({attribute:!1}),1,"extraMarkers"],[yt({type:Boolean}),1,"fixedOverflowWidgets"],[yt({type:Boolean}),1,"spellCheck"],[yt({attribute:!1}),1,"knownWords"],[yt({type:Boolean}),1,"domLibsEnabled"],[yt(),1,"uri"],[wt({type:"code.change"}),1,"codeChange",e=>(0,l.A)(cn,e),(e,t)=>(0,a.A)(cn,e,t)],[wt({type:"user.input"}),1,"userInput",e=>(0,l.A)(hn,e),(e,t)=>(0,a.A)(hn,e,t)],[wt({type:"token.click"}),1,"tokenClickEvent",e=>(0,l.A)(mn,e),(e,t)=>(0,a.A)(mn,e,t)]],0,(e=>kn.has((0,r.A)(e))),v.N)),j()}}]);
2
- //# sourceMappingURL=9384.273e842b.js.map
1
+ "use strict";(globalThis.webpackChunk_next_bricks_vs=globalThis.webpackChunk_next_bricks_vs||[]).push([[9384],{49384:(e,t,n)=>{var i=n(74635),s=n(70918),r=n(26902),o=n(5536),a=n(86121),l=n(70829),c=n(62740),u=n(18769),h=n.n(u),d=n(90870),g=n(49936),m=n(30981),p=n(29711),k=n(51921),f=n(41361),v=n(41757),A=n(62001),b=n(77921),y=(n(95621),n(18965)),w=n(98967),M=n(55310),x=n.n(M),C=(n(34419),n(20563)),E=n(99442),S=n(87380),L=n(64437),W=n(25559),B=n(69704),N=n(91507),z=n(53373),P=n.n(z),_=n(97714),R=n(72414),O=(n(73569),n(15601)),I=n(69235),V=n(64322),D=n(59817),T=n(97659),F=n(44143),K=n(48217),H=n(85021),Y=n(80817),q=n(76915);let j,J,U,X,$,Z,G,Q,ee,te,ne,ie,se,re,oe,ae,le,ce,ue,he,de,ge,me,pe,ke,fe,ve,Ae,be,ye,we,Me,xe,Ce,Ee,Se,Le,We,Be,Ne,ze,Pe,_e,Re,Oe,Ie,Ve,De,Te,Fe,Ke,He,Ye,qe,je,Je,Ue,Xe,$e,Ze,Ge,Qe,et,tt,nt,it,st,rt,ot,at,lt,ct,ut;var ht,dt,gt;(0,B.initializeReactI18n)(N.NS,N.I),A.editor.defineTheme("tm-vs-light",y),A.editor.defineTheme("tm-vs-dark",w);const mt=["tm-vs-light","tm-vs-dark"],pt=["vs-dark","hc-black","tm-vs-dark"];(0,T.kz)(A),(0,F.kz)(A),(0,K.kz)(A);const kt=["cel_yaml","cel_str"],ft=["cel",...kt];for(const e of kt)A.languages.registerCompletionItemProvider(e,{triggerCharacters:["<"],provideCompletionItems:H.ix});for(const e of ft)A.languages.registerCompletionItemProvider(e,(0,H.ZY)(e));const{enabled:vt,...At}=null!==(ht=null===(dt=(0,k.getRuntime)())||void 0===dt?void 0:dt.getMiscSettings().globalMonacoEditorCopilotOptions)&&void 0!==ht?ht:{};vt&&A.languages.registerInlineCompletionsProvider(_.F,new _.$({...At,async request(e){var t;let{model:n,temperature:i,system:s,prompt:r,signal:o}=e;return null===(t=(await(0,R.b)({model:n,temperature:i,enableSensitiveWordsFilter:!1,stream:!1,messages:[...s?[{role:"system",content:s}]:[],{role:"user",content:r}]},{signal:o,interceptorParams:{ignoreLoadingBar:!0}})).choices)||void 0===t||null===(t=t[0])||void 0===t||null===(t=t.message)||void 0===t||null===(t=t.content)||void 0===t?void 0:t.trim()},HttpAbortError:f.HttpAbortError}));const{defineElement:bt,property:yt,event:wt}=(0,d.createDecorators)(),Mt=(0,m.wrapBrick)("eo-form-item"),xt=(0,m.wrapBrick)("eo-tooltip"),Ct=(0,m.wrapBrick)("eo-icon"),Et=(0,g.unwrapProvider)("basic.copy-to-clipboard"),St=(0,g.unwrapProvider)("basic.show-notification"),Lt="spell_check",Wt="brick_next_yaml_lint",Bt="extra_markers";let Nt;var zt=new WeakMap,Pt=new WeakMap,_t=new WeakMap,Rt=new WeakMap,Ot=new WeakMap,It=new WeakMap,Vt=new WeakMap,Dt=new WeakMap,Tt=new WeakMap,Ft=new WeakMap,Kt=new WeakMap,Ht=new WeakMap,Yt=new WeakMap,qt=new WeakMap,jt=new WeakMap,Jt=new WeakMap,Ut=new WeakMap,Xt=new WeakMap,$t=new WeakMap,Zt=new WeakMap,Gt=new WeakMap,Qt=new WeakMap,en=new WeakMap,tn=new WeakMap,nn=new WeakMap,sn=new WeakMap,rn=new WeakMap,on=new WeakMap,an=new WeakMap,ln=new WeakMap,cn=new WeakMap,un=new WeakSet,hn=new WeakMap,dn=new WeakMap,gn=new WeakMap,mn=new WeakMap,pn=new WeakMap,kn=new WeakMap;class fn extends v.N{constructor(){super(...arguments),(0,i.A)(this,un),(0,s.A)(this,zt,J(this)),(0,s.A)(this,Pt,(U(this),X(this))),(0,s.A)(this,_t,($(this),Z(this))),(0,s.A)(this,Rt,(G(this),Q(this))),(0,s.A)(this,Ot,(ee(this),te(this))),(0,s.A)(this,It,(ne(this),ie(this))),(0,s.A)(this,Vt,(se(this),re(this))),(0,s.A)(this,Dt,(oe(this),ae(this))),(0,s.A)(this,Tt,(le(this),ce(this))),(0,s.A)(this,Ft,(ue(this),he(this))),(0,s.A)(this,Kt,(de(this),ge(this))),(0,s.A)(this,Ht,(me(this),pe(this))),(0,s.A)(this,Yt,(ke(this),fe(this))),(0,s.A)(this,qt,(ve(this),Ae(this))),(0,s.A)(this,jt,(be(this),ye(this))),(0,s.A)(this,Jt,(we(this),Me(this))),(0,s.A)(this,Ut,(xe(this),Ce(this))),(0,s.A)(this,Xt,(Ee(this),Se(this))),(0,s.A)(this,$t,(Le(this),We(this))),(0,s.A)(this,Zt,(Be(this),Ne(this))),(0,s.A)(this,Gt,(ze(this),Pe(this))),(0,s.A)(this,Qt,(_e(this),Re(this))),(0,s.A)(this,en,(Oe(this),Ie(this))),(0,s.A)(this,tn,(Ve(this),De(this))),(0,s.A)(this,nn,(Te(this),Fe(this))),(0,s.A)(this,sn,(Ke(this),He(this))),(0,s.A)(this,rn,(Ye(this),qe(this))),(0,s.A)(this,on,(je(this),Je(this))),(0,s.A)(this,an,(Ue(this),Xe(this))),(0,s.A)(this,ln,($e(this),Ze(this))),(0,s.A)(this,cn,(Ge(this),Qe(this))),(0,s.A)(this,hn,(nt(this),it(this))),(0,s.A)(this,dn,(ot(this),e=>{var t;this.value=e,null===(t=this.getFormElement())||void 0===t||t.formStore.onChange(this.name,e),(0,o.A)(un,this,et).emit(e)})),(0,s.A)(this,gn,(e=>{(0,o.A)(un,this,st).emit(e)})),(0,s.A)(this,mn,at(this)),(0,s.A)(this,pn,(ut(this),e=>{(0,o.A)(un,this,lt).emit(e)})),(0,s.A)(this,kn,(e=>{if("brick_next_yaml"===this.language||"yaml"===this.language)try{x().load(e)}catch{return"请填写正确的格式"}return""}))}get name(){return(0,l.A)(zt,this)}set name(e){(0,a.A)(zt,this,e)}get label(){return(0,l.A)(Pt,this)}set label(e){(0,a.A)(Pt,this,e)}get value(){return(0,l.A)(_t,this)}set value(e){(0,a.A)(_t,this,e)}get language(){return(0,l.A)(Rt,this)}set language(e){(0,a.A)(Rt,this,e)}get theme(){return(0,l.A)(Ot,this)}set theme(e){(0,a.A)(Ot,this,e)}get required(){return(0,l.A)(It,this)}set required(e){(0,a.A)(It,this,e)}get readOnly(){return(0,l.A)(Vt,this)}set readOnly(e){(0,a.A)(Vt,this,e)}get automaticLayout(){return(0,l.A)(Dt,this)}set automaticLayout(e){(0,a.A)(Dt,this,e)}get minLines(){return(0,l.A)(Tt,this)}set minLines(e){(0,a.A)(Tt,this,e)}get completers(){return(0,l.A)(Ft,this)}set completers(e){(0,a.A)(Ft,this,e)}get advancedCompleters(){return(0,l.A)(Kt,this)}set advancedCompleters(e){(0,a.A)(Kt,this,e)}get markers(){return(0,l.A)(Ht,this)}set markers(e){(0,a.A)(Ht,this,e)}get links(){return(0,l.A)(Yt,this)}set links(e){(0,a.A)(Yt,this,e)}get maxLines(){return(0,l.A)(qt,this)}set maxLines(e){(0,a.A)(qt,this,e)}get height(){return(0,l.A)(jt,this)}set height(e){(0,a.A)(jt,this,e)}get message(){return(0,l.A)(Jt,this)}set message(e){(0,a.A)(Jt,this,e)}get placeholder(){return(0,l.A)(Ut,this)}set placeholder(e){(0,a.A)(Ut,this,e)}get showExpandButton(){return(0,l.A)(Xt,this)}set showExpandButton(e){(0,a.A)(Xt,this,e)}get lineNumbers(){return(0,l.A)($t,this)}set lineNumbers(e){(0,a.A)($t,this,e)}get tokenConfig(){return(0,l.A)(Zt,this)}set tokenConfig(e){(0,a.A)(Zt,this,e)}get customValidationInBrickNextYaml(){return(0,l.A)(Gt,this)}set customValidationInBrickNextYaml(e){(0,a.A)(Gt,this,e)}get showCopyButton(){return(0,l.A)(Qt,this)}set showCopyButton(e){(0,a.A)(Qt,this,e)}get glyphMargin(){return(0,l.A)(en,this)}set glyphMargin(e){(0,a.A)(en,this,e)}get extraLibs(){return(0,l.A)(tn,this)}set extraLibs(e){(0,a.A)(tn,this,e)}get extraMarkers(){return(0,l.A)(nn,this)}set extraMarkers(e){(0,a.A)(nn,this,e)}get fixedOverflowWidgets(){return(0,l.A)(sn,this)}set fixedOverflowWidgets(e){(0,a.A)(sn,this,e)}get spellCheck(){return(0,l.A)(rn,this)}set spellCheck(e){(0,a.A)(rn,this,e)}get knownWords(){return(0,l.A)(on,this)}set knownWords(e){(0,a.A)(on,this,e)}get domLibsEnabled(){return(0,l.A)(an,this)}set domLibsEnabled(e){(0,a.A)(an,this,e)}get uri(){return(0,l.A)(ln,this)}set uri(e){(0,a.A)(ln,this,e)}connectedCallback(){this.style.display||(this.style.display="block"),super.connectedCallback()}render(){return h().createElement(Mt,{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,l.A)(kn,this)},h().createElement(vn,{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,extraMarkers:this.extraMarkers,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,l.A)(dn,this),onUserInput:(0,l.A)(gn,this),onTokenClick:(0,l.A)(pn,this),customValidationInBrickNextYaml:this.customValidationInBrickNextYaml,fixedOverflowWidgets:this.fixedOverflowWidgets,spellCheck:this.spellCheck,knownWords:this.knownWords,domLibsEnabled:this.domLibsEnabled,uri:this.uri}))}}function vn(e){let{value:t,language:n,theme:i,minLines:s,maxLines:r,height:o,automaticLayout:a,completers:l,advancedCompleters:c,markers:d,readOnly:g,links:m,extraLibs:k,extraMarkers:f,tokenConfig:v,showExpandButton:y,showCopyButton:w=!0,lineNumbers:M="on",glyphMargin:x=!1,placeholder:z,validateState:_,onChange:R,onTokenClick:T,customValidationInBrickNextYaml:F,fixedOverflowWidgets:K,spellCheck:j,knownWords:J,domLibsEnabled:U,uri:X}=e;const $=null!=t?t:"",Z=null!=n?n:"plaintext",G=null!=i?i:"auto",Q=null!=s?s:3,ee=null!=r?r:1/0,te=null!=o?o:500,ne=null==K||K,ie=null==j||j,[se,re]=(0,u.useState)(!1),oe=(0,u.useMemo)((()=>(0,C.uniqueId)("worker")),[]),{t:ae}=(0,B.useTranslation)(N.NS),le=(0,u.useRef)(null),ce=(0,u.useRef)(),ue=(0,u.useRef)(),he=(0,u.useRef)({width:300,height:An($,Q,ee)}),[de,ge]=(0,u.useState)(),[me,pe]=(0,u.useState)(),ke=(0,u.useRef)(a),fe=(0,p.useCurrentTheme)(),ve=b.e.includes(Z),Ae=(0,u.useMemo)((()=>{const e="auto"===G?"dark"===fe||"dark-v2"===fe?"vs-dark":"vs":G;return ve&&!mt.includes(e)?pt.includes(e)?"tm-vs-dark":"tm-vs-light":e}),[fe,G,ve]),be=pt.includes(Ae);(0,u.useEffect)((()=>{if(mt.includes(Ae))return;const e=be?"#FFFFFF0F":"#0000000A";A.editor.defineTheme("custom-theme",{base:Ae,inherit:!0,rules:[],colors:{"editor.lineHighlightBackground":`${e}`}}),A.editor.setTheme("custom-theme")}),[Ae,be]),(0,u.useEffect)((()=>{A.editor.setTheme(Ae)}),[Ae]),(0,u.useEffect)((()=>{if(ue.current){const e=ue.current.getModel();A.editor.setModelLanguage(e,Z)}(0,b.A)(Z)}),[Z]),(0,u.useEffect)((()=>{if("brick_next_yaml"===Z){const e=(0,S.v)(l,Array.isArray(c)?void 0:c,oe,v),t=A.languages.registerCompletionItemProvider("brick_next_yaml",{provideCompletionItems:e,triggerCharacters:[".",":","<"]});return()=>{t.dispose()}}}),[l,c,Z,oe,v]),(0,u.useEffect)((()=>{if(Array.isArray(c)&&c.length>0&&ft.includes(Z)){const e=A.languages.registerCompletionItemProvider(Z,(0,H.MY)(Z,oe,c));return()=>{e.dispose()}}}),[Z,c,oe]),(0,u.useEffect)((()=>{const e=ue.current;if(e){const t=e.getModel();null!=t&&t.getValue&&$!==t.getValue()&&t.setValue($)}}),[$]),(0,u.useLayoutEffect)((()=>{var e;if("fit-content"!==ke.current||!le.current)return;he.current.width=le.current.getBoundingClientRect().width,null===(e=ue.current)||void 0===e||e.layout(he.current);const t=new ResizeObserver((e=>{for(const n of e)if(n.target===le.current){const e=n.contentBoxSize?n.contentBoxSize[0]?n.contentBoxSize[0].inlineSize:n.contentBoxSize.inlineSize:n.contentRect.width,i=n.contentBoxSize?n.contentBoxSize[0]?n.contentBoxSize[0].blockSize:n.contentBoxSize.blockSize:n.contentRect.height;var t;(e!==he.current.width||se)&&(he.current.width=e,null===(t=ue.current)||void 0===t||t.layout({width:e,height:se?i:he.current.height}));break}}));return t.observe(le.current),()=>{t.disconnect()}}),[se]),(0,u.useLayoutEffect)((()=>{if("fit-container"!==ke.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}}(le.current);if(!e)return;const t=new ResizeObserver((t=>{for(const n of t)if(n.target===e){const e=n.contentBoxSize?n.contentBoxSize[0]?n.contentBoxSize[0].inlineSize:n.contentBoxSize.inlineSize:n.contentRect.width;ge(e);const t=n.contentBoxSize?n.contentBoxSize[0]?n.contentBoxSize[0].blockSize:n.contentBoxSize.blockSize:n.contentRect.height;pe(t)}}));return t.observe(e),()=>{t.disconnect()}}),[]),(0,u.useEffect)((()=>{"fit-container"!==ke.current&&"fit-content"!==ke.current&&pe(te)}),[te]),(0,u.useEffect)((()=>{ue.current&&ue.current.updateOptions({readOnly:g,lineNumbersMinChars:se?5:3})}),[g,se]),(0,u.useEffect)((()=>{if(ue.current||!le.current)return;const e=A.editor.createModel($,Z,X?A.Uri.parse(X):void 0);let t;if("brick_next_yaml"===Z){const n=(0,W.AR)(e.uri);t=A.editor.createModel($,"javascript",n),A.languages.typescript.javascriptDefaults.addExtraLib((0,W.Eh)(),e.uri.toString()+"d.ts")}const n=ue.current=A.editor.create(le.current,{extraEditorClassName:"monaco-editor-v3",model:e,minimap:{enabled:!1,showRegionSectionHeaders:!1,showMarkSectionHeaders:!1},scrollBeyondLastLine:!1,tabSize:2,insertSpaces:!0,automaticLayout:"fit-content"!==ke.current,fontSize:E.yU,lineHeight:E.fE,scrollbar:{horizontalScrollbarSize:E.lP,verticalScrollbarSize:E.lP,horizontalSliderSize:8,verticalSliderSize:8,alwaysConsumeMouseWheel:!1},padding:{top:E.Vu,bottom:"fit-content"==ke.current?void 0:E.Vu},overviewRulerBorder:!1,mouseWheelScrollSensitivity:.5,fixedOverflowWidgets:ne,lineNumbers:M,lineNumbersMinChars:3,glyphMargin:x,folding:"off"!==M,suggest:{insertMode:"insert",preview:!0},readOnly:g,quickSuggestions:{strings:!0,other:!0,comments:!0},renderLineHighlightOnlyWhenFocus:!0,unicodeHighlight:{ambiguousCharacters:!1}});return ce.current=ue.current.createDecorationsCollection(),(0,Y.MX)(n),()=>{var i;e.dispose(),n.dispose(),null===(i=t)||void 0===i||i.dispose()}}),[]);const ye="typescript"===Z?"typescriptDefaults":"javascriptDefaults";(0,u.useEffect)((()=>{"javascript"!==Z&&"typescript"!==Z&&"brick_next_yaml"!==Z||A.languages.typescript[ye].setCompilerOptions({allowNonTsExtensions:!0,lib:U?void 0:["esnext"],target:A.languages.typescript.ScriptTarget.ESNext,module:A.languages.typescript.ModuleKind.ESNext,jsx:A.languages.typescript.JsxEmit.Preserve,skipLibCheck:!0,skipDefaultLibCheck:!0})}),[Z,U,ye]),(0,u.useEffect)((()=>{const e=ue.current;if(e)return()=>{(0,Y.X2)(e)}}),[]),(0,u.useEffect)((()=>{const e=ue.current;if(!e)return;const t=()=>{(0,q.$)(k,{languageDefaults:ye}),"javascript"!==Z&&"typescript"!==Z&&"brick_next_yaml"!==Z||A.languages.typescript[ye].setCompilerOptions({allowNonTsExtensions:!0,lib:U?void 0:["esnext"],target:A.languages.typescript.ScriptTarget.ESNext,module:A.languages.typescript.ModuleKind.ESNext,moduleResolution:A.languages.typescript.ModuleResolutionKind.NodeJs,jsx:A.languages.typescript.JsxEmit.Preserve,skipLibCheck:!0,skipDefaultLibCheck:!0})};(0,Y.xx)(e)&&t();const n=e.onDidFocusEditorWidget((()=>{(0,Y.MX)(e)&&t()}));return()=>{n.dispose()}}),[U,k,Z,ye]),(0,u.useEffect)((()=>{const e=ue.current;if("brick_next_yaml"===Z&&e){const t=e.getModel(),n=e.onMouseDown((function(e){var n,i;const s=ce.current;(null!==(n=null==s||null===(i=s.getRanges)||void 0===i?void 0:i.call(s))&&void 0!==n?n:[]).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)&&T(t.getValueInRange(n))}))})),i=e.onMouseMove((function(e){const t=ce.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()}}}),[Z,T,fe,G]),(0,u.useEffect)((()=>{const e=ue.current;if(!e||!le.current||"fit-content"!==ke.current)return;const t=e.onDidContentSizeChange((t=>{if(!se&&t.contentHeightChanged){const n=bn(t.contentHeight,Q,ee);n!==he.current.height&&(he.current.height=n,e.layout(he.current))}})),n=bn(e.getContentHeight(),Q,ee);return n!==he.current.height&&(he.current.height=n,e.layout(he.current)),()=>{t.dispose()}}),[ee,Q,se]);const we=(0,u.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,W.AR)(e.uri);A.editor.getModel(t).setValue(i);const r=e.getOffsetAt(new A.Position(s.startLineNumber,s.endColumn));if(O.b.getInstance(oe).updateState({content:i,range:n,offset:r}),!F)return;const o=await A.languages.typescript.getJavaScriptWorker(),a=await o(t),l=(await a.getSemanticDiagnostics(t.toString())).map((t=>{var n;const i=r+(null!==(n=t.start)&&void 0!==n?n:0),s=e.getPositionAt(i);return{startLineNumber:s.lineNumber,startColumn:s.column,endLineNumber:s.lineNumber,endColumn:s.column+t.length,message:t.messageText,severity:A.MarkerSeverity.Warning}}));A.editor.setModelMarkers(e,"semantic_validate",l)}}}),[oe]);(0,u.useEffect)((()=>{if(!ue.current)return;const e=ue.current.getModel(),t=e.onDidChangeContent((async t=>{(0,L.J)(oe),["brick_next_yaml"].includes(Z)&&we(e,ue.current.getPosition()),t.isFlush||R(e.getValue())}));return()=>{t.dispose()}}),[R,oe,Z,we]),(0,u.useEffect)((()=>{if(se){const e=t=>{"Escape"!==t.key&&"Esc"!==t.key||(window.removeEventListener("keydown",e),re(!1))};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}}}),[se]),(0,u.useEffect)((()=>{if(!ue.current&&!z)return;const e=new I.j(z,ue.current,be?"rgba(174,174,175,0.4)":"rgba(89,89,89,0.4)");return()=>{e.dispose()}}),[z,be]);const Me=(0,u.useCallback)((()=>{if(ue.current){const e=ue.current.getModel();Et(e.getValue()).then((()=>St({type:"success",message:ae(N.K.COPY_SUCCESS)}))).catch((()=>St({type:"error",message:ae(N.K.COPY_FAILED)})))}}),[ae]),xe=(0,u.useCallback)((()=>{re(!se)}),[se]);return(0,u.useEffect)((()=>{const e=ue.current;if(!e||"brick_next_yaml"!==Z)return;let t=!1;const n=(0,C.debounce)((async()=>{var n;const i=await(0,V.K)();if(t)return;const{lintMarkers:s,lintDecorations:r}=await i.lint({source:e.getValue(),links:m,markers:d}),o=e.getModel();!t&&o&&(A.editor.setModelMarkers(o,Wt,s.map((e=>{let{start:t,end:n,message:i,severity:s,code:r}=e;const a=o.getPositionAt(t),l=o.getPositionAt(n);return{startLineNumber:a.lineNumber,startColumn:a.column,endLineNumber:l.lineNumber,endColumn:l.column,severity:A.MarkerSeverity[s],message:i,code:r}}))),null===(n=ce.current)||void 0===n||n.set(r.map((e=>{let{start:t,end:n,options:i}=e;return{range:A.Range.fromPositions(o.getPositionAt(t),o.getPositionAt(n)),options:i}}))))}),200),i=e.onDidChangeModelContent(n);return n(),()=>{t=!0,i.dispose(),A.editor.setModelMarkers(e.getModel(),Wt,[])}}),[Z,m,d,G,oe]),(0,u.useEffect)((()=>{var e;const t=null===(e=ue.current)||void 0===e?void 0:e.getModel();if(t&&null!=f&&f.length)return A.editor.setModelMarkers(t,Bt,f.map((e=>{let{severity:t,...n}=e;return{...n,severity:A.MarkerSeverity[t]}}))),()=>{A.editor.setModelMarkers(t,Bt,[])}}),[f]),(0,u.useEffect)((()=>{const e=ue.current;if(!e||!ie)return;let t=!1;const n=(0,C.debounce)((async()=>{const n=await(0,D.n)();if(t)return;const{markers:i}=await n.spellCheck({source:e.getValue(),knownWords:J}),s=e.getModel();!t&&s&&A.editor.setModelMarkers(s,Lt,i.map((e=>{let{start:t,end:n,message:i,severity:r}=e;const o=s.getPositionAt(t),a=s.getPositionAt(n);return{startLineNumber:o.lineNumber,startColumn:o.column,endLineNumber:a.lineNumber,endColumn:a.column,severity:A.MarkerSeverity[r],message:i}})))}),200),i=e.onDidChangeModelContent(n);return n(),()=>{t=!0,i.dispose(),A.editor.setModelMarkers(e.getModel(),Lt,[])}}),[ie,J]),h().createElement("div",{className:P()("code-editor-wrapper",{expanded:se,error:"error"===_})},h().createElement("div",{ref:le,style:{height:se?"100%":me,width:se?"100%":de,overflow:se?"scroll":""}}),h().createElement("div",{className:"toolbar-wrapper"},h().createElement("div",{className:"toolbar sticky"},w&&h().createElement(xt,{content:ae(N.K.COPY)},h().createElement(Ct,{className:"copy-icon",icon:"copy",lib:"antd",theme:"outlined",onClick:Me})),y&&h().createElement(xt,{content:ae(se?N.K.COLLAPSE:N.K.EXPAND)},h().createElement(Ct,{className:"expand-icon",icon:se?"compress":"expand",lib:"antd",theme:"outlined",onClick:xe})))))}function An(e,t,n){return yn(Math.min(n,Math.max(t,e.split("\n").length)))}function bn(e,t,n){let i=e;return(e-E.Vu)%E.fE==0&&(i=e+E.lP),Math.min(yn(n),Math.max(i,yn(t)))}function yn(e){return e*E.fE+E.lP+E.Vu}gt=fn,({e:[J,U,X,$,Z,G,Q,ee,te,ne,ie,se,re,oe,ae,le,ce,ue,he,de,ge,me,pe,ke,fe,ve,Ae,be,ye,we,Me,xe,Ce,Ee,Se,Le,We,Be,Ne,ze,Pe,_e,Re,Oe,Ie,Ve,De,Te,Fe,Ke,He,Ye,qe,je,Je,Ue,Xe,$e,Ze,Ge,Qe,et,tt,nt,it,st,rt,ot,at,lt,ct,ut],c:[Nt,j]}=(0,c.A)(gt,[bt("vs.code-editor",{shadowOptions:!1})],[[yt(),1,"name"],[yt(),1,"label"],[yt(),1,"value"],[yt(),1,"language"],[yt(),1,"theme"],[yt({type:Boolean}),1,"required"],[yt({type:Boolean}),1,"readOnly"],[yt(),1,"automaticLayout"],[yt({type:Number}),1,"minLines"],[yt({attribute:!1}),1,"completers"],[yt({attribute:!1}),1,"advancedCompleters"],[yt({attribute:!1}),1,"markers"],[yt({attribute:!1}),1,"links"],[yt({type:Number}),1,"maxLines"],[yt({attribute:!1}),1,"height"],[yt(),1,"message"],[yt(),1,"placeholder"],[yt({type:Boolean}),1,"showExpandButton"],[yt(),1,"lineNumbers"],[yt({attribute:!1}),1,"tokenConfig"],[yt({type:Boolean}),1,"customValidationInBrickNextYaml"],[yt({type:Boolean}),1,"showCopyButton"],[yt({type:Boolean}),1,"glyphMargin"],[yt({attribute:!1}),1,"extraLibs"],[yt({attribute:!1}),1,"extraMarkers"],[yt({type:Boolean}),1,"fixedOverflowWidgets"],[yt({type:Boolean}),1,"spellCheck"],[yt({attribute:!1}),1,"knownWords"],[yt({type:Boolean}),1,"domLibsEnabled"],[yt(),1,"uri"],[wt({type:"code.change"}),1,"codeChange",e=>(0,l.A)(cn,e),(e,t)=>(0,a.A)(cn,e,t)],[wt({type:"user.input"}),1,"userInput",e=>(0,l.A)(hn,e),(e,t)=>(0,a.A)(hn,e,t)],[wt({type:"token.click"}),1,"tokenClickEvent",e=>(0,l.A)(mn,e),(e,t)=>(0,a.A)(mn,e,t)]],0,(e=>kn.has((0,r.A)(e))),v.N)),j()}}]);
2
+ //# sourceMappingURL=9384.780670c6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/9384.780670c6.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 { getRuntime } from \"@next-core/runtime\";\nimport { HttpAbortError } from \"@next-core/http\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"@next-bricks/form/form-item\";\nimport * as monaco from \"monaco-editor\";\nimport {\n initializeTokensProvider,\n languages as textmateLanguages,\n} from \"@next-shared/monaco-textmate\";\nimport \"@next-shared/monaco-textmate/workers.js\";\nimport tmVsLight from \"@next-shared/monaco-textmate/themes/light-modern.json\";\nimport tmVsDark from \"@next-shared/monaco-textmate/themes/dark-modern.json\";\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 {\n AdvancedCompleterMap,\n ExtraLib,\n type ExtraMarker,\n type MixedCompleter,\n} from \"./interfaces.js\";\nimport { brickNextYAMLProviderCompletionItems } from \"./utils/brickNextYaml.js\";\nimport { Level } from \"./utils/constants.js\";\nimport { setEditorId } from \"./utils/editorId.js\";\nimport {\n getEmbeddedJavascriptUri,\n getBrickYamlBuiltInDeclare,\n} from \"./utils/jsSuggestInBrickYaml.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 {\n MonacoCopilotProvider,\n SUPPORTED_LANGUAGES,\n} from \"@next-shared/monaco-copilot\";\nimport { AiopsBaseApi_openaiChat } from \"@next-api-sdk/llm-sdk\";\nimport \"./index.css\";\nimport { EmbeddedModelContext } from \"./utils/embeddedModelState.js\";\nimport { PlaceholderContentWidget } from \"./widget/Placeholder.js\";\nimport { getRemoteYamlLinterWorker } from \"./workers/yamlLinter.js\";\nimport { getRemoteSpellCheckWorker } from \"./workers/spellCheckRemoteWorker.js\";\nimport { register as registerCel } from \"./languages/cel.js\";\nimport { register as registerCelYaml } from \"./languages/cel-yaml.js\";\nimport { register as registerCelStr } from \"./languages/cel-str.js\";\nimport {\n provideEmbeddedCelCompletionItems,\n celCommonCompletionProviderFactory,\n celSpecificCompletionProviderFactory,\n} from \"./utils/celCompletionProvider.js\";\nimport {\n disposeEditor,\n isCurrentEditor,\n switchEditor,\n} from \"./utils/EditorService.js\";\nimport { setExtraLibs } from \"./utils/setExtraLibs.js\";\n\ninitializeReactI18n(NS, locales);\n\nmonaco.editor.defineTheme(\n \"tm-vs-light\",\n tmVsLight as monaco.editor.IStandaloneThemeData\n);\nmonaco.editor.defineTheme(\n \"tm-vs-dark\",\n tmVsDark as monaco.editor.IStandaloneThemeData\n);\n\nconst TEXTMATE_THEMES = [\"tm-vs-light\", \"tm-vs-dark\"];\nconst DARK_THEMES = [\"vs-dark\", \"hc-black\", \"tm-vs-dark\"];\n\nregisterCel(monaco);\nregisterCelYaml(monaco);\nregisterCelStr(monaco);\n\nconst EMBEDDED_CEL = [\"cel_yaml\", \"cel_str\"];\nconst CEL_FAMILY = [\"cel\", ...EMBEDDED_CEL];\nfor (const lang of EMBEDDED_CEL) {\n monaco.languages.registerCompletionItemProvider(lang, {\n triggerCharacters: [\"<\"],\n provideCompletionItems: provideEmbeddedCelCompletionItems,\n });\n}\n\nfor (const lang of CEL_FAMILY) {\n monaco.languages.registerCompletionItemProvider(\n lang,\n celCommonCompletionProviderFactory(lang)\n );\n}\n\n// istanbul ignore next\nconst { enabled: copilotEnabled, ...copilotOptions } =\n (getRuntime()?.getMiscSettings().globalMonacoEditorCopilotOptions ?? {}) as {\n enabled?: boolean;\n model?: string;\n debounce?: number;\n timeout?: number;\n };\n\n// istanbul ignore next\nif (copilotEnabled) {\n monaco.languages.registerInlineCompletionsProvider(\n SUPPORTED_LANGUAGES,\n new MonacoCopilotProvider({\n ...copilotOptions,\n async request({ model, temperature, system, prompt, signal }) {\n const response = await AiopsBaseApi_openaiChat(\n {\n model,\n temperature,\n enableSensitiveWordsFilter: false,\n stream: false,\n messages: [\n ...(system ? [{ role: \"system\", content: system }] : []),\n { role: \"user\", content: prompt },\n ],\n },\n {\n signal,\n interceptorParams: {\n ignoreLoadingBar: true,\n },\n }\n );\n return response.choices?.[0]?.message?.content?.trim();\n },\n HttpAbortError,\n })\n );\n}\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\nconst SPELL_CHECK = \"spell_check\";\nconst BRICK_NEXT_YAML_LINT = \"brick_next_yaml_lint\";\nconst EXTRA_MARKERS = \"extra_markers\";\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 | MixedCompleter[];\n extraLibs?: ExtraLib[];\n extraMarkers?: ExtraMarker[];\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 fixedOverflowWidgets?: boolean;\n spellCheck?: boolean;\n knownWords?: string[];\n domLibsEnabled?: boolean;\n uri?: string;\n}\n\nexport type { ExtraLib, ExtraMarker };\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 /**\n * 仅对 language 为 brick_next_yaml 有效,设置第一层属性名的自动补全。\n */\n @property({\n attribute: false,\n })\n accessor completers: monaco.languages.CompletionItem[] | undefined;\n\n /**\n * 高级自动补全配置。\n * - 设置为键值对时,仅对 language 为 brick_next_yaml 有效,设置任意的自动补全;\n * - 设置为数组时,当前仅对 language 为 cel 有效。\n * 未来将统一改为数组格式,废弃键值对格式的配置。\n */\n @property({\n attribute: false,\n })\n accessor advancedCompleters:\n | AdvancedCompleterMap\n | MixedCompleter[]\n | 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 * 额外声明的 lib 库\n */\n @property({\n attribute: false,\n })\n accessor extraLibs: ExtraLib[] | undefined;\n\n @property({\n attribute: false,\n })\n accessor extraMarkers: ExtraMarker[] | undefined;\n\n /**\n * @default true\n */\n @property({ type: Boolean })\n accessor fixedOverflowWidgets: boolean | undefined;\n\n /**\n * 是否启用英语拼写检查\n * @default true\n */\n @property({ type: Boolean })\n accessor spellCheck: boolean | undefined;\n\n /**\n * 启用英语拼写检查时,除系统设置的词汇表外,指定其他的已知单词(小写)。\n */\n @property({ attribute: false })\n accessor knownWords: string[] | undefined;\n\n /**\n * 是否启用 DOM 相关接口的自动提示。\n */\n @property({ type: Boolean })\n accessor domLibsEnabled: boolean | undefined;\n\n @property()\n accessor uri: string | 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 extraMarkers={this.extraMarkers}\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 fixedOverflowWidgets={this.fixedOverflowWidgets}\n spellCheck={this.spellCheck}\n knownWords={this.knownWords}\n domLibsEnabled={this.domLibsEnabled}\n uri={this.uri}\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 extraMarkers,\n tokenConfig,\n showExpandButton,\n showCopyButton = true,\n lineNumbers = \"on\",\n glyphMargin = false,\n placeholder,\n validateState,\n onChange,\n // onUserInput,\n onTokenClick,\n customValidationInBrickNextYaml,\n fixedOverflowWidgets: _fixedOverflowWidgets,\n spellCheck: _spellCheck,\n knownWords,\n domLibsEnabled,\n uri,\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 fixedOverflowWidgets = _fixedOverflowWidgets ?? true;\n const spellCheck = _spellCheck ?? true;\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 [actualWidth, setActualWidth] = useState<string | number>();\n const [actualHeight, setActualHeight] = useState<string | number>();\n // `automaticLayout` should never change\n const automaticLayoutRef = useRef(automaticLayout);\n const systemTheme = useCurrentTheme();\n\n const useTextmateTheme = textmateLanguages.includes(language);\n const computedTheme = useMemo(() => {\n const candidateTheme =\n theme === \"auto\"\n ? systemTheme === \"dark\" || systemTheme === \"dark-v2\"\n ? \"vs-dark\"\n : \"vs\"\n : theme;\n if (useTextmateTheme && !TEXTMATE_THEMES.includes(candidateTheme)) {\n return DARK_THEMES.includes(candidateTheme)\n ? \"tm-vs-dark\"\n : \"tm-vs-light\";\n }\n return candidateTheme;\n }, [systemTheme, theme, useTextmateTheme]);\n const isDarkTheme = DARK_THEMES.includes(computedTheme);\n\n useEffect(() => {\n if (TEXTMATE_THEMES.includes(computedTheme)) {\n return;\n }\n const lineHighlightBackground = isDarkTheme ? \"#FFFFFF0F\" : \"#0000000A\";\n monaco.editor.defineTheme(\"custom-theme\", {\n base: computedTheme as \"vs-dark\" | \"vs\",\n inherit: true,\n rules: [],\n colors: {\n \"editor.lineHighlightBackground\": `${lineHighlightBackground}`,\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 }, [computedTheme, isDarkTheme]);\n\n useEffect(() => {\n monaco.editor.setTheme(computedTheme);\n }, [computedTheme]);\n\n useEffect(() => {\n if (editorRef.current) {\n const currentModel = editorRef.current.getModel()!;\n monaco.editor.setModelLanguage(currentModel, language);\n }\n initializeTokensProvider(language);\n }, [language]);\n\n useEffect(() => {\n if (language === \"brick_next_yaml\") {\n const provideCompletionItems = brickNextYAMLProviderCompletionItems(\n completers,\n Array.isArray(advancedCompleters) ? undefined : 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, workerId, tokenConfig]);\n\n useEffect(() => {\n if (\n Array.isArray(advancedCompleters) &&\n advancedCompleters.length > 0 &&\n CEL_FAMILY.includes(language)\n ) {\n const disposable = monaco.languages.registerCompletionItemProvider(\n language,\n celSpecificCompletionProviderFactory(\n language,\n workerId,\n advancedCompleters\n )\n );\n return () => {\n disposable.dispose();\n };\n }\n }, [language, advancedCompleters, workerId]);\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 }\n }\n }, [value]);\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 // istanbul ignore next: compatibility\n const newWidth = entry.contentBoxSize\n ? entry.contentBoxSize[0]\n ? entry.contentBoxSize[0].inlineSize\n : (entry.contentBoxSize as unknown as ResizeObserverSize)\n .inlineSize\n : entry.contentRect.width;\n // istanbul ignore next: compatibility\n const newHeight = entry.contentBoxSize\n ? entry.contentBoxSize[0]\n ? entry.contentBoxSize[0].blockSize\n : (entry.contentBoxSize as unknown as ResizeObserverSize)\n .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((entries): void => {\n for (const entry of entries) {\n if (entry.target === container) {\n // istanbul ignore next: compatibility\n const newWidth = entry.contentBoxSize\n ? entry.contentBoxSize[0]\n ? entry.contentBoxSize[0].inlineSize\n : (entry.contentBoxSize as unknown as ResizeObserverSize)\n .inlineSize\n : entry.contentRect.width;\n setActualWidth(newWidth);\n\n // istanbul ignore next: compatibility\n const newHeight = entry.contentBoxSize\n ? entry.contentBoxSize[0]\n ? entry.contentBoxSize[0].blockSize\n : (entry.contentBoxSize as unknown as ResizeObserverSize)\n .blockSize\n : entry.contentRect.height;\n setActualHeight(newHeight);\n }\n }\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 lineNumbersMinChars: expanded ? 5 : 3,\n });\n }, [readOnly, expanded]);\n\n useEffect(() => {\n if (editorRef.current || !containerRef.current) {\n return;\n }\n const model = monaco.editor.createModel(\n value,\n language,\n uri ? monaco.Uri.parse(uri) : undefined\n );\n let embeddedModel: monaco.editor.ITextModel | undefined;\n if (language === \"brick_next_yaml\") {\n // 注册嵌套的 model, language 为 js\n const embeddedUri = getEmbeddedJavascriptUri(model.uri);\n embeddedModel = monaco.editor.createModel(\n value,\n \"javascript\",\n embeddedUri\n );\n monaco.languages.typescript.javascriptDefaults.addExtraLib(\n getBrickYamlBuiltInDeclare(),\n model.uri.toString() + \"d.ts\"\n );\n }\n\n const editor = (editorRef.current = monaco.editor.create(\n containerRef.current,\n {\n extraEditorClassName: \"monaco-editor-v3\",\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,\n lineNumbers: lineNumbers,\n lineNumbersMinChars: 3,\n 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\n decorationsCollection.current =\n editorRef.current.createDecorationsCollection();\n\n switchEditor(editor);\n\n return () => {\n model.dispose();\n editor.dispose();\n embeddedModel?.dispose();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const languageDefaults =\n language === \"typescript\" ? \"typescriptDefaults\" : \"javascriptDefaults\";\n\n useEffect(() => {\n if (\n language === \"javascript\" ||\n language === \"typescript\" ||\n language === \"brick_next_yaml\"\n ) {\n monaco.languages.typescript[languageDefaults].setCompilerOptions({\n allowNonTsExtensions: true,\n lib: domLibsEnabled ? undefined : [\"esnext\"],\n target: monaco.languages.typescript.ScriptTarget.ESNext,\n module: monaco.languages.typescript.ModuleKind.ESNext,\n jsx: monaco.languages.typescript.JsxEmit.Preserve,\n skipLibCheck: true,\n skipDefaultLibCheck: true,\n });\n }\n }, [language, domLibsEnabled, languageDefaults]);\n\n useEffect(() => {\n const editor = editorRef.current;\n if (!editor) {\n return;\n }\n return () => {\n disposeEditor(editor);\n };\n }, []);\n\n useEffect(() => {\n const editor = editorRef.current;\n if (!editor) {\n return;\n }\n\n const setupLanguageService = () => {\n setExtraLibs(extraLibs, { languageDefaults });\n\n if (\n language === \"javascript\" ||\n language === \"typescript\" ||\n language === \"brick_next_yaml\"\n ) {\n monaco.languages.typescript[languageDefaults].setCompilerOptions({\n allowNonTsExtensions: true,\n lib: domLibsEnabled ? undefined : [\"esnext\"],\n target: monaco.languages.typescript.ScriptTarget.ESNext,\n module: monaco.languages.typescript.ModuleKind.ESNext,\n moduleResolution:\n monaco.languages.typescript.ModuleResolutionKind.NodeJs,\n jsx: monaco.languages.typescript.JsxEmit.Preserve,\n skipLibCheck: true,\n skipDefaultLibCheck: true,\n });\n }\n };\n\n if (isCurrentEditor(editor)) {\n setupLanguageService();\n }\n\n const disposable = editor.onDidFocusEditorWidget(() => {\n // Set language service for this particular editor instance\n if (switchEditor(editor)) {\n setupLanguageService();\n }\n });\n return () => {\n disposable.dispose();\n };\n }, [domLibsEnabled, extraLibs, language, languageDefaults]);\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 (e) => {\n setEditorId(workerId);\n\n if ([\"brick_next_yaml\"].includes(language)) {\n embeddedModelProcessor(currentModel, editorRef.current!.getPosition()!);\n // debounceParse();\n }\n if (!e.isFlush) {\n onChange(currentModel.getValue());\n }\n });\n return () => {\n listener.dispose();\n };\n }, [\n /* debounceParse, */ onChange,\n workerId,\n language,\n embeddedModelProcessor,\n ]);\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 if (!editorRef.current && !placeholder) return;\n const placeholderWidget = new PlaceholderContentWidget(\n placeholder!,\n editorRef.current!,\n isDarkTheme ? \"rgba(174,174,175,0.4)\" : \"rgba(89,89,89,0.4)\"\n );\n\n return () => {\n placeholderWidget.dispose();\n };\n }, [placeholder, isDarkTheme]);\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 // istanbul ignore next\n useEffect(() => {\n const editor = editorRef.current;\n if (!(editor && language === \"brick_next_yaml\")) {\n return;\n }\n\n let ignore = false;\n const handleChange = async () => {\n const worker = await getRemoteYamlLinterWorker();\n if (ignore) {\n return;\n }\n const { lintMarkers, lintDecorations } = await worker.lint({\n source: editor.getValue(),\n links,\n markers,\n });\n const model = editor.getModel();\n if (ignore || !model) {\n return;\n }\n monaco.editor.setModelMarkers(\n model,\n BRICK_NEXT_YAML_LINT,\n lintMarkers.map(({ start, end, message, severity, code }) => {\n const startPos = model.getPositionAt(start);\n const endPos = model.getPositionAt(end);\n return {\n startLineNumber: startPos.lineNumber,\n startColumn: startPos.column,\n endLineNumber: endPos.lineNumber,\n endColumn: endPos.column,\n severity: monaco.MarkerSeverity[severity],\n message,\n code: code as monaco.editor.IMarkerData[\"code\"],\n };\n })\n );\n decorationsCollection.current?.set(\n lintDecorations.map(({ start, end, options }) => ({\n range: monaco.Range.fromPositions(\n model.getPositionAt(start),\n model.getPositionAt(end)\n ),\n options,\n }))\n );\n };\n const debounceChange = debounce(handleChange, 200);\n const change = editor.onDidChangeModelContent(debounceChange);\n debounceChange();\n\n return () => {\n ignore = true;\n change.dispose();\n monaco.editor.setModelMarkers(\n editor.getModel()!,\n BRICK_NEXT_YAML_LINT,\n []\n );\n };\n }, [language, links, markers, theme, workerId]);\n\n useEffect(() => {\n const model = editorRef.current?.getModel();\n if (!model || !extraMarkers?.length) {\n return;\n }\n monaco.editor.setModelMarkers(\n model,\n EXTRA_MARKERS,\n extraMarkers.map(({ severity, ...rest }) => ({\n ...rest,\n severity: monaco.MarkerSeverity[severity],\n }))\n );\n return () => {\n monaco.editor.setModelMarkers(model, EXTRA_MARKERS, []);\n };\n }, [extraMarkers]);\n\n // istanbul ignore next\n useEffect(() => {\n const editor = editorRef.current;\n if (!editor || !spellCheck) {\n return;\n }\n\n let ignore = false;\n const handleChange = async () => {\n const worker = await getRemoteSpellCheckWorker();\n if (ignore) {\n return;\n }\n const { markers: spellCheckMarkers } = await worker.spellCheck({\n source: editor.getValue(),\n knownWords,\n });\n const model = editor.getModel();\n if (ignore || !model) {\n return;\n }\n monaco.editor.setModelMarkers(\n model,\n SPELL_CHECK,\n spellCheckMarkers.map(({ start, end, message, severity }) => {\n const startPos = model.getPositionAt(start);\n const endPos = model.getPositionAt(end);\n return {\n startLineNumber: startPos.lineNumber,\n startColumn: startPos.column,\n endLineNumber: endPos.lineNumber,\n endColumn: endPos.column,\n severity: monaco.MarkerSeverity[severity],\n message,\n };\n })\n );\n };\n const debounceChange = debounce(handleChange, 200);\n const change = editor.onDidChangeModelContent(debounceChange);\n debounceChange();\n\n return () => {\n ignore = true;\n change.dispose();\n monaco.editor.setModelMarkers(editor.getModel()!, SPELL_CHECK, []);\n };\n }, [spellCheck, knownWords]);\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 width: expanded ? \"100%\" : actualWidth,\n overflow: expanded ? \"scroll\" : \"\",\n }}\n />\n <div className=\"toolbar-wrapper\">\n <div className=\"toolbar sticky\">\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 </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","monaco","defineTheme","tmVsLight","tmVsDark","TEXTMATE_THEMES","DARK_THEMES","registerCel","registerCelYaml","registerCelStr","EMBEDDED_CEL","CEL_FAMILY","lang","registerCompletionItemProvider","triggerCharacters","provideCompletionItems","provideEmbeddedCelCompletionItems","celCommonCompletionProviderFactory","enabled","copilotEnabled","copilotOptions","_getRuntime$getMiscSe","_getRuntime","getRuntime","getMiscSettings","globalMonacoEditorCopilotOptions","registerInlineCompletionsProvider","SUPPORTED_LANGUAGES","MonacoCopilotProvider","request","_ref","_response$choices","model","temperature","system","prompt","signal","AiopsBaseApi_openaiChat","enableSensitiveWordsFilter","stream","messages","role","content","interceptorParams","ignoreLoadingBar","choices","message","trim","HttpAbortError","defineElement","property","event","createDecorators","WrappedFormItem","wrapBrick","WrappedTooltip","WrappedIcon","copyToClipboard","unwrapProvider","showNotification","SPELL_CHECK","BRICK_NEXT_YAML_LINT","EXTRA_MARKERS","_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","_Z","_a","_b","_c","_d","_e","_CodeEditor_brand","WeakSet","_f","_handleChange","_handleUserInput","_g","_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_extraMarkers","_init_extra_extraMarkers","_init_fixedOverflowWidgets","_init_extra_fixedOverflowWidgets","_init_spellCheck","_init_extra_spellCheck","_init_knownWords","_init_extra_knownWords","_init_domLibsEnabled","_init_extra_domLibsEnabled","_init_uri","_init_extra_uri","_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","placeholder","showExpandButton","lineNumbers","tokenConfig","customValidationInBrickNextYaml","showCopyButton","glyphMargin","extraLibs","extraMarkers","fixedOverflowWidgets","spellCheck","knownWords","domLibsEnabled","uri","connectedCallback","style","display","super","render","React","exportparts","curElement","formElement","helpBrick","labelBrick","notRender","validator","CodeEditorComponent","validateState","onUserInput","onTokenClick","_ref2","_value","_language","_theme","_minLines","_maxLines","_height","_fixedOverflowWidgets","_spellCheck","Infinity","expanded","setExpanded","useState","workerId","useMemo","uniqueId","t","useTranslation","containerRef","useRef","decorationsCollection","editorRef","size","width","getContentHeightByCode","actualWidth","setActualWidth","actualHeight","setActualHeight","automaticLayoutRef","systemTheme","useCurrentTheme","useTextmateTheme","textmateLanguages","includes","computedTheme","candidateTheme","isDarkTheme","useEffect","lineHighlightBackground","base","inherit","rules","colors","setTheme","current","currentModel","getModel","setModelLanguage","initializeTokensProvider","brickNextYAMLProviderCompletionItems","Array","isArray","undefined","monacoProviderRef","dispose","length","disposable","celSpecificCompletionProviderFactory","editor","getValue","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","updateOptions","lineNumbersMinChars","createModel","parse","embeddedModel","embeddedUri","getEmbeddedJavascriptUri","typescript","javascriptDefaults","addExtraLib","getBrickYamlBuiltInDeclare","toString","create","extraEditorClassName","minimap","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","folding","suggest","insertMode","preview","quickSuggestions","strings","other","comments","renderLineHighlightOnlyWhenFocus","unicodeHighlight","ambiguousCharacters","createDecorationsCollection","switchEditor","_embeddedModel","languageDefaults","setCompilerOptions","allowNonTsExtensions","lib","ScriptTarget","ESNext","module","ModuleKind","jsx","JsxEmit","Preserve","skipLibCheck","skipDefaultLibCheck","disposeEditor","setupLanguageService","setExtraLibs","moduleResolution","ModuleResolutionKind","NodeJs","isCurrentEditor","onDidFocusEditorWidget","editorMouseDownEvent","onMouseDown","e","_decorations$getRange","_decorations$getRange2","decorations","getRanges","call","forEach","range","modKey","test","navigator","platform","position","containsPosition","getValueInRange","mouseOverEvent","onMouseMove","newDecorations","map","item","options","inlineClassName","equalsRange","set","listener","onDidContentSizeChange","contentHeightChanged","fixEditorHeightWithScrollBar","contentHeight","getContentHeight","embeddedModelProcessor","useCallback","async","setModelMarkers","prefixEvaluateOperator","findPreviousMatch","suffixEvaluateOperator","findNextMatch","prefixEvaluateRange","suffixEvaluateRange","startLineNumber","endColumn","startColumn","newUri","offset","getOffsetAt","EmbeddedModelContext","getInstance","updateState","getWorker","getJavaScriptWorker","worker","semanticMarkers","getSemanticDiagnostics","_item$start","finalOffset","start","currentPosition","getPositionAt","lineNumber","column","endLineNumber","messageText","severity","Warning","onDidChangeContent","setEditorId","getPosition","isFlush","fn","key","window","removeEventListener","addEventListener","placeholderWidget","PlaceholderContentWidget","handleCopyIconClick","then","type","K","COPY_SUCCESS","catch","COPY_FAILED","handleExpandedClick","ignore","debounceChange","debounce","_decorationsCollectio","getRemoteYamlLinterWorker","lintMarkers","lintDecorations","lint","source","_ref3","end","code","startPos","endPos","_ref4","fromPositions","change","onDidChangeModelContent","_editorRef$current3","_ref5","rest","getRemoteSpellCheckWorker","spellCheckMarkers","_ref6","className","classNames","error","ref","overflow","COPY","icon","onClick","COLLAPSE","EXPAND","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],{72349:(e,t,n)=>{n.r(t),n.d(t,{CodeEditor:()=>Nt,CodeEditorComponent:()=>vn});var i=n(74635),s=n(70918),r=n(26902),o=n(5536),a=n(86121),l=n(70829),c=n(62740),u=n(18769),h=n.n(u),d=n(90870),g=n(49936),m=n(30981),p=n(29711),k=n(51921),f=n(41361),v=n(41757),A=n(62001),b=n(77921),y=(n(95621),n(18965)),w=n(98967),M=n(55310),C=n.n(M),x=(n(34419),n(20563)),E=n(99442),S=n(87380),L=n(64437),W=n(25559),B=n(69704),N=n(91507),z=n(53373),P=n.n(z),_=n(97714),R=n(72414),O=(n(73569),n(15601)),I=n(69235),V=n(64322),D=n(59817),T=n(97659),F=n(44143),K=n(48217),H=n(85021),Y=n(80817),q=n(76915);let j,J,U,X,$,Z,G,Q,ee,te,ne,ie,se,re,oe,ae,le,ce,ue,he,de,ge,me,pe,ke,fe,ve,Ae,be,ye,we,Me,Ce,xe,Ee,Se,Le,We,Be,Ne,ze,Pe,_e,Re,Oe,Ie,Ve,De,Te,Fe,Ke,He,Ye,qe,je,Je,Ue,Xe,$e,Ze,Ge,Qe,et,tt,nt,it,st,rt,ot,at,lt,ct,ut;var ht,dt,gt;(0,B.initializeReactI18n)(N.NS,N.I),A.editor.defineTheme("tm-vs-light",y),A.editor.defineTheme("tm-vs-dark",w);const mt=["tm-vs-light","tm-vs-dark"],pt=["vs-dark","hc-black","tm-vs-dark"];(0,T.kz)(A),(0,F.kz)(A),(0,K.kz)(A);const kt=["cel_yaml","cel_str"],ft=["cel",...kt];for(const e of kt)A.languages.registerCompletionItemProvider(e,{triggerCharacters:["<"],provideCompletionItems:H.ix});for(const e of ft)A.languages.registerCompletionItemProvider(e,(0,H.ZY)(e));const{enabled:vt,...At}=null!==(ht=null===(dt=(0,k.getRuntime)())||void 0===dt?void 0:dt.getMiscSettings().globalMonacoEditorCopilotOptions)&&void 0!==ht?ht:{};vt&&A.languages.registerInlineCompletionsProvider(_.F,new _.$({...At,async request(e){var t;let{model:n,temperature:i,system:s,prompt:r,signal:o}=e;return null===(t=(await(0,R.b)({model:n,temperature:i,enableSensitiveWordsFilter:!1,stream:!1,messages:[...s?[{role:"system",content:s}]:[],{role:"user",content:r}]},{signal:o,interceptorParams:{ignoreLoadingBar:!0}})).choices)||void 0===t||null===(t=t[0])||void 0===t||null===(t=t.message)||void 0===t||null===(t=t.content)||void 0===t?void 0:t.trim()},HttpAbortError:f.HttpAbortError}));const{defineElement:bt,property:yt,event:wt}=(0,d.createDecorators)(),Mt=(0,m.wrapBrick)("eo-form-item"),Ct=(0,m.wrapBrick)("eo-tooltip"),xt=(0,m.wrapBrick)("eo-icon"),Et=(0,g.unwrapProvider)("basic.copy-to-clipboard"),St=(0,g.unwrapProvider)("basic.show-notification"),Lt="spell_check",Wt="brick_next_yaml_lint",Bt="extra_markers";let Nt;var zt=new WeakMap,Pt=new WeakMap,_t=new WeakMap,Rt=new WeakMap,Ot=new WeakMap,It=new WeakMap,Vt=new WeakMap,Dt=new WeakMap,Tt=new WeakMap,Ft=new WeakMap,Kt=new WeakMap,Ht=new WeakMap,Yt=new WeakMap,qt=new WeakMap,jt=new WeakMap,Jt=new WeakMap,Ut=new WeakMap,Xt=new WeakMap,$t=new WeakMap,Zt=new WeakMap,Gt=new WeakMap,Qt=new WeakMap,en=new WeakMap,tn=new WeakMap,nn=new WeakMap,sn=new WeakMap,rn=new WeakMap,on=new WeakMap,an=new WeakMap,ln=new WeakMap,cn=new WeakMap,un=new WeakSet,hn=new WeakMap,dn=new WeakMap,gn=new WeakMap,mn=new WeakMap,pn=new WeakMap,kn=new WeakMap;class fn extends v.N{constructor(){super(...arguments),(0,i.A)(this,un),(0,s.A)(this,zt,J(this)),(0,s.A)(this,Pt,(U(this),X(this))),(0,s.A)(this,_t,($(this),Z(this))),(0,s.A)(this,Rt,(G(this),Q(this))),(0,s.A)(this,Ot,(ee(this),te(this))),(0,s.A)(this,It,(ne(this),ie(this))),(0,s.A)(this,Vt,(se(this),re(this))),(0,s.A)(this,Dt,(oe(this),ae(this))),(0,s.A)(this,Tt,(le(this),ce(this))),(0,s.A)(this,Ft,(ue(this),he(this))),(0,s.A)(this,Kt,(de(this),ge(this))),(0,s.A)(this,Ht,(me(this),pe(this))),(0,s.A)(this,Yt,(ke(this),fe(this))),(0,s.A)(this,qt,(ve(this),Ae(this))),(0,s.A)(this,jt,(be(this),ye(this))),(0,s.A)(this,Jt,(we(this),Me(this))),(0,s.A)(this,Ut,(Ce(this),xe(this))),(0,s.A)(this,Xt,(Ee(this),Se(this))),(0,s.A)(this,$t,(Le(this),We(this))),(0,s.A)(this,Zt,(Be(this),Ne(this))),(0,s.A)(this,Gt,(ze(this),Pe(this))),(0,s.A)(this,Qt,(_e(this),Re(this))),(0,s.A)(this,en,(Oe(this),Ie(this))),(0,s.A)(this,tn,(Ve(this),De(this))),(0,s.A)(this,nn,(Te(this),Fe(this))),(0,s.A)(this,sn,(Ke(this),He(this))),(0,s.A)(this,rn,(Ye(this),qe(this))),(0,s.A)(this,on,(je(this),Je(this))),(0,s.A)(this,an,(Ue(this),Xe(this))),(0,s.A)(this,ln,($e(this),Ze(this))),(0,s.A)(this,cn,(Ge(this),Qe(this))),(0,s.A)(this,hn,(nt(this),it(this))),(0,s.A)(this,dn,(ot(this),e=>{var t;this.value=e,null===(t=this.getFormElement())||void 0===t||t.formStore.onChange(this.name,e),(0,o.A)(un,this,et).emit(e)})),(0,s.A)(this,gn,(e=>{(0,o.A)(un,this,st).emit(e)})),(0,s.A)(this,mn,at(this)),(0,s.A)(this,pn,(ut(this),e=>{(0,o.A)(un,this,lt).emit(e)})),(0,s.A)(this,kn,(e=>{if("brick_next_yaml"===this.language||"yaml"===this.language)try{C().load(e)}catch{return"请填写正确的格式"}return""}))}get name(){return(0,l.A)(zt,this)}set name(e){(0,a.A)(zt,this,e)}get label(){return(0,l.A)(Pt,this)}set label(e){(0,a.A)(Pt,this,e)}get value(){return(0,l.A)(_t,this)}set value(e){(0,a.A)(_t,this,e)}get language(){return(0,l.A)(Rt,this)}set language(e){(0,a.A)(Rt,this,e)}get theme(){return(0,l.A)(Ot,this)}set theme(e){(0,a.A)(Ot,this,e)}get required(){return(0,l.A)(It,this)}set required(e){(0,a.A)(It,this,e)}get readOnly(){return(0,l.A)(Vt,this)}set readOnly(e){(0,a.A)(Vt,this,e)}get automaticLayout(){return(0,l.A)(Dt,this)}set automaticLayout(e){(0,a.A)(Dt,this,e)}get minLines(){return(0,l.A)(Tt,this)}set minLines(e){(0,a.A)(Tt,this,e)}get completers(){return(0,l.A)(Ft,this)}set completers(e){(0,a.A)(Ft,this,e)}get advancedCompleters(){return(0,l.A)(Kt,this)}set advancedCompleters(e){(0,a.A)(Kt,this,e)}get markers(){return(0,l.A)(Ht,this)}set markers(e){(0,a.A)(Ht,this,e)}get links(){return(0,l.A)(Yt,this)}set links(e){(0,a.A)(Yt,this,e)}get maxLines(){return(0,l.A)(qt,this)}set maxLines(e){(0,a.A)(qt,this,e)}get height(){return(0,l.A)(jt,this)}set height(e){(0,a.A)(jt,this,e)}get message(){return(0,l.A)(Jt,this)}set message(e){(0,a.A)(Jt,this,e)}get placeholder(){return(0,l.A)(Ut,this)}set placeholder(e){(0,a.A)(Ut,this,e)}get showExpandButton(){return(0,l.A)(Xt,this)}set showExpandButton(e){(0,a.A)(Xt,this,e)}get lineNumbers(){return(0,l.A)($t,this)}set lineNumbers(e){(0,a.A)($t,this,e)}get tokenConfig(){return(0,l.A)(Zt,this)}set tokenConfig(e){(0,a.A)(Zt,this,e)}get customValidationInBrickNextYaml(){return(0,l.A)(Gt,this)}set customValidationInBrickNextYaml(e){(0,a.A)(Gt,this,e)}get showCopyButton(){return(0,l.A)(Qt,this)}set showCopyButton(e){(0,a.A)(Qt,this,e)}get glyphMargin(){return(0,l.A)(en,this)}set glyphMargin(e){(0,a.A)(en,this,e)}get extraLibs(){return(0,l.A)(tn,this)}set extraLibs(e){(0,a.A)(tn,this,e)}get extraMarkers(){return(0,l.A)(nn,this)}set extraMarkers(e){(0,a.A)(nn,this,e)}get fixedOverflowWidgets(){return(0,l.A)(sn,this)}set fixedOverflowWidgets(e){(0,a.A)(sn,this,e)}get spellCheck(){return(0,l.A)(rn,this)}set spellCheck(e){(0,a.A)(rn,this,e)}get knownWords(){return(0,l.A)(on,this)}set knownWords(e){(0,a.A)(on,this,e)}get domLibsEnabled(){return(0,l.A)(an,this)}set domLibsEnabled(e){(0,a.A)(an,this,e)}get uri(){return(0,l.A)(ln,this)}set uri(e){(0,a.A)(ln,this,e)}connectedCallback(){this.style.display||(this.style.display="block"),super.connectedCallback()}render(){return h().createElement(Mt,{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,l.A)(kn,this)},h().createElement(vn,{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,extraMarkers:this.extraMarkers,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,l.A)(dn,this),onUserInput:(0,l.A)(gn,this),onTokenClick:(0,l.A)(pn,this),customValidationInBrickNextYaml:this.customValidationInBrickNextYaml,fixedOverflowWidgets:this.fixedOverflowWidgets,spellCheck:this.spellCheck,knownWords:this.knownWords,domLibsEnabled:this.domLibsEnabled,uri:this.uri}))}}function vn(e){let{value:t,language:n,theme:i,minLines:s,maxLines:r,height:o,automaticLayout:a,completers:l,advancedCompleters:c,markers:d,readOnly:g,links:m,extraLibs:k,extraMarkers:f,tokenConfig:v,showExpandButton:y,showCopyButton:w=!0,lineNumbers:M="on",glyphMargin:C=!1,placeholder:z,validateState:_,onChange:R,onTokenClick:T,customValidationInBrickNextYaml:F,fixedOverflowWidgets:K,spellCheck:j,knownWords:J,domLibsEnabled:U,uri:X}=e;const $=null!=t?t:"",Z=null!=n?n:"plaintext",G=null!=i?i:"auto",Q=null!=s?s:3,ee=null!=r?r:1/0,te=null!=o?o:500,ne=null==K||K,ie=null==j||j,[se,re]=(0,u.useState)(!1),oe=(0,u.useMemo)((()=>(0,x.uniqueId)("worker")),[]),{t:ae}=(0,B.useTranslation)(N.NS),le=(0,u.useRef)(null),ce=(0,u.useRef)(),ue=(0,u.useRef)(),he=(0,u.useRef)({width:300,height:An($,Q,ee)}),[de,ge]=(0,u.useState)(),[me,pe]=(0,u.useState)(),ke=(0,u.useRef)(a),fe=(0,p.useCurrentTheme)(),ve=b.e.includes(Z),Ae=(0,u.useMemo)((()=>{const e="auto"===G?"dark"===fe||"dark-v2"===fe?"vs-dark":"vs":G;return ve&&!mt.includes(e)?pt.includes(e)?"tm-vs-dark":"tm-vs-light":e}),[fe,G,ve]),be=pt.includes(Ae);(0,u.useEffect)((()=>{if(mt.includes(Ae))return;const e=be?"#FFFFFF0F":"#0000000A";A.editor.defineTheme("custom-theme",{base:Ae,inherit:!0,rules:[],colors:{"editor.lineHighlightBackground":`${e}`}}),A.editor.setTheme("custom-theme")}),[Ae,be]),(0,u.useEffect)((()=>{A.editor.setTheme(Ae)}),[Ae]),(0,u.useEffect)((()=>{if(ue.current){const e=ue.current.getModel();A.editor.setModelLanguage(e,Z)}(0,b.A)(Z)}),[Z]),(0,u.useEffect)((()=>{if("brick_next_yaml"===Z){const e=(0,S.v)(l,Array.isArray(c)?void 0:c,oe,v),t=A.languages.registerCompletionItemProvider("brick_next_yaml",{provideCompletionItems:e,triggerCharacters:[".",":","<"]});return()=>{t.dispose()}}}),[l,c,Z,oe,v]),(0,u.useEffect)((()=>{if(Array.isArray(c)&&c.length>0&&ft.includes(Z)){const e=A.languages.registerCompletionItemProvider(Z,(0,H.MY)(Z,oe,c));return()=>{e.dispose()}}}),[Z,c,oe]),(0,u.useEffect)((()=>{const e=ue.current;if(e){const t=e.getModel();null!=t&&t.getValue&&$!==t.getValue()&&t.setValue($)}}),[$]),(0,u.useLayoutEffect)((()=>{var e;if("fit-content"!==ke.current||!le.current)return;he.current.width=le.current.getBoundingClientRect().width,null===(e=ue.current)||void 0===e||e.layout(he.current);const t=new ResizeObserver((e=>{for(const n of e)if(n.target===le.current){const e=n.contentBoxSize?n.contentBoxSize[0]?n.contentBoxSize[0].inlineSize:n.contentBoxSize.inlineSize:n.contentRect.width,i=n.contentBoxSize?n.contentBoxSize[0]?n.contentBoxSize[0].blockSize:n.contentBoxSize.blockSize:n.contentRect.height;var t;(e!==he.current.width||se)&&(he.current.width=e,null===(t=ue.current)||void 0===t||t.layout({width:e,height:se?i:he.current.height}));break}}));return t.observe(le.current),()=>{t.disconnect()}}),[se]),(0,u.useLayoutEffect)((()=>{if("fit-container"!==ke.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}}(le.current);if(!e)return;const t=new ResizeObserver((t=>{for(const n of t)if(n.target===e){const e=n.contentBoxSize?n.contentBoxSize[0]?n.contentBoxSize[0].inlineSize:n.contentBoxSize.inlineSize:n.contentRect.width;ge(e);const t=n.contentBoxSize?n.contentBoxSize[0]?n.contentBoxSize[0].blockSize:n.contentBoxSize.blockSize:n.contentRect.height;pe(t)}}));return t.observe(e),()=>{t.disconnect()}}),[]),(0,u.useEffect)((()=>{"fit-container"!==ke.current&&"fit-content"!==ke.current&&pe(te)}),[te]),(0,u.useEffect)((()=>{ue.current&&ue.current.updateOptions({readOnly:g,lineNumbersMinChars:se?5:3})}),[g,se]),(0,u.useEffect)((()=>{if(ue.current||!le.current)return;const e=A.editor.createModel($,Z,X?A.Uri.parse(X):void 0);let t;if("brick_next_yaml"===Z){const n=(0,W.AR)(e.uri);t=A.editor.createModel($,"javascript",n),A.languages.typescript.javascriptDefaults.addExtraLib((0,W.Eh)(),e.uri.toString()+"d.ts")}const n=ue.current=A.editor.create(le.current,{extraEditorClassName:"monaco-editor-v3",model:e,minimap:{enabled:!1,showRegionSectionHeaders:!1,showMarkSectionHeaders:!1},scrollBeyondLastLine:!1,tabSize:2,insertSpaces:!0,automaticLayout:"fit-content"!==ke.current,fontSize:E.yU,lineHeight:E.fE,scrollbar:{horizontalScrollbarSize:E.lP,verticalScrollbarSize:E.lP,horizontalSliderSize:8,verticalSliderSize:8,alwaysConsumeMouseWheel:!1},padding:{top:E.Vu,bottom:"fit-content"==ke.current?void 0:E.Vu},overviewRulerBorder:!1,mouseWheelScrollSensitivity:.5,fixedOverflowWidgets:ne,lineNumbers:M,lineNumbersMinChars:3,glyphMargin:C,folding:"off"!==M,suggest:{insertMode:"insert",preview:!0},readOnly:g,quickSuggestions:{strings:!0,other:!0,comments:!0},renderLineHighlightOnlyWhenFocus:!0,unicodeHighlight:{ambiguousCharacters:!1}});return ce.current=ue.current.createDecorationsCollection(),(0,Y.MX)(n),()=>{var i;e.dispose(),n.dispose(),null===(i=t)||void 0===i||i.dispose()}}),[]);const ye="typescript"===Z?"typescriptDefaults":"javascriptDefaults";(0,u.useEffect)((()=>{"javascript"!==Z&&"typescript"!==Z&&"brick_next_yaml"!==Z||A.languages.typescript[ye].setCompilerOptions({allowNonTsExtensions:!0,lib:U?void 0:["esnext"],target:A.languages.typescript.ScriptTarget.ESNext,module:A.languages.typescript.ModuleKind.ESNext,jsx:A.languages.typescript.JsxEmit.Preserve,skipLibCheck:!0,skipDefaultLibCheck:!0})}),[Z,U,ye]),(0,u.useEffect)((()=>{const e=ue.current;if(e)return()=>{(0,Y.X2)(e)}}),[]),(0,u.useEffect)((()=>{const e=ue.current;if(!e)return;const t=()=>{(0,q.$)(k,{languageDefaults:ye}),"javascript"!==Z&&"typescript"!==Z&&"brick_next_yaml"!==Z||A.languages.typescript[ye].setCompilerOptions({allowNonTsExtensions:!0,lib:U?void 0:["esnext"],target:A.languages.typescript.ScriptTarget.ESNext,module:A.languages.typescript.ModuleKind.ESNext,jsx:A.languages.typescript.JsxEmit.Preserve,skipLibCheck:!0,skipDefaultLibCheck:!0})};(0,Y.xx)(e)&&t();const n=e.onDidFocusEditorWidget((()=>{(0,Y.MX)(e)&&t()}));return()=>{n.dispose()}}),[U,k,Z,ye]),(0,u.useEffect)((()=>{const e=ue.current;if("brick_next_yaml"===Z&&e){const t=e.getModel(),n=e.onMouseDown((function(e){var n,i;const s=ce.current;(null!==(n=null==s||null===(i=s.getRanges)||void 0===i?void 0:i.call(s))&&void 0!==n?n:[]).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)&&T(t.getValueInRange(n))}))})),i=e.onMouseMove((function(e){const t=ce.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()}}}),[Z,T,fe,G]),(0,u.useEffect)((()=>{const e=ue.current;if(!e||!le.current||"fit-content"!==ke.current)return;const t=e.onDidContentSizeChange((t=>{if(!se&&t.contentHeightChanged){const n=bn(t.contentHeight,Q,ee);n!==he.current.height&&(he.current.height=n,e.layout(he.current))}})),n=bn(e.getContentHeight(),Q,ee);return n!==he.current.height&&(he.current.height=n,e.layout(he.current)),()=>{t.dispose()}}),[ee,Q,se]);const we=(0,u.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,W.AR)(e.uri);A.editor.getModel(t).setValue(i);const r=e.getOffsetAt(new A.Position(s.startLineNumber,s.endColumn));if(O.b.getInstance(oe).updateState({content:i,range:n,offset:r}),!F)return;const o=await A.languages.typescript.getJavaScriptWorker(),a=await o(t),l=(await a.getSemanticDiagnostics(t.toString())).map((t=>{var n;const i=r+(null!==(n=t.start)&&void 0!==n?n:0),s=e.getPositionAt(i);return{startLineNumber:s.lineNumber,startColumn:s.column,endLineNumber:s.lineNumber,endColumn:s.column+t.length,message:t.messageText,severity:A.MarkerSeverity.Warning}}));A.editor.setModelMarkers(e,"semantic_validate",l)}}}),[oe]);(0,u.useEffect)((()=>{if(!ue.current)return;const e=ue.current.getModel(),t=e.onDidChangeContent((async t=>{(0,L.J)(oe),["brick_next_yaml"].includes(Z)&&we(e,ue.current.getPosition()),t.isFlush||R(e.getValue())}));return()=>{t.dispose()}}),[R,oe,Z,we]),(0,u.useEffect)((()=>{if(se){const e=t=>{"Escape"!==t.key&&"Esc"!==t.key||(window.removeEventListener("keydown",e),re(!1))};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}}}),[se]),(0,u.useEffect)((()=>{if(!ue.current&&!z)return;const e=new I.j(z,ue.current,be?"rgba(174,174,175,0.4)":"rgba(89,89,89,0.4)");return()=>{e.dispose()}}),[z,be]);const Me=(0,u.useCallback)((()=>{if(ue.current){const e=ue.current.getModel();Et(e.getValue()).then((()=>St({type:"success",message:ae(N.K.COPY_SUCCESS)}))).catch((()=>St({type:"error",message:ae(N.K.COPY_FAILED)})))}}),[ae]),Ce=(0,u.useCallback)((()=>{re(!se)}),[se]);return(0,u.useEffect)((()=>{const e=ue.current;if(!e||"brick_next_yaml"!==Z)return;let t=!1;const n=(0,x.debounce)((async()=>{var n;const i=await(0,V.K)();if(t)return;const{lintMarkers:s,lintDecorations:r}=await i.lint({source:e.getValue(),links:m,markers:d}),o=e.getModel();!t&&o&&(A.editor.setModelMarkers(o,Wt,s.map((e=>{let{start:t,end:n,message:i,severity:s,code:r}=e;const a=o.getPositionAt(t),l=o.getPositionAt(n);return{startLineNumber:a.lineNumber,startColumn:a.column,endLineNumber:l.lineNumber,endColumn:l.column,severity:A.MarkerSeverity[s],message:i,code:r}}))),null===(n=ce.current)||void 0===n||n.set(r.map((e=>{let{start:t,end:n,options:i}=e;return{range:A.Range.fromPositions(o.getPositionAt(t),o.getPositionAt(n)),options:i}}))))}),200),i=e.onDidChangeModelContent(n);return n(),()=>{t=!0,i.dispose(),A.editor.setModelMarkers(e.getModel(),Wt,[])}}),[Z,m,d,G,oe]),(0,u.useEffect)((()=>{var e;const t=null===(e=ue.current)||void 0===e?void 0:e.getModel();if(t&&null!=f&&f.length)return A.editor.setModelMarkers(t,Bt,f.map((e=>{let{severity:t,...n}=e;return{...n,severity:A.MarkerSeverity[t]}}))),()=>{A.editor.setModelMarkers(t,Bt,[])}}),[f]),(0,u.useEffect)((()=>{const e=ue.current;if(!e||!ie)return;let t=!1;const n=(0,x.debounce)((async()=>{const n=await(0,D.n)();if(t)return;const{markers:i}=await n.spellCheck({source:e.getValue(),knownWords:J}),s=e.getModel();!t&&s&&A.editor.setModelMarkers(s,Lt,i.map((e=>{let{start:t,end:n,message:i,severity:r}=e;const o=s.getPositionAt(t),a=s.getPositionAt(n);return{startLineNumber:o.lineNumber,startColumn:o.column,endLineNumber:a.lineNumber,endColumn:a.column,severity:A.MarkerSeverity[r],message:i}})))}),200),i=e.onDidChangeModelContent(n);return n(),()=>{t=!0,i.dispose(),A.editor.setModelMarkers(e.getModel(),Lt,[])}}),[ie,J]),h().createElement("div",{className:P()("code-editor-wrapper",{expanded:se,error:"error"===_})},h().createElement("div",{ref:le,style:{height:se?"100%":me,width:se?"100%":de,overflow:se?"scroll":""}}),h().createElement("div",{className:"toolbar-wrapper"},h().createElement("div",{className:"toolbar sticky"},w&&h().createElement(Ct,{content:ae(N.K.COPY)},h().createElement(xt,{className:"copy-icon",icon:"copy",lib:"antd",theme:"outlined",onClick:Me})),y&&h().createElement(Ct,{content:ae(se?N.K.COLLAPSE:N.K.EXPAND)},h().createElement(xt,{className:"expand-icon",icon:se?"compress":"expand",lib:"antd",theme:"outlined",onClick:Ce})))))}function An(e,t,n){return yn(Math.min(n,Math.max(t,e.split("\n").length)))}function bn(e,t,n){let i=e;return(e-E.Vu)%E.fE==0&&(i=e+E.lP),Math.min(yn(n),Math.max(i,yn(t)))}function yn(e){return e*E.fE+E.lP+E.Vu}gt=fn,({e:[J,U,X,$,Z,G,Q,ee,te,ne,ie,se,re,oe,ae,le,ce,ue,he,de,ge,me,pe,ke,fe,ve,Ae,be,ye,we,Me,Ce,xe,Ee,Se,Le,We,Be,Ne,ze,Pe,_e,Re,Oe,Ie,Ve,De,Te,Fe,Ke,He,Ye,qe,je,Je,Ue,Xe,$e,Ze,Ge,Qe,et,tt,nt,it,st,rt,ot,at,lt,ct,ut],c:[Nt,j]}=(0,c.A)(gt,[bt("vs.code-editor",{shadowOptions:!1})],[[yt(),1,"name"],[yt(),1,"label"],[yt(),1,"value"],[yt(),1,"language"],[yt(),1,"theme"],[yt({type:Boolean}),1,"required"],[yt({type:Boolean}),1,"readOnly"],[yt(),1,"automaticLayout"],[yt({type:Number}),1,"minLines"],[yt({attribute:!1}),1,"completers"],[yt({attribute:!1}),1,"advancedCompleters"],[yt({attribute:!1}),1,"markers"],[yt({attribute:!1}),1,"links"],[yt({type:Number}),1,"maxLines"],[yt({attribute:!1}),1,"height"],[yt(),1,"message"],[yt(),1,"placeholder"],[yt({type:Boolean}),1,"showExpandButton"],[yt(),1,"lineNumbers"],[yt({attribute:!1}),1,"tokenConfig"],[yt({type:Boolean}),1,"customValidationInBrickNextYaml"],[yt({type:Boolean}),1,"showCopyButton"],[yt({type:Boolean}),1,"glyphMargin"],[yt({attribute:!1}),1,"extraLibs"],[yt({attribute:!1}),1,"extraMarkers"],[yt({type:Boolean}),1,"fixedOverflowWidgets"],[yt({type:Boolean}),1,"spellCheck"],[yt({attribute:!1}),1,"knownWords"],[yt({type:Boolean}),1,"domLibsEnabled"],[yt(),1,"uri"],[wt({type:"code.change"}),1,"codeChange",e=>(0,l.A)(cn,e),(e,t)=>(0,a.A)(cn,e,t)],[wt({type:"user.input"}),1,"userInput",e=>(0,l.A)(hn,e),(e,t)=>(0,a.A)(hn,e,t)],[wt({type:"token.click"}),1,"tokenClickEvent",e=>(0,l.A)(mn,e),(e,t)=>(0,a.A)(mn,e,t)]],0,(e=>kn.has((0,r.A)(e))),v.N)),j()}}]);
2
- //# sourceMappingURL=code-editor.e0c38b2c.js.map
1
+ "use strict";(globalThis.webpackChunk_next_bricks_vs=globalThis.webpackChunk_next_bricks_vs||[]).push([[3722],{72349:(e,t,n)=>{n.r(t),n.d(t,{CodeEditor:()=>Nt,CodeEditorComponent:()=>vn});var i=n(74635),s=n(70918),r=n(26902),o=n(5536),a=n(86121),l=n(70829),c=n(62740),u=n(18769),h=n.n(u),d=n(90870),g=n(49936),m=n(30981),p=n(29711),k=n(51921),f=n(41361),v=n(41757),A=n(62001),b=n(77921),y=(n(95621),n(18965)),w=n(98967),M=n(55310),C=n.n(M),x=(n(34419),n(20563)),E=n(99442),S=n(87380),L=n(64437),W=n(25559),B=n(69704),N=n(91507),z=n(53373),P=n.n(z),_=n(97714),R=n(72414),O=(n(73569),n(15601)),I=n(69235),V=n(64322),D=n(59817),T=n(97659),F=n(44143),K=n(48217),H=n(85021),Y=n(80817),q=n(76915);let j,J,U,X,$,Z,G,Q,ee,te,ne,ie,se,re,oe,ae,le,ce,ue,he,de,ge,me,pe,ke,fe,ve,Ae,be,ye,we,Me,Ce,xe,Ee,Se,Le,We,Be,Ne,ze,Pe,_e,Re,Oe,Ie,Ve,De,Te,Fe,Ke,He,Ye,qe,je,Je,Ue,Xe,$e,Ze,Ge,Qe,et,tt,nt,it,st,rt,ot,at,lt,ct,ut;var ht,dt,gt;(0,B.initializeReactI18n)(N.NS,N.I),A.editor.defineTheme("tm-vs-light",y),A.editor.defineTheme("tm-vs-dark",w);const mt=["tm-vs-light","tm-vs-dark"],pt=["vs-dark","hc-black","tm-vs-dark"];(0,T.kz)(A),(0,F.kz)(A),(0,K.kz)(A);const kt=["cel_yaml","cel_str"],ft=["cel",...kt];for(const e of kt)A.languages.registerCompletionItemProvider(e,{triggerCharacters:["<"],provideCompletionItems:H.ix});for(const e of ft)A.languages.registerCompletionItemProvider(e,(0,H.ZY)(e));const{enabled:vt,...At}=null!==(ht=null===(dt=(0,k.getRuntime)())||void 0===dt?void 0:dt.getMiscSettings().globalMonacoEditorCopilotOptions)&&void 0!==ht?ht:{};vt&&A.languages.registerInlineCompletionsProvider(_.F,new _.$({...At,async request(e){var t;let{model:n,temperature:i,system:s,prompt:r,signal:o}=e;return null===(t=(await(0,R.b)({model:n,temperature:i,enableSensitiveWordsFilter:!1,stream:!1,messages:[...s?[{role:"system",content:s}]:[],{role:"user",content:r}]},{signal:o,interceptorParams:{ignoreLoadingBar:!0}})).choices)||void 0===t||null===(t=t[0])||void 0===t||null===(t=t.message)||void 0===t||null===(t=t.content)||void 0===t?void 0:t.trim()},HttpAbortError:f.HttpAbortError}));const{defineElement:bt,property:yt,event:wt}=(0,d.createDecorators)(),Mt=(0,m.wrapBrick)("eo-form-item"),Ct=(0,m.wrapBrick)("eo-tooltip"),xt=(0,m.wrapBrick)("eo-icon"),Et=(0,g.unwrapProvider)("basic.copy-to-clipboard"),St=(0,g.unwrapProvider)("basic.show-notification"),Lt="spell_check",Wt="brick_next_yaml_lint",Bt="extra_markers";let Nt;var zt=new WeakMap,Pt=new WeakMap,_t=new WeakMap,Rt=new WeakMap,Ot=new WeakMap,It=new WeakMap,Vt=new WeakMap,Dt=new WeakMap,Tt=new WeakMap,Ft=new WeakMap,Kt=new WeakMap,Ht=new WeakMap,Yt=new WeakMap,qt=new WeakMap,jt=new WeakMap,Jt=new WeakMap,Ut=new WeakMap,Xt=new WeakMap,$t=new WeakMap,Zt=new WeakMap,Gt=new WeakMap,Qt=new WeakMap,en=new WeakMap,tn=new WeakMap,nn=new WeakMap,sn=new WeakMap,rn=new WeakMap,on=new WeakMap,an=new WeakMap,ln=new WeakMap,cn=new WeakMap,un=new WeakSet,hn=new WeakMap,dn=new WeakMap,gn=new WeakMap,mn=new WeakMap,pn=new WeakMap,kn=new WeakMap;class fn extends v.N{constructor(){super(...arguments),(0,i.A)(this,un),(0,s.A)(this,zt,J(this)),(0,s.A)(this,Pt,(U(this),X(this))),(0,s.A)(this,_t,($(this),Z(this))),(0,s.A)(this,Rt,(G(this),Q(this))),(0,s.A)(this,Ot,(ee(this),te(this))),(0,s.A)(this,It,(ne(this),ie(this))),(0,s.A)(this,Vt,(se(this),re(this))),(0,s.A)(this,Dt,(oe(this),ae(this))),(0,s.A)(this,Tt,(le(this),ce(this))),(0,s.A)(this,Ft,(ue(this),he(this))),(0,s.A)(this,Kt,(de(this),ge(this))),(0,s.A)(this,Ht,(me(this),pe(this))),(0,s.A)(this,Yt,(ke(this),fe(this))),(0,s.A)(this,qt,(ve(this),Ae(this))),(0,s.A)(this,jt,(be(this),ye(this))),(0,s.A)(this,Jt,(we(this),Me(this))),(0,s.A)(this,Ut,(Ce(this),xe(this))),(0,s.A)(this,Xt,(Ee(this),Se(this))),(0,s.A)(this,$t,(Le(this),We(this))),(0,s.A)(this,Zt,(Be(this),Ne(this))),(0,s.A)(this,Gt,(ze(this),Pe(this))),(0,s.A)(this,Qt,(_e(this),Re(this))),(0,s.A)(this,en,(Oe(this),Ie(this))),(0,s.A)(this,tn,(Ve(this),De(this))),(0,s.A)(this,nn,(Te(this),Fe(this))),(0,s.A)(this,sn,(Ke(this),He(this))),(0,s.A)(this,rn,(Ye(this),qe(this))),(0,s.A)(this,on,(je(this),Je(this))),(0,s.A)(this,an,(Ue(this),Xe(this))),(0,s.A)(this,ln,($e(this),Ze(this))),(0,s.A)(this,cn,(Ge(this),Qe(this))),(0,s.A)(this,hn,(nt(this),it(this))),(0,s.A)(this,dn,(ot(this),e=>{var t;this.value=e,null===(t=this.getFormElement())||void 0===t||t.formStore.onChange(this.name,e),(0,o.A)(un,this,et).emit(e)})),(0,s.A)(this,gn,(e=>{(0,o.A)(un,this,st).emit(e)})),(0,s.A)(this,mn,at(this)),(0,s.A)(this,pn,(ut(this),e=>{(0,o.A)(un,this,lt).emit(e)})),(0,s.A)(this,kn,(e=>{if("brick_next_yaml"===this.language||"yaml"===this.language)try{C().load(e)}catch{return"请填写正确的格式"}return""}))}get name(){return(0,l.A)(zt,this)}set name(e){(0,a.A)(zt,this,e)}get label(){return(0,l.A)(Pt,this)}set label(e){(0,a.A)(Pt,this,e)}get value(){return(0,l.A)(_t,this)}set value(e){(0,a.A)(_t,this,e)}get language(){return(0,l.A)(Rt,this)}set language(e){(0,a.A)(Rt,this,e)}get theme(){return(0,l.A)(Ot,this)}set theme(e){(0,a.A)(Ot,this,e)}get required(){return(0,l.A)(It,this)}set required(e){(0,a.A)(It,this,e)}get readOnly(){return(0,l.A)(Vt,this)}set readOnly(e){(0,a.A)(Vt,this,e)}get automaticLayout(){return(0,l.A)(Dt,this)}set automaticLayout(e){(0,a.A)(Dt,this,e)}get minLines(){return(0,l.A)(Tt,this)}set minLines(e){(0,a.A)(Tt,this,e)}get completers(){return(0,l.A)(Ft,this)}set completers(e){(0,a.A)(Ft,this,e)}get advancedCompleters(){return(0,l.A)(Kt,this)}set advancedCompleters(e){(0,a.A)(Kt,this,e)}get markers(){return(0,l.A)(Ht,this)}set markers(e){(0,a.A)(Ht,this,e)}get links(){return(0,l.A)(Yt,this)}set links(e){(0,a.A)(Yt,this,e)}get maxLines(){return(0,l.A)(qt,this)}set maxLines(e){(0,a.A)(qt,this,e)}get height(){return(0,l.A)(jt,this)}set height(e){(0,a.A)(jt,this,e)}get message(){return(0,l.A)(Jt,this)}set message(e){(0,a.A)(Jt,this,e)}get placeholder(){return(0,l.A)(Ut,this)}set placeholder(e){(0,a.A)(Ut,this,e)}get showExpandButton(){return(0,l.A)(Xt,this)}set showExpandButton(e){(0,a.A)(Xt,this,e)}get lineNumbers(){return(0,l.A)($t,this)}set lineNumbers(e){(0,a.A)($t,this,e)}get tokenConfig(){return(0,l.A)(Zt,this)}set tokenConfig(e){(0,a.A)(Zt,this,e)}get customValidationInBrickNextYaml(){return(0,l.A)(Gt,this)}set customValidationInBrickNextYaml(e){(0,a.A)(Gt,this,e)}get showCopyButton(){return(0,l.A)(Qt,this)}set showCopyButton(e){(0,a.A)(Qt,this,e)}get glyphMargin(){return(0,l.A)(en,this)}set glyphMargin(e){(0,a.A)(en,this,e)}get extraLibs(){return(0,l.A)(tn,this)}set extraLibs(e){(0,a.A)(tn,this,e)}get extraMarkers(){return(0,l.A)(nn,this)}set extraMarkers(e){(0,a.A)(nn,this,e)}get fixedOverflowWidgets(){return(0,l.A)(sn,this)}set fixedOverflowWidgets(e){(0,a.A)(sn,this,e)}get spellCheck(){return(0,l.A)(rn,this)}set spellCheck(e){(0,a.A)(rn,this,e)}get knownWords(){return(0,l.A)(on,this)}set knownWords(e){(0,a.A)(on,this,e)}get domLibsEnabled(){return(0,l.A)(an,this)}set domLibsEnabled(e){(0,a.A)(an,this,e)}get uri(){return(0,l.A)(ln,this)}set uri(e){(0,a.A)(ln,this,e)}connectedCallback(){this.style.display||(this.style.display="block"),super.connectedCallback()}render(){return h().createElement(Mt,{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,l.A)(kn,this)},h().createElement(vn,{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,extraMarkers:this.extraMarkers,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,l.A)(dn,this),onUserInput:(0,l.A)(gn,this),onTokenClick:(0,l.A)(pn,this),customValidationInBrickNextYaml:this.customValidationInBrickNextYaml,fixedOverflowWidgets:this.fixedOverflowWidgets,spellCheck:this.spellCheck,knownWords:this.knownWords,domLibsEnabled:this.domLibsEnabled,uri:this.uri}))}}function vn(e){let{value:t,language:n,theme:i,minLines:s,maxLines:r,height:o,automaticLayout:a,completers:l,advancedCompleters:c,markers:d,readOnly:g,links:m,extraLibs:k,extraMarkers:f,tokenConfig:v,showExpandButton:y,showCopyButton:w=!0,lineNumbers:M="on",glyphMargin:C=!1,placeholder:z,validateState:_,onChange:R,onTokenClick:T,customValidationInBrickNextYaml:F,fixedOverflowWidgets:K,spellCheck:j,knownWords:J,domLibsEnabled:U,uri:X}=e;const $=null!=t?t:"",Z=null!=n?n:"plaintext",G=null!=i?i:"auto",Q=null!=s?s:3,ee=null!=r?r:1/0,te=null!=o?o:500,ne=null==K||K,ie=null==j||j,[se,re]=(0,u.useState)(!1),oe=(0,u.useMemo)((()=>(0,x.uniqueId)("worker")),[]),{t:ae}=(0,B.useTranslation)(N.NS),le=(0,u.useRef)(null),ce=(0,u.useRef)(),ue=(0,u.useRef)(),he=(0,u.useRef)({width:300,height:An($,Q,ee)}),[de,ge]=(0,u.useState)(),[me,pe]=(0,u.useState)(),ke=(0,u.useRef)(a),fe=(0,p.useCurrentTheme)(),ve=b.e.includes(Z),Ae=(0,u.useMemo)((()=>{const e="auto"===G?"dark"===fe||"dark-v2"===fe?"vs-dark":"vs":G;return ve&&!mt.includes(e)?pt.includes(e)?"tm-vs-dark":"tm-vs-light":e}),[fe,G,ve]),be=pt.includes(Ae);(0,u.useEffect)((()=>{if(mt.includes(Ae))return;const e=be?"#FFFFFF0F":"#0000000A";A.editor.defineTheme("custom-theme",{base:Ae,inherit:!0,rules:[],colors:{"editor.lineHighlightBackground":`${e}`}}),A.editor.setTheme("custom-theme")}),[Ae,be]),(0,u.useEffect)((()=>{A.editor.setTheme(Ae)}),[Ae]),(0,u.useEffect)((()=>{if(ue.current){const e=ue.current.getModel();A.editor.setModelLanguage(e,Z)}(0,b.A)(Z)}),[Z]),(0,u.useEffect)((()=>{if("brick_next_yaml"===Z){const e=(0,S.v)(l,Array.isArray(c)?void 0:c,oe,v),t=A.languages.registerCompletionItemProvider("brick_next_yaml",{provideCompletionItems:e,triggerCharacters:[".",":","<"]});return()=>{t.dispose()}}}),[l,c,Z,oe,v]),(0,u.useEffect)((()=>{if(Array.isArray(c)&&c.length>0&&ft.includes(Z)){const e=A.languages.registerCompletionItemProvider(Z,(0,H.MY)(Z,oe,c));return()=>{e.dispose()}}}),[Z,c,oe]),(0,u.useEffect)((()=>{const e=ue.current;if(e){const t=e.getModel();null!=t&&t.getValue&&$!==t.getValue()&&t.setValue($)}}),[$]),(0,u.useLayoutEffect)((()=>{var e;if("fit-content"!==ke.current||!le.current)return;he.current.width=le.current.getBoundingClientRect().width,null===(e=ue.current)||void 0===e||e.layout(he.current);const t=new ResizeObserver((e=>{for(const n of e)if(n.target===le.current){const e=n.contentBoxSize?n.contentBoxSize[0]?n.contentBoxSize[0].inlineSize:n.contentBoxSize.inlineSize:n.contentRect.width,i=n.contentBoxSize?n.contentBoxSize[0]?n.contentBoxSize[0].blockSize:n.contentBoxSize.blockSize:n.contentRect.height;var t;(e!==he.current.width||se)&&(he.current.width=e,null===(t=ue.current)||void 0===t||t.layout({width:e,height:se?i:he.current.height}));break}}));return t.observe(le.current),()=>{t.disconnect()}}),[se]),(0,u.useLayoutEffect)((()=>{if("fit-container"!==ke.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}}(le.current);if(!e)return;const t=new ResizeObserver((t=>{for(const n of t)if(n.target===e){const e=n.contentBoxSize?n.contentBoxSize[0]?n.contentBoxSize[0].inlineSize:n.contentBoxSize.inlineSize:n.contentRect.width;ge(e);const t=n.contentBoxSize?n.contentBoxSize[0]?n.contentBoxSize[0].blockSize:n.contentBoxSize.blockSize:n.contentRect.height;pe(t)}}));return t.observe(e),()=>{t.disconnect()}}),[]),(0,u.useEffect)((()=>{"fit-container"!==ke.current&&"fit-content"!==ke.current&&pe(te)}),[te]),(0,u.useEffect)((()=>{ue.current&&ue.current.updateOptions({readOnly:g,lineNumbersMinChars:se?5:3})}),[g,se]),(0,u.useEffect)((()=>{if(ue.current||!le.current)return;const e=A.editor.createModel($,Z,X?A.Uri.parse(X):void 0);let t;if("brick_next_yaml"===Z){const n=(0,W.AR)(e.uri);t=A.editor.createModel($,"javascript",n),A.languages.typescript.javascriptDefaults.addExtraLib((0,W.Eh)(),e.uri.toString()+"d.ts")}const n=ue.current=A.editor.create(le.current,{extraEditorClassName:"monaco-editor-v3",model:e,minimap:{enabled:!1,showRegionSectionHeaders:!1,showMarkSectionHeaders:!1},scrollBeyondLastLine:!1,tabSize:2,insertSpaces:!0,automaticLayout:"fit-content"!==ke.current,fontSize:E.yU,lineHeight:E.fE,scrollbar:{horizontalScrollbarSize:E.lP,verticalScrollbarSize:E.lP,horizontalSliderSize:8,verticalSliderSize:8,alwaysConsumeMouseWheel:!1},padding:{top:E.Vu,bottom:"fit-content"==ke.current?void 0:E.Vu},overviewRulerBorder:!1,mouseWheelScrollSensitivity:.5,fixedOverflowWidgets:ne,lineNumbers:M,lineNumbersMinChars:3,glyphMargin:C,folding:"off"!==M,suggest:{insertMode:"insert",preview:!0},readOnly:g,quickSuggestions:{strings:!0,other:!0,comments:!0},renderLineHighlightOnlyWhenFocus:!0,unicodeHighlight:{ambiguousCharacters:!1}});return ce.current=ue.current.createDecorationsCollection(),(0,Y.MX)(n),()=>{var i;e.dispose(),n.dispose(),null===(i=t)||void 0===i||i.dispose()}}),[]);const ye="typescript"===Z?"typescriptDefaults":"javascriptDefaults";(0,u.useEffect)((()=>{"javascript"!==Z&&"typescript"!==Z&&"brick_next_yaml"!==Z||A.languages.typescript[ye].setCompilerOptions({allowNonTsExtensions:!0,lib:U?void 0:["esnext"],target:A.languages.typescript.ScriptTarget.ESNext,module:A.languages.typescript.ModuleKind.ESNext,jsx:A.languages.typescript.JsxEmit.Preserve,skipLibCheck:!0,skipDefaultLibCheck:!0})}),[Z,U,ye]),(0,u.useEffect)((()=>{const e=ue.current;if(e)return()=>{(0,Y.X2)(e)}}),[]),(0,u.useEffect)((()=>{const e=ue.current;if(!e)return;const t=()=>{(0,q.$)(k,{languageDefaults:ye}),"javascript"!==Z&&"typescript"!==Z&&"brick_next_yaml"!==Z||A.languages.typescript[ye].setCompilerOptions({allowNonTsExtensions:!0,lib:U?void 0:["esnext"],target:A.languages.typescript.ScriptTarget.ESNext,module:A.languages.typescript.ModuleKind.ESNext,moduleResolution:A.languages.typescript.ModuleResolutionKind.NodeJs,jsx:A.languages.typescript.JsxEmit.Preserve,skipLibCheck:!0,skipDefaultLibCheck:!0})};(0,Y.xx)(e)&&t();const n=e.onDidFocusEditorWidget((()=>{(0,Y.MX)(e)&&t()}));return()=>{n.dispose()}}),[U,k,Z,ye]),(0,u.useEffect)((()=>{const e=ue.current;if("brick_next_yaml"===Z&&e){const t=e.getModel(),n=e.onMouseDown((function(e){var n,i;const s=ce.current;(null!==(n=null==s||null===(i=s.getRanges)||void 0===i?void 0:i.call(s))&&void 0!==n?n:[]).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)&&T(t.getValueInRange(n))}))})),i=e.onMouseMove((function(e){const t=ce.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()}}}),[Z,T,fe,G]),(0,u.useEffect)((()=>{const e=ue.current;if(!e||!le.current||"fit-content"!==ke.current)return;const t=e.onDidContentSizeChange((t=>{if(!se&&t.contentHeightChanged){const n=bn(t.contentHeight,Q,ee);n!==he.current.height&&(he.current.height=n,e.layout(he.current))}})),n=bn(e.getContentHeight(),Q,ee);return n!==he.current.height&&(he.current.height=n,e.layout(he.current)),()=>{t.dispose()}}),[ee,Q,se]);const we=(0,u.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,W.AR)(e.uri);A.editor.getModel(t).setValue(i);const r=e.getOffsetAt(new A.Position(s.startLineNumber,s.endColumn));if(O.b.getInstance(oe).updateState({content:i,range:n,offset:r}),!F)return;const o=await A.languages.typescript.getJavaScriptWorker(),a=await o(t),l=(await a.getSemanticDiagnostics(t.toString())).map((t=>{var n;const i=r+(null!==(n=t.start)&&void 0!==n?n:0),s=e.getPositionAt(i);return{startLineNumber:s.lineNumber,startColumn:s.column,endLineNumber:s.lineNumber,endColumn:s.column+t.length,message:t.messageText,severity:A.MarkerSeverity.Warning}}));A.editor.setModelMarkers(e,"semantic_validate",l)}}}),[oe]);(0,u.useEffect)((()=>{if(!ue.current)return;const e=ue.current.getModel(),t=e.onDidChangeContent((async t=>{(0,L.J)(oe),["brick_next_yaml"].includes(Z)&&we(e,ue.current.getPosition()),t.isFlush||R(e.getValue())}));return()=>{t.dispose()}}),[R,oe,Z,we]),(0,u.useEffect)((()=>{if(se){const e=t=>{"Escape"!==t.key&&"Esc"!==t.key||(window.removeEventListener("keydown",e),re(!1))};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}}}),[se]),(0,u.useEffect)((()=>{if(!ue.current&&!z)return;const e=new I.j(z,ue.current,be?"rgba(174,174,175,0.4)":"rgba(89,89,89,0.4)");return()=>{e.dispose()}}),[z,be]);const Me=(0,u.useCallback)((()=>{if(ue.current){const e=ue.current.getModel();Et(e.getValue()).then((()=>St({type:"success",message:ae(N.K.COPY_SUCCESS)}))).catch((()=>St({type:"error",message:ae(N.K.COPY_FAILED)})))}}),[ae]),Ce=(0,u.useCallback)((()=>{re(!se)}),[se]);return(0,u.useEffect)((()=>{const e=ue.current;if(!e||"brick_next_yaml"!==Z)return;let t=!1;const n=(0,x.debounce)((async()=>{var n;const i=await(0,V.K)();if(t)return;const{lintMarkers:s,lintDecorations:r}=await i.lint({source:e.getValue(),links:m,markers:d}),o=e.getModel();!t&&o&&(A.editor.setModelMarkers(o,Wt,s.map((e=>{let{start:t,end:n,message:i,severity:s,code:r}=e;const a=o.getPositionAt(t),l=o.getPositionAt(n);return{startLineNumber:a.lineNumber,startColumn:a.column,endLineNumber:l.lineNumber,endColumn:l.column,severity:A.MarkerSeverity[s],message:i,code:r}}))),null===(n=ce.current)||void 0===n||n.set(r.map((e=>{let{start:t,end:n,options:i}=e;return{range:A.Range.fromPositions(o.getPositionAt(t),o.getPositionAt(n)),options:i}}))))}),200),i=e.onDidChangeModelContent(n);return n(),()=>{t=!0,i.dispose(),A.editor.setModelMarkers(e.getModel(),Wt,[])}}),[Z,m,d,G,oe]),(0,u.useEffect)((()=>{var e;const t=null===(e=ue.current)||void 0===e?void 0:e.getModel();if(t&&null!=f&&f.length)return A.editor.setModelMarkers(t,Bt,f.map((e=>{let{severity:t,...n}=e;return{...n,severity:A.MarkerSeverity[t]}}))),()=>{A.editor.setModelMarkers(t,Bt,[])}}),[f]),(0,u.useEffect)((()=>{const e=ue.current;if(!e||!ie)return;let t=!1;const n=(0,x.debounce)((async()=>{const n=await(0,D.n)();if(t)return;const{markers:i}=await n.spellCheck({source:e.getValue(),knownWords:J}),s=e.getModel();!t&&s&&A.editor.setModelMarkers(s,Lt,i.map((e=>{let{start:t,end:n,message:i,severity:r}=e;const o=s.getPositionAt(t),a=s.getPositionAt(n);return{startLineNumber:o.lineNumber,startColumn:o.column,endLineNumber:a.lineNumber,endColumn:a.column,severity:A.MarkerSeverity[r],message:i}})))}),200),i=e.onDidChangeModelContent(n);return n(),()=>{t=!0,i.dispose(),A.editor.setModelMarkers(e.getModel(),Lt,[])}}),[ie,J]),h().createElement("div",{className:P()("code-editor-wrapper",{expanded:se,error:"error"===_})},h().createElement("div",{ref:le,style:{height:se?"100%":me,width:se?"100%":de,overflow:se?"scroll":""}}),h().createElement("div",{className:"toolbar-wrapper"},h().createElement("div",{className:"toolbar sticky"},w&&h().createElement(Ct,{content:ae(N.K.COPY)},h().createElement(xt,{className:"copy-icon",icon:"copy",lib:"antd",theme:"outlined",onClick:Me})),y&&h().createElement(Ct,{content:ae(se?N.K.COLLAPSE:N.K.EXPAND)},h().createElement(xt,{className:"expand-icon",icon:se?"compress":"expand",lib:"antd",theme:"outlined",onClick:Ce})))))}function An(e,t,n){return yn(Math.min(n,Math.max(t,e.split("\n").length)))}function bn(e,t,n){let i=e;return(e-E.Vu)%E.fE==0&&(i=e+E.lP),Math.min(yn(n),Math.max(i,yn(t)))}function yn(e){return e*E.fE+E.lP+E.Vu}gt=fn,({e:[J,U,X,$,Z,G,Q,ee,te,ne,ie,se,re,oe,ae,le,ce,ue,he,de,ge,me,pe,ke,fe,ve,Ae,be,ye,we,Me,Ce,xe,Ee,Se,Le,We,Be,Ne,ze,Pe,_e,Re,Oe,Ie,Ve,De,Te,Fe,Ke,He,Ye,qe,je,Je,Ue,Xe,$e,Ze,Ge,Qe,et,tt,nt,it,st,rt,ot,at,lt,ct,ut],c:[Nt,j]}=(0,c.A)(gt,[bt("vs.code-editor",{shadowOptions:!1})],[[yt(),1,"name"],[yt(),1,"label"],[yt(),1,"value"],[yt(),1,"language"],[yt(),1,"theme"],[yt({type:Boolean}),1,"required"],[yt({type:Boolean}),1,"readOnly"],[yt(),1,"automaticLayout"],[yt({type:Number}),1,"minLines"],[yt({attribute:!1}),1,"completers"],[yt({attribute:!1}),1,"advancedCompleters"],[yt({attribute:!1}),1,"markers"],[yt({attribute:!1}),1,"links"],[yt({type:Number}),1,"maxLines"],[yt({attribute:!1}),1,"height"],[yt(),1,"message"],[yt(),1,"placeholder"],[yt({type:Boolean}),1,"showExpandButton"],[yt(),1,"lineNumbers"],[yt({attribute:!1}),1,"tokenConfig"],[yt({type:Boolean}),1,"customValidationInBrickNextYaml"],[yt({type:Boolean}),1,"showCopyButton"],[yt({type:Boolean}),1,"glyphMargin"],[yt({attribute:!1}),1,"extraLibs"],[yt({attribute:!1}),1,"extraMarkers"],[yt({type:Boolean}),1,"fixedOverflowWidgets"],[yt({type:Boolean}),1,"spellCheck"],[yt({attribute:!1}),1,"knownWords"],[yt({type:Boolean}),1,"domLibsEnabled"],[yt(),1,"uri"],[wt({type:"code.change"}),1,"codeChange",e=>(0,l.A)(cn,e),(e,t)=>(0,a.A)(cn,e,t)],[wt({type:"user.input"}),1,"userInput",e=>(0,l.A)(hn,e),(e,t)=>(0,a.A)(hn,e,t)],[wt({type:"token.click"}),1,"tokenClickEvent",e=>(0,l.A)(mn,e),(e,t)=>(0,a.A)(mn,e,t)]],0,(e=>kn.has((0,r.A)(e))),v.N)),j()}}]);
2
+ //# sourceMappingURL=code-editor.438c16ca.js.map