UNPKG

md-editor-v3

Version:

Markdown editor for vue3, developed in jsx and typescript, dark theme、beautify content by prettier、render articles directly、paste or clip the picture and upload it...

40 lines (39 loc) 69.6 kB
"use strict";const q=require("./chunks/index.cjs"),J=require("./chunks/index4.cjs"),j=require("./chunks/index3.cjs"),je=require("./ModalToolbar.cjs"),Ae=require("./NormalToolbar.cjs"),e=require("vue"),n=require("./chunks/config.cjs"),G=require("@vavt/util"),O=require("@codemirror/commands"),Re=require("@codemirror/lang-markdown"),Pe=require("@codemirror/language-data"),$=require("@codemirror/state"),E=require("@codemirror/view"),c=require("./chunks/event-bus.cjs"),K=require("@codemirror/language"),De=require("@codemirror/autocomplete"),Me=require("./chunks/dom.cjs"),w=require("./chunks/index2.cjs"),Fe=require("./chunks/index5.cjs"),f=require("@lezer/highlight"),Be=require("@codemirror/search"),de=require("./chunks/vue-tsx.cjs"),He=(t,o,a)=>{const l=e.inject("editorId"),i=e.inject("setting");let r=()=>{},s=()=>{};const u=()=>{r();const d=a.value?.view.contentDOM.getRootNode(),b=d?.querySelector(`#${l} .cm-scroller`),m=d?.querySelector(`[id="${l}-preview-wrapper"]`),g=d?.querySelector(`[id="${l}-html-wrapper"]`);(m||g)&&([s,r]=(m?J.scrollAuto:J.scrollAutoWithScale)(b,m||g,a.value),t.scrollAuto&&s())};e.watch([o,i],()=>{e.nextTick(u)}),e.watch(()=>t.scrollAuto,d=>{d?s():r()}),e.watch(()=>i.value.previewOnly,d=>{d?r():s()}),e.onMounted(u)},ee=async(t,o,a)=>{if(/^h[1-6]$/.test(t))return Oe(t,o);if(t==="prettier")return await _e(o,a);switch(t){case"bold":case"underline":case"italic":case"strikeThrough":case"sub":case"sup":case"codeRow":case"katexInline":case"katexBlock":return We(t,o);case"quote":case"orderedList":case"unorderedList":case"task":return Ue(t,o);case"code":return Ge(a,o);case"table":return Ze(a);case"link":{const l=o.getSelectedText(),{desc:i=l,url:r=""}=a,s=`[${i}](${r})`;return{text:s,options:{select:r==="",deviationStart:s.length-r.length-1,deviationEnd:-1}}}case"image":return Ye(a,o);case"flow":case"sequence":case"gantt":case"class":case"state":case"pie":case"relationship":case"journey":return Ke(t);case"universal":return Xe(o.getSelectedText(),a);default:return{text:"",options:{}}}},Oe=(t,o)=>{const a=t.slice(1),l="#".repeat(Number(a)),[i,r,s]=le(o,{wholeLine:!0});return{text:`${l} ${i}`,options:{deviationStart:l.length+1,replaceStart:r,replaceEnd:s}}},_e=async(t,o)=>{const a=window.prettier||n.globalConfig.editorExtensions.prettier?.prettierInstance,l=[window.prettierPlugins?.markdown||n.globalConfig.editorExtensions.prettier?.parserMarkdownInstance];return!a||!l[0]?(c.bus.emit(o.editorId,c.ERROR_CATCHER,{name:"prettier",message:"prettier is undefined"}),{text:t.getValue(),options:{select:!1,replaceAll:!0}}):{text:await a.format(t.getValue(),{parser:"markdown",plugins:l}),options:{select:!1,replaceAll:!0}}},qe={bold:["**","**",2,-2],underline:["<u>","</u>",3,-4],italic:["*","*",1,-1],strikeThrough:["~~","~~",2,-2],sub:["~","~",1,-1],sup:["^","^",1,-1],codeRow:["`","`",1,-1],katexInline:["$","$",1,-1],katexBlock:[` $$ `,` $$ `,4,-4]},We=(t,o)=>{const a=o.getSelectedText(),[l,i,r,s]=qe[t];return{text:`${l}${a}${i}`,options:{deviationStart:r,deviationEnd:s}}},ze={quote:"> ",unorderedList:"- ",orderedList:1,task:"- [ ] "},Ue=(t,o)=>{const[a,l,i]=le(o,{wholeLine:!0}),r=a.split(` `),s=ze[t],u=t==="orderedList"?r.map((m,g)=>`${s+g}. ${m}`):r.map(m=>`${s}${m}`),d=t==="orderedList"?"1. ":s.toString(),b=r.length===1?d.length:0;return{text:u.join(` `),options:{deviationStart:b,replaceStart:l,replaceEnd:i}}},Ge=(t,o)=>{const[a,l,i]=le(o),r=t.mode||"language",s=` \`\`\`${r} ${t.text||a||""} \`\`\` `;return{text:s,options:{deviationStart:4,deviationEnd:4+r.length-s.length,replaceStart:l,replaceEnd:i}}},Ke=t=>({text:` \`\`\`mermaid ${{flow:`flowchart TD Start --> Stop`,sequence:`sequenceDiagram A->>B: hello! B-->>A: hi!`,gantt:`gantt title Gantt Chart dateFormat YYYY-MM-DD`,class:`classDiagram class Animal`,state:`stateDiagram-v2 s1 --> s2`,pie:`pie "Dogs" : 386 "Cats" : 85 "Rats" : 15`,relationship:`erDiagram CAR ||--o{ NAMED-DRIVER : allows`,journey:`journey title My Journey`,...n.globalConfig.editorConfig.mermaidTemplate}[t]} \`\`\` `,options:{deviationStart:12,deviationEnd:-5}}),Ye=(t,o)=>{const a=o.getSelectedText(),{desc:l=a,url:i="",urls:r}=t;let s="";const u=i===""&&(!r||r instanceof Array&&r.length===0);return r instanceof Array?s=r.reduce((d,b)=>{const{url:m="",alt:g="",title:p=""}=typeof b=="object"?b:{url:b};return d+`![${g}](${m}${p?" '"+p+"'":""}) `},""):s=`![${l}](${i}) `,{text:s,options:{select:i==="",deviationStart:u?s.length-i.length-2:s.length,deviationEnd:u?-2:0}}},Ze=t=>{const{selectedShape:o={x:1,y:1}}=t,{x:a,y:l}=o;let i=` | Column`;for(let r=0;r<=l;r++)i+=" |";i+=` |`;for(let r=0;r<=l;r++)i+=" - |";for(let r=0;r<=a;r++){i+=` |`;for(let s=0;s<=l;s++)i+=" |"}return i+=` `,{text:i,options:{deviationStart:3,deviationEnd:10-i.length}}},Xe=(t,o)=>{const{generate:a}=o,l=a(t);return{text:l.targetValue,options:{select:l.select??!0,deviationStart:l.deviationStart||0,deviationEnd:l.deviationEnd||0}}},le=(t,o={wholeLine:!1})=>{const a=t.view.state,l=a.selection.main;if(l.empty){const i=a.doc.lineAt(l.from);return[a.doc.lineAt(l.from).text,i.from,i.to]}else if(o.wholeLine){const i=a.doc.lineAt(l.from),r=a.doc.lineAt(l.to);return[a.doc.sliceString(i.from,r.to),i.from,r.to]}return[a.doc.sliceString(l.from,l.to),l.from,l.to]},_=t=>{const o=new $.Compartment;return l=>(o.get(t.state)?t.dispatch({effects:o.reconfigure(l)}):t.dispatch({effects:$.StateEffect.appendConfig.of(o.of(l))}),!0)};class Je{view;maxLength=Number.MAX_SAFE_INTEGER;toggleTabSize;togglePlaceholder;setExtensions;toggleDisabled;toggleReadOnly;toggleMaxlength;getValue(){return this.view.state.doc.toString()}setValue(o,a=0,l=this.view.state.doc.length){this.view.dispatch({changes:{from:a,to:l,insert:o}})}getSelectedText(){const{from:o,to:a}=this.view.state.selection.main;return this.view.state.sliceDoc(o,a)}replaceSelectedText(o,a,l){const i={select:!0,deviationStart:0,deviationEnd:0,replaceAll:!1,replaceStart:-1,replaceEnd:-1,...a};try{if(i.replaceAll){if(this.setValue(o),o.length>this.maxLength)throw new Error("The input text is too long");return}if(this.view.state.doc.length-this.getSelectedText().length+o.length>this.maxLength)throw new Error("The input text is too long");const{from:r}=this.view.state.selection.main;i.replaceStart!==-1?this.view.dispatch({changes:{from:i.replaceStart,to:i.replaceEnd,insert:o}}):this.view.dispatch(this.view.state.replaceSelection(o)),i.select&&this.view.dispatch({selection:{anchor:i.replaceStart===-1?r+i.deviationStart:i.replaceStart+i.deviationStart,head:i.replaceStart===-1?r+o.length+i.deviationEnd:i.replaceStart+o.length+i.deviationEnd}}),this.view.focus()}catch(r){if(r.message==="The input text is too long")c.bus.emit(l,c.ERROR_CATCHER,{name:"overlength",message:r.message,data:o});else throw r}}constructor(o){this.view=o,this.toggleTabSize=_(this.view),this.togglePlaceholder=_(this.view),this.setExtensions=_(this.view),this.toggleDisabled=_(this.view),this.toggleReadOnly=_(this.view),this.toggleMaxlength=_(this.view)}setTabSize(o){this.toggleTabSize([$.EditorState.tabSize.of(o),K.indentUnit.of(" ".repeat(o))])}setPlaceholder(o){this.togglePlaceholder(E.placeholder(o))}focus(o){if(this.view.focus(),!o)return;let a=0,l=0,i=0;switch(o){case"start":break;case"end":{a=l=i=this.getValue().length;break}default:a=o.rangeAnchor||o.cursorPos,l=o.rangeHead||o.cursorPos,i=o.cursorPos}this.view.dispatch({scrollIntoView:!0,selection:$.EditorSelection.create([$.EditorSelection.range(a,l),$.EditorSelection.cursor(i)],1)})}setDisabled(o){this.toggleDisabled([E.EditorView.editable.of(!o)])}setReadOnly(o){this.toggleReadOnly([$.EditorState.readOnly.of(o)])}setMaxLength(o){this.maxLength=o,this.toggleMaxlength([$.EditorState.changeFilter.of(a=>a.newDoc.length<=o)])}}const Qe=(t,o)=>{if(t===o)return!0;if(t.length!==o.length)return!1;for(let a=0;a<t.length;a++)if(t[a]!==o[a])return!1;return!0},et=(t,o)=>{const a=e.ref(o.value);e.watch([o],()=>{(!a.value||!Qe(a.value,o.value))&&(a.value=o.value,t())})},Z=(t,o,a,l,i)=>(r,s,u,d)=>{const b=`${t}${o}${a}${l}`,m=u+s.label.length+(i==="title"?a.length:0);r.dispatch({changes:{from:u,to:d,insert:b},selection:$.EditorSelection.create([$.EditorSelection.range(u+s.label.length+(i==="title"?1:-o.length),m),$.EditorSelection.cursor(m)],1)}),r.focus()},ue=t=>(o,a,l,i)=>{const r=t.slice(i-l);o.dispatch(o.state.replaceSelection(`${r} `))},me=t=>{const o=a=>{const l=a.matchBefore(/^#+|^-\s*\[*\s*\]*|`+|\[|!\[*|^\|\s?\|?|\$\$?|!+\s*\w*/);return l===null||l.from==l.to&&a.explicit?null:{from:l.from,options:[...["h2","h3","h4","h5","h6"].map((i,r)=>{const s=new Array(r+2).fill("#").join("");return{label:s,type:"text",apply:ue(s)}}),...["unchecked","checked"].map(i=>{const r=i==="checked"?"- [x]":"- [ ]";return{label:r,type:"text",apply:ue(r)}}),...[["`",""],["```","language"],["```mermaid\n",""],["```echarts\n",""]].map(i=>({label:`${i[0]}${i[1]}`,type:"text",apply:Z(i[0],i[1],"",i[0]==="`"?"`":"\n```","type")})),{label:"[]()",type:"text"},{label:"![]()",type:"text"},{label:"| |",type:"text",detail:"table",apply:`| col | col | col | | - | - | - | | content | content | content | | content | content | content |`},{label:"$",type:"text",apply:Z("$","","","$","type")},{label:"$$",type:"text",apply:Z("$$","",` `,` $$`,"title")},...["note","abstract","info","tip","success","question","warning","failure","danger","bug","example","quote","hint","caution","error","attention"].map(i=>({label:`!!! ${i}`,type:"text",apply:Z("!!!",` ${i}`," Title",` !!!`,"title")}))]}};return De.autocompletion({override:t?[o,...t]:[o]})},tt=e.defineComponent({name:`${n.prefix}-divider`,setup(){return()=>e.createVNode("div",{class:`${n.prefix}-divider`},null)}}),ot=e.defineComponent({name:"ToolbarBold",setup(){const t=e.inject("editorId"),o=e.inject("usedLanguageText"),a=e.inject("disabled"),l=e.inject("showToolbarName");return()=>e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,a?.value&&`${n.prefix}-disabled`],title:o.value.toolbarTips?.bold,disabled:a?.value,onClick:()=>{c.bus.emit(t,c.REPLACE,"bold")},type:"button"},[e.createVNode(w.Icon,{name:"bold"},null),l?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[o.value.toolbarTips?.bold])])}}),at=e.defineComponent({name:"ToolbarCatalog",setup(){const t=e.inject("editorId"),o=e.inject("usedLanguageText"),a=e.inject("disabled"),l=e.inject("showToolbarName"),i=e.inject("catalogVisible");return()=>e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,i.value&&`${n.prefix}-toolbar-active`,a?.value&&`${n.prefix}-disabled`],title:o.value.toolbarTips?.catalog,disabled:a?.value,onClick:()=>{c.bus.emit(t,c.CHANGE_CATALOG_VISIBLE)},key:"bar-catalog",type:"button"},[e.createVNode(w.Icon,{name:"catalog"},null),l?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[o.value.toolbarTips?.catalog])])}}),nt=e.defineComponent({name:"ToolbarCode",setup(){const t=e.inject("editorId"),o=e.inject("usedLanguageText"),a=e.inject("disabled"),l=e.inject("showToolbarName");return()=>e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,a?.value&&`${n.prefix}-disabled`],title:o.value.toolbarTips?.code,disabled:a?.value,onClick:()=>{c.bus.emit(t,c.REPLACE,"code")},type:"button"},[e.createVNode(w.Icon,{name:"code"},null),l?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[o.value.toolbarTips?.code])])}}),lt=e.defineComponent({name:"ToolbarCodeRow",setup(){const t=e.inject("editorId"),o=e.inject("usedLanguageText"),a=e.inject("disabled"),l=e.inject("showToolbarName");return()=>e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,a?.value&&`${n.prefix}-disabled`],title:o.value.toolbarTips?.codeRow,disabled:a?.value,onClick:()=>{c.bus.emit(t,c.REPLACE,"codeRow")},type:"button"},[e.createVNode(w.Icon,{name:"code-row"},null),l?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[o.value.toolbarTips?.codeRow])])}}),rt=e.defineComponent({name:"ToolbarFullscreen",setup(){const t=e.inject("usedLanguageText"),o=e.inject("disabled"),a=e.inject("showToolbarName"),l=e.inject("setting"),{fullscreenHandler:i}=Ft();return()=>e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,l.value.fullscreen&&`${n.prefix}-toolbar-active`,o?.value&&`${n.prefix}-disabled`],title:t.value.toolbarTips?.fullscreen,disabled:o?.value,onClick:()=>{i()},type:"button"},[e.createVNode(w.Icon,{name:l.value.fullscreen?"fullscreen-exit":"fullscreen"},null),a?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[t.value.toolbarTips?.fullscreen])])}}),it=e.defineComponent({name:"ToolbarGithub",setup(){const t=e.inject("usedLanguageText"),o=e.inject("disabled"),a=e.inject("showToolbarName");return()=>e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,o?.value&&`${n.prefix}-disabled`],title:t.value.toolbarTips?.github,disabled:o?.value,onClick:()=>{G.linkTo("https://github.com/imzbf/md-editor-v3")},type:"button"},[e.createVNode(w.Icon,{name:"github"},null),a?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[t.value.toolbarTips?.github])])}}),st=e.defineComponent({name:"ToolbarHtmlPreview",setup(){const t=e.inject("usedLanguageText"),o=e.inject("disabled"),a=e.inject("showToolbarName"),l=e.inject("setting"),i=e.inject("updateSetting");return()=>e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,l.value.htmlPreview&&`${n.prefix}-toolbar-active`,o?.value&&`${n.prefix}-disabled`],title:t.value.toolbarTips?.htmlPreview,disabled:o?.value,onClick:()=>{i("htmlPreview")},type:"button"},[e.createVNode(w.Icon,{name:"preview-html"},null),a?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[t.value.toolbarTips?.htmlPreview])])}}),ct=e.defineComponent({name:"ToolbarImage",setup(){const t=e.inject("editorId"),o=e.inject("usedLanguageText"),a=e.inject("disabled"),l=e.inject("showToolbarName");return()=>e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,a?.value&&`${n.prefix}-disabled`],title:o.value.toolbarTips?.image,disabled:a?.value,onClick:()=>{c.bus.emit(t,c.REPLACE,"image")},type:"button"},[e.createVNode(w.Icon,{name:"image"},null),l?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[o.value.toolbarTips?.image])])}}),dt={visible:{type:Boolean,default:!1},onCancel:{type:Function,default:()=>{}},onOk:{type:Function,default:()=>{}}},ut=e.defineComponent({name:`${n.prefix}-modal-clip`,props:dt,setup(t){const o=e.inject("usedLanguageText"),a=e.inject("editorId"),l=e.inject("rootRef");let i=n.globalConfig.editorExtensions.cropper.instance;const r=e.ref(),s=e.ref(),u=e.ref(),d=e.reactive({cropperInited:!1,imgSelected:!1,imgSrc:"",isFullscreen:!1});let b=null;e.watch(()=>t.visible,()=>{t.visible&&!d.cropperInited&&(i=i||window.Cropper,r.value.onchange=()=>{if(!i){c.bus.emit(a,c.ERROR_CATCHER,{name:"Cropper",message:"Cropper is undefined"});return}const p=r.value.files||[];if(d.imgSelected=!0,p?.length>0){const v=new FileReader;v.onload=T=>{d.imgSrc=T.target.result},v.readAsDataURL(p[0])}})}),e.watch(()=>[d.imgSelected],()=>{u.value.style=""}),e.watch([e.toRef(()=>d.isFullscreen),e.toRef(()=>d.imgSrc)],()=>{d.imgSrc&&e.nextTick(()=>{b?.destroy(),u.value.style="",s.value&&(b=new i(s.value,{viewMode:2,preview:l.value.getRootNode().querySelector(`.${n.prefix}-clip-preview-target`)}))})});const m=()=>{b.clear(),b.destroy(),b=null,r.value.value="",d.imgSelected=!1,d.imgSrc=""},g=p=>{d.isFullscreen=p};return()=>e.createVNode(w.MdModal,{class:`${n.prefix}-modal-clip`,title:o.value.clipModalTips?.title,visible:t.visible,onClose:t.onCancel,showAdjust:!0,isFullscreen:d.isFullscreen,onAdjust:g,width:"668px",height:"421px"},{default:()=>[e.createVNode("div",{class:`${n.prefix}-form-item ${n.prefix}-clip`},[e.createVNode("div",{class:`${n.prefix}-clip-main`},[d.imgSelected?e.createVNode("div",{class:`${n.prefix}-clip-cropper`},[e.createVNode("img",{src:d.imgSrc,ref:s,style:{display:"none"},alt:""},null),e.createVNode("div",{class:`${n.prefix}-clip-delete`,onClick:m},[e.createVNode(w.Icon,{name:"delete"},null)])]):e.createVNode("div",{class:`${n.prefix}-clip-upload`,onClick:()=>{r.value.click()},role:"button",tabindex:"0","aria-label":o.value.imgTitleItem?.upload},[e.createVNode(w.Icon,{name:"upload"},null)])]),e.createVNode("div",{class:`${n.prefix}-clip-preview`},[e.createVNode("div",{class:`${n.prefix}-clip-preview-target`,ref:u},null)])]),e.createVNode("div",{class:`${n.prefix}-form-item`},[e.createVNode("button",{class:`${n.prefix}-btn`,type:"button",onClick:()=>{if(b){const p=b.getCroppedCanvas();c.bus.emit(a,c.UPLOAD_IMAGE,[Fe.base642File(p.toDataURL("image/png"))],t.onOk),m()}}},[o.value.clipModalTips?.buttonUpload||o.value.linkModalTips?.buttonOK])]),e.createVNode("input",{ref:r,accept:"image/*",type:"file",multiple:!1,style:{display:"none"},"aria-hidden":"true"},null)]})}}),mt={clipVisible:{type:Boolean,default:!1},onCancel:{type:Function,default:()=>{}},onOk:{type:Function,default:()=>{}}},bt=e.defineComponent({name:`${n.prefix}-modals`,props:mt,setup(t){return()=>e.createVNode(ut,{visible:t.clipVisible,onOk:t.onOk,onCancel:t.onCancel},null)}}),ft=e.defineComponent({name:"ToolbarImageDropdown",setup(){const t=e.inject("editorId"),o=e.inject("usedLanguageText"),a=e.inject("disabled"),l=e.inject("showToolbarName"),i=`${t}-toolbar-wrapper`,r=e.ref(!1),s=e.ref(!1),u=e.ref(),d=()=>{c.bus.emit(t,c.UPLOAD_IMAGE,Array.from(u.value.files||[])),u.value.value=""},b=(T,N)=>{a?.value||c.bus.emit(t,c.REPLACE,T,N)};e.onMounted(()=>{u.value.addEventListener("change",d)});const m=T=>{r.value=T},g=()=>{s.value=!1},p=T=>{T&&b("image",{desc:T.desc,url:T.url,transform:!0}),s.value=!1},v=e.computed(()=>e.createVNode("ul",{class:`${n.prefix}-menu`,onClick:()=>{r.value=!1},role:"menu"},[e.createVNode("li",{class:`${n.prefix}-menu-item ${n.prefix}-menu-item-image`,onClick:()=>{b("image")},role:"menuitem",tabindex:"0"},[o.value.imgTitleItem?.link]),e.createVNode("li",{class:`${n.prefix}-menu-item ${n.prefix}-menu-item-image`,onClick:()=>{u.value.click()},role:"menuitem",tabindex:"0"},[o.value.imgTitleItem?.upload]),e.createVNode("li",{class:`${n.prefix}-menu-item ${n.prefix}-menu-item-image`,onClick:()=>{s.value=!0},role:"menuitem",tabindex:"0"},[o.value.imgTitleItem?.clip2upload])]));return()=>e.createVNode(e.Fragment,null,[e.createVNode("label",{for:`${i}_label`,style:{display:"none"},"aria-label":o.value.imgTitleItem?.upload},null),e.createVNode("input",{id:`${i}_label`,ref:u,accept:"image/*",type:"file",multiple:!0,style:{display:"none"}},null),e.createVNode(q.Dropdown,{relative:`#${i}`,visible:r.value,onChange:m,disabled:a?.value,overlay:v.value},{default:()=>[e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,a?.value&&`${n.prefix}-disabled`],title:o.value.toolbarTips?.image,disabled:a?.value,type:"button"},[e.createVNode(w.Icon,{name:"image"},null),l?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[o.value.toolbarTips?.image])])]}),e.createVNode(bt,{clipVisible:s.value,onCancel:g,onOk:p},null)])}}),pt=e.defineComponent({name:"ToolbarItalic",setup(){const t=e.inject("editorId"),o=e.inject("usedLanguageText"),a=e.inject("disabled"),l=e.inject("showToolbarName");return()=>e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,a?.value&&`${n.prefix}-disabled`],title:o.value.toolbarTips?.italic,disabled:a?.value,onClick:()=>{c.bus.emit(t,c.REPLACE,"italic")},type:"button"},[e.createVNode(w.Icon,{name:"italic"},null),l?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[o.value.toolbarTips?.italic])])}}),gt=e.defineComponent({name:"ToolbarKatex",setup(){const t=e.inject("editorId"),o=e.inject("usedLanguageText"),a=e.inject("disabled"),l=e.inject("showToolbarName"),i=`${t}-toolbar-wrapper`,r=e.ref(!1),s=b=>{a?.value||c.bus.emit(t,c.REPLACE,b)},u=b=>{r.value=b},d=e.computed(()=>e.createVNode("ul",{class:`${n.prefix}-menu`,onClick:()=>{r.value=!1},role:"menu"},[e.createVNode("li",{class:`${n.prefix}-menu-item ${n.prefix}-menu-item-katex`,onClick:()=>{s("katexInline")},role:"menuitem",tabindex:"0"},[o.value.katex?.inline]),e.createVNode("li",{class:`${n.prefix}-menu-item ${n.prefix}-menu-item-katex`,onClick:()=>{s("katexBlock")},role:"menuitem",tabindex:"0"},[o.value.katex?.block])]));return()=>e.createVNode(q.Dropdown,{relative:`#${i}`,visible:r.value,onChange:u,disabled:a?.value,overlay:d.value,key:"bar-katex"},{default:()=>[e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,a?.value&&`${n.prefix}-disabled`],title:o.value.toolbarTips?.katex,disabled:a?.value,type:"button"},[e.createVNode(w.Icon,{name:"formula"},null),l?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[o.value.toolbarTips?.katex])])]})}}),vt=e.defineComponent({name:"ToolbarLink",setup(){const t=e.inject("editorId"),o=e.inject("usedLanguageText"),a=e.inject("disabled"),l=e.inject("showToolbarName");return()=>e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,a?.value&&`${n.prefix}-disabled`],title:o.value.toolbarTips?.link,disabled:a?.value,onClick:()=>{c.bus.emit(t,c.REPLACE,"link")},type:"button"},[e.createVNode(w.Icon,{name:"link"},null),l?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[o.value.toolbarTips?.link])])}}),ht=e.defineComponent({name:"ToolbarMermaid",setup(){const t=e.inject("editorId"),o=e.inject("usedLanguageText"),a=e.inject("disabled"),l=e.inject("showToolbarName"),i=`${t}-toolbar-wrapper`,r=e.ref(!1),s=b=>{a?.value||c.bus.emit(t,c.REPLACE,b)},u=b=>{r.value=b},d=e.computed(()=>e.createVNode("ul",{class:`${n.prefix}-menu`,onClick:()=>{r.value=!1},role:"menu"},[e.createVNode("li",{class:`${n.prefix}-menu-item ${n.prefix}-menu-item-mermaid`,onClick:()=>{s("flow")},role:"menuitem",tabindex:"0"},[o.value.mermaid?.flow]),e.createVNode("li",{class:`${n.prefix}-menu-item ${n.prefix}-menu-item-mermaid`,onClick:()=>{s("sequence")},role:"menuitem",tabindex:"0"},[o.value.mermaid?.sequence]),e.createVNode("li",{class:`${n.prefix}-menu-item ${n.prefix}-menu-item-mermaid`,onClick:()=>{s("gantt")},role:"menuitem",tabindex:"0"},[o.value.mermaid?.gantt]),e.createVNode("li",{class:`${n.prefix}-menu-item ${n.prefix}-menu-item-mermaid`,onClick:()=>{s("class")},role:"menuitem",tabindex:"0"},[o.value.mermaid?.class]),e.createVNode("li",{class:`${n.prefix}-menu-item ${n.prefix}-menu-item-mermaid`,onClick:()=>{s("state")},role:"menuitem",tabindex:"0"},[o.value.mermaid?.state]),e.createVNode("li",{class:`${n.prefix}-menu-item ${n.prefix}-menu-item-mermaid`,onClick:()=>{s("pie")},role:"menuitem",tabindex:"0"},[o.value.mermaid?.pie]),e.createVNode("li",{class:`${n.prefix}-menu-item ${n.prefix}-menu-item-mermaid`,onClick:()=>{s("relationship")},role:"menuitem",tabindex:"0"},[o.value.mermaid?.relationship]),e.createVNode("li",{class:`${n.prefix}-menu-item ${n.prefix}-menu-item-mermaid`,onClick:()=>{s("journey")},role:"menuitem",tabindex:"0"},[o.value.mermaid?.journey])]));return()=>e.createVNode(q.Dropdown,{relative:`#${i}`,visible:r.value,onChange:u,disabled:a?.value,overlay:d.value,key:"bar-mermaid"},{default:()=>[e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,a?.value&&`${n.prefix}-disabled`],title:o.value.toolbarTips?.mermaid,disabled:a?.value,type:"button"},[e.createVNode(w.Icon,{name:"mermaid"},null),l?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[o.value.toolbarTips?.mermaid])])]})}}),xt=e.defineComponent({name:"ToolbarNext",setup(){const t=e.inject("editorId"),o=e.inject("usedLanguageText"),a=e.inject("disabled"),l=e.inject("showToolbarName");return()=>e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,a?.value&&`${n.prefix}-disabled`],title:o.value.toolbarTips?.next,disabled:a?.value,onClick:()=>{c.bus.emit(t,c.CTRL_SHIFT_Z)},type:"button"},[e.createVNode(w.Icon,{name:"next"},null),l?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[o.value.toolbarTips?.next])])}}),Tt=e.defineComponent({name:"ToolbarOrderedList",setup(){const t=e.inject("editorId"),o=e.inject("usedLanguageText"),a=e.inject("disabled"),l=e.inject("showToolbarName");return()=>e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,a?.value&&`${n.prefix}-disabled`],title:o.value.toolbarTips?.orderedList,disabled:a?.value,onClick:()=>{c.bus.emit(t,c.REPLACE,"orderedList")},type:"button"},[e.createVNode(w.Icon,{name:"ordered-list"},null),l?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[o.value.toolbarTips?.orderedList])])}}),Ct=e.defineComponent({name:"ToolbarPageFullscreen",setup(){const t=e.inject("usedLanguageText"),o=e.inject("disabled"),a=e.inject("showToolbarName"),l=e.inject("setting"),i=e.inject("updateSetting");return()=>e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,l.value.pageFullscreen&&`${n.prefix}-toolbar-active`,o?.value&&`${n.prefix}-disabled`],title:t.value.toolbarTips?.pageFullscreen,disabled:o?.value,onClick:()=>{i("pageFullscreen")},type:"button"},[e.createVNode(w.Icon,{name:l.value.pageFullscreen?"minimize":"maximize"},null),a?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[t.value.toolbarTips?.pageFullscreen])])}}),wt=e.defineComponent({name:"ToolbarPrettier",setup(){const t=e.inject("editorId"),o=e.inject("usedLanguageText"),a=e.inject("disabled"),l=e.inject("showToolbarName");return()=>e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,a?.value&&`${n.prefix}-disabled`],title:o.value.toolbarTips?.prettier,disabled:a?.value,onClick:()=>{c.bus.emit(t,c.REPLACE,"prettier")},type:"button"},[e.createVNode(w.Icon,{name:"prettier"},null),l?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[o.value.toolbarTips?.prettier])])}}),yt=e.defineComponent({name:"ToolbarPreview",setup(){const t=e.inject("usedLanguageText"),o=e.inject("disabled"),a=e.inject("showToolbarName"),l=e.inject("setting"),i=e.inject("updateSetting");return()=>e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,l.value.preview&&`${n.prefix}-toolbar-active`,o?.value&&`${n.prefix}-disabled`],title:t.value.toolbarTips?.preview,disabled:o?.value,onClick:()=>{i("preview")},type:"button"},[e.createVNode(w.Icon,{name:"preview"},null),a?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[t.value.toolbarTips?.preview])])}}),Nt=e.defineComponent({name:"ToolbarPreviewOnly",setup(){const t=e.inject("usedLanguageText"),o=e.inject("disabled"),a=e.inject("showToolbarName"),l=e.inject("setting"),i=e.inject("updateSetting");return()=>e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,l.value.previewOnly&&`${n.prefix}-toolbar-active`,o?.value&&`${n.prefix}-disabled`],title:t.value.toolbarTips?.previewOnly,disabled:o?.value,onClick:()=>{i("previewOnly")},type:"button"},[e.createVNode(w.Icon,{name:"preview-only"},null),a?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[t.value.toolbarTips?.previewOnly])])}}),kt=e.defineComponent({name:"ToolbarQuote",setup(){const t=e.inject("editorId"),o=e.inject("usedLanguageText"),a=e.inject("disabled"),l=e.inject("showToolbarName");return()=>e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,a?.value&&`${n.prefix}-disabled`],title:o.value.toolbarTips?.quote,disabled:a?.value,onClick:()=>{c.bus.emit(t,c.REPLACE,"quote")},type:"button"},[e.createVNode(w.Icon,{name:"quote"},null),l?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[o.value.toolbarTips?.quote])])}}),$t=e.defineComponent({name:"ToolbarRevoke",setup(){const t=e.inject("editorId"),o=e.inject("usedLanguageText"),a=e.inject("disabled"),l=e.inject("showToolbarName");return()=>e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,a?.value&&`${n.prefix}-disabled`],title:o.value.toolbarTips?.revoke,disabled:a?.value,onClick:()=>{c.bus.emit(t,c.CTRL_Z)},type:"button"},[e.createVNode(w.Icon,{name:"revoke"},null),l?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[o.value.toolbarTips?.revoke])])}}),Et=e.defineComponent({name:"ToolbarSave",setup(){const t=e.inject("editorId"),o=e.inject("usedLanguageText"),a=e.inject("disabled"),l=e.inject("showToolbarName");return()=>e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,a?.value&&`${n.prefix}-disabled`],title:o.value.toolbarTips?.save,disabled:a?.value,onClick:()=>{c.bus.emit(t,c.ON_SAVE)},type:"button"},[e.createVNode(w.Icon,{name:"save"},null),l?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[o.value.toolbarTips?.save])])}}),Vt=e.defineComponent({name:"ToolbarStrikeThrough",setup(){const t=e.inject("editorId"),o=e.inject("usedLanguageText"),a=e.inject("disabled"),l=e.inject("showToolbarName");return()=>e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,a?.value&&`${n.prefix}-disabled`],title:o.value.toolbarTips?.strikeThrough,disabled:a?.value,onClick:()=>{c.bus.emit(t,c.REPLACE,"strikeThrough")},type:"button"},[e.createVNode(w.Icon,{name:"strike-through"},null),l?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[o.value.toolbarTips?.strikeThrough])])}}),St=e.defineComponent({name:"ToolbarSub",setup(){const t=e.inject("editorId"),o=e.inject("usedLanguageText"),a=e.inject("disabled"),l=e.inject("showToolbarName");return()=>e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,a?.value&&`${n.prefix}-disabled`],title:o.value.toolbarTips?.sub,disabled:a?.value,onClick:()=>{c.bus.emit(t,c.REPLACE,"sub")},type:"button"},[e.createVNode(w.Icon,{name:"sub"},null),l?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[o.value.toolbarTips?.sub])])}}),It=e.defineComponent({name:"ToolbarSup",setup(){const t=e.inject("editorId"),o=e.inject("usedLanguageText"),a=e.inject("disabled"),l=e.inject("showToolbarName");return()=>e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,a?.value&&`${n.prefix}-disabled`],title:o.value.toolbarTips?.sup,disabled:a?.value,onClick:()=>{c.bus.emit(t,c.REPLACE,"sup")},type:"button"},[e.createVNode(w.Icon,{name:"sup"},null),l?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[o.value.toolbarTips?.sup])])}}),Lt={tableShape:{type:Array,default:()=>[6,4]},onSelected:{type:Function,default:()=>{}}},jt=e.defineComponent({name:"TableShape",props:Lt,setup(t){const o=e.reactive({x:-1,y:-1}),a=e.computed(()=>JSON.stringify(t.tableShape)),l=()=>{const r=[...JSON.parse(a.value)];return(!r[2]||r[2]<r[0])&&(r[2]=r[0]),(!r[3]||r[3]<r[3])&&(r[3]=r[1]),r},i=e.ref(l());return e.watch([a],()=>{i.value=l()}),()=>e.createVNode("div",{class:`${n.prefix}-table-shape`,onMouseleave:()=>{i.value=l(),o.x=-1,o.y=-1}},[new Array(i.value[1]).fill("").map((r,s)=>e.createVNode("div",{class:`${n.prefix}-table-shape-row`,key:`table-shape-row-${s}`},[new Array(i.value[0]).fill("").map((u,d)=>e.createVNode("div",{class:`${n.prefix}-table-shape-col`,key:`table-shape-col-${d}`,onMouseenter:()=>{o.x=s,o.y=d,d+1===i.value[0]&&d+1<i.value[2]?i.value[0]++:d+2<i.value[0]&&i.value[0]>t.tableShape[0]&&i.value[0]--,s+1===i.value[1]&&s+1<i.value[3]?i.value[1]++:s+2<i.value[1]&&i.value[1]>t.tableShape[1]&&i.value[1]--},onClick:()=>{t.onSelected(o)}},[e.createVNode("div",{class:[`${n.prefix}-table-shape-col-default`,s<=o.x&&d<=o.y&&`${n.prefix}-table-shape-col-include`]},null)]))]))])}}),At=e.defineComponent({name:"ToolbarTable",setup(){const t=e.inject("editorId"),o=e.inject("usedLanguageText"),a=e.inject("disabled"),l=e.inject("showToolbarName"),i=e.inject("tableShape"),r=`${t}-toolbar-wrapper`,s=e.ref(!1),u=m=>{s.value=m},d=m=>{a?.value||c.bus.emit(t,c.REPLACE,"table",{selectedShape:m})},b=e.computed(()=>e.createVNode(jt,{tableShape:i.value,onSelected:d},null));return()=>e.createVNode(q.Dropdown,{relative:`#${r}`,visible:s.value,onChange:u,disabled:a?.value,key:"bar-table",overlay:b.value},{default:()=>[e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,a?.value&&`${n.prefix}-disabled`],title:o.value.toolbarTips?.table,disabled:a?.value,type:"button"},[e.createVNode(w.Icon,{name:"table"},null),l?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[o.value.toolbarTips?.table])])]})}}),Rt=e.defineComponent({name:"ToolbarTask",setup(){const t=e.inject("editorId"),o=e.inject("usedLanguageText"),a=e.inject("disabled"),l=e.inject("showToolbarName");return()=>e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,a?.value&&`${n.prefix}-disabled`],title:o.value.toolbarTips?.task,disabled:a?.value,onClick:()=>{c.bus.emit(t,c.REPLACE,"task")},type:"button"},[e.createVNode(w.Icon,{name:"task"},null),l?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[o.value.toolbarTips?.task])])}}),Pt=e.defineComponent({name:"ToolbarTitle",setup(){const t=e.inject("editorId"),o=e.inject("usedLanguageText"),a=e.inject("disabled"),l=e.inject("showToolbarName"),i=`${t}-toolbar-wrapper`,r=e.ref(!1),s=b=>{a?.value||c.bus.emit(t,c.REPLACE,b)},u=b=>{r.value=b},d=e.computed(()=>e.createVNode("ul",{class:`${n.prefix}-menu`,onClick:()=>{r.value=!1},role:"menu"},[e.createVNode("li",{class:`${n.prefix}-menu-item ${n.prefix}-menu-item-title`,onClick:()=>{s("h1")},role:"menuitem",tabindex:"0"},[o.value.titleItem?.h1]),e.createVNode("li",{class:`${n.prefix}-menu-item ${n.prefix}-menu-item-title`,onClick:()=>{s("h2")},role:"menuitem",tabindex:"0"},[o.value.titleItem?.h2]),e.createVNode("li",{class:`${n.prefix}-menu-item ${n.prefix}-menu-item-title`,onClick:()=>{s("h3")},role:"menuitem",tabindex:"0"},[o.value.titleItem?.h3]),e.createVNode("li",{class:`${n.prefix}-menu-item ${n.prefix}-menu-item-title`,onClick:()=>{s("h4")},role:"menuitem",tabindex:"0"},[o.value.titleItem?.h4]),e.createVNode("li",{class:`${n.prefix}-menu-item ${n.prefix}-menu-item-title`,onClick:()=>{s("h5")},role:"menuitem",tabindex:"0"},[o.value.titleItem?.h5]),e.createVNode("li",{class:`${n.prefix}-menu-item ${n.prefix}-menu-item-title`,onClick:()=>{s("h6")},role:"menuitem",tabindex:"0"},[o.value.titleItem?.h6])]));return()=>e.createVNode(q.Dropdown,{relative:`#${i}`,visible:r.value,onChange:u,disabled:a?.value,overlay:d.value},{default:()=>[e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,a?.value&&`${n.prefix}-disabled`],disabled:a?.value,title:o.value.toolbarTips?.title,type:"button"},[e.createVNode(w.Icon,{name:"title"},null),l?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[o.value.toolbarTips?.title])])]})}}),Dt=e.defineComponent({name:"ToolbarUnderline",setup(){const t=e.inject("editorId"),o=e.inject("usedLanguageText"),a=e.inject("disabled"),l=e.inject("showToolbarName");return()=>e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,a?.value&&`${n.prefix}-disabled`],title:o.value.toolbarTips?.underline,disabled:a?.value,onClick:()=>{c.bus.emit(t,c.REPLACE,"underline")},type:"button"},[e.createVNode(w.Icon,{name:"underline"},null),l?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[o.value.toolbarTips?.underline])])}}),Mt=e.defineComponent({name:"ToolbarUnorderedList",setup(){const t=e.inject("editorId"),o=e.inject("usedLanguageText"),a=e.inject("disabled"),l=e.inject("showToolbarName");return()=>e.createVNode("button",{class:[`${n.prefix}-toolbar-item`,a?.value&&`${n.prefix}-disabled`],title:o.value.toolbarTips?.unorderedList,disabled:a?.value,onClick:()=>{c.bus.emit(t,c.REPLACE,"unorderedList")},type:"button"},[e.createVNode(w.Icon,{name:"unordered-list"},null),l?.value&&e.createVNode("div",{class:`${n.prefix}-toolbar-item-name`},[o.value.toolbarTips?.unorderedList])])}}),Ft=()=>{const t=e.inject("editorId"),o=e.inject("setting"),a=e.inject("updateSetting"),{editorExtensions:l,editorExtensionsAttrs:i}=n.globalConfig;let r=l.screenfull.instance;const s=e.ref(!1),u=m=>{if(!r){c.bus.emit(t,c.ERROR_CATCHER,{name:"fullscreen",message:"fullscreen is undefined"});return}r.isEnabled?(s.value=!0,(m===void 0?!r.isFullscreen:m)?r.request():r.exit()):console.error("browser does not support screenfull!")},d=()=>{r&&r.isEnabled&&r.on("change",()=>{(s.value||o.value.fullscreen)&&(s.value=!1,a("fullscreen"))})},b=()=>{r=window.screenfull,d()};return e.onMounted(()=>{d(),r||Me.appendHandler("script",{...i.screenfull?.js,src:l.screenfull.js,id:j.CDN_IDS.screenfull,onload:b},"screenfull")}),e.onMounted(()=>{c.bus.on(t,{name:c.CHANGE_FULL_SCREEN,callback:u})}),{fullscreenHandler:u}};let Bt=0;const ke=()=>{const t=e.inject("editorId"),o=e.inject("theme"),a=e.inject("previewTheme"),l=e.inject("language"),i=e.inject("disabled"),r=e.inject("noUploadImg"),s=e.inject("noPrettier"),u=e.inject("codeTheme"),d=e.inject("showToolbarName"),b=e.inject("setting"),m=e.inject("defToolbars");return{barRender:p=>{if(n.allToolbar.includes(p))switch(p){case"-":return e.createVNode(tt,{key:`bar-${Bt++}`},null);case"bold":return e.createVNode(ot,{key:"bar-bold"},null);case"underline":return e.createVNode(Dt,{key:"bar-unorderline"},null);case"italic":return e.createVNode(pt,{key:"bar-italic"},null);case"strikeThrough":return e.createVNode(Vt,{key:"bar-strikeThrough"},null);case"title":return e.createVNode(Pt,{key:"bar-title"},null);case"sub":return e.createVNode(St,{key:"bar-sub"},null);case"sup":return e.createVNode(It,{key:"bar-sup"},null);case"quote":return e.createVNode(kt,{key:"bar-quote"},null);case"unorderedList":return e.createVNode(Mt,{key:"bar-unorderedList"},null);case"orderedList":return e.createVNode(Tt,{key:"bar-orderedList"},null);case"task":return e.createVNode(Rt,{key:"bar-task"},null);case"codeRow":return e.createVNode(lt,{key:"bar-codeRow"},null);case"code":return e.createVNode(nt,{key:"bar-code"},null);case"link":return e.createVNode(vt,{key:"bar-link"},null);case"image":return r?e.createVNode(ct,{key:"bar-image"},null):e.createVNode(ft,{key:"bar-imageDropdown"},null);case"table":return e.createVNode(At,{key:"bar-table"},null);case"revoke":return e.createVNode($t,{key:"bar-revoke"},null);case"next":return e.createVNode(xt,{key:"bar-next"},null);case"save":return e.createVNode(Et,{key:"bar-save"},null);case"prettier":return!s&&e.createVNode(wt,{key:"bar-prettier"},null);case"pageFullscreen":return!b.value.fullscreen&&e.createVNode(Ct,{key:"bar-pageFullscreen"},null);case"fullscreen":return e.createVNode(rt,{key:"bar-fullscreen"},null);case"catalog":return e.createVNode(at,{key:"bar-catalog"},null);case"preview":return e.createVNode(yt,{key:"bar-preview"},null);case"previewOnly":return e.createVNode(Nt,{key:"bar-previewOnly"},null);case"htmlPreview":return e.createVNode(st,{key:"bar-htmlPreview"},null);case"github":return e.createVNode(it,{key:"bar-github"},null);case"mermaid":return e.createVNode(ht,{key:"bar-mermaid"},null);case"katex":return e.createVNode(gt,{key:"bar-katex"},null)}else if(m.value instanceof Array){const v=m.value[p];return v?e.cloneVNode(v,{theme:v.props?.theme||o.value,previewTheme:v.props?.theme||a.value,language:v.props?.theme||l.value,codeTheme:v.props?.codeTheme||u.value,disabled:v.props?.disabled||i.value,showToolbarName:v.props?.showToolbarName||d.value,insert(N){c.bus.emit(t,c.REPLACE,"universal",{generate:N})}}):""}else if(m.value?.children instanceof Array){const v=m.value.children[p];return v?e.cloneVNode(v,{theme:v.props?.theme||o.value,previewTheme:v.props?.theme||a.value,language:v.props?.theme||l.value,codeTheme:v.props?.codeTheme||u.value,disabled:v.props?.disabled||i.value,showToolbarName:v.props?.showToolbarName||d.value,insert(N){c.bus.emit(t,c.REPLACE,"universal",{generate:N})}}):""}else return""}}},Ht=e.defineComponent({name:"FloatingToolbar",setup(){const t=e.inject("floatingToolbars"),{barRender:o}=ke();return()=>e.createVNode("div",{class:`${n.prefix}-floating-toolbar`},[t.value.map(a=>o(a))])}}),ne=$.StateEffect.define(),Ot=$.StateField.define({create(){return null},update(t,o){for(const a of o.effects)a.is(ne)&&(t=a.value);return t},provide:t=>E.showTooltip.from(t)}),_t=t=>{let o=null;const a=(r,s)=>{o&&o.kind===s.kind&&o.pos===s.pos||(o=s,r.dispatch({effects:ne.of({pos:s.pos,above:!0,arrow:!0,create:()=>{const u=document.createElement("div"),d=`${n.prefix}-floating-toolbar-container`;u.classList.add(d),u.dataset.state="hidden",requestAnimationFrame(()=>{u.dataset.state="visible"});const b=document.createElement("div");u.appendChild(b);const m=e.createApp(Ht);return t.privide(m),m.mount(u),{dom:u,destroy:()=>m.unmount()}}})}))},l=r=>{o&&(o=null,r.dispatch({effects:ne.of(null)}))},i=E.EditorView.updateListener.of(r=>{if(r.selectionSet||r.docChanged){const s=r.state,u=s.selection.main;if(!u.empty)a(r.view,{kind:"selection",pos:u.anchor});else{const d=u.head,b=s.doc.lineAt(d);/^\s*$/.test(b.text)?a(r.view,{kind:"emptyLine",pos:d}):l(r.view)}}});return[Ot,i]},qt="#e5c07b",be="var(--md-color)",Wt="#56b6c2",zt="#fff",z="#3f4a54",fe="#2d8cf0",Ut="#2d8cf0",Gt="#3f4a54",pe="#d19a66",Kt="#c678dd",Yt="#f6f6f6",Zt="#ceedfa33",ge="var(--md-bk-color)",te="var(--md-bk-color)",Xt="#bad5fa",ve="#3f4a54",Jt=E.EditorView.theme({"&":{color:z,backgroundColor:ge},".cm-content":{caretColor:ve},".cm-cursor, .cm-dropCursor":{borderLeftColor:ve},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:Xt},".cm-panels":{backgroundColor:Yt,color:z},".cm-panels.cm-panels-top":{borderBottom:"1px solid var(--md-border-color)"},".cm-panels.cm-panels-bottom":{borderTop:"1px solid var(--md-border-color)"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#ceedfa33"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:ge,color:z,borderRight:"1px solid",borderColor:"var(--md-border-color)"},".cm-activeLineGutter":{backgroundColor:Zt},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"1px solid var(--md-border-color)",backgroundColor:te},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"var(--md-border-color)",borderBottomColor:"var(--md-border-color)"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:te,borderBottomColor:te},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{color:z}}}),Qt=K.HighlightStyle.define([{tag:f.tags.keyword,color:Kt},{tag:[f.tags.name,f.tags.deleted,f.tags.character,f.tags.propertyName,f.tags.macroName],color:be},{tag:[f.tags.function(f.tags.variableName),f.tags.labelName],color:Ut},{tag:[f.tags.color,f.tags.constant(f.tags.name),f.tags.standard(f.tags.name)],color:pe},{tag:[f.tags.definition(f.tags.name),f.tags.separator],color:z},{tag:[f.tags.typeName,f.tags.className,f.tags.number,f.tags.changed,f.tags.annotation,f.tags.modifier,f.tags.self,f.tags.namespace],color:qt},{tag:[f.tags.operator,f.tags.operatorKeyword,f.tags.url,f.tags.escape,f.tags.regexp,f.tags.link,f.tags.special(f.tags.string)],color:Wt},{tag:[f.tags.meta,f.tags.comment],color:fe},{tag:f.tags.strong,fontWeight:"bold"},{tag:f.tags.emphasis,fontStyle:"italic"},{tag:f.tags.strikethrough,textDecoration:"line-through"},{tag:f.tags.link,color:fe,textDecoration:"underline"},{tag:f.tags.heading,fontWeight:"bold",color:be},{tag:[f.tags.atom,f.tags.bool,f.tags.special(f.tags.variableName)],color:pe},{tag:[f.tags.processingInstruction,f.tags.string,f.tags.inserted],color:Gt},{tag:f.tags.invalid,color:zt}]),he=[Jt,K.syntaxHighlighting(Qt)],eo="#e5c07b",xe="var(--md-color)",to="#56b6c2",oo="#ffffff",U="var(--md-color)",Te="#e5c07b",ao="#e5c07b",no="var(--md-color)",Ce="#d19a66",lo="#c678dd",ro="#21252b",io="#2c313a",we="var(--md-bk-color)",oe="var(--md-bk-color)",so="#ceedfa33",ye="#528bff",co=E.EditorView.theme({"&":{color:U,backgroundColor:we},".cm-content":{caretColor:ye},".cm-cursor, .cm-dropCursor":{borderLeftColor:ye},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:so},".cm-panels":{backgroundColor:ro,color:U},".cm-panels.cm-panels-top":{borderBottom:"1px solid var(--md-border-color)"},".cm-panels.cm-panels-bottom":{borderTop:"1px solid var(--md-border-color)"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#ceedfa33"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:we,color:U,borderRight:"1px solid",borderColor:"var(--md-border-color)"},".cm-activeLineGutter":{backgroundColor:io},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"1px solid var(--md-border-color)",backgroundColor:oe},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"var(--md-border-color)",borderBottomColor:"var(--md-border-color)"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:oe,borderBottomColor:oe},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{color:U}}},{dark:!0}),uo=K.HighlightStyle.define([{tag:f.tags.keyword,color:lo},{tag:[f.tags.name,f.tags.deleted,f.tags.character,f.tags.propertyName,f.tags.macroName],color:xe},{tag:[f.tags.function(f.tags.variableName),f.tags.labelName],color:ao},{tag:[f.tags.color,f.tags.constant(f.tags.name),f.tags.standard(f.tags.name)],color:Ce},{tag:[f.tags.definition(f.tags.name),f.tags.separator],color:U},{tag:[f.tags.typeName,f.tags.className,f.tags.number,f.tags.changed,f.tags.annotation,f.tags.modifier,f.tags.self,f.tags.namespace],color:eo},{tag:[f.tags.operator,f.tags.operatorKeyword,f.tags.url,f.tags.escape,f.tags.regexp,f.tags.link,f.tags.special(f.tags.string)],color:to},{tag:[f.tags.meta,f.tags.comment],color:Te},{tag:f.tags.strong,fontWeight:"bold"},{tag:f.tags.emphasis,fontStyle:"italic"},{tag:f.tags.strikethrough,textDecoration:"line-through"},{tag:f.tags.link,color:Te,textDecoration:"underline"},{tag:f.tags.heading,fontWeight:"bold",color:xe},{tag:[f.tags.atom,f.tags.bool,f.tags.special(f.tags.variableName)],color:Ce},{tag:[f.tags.processingInstruction,f.tags.string,f.tags.inserted],color:no},{tag:f.tags.invalid,color:oo}]),Ne=[co,K.syntaxHighlighting(uo)],mo=(t,o)=>{const a=e.inject("editorId"),l=r=>{r instanceof Promise?r.then(s=>{c.bus.emit(a,c.REPLACE,"universal",{generate(){return{targetValue:s}}})}).catch(s=>{console.error(s)}):c.bus.emit(a,c.REPLACE,"universal",{generate(){return{targetValue:r}}})};return r=>{if(!r.clipboardData)return;if(r.clipboardData.files.length>0){const{files:p}=r.clipboardData;c.bus.emit(a,c.UPLOAD_IMAGE,Array.from(p).filter(v=>/image\/.*/.test(v.type))),r.preventDefault();return}const s=r.clipboardData.getData("text/plain"),u=o.value?.view.state.selection.main.to||0,d=o.value?.view.state.doc.lineAt(u).from||0,b=o.value?.view.state.doc.sliceString(d,u)||"",m=/!\[.*\]\(\s*$/.test(b),g=/!\[.*\]\((.*)\s?.*\)/.test(s);if(m){const p=t.transformImgUrl(s);l(p),r.preventDefault();return}else if(g){const p=s.match(new RegExp(`(?<=!\\[.*\\]\\()([^)\\s]+)(?=\\s?["']?.*["']?\\))`,"g"));p?Promise.all(p.map(v=>t.transformImgUrl(v))).then(v=>{l(v.reduce((T,N,L)=>T.replace(p[L],N),s))}).catch(v=>{console.error(v)}):l(s),r.preventDefault();return}if(t.autoDetectCode&&r.clipboardData.types.includes("vscode-editor-data")){const p=JSON.parse(r.clipboardData.getData("vscode-editor-data"));c.bus.emit(a,c.REPLACE,"code",{mode:p.mode,text:r.clipboardData.getData("text/plain")}),r.preventDefault();return}t.maxlength&&s.length+t.modelValue.length>t.maxlength&&c.bus.emit(a,c.ERROR_CATCHER,{name:"overlength",message:"The input text is too long",data:s})}},bo=(t,o)=>{const a={key:"Ctrl-b",mac:"Cmd-b",run:()=>(c.bus.emit(t,c.REPLACE,"bold"),!0)},l={key:"Ctrl-s",mac:"Cmd-s",run:k=>(c.bus.emit(t,c.ON_SAVE,k.state.doc.toString()),!0),shift:()=>(c.bus.emit(t,c.REPLACE,"strikeThrough"),!0)},i={key:"Ctrl-u",mac:"Cmd-u",preventDefault:!0,run:()=>(c.bus.emit(t,c.REPLACE,"underline"),!0),shift:()=>(c.bus.emit(t,c.REPLACE,"unorderedList"),!0)},r={key:"Ctrl-i",mac:"Cmd-i",preventDefault:!0,run:()=>(c.bus.emit(t,c.REPLACE,"italic"),!0),shift:()=>(c.bus.emit(t,c.REPLACE,"image"),!0)},s={key:"Ctrl-1",mac:"Cmd-1",run:()=>(c.bus.emit(t,c.REPLACE,"h1"),!0)},u={key:"Ctrl-2",mac:"Cmd-2",run:()=>(c.bus.emit(t,c.REPLACE,"h2"),!0)},d={key:"Ctrl-3",mac:"Cmd-3",run:()=>(c.bus.emit(t,c.REPLACE,"h3"),!0)},b={key:"Ctrl-4",mac:"Cmd-4",run:()=>(c.bus.emit(t,c.REPLACE,"h4"),!0)},m={key:"Ctrl-5",mac:"Cmd-5",run:()=>(c.bus.emit(t,c.REPLACE,"h5"),!0)},g={key:"Ctrl-6",mac:"Cmd-6",run:()=>(c.bus.emit(t,c.REPLACE,"h6"),!0)},p={key:"Ctrl-ArrowUp",mac:"Cmd-ArrowUp",run:()=>(c.bus.emit(t,c.REPLACE,"sup"),!0)},v={key:"Ctrl-ArrowDown",mac:"Cmd-ArrowDown",run:()=>(c.bus.emit(t,c.REPLACE,"sub"),!0)},T={key:"Ctrl-o",mac:"Cmd-o",run:()=>(c.bus.emit(t,c.REPLACE,"orderedList"),!0)},N={key:"Ctrl-c",mac:"Cmd-c",shift:()=>(c.bus.emit(t,c.REPLACE,"code"),!0),any(k,h){return(h.ctrlKey||h.metaKey)&&h.altKey&&h.code==="KeyC"?(c.bus.emit(t,c.REPLACE,"codeRow"),!0):!1}},L={key:"Ctrl-l",mac:"Cmd-l",run:()=>(c.bus.emit(t,c.REPLACE,"link"),!0)},V={key:"Ctrl-f",mac:"Cmd-f",shift:()=>o.noPrettier?!1:(c.bus.emit(t,c.REPLACE,"prettier"),!0)},y={any:(k,h)=>(h.ctrlKey||h.metaKey)&&h.altKey&&h.shiftKey&&h.code==="KeyT"?(c.bus.emit(t,c.REPLACE,"table"),!0):!1},S={key:"Ctrl-d",mac:"Cmd-d",run:O.deleteLine,preventDefault:!0};return[a,S,l,i,r,s,u,d,b,m,g,p,v,T,N,L,V,y,...Be.searchKeymap]},fo=/[a-z][a-z0-9.+-]*:\/\/[^\s<>"'`()]+(?:\([^\s<>"'`]*\)[^\s<>"'`]*)*/i,po=/\/\/[^\s<>"'`()]+/i,go=/data:[a-z]+\/[a-z0-9.+-]+(?:;base64)?,[a-z0-9+/=%]+/i,vo=/\/(?!\/)[^\s<>"'`()]+/i,Q=new RegExp(`(${fo.source}|${po.source}|${go.source}|${vo.source})`,"gi"),ho=/[a-z0-9.+-]/i,xo=t=>{const o=[];Q.lastIndex=0;let a;for(;a=Q.exec(t);){const l=a.index??0,i=l>0?t[l-1]:"";if(i&&ho.test(i)||i==="<"&&t[l]==="/")continue;const s=l+a[0].length;o.push([l,s])}return o},To=(t,o,a)=>t.some(l=>l.from===o&&l.to===a),Co=t=>{const o=t.shortenText||(()=>"..."),a=$.StateEffect.define(),l=$.StateEffect.define(),i=(d,b)=>{const m=new $.RangeSetBuilder,g=[];for(let p=1;p<=d.doc.lines;p++){const v=d.doc.line(p),T=v.text;Q.lastIndex=0;const N=t.findTexts?.({state:d,lineText:T,lineNumber:v.number,lineFrom:v.from,lineTo:v.to,de