@ylzcc/editor 0.18.0 → 0.20.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,7 +115109,9 @@ const useVerticalDrag = (Ff, kh) => {
115109
115109
  // 后端主流语言
115110
115110
  { label: "Java", value: "java" },
115111
115111
  { label: "Python", value: "python" },
115112
- { label: "Go", value: "go" },
115112
+ { label: "Rust", value: "rust" },
115113
+ { label: "VB", value: "vb" },
115114
+ { label: "GoLang", value: "golang" },
115113
115115
  { label: "PHP", value: "php" },
115114
115116
  { label: "C++", value: "cpp" },
115115
115117
  { label: "C#", value: "csharp" },
@@ -115122,11 +115124,13 @@ const useVerticalDrag = (Ff, kh) => {
115122
115124
  { label: "Shell", value: "shell" },
115123
115125
  { label: "PowerShell", value: "powershell" },
115124
115126
  { label: "Batch", value: "batch" },
115127
+ { label: "Bash", value: "bash" },
115128
+ { label: "System Verilog", value: "systemverilog" },
115125
115129
  // 数据/配置相关
115126
115130
  { label: "JSON", value: "json" },
115127
115131
  { label: "YAML", value: "yaml" },
115128
115132
  { label: "TOML", value: "toml" },
115129
- { label: "SQL", value: "sql" },
115133
+ { label: "MySQL", value: "mysql" },
115130
115134
  { label: "Redis", value: "redis" },
115131
115135
  // 其他常用语言
115132
115136
  { label: "Dockerfile", value: "dockerfile" },
@@ -115237,7 +115241,7 @@ function NodeView(Ff) {
115237
115241
  MonacoEditor,
115238
115242
  {
115239
115243
  readOnly: !hme,
115240
- defaultValue: pme,
115244
+ value: pme,
115241
115245
  language: ume,
115242
115246
  onChange: (bme, Tme) => {
115243
115247
  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:"Go",value:"go"},{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:"JSON",value:"json"},{label:"YAML",value:"yaml"},{label:"TOML",value:"toml"},{label:"SQL",value:"sql"},{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:"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.18.0",
3
+ "version": "0.20.0",
4
4
  "type": "module",
5
5
  "description": "editor ui components",
6
6
  "keywords": [