@ylzcc/editor 0.19.0 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/editor.es.js CHANGED
@@ -115109,6 +115109,7 @@ const useVerticalDrag = (Ff, kh) => {
115109
115109
  // 后端主流语言
115110
115110
  { label: "Java", value: "java" },
115111
115111
  { label: "Python", value: "python" },
115112
+ { label: "Python3", value: "python3" },
115112
115113
  { label: "Rust", value: "rust" },
115113
115114
  { label: "VB", value: "vb" },
115114
115115
  { label: "GoLang", value: "golang" },
@@ -115241,7 +115242,7 @@ function NodeView(Ff) {
115241
115242
  MonacoEditor,
115242
115243
  {
115243
115244
  readOnly: !hme,
115244
- defaultValue: pme,
115245
+ value: pme,
115245
115246
  language: ume,
115246
115247
  onChange: (bme, Tme) => {
115247
115248
  if (hme && !ame.current && typeof $P == "function") {
@@ -472,5 +472,5 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
472
472
  monaco.config({ paths: { vs: '...' } })
473
473
 
474
474
  For more please check the link https://github.com/suren-atoyan/monaco-loader#config
475
- `},errorHandler=curry(throwError)(errorMessages),validators={config:validateConfig},compose=function Ff(){for(var kh=arguments.length,x_=new Array(kh),B_=0;B_<kh;B_++)x_[B_]=arguments[B_];return function($_){return x_.reduceRight(function($P,zP){return zP($P)},$_)}};function merge(Ff,kh){return Object.keys(kh).forEach(function(x_){kh[x_]instanceof Object&&Ff[x_]&&Object.assign(kh[x_],merge(Ff[x_],kh[x_]))}),_objectSpread2$1(_objectSpread2$1({},Ff),kh)}var CANCELATION_MESSAGE={type:"cancelation",msg:"operation is manually canceled"};function makeCancelable(Ff){var kh=!1,x_=new Promise(function(B_,$_){Ff.then(function($P){return kh?$_(CANCELATION_MESSAGE):B_($P)}),Ff.catch($_)});return x_.cancel=function(){return kh=!0},x_}var _excluded=["monaco"],_state$create=index.create({config:config$1,isInitialized:!1,resolve:null,reject:null,monaco:null}),_state$create2=_slicedToArray(_state$create,2),getState=_state$create2[0],setState=_state$create2[1];function config(Ff){var kh=validators.config(Ff),x_=kh.monaco,B_=_objectWithoutProperties(kh,_excluded);setState(function($_){return{config:merge($_.config,B_),monaco:x_}})}function init(){var Ff=getState(function(kh){var x_=kh.monaco,B_=kh.isInitialized,$_=kh.resolve;return{monaco:x_,isInitialized:B_,resolve:$_}});if(!Ff.isInitialized){if(setState({isInitialized:!0}),Ff.monaco)return Ff.resolve(Ff.monaco),makeCancelable(wrapperPromise);if(window.monaco&&window.monaco.editor)return storeMonacoInstance(window.monaco),Ff.resolve(window.monaco),makeCancelable(wrapperPromise);compose(injectScripts,getMonacoLoaderScript)(configureLoader)}return makeCancelable(wrapperPromise)}function injectScripts(Ff){return document.body.appendChild(Ff)}function createScript(Ff){var kh=document.createElement("script");return Ff&&(kh.src=Ff),kh}function getMonacoLoaderScript(Ff){var kh=getState(function(B_){var $_=B_.config,$P=B_.reject;return{config:$_,reject:$P}}),x_=createScript("".concat(kh.config.paths.vs,"/loader.js"));return x_.onload=function(){return Ff()},x_.onerror=kh.reject,x_}function configureLoader(){var Ff=getState(function(x_){var B_=x_.config,$_=x_.resolve,$P=x_.reject;return{config:B_,resolve:$_,reject:$P}}),kh=window.require;kh.config(Ff.config),kh(["vs/editor/editor.main"],function(x_){var B_=x_.m||x_;storeMonacoInstance(B_),Ff.resolve(B_)},function(x_){Ff.reject(x_)})}function storeMonacoInstance(Ff){getState().monaco||setState({monaco:Ff})}function __getMonacoInstance(){return getState(function(Ff){var kh=Ff.monaco;return kh})}var wrapperPromise=new Promise(function(Ff,kh){return setState({resolve:Ff,reject:kh})}),loader={config,init,__getMonacoInstance},le={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},v=le,ae={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},Y=ae;function Me({children:Ff}){return React.createElement("div",{style:Y.container},Ff)}var Z=Me,$=Z;function Ee({width:Ff,height:kh,isEditorReady:x_,loading:B_,_ref:$_,className:$P,wrapperProps:zP}){return React.createElement("section",{style:{...v.wrapper,width:Ff,height:kh},...zP},!x_&&React.createElement($,null,B_),React.createElement("div",{ref:$_,style:{...v.fullWidth,...!x_&&v.hide},className:$P}))}var ee=Ee,H=React.memo(ee);function Ce(Ff){React.useEffect(Ff,[])}var k=Ce;function he(Ff,kh,x_=!0){let B_=React.useRef(!0);React.useEffect(B_.current||!x_?()=>{B_.current=!1}:Ff,kh)}var l=he;function D(){}function h(Ff,kh,x_,B_){return De(Ff,B_)||be(Ff,kh,x_,B_)}function De(Ff,kh){return Ff.editor.getModel(te(Ff,kh))}function be(Ff,kh,x_,B_){return Ff.editor.createModel(kh,x_,B_?te(Ff,B_):void 0)}function te(Ff,kh){return Ff.Uri.parse(kh)}function Oe({original:Ff,modified:kh,language:x_,originalLanguage:B_,modifiedLanguage:$_,originalModelPath:$P,modifiedModelPath:zP,keepCurrentOriginalModel:eme=!1,keepCurrentModifiedModel:tme=!1,theme:nme="light",loading:rme="Loading...",options:ime={},height:ame="100%",width:ome="100%",className:sme,wrapperProps:cme={},beforeMount:lme=D,onMount:ume=D}){let[dme,fme]=React.useState(!1),[pme,hme]=React.useState(!0),mme=React.useRef(null),gme=React.useRef(null),Eme=React.useRef(null),_me=React.useRef(ume),bme=React.useRef(lme),Tme=React.useRef(!1);k(()=>{let Nme=loader.init();return Nme.then(Bme=>(gme.current=Bme)&&hme(!1)).catch(Bme=>(Bme==null?void 0:Bme.type)!=="cancelation"&&console.error("Monaco initialization: error:",Bme)),()=>mme.current?Ome():Nme.cancel()}),l(()=>{if(mme.current&&gme.current){let Nme=mme.current.getOriginalEditor(),Bme=h(gme.current,Ff||"",B_||x_||"text",$P||"");Bme!==Nme.getModel()&&Nme.setModel(Bme)}},[$P],dme),l(()=>{if(mme.current&&gme.current){let Nme=mme.current.getModifiedEditor(),Bme=h(gme.current,kh||"",$_||x_||"text",zP||"");Bme!==Nme.getModel()&&Nme.setModel(Bme)}},[zP],dme),l(()=>{let Nme=mme.current.getModifiedEditor();Nme.getOption(gme.current.editor.EditorOption.readOnly)?Nme.setValue(kh||""):kh!==Nme.getValue()&&(Nme.executeEdits("",[{range:Nme.getModel().getFullModelRange(),text:kh||"",forceMoveMarkers:!0}]),Nme.pushUndoStop())},[kh],dme),l(()=>{var Nme,Bme;(Bme=(Nme=mme.current)==null?void 0:Nme.getModel())==null||Bme.original.setValue(Ff||"")},[Ff],dme),l(()=>{let{original:Nme,modified:Bme}=mme.current.getModel();gme.current.editor.setModelLanguage(Nme,B_||x_||"text"),gme.current.editor.setModelLanguage(Bme,$_||x_||"text")},[x_,B_,$_],dme),l(()=>{var Nme;(Nme=gme.current)==null||Nme.editor.setTheme(nme)},[nme],dme),l(()=>{var Nme;(Nme=mme.current)==null||Nme.updateOptions(ime)},[ime],dme);let Rme=React.useCallback(()=>{var Pme;if(!gme.current)return;bme.current(gme.current);let Nme=h(gme.current,Ff||"",B_||x_||"text",$P||""),Bme=h(gme.current,kh||"",$_||x_||"text",zP||"");(Pme=mme.current)==null||Pme.setModel({original:Nme,modified:Bme})},[x_,kh,$_,Ff,B_,$P,zP]),Ime=React.useCallback(()=>{var Nme;!Tme.current&&Eme.current&&(mme.current=gme.current.editor.createDiffEditor(Eme.current,{automaticLayout:!0,...ime}),Rme(),(Nme=gme.current)==null||Nme.editor.setTheme(nme),fme(!0),Tme.current=!0)},[ime,nme,Rme]);React.useEffect(()=>{dme&&_me.current(mme.current,gme.current)},[dme]),React.useEffect(()=>{!pme&&!dme&&Ime()},[pme,dme,Ime]);function Ome(){var Bme,Pme,Dme,Vme;let Nme=(Bme=mme.current)==null?void 0:Bme.getModel();eme||((Pme=Nme==null?void 0:Nme.original)==null||Pme.dispose()),tme||((Dme=Nme==null?void 0:Nme.modified)==null||Dme.dispose()),(Vme=mme.current)==null||Vme.dispose()}return React.createElement(H,{width:ome,height:ame,isEditorReady:dme,loading:rme,_ref:Eme,className:sme,wrapperProps:cme})}var ie=Oe;React.memo(ie);function Pe(){let[Ff,kh]=React.useState(loader.__getMonacoInstance());return k(()=>{let x_;return Ff||(x_=loader.init(),x_.then(B_=>{kh(B_)})),()=>x_==null?void 0:x_.cancel()}),Ff}var Le=Pe;function He(Ff){let kh=React.useRef();return React.useEffect(()=>{kh.current=Ff},[Ff]),kh.current}var se=He,_=new Map;function Ve({defaultValue:Ff,defaultLanguage:kh,defaultPath:x_,value:B_,language:$_,path:$P,theme:zP="light",line:eme,loading:tme="Loading...",options:nme={},overrideServices:rme={},saveViewState:ime=!0,keepCurrentModel:ame=!1,width:ome="100%",height:sme="100%",className:cme,wrapperProps:lme={},beforeMount:ume=D,onMount:dme=D,onChange:fme,onValidate:pme=D}){let[hme,mme]=React.useState(!1),[gme,Eme]=React.useState(!0),_me=React.useRef(null),bme=React.useRef(null),Tme=React.useRef(null),Rme=React.useRef(dme),Ime=React.useRef(ume),Ome=React.useRef(),Nme=React.useRef(B_),Bme=se($P),Pme=React.useRef(!1),Dme=React.useRef(!1);k(()=>{let Lme=loader.init();return Lme.then(Fme=>(_me.current=Fme)&&Eme(!1)).catch(Fme=>(Fme==null?void 0:Fme.type)!=="cancelation"&&console.error("Monaco initialization: error:",Fme)),()=>bme.current?Ame():Lme.cancel()}),l(()=>{var Fme,Sme,vme,Cme;let Lme=h(_me.current,Ff||B_||"",kh||$_||"",$P||x_||"");Lme!==((Fme=bme.current)==null?void 0:Fme.getModel())&&(ime&&_.set(Bme,(Sme=bme.current)==null?void 0:Sme.saveViewState()),(vme=bme.current)==null||vme.setModel(Lme),ime&&((Cme=bme.current)==null||Cme.restoreViewState(_.get($P))))},[$P],hme),l(()=>{var Lme;(Lme=bme.current)==null||Lme.updateOptions(nme)},[nme],hme),l(()=>{!bme.current||B_===void 0||(bme.current.getOption(_me.current.editor.EditorOption.readOnly)?bme.current.setValue(B_):B_!==bme.current.getValue()&&(Dme.current=!0,bme.current.executeEdits("",[{range:bme.current.getModel().getFullModelRange(),text:B_,forceMoveMarkers:!0}]),bme.current.pushUndoStop(),Dme.current=!1))},[B_],hme),l(()=>{var Fme,Sme;let Lme=(Fme=bme.current)==null?void 0:Fme.getModel();Lme&&$_&&((Sme=_me.current)==null||Sme.editor.setModelLanguage(Lme,$_))},[$_],hme),l(()=>{var Lme;eme!==void 0&&((Lme=bme.current)==null||Lme.revealLine(eme))},[eme],hme),l(()=>{var Lme;(Lme=_me.current)==null||Lme.editor.setTheme(zP)},[zP],hme);let Vme=React.useCallback(()=>{var Lme;if(!(!Tme.current||!_me.current)&&!Pme.current){Ime.current(_me.current);let Fme=$P||x_,Sme=h(_me.current,B_||Ff||"",kh||$_||"",Fme||"");bme.current=(Lme=_me.current)==null?void 0:Lme.editor.create(Tme.current,{model:Sme,automaticLayout:!0,...nme},rme),ime&&bme.current.restoreViewState(_.get(Fme)),_me.current.editor.setTheme(zP),eme!==void 0&&bme.current.revealLine(eme),mme(!0),Pme.current=!0}},[Ff,kh,x_,B_,$_,$P,nme,rme,ime,zP,eme]);React.useEffect(()=>{hme&&Rme.current(bme.current,_me.current)},[hme]),React.useEffect(()=>{!gme&&!hme&&Vme()},[gme,hme,Vme]),Nme.current=B_,React.useEffect(()=>{var Lme,Fme;hme&&fme&&((Lme=Ome.current)==null||Lme.dispose(),Ome.current=(Fme=bme.current)==null?void 0:Fme.onDidChangeModelContent(Sme=>{Dme.current||fme(bme.current.getValue(),Sme)}))},[hme,fme]),React.useEffect(()=>{if(hme){let Lme=_me.current.editor.onDidChangeMarkers(Fme=>{var vme;let Sme=(vme=bme.current.getModel())==null?void 0:vme.uri;if(Sme&&Fme.find(Cme=>Cme.path===Sme.path)){let Cme=_me.current.editor.getModelMarkers({resource:Sme});pme==null||pme(Cme)}});return()=>{Lme==null||Lme.dispose()}}return()=>{}},[hme,pme]);function Ame(){var Lme,Fme;(Lme=Ome.current)==null||Lme.dispose(),ame?ime&&_.set($P,bme.current.saveViewState()):(Fme=bme.current.getModel())==null||Fme.dispose(),bme.current.dispose()}return React.createElement(H,{width:ome,height:sme,isEditorReady:hme,loading:tme,_ref:Tme,className:cme,wrapperProps:lme})}var fe=Ve,de=React.memo(fe),Ft=de;loader.config({paths:{vs:"https://statics.oscollege.net/min/vs"},"vs/nls":{availableLanguages:{"*":"zh-cn"}}});function MonacoEditor(Ff){const{value:kh,language:x_="plaintext",style:B_,className:$_,defaultValue:$P,readOnly:zP=!1}=Ff,eme=Le(),tme=(nme,rme)=>{var ime;(ime=Ff.onChange)==null||ime.call(Ff,nme||"",rme)};return React.useEffect(()=>{eme&&(eme.editor.defineTheme("custom",{base:"vs",inherit:!0,rules:[],encodedTokensColors:[],colors:{"editor.background":"#f7f8fa"}}),eme.editor.setTheme("custom"))},[eme]),jsxRuntimeExports.jsx("div",{className:classNames(["run-monaco-editor",$_]),style:B_,children:jsxRuntimeExports.jsx(Ft,{theme:"custom",defaultValue:$P,language:x_,value:kh,loading:jsxRuntimeExports.jsx("span",{style:{color:"#cccccc"},children:"加载中..."}),className:"monaco-editor-container",onChange:tme,onMount:Ff.onMount,options:{fontSize:14,lineHeight:18,readOnly:zP,lineNumbers:"off",minimap:{enabled:!1},renderLineHighlight:"none",scrollbar:{vertical:"hidden",horizontal:"hidden"},automaticLayout:!0,overviewRulerLanes:0}})})}function Select(Ff){const{options:kh,checked:x_,onChange:B_,placeHolder:$_="请选择",disabled:$P=!1}=Ff,zP=kh==null?void 0:kh.map(ime=>{const ame=typeof ime=="string";return{key:ame?ime:ime.value,label:ame?ime:ime.label}}),[eme,tme]=React.useState(x_);React.useEffect(()=>{tme(x_)},[x_]);const nme=React.useMemo(()=>eme?typeof eme=="string"?[eme]:[eme.value]:[],[eme]),rme=React.useMemo(()=>{if(!eme)return"";if(typeof eme=="string"){const ime=zP==null?void 0:zP.find(ame=>(ame==null?void 0:ame.key)===eme);return(ime==null?void 0:ime.label)||eme}return eme.label},[eme,zP]);return jsxRuntimeExports.jsx(antd.Dropdown,{menu:{items:zP,selectable:!0,selectedKeys:nme,onSelect:({key:ime})=>{if(typeof(kh==null?void 0:kh[0])=="string")tme(ime),B_==null||B_(ime);else{const ome=kh==null?void 0:kh.find(sme=>sme.value===ime);tme(ome),B_==null||B_(ome)}}},rootClassName:"run-code-select-drop",trigger:["click"],disabled:$P,children:jsxRuntimeExports.jsxs("div",{className:"run-code-select",children:[eme?jsxRuntimeExports.jsx("span",{className:"run-code-select-select",children:rme}):jsxRuntimeExports.jsx("span",{className:"run-code-select-placeholder",children:$_}),jsxRuntimeExports.jsx(DownOutlined$1,{style:{fontSize:16,color:"#cccccc"}})]})})}function TooltipWhite(Ff){const{children:kh,title:x_,placement:B_="bottom",arrow:$_=!1,trigger:$P="hover",rootClassName:zP}=Ff;return jsxRuntimeExports.jsx(antd.Tooltip,{trigger:$P,rootClassName:classNames(["run-code-tooltip",zP]),color:"white",title:x_,placement:B_,arrow:$_,children:kh})}function Btn(Ff){const{icon:kh,onClick:x_,disabled:B_=!1}=Ff;return jsxRuntimeExports.jsx("div",{className:"run-code-btn","data-disabled":B_,onClick:()=>{B_||x_==null||x_()},children:kh})}const useVerticalDrag=(Ff,kh)=>{const x_=React.useRef(!1),B_=React.useRef(0),$_=React.useCallback(eme=>{Ff.current&&(x_.current=!0,B_.current=eme.clientY)},[Ff]),$P=React.useCallback(eme=>{if(!x_.current||!Ff.current)return;const tme=eme.clientY-B_.current;kh(tme),B_.current=eme.clientY},[Ff,kh]),zP=React.useCallback(()=>{Ff.current&&(x_.current=!1)},[Ff]);return React.useEffect(()=>{if(!Ff.current)return;const eme=Ff.current;return eme.addEventListener("mousedown",$_),document.addEventListener("mousemove",$P),document.addEventListener("mouseup",zP),()=>{eme.removeEventListener("mousedown",$_),document.removeEventListener("mousemove",$P),document.removeEventListener("mouseup",zP)}},[Ff,$_,$P,zP]),{isDragging:x_.current}},languagesList=[{label:"Plaintext",value:"plaintext"},{label:"Markdown",value:"markdown"},{label:"HTML",value:"html"},{label:"XML",value:"xml"},{label:"CSS",value:"css"},{label:"SCSS/SASS",value:"scss"},{label:"JavaScript",value:"javascript"},{label:"TypeScript",value:"typescript"},{label:"Vue",value:"vue"},{label:"React JSX",value:"jsx"},{label:"React TSX",value:"tsx"},{label:"Java",value:"java"},{label:"Python",value:"python"},{label:"Rust",value:"rust"},{label:"VB",value:"vb"},{label:"GoLang",value:"golang"},{label:"PHP",value:"php"},{label:"C++",value:"cpp"},{label:"C#",value:"csharp"},{label:"C",value:"c"},{label:"Ruby",value:"ruby"},{label:"Kotlin",value:"kotlin"},{label:"Swift",value:"swift"},{label:"Objective-C",value:"objectivec"},{label:"Shell",value:"shell"},{label:"PowerShell",value:"powershell"},{label:"Batch",value:"batch"},{label:"Bash",value:"bash"},{label:"System Verilog",value:"systemverilog"},{label:"JSON",value:"json"},{label:"YAML",value:"yaml"},{label:"TOML",value:"toml"},{label:"MySQL",value:"mysql"},{label:"Redis",value:"redis"},{label:"Dockerfile",value:"dockerfile"},{label:"Makefile",value:"makefile"},{label:"Groovy",value:"groovy"},{label:"Perl",value:"perl"},{label:"R",value:"r"},{label:"Lua",value:"lua"}];function NodeView(Ff){const{editor:kh,node:x_,updateAttributes:B_,extension:$_,getPos:$P,deleteNode:zP}=Ff,eme=React.useRef(null),tme=React.useRef(null),nme=React.useRef(null),rme=React.useRef(null),ime=React.useRef(null),ame=React.useRef(!1),[ome,sme]=React.useState([]),[cme,lme]=React.useState(),{language:ume=languagesList[0].value}=x_.attrs,{codePlayerLanguageList:dme=[],template:fme}=React.useContext(shareData),pme=React.useMemo(()=>x_.textContent,[x_.textContent]),hme=React.useMemo(()=>kh.isEditable,[kh==null?void 0:kh.isEditable]);useVerticalDrag(eme,bme=>{var Tme;tme.current&&(tme.current.style.height=((Tme=tme.current)==null?void 0:Tme.getBoundingClientRect().height)+bme+"px")}),useVerticalDrag(rme,bme=>{var Tme,Rme;if(nme.current){nme.current.style.height=((Tme=nme.current)==null?void 0:Tme.getBoundingClientRect().height)+bme+"px";return}tme.current&&(tme.current.style.height=((Rme=tme.current)==null?void 0:Rme.getBoundingClientRect().height)+bme+"px")});const mme=bme=>{if(navigator.clipboard&&window.isSecureContext)navigator.clipboard.writeText(bme.trim());else{const Tme=document.createElement("input");Tme.value=bme.trim(),document.body.appendChild(Tme),Tme.select(),document.execCommand("copy"),document.body.removeChild(Tme)}antd.message.success("复制成功")},[gme,Eme]=React.useState(),_me=React.useCallback(async(bme,Tme)=>{if(bme.trim()&&$_.options.onCodeExec)try{const Rme=await $_.options.onCodeExec({language:Tme,code:bme,template:fme});Eme({output:Rme});const Ime={key:"result",icon:jsxRuntimeExports.jsx(PlayCircleTwoTone$1,{twoToneColor:["rgb(107,195,72)","transparent"],style:{fontSize:16}}),title:"运行结果"};sme([Ime]),lme(Ime.key)}catch(Rme){console.log("error",Rme)}},[$P,x_,fme]);return React.useEffect(()=>{if(!kh||!hme)return;const bme=({editor:Tme})=>{if(ame.current)return;const{selection:Rme}=Tme.state,{from:Ime,to:Ome}=Rme;if(typeof $P=="function"){const Nme=$P();if(Nme===void 0)return;const Bme=Nme+1,Pme=Nme+x_.nodeSize-1;if(Ime>=Bme&&Ome<=Pme&&ime.current){const Dme=ime.current.getModel();if(!Dme)return;const Vme=Ime-Bme,Ame=Ome-Bme,Lme=Math.max(0,Math.min(Vme,Dme.getValueLength())),Fme=Math.max(0,Math.min(Ame,Dme.getValueLength())),Sme=Dme.getPositionAt(Lme),vme=Dme.getPositionAt(Fme),Cme=ime.current.getSelection();if(Cme&&Cme.startLineNumber===Sme.lineNumber&&Cme.startColumn===Sme.column&&Cme.endLineNumber===vme.lineNumber&&Cme.endColumn===vme.column){ime.current.hasTextFocus()||ime.current.focus();return}ame.current=!0,ime.current.setSelection({startLineNumber:Sme.lineNumber,startColumn:Sme.column,endLineNumber:vme.lineNumber,endColumn:vme.column}),ime.current.hasTextFocus()||ime.current.focus(),ame.current=!1}}};return kh.on("selectionUpdate",bme),()=>{kh.off("selectionUpdate",bme)}},[kh,$P,x_,hme]),jsxRuntimeExports.jsx(NodeViewWrapper,{contentEditable:!1,children:jsxRuntimeExports.jsxs("div",{className:"run-code-block",children:[jsxRuntimeExports.jsxs("div",{className:"run-code-block-header center",children:[jsxRuntimeExports.jsxs("div",{className:"run-code-block-header-left center",children:[jsxRuntimeExports.jsx(Select,{disabled:!hme,options:languagesList,checked:ume,placeHolder:"选择语言",onChange:bme=>{B_({language:typeof bme=="string"?bme:bme.value})}}),(fme==null?void 0:fme.name)&&jsxRuntimeExports.jsx("div",{className:"run-code-template",children:fme.name})]}),jsxRuntimeExports.jsxs("div",{className:"run-code-block-header-right center",children:[jsxRuntimeExports.jsx(TooltipWhite,{title:"复制",placement:"top",children:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(Btn,{onClick:()=>{mme(x_.textContent||"")},icon:jsxRuntimeExports.jsx(CopyOutlined$1,{style:{fontSize:16,color:"#666666"}})})})}),ume&&$_.options.onCodeExec&&jsxRuntimeExports.jsx(TooltipWhite,{title:"运行",placement:"top",children:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(Btn,{onClick:()=>{_me==null||_me(x_.textContent||"",ume)},icon:jsxRuntimeExports.jsx(PlayCircleTwoTone$1,{twoToneColor:["#666666","transparent"],style:{fontSize:16}})})})})]})]}),jsxRuntimeExports.jsx("div",{className:"run-code-block-editor",ref:tme,children:jsxRuntimeExports.jsx(MonacoEditor,{readOnly:!hme,defaultValue:pme,language:ume,onChange:(bme,Tme)=>{if(hme&&!ame.current&&typeof $P=="function"){const Rme=$P();if(Rme===void 0)return;const Ime=kh.view.state.tr,Ome=Rme+1;Tme.changes.forEach(Nme=>{const Bme=Ome+Nme.rangeOffset,Pme=Bme+Nme.rangeLength;Nme.text?Ime.insertText(Nme.text,Bme,Pme):Ime.delete(Bme,Pme)}),ame.current=!0,kh.view.dispatch(Ime),ame.current=!1}},onMount:(bme,Tme)=>{ime.current=bme,bme.onKeyDown(Rme=>{if(!hme)return;const Ime=(Ome,Nme)=>{const Bme=bme.getSelection();if(!Bme||!Bme.isEmpty())return!1;const{startLineNumber:Pme,startColumn:Dme}=Bme,Vme=bme.getModel();if(!Vme)return!1;const Ame=Vme.getLineCount(),Lme=Pme===1,Fme=Pme===Ame,Sme=Lme&&Dme===1,vme=Vme.getLineContent(Pme),Cme=Fme&&Dme===vme.length+1;if(Nme<0){if(Ome==="line"){if(!Lme)return!1}else if(!Sme)return!1}else if(Ome==="line"){if(!Fme)return!1}else if(!Cme)return!1;if(typeof $P=="function"){const yme=$P();if(yme===void 0)return!1;const wme=kh.state.doc.nodeAt(yme),Mme=wme?wme.nodeSize:x_.nodeSize,Ume=yme+(Nme<0?0:Mme),jme=Selection.near(kh.view.state.doc.resolve(Ume),Nme);return kh.view.dispatch(kh.view.state.tr.setSelection(jme).scrollIntoView()),kh.view.focus(),!0}return!1};if(Rme.keyCode===Tme.KeyCode.UpArrow)Ime("line",-1)&&(Rme.preventDefault(),Rme.stopPropagation());else if(Rme.keyCode===Tme.KeyCode.DownArrow)Ime("line",1)&&(Rme.preventDefault(),Rme.stopPropagation());else if(Rme.keyCode===Tme.KeyCode.LeftArrow)Ime("char",-1)&&(Rme.preventDefault(),Rme.stopPropagation());else if(Rme.keyCode===Tme.KeyCode.RightArrow)Ime("char",1)&&(Rme.preventDefault(),Rme.stopPropagation());else if(Rme.keyCode===Tme.KeyCode.Backspace||Rme.keyCode===Tme.KeyCode.Delete){const Ome=bme.getModel();if(Ome&&Ome.getValue()===""){if(typeof $P=="function"){const Nme=$P();if(Nme!==void 0){const Bme=Math.max(1,Nme-1);kh.commands.focus(Bme),zP()}}Rme.preventDefault(),Rme.stopPropagation()}}else if(Rme.keyCode===Tme.KeyCode.Enter&&(Rme.ctrlKey||Rme.metaKey)&&typeof $P=="function"){const Ome=$P();if(Ome!==void 0){const Nme=kh.state.doc.nodeAt(Ome),Bme=Nme?Nme.nodeSize:x_.nodeSize,Pme=kh.state.tr.insert(Ome+Bme,kh.schema.nodes.paragraph.create());kh.view.dispatch(Pme),kh.commands.focus(Ome+Bme+1),Rme.preventDefault(),Rme.stopPropagation()}}})}})}),ome.length>0&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"run-code-block-line",ref:eme}),jsxRuntimeExports.jsx("div",{className:"run-code-block-tabs",children:ome.map(bme=>jsxRuntimeExports.jsxs("div",{onClick:()=>{lme(bme.key)},className:"run-code-block-tabs-tab center","data-active":bme.key===cme,children:[bme.icon,jsxRuntimeExports.jsx("span",{className:"run-code-block-tabs-tab-title",children:bme.title}),jsxRuntimeExports.jsx(CloseOutlined$1,{onClick:Tme=>{var Ime;Tme.stopPropagation();const Rme=ome.filter(Ome=>Ome.key!==bme.key);sme(Rme),bme.key===cme&&lme(((Ime=Rme[0])==null?void 0:Ime.key)||void 0)},style:{fontSize:16}})]},bme.key))}),ome.length>0&&jsxRuntimeExports.jsx("div",{className:"run-code-block-result",ref:nme,children:cme==="result"&&(gme==null?void 0:gme.output)})]}),jsxRuntimeExports.jsx("div",{className:"run-code-block-thumb",children:jsxRuntimeExports.jsxs("div",{ref:rme,onClick:bme=>{bme.preventDefault()},children:[jsxRuntimeExports.jsx("span",{}),jsxRuntimeExports.jsx("span",{})]})})]})})}const backtickInputRegex=/^```([a-z]+)?[\s\n]$/,tildeInputRegex=/^~~~([a-z]+)?[\s\n]$/,RunCodeBlock=Node$1.create({name:"codeBlock",addOptions(){return{languageClassPrefix:"language-",exitOnTripleEnter:!0,exitOnArrowDown:!0,HTMLAttributes:{class:"run-code-block"}}},content:"text*",marks:"",group:"block",code:!0,defining:!0,addAttributes(){return{language:{default:null,parseHTML:Ff=>{var $P;const{languageClassPrefix:kh}=this.options,$_=[...(($P=Ff.firstElementChild)==null?void 0:$P.classList)||[]].filter(zP=>zP.startsWith(kh)).map(zP=>zP.replace(kh,""))[0];return $_||null},rendered:!1}}},parseHTML(){return[{tag:"pre",preserveWhitespace:"full"}]},renderHTML({node:Ff,HTMLAttributes:kh}){return["pre",mergeAttributes(this.options.HTMLAttributes,kh),["code",{class:Ff.attrs.language?this.options.languageClassPrefix+Ff.attrs.language:null},0]]},addNodeView(){return ReactNodeViewRenderer(NodeView)},addCommands(){return{setCodeBlock:Ff=>({commands:kh})=>kh.setNode(this.name,Ff),toggleCodeBlock:Ff=>({commands:kh})=>kh.toggleNode(this.name,"paragraph",Ff)}},addInputRules(){return[textblockTypeInputRule({find:backtickInputRegex,type:this.type,getAttributes:Ff=>({language:Ff[1]})}),textblockTypeInputRule({find:tildeInputRegex,type:this.type,getAttributes:Ff=>({language:Ff[1]})})]},addKeyboardShortcuts(){const Ff=this.name;function kh(x_){return B_=>{const{state:$_,view:$P}=B_.editor,{dispatch:zP}=$P;if($_.selection.empty&&$P.endOfTextblock(x_)){let eme=x_=="left"||x_=="up"?-1:1,tme=$_.selection.$head,nme=Selection.near($_.doc.resolve(eme>0?tme.after():tme.before()),eme);if(nme.$head&&nme.$head.parent.type.name==Ff)return zP($_.tr.setSelection(nme)),!0}return!1}}return{ArrowDown:kh("down"),ArrowUp:kh("up"),ArrowLeft:kh("left"),ArrowRight:kh("right")}},addProseMirrorPlugins(){return[new Plugin({key:new PluginKey("codeBlockVSCodeHandler"),props:{handlePaste:(Ff,kh)=>{if(!kh.clipboardData||this.editor.isActive(this.type.name))return!1;const x_=kh.clipboardData.getData("text/plain"),B_=kh.clipboardData.getData("vscode-editor-data"),$_=B_?JSON.parse(B_):void 0,$P=$_==null?void 0:$_.mode;if(!x_||!$P)return!1;const{tr:zP}=Ff.state;return zP.replaceSelectionWith(this.type.create({language:$P})),zP.setSelection(TextSelection.near(zP.doc.resolve(Math.max(0,zP.selection.from-1)))),zP.insertText(x_.replace(/\r\n?/g,`
475
+ `},errorHandler=curry(throwError)(errorMessages),validators={config:validateConfig},compose=function Ff(){for(var kh=arguments.length,x_=new Array(kh),B_=0;B_<kh;B_++)x_[B_]=arguments[B_];return function($_){return x_.reduceRight(function($P,zP){return zP($P)},$_)}};function merge(Ff,kh){return Object.keys(kh).forEach(function(x_){kh[x_]instanceof Object&&Ff[x_]&&Object.assign(kh[x_],merge(Ff[x_],kh[x_]))}),_objectSpread2$1(_objectSpread2$1({},Ff),kh)}var CANCELATION_MESSAGE={type:"cancelation",msg:"operation is manually canceled"};function makeCancelable(Ff){var kh=!1,x_=new Promise(function(B_,$_){Ff.then(function($P){return kh?$_(CANCELATION_MESSAGE):B_($P)}),Ff.catch($_)});return x_.cancel=function(){return kh=!0},x_}var _excluded=["monaco"],_state$create=index.create({config:config$1,isInitialized:!1,resolve:null,reject:null,monaco:null}),_state$create2=_slicedToArray(_state$create,2),getState=_state$create2[0],setState=_state$create2[1];function config(Ff){var kh=validators.config(Ff),x_=kh.monaco,B_=_objectWithoutProperties(kh,_excluded);setState(function($_){return{config:merge($_.config,B_),monaco:x_}})}function init(){var Ff=getState(function(kh){var x_=kh.monaco,B_=kh.isInitialized,$_=kh.resolve;return{monaco:x_,isInitialized:B_,resolve:$_}});if(!Ff.isInitialized){if(setState({isInitialized:!0}),Ff.monaco)return Ff.resolve(Ff.monaco),makeCancelable(wrapperPromise);if(window.monaco&&window.monaco.editor)return storeMonacoInstance(window.monaco),Ff.resolve(window.monaco),makeCancelable(wrapperPromise);compose(injectScripts,getMonacoLoaderScript)(configureLoader)}return makeCancelable(wrapperPromise)}function injectScripts(Ff){return document.body.appendChild(Ff)}function createScript(Ff){var kh=document.createElement("script");return Ff&&(kh.src=Ff),kh}function getMonacoLoaderScript(Ff){var kh=getState(function(B_){var $_=B_.config,$P=B_.reject;return{config:$_,reject:$P}}),x_=createScript("".concat(kh.config.paths.vs,"/loader.js"));return x_.onload=function(){return Ff()},x_.onerror=kh.reject,x_}function configureLoader(){var Ff=getState(function(x_){var B_=x_.config,$_=x_.resolve,$P=x_.reject;return{config:B_,resolve:$_,reject:$P}}),kh=window.require;kh.config(Ff.config),kh(["vs/editor/editor.main"],function(x_){var B_=x_.m||x_;storeMonacoInstance(B_),Ff.resolve(B_)},function(x_){Ff.reject(x_)})}function storeMonacoInstance(Ff){getState().monaco||setState({monaco:Ff})}function __getMonacoInstance(){return getState(function(Ff){var kh=Ff.monaco;return kh})}var wrapperPromise=new Promise(function(Ff,kh){return setState({resolve:Ff,reject:kh})}),loader={config,init,__getMonacoInstance},le={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},v=le,ae={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},Y=ae;function Me({children:Ff}){return React.createElement("div",{style:Y.container},Ff)}var Z=Me,$=Z;function Ee({width:Ff,height:kh,isEditorReady:x_,loading:B_,_ref:$_,className:$P,wrapperProps:zP}){return React.createElement("section",{style:{...v.wrapper,width:Ff,height:kh},...zP},!x_&&React.createElement($,null,B_),React.createElement("div",{ref:$_,style:{...v.fullWidth,...!x_&&v.hide},className:$P}))}var ee=Ee,H=React.memo(ee);function Ce(Ff){React.useEffect(Ff,[])}var k=Ce;function he(Ff,kh,x_=!0){let B_=React.useRef(!0);React.useEffect(B_.current||!x_?()=>{B_.current=!1}:Ff,kh)}var l=he;function D(){}function h(Ff,kh,x_,B_){return De(Ff,B_)||be(Ff,kh,x_,B_)}function De(Ff,kh){return Ff.editor.getModel(te(Ff,kh))}function be(Ff,kh,x_,B_){return Ff.editor.createModel(kh,x_,B_?te(Ff,B_):void 0)}function te(Ff,kh){return Ff.Uri.parse(kh)}function Oe({original:Ff,modified:kh,language:x_,originalLanguage:B_,modifiedLanguage:$_,originalModelPath:$P,modifiedModelPath:zP,keepCurrentOriginalModel:eme=!1,keepCurrentModifiedModel:tme=!1,theme:nme="light",loading:rme="Loading...",options:ime={},height:ame="100%",width:ome="100%",className:sme,wrapperProps:cme={},beforeMount:lme=D,onMount:ume=D}){let[dme,fme]=React.useState(!1),[pme,hme]=React.useState(!0),mme=React.useRef(null),gme=React.useRef(null),Eme=React.useRef(null),_me=React.useRef(ume),bme=React.useRef(lme),Tme=React.useRef(!1);k(()=>{let Nme=loader.init();return Nme.then(Bme=>(gme.current=Bme)&&hme(!1)).catch(Bme=>(Bme==null?void 0:Bme.type)!=="cancelation"&&console.error("Monaco initialization: error:",Bme)),()=>mme.current?Ome():Nme.cancel()}),l(()=>{if(mme.current&&gme.current){let Nme=mme.current.getOriginalEditor(),Bme=h(gme.current,Ff||"",B_||x_||"text",$P||"");Bme!==Nme.getModel()&&Nme.setModel(Bme)}},[$P],dme),l(()=>{if(mme.current&&gme.current){let Nme=mme.current.getModifiedEditor(),Bme=h(gme.current,kh||"",$_||x_||"text",zP||"");Bme!==Nme.getModel()&&Nme.setModel(Bme)}},[zP],dme),l(()=>{let Nme=mme.current.getModifiedEditor();Nme.getOption(gme.current.editor.EditorOption.readOnly)?Nme.setValue(kh||""):kh!==Nme.getValue()&&(Nme.executeEdits("",[{range:Nme.getModel().getFullModelRange(),text:kh||"",forceMoveMarkers:!0}]),Nme.pushUndoStop())},[kh],dme),l(()=>{var Nme,Bme;(Bme=(Nme=mme.current)==null?void 0:Nme.getModel())==null||Bme.original.setValue(Ff||"")},[Ff],dme),l(()=>{let{original:Nme,modified:Bme}=mme.current.getModel();gme.current.editor.setModelLanguage(Nme,B_||x_||"text"),gme.current.editor.setModelLanguage(Bme,$_||x_||"text")},[x_,B_,$_],dme),l(()=>{var Nme;(Nme=gme.current)==null||Nme.editor.setTheme(nme)},[nme],dme),l(()=>{var Nme;(Nme=mme.current)==null||Nme.updateOptions(ime)},[ime],dme);let Rme=React.useCallback(()=>{var Pme;if(!gme.current)return;bme.current(gme.current);let Nme=h(gme.current,Ff||"",B_||x_||"text",$P||""),Bme=h(gme.current,kh||"",$_||x_||"text",zP||"");(Pme=mme.current)==null||Pme.setModel({original:Nme,modified:Bme})},[x_,kh,$_,Ff,B_,$P,zP]),Ime=React.useCallback(()=>{var Nme;!Tme.current&&Eme.current&&(mme.current=gme.current.editor.createDiffEditor(Eme.current,{automaticLayout:!0,...ime}),Rme(),(Nme=gme.current)==null||Nme.editor.setTheme(nme),fme(!0),Tme.current=!0)},[ime,nme,Rme]);React.useEffect(()=>{dme&&_me.current(mme.current,gme.current)},[dme]),React.useEffect(()=>{!pme&&!dme&&Ime()},[pme,dme,Ime]);function Ome(){var Bme,Pme,Dme,Vme;let Nme=(Bme=mme.current)==null?void 0:Bme.getModel();eme||((Pme=Nme==null?void 0:Nme.original)==null||Pme.dispose()),tme||((Dme=Nme==null?void 0:Nme.modified)==null||Dme.dispose()),(Vme=mme.current)==null||Vme.dispose()}return React.createElement(H,{width:ome,height:ame,isEditorReady:dme,loading:rme,_ref:Eme,className:sme,wrapperProps:cme})}var ie=Oe;React.memo(ie);function Pe(){let[Ff,kh]=React.useState(loader.__getMonacoInstance());return k(()=>{let x_;return Ff||(x_=loader.init(),x_.then(B_=>{kh(B_)})),()=>x_==null?void 0:x_.cancel()}),Ff}var Le=Pe;function He(Ff){let kh=React.useRef();return React.useEffect(()=>{kh.current=Ff},[Ff]),kh.current}var se=He,_=new Map;function Ve({defaultValue:Ff,defaultLanguage:kh,defaultPath:x_,value:B_,language:$_,path:$P,theme:zP="light",line:eme,loading:tme="Loading...",options:nme={},overrideServices:rme={},saveViewState:ime=!0,keepCurrentModel:ame=!1,width:ome="100%",height:sme="100%",className:cme,wrapperProps:lme={},beforeMount:ume=D,onMount:dme=D,onChange:fme,onValidate:pme=D}){let[hme,mme]=React.useState(!1),[gme,Eme]=React.useState(!0),_me=React.useRef(null),bme=React.useRef(null),Tme=React.useRef(null),Rme=React.useRef(dme),Ime=React.useRef(ume),Ome=React.useRef(),Nme=React.useRef(B_),Bme=se($P),Pme=React.useRef(!1),Dme=React.useRef(!1);k(()=>{let Lme=loader.init();return Lme.then(Fme=>(_me.current=Fme)&&Eme(!1)).catch(Fme=>(Fme==null?void 0:Fme.type)!=="cancelation"&&console.error("Monaco initialization: error:",Fme)),()=>bme.current?Ame():Lme.cancel()}),l(()=>{var Fme,Sme,vme,Cme;let Lme=h(_me.current,Ff||B_||"",kh||$_||"",$P||x_||"");Lme!==((Fme=bme.current)==null?void 0:Fme.getModel())&&(ime&&_.set(Bme,(Sme=bme.current)==null?void 0:Sme.saveViewState()),(vme=bme.current)==null||vme.setModel(Lme),ime&&((Cme=bme.current)==null||Cme.restoreViewState(_.get($P))))},[$P],hme),l(()=>{var Lme;(Lme=bme.current)==null||Lme.updateOptions(nme)},[nme],hme),l(()=>{!bme.current||B_===void 0||(bme.current.getOption(_me.current.editor.EditorOption.readOnly)?bme.current.setValue(B_):B_!==bme.current.getValue()&&(Dme.current=!0,bme.current.executeEdits("",[{range:bme.current.getModel().getFullModelRange(),text:B_,forceMoveMarkers:!0}]),bme.current.pushUndoStop(),Dme.current=!1))},[B_],hme),l(()=>{var Fme,Sme;let Lme=(Fme=bme.current)==null?void 0:Fme.getModel();Lme&&$_&&((Sme=_me.current)==null||Sme.editor.setModelLanguage(Lme,$_))},[$_],hme),l(()=>{var Lme;eme!==void 0&&((Lme=bme.current)==null||Lme.revealLine(eme))},[eme],hme),l(()=>{var Lme;(Lme=_me.current)==null||Lme.editor.setTheme(zP)},[zP],hme);let Vme=React.useCallback(()=>{var Lme;if(!(!Tme.current||!_me.current)&&!Pme.current){Ime.current(_me.current);let Fme=$P||x_,Sme=h(_me.current,B_||Ff||"",kh||$_||"",Fme||"");bme.current=(Lme=_me.current)==null?void 0:Lme.editor.create(Tme.current,{model:Sme,automaticLayout:!0,...nme},rme),ime&&bme.current.restoreViewState(_.get(Fme)),_me.current.editor.setTheme(zP),eme!==void 0&&bme.current.revealLine(eme),mme(!0),Pme.current=!0}},[Ff,kh,x_,B_,$_,$P,nme,rme,ime,zP,eme]);React.useEffect(()=>{hme&&Rme.current(bme.current,_me.current)},[hme]),React.useEffect(()=>{!gme&&!hme&&Vme()},[gme,hme,Vme]),Nme.current=B_,React.useEffect(()=>{var Lme,Fme;hme&&fme&&((Lme=Ome.current)==null||Lme.dispose(),Ome.current=(Fme=bme.current)==null?void 0:Fme.onDidChangeModelContent(Sme=>{Dme.current||fme(bme.current.getValue(),Sme)}))},[hme,fme]),React.useEffect(()=>{if(hme){let Lme=_me.current.editor.onDidChangeMarkers(Fme=>{var vme;let Sme=(vme=bme.current.getModel())==null?void 0:vme.uri;if(Sme&&Fme.find(Cme=>Cme.path===Sme.path)){let Cme=_me.current.editor.getModelMarkers({resource:Sme});pme==null||pme(Cme)}});return()=>{Lme==null||Lme.dispose()}}return()=>{}},[hme,pme]);function Ame(){var Lme,Fme;(Lme=Ome.current)==null||Lme.dispose(),ame?ime&&_.set($P,bme.current.saveViewState()):(Fme=bme.current.getModel())==null||Fme.dispose(),bme.current.dispose()}return React.createElement(H,{width:ome,height:sme,isEditorReady:hme,loading:tme,_ref:Tme,className:cme,wrapperProps:lme})}var fe=Ve,de=React.memo(fe),Ft=de;loader.config({paths:{vs:"https://statics.oscollege.net/min/vs"},"vs/nls":{availableLanguages:{"*":"zh-cn"}}});function MonacoEditor(Ff){const{value:kh,language:x_="plaintext",style:B_,className:$_,defaultValue:$P,readOnly:zP=!1}=Ff,eme=Le(),tme=(nme,rme)=>{var ime;(ime=Ff.onChange)==null||ime.call(Ff,nme||"",rme)};return React.useEffect(()=>{eme&&(eme.editor.defineTheme("custom",{base:"vs",inherit:!0,rules:[],encodedTokensColors:[],colors:{"editor.background":"#f7f8fa"}}),eme.editor.setTheme("custom"))},[eme]),jsxRuntimeExports.jsx("div",{className:classNames(["run-monaco-editor",$_]),style:B_,children:jsxRuntimeExports.jsx(Ft,{theme:"custom",defaultValue:$P,language:x_,value:kh,loading:jsxRuntimeExports.jsx("span",{style:{color:"#cccccc"},children:"加载中..."}),className:"monaco-editor-container",onChange:tme,onMount:Ff.onMount,options:{fontSize:14,lineHeight:18,readOnly:zP,lineNumbers:"off",minimap:{enabled:!1},renderLineHighlight:"none",scrollbar:{vertical:"hidden",horizontal:"hidden"},automaticLayout:!0,overviewRulerLanes:0}})})}function Select(Ff){const{options:kh,checked:x_,onChange:B_,placeHolder:$_="请选择",disabled:$P=!1}=Ff,zP=kh==null?void 0:kh.map(ime=>{const ame=typeof ime=="string";return{key:ame?ime:ime.value,label:ame?ime:ime.label}}),[eme,tme]=React.useState(x_);React.useEffect(()=>{tme(x_)},[x_]);const nme=React.useMemo(()=>eme?typeof eme=="string"?[eme]:[eme.value]:[],[eme]),rme=React.useMemo(()=>{if(!eme)return"";if(typeof eme=="string"){const ime=zP==null?void 0:zP.find(ame=>(ame==null?void 0:ame.key)===eme);return(ime==null?void 0:ime.label)||eme}return eme.label},[eme,zP]);return jsxRuntimeExports.jsx(antd.Dropdown,{menu:{items:zP,selectable:!0,selectedKeys:nme,onSelect:({key:ime})=>{if(typeof(kh==null?void 0:kh[0])=="string")tme(ime),B_==null||B_(ime);else{const ome=kh==null?void 0:kh.find(sme=>sme.value===ime);tme(ome),B_==null||B_(ome)}}},rootClassName:"run-code-select-drop",trigger:["click"],disabled:$P,children:jsxRuntimeExports.jsxs("div",{className:"run-code-select",children:[eme?jsxRuntimeExports.jsx("span",{className:"run-code-select-select",children:rme}):jsxRuntimeExports.jsx("span",{className:"run-code-select-placeholder",children:$_}),jsxRuntimeExports.jsx(DownOutlined$1,{style:{fontSize:16,color:"#cccccc"}})]})})}function TooltipWhite(Ff){const{children:kh,title:x_,placement:B_="bottom",arrow:$_=!1,trigger:$P="hover",rootClassName:zP}=Ff;return jsxRuntimeExports.jsx(antd.Tooltip,{trigger:$P,rootClassName:classNames(["run-code-tooltip",zP]),color:"white",title:x_,placement:B_,arrow:$_,children:kh})}function Btn(Ff){const{icon:kh,onClick:x_,disabled:B_=!1}=Ff;return jsxRuntimeExports.jsx("div",{className:"run-code-btn","data-disabled":B_,onClick:()=>{B_||x_==null||x_()},children:kh})}const useVerticalDrag=(Ff,kh)=>{const x_=React.useRef(!1),B_=React.useRef(0),$_=React.useCallback(eme=>{Ff.current&&(x_.current=!0,B_.current=eme.clientY)},[Ff]),$P=React.useCallback(eme=>{if(!x_.current||!Ff.current)return;const tme=eme.clientY-B_.current;kh(tme),B_.current=eme.clientY},[Ff,kh]),zP=React.useCallback(()=>{Ff.current&&(x_.current=!1)},[Ff]);return React.useEffect(()=>{if(!Ff.current)return;const eme=Ff.current;return eme.addEventListener("mousedown",$_),document.addEventListener("mousemove",$P),document.addEventListener("mouseup",zP),()=>{eme.removeEventListener("mousedown",$_),document.removeEventListener("mousemove",$P),document.removeEventListener("mouseup",zP)}},[Ff,$_,$P,zP]),{isDragging:x_.current}},languagesList=[{label:"Plaintext",value:"plaintext"},{label:"Markdown",value:"markdown"},{label:"HTML",value:"html"},{label:"XML",value:"xml"},{label:"CSS",value:"css"},{label:"SCSS/SASS",value:"scss"},{label:"JavaScript",value:"javascript"},{label:"TypeScript",value:"typescript"},{label:"Vue",value:"vue"},{label:"React JSX",value:"jsx"},{label:"React TSX",value:"tsx"},{label:"Java",value:"java"},{label:"Python",value:"python"},{label:"Python3",value:"python3"},{label:"Rust",value:"rust"},{label:"VB",value:"vb"},{label:"GoLang",value:"golang"},{label:"PHP",value:"php"},{label:"C++",value:"cpp"},{label:"C#",value:"csharp"},{label:"C",value:"c"},{label:"Ruby",value:"ruby"},{label:"Kotlin",value:"kotlin"},{label:"Swift",value:"swift"},{label:"Objective-C",value:"objectivec"},{label:"Shell",value:"shell"},{label:"PowerShell",value:"powershell"},{label:"Batch",value:"batch"},{label:"Bash",value:"bash"},{label:"System Verilog",value:"systemverilog"},{label:"JSON",value:"json"},{label:"YAML",value:"yaml"},{label:"TOML",value:"toml"},{label:"MySQL",value:"mysql"},{label:"Redis",value:"redis"},{label:"Dockerfile",value:"dockerfile"},{label:"Makefile",value:"makefile"},{label:"Groovy",value:"groovy"},{label:"Perl",value:"perl"},{label:"R",value:"r"},{label:"Lua",value:"lua"}];function NodeView(Ff){const{editor:kh,node:x_,updateAttributes:B_,extension:$_,getPos:$P,deleteNode:zP}=Ff,eme=React.useRef(null),tme=React.useRef(null),nme=React.useRef(null),rme=React.useRef(null),ime=React.useRef(null),ame=React.useRef(!1),[ome,sme]=React.useState([]),[cme,lme]=React.useState(),{language:ume=languagesList[0].value}=x_.attrs,{codePlayerLanguageList:dme=[],template:fme}=React.useContext(shareData),pme=React.useMemo(()=>x_.textContent,[x_.textContent]),hme=React.useMemo(()=>kh.isEditable,[kh==null?void 0:kh.isEditable]);useVerticalDrag(eme,bme=>{var Tme;tme.current&&(tme.current.style.height=((Tme=tme.current)==null?void 0:Tme.getBoundingClientRect().height)+bme+"px")}),useVerticalDrag(rme,bme=>{var Tme,Rme;if(nme.current){nme.current.style.height=((Tme=nme.current)==null?void 0:Tme.getBoundingClientRect().height)+bme+"px";return}tme.current&&(tme.current.style.height=((Rme=tme.current)==null?void 0:Rme.getBoundingClientRect().height)+bme+"px")});const mme=bme=>{if(navigator.clipboard&&window.isSecureContext)navigator.clipboard.writeText(bme.trim());else{const Tme=document.createElement("input");Tme.value=bme.trim(),document.body.appendChild(Tme),Tme.select(),document.execCommand("copy"),document.body.removeChild(Tme)}antd.message.success("复制成功")},[gme,Eme]=React.useState(),_me=React.useCallback(async(bme,Tme)=>{if(bme.trim()&&$_.options.onCodeExec)try{const Rme=await $_.options.onCodeExec({language:Tme,code:bme,template:fme});Eme({output:Rme});const Ime={key:"result",icon:jsxRuntimeExports.jsx(PlayCircleTwoTone$1,{twoToneColor:["rgb(107,195,72)","transparent"],style:{fontSize:16}}),title:"运行结果"};sme([Ime]),lme(Ime.key)}catch(Rme){console.log("error",Rme)}},[$P,x_,fme]);return React.useEffect(()=>{if(!kh||!hme)return;const bme=({editor:Tme})=>{if(ame.current)return;const{selection:Rme}=Tme.state,{from:Ime,to:Ome}=Rme;if(typeof $P=="function"){const Nme=$P();if(Nme===void 0)return;const Bme=Nme+1,Pme=Nme+x_.nodeSize-1;if(Ime>=Bme&&Ome<=Pme&&ime.current){const Dme=ime.current.getModel();if(!Dme)return;const Vme=Ime-Bme,Ame=Ome-Bme,Lme=Math.max(0,Math.min(Vme,Dme.getValueLength())),Fme=Math.max(0,Math.min(Ame,Dme.getValueLength())),Sme=Dme.getPositionAt(Lme),vme=Dme.getPositionAt(Fme),Cme=ime.current.getSelection();if(Cme&&Cme.startLineNumber===Sme.lineNumber&&Cme.startColumn===Sme.column&&Cme.endLineNumber===vme.lineNumber&&Cme.endColumn===vme.column){ime.current.hasTextFocus()||ime.current.focus();return}ame.current=!0,ime.current.setSelection({startLineNumber:Sme.lineNumber,startColumn:Sme.column,endLineNumber:vme.lineNumber,endColumn:vme.column}),ime.current.hasTextFocus()||ime.current.focus(),ame.current=!1}}};return kh.on("selectionUpdate",bme),()=>{kh.off("selectionUpdate",bme)}},[kh,$P,x_,hme]),jsxRuntimeExports.jsx(NodeViewWrapper,{contentEditable:!1,children:jsxRuntimeExports.jsxs("div",{className:"run-code-block",children:[jsxRuntimeExports.jsxs("div",{className:"run-code-block-header center",children:[jsxRuntimeExports.jsxs("div",{className:"run-code-block-header-left center",children:[jsxRuntimeExports.jsx(Select,{disabled:!hme,options:languagesList,checked:ume,placeHolder:"选择语言",onChange:bme=>{B_({language:typeof bme=="string"?bme:bme.value})}}),(fme==null?void 0:fme.name)&&jsxRuntimeExports.jsx("div",{className:"run-code-template",children:fme.name})]}),jsxRuntimeExports.jsxs("div",{className:"run-code-block-header-right center",children:[jsxRuntimeExports.jsx(TooltipWhite,{title:"复制",placement:"top",children:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(Btn,{onClick:()=>{mme(x_.textContent||"")},icon:jsxRuntimeExports.jsx(CopyOutlined$1,{style:{fontSize:16,color:"#666666"}})})})}),ume&&$_.options.onCodeExec&&jsxRuntimeExports.jsx(TooltipWhite,{title:"运行",placement:"top",children:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(Btn,{onClick:()=>{_me==null||_me(x_.textContent||"",ume)},icon:jsxRuntimeExports.jsx(PlayCircleTwoTone$1,{twoToneColor:["#666666","transparent"],style:{fontSize:16}})})})})]})]}),jsxRuntimeExports.jsx("div",{className:"run-code-block-editor",ref:tme,children:jsxRuntimeExports.jsx(MonacoEditor,{readOnly:!hme,value:pme,language:ume,onChange:(bme,Tme)=>{if(hme&&!ame.current&&typeof $P=="function"){const Rme=$P();if(Rme===void 0)return;const Ime=kh.view.state.tr,Ome=Rme+1;Tme.changes.forEach(Nme=>{const Bme=Ome+Nme.rangeOffset,Pme=Bme+Nme.rangeLength;Nme.text?Ime.insertText(Nme.text,Bme,Pme):Ime.delete(Bme,Pme)}),ame.current=!0,kh.view.dispatch(Ime),ame.current=!1}},onMount:(bme,Tme)=>{ime.current=bme,bme.onKeyDown(Rme=>{if(!hme)return;const Ime=(Ome,Nme)=>{const Bme=bme.getSelection();if(!Bme||!Bme.isEmpty())return!1;const{startLineNumber:Pme,startColumn:Dme}=Bme,Vme=bme.getModel();if(!Vme)return!1;const Ame=Vme.getLineCount(),Lme=Pme===1,Fme=Pme===Ame,Sme=Lme&&Dme===1,vme=Vme.getLineContent(Pme),Cme=Fme&&Dme===vme.length+1;if(Nme<0){if(Ome==="line"){if(!Lme)return!1}else if(!Sme)return!1}else if(Ome==="line"){if(!Fme)return!1}else if(!Cme)return!1;if(typeof $P=="function"){const yme=$P();if(yme===void 0)return!1;const wme=kh.state.doc.nodeAt(yme),Mme=wme?wme.nodeSize:x_.nodeSize,Ume=yme+(Nme<0?0:Mme),jme=Selection.near(kh.view.state.doc.resolve(Ume),Nme);return kh.view.dispatch(kh.view.state.tr.setSelection(jme).scrollIntoView()),kh.view.focus(),!0}return!1};if(Rme.keyCode===Tme.KeyCode.UpArrow)Ime("line",-1)&&(Rme.preventDefault(),Rme.stopPropagation());else if(Rme.keyCode===Tme.KeyCode.DownArrow)Ime("line",1)&&(Rme.preventDefault(),Rme.stopPropagation());else if(Rme.keyCode===Tme.KeyCode.LeftArrow)Ime("char",-1)&&(Rme.preventDefault(),Rme.stopPropagation());else if(Rme.keyCode===Tme.KeyCode.RightArrow)Ime("char",1)&&(Rme.preventDefault(),Rme.stopPropagation());else if(Rme.keyCode===Tme.KeyCode.Backspace||Rme.keyCode===Tme.KeyCode.Delete){const Ome=bme.getModel();if(Ome&&Ome.getValue()===""){if(typeof $P=="function"){const Nme=$P();if(Nme!==void 0){const Bme=Math.max(1,Nme-1);kh.commands.focus(Bme),zP()}}Rme.preventDefault(),Rme.stopPropagation()}}else if(Rme.keyCode===Tme.KeyCode.Enter&&(Rme.ctrlKey||Rme.metaKey)&&typeof $P=="function"){const Ome=$P();if(Ome!==void 0){const Nme=kh.state.doc.nodeAt(Ome),Bme=Nme?Nme.nodeSize:x_.nodeSize,Pme=kh.state.tr.insert(Ome+Bme,kh.schema.nodes.paragraph.create());kh.view.dispatch(Pme),kh.commands.focus(Ome+Bme+1),Rme.preventDefault(),Rme.stopPropagation()}}})}})}),ome.length>0&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"run-code-block-line",ref:eme}),jsxRuntimeExports.jsx("div",{className:"run-code-block-tabs",children:ome.map(bme=>jsxRuntimeExports.jsxs("div",{onClick:()=>{lme(bme.key)},className:"run-code-block-tabs-tab center","data-active":bme.key===cme,children:[bme.icon,jsxRuntimeExports.jsx("span",{className:"run-code-block-tabs-tab-title",children:bme.title}),jsxRuntimeExports.jsx(CloseOutlined$1,{onClick:Tme=>{var Ime;Tme.stopPropagation();const Rme=ome.filter(Ome=>Ome.key!==bme.key);sme(Rme),bme.key===cme&&lme(((Ime=Rme[0])==null?void 0:Ime.key)||void 0)},style:{fontSize:16}})]},bme.key))}),ome.length>0&&jsxRuntimeExports.jsx("div",{className:"run-code-block-result",ref:nme,children:cme==="result"&&(gme==null?void 0:gme.output)})]}),jsxRuntimeExports.jsx("div",{className:"run-code-block-thumb",children:jsxRuntimeExports.jsxs("div",{ref:rme,onClick:bme=>{bme.preventDefault()},children:[jsxRuntimeExports.jsx("span",{}),jsxRuntimeExports.jsx("span",{})]})})]})})}const backtickInputRegex=/^```([a-z]+)?[\s\n]$/,tildeInputRegex=/^~~~([a-z]+)?[\s\n]$/,RunCodeBlock=Node$1.create({name:"codeBlock",addOptions(){return{languageClassPrefix:"language-",exitOnTripleEnter:!0,exitOnArrowDown:!0,HTMLAttributes:{class:"run-code-block"}}},content:"text*",marks:"",group:"block",code:!0,defining:!0,addAttributes(){return{language:{default:null,parseHTML:Ff=>{var $P;const{languageClassPrefix:kh}=this.options,$_=[...(($P=Ff.firstElementChild)==null?void 0:$P.classList)||[]].filter(zP=>zP.startsWith(kh)).map(zP=>zP.replace(kh,""))[0];return $_||null},rendered:!1}}},parseHTML(){return[{tag:"pre",preserveWhitespace:"full"}]},renderHTML({node:Ff,HTMLAttributes:kh}){return["pre",mergeAttributes(this.options.HTMLAttributes,kh),["code",{class:Ff.attrs.language?this.options.languageClassPrefix+Ff.attrs.language:null},0]]},addNodeView(){return ReactNodeViewRenderer(NodeView)},addCommands(){return{setCodeBlock:Ff=>({commands:kh})=>kh.setNode(this.name,Ff),toggleCodeBlock:Ff=>({commands:kh})=>kh.toggleNode(this.name,"paragraph",Ff)}},addInputRules(){return[textblockTypeInputRule({find:backtickInputRegex,type:this.type,getAttributes:Ff=>({language:Ff[1]})}),textblockTypeInputRule({find:tildeInputRegex,type:this.type,getAttributes:Ff=>({language:Ff[1]})})]},addKeyboardShortcuts(){const Ff=this.name;function kh(x_){return B_=>{const{state:$_,view:$P}=B_.editor,{dispatch:zP}=$P;if($_.selection.empty&&$P.endOfTextblock(x_)){let eme=x_=="left"||x_=="up"?-1:1,tme=$_.selection.$head,nme=Selection.near($_.doc.resolve(eme>0?tme.after():tme.before()),eme);if(nme.$head&&nme.$head.parent.type.name==Ff)return zP($_.tr.setSelection(nme)),!0}return!1}}return{ArrowDown:kh("down"),ArrowUp:kh("up"),ArrowLeft:kh("left"),ArrowRight:kh("right")}},addProseMirrorPlugins(){return[new Plugin({key:new PluginKey("codeBlockVSCodeHandler"),props:{handlePaste:(Ff,kh)=>{if(!kh.clipboardData||this.editor.isActive(this.type.name))return!1;const x_=kh.clipboardData.getData("text/plain"),B_=kh.clipboardData.getData("vscode-editor-data"),$_=B_?JSON.parse(B_):void 0,$P=$_==null?void 0:$_.mode;if(!x_||!$P)return!1;const{tr:zP}=Ff.state;return zP.replaceSelectionWith(this.type.create({language:$P})),zP.setSelection(TextSelection.near(zP.doc.resolve(Math.max(0,zP.selection.from-1)))),zP.insertText(x_.replace(/\r\n?/g,`
476
476
  `)),zP.setMeta("paste",!0),Ff.dispatch(zP),!0}}})]}}),{BubbleMenu,BubbleMenuView}=bubbleModules;let Editor=(Ff,kh)=>{var L_e,qme;const{showTitle:x_=!0,showCatalogue:B_=!0,editable:$_=!0,apiUrl:$P="https://openapi-test.oscollege.net",wsUrl:zP,templateInfo:eme,markdownText:tme,setHeader:nme,title:rme,titleOnChange:ime,titleEditable:ame=!0,onExec:ome,onCodeExec:sme,onBack:cme,finish:lme,reportData:ume,getActivity:dme,removeActivity:fme,updateActivity:pme,submitActivity:hme,codePlayerConnect:mme,xternUrl:gme,codePlayerLanguageList:Eme,showTemplate:_me,imageOnClick:bme,disableCopy:Tme=!1}=Ff,[Rme,Ime]=React.useState(gme);React.useEffect(()=>{Ime(gme)},[gme]);const[Ome,Nme]=React.useState(),[Bme,Pme]=React.useState(),Dme=useEditor({content:{type:"document",content:[{type:"title",content:rme?[{type:"text",text:rme}]:[]},{type:"paragraph"}]},extensions:[HardBreak,HorizontalRule,BulletList,OrderedList,ListItem$2,Table.configure({resizable:$_}),TableRow,TableHeader,TableCell,Blockquote,Heading,Document$3,Title.configure({onChange:Wme=>{ime==null||ime(Wme)},titleEditable:ame}),Paragraph,Text$1,Code.configure({HTMLAttributes:{class:"inline-code"}}),Bold,Italic,Strike,Underline,Subscript,Superscript,Placeholder,TextStyle$2,History,Link.configure({openOnClick:!0}),Color.configure({types:["textStyle"]}),TextAlign.configure({types:["title","heading","paragraph","image"]}),BubbleMenu.configure({component:BubbleMenuView}),FloatingMenu,Image$1.configure({oss:$P,onClick(Wme){bme==null||bme(Wme)}}),RunCodeBlock.configure({onCodeExec:sme}),Active.configure({reportData:Wme=>{ume==null||ume(Wme)},getActivity:dme,removeActivity:fme,updateActivity:pme,submitActivity:hme,codePlayerConnect:mme,onExec:Wme=>{ome==null||ome(Wme)}}),PdfView.extend({addNodeView(){return ReactNodeViewRenderer(PdfViewShow)}}),Slash,Fragment]},[]),[Vme,Ame]=React.useState(!0),[Lme,Fme]=React.useState(!1),[Sme,vme]=React.useState(!0),[Cme,yme]=React.useState(),[wme,Mme]=React.useState(!1),[Ume,jme]=React.useState(void 0),[Hme,zme]=React.useState(void 0),[e_e,Qme]=React.useState(!0),[a_e,S_e]=React.useState(),[p_e,I_e]=React.useState(),[O_e,D_e]=React.useState(!0),R_e=()=>{try{Cme&&(Cme==null?void 0:Cme.readyState)===1&&(Cme==null||Cme.close(4999));const Wme=new WebSocket(zP);yme(Wme),Mme(!1),Wme.onmessage=function(d_e){const{data:y_e}=d_e;try{const x_e=JSON.parse(y_e),M_e=x_e==null?void 0:x_e.type,N_e=x_e==null?void 0:x_e.data;if(M_e==="read")if(N_e)try{const l_e=base64ToText(N_e);Nme(l_e);const t_e=markdownToJson(l_e);Pme(t_e);const n_e=toEditorJSON(t_e);jme(n_e)}catch{__e()}else jme("")}catch(x_e){console.log(x_e)}},Wme.onclose=function(d_e){const y_e=d_e.code;y_e<3e3&&y_e!==1005&&Mme(!0)}}catch(Wme){console.log(Wme)}},__e=()=>{antd.Modal.confirm({title:"切换失败!",icon:jsxRuntimeExports.jsx(ExclamationCircleFilled$1,{}),content:"因数据格式存在不兼容问题,本次切换失败,若选择留在当前编辑器,数据将会丢失,请谨慎操作。",cancelText:"留在当前",okText:"返回原编辑器",onOk(){cme==null||cme()},onCancel(){jme("")}})};React.useEffect(()=>{var Wme,d_e,y_e,x_e,M_e;if(tme&&nme)if((d_e=(Wme=Dme==null?void 0:Dme.view)==null?void 0:Wme.docView)!=null&&d_e.children){const N_e=(x_e=(y_e=Dme==null?void 0:Dme.view)==null?void 0:y_e.docView)==null?void 0:x_e.children;if(!N_e){nme([]);return}const l_e=(M_e=N_e==null?void 0:N_e.filter(t_e=>{var n_e,Kme;return((Kme=(n_e=t_e==null?void 0:t_e.node)==null?void 0:n_e.type)==null?void 0:Kme.name)==="heading"}))==null?void 0:M_e.map(t_e=>{var n_e,Kme,T_e,A_e;return{from:t_e==null?void 0:t_e.posAtStart,to:t_e==null?void 0:t_e.posAtEnd,text:(n_e=t_e==null?void 0:t_e.node)==null?void 0:n_e.textContent,level:(T_e=(Kme=t_e==null?void 0:t_e.node)==null?void 0:Kme.attrs)==null?void 0:T_e.level,id:(A_e=t_e==null?void 0:t_e.nodeDOM)==null?void 0:A_e.id}});nme(l_e)}else nme([])},[(qme=(L_e=Dme==null?void 0:Dme.view)==null?void 0:L_e.docView)==null?void 0:qme.children,tme]),React.useEffect(()=>{if(wme){const Wme=setTimeout(()=>{clearTimeout(Wme),R_e()},1e3)}},[wme]),React.useEffect(()=>()=>{Cme&&(Cme==null?void 0:Cme.readyState)===1&&(Cme==null||Cme.close(4999))},[Cme]),React.useEffect(()=>(zP&&(jme(void 0),Qme(!0),R_e()),()=>{Qme(!0),Fme(!1)}),[zP]);const u_e=React.useCallback(()=>{zme(Dme==null?void 0:Dme.getJSON())},[Dme]);React.useEffect(()=>{if(Hme!==void 0){a_e&&clearTimeout(a_e);const Wme=setTimeout(()=>{var M_e;let d_e=Hme;d_e={...d_e,content:(M_e=d_e==null?void 0:d_e.content)==null?void 0:M_e.filter(N_e=>(N_e==null?void 0:N_e.type)!=="title")};const y_e=toMarkdownJson(d_e),x_e=jsonToMarkdown(y_e);if(Nme(x_e),(Cme==null?void 0:Cme.readyState)===1){const N_e=x_e?textToBase64(x_e):"";Cme==null||Cme.send(JSON.stringify({type:"write",data:N_e}))}clearTimeout(Wme),S_e("")},500);S_e(Wme)}},[Hme]),React.useEffect(()=>(Dme&&!e_e&&(Dme==null||Dme.on("update",u_e)),()=>{Dme&&(Dme==null||Dme.off("update",u_e))}),[Dme,e_e]),React.useEffect(()=>{let Wme=null;return Dme&&Ume!==void 0&&e_e&&(Wme=setTimeout(()=>{if(x_){const d_e={type:"title",content:rme?[{type:"text",text:rme}]:[]},y_e=Ume?{...Ume,content:Ume!=null&&Ume.content?[d_e,...Ume.content]:[d_e]}:{type:"document",content:[d_e]};Dme.commands.setContent(y_e)}else Dme.commands.setContent(Ume);Qme(!1),Fme(!0)},0)),()=>{Wme&&clearTimeout(Wme)}},[Ume,Dme,e_e,rme,x_]),React.useEffect(()=>{Dme&&Dme.setEditable($_)},[Dme,$_]);const s_e=React.useRef(null);React.useEffect(()=>{const Wme=new ResizeObserver(d_e=>{for(const y_e of d_e)y_e.contentRect.width<700?vme(!1):vme(!0)});return s_e!=null&&s_e.current&&Wme.observe(s_e==null?void 0:s_e.current),()=>{s_e!=null&&s_e.current&&Wme.unobserve(s_e==null?void 0:s_e.current)}},[]),React.useEffect(()=>{const Wme=d_e=>{var y_e,x_e,M_e,N_e,l_e;if(((y_e=d_e==null?void 0:d_e.data)==null?void 0:y_e.type)==="sectionChange"){const t_e=(M_e=(x_e=d_e==null?void 0:d_e.data)==null?void 0:x_e.value)==null?void 0:M_e.template;t_e!=null&&t_e.experEnv?I_e(t_e):I_e("")}else((N_e=d_e==null?void 0:d_e.data)==null?void 0:N_e.type)==="permit-available"&&D_e((l_e=d_e==null?void 0:d_e.data)==null?void 0:l_e.value)};return window.addEventListener("message",Wme),()=>{window.removeEventListener("message",Wme)}},[Dme]),React.useEffect(()=>{eme!=null&&eme.experEnv?I_e(eme):I_e("")},[eme]),React.useEffect(()=>{if(tme){const Wme=markdownToJson(tme),d_e=toEditorJSON(Wme);jme(d_e)}},[tme]),React.useImperativeHandle(kh,()=>({editor:Dme,update:()=>{const Wme=setTimeout(()=>{var d_e;(d_e=Dme==null?void 0:Dme.commands)==null||d_e.clearContent(),Qme(!0),Fme(!1),clearTimeout(Wme)},500)},changeXternUrl:Wme=>{Ime(Wme)},addActive:Wme=>{if(Wme!=null&&Wme.id){console.log("🚀",Wme);const d_e=()=>{var M_e,N_e,l_e,t_e;return(t_e=(l_e=(N_e=(M_e=Dme==null?void 0:Dme.chain())==null?void 0:M_e.focus(Wme==null?void 0:Wme.pos))==null?void 0:N_e.setQuestion({id:Wme==null?void 0:Wme.id,language:Wme==null?void 0:Wme.language}))==null?void 0:l_e.hideTip())==null?void 0:t_e.run()},y_e=(M_e,N_e=2)=>{const{state:l_e,view:t_e}=M_e,{tr:n_e,selection:Kme}=l_e,T_e=M_e.schema.nodes.paragraph.create();n_e.insert(Kme.to+N_e,T_e),t_e.dispatch(n_e)},x_e=Dme==null?void 0:Dme.view.state.doc.nodeAt(((Wme==null?void 0:Wme.pos)||0)+1);d_e()&&(x_e||y_e(Dme,1))}},batchAddActive:Wme=>{if(Dme){const{state:d_e,schema:y_e}=Dme,{selection:x_e}=d_e,M_e=[];Wme==null||Wme.forEach(N_e=>{const l_e=y_e.nodes.active.create({id:N_e==null?void 0:N_e.id,language:N_e==null?void 0:N_e.type});M_e.push(l_e.toJSON())}),Dme.commands.insertContentAt(x_e.from,M_e)}},getMdText:()=>Ome,setTitle:Wme=>{const d_e=Dme==null?void 0:Dme.view.state.doc.content.child(0);Dme==null||Dme.view.dispatch(Dme==null?void 0:Dme.view.state.tr.insertText(Wme,1,d_e==null?void 0:d_e.nodeSize))},changeMdTest:Wme=>{console.log(Wme,Bme);const d_e=[];Bme==null||Bme.children.forEach(M_e=>{((M_e==null?void 0:M_e.props)!=="active"||(M_e==null?void 0:M_e.value)!==Wme[0].value)&&d_e.push(M_e)}),Bme.children=d_e;const y_e=jsonToMarkdown(Bme);if(Nme(y_e),(Cme==null?void 0:Cme.readyState)===1){const M_e=y_e?textToBase64(y_e):"";Cme==null||Cme.send(JSON.stringify({type:"write",data:M_e}))}const x_e=setTimeout(()=>{var M_e;(M_e=Dme==null?void 0:Dme.commands)==null||M_e.clearContent(),Qme(!0),clearTimeout(x_e)},500)}}));const C_e=React.useRef(null);return React.useEffect(()=>{var d_e;const Wme=y_e=>{y_e.preventDefault()};return Tme&&((d_e=C_e.current)==null||d_e.addEventListener("copy",Wme,!0)),()=>{var y_e;(y_e=C_e.current)==null||y_e.removeEventListener("copy",Wme,!0)}},[Tme]),jsxRuntimeExports.jsx(shareData.Provider,{value:{editor:Dme,template:p_e,apiUrl:$P,xternUrl:Rme,available:O_e,codePlayerLanguageList:Eme},children:jsxRuntimeExports.jsxs("div",{className:"ylz-editor",ref:s_e,children:[jsxRuntimeExports.jsxs("div",{ref:C_e,id:"ylz-editor-container","data-finish":!!lme,className:`ylz-editor-container${!B_||Sme===!1||!Vme?" ylz-editor-container-max":""}${$_?"":" ylz-editor-container-read"}`,children:[jsxRuntimeExports.jsx(EditorContent,{editor:Dme}),lme?jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("div",{className:"ylz-editor-container-footer",children:jsxRuntimeExports.jsx("button",{className:"ylz-editor-container-footer-btn",onClick:lme,children:"完成"})})}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{})]}),B_&&jsxRuntimeExports.jsx(Catalogue,{editor:Dme,isUpdate:Lme,canOpenCatalogue:Sme,onChangeVisible:Wme=>Ame(Wme)})]})})};Editor=React.forwardRef(Editor),Editor=React.memo(Editor);const Editor$1=Editor;return Editor$1});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ylzcc/editor",
3
- "version": "0.19.0",
3
+ "version": "0.21.0",
4
4
  "type": "module",
5
5
  "description": "editor ui components",
6
6
  "keywords": [