From 7e559d557ddc5e30c4b90b427865c76aea6c7eae Mon Sep 17 00:00:00 2001 From: Michael Yang Date: Sun, 24 Mar 2024 19:37:04 +0800 Subject: [PATCH] build: v1.0.0-rc.9 release (^.^)YYa!! --- changes.md | 10 +++ dist/index.cjs | 28 +++---- dist/index.js | 180 ++++++++++++++++++++++++--------------------- docs/zh/changes.md | 10 +++ package.json | 2 +- 5 files changed, 132 insertions(+), 98 deletions(-) diff --git a/changes.md b/changes.md index 2a6c552..688eda9 100644 --- a/changes.md +++ b/changes.md @@ -1,6 +1,16 @@ # AiEditor ChangeLog +## v1.0.0-rc.9 20240324: +- 新增:自定义大语言模型添加 headers 配置的支持 +- 优化:优化 ai 翻译的 prompt 内容,以保证能够正确翻译多国语言 +- 优化:移除代码中一些多余的日志输出 +- 修复:修正表格的弹出菜单在某些情况下无法正确弹出的问题 +- 文档:修正快速开始的 ai 配置不正确(未同步最新版本)的问题 +- 文档:添加关于自定义大模型的相关文档 + + + ## v1.0.0-rc.8 20240317: - 新增:添加自定义对接任意大模型的支持 - 新增:添加文心一言大模型的支持,感谢 @bendantada diff --git a/dist/index.cjs b/dist/index.cjs index 2cfff67..2a4050b 100644 --- a/dist/index.cjs +++ b/dist/index.cjs @@ -6,7 +6,7 @@ `);return{dom:l,text:p}}function Fh(n,e,t,r,i){let s=i.parent.type.spec.code,o,a;if(!t&&!e)return null;let l=e&&(r||s||!t);if(l){if(n.someProp("transformPastedText",p=>{e=p(e,s||r,n)}),s)return e?new F(R.from(n.state.schema.text(e.replace(/\r\n?/g,` `))),0,0):F.empty;let d=n.someProp("clipboardTextParser",p=>p(e,i,r,n));if(d)a=d;else{let p=i.marks(),{schema:f}=n.state,h=qt.fromSchema(f);o=document.createElement("div"),e.split(/(?:\r\n?|\n)+/).forEach(g=>{let m=o.appendChild(document.createElement("p"));g&&m.appendChild(h.serializeNode(f.text(g,p)))})}}else n.someProp("transformPastedHTML",d=>{t=d(t,n)}),o=wb(t),Wi&&kb(o);let c=o&&o.querySelector("[data-pm-slice]"),u=c&&/^(\d+) (\d+)(?: -(\d+))? (.*)/.exec(c.getAttribute("data-pm-slice")||"");if(u&&u[3])for(let d=+u[3];d>0;d--){let p=o.firstChild;for(;p&&p.nodeType!=1;)p=p.nextSibling;if(!p)break;o=p}if(a||(a=(n.someProp("clipboardParser")||n.someProp("domParser")||Zi.fromSchema(n.state.schema)).parseSlice(o,{preserveWhitespace:!!(l||u),context:i,ruleFromNode(p){return p.nodeName=="BR"&&!p.nextSibling&&p.parentNode&&!yb.test(p.parentNode.nodeName)?{ignore:!0}:null}})),u)a=xb(td(a,+u[1],+u[2]),u[4]);else if(a=F.maxOpen(vb(a.content,i),!0),a.openStart||a.openEnd){let d=0,p=0;for(let f=a.content.firstChild;d{a=d(a,n)}),a}const yb=/^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;function vb(n,e){if(n.childCount<2)return n;for(let t=e.depth;t>=0;t--){let i=e.node(t).contentMatchAt(e.index(t)),s,o=[];if(n.forEach(a=>{if(!o)return;let l=i.findWrapping(a.type),c;if(!l)return o=null;if(c=o.length&&s.length&&qh(l,s,a,o[o.length-1],0))o[o.length-1]=c;else{o.length&&(o[o.length-1]=Uh(o[o.length-1],s.length));let u=zh(a,l);o.push(u),i=i.matchType(u.type),s=l}}),o)return R.from(o)}return n}function zh(n,e,t=0){for(let r=e.length-1;r>=t;r--)n=e[r].create(null,R.from(n));return n}function qh(n,e,t,r,i){if(i1&&(s=0),i=t&&(a=e<0?o.contentMatchAt(0).fillBefore(a,s<=i).append(a):a.append(o.contentMatchAt(o.childCount).fillBefore(R.empty,!0))),n.replaceChild(e<0?0:n.childCount-1,o.copy(a))}function td(n,e,t){return e]*>)*/.exec(n);e&&(n=n.slice(e[0].length));let t=Zh().createElement("div"),r=/<([a-z][^>\s]+)/i.exec(n),i;if((i=r&&Kh[r[1].toLowerCase()])&&(n=i.map(s=>"<"+s+">").join("")+n+i.map(s=>"").reverse().join("")),t.innerHTML=n,i)for(let s=0;s=0;a-=2){let l=t.nodes[r[a]];if(!l||l.hasRequiredAttrs())break;i=R.from(l.create(r[a+1],i)),s++,o++}return new F(i,s,o)}const it={},st={},Eb={touchstart:!0,touchmove:!0};class Cb{constructor(){this.shiftKey=!1,this.mouseDown=null,this.lastKeyCode=null,this.lastKeyCodeTime=0,this.lastClick={time:0,x:0,y:0,type:""},this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastIOSEnter=0,this.lastIOSEnterFallbackTimeout=-1,this.lastFocus=0,this.lastTouch=0,this.lastAndroidDelete=0,this.composing=!1,this.composingTimeout=-1,this.compositionNodes=[],this.compositionEndedAt=-2e8,this.compositionID=1,this.compositionPendingChanges=0,this.domChangeCount=0,this.eventHandlers=Object.create(null),this.hideSelectionGuard=null}}function Sb(n){for(let e in it){let t=it[e];n.dom.addEventListener(e,n.input.eventHandlers[e]=r=>{Mb(n,r)&&!hc(n,r)&&(n.editable||!(r.type in st))&&t(n,r)},Eb[e]?{passive:!0}:void 0)}rt&&n.dom.addEventListener("input",()=>null),Ol(n)}function En(n,e){n.input.lastSelectionOrigin=e,n.input.lastSelectionTime=Date.now()}function _b(n){n.domObserver.stop();for(let e in n.input.eventHandlers)n.dom.removeEventListener(e,n.input.eventHandlers[e]);clearTimeout(n.input.composingTimeout),clearTimeout(n.input.lastIOSEnterFallbackTimeout)}function Ol(n){n.someProp("handleDOMEvents",e=>{for(let t in e)n.input.eventHandlers[t]||n.dom.addEventListener(t,n.input.eventHandlers[t]=r=>hc(n,r))})}function hc(n,e){return n.someProp("handleDOMEvents",t=>{let r=t[e.type];return r?r(n,e)||e.defaultPrevented:!1})}function Mb(n,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target;t!=n.dom;t=t.parentNode)if(!t||t.nodeType==11||t.pmViewDesc&&t.pmViewDesc.stopEvent(e))return!1;return!0}function Ab(n,e){!hc(n,e)&&it[e.type]&&(n.editable||!(e.type in st))&&it[e.type](n,e)}st.keydown=(n,e)=>{let t=e;if(n.input.shiftKey=t.keyCode==16||t.shiftKey,!Gh(n,t)&&(n.input.lastKeyCode=t.keyCode,n.input.lastKeyCodeTime=Date.now(),!(Lt&&Ye&&t.keyCode==13)))if(t.keyCode!=229&&n.domObserver.forceFlush(),zr&&t.keyCode==13&&!t.ctrlKey&&!t.altKey&&!t.metaKey){let r=Date.now();n.input.lastIOSEnter=r,n.input.lastIOSEnterFallbackTimeout=setTimeout(()=>{n.input.lastIOSEnter==r&&(n.someProp("handleKeyDown",i=>i(n,Fn(13,"Enter"))),n.input.lastIOSEnter=0)},200)}else n.someProp("handleKeyDown",r=>r(n,t))||bb(n,t)?t.preventDefault():En(n,"key")};st.keyup=(n,e)=>{e.keyCode==16&&(n.input.shiftKey=!1)};st.keypress=(n,e)=>{let t=e;if(Gh(n,t)||!t.charCode||t.ctrlKey&&!t.altKey||Et&&t.metaKey)return;if(n.someProp("handleKeyPress",i=>i(n,t))){t.preventDefault();return}let r=n.state.selection;if(!(r instanceof X)||!r.$from.sameParent(r.$to)){let i=String.fromCharCode(t.charCode);!/[\r\n]/.test(i)&&!n.someProp("handleTextInput",s=>s(n,r.$from.pos,r.$to.pos,i))&&n.dispatch(n.state.tr.insertText(i).scrollIntoView()),t.preventDefault()}};function Do(n){return{left:n.clientX,top:n.clientY}}function Tb(n,e){let t=e.x-n.clientX,r=e.y-n.clientY;return t*t+r*r<100}function gc(n,e,t,r,i){if(r==-1)return!1;let s=n.state.doc.resolve(r);for(let o=s.depth+1;o>0;o--)if(n.someProp(e,a=>o>s.depth?a(n,t,s.nodeAfter,s.before(o),i,!0):a(n,t,s.node(o),s.before(o),i,!1)))return!0;return!1}function Pr(n,e,t){n.focused||n.focus();let r=n.state.tr.setSelection(e);t=="pointer"&&r.setMeta("pointer",!0),n.dispatch(r)}function Nb(n,e){if(e==-1)return!1;let t=n.state.doc.resolve(e),r=t.nodeAfter;return r&&r.isAtom&&Q.isSelectable(r)?(Pr(n,new Q(t),"pointer"),!0):!1}function Ob(n,e){if(e==-1)return!1;let t=n.state.selection,r,i;t instanceof Q&&(r=t.node);let s=n.state.doc.resolve(e);for(let o=s.depth+1;o>0;o--){let a=o>s.depth?s.nodeAfter:s.node(o);if(Q.isSelectable(a)){r&&t.$from.depth>0&&o>=t.$from.depth&&s.before(t.$from.depth+1)==t.$from.pos?i=s.before(t.$from.depth):i=s.before(o);break}}return i!=null?(Pr(n,Q.create(n.state.doc,i),"pointer"),!0):!1}function Lb(n,e,t,r,i){return gc(n,"handleClickOn",e,t,r)||n.someProp("handleClick",s=>s(n,e,r))||(i?Ob(n,t):Nb(n,t))}function Rb(n,e,t,r){return gc(n,"handleDoubleClickOn",e,t,r)||n.someProp("handleDoubleClick",i=>i(n,e,r))}function Db(n,e,t,r){return gc(n,"handleTripleClickOn",e,t,r)||n.someProp("handleTripleClick",i=>i(n,e,r))||Ib(n,t,r)}function Ib(n,e,t){if(t.button!=0)return!1;let r=n.state.doc;if(e==-1)return r.inlineContent?(Pr(n,X.create(r,0,r.content.size),"pointer"),!0):!1;let i=r.resolve(e);for(let s=i.depth+1;s>0;s--){let o=s>i.depth?i.nodeAfter:i.node(s),a=i.before(s);if(o.inlineContent)Pr(n,X.create(r,a+1,a+1+o.content.size),"pointer");else if(Q.isSelectable(o))Pr(n,Q.create(r,a),"pointer");else continue;return!0}}function mc(n){return Ks(n)}const Wh=Et?"metaKey":"ctrlKey";it.mousedown=(n,e)=>{let t=e;n.input.shiftKey=t.shiftKey;let r=mc(n),i=Date.now(),s="singleClick";i-n.input.lastClick.time<500&&Tb(t,n.input.lastClick)&&!t[Wh]&&(n.input.lastClick.type=="singleClick"?s="doubleClick":n.input.lastClick.type=="doubleClick"&&(s="tripleClick")),n.input.lastClick={time:i,x:t.clientX,y:t.clientY,type:s};let o=n.posAtCoords(Do(t));o&&(s=="singleClick"?(n.input.mouseDown&&n.input.mouseDown.done(),n.input.mouseDown=new Hb(n,o,t,!!r)):(s=="doubleClick"?Rb:Db)(n,o.pos,o.inside,t)?t.preventDefault():En(n,"pointer"))};class Hb{constructor(e,t,r,i){this.view=e,this.pos=t,this.event=r,this.flushed=i,this.delayedSelectionSync=!1,this.mightDrag=null,this.startDoc=e.state.doc,this.selectNode=!!r[Wh],this.allowDefault=r.shiftKey;let s,o;if(t.inside>-1)s=e.state.doc.nodeAt(t.inside),o=t.inside;else{let u=e.state.doc.resolve(t.pos);s=u.parent,o=u.depth?u.before():0}const a=i?null:r.target,l=a?e.docView.nearestDesc(a,!0):null;this.target=l?l.dom:null;let{selection:c}=e.state;(r.button==0&&s.type.spec.draggable&&s.type.spec.selectable!==!1||c instanceof Q&&c.from<=o&&c.to>o)&&(this.mightDrag={node:s,pos:o,addAttr:!!(this.target&&!this.target.draggable),setUneditable:!!(this.target&&Dt&&!this.target.hasAttribute("contentEditable"))}),this.target&&this.mightDrag&&(this.mightDrag.addAttr||this.mightDrag.setUneditable)&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&(this.target.draggable=!0),this.mightDrag.setUneditable&&setTimeout(()=>{this.view.input.mouseDown==this&&this.target.setAttribute("contentEditable","false")},20),this.view.domObserver.start()),e.root.addEventListener("mouseup",this.up=this.up.bind(this)),e.root.addEventListener("mousemove",this.move=this.move.bind(this)),En(e,"pointer")}done(){this.view.root.removeEventListener("mouseup",this.up),this.view.root.removeEventListener("mousemove",this.move),this.mightDrag&&this.target&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&this.target.removeAttribute("draggable"),this.mightDrag.setUneditable&&this.target.removeAttribute("contentEditable"),this.view.domObserver.start()),this.delayedSelectionSync&&setTimeout(()=>cn(this.view)),this.view.input.mouseDown=null}up(e){if(this.done(),!this.view.dom.contains(e.target))return;let t=this.pos;this.view.state.doc!=this.startDoc&&(t=this.view.posAtCoords(Do(e))),this.updateAllowDefault(e),this.allowDefault||!t?En(this.view,"pointer"):Lb(this.view,t.pos,t.inside,e,this.selectNode)?e.preventDefault():e.button==0&&(this.flushed||rt&&this.mightDrag&&!this.mightDrag.node.isAtom||Ye&&!this.view.state.selection.visible&&Math.min(Math.abs(t.pos-this.view.state.selection.from),Math.abs(t.pos-this.view.state.selection.to))<=2)?(Pr(this.view,ne.near(this.view.state.doc.resolve(t.pos)),"pointer"),e.preventDefault()):En(this.view,"pointer")}move(e){this.updateAllowDefault(e),En(this.view,"pointer"),e.buttons==0&&this.done()}updateAllowDefault(e){!this.allowDefault&&(Math.abs(this.event.x-e.clientX)>4||Math.abs(this.event.y-e.clientY)>4)&&(this.allowDefault=!0)}}it.touchstart=n=>{n.input.lastTouch=Date.now(),mc(n),En(n,"pointer")};it.touchmove=n=>{n.input.lastTouch=Date.now(),En(n,"pointer")};it.contextmenu=n=>mc(n);function Gh(n,e){return n.composing?!0:rt&&Math.abs(e.timeStamp-n.input.compositionEndedAt)<500?(n.input.compositionEndedAt=-2e8,!0):!1}const Bb=Lt?5e3:-1;st.compositionstart=st.compositionupdate=n=>{if(!n.composing){n.domObserver.flush();let{state:e}=n,t=e.selection.$from;if(e.selection.empty&&(e.storedMarks||!t.textOffset&&t.parentOffset&&t.nodeBefore.marks.some(r=>r.type.spec.inclusive===!1)))n.markCursor=n.state.storedMarks||t.marks(),Ks(n,!0),n.markCursor=null;else if(Ks(n),Dt&&e.selection.empty&&t.parentOffset&&!t.textOffset&&t.nodeBefore.marks.length){let r=n.domSelectionRange();for(let i=r.focusNode,s=r.focusOffset;i&&i.nodeType==1&&s!=0;){let o=s<0?i.lastChild:i.childNodes[s-1];if(!o)break;if(o.nodeType==3){n.domSelection().collapse(o,o.nodeValue.length);break}else i=o,s=-1}}n.input.composing=!0}jh(n,Bb)};st.compositionend=(n,e)=>{n.composing&&(n.input.composing=!1,n.input.compositionEndedAt=e.timeStamp,n.input.compositionPendingChanges=n.domObserver.pendingRecords().length?n.input.compositionID:0,n.input.compositionPendingChanges&&Promise.resolve().then(()=>n.domObserver.flush()),n.input.compositionID++,jh(n,20))};function jh(n,e){clearTimeout(n.input.composingTimeout),e>-1&&(n.input.composingTimeout=setTimeout(()=>Ks(n),e))}function Jh(n){for(n.composing&&(n.input.composing=!1,n.input.compositionEndedAt=Pb());n.input.compositionNodes.length>0;)n.input.compositionNodes.pop().markParentsDirty()}function Pb(){let n=document.createEvent("Event");return n.initEvent("event",!0,!0),n.timeStamp}function Ks(n,e=!1){if(!(Lt&&n.domObserver.flushingSoon>=0)){if(n.domObserver.forceFlush(),Jh(n),e||n.docView&&n.docView.dirty){let t=pc(n);return t&&!t.eq(n.state.selection)?n.dispatch(n.state.tr.setSelection(t)):n.updateState(n.state),!0}return!1}}function $b(n,e){if(!n.dom.parentNode)return;let t=n.dom.parentNode.appendChild(document.createElement("div"));t.appendChild(e),t.style.cssText="position: fixed; left: -10000px; top: 10px";let r=getSelection(),i=document.createRange();i.selectNodeContents(e),n.dom.blur(),r.removeAllRanges(),r.addRange(i),setTimeout(()=>{t.parentNode&&t.parentNode.removeChild(t),n.focus()},50)}const Ti=ut&&Mn<15||zr&&H0<604;it.copy=st.cut=(n,e)=>{let t=e,r=n.state.selection,i=t.type=="cut";if(r.empty)return;let s=Ti?null:t.clipboardData,o=r.content(),{dom:a,text:l}=Vh(n,o);s?(t.preventDefault(),s.clearData(),s.setData("text/html",a.innerHTML),s.setData("text/plain",l)):$b(n,a),i&&n.dispatch(n.state.tr.deleteSelection().scrollIntoView().setMeta("uiEvent","cut"))};function Vb(n){return n.openStart==0&&n.openEnd==0&&n.content.childCount==1?n.content.firstChild:null}function Fb(n,e){if(!n.dom.parentNode)return;let t=n.input.shiftKey||n.state.selection.$from.parent.type.spec.code,r=n.dom.parentNode.appendChild(document.createElement(t?"textarea":"div"));t||(r.contentEditable="true"),r.style.cssText="position: fixed; left: -10000px; top: 10px",r.focus();let i=n.input.shiftKey&&n.input.lastKeyCode!=45;setTimeout(()=>{n.focus(),r.parentNode&&r.parentNode.removeChild(r),t?Ni(n,r.value,null,i,e):Ni(n,r.textContent,r.innerHTML,i,e)},50)}function Ni(n,e,t,r,i){let s=Fh(n,e,t,r,n.state.selection.$from);if(n.someProp("handlePaste",l=>l(n,i,s||F.empty)))return!0;if(!s)return!1;let o=Vb(s),a=o?n.state.tr.replaceSelectionWith(o,r):n.state.tr.replaceSelection(s);return n.dispatch(a.scrollIntoView().setMeta("paste",!0).setMeta("uiEvent","paste")),!0}function Yh(n){let e=n.getData("text/plain")||n.getData("Text");if(e)return e;let t=n.getData("text/uri-list");return t?t.replace(/\r?\n/g," "):""}st.paste=(n,e)=>{let t=e;if(n.composing&&!Lt)return;let r=Ti?null:t.clipboardData,i=n.input.shiftKey&&n.input.lastKeyCode!=45;r&&Ni(n,Yh(r),r.getData("text/html"),i,t)?t.preventDefault():Fb(n,t)};class Xh{constructor(e,t,r){this.slice=e,this.move=t,this.node=r}}const Qh=Et?"altKey":"ctrlKey";it.dragstart=(n,e)=>{let t=e,r=n.input.mouseDown;if(r&&r.done(),!t.dataTransfer)return;let i=n.state.selection,s=i.empty?null:n.posAtCoords(Do(t)),o;if(!(s&&s.pos>=i.from&&s.pos<=(i instanceof Q?i.to-1:i.to))){if(r&&r.mightDrag)o=Q.create(n.state.doc,r.mightDrag.pos);else if(t.target&&t.target.nodeType==1){let u=n.docView.nearestDesc(t.target,!0);u&&u.node.type.spec.draggable&&u!=n.docView&&(o=Q.create(n.state.doc,u.posBefore))}}let a=(o||n.state.selection).content(),{dom:l,text:c}=Vh(n,a);t.dataTransfer.clearData(),t.dataTransfer.setData(Ti?"Text":"text/html",l.innerHTML),t.dataTransfer.effectAllowed="copyMove",Ti||t.dataTransfer.setData("text/plain",c),n.dragging=new Xh(a,!t[Qh],o)};it.dragend=n=>{let e=n.dragging;window.setTimeout(()=>{n.dragging==e&&(n.dragging=null)},50)};st.dragover=st.dragenter=(n,e)=>e.preventDefault();st.drop=(n,e)=>{let t=e,r=n.dragging;if(n.dragging=null,!t.dataTransfer)return;let i=n.posAtCoords(Do(t));if(!i)return;let s=n.state.doc.resolve(i.pos),o=r&&r.slice;o?n.someProp("transformPasted",h=>{o=h(o,n)}):o=Fh(n,Yh(t.dataTransfer),Ti?null:t.dataTransfer.getData("text/html"),!1,s);let a=!!(r&&!t[Qh]);if(n.someProp("handleDrop",h=>h(n,t,o||F.empty,a))){t.preventDefault();return}if(!o)return;t.preventDefault();let l=o?mh(n.state.doc,s.pos,o):s.pos;l==null&&(l=s.pos);let c=n.state.tr;if(a){let{node:h}=r;h?h.replace(c):c.deleteSelection()}let u=c.mapping.map(l),d=o.openStart==0&&o.openEnd==0&&o.content.childCount==1,p=c.doc;if(d?c.replaceRangeWith(u,u,o.content.firstChild):c.replaceRange(u,u,o),c.doc.eq(p))return;let f=c.doc.resolve(u);if(d&&Q.isSelectable(o.content.firstChild)&&f.nodeAfter&&f.nodeAfter.sameMarkup(o.content.firstChild))c.setSelection(new Q(f));else{let h=c.mapping.map(l);c.mapping.maps[c.mapping.maps.length-1].forEach((g,m,v,y)=>h=y),c.setSelection(fc(n,f,c.doc.resolve(h)))}n.focus(),n.dispatch(c.setMeta("uiEvent","drop"))};it.focus=n=>{n.input.lastFocus=Date.now(),n.focused||(n.domObserver.stop(),n.dom.classList.add("ProseMirror-focused"),n.domObserver.start(),n.focused=!0,setTimeout(()=>{n.docView&&n.hasFocus()&&!n.domObserver.currentSelection.eq(n.domSelectionRange())&&cn(n)},20))};it.blur=(n,e)=>{let t=e;n.focused&&(n.domObserver.stop(),n.dom.classList.remove("ProseMirror-focused"),n.domObserver.start(),t.relatedTarget&&n.dom.contains(t.relatedTarget)&&n.domObserver.currentSelection.clear(),n.focused=!1)};it.beforeinput=(n,e)=>{if(Ye&&Lt&&e.inputType=="deleteContentBackward"){n.domObserver.flushSoon();let{domChangeCount:r}=n.input;setTimeout(()=>{if(n.input.domChangeCount!=r||(n.dom.blur(),n.focus(),n.someProp("handleKeyDown",s=>s(n,Fn(8,"Backspace")))))return;let{$cursor:i}=n.state.selection;i&&i.pos>0&&n.dispatch(n.state.tr.delete(i.pos-1,i.pos).scrollIntoView())},50)}};for(let n in st)it[n]=st[n];function Oi(n,e){if(n==e)return!0;for(let t in n)if(n[t]!==e[t])return!1;for(let t in e)if(!(t in n))return!1;return!0}class Zs{constructor(e,t){this.toDOM=e,this.spec=t||Yn,this.side=this.spec.side||0}map(e,t,r,i){let{pos:s,deleted:o}=e.mapResult(t.from+i,this.side<0?-1:1);return o?null:new Be(s-r,s-r,this)}valid(){return!0}eq(e){return this==e||e instanceof Zs&&(this.spec.key&&this.spec.key==e.spec.key||this.toDOM==e.toDOM&&Oi(this.spec,e.spec))}destroy(e){this.spec.destroy&&this.spec.destroy(e)}}class Tn{constructor(e,t){this.attrs=e,this.spec=t||Yn}map(e,t,r,i){let s=e.map(t.from+i,this.spec.inclusiveStart?-1:1)-r,o=e.map(t.to+i,this.spec.inclusiveEnd?1:-1)-r;return s>=o?null:new Be(s,o,this)}valid(e,t){return t.from=e&&(!s||s(a.spec))&&r.push(a.copy(a.from+i,a.to+i))}for(let o=0;oe){let a=this.children[o]+1;this.children[o+2].findInner(e-a,t-a,r,i+a,s)}}map(e,t,r){return this==Je||e.maps.length==0?this:this.mapInner(e,t,0,0,r||Yn)}mapInner(e,t,r,i,s){let o;for(let a=0;a{let c=l+r,u;if(u=tg(t,a,c)){for(i||(i=this.children.slice());sa&&d.to=e){this.children[a]==e&&(r=this.children[a+2]);break}let s=e+1,o=s+t.content.size;for(let a=0;as&&l.type instanceof Tn){let c=Math.max(s,l.from)-s,u=Math.min(o,l.to)-s;ci.map(e,t,Yn));return yn.from(r)}forChild(e,t){if(t.isLeaf)return Ee.empty;let r=[];for(let i=0;it instanceof Ee)?e:e.reduce((t,r)=>t.concat(r instanceof Ee?r:r.members),[]))}}}function zb(n,e,t,r,i,s,o){let a=n.slice();for(let c=0,u=s;c{let m=g-h-(f-p);for(let v=0;vy+u-d)continue;let k=a[v]+u-d;f>=k?a[v+1]=p<=k?-2:-1:h>=i&&m&&(a[v]+=m,a[v+1]+=m)}d+=m}),u=t.maps[c].map(u,-1)}let l=!1;for(let c=0;c=r.content.size){l=!0;continue}let p=t.map(n[c+1]+s,-1),f=p-i,{index:h,offset:g}=r.content.findIndex(d),m=r.maybeChild(h);if(m&&g==d&&g+m.nodeSize==f){let v=a[c+2].mapInner(t,m,u+1,n[c]+s+1,o);v!=Je?(a[c]=d,a[c+1]=f,a[c+2]=v):(a[c+1]=-2,l=!0)}else l=!0}if(l){let c=qb(a,n,e,t,i,s,o),u=Ws(c,r,0,o);e=u.local;for(let d=0;dt&&o.to{let c=tg(n,a,l+t);if(c){s=!0;let u=Ws(c,a,t+l+1,r);u!=Je&&i.push(l,l+a.nodeSize,u)}});let o=eg(s?ng(n):n,-t).sort(Xn);for(let a=0;a0;)e++;n.splice(e,0,t)}function Ca(n){let e=[];return n.someProp("decorations",t=>{let r=t(n.state);r&&r!=Je&&e.push(r)}),n.cursorWrapper&&e.push(Ee.create(n.state.doc,[n.cursorWrapper.deco])),yn.from(e)}const Ub={childList:!0,characterData:!0,characterDataOldValue:!0,attributes:!0,attributeOldValue:!0,subtree:!0},Kb=ut&&Mn<=11;class Zb{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}set(e){this.anchorNode=e.anchorNode,this.anchorOffset=e.anchorOffset,this.focusNode=e.focusNode,this.focusOffset=e.focusOffset}clear(){this.anchorNode=this.focusNode=null}eq(e){return e.anchorNode==this.anchorNode&&e.anchorOffset==this.anchorOffset&&e.focusNode==this.focusNode&&e.focusOffset==this.focusOffset}}class Wb{constructor(e,t){this.view=e,this.handleDOMChange=t,this.queue=[],this.flushingSoon=-1,this.observer=null,this.currentSelection=new Zb,this.onCharData=null,this.suppressingSelectionUpdates=!1,this.observer=window.MutationObserver&&new window.MutationObserver(r=>{for(let i=0;ii.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),Kb&&(this.onCharData=r=>{this.queue.push({target:r.target,type:"characterData",oldValue:r.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this)}flushSoon(){this.flushingSoon<0&&(this.flushingSoon=window.setTimeout(()=>{this.flushingSoon=-1,this.flush()},20))}forceFlush(){this.flushingSoon>-1&&(window.clearTimeout(this.flushingSoon),this.flushingSoon=-1,this.flush())}start(){this.observer&&(this.observer.takeRecords(),this.observer.observe(this.view.dom,Ub)),this.onCharData&&this.view.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.connectSelection()}stop(){if(this.observer){let e=this.observer.takeRecords();if(e.length){for(let t=0;tthis.flush(),20)}this.observer.disconnect()}this.onCharData&&this.view.dom.removeEventListener("DOMCharacterDataModified",this.onCharData),this.disconnectSelection()}connectSelection(){this.view.dom.ownerDocument.addEventListener("selectionchange",this.onSelectionChange)}disconnectSelection(){this.view.dom.ownerDocument.removeEventListener("selectionchange",this.onSelectionChange)}suppressSelectionUpdates(){this.suppressingSelectionUpdates=!0,setTimeout(()=>this.suppressingSelectionUpdates=!1,50)}onSelectionChange(){if(ju(this.view)){if(this.suppressingSelectionUpdates)return cn(this.view);if(ut&&Mn<=11&&!this.view.state.selection.empty){let e=this.view.domSelectionRange();if(e.focusNode&&rr(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset))return this.flushSoon()}this.flush()}}setCurSelection(){this.currentSelection.set(this.view.domSelectionRange())}ignoreSelectionChange(e){if(!e.focusNode)return!0;let t=new Set,r;for(let s=e.focusNode;s;s=Ai(s))t.add(s);for(let s=e.anchorNode;s;s=Ai(s))if(t.has(s)){r=s;break}let i=r&&this.view.docView.nearestDesc(r);if(i&&i.ignoreMutation({type:"selection",target:r.nodeType==3?r.parentNode:r}))return this.setCurSelection(),!0}pendingRecords(){if(this.observer)for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}flush(){let{view:e}=this;if(!e.docView||this.flushingSoon>-1)return;let t=this.pendingRecords();t.length&&(this.queue=[]);let r=e.domSelectionRange(),i=!this.suppressingSelectionUpdates&&!this.currentSelection.eq(r)&&ju(e)&&!this.ignoreSelectionChange(r),s=-1,o=-1,a=!1,l=[];if(e.editable)for(let u=0;u1){let u=l.filter(d=>d.nodeName=="BR");if(u.length==2){let d=u[0],p=u[1];d.parentNode&&d.parentNode.parentNode==p.parentNode?p.remove():d.remove()}}let c=null;s<0&&i&&e.input.lastFocus>Date.now()-200&&Math.max(e.input.lastTouch,e.input.lastClick.time)-1||i)&&(s>-1&&(e.docView.markDirty(s,o),Gb(e)),this.handleDOMChange(s,o,a,l),e.docView&&e.docView.dirty?e.updateState(e.state):this.currentSelection.eq(r)||cn(e),this.currentSelection.set(r))}registerMutation(e,t){if(t.indexOf(e.target)>-1)return null;let r=this.view.docView.nearestDesc(e.target);if(e.type=="attributes"&&(r==this.view.docView||e.attributeName=="contenteditable"||e.attributeName=="style"&&!e.oldValue&&!e.target.getAttribute("style"))||!r||r.ignoreMutation(e))return null;if(e.type=="childList"){for(let u=0;ui;m--){let v=r.childNodes[m-1],y=v.pmViewDesc;if(v.nodeName=="BR"&&!y){s=m;break}if(!y||y.size)break}let d=n.state.doc,p=n.someProp("domParser")||Zi.fromSchema(n.state.schema),f=d.resolve(o),h=null,g=p.parse(r,{topNode:f.parent,topMatch:f.parent.contentMatchAt(f.index()),topOpen:!0,from:i,to:s,preserveWhitespace:f.parent.type.whitespace=="pre"?"full":!0,findPositions:c,ruleFromNode:Yb,context:f});if(c&&c[0].pos!=null){let m=c[0].pos,v=c[1]&&c[1].pos;v==null&&(v=m),h={anchor:m+o,head:v+o}}return{doc:g,sel:h,from:o,to:a}}function Yb(n){let e=n.pmViewDesc;if(e)return e.parseRule();if(n.nodeName=="BR"&&n.parentNode){if(rt&&/^(ul|ol)$/i.test(n.parentNode.nodeName)){let t=document.createElement("div");return t.appendChild(document.createElement("li")),{skip:t}}else if(n.parentNode.lastChild==n||rt&&/^(tr|table)$/i.test(n.parentNode.nodeName))return{ignore:!0}}else if(n.nodeName=="IMG"&&n.getAttribute("mark-placeholder"))return{ignore:!0};return null}const Xb=/^(a|abbr|acronym|b|bd[io]|big|br|button|cite|code|data(list)?|del|dfn|em|i|ins|kbd|label|map|mark|meter|output|q|ruby|s|samp|small|span|strong|su[bp]|time|u|tt|var)$/i;function Qb(n,e,t,r,i){let s=n.input.compositionPendingChanges||(n.composing?n.input.compositionID:0);if(n.input.compositionPendingChanges=0,e<0){let M=n.input.lastSelectionTime>Date.now()-50?n.input.lastSelectionOrigin:null,L=pc(n,M);if(L&&!n.state.selection.eq(L)){if(Ye&&Lt&&n.input.lastKeyCode===13&&Date.now()-100U(n,Fn(13,"Enter"))))return;let z=n.state.tr.setSelection(L);M=="pointer"?z.setMeta("pointer",!0):M=="key"&&z.scrollIntoView(),s&&z.setMeta("composition",s),n.dispatch(z)}return}let o=n.state.doc.resolve(e),a=o.sharedDepth(t);e=o.before(a+1),t=n.state.doc.resolve(t).after(a+1);let l=n.state.selection,c=Jb(n,e,t),u=n.state.doc,d=u.slice(c.from,c.to),p,f;n.input.lastKeyCode===8&&Date.now()-100Date.now()-225||Lt)&&i.some(M=>M.nodeType==1&&!Xb.test(M.nodeName))&&(!h||h.endA>=h.endB)&&n.someProp("handleKeyDown",M=>M(n,Fn(13,"Enter")))){n.input.lastIOSEnter=0;return}if(!h)if(r&&l instanceof X&&!l.empty&&l.$head.sameParent(l.$anchor)&&!n.composing&&!(c.sel&&c.sel.anchor!=c.sel.head))h={start:l.from,endA:l.to,endB:l.to};else{if(c.sel){let M=od(n,n.state.doc,c.sel);if(M&&!M.eq(n.state.selection)){let L=n.state.tr.setSelection(M);s&&L.setMeta("composition",s),n.dispatch(L)}}return}if(Ye&&n.cursorWrapper&&c.sel&&c.sel.anchor==n.cursorWrapper.deco.from&&c.sel.head==c.sel.anchor){let M=h.endB-h.start;c.sel={anchor:c.sel.anchor+M,head:c.sel.anchor+M}}n.input.domChangeCount++,n.state.selection.fromn.state.selection.from&&h.start<=n.state.selection.from+2&&n.state.selection.from>=c.from?h.start=n.state.selection.from:h.endA=n.state.selection.to-2&&n.state.selection.to<=c.to&&(h.endB+=n.state.selection.to-h.endA,h.endA=n.state.selection.to)),ut&&Mn<=11&&h.endB==h.start+1&&h.endA==h.start&&h.start>c.from&&c.doc.textBetween(h.start-c.from-1,h.start-c.from+1)=="  "&&(h.start--,h.endA--,h.endB--);let g=c.doc.resolveNoCache(h.start-c.from),m=c.doc.resolveNoCache(h.endB-c.from),v=u.resolve(h.start),y=g.sameParent(m)&&g.parent.inlineContent&&v.end()>=h.endA,k;if((zr&&n.input.lastIOSEnter>Date.now()-225&&(!y||i.some(M=>M.nodeName=="DIV"||M.nodeName=="P"))||!y&&g.posM(n,Fn(13,"Enter")))){n.input.lastIOSEnter=0;return}if(n.state.selection.anchor>h.start&&ty(u,h.start,h.endA,g,m)&&n.someProp("handleKeyDown",M=>M(n,Fn(8,"Backspace")))){Lt&&Ye&&n.domObserver.suppressSelectionUpdates();return}Ye&&Lt&&h.endB==h.start&&(n.input.lastAndroidDelete=Date.now()),Lt&&!y&&g.start()!=m.start()&&m.parentOffset==0&&g.depth==m.depth&&c.sel&&c.sel.anchor==c.sel.head&&c.sel.head==h.endA&&(h.endB-=2,m=c.doc.resolveNoCache(h.endB-c.from),setTimeout(()=>{n.someProp("handleKeyDown",function(M){return M(n,Fn(13,"Enter"))})},20));let b=h.start,E=h.endA,w,S,A;if(y){if(g.pos==m.pos)ut&&Mn<=11&&g.parentOffset==0&&(n.domObserver.suppressSelectionUpdates(),setTimeout(()=>cn(n),20)),w=n.state.tr.delete(b,E),S=u.resolve(h.start).marksAcross(u.resolve(h.endA));else if(h.endA==h.endB&&(A=ey(g.parent.content.cut(g.parentOffset,m.parentOffset),v.parent.content.cut(v.parentOffset,h.endA-v.start()))))w=n.state.tr,A.type=="add"?w.addMark(b,E,A.mark):w.removeMark(b,E,A.mark);else if(g.parent.child(g.index()).isText&&g.index()==m.index()-(m.textOffset?0:1)){let M=g.parent.textBetween(g.parentOffset,m.parentOffset);if(n.someProp("handleTextInput",L=>L(n,b,E,M)))return;w=n.state.tr.insertText(M,b,E)}}if(w||(w=n.state.tr.replace(b,E,c.doc.slice(h.start-c.from,h.endB-c.from))),c.sel){let M=od(n,w.doc,c.sel);M&&!(Ye&&Lt&&n.composing&&M.empty&&(h.start!=h.endB||n.input.lastAndroidDeletee.content.size?null:fc(n,e.resolve(t.anchor),e.resolve(t.head))}function ey(n,e){let t=n.firstChild.marks,r=e.firstChild.marks,i=t,s=r,o,a,l;for(let u=0;uu.mark(a.addToSet(u.marks));else if(i.length==0&&s.length==1)a=s[0],o="remove",l=u=>u.mark(a.removeFromSet(u.marks));else return null;let c=[];for(let u=0;ut||Sa(o,!0,!1)0&&(e||n.indexAfter(r)==n.node(r).childCount);)r--,i++,e=!1;if(t){let s=n.node(r).maybeChild(n.indexAfter(r));for(;s&&!s.isLeaf;)s=s.firstChild,i++}return i}function ny(n,e,t,r,i){let s=n.findDiffStart(e,t);if(s==null)return null;let{a:o,b:a}=n.findDiffEnd(e,t+n.size,t+e.size);if(i=="end"){let l=Math.max(0,s-Math.min(o,a));r-=o+l-s}if(o=o?s-r:0;s-=l,s&&s=a?s-r:0;s-=l,s&&s=56320&&e<=57343&&t>=55296&&t<=56319}class ry{constructor(e,t){this._root=null,this.focused=!1,this.trackWrites=null,this.mounted=!1,this.markCursor=null,this.cursorWrapper=null,this.lastSelectedViewDesc=void 0,this.input=new Cb,this.prevDirectPlugins=[],this.pluginViews=[],this.requiresGeckoHackNode=!1,this.dragging=null,this._props=t,this.state=t.state,this.directPlugins=t.plugins||[],this.directPlugins.forEach(pd),this.dispatch=this.dispatch.bind(this),this.dom=e&&e.mount||document.createElement("div"),e&&(e.appendChild?e.appendChild(this.dom):typeof e=="function"?e(this.dom):e.mount&&(this.mounted=!0)),this.editable=ud(this),cd(this),this.nodeViews=dd(this),this.docView=qu(this.state.doc,ld(this),Ca(this),this.dom,this),this.domObserver=new Wb(this,(r,i,s,o)=>Qb(this,r,i,s,o)),this.domObserver.start(),Sb(this),this.updatePluginViews()}get composing(){return this.input.composing}get props(){if(this._props.state!=this.state){let e=this._props;this._props={};for(let t in e)this._props[t]=e[t];this._props.state=this.state}return this._props}update(e){e.handleDOMEvents!=this._props.handleDOMEvents&&Ol(this);let t=this._props;this._props=e,e.plugins&&(e.plugins.forEach(pd),this.directPlugins=e.plugins),this.updateStateInner(e.state,t)}setProps(e){let t={};for(let r in this._props)t[r]=this._props[r];t.state=this.state;for(let r in e)t[r]=e[r];this.update(t)}updateState(e){this.updateStateInner(e,this._props)}updateStateInner(e,t){var r;let i=this.state,s=!1,o=!1;e.storedMarks&&this.composing&&(Jh(this),o=!0),this.state=e;let a=i.plugins!=e.plugins||this._props.plugins!=t.plugins;if(a||this._props.plugins!=t.plugins||this._props.nodeViews!=t.nodeViews){let f=dd(this);sy(f,this.nodeViews)&&(this.nodeViews=f,s=!0)}(a||t.handleDOMEvents!=this._props.handleDOMEvents)&&Ol(this),this.editable=ud(this),cd(this);let l=Ca(this),c=ld(this),u=i.plugins!=e.plugins&&!i.doc.eq(e.doc)?"reset":e.scrollToSelection>i.scrollToSelection?"to selection":"preserve",d=s||!this.docView.matchesNode(e.doc,c,l);(d||!e.selection.eq(i.selection))&&(o=!0);let p=u=="preserve"&&o&&this.dom.style.overflowAnchor==null&&$0(this);if(o){this.domObserver.stop();let f=d&&(ut||Ye)&&!this.composing&&!i.selection.empty&&!e.selection.empty&&iy(i.selection,e.selection);if(d){let h=Ye?this.trackWrites=this.domSelectionRange().focusNode:null;(s||!this.docView.update(e.doc,c,l,this))&&(this.docView.updateOuterDeco([]),this.docView.destroy(),this.docView=qu(e.doc,c,l,this.dom,this)),h&&!this.trackWrites&&(f=!0)}f||!(this.input.mouseDown&&this.domObserver.currentSelection.eq(this.domSelectionRange())&&ub(this))?cn(this,f):(Bh(this,e.selection),this.domObserver.setCurSelection()),this.domObserver.start()}this.updatePluginViews(i),!((r=this.dragging)===null||r===void 0)&&r.node&&!i.doc.eq(e.doc)&&this.updateDraggedNode(this.dragging,i),u=="reset"?this.dom.scrollTop=0:u=="to selection"?this.scrollToSelection():p&&V0(p)}scrollToSelection(){let e=this.domSelectionRange().focusNode;if(!this.someProp("handleScrollToSelection",t=>t(this)))if(this.state.selection instanceof Q){let t=this.docView.domAfterPos(this.state.selection.from);t.nodeType==1&&Bu(this,t.getBoundingClientRect(),e)}else Bu(this,this.coordsAtPos(this.state.selection.head,1),e)}destroyPluginViews(){let e;for(;e=this.pluginViews.pop();)e.destroy&&e.destroy()}updatePluginViews(e){if(!e||e.plugins!=this.state.plugins||this.directPlugins!=this.prevDirectPlugins){this.prevDirectPlugins=this.directPlugins,this.destroyPluginViews();for(let t=0;t0&&this.state.doc.nodeAt(s))==r.node&&(i=s)}this.dragging=new Xh(e.slice,e.move,i<0?void 0:Q.create(this.state.doc,i))}someProp(e,t){let r=this._props&&this._props[e],i;if(r!=null&&(i=t?t(r):r))return i;for(let o=0;ot.ownerDocument.getSelection()),this._root=t}return e||document}updateRoot(){this._root=null}posAtCoords(e){return Z0(this,e)}coordsAtPos(e,t=1){return Th(this,e,t)}domAtPos(e,t=0){return this.docView.domFromPos(e,t)}nodeDOM(e){let t=this.docView.descAt(e);return t?t.nodeDOM:null}posAtDOM(e,t,r=-1){let i=this.docView.posFromDOM(e,t,r);if(i==null)throw new RangeError("DOM position not inside the editor");return i}endOfTextblock(e,t){return Y0(this,t||this.state,e)}pasteHTML(e,t){return Ni(this,"",e,!1,t||new ClipboardEvent("paste"))}pasteText(e,t){return Ni(this,e,null,!0,t||new ClipboardEvent("paste"))}destroy(){this.docView&&(_b(this),this.destroyPluginViews(),this.mounted?(this.docView.update(this.state.doc,[],Ca(this),this),this.dom.textContent=""):this.dom.parentNode&&this.dom.parentNode.removeChild(this.dom),this.docView.destroy(),this.docView=null)}get isDestroyed(){return this.docView==null}dispatchEvent(e){return Ab(this,e)}dispatch(e){let t=this._props.dispatchTransaction;t?t.call(this,e):this.updateState(this.state.apply(e))}domSelectionRange(){return rt&&this.root.nodeType===11&&L0(this.dom.ownerDocument)==this.dom?jb(this):this.domSelection()}domSelection(){return this.root.getSelection()}}function ld(n){let e=Object.create(null);return e.class="ProseMirror",e.contenteditable=String(n.editable),n.someProp("attributes",t=>{if(typeof t=="function"&&(t=t(n.state)),t)for(let r in t)r=="class"?e.class+=" "+t[r]:r=="style"?e.style=(e.style?e.style+";":"")+t[r]:!e[r]&&r!="contenteditable"&&r!="nodeName"&&(e[r]=String(t[r]))}),e.translate||(e.translate="no"),[Be.node(0,n.state.doc.content.size,e)]}function cd(n){if(n.markCursor){let e=document.createElement("img");e.className="ProseMirror-separator",e.setAttribute("mark-placeholder","true"),e.setAttribute("alt",""),n.cursorWrapper={dom:e,deco:Be.widget(n.state.selection.head,e,{raw:!0,marks:n.markCursor})}}else n.cursorWrapper=null}function ud(n){return!n.someProp("editable",e=>e(n.state)===!1)}function iy(n,e){let t=Math.min(n.$anchor.sharedDepth(n.head),e.$anchor.sharedDepth(e.head));return n.$anchor.start(t)!=e.$anchor.start(t)}function dd(n){let e=Object.create(null);function t(r){for(let i in r)Object.prototype.hasOwnProperty.call(e,i)||(e[i]=r[i])}return n.someProp("nodeViews",t),n.someProp("markViews",t),e}function sy(n,e){let t=0,r=0;for(let i in n){if(n[i]!=e[i])return!0;t++}for(let i in e)r++;return t!=r}function pd(n){if(n.spec.state||n.spec.filterTransaction||n.spec.appendTransaction)throw new RangeError("Plugins passed directly to the view must not have a state component")}var On={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},Gs={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},oy=typeof navigator<"u"&&/Mac/.test(navigator.platform),ay=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var We=0;We<10;We++)On[48+We]=On[96+We]=String(We);for(var We=1;We<=24;We++)On[We+111]="F"+We;for(var We=65;We<=90;We++)On[We]=String.fromCharCode(We+32),Gs[We]=String.fromCharCode(We);for(var _a in On)Gs.hasOwnProperty(_a)||(Gs[_a]=On[_a]);function ly(n){var e=oy&&n.metaKey&&n.shiftKey&&!n.ctrlKey&&!n.altKey||ay&&n.shiftKey&&n.key&&n.key.length==1||n.key=="Unidentified",t=!e&&n.key||(n.shiftKey?Gs:On)[n.keyCode]||n.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}const cy=typeof navigator<"u"?/Mac|iP(hone|[oa]d)/.test(navigator.platform):!1;function uy(n){let e=n.split(/-(?!$)/),t=e[e.length-1];t=="Space"&&(t=" ");let r,i,s,o;for(let a=0;a127)&&(s=On[r.keyCode])&&s!=i){let a=e[Ma(s,r)];if(a&&a(t.state,t.dispatch,t))return!0}}return!1}}const fy=(n,e)=>n.selection.empty?!1:(e&&e(n.tr.deleteSelection().scrollIntoView()),!0);function hy(n,e){let{$cursor:t}=n.selection;return!t||(e?!e.endOfTextblock("backward",n):t.parentOffset>0)?null:t}const gy=(n,e,t)=>{let r=hy(n,t);if(!r)return!1;let i=rg(r);if(!i){let o=r.blockRange(),a=o&&Yr(o);return a==null?!1:(e&&e(n.tr.lift(o,a).scrollIntoView()),!0)}let s=i.nodeBefore;if(!s.type.spec.isolating&&og(n,i,e))return!0;if(r.parent.content.size==0&&(qr(s,"end")||Q.isSelectable(s))){let o=ac(n.doc,r.before(),r.after(),F.empty);if(o&&o.slice.size{let{$head:r,empty:i}=n.selection,s=r;if(!i)return!1;if(r.parent.isTextblock){if(t?!t.endOfTextblock("backward",n):r.parentOffset>0)return!1;s=rg(r)}let o=s&&s.nodeBefore;return!o||!Q.isSelectable(o)?!1:(e&&e(n.tr.setSelection(Q.create(n.doc,s.pos-o.nodeSize)).scrollIntoView()),!0)};function rg(n){if(!n.parent.type.spec.isolating)for(let e=n.depth-1;e>=0;e--){if(n.index(e)>0)return n.doc.resolve(n.before(e+1));if(n.node(e).type.spec.isolating)break}return null}function by(n,e){let{$cursor:t}=n.selection;return!t||(e?!e.endOfTextblock("forward",n):t.parentOffset{let r=by(n,t);if(!r)return!1;let i=ig(r);if(!i)return!1;let s=i.nodeAfter;if(og(n,i,e))return!0;if(r.parent.content.size==0&&(qr(s,"start")||Q.isSelectable(s))){let o=ac(n.doc,r.before(),r.after(),F.empty);if(o&&o.slice.size{let{$head:r,empty:i}=n.selection,s=r;if(!i)return!1;if(r.parent.isTextblock){if(t?!t.endOfTextblock("forward",n):r.parentOffset=0;e--){let t=n.node(e);if(n.index(e)+1{let t=n.selection,r=t instanceof Q,i;if(r){if(t.node.isTextblock||!Dn(n.doc,t.from))return!1;i=t.from}else if(i=No(n.doc,t.from,-1),i==null)return!1;if(e){let s=n.tr.join(i);r&&s.setSelection(Q.create(s.doc,i-n.doc.resolve(i).nodeBefore.nodeSize)),e(s.scrollIntoView())}return!0},ky=(n,e)=>{let t=n.selection,r;if(t instanceof Q){if(t.node.isTextblock||!Dn(n.doc,t.to))return!1;r=t.to}else if(r=No(n.doc,t.to,1),r==null)return!1;return e&&e(n.tr.join(r).scrollIntoView()),!0},xy=(n,e)=>{let{$from:t,$to:r}=n.selection,i=t.blockRange(r),s=i&&Yr(i);return s==null?!1:(e&&e(n.tr.lift(i,s).scrollIntoView()),!0)},Ey=(n,e)=>{let{$head:t,$anchor:r}=n.selection;return!t.parent.type.spec.code||!t.sameParent(r)?!1:(e&&e(n.tr.insertText(` -`).scrollIntoView()),!0)};function sg(n){for(let e=0;e{let{$head:t,$anchor:r}=n.selection;if(!t.parent.type.spec.code||!t.sameParent(r))return!1;let i=t.node(-1),s=t.indexAfter(-1),o=sg(i.contentMatchAt(s));if(!o||!i.canReplaceWith(s,s,o))return!1;if(e){let a=t.after(),l=n.tr.replaceWith(a,a,o.createAndFill());l.setSelection(ne.near(l.doc.resolve(a),1)),e(l.scrollIntoView())}return!0},Sy=(n,e)=>{let t=n.selection,{$from:r,$to:i}=t;if(t instanceof St||r.parent.inlineContent||i.parent.inlineContent)return!1;let s=sg(i.parent.contentMatchAt(i.indexAfter()));if(!s||!s.isTextblock)return!1;if(e){let o=(!r.parentOffset&&i.index(){let{$cursor:t}=n.selection;if(!t||t.parent.content.size)return!1;if(t.depth>1&&t.after()!=t.end(-1)){let s=t.before();if(Hr(n.doc,s))return e&&e(n.tr.split(s).scrollIntoView()),!0}let r=t.blockRange(),i=r&&Yr(r);return i==null?!1:(e&&e(n.tr.lift(r,i).scrollIntoView()),!0)},My=(n,e)=>{let{$from:t,to:r}=n.selection,i,s=t.sharedDepth(r);return s==0?!1:(i=t.before(s),e&&e(n.tr.setSelection(Q.create(n.doc,i))),!0)};function Ay(n,e,t){let r=e.nodeBefore,i=e.nodeAfter,s=e.index();return!r||!i||!r.type.compatibleContent(i.type)?!1:!r.content.size&&e.parent.canReplace(s-1,s)?(t&&t(n.tr.delete(e.pos-r.nodeSize,e.pos).scrollIntoView()),!0):!e.parent.canReplace(s,s+1)||!(i.isTextblock||Dn(n.doc,e.pos))?!1:(t&&t(n.tr.clearIncompatible(e.pos,r.type,r.contentMatchAt(r.childCount)).join(e.pos).scrollIntoView()),!0)}function og(n,e,t){let r=e.nodeBefore,i=e.nodeAfter,s,o;if(r.type.spec.isolating||i.type.spec.isolating)return!1;if(Ay(n,e,t))return!0;let a=e.parent.canReplace(e.index(),e.index()+1);if(a&&(s=(o=r.contentMatchAt(r.childCount)).findWrapping(i.type))&&o.matchType(s[0]||i.type).validEnd){if(t){let d=e.pos+i.nodeSize,p=R.empty;for(let g=s.length-1;g>=0;g--)p=R.from(s[g].create(null,p));p=R.from(r.copy(p));let f=n.tr.step(new $e(e.pos-1,d,e.pos,d,new F(p,1,0),s.length,!0)),h=d+2*s.length;Dn(f.doc,h)&&f.join(h),t(f.scrollIntoView())}return!0}let l=ne.findFrom(e,1),c=l&&l.$from.blockRange(l.$to),u=c&&Yr(c);if(u!=null&&u>=e.depth)return t&&t(n.tr.lift(c,u).scrollIntoView()),!0;if(a&&qr(i,"start",!0)&&qr(r,"end")){let d=r,p=[];for(;p.push(d),!d.isTextblock;)d=d.lastChild;let f=i,h=1;for(;!f.isTextblock;f=f.firstChild)h++;if(d.canReplace(d.childCount,d.childCount,f.content)){if(t){let g=R.empty;for(let v=p.length-1;v>=0;v--)g=R.from(p[v].copy(g));let m=n.tr.step(new $e(e.pos-p.length,e.pos+i.nodeSize,e.pos+h,e.pos+i.nodeSize-h,new F(g,p.length,0),0,!0));t(m.scrollIntoView())}return!0}}return!1}function ag(n){return function(e,t){let r=e.selection,i=n<0?r.$from:r.$to,s=i.depth;for(;i.node(s).isInline;){if(!s)return!1;s--}return i.node(s).isTextblock?(t&&t(e.tr.setSelection(X.create(e.doc,n<0?i.start(s):i.end(s)))),!0):!1}}const Ty=ag(-1),Ny=ag(1);function Oy(n,e=null){return function(t,r){let{$from:i,$to:s}=t.selection,o=i.blockRange(s),a=o&&oc(o,n,e);return a?(r&&r(t.tr.wrap(o,a).scrollIntoView()),!0):!1}}function fd(n,e=null){return function(t,r){let i=!1;for(let s=0;s{if(i)return!1;if(!(!l.isTextblock||l.hasMarkup(n,e)))if(l.type==n)i=!0;else{let u=t.doc.resolve(c),d=u.index();i=u.parent.canReplaceWith(d,d+1,n)}})}if(!i)return!1;if(r){let s=t.tr;for(let o=0;o=2&&i.node(o.depth-1).type.compatibleContent(n)&&o.startIndex==0){if(i.index(o.depth-1)==0)return!1;let u=t.doc.resolve(o.start-2);l=new Vs(u,u,o.depth),o.endIndex=0;u--)s=R.from(t[u].type.create(t[u].attrs,s));n.step(new $e(e.start-(r?2:0),e.end,e.start,e.end,new F(s,0,0),t.length,!0));let o=0;for(let u=0;uo.childCount>0&&o.firstChild.type==n);return s?t?r.node(s.depth-1).type==n?Iy(e,t,n,s):Hy(e,t,s):!0:!1}}function Iy(n,e,t,r){let i=n.tr,s=r.end,o=r.$to.end(r.depth);sg;h--)f-=i.child(h).nodeSize,r.delete(f-1,f+1);let s=r.doc.resolve(t.start),o=s.nodeAfter;if(r.mapping.map(t.end)!=t.start+s.nodeAfter.nodeSize)return!1;let a=t.startIndex==0,l=t.endIndex==i.childCount,c=s.node(-1),u=s.index(-1);if(!c.canReplace(u+(a?0:1),u+1,o.content.append(l?R.empty:R.from(i))))return!1;let d=s.pos,p=d+o.nodeSize;return r.step(new $e(d-(a?1:0),p+(l?1:0),d+1,p-1,new F((a?R.empty:R.from(i.copy(R.empty))).append(l?R.empty:R.from(i.copy(R.empty))),a?0:1,l?0:1),a?0:1)),e(r.scrollIntoView()),!0}function By(n){return function(e,t){let{$from:r,$to:i}=e.selection,s=r.blockRange(i,c=>c.childCount>0&&c.firstChild.type==n);if(!s)return!1;let o=s.startIndex;if(o==0)return!1;let a=s.parent,l=a.child(o-1);if(l.type!=n)return!1;if(t){let c=l.lastChild&&l.lastChild.type==a.type,u=R.from(c?n.create():null),d=new F(R.from(n.create(null,R.from(a.type.create(null,u)))),c?3:1,0),p=s.start,f=s.end;t(e.tr.step(new $e(p-(c?3:1),f,p,f,d,1,!0)).scrollIntoView())}return!0}}function Io(n){const{state:e,transaction:t}=n;let{selection:r}=t,{doc:i}=t,{storedMarks:s}=t;return{...e,apply:e.apply.bind(e),applyTransaction:e.applyTransaction.bind(e),filterTransaction:e.filterTransaction,plugins:e.plugins,schema:e.schema,reconfigure:e.reconfigure.bind(e),toJSON:e.toJSON.bind(e),get storedMarks(){return s},get selection(){return r},get doc(){return i},get tr(){return r=t.selection,i=t.doc,s=t.storedMarks,t}}}class Ho{constructor(e){this.editor=e.editor,this.rawCommands=this.editor.extensionManager.commands,this.customState=e.state}get hasCustomState(){return!!this.customState}get state(){return this.customState||this.editor.state}get commands(){const{rawCommands:e,editor:t,state:r}=this,{view:i}=t,{tr:s}=r,o=this.buildProps(s);return Object.fromEntries(Object.entries(e).map(([a,l])=>[a,(...u)=>{const d=l(...u)(o);return!s.getMeta("preventDispatch")&&!this.hasCustomState&&i.dispatch(s),d}]))}get chain(){return()=>this.createChain()}get can(){return()=>this.createCan()}createChain(e,t=!0){const{rawCommands:r,editor:i,state:s}=this,{view:o}=i,a=[],l=!!e,c=e||s.tr,u=()=>(!l&&t&&!c.getMeta("preventDispatch")&&!this.hasCustomState&&o.dispatch(c),a.every(p=>p===!0)),d={...Object.fromEntries(Object.entries(r).map(([p,f])=>[p,(...g)=>{const m=this.buildProps(c,t),v=f(...g)(m);return a.push(v),d}])),run:u};return d}createCan(e){const{rawCommands:t,state:r}=this,i=!1,s=e||r.tr,o=this.buildProps(s,i);return{...Object.fromEntries(Object.entries(t).map(([l,c])=>[l,(...u)=>c(...u)({...o,dispatch:void 0})])),chain:()=>this.createChain(s,i)}}buildProps(e,t=!0){const{rawCommands:r,editor:i,state:s}=this,{view:o}=i,a={tr:e,editor:i,view:o,state:Io({state:s,transaction:e}),dispatch:t?()=>{}:void 0,chain:()=>this.createChain(e,t),can:()=>this.createCan(e),get commands(){return Object.fromEntries(Object.entries(r).map(([l,c])=>[l,(...u)=>c(...u)(a)]))}};return a}}let Py=class{constructor(){this.callbacks={}}on(e,t){return this.callbacks[e]||(this.callbacks[e]=[]),this.callbacks[e].push(t),this}emit(e,...t){const r=this.callbacks[e];return r&&r.forEach(i=>i.apply(this,t)),this}off(e,t){const r=this.callbacks[e];return r&&(t?this.callbacks[e]=r.filter(i=>i!==t):delete this.callbacks[e]),this}removeAllListeners(){this.callbacks={}}};function W(n,e,t){return n.config[e]===void 0&&n.parent?W(n.parent,e,t):typeof n.config[e]=="function"?n.config[e].bind({...t,parent:n.parent?W(n.parent,e,t):null}):n.config[e]}function Bo(n){const e=n.filter(i=>i.type==="extension"),t=n.filter(i=>i.type==="node"),r=n.filter(i=>i.type==="mark");return{baseExtensions:e,nodeExtensions:t,markExtensions:r}}function lg(n){const e=[],{nodeExtensions:t,markExtensions:r}=Bo(n),i=[...t,...r],s={default:null,rendered:!0,renderHTML:null,parseHTML:null,keepOnSplit:!0,isRequired:!1};return n.forEach(o=>{const a={name:o.name,options:o.options,storage:o.storage},l=W(o,"addGlobalAttributes",a);if(!l)return;l().forEach(u=>{u.types.forEach(d=>{Object.entries(u.attributes).forEach(([p,f])=>{e.push({type:d,name:p,attribute:{...s,...f}})})})})}),i.forEach(o=>{const a={name:o.name,options:o.options,storage:o.storage},l=W(o,"addAttributes",a);if(!l)return;const c=l();Object.entries(c).forEach(([u,d])=>{const p={...s,...d};typeof(p==null?void 0:p.default)=="function"&&(p.default=p.default()),p!=null&&p.isRequired&&(p==null?void 0:p.default)===void 0&&delete p.default,e.push({type:o.name,name:u,attribute:p})})}),e}function Fe(n,e){if(typeof n=="string"){if(!e.nodes[n])throw Error(`There is no node type named '${n}'. Maybe you forgot to add the extension?`);return e.nodes[n]}return n}function fe(...n){return n.filter(e=>!!e).reduce((e,t)=>{const r={...e};return Object.entries(t).forEach(([i,s])=>{if(!r[i]){r[i]=s;return}if(i==="class"){const a=s?s.split(" "):[],l=r[i]?r[i].split(" "):[],c=a.filter(u=>!l.includes(u));r[i]=[...l,...c].join(" ")}else i==="style"?r[i]=[r[i],s].join("; "):r[i]=s}),r},{})}function Ll(n,e){return e.filter(t=>t.attribute.rendered).map(t=>t.attribute.renderHTML?t.attribute.renderHTML(n.attrs)||{}:{[t.name]:n.attrs[t.name]}).reduce((t,r)=>fe(t,r),{})}function cg(n){return typeof n=="function"}function oe(n,e=void 0,...t){return cg(n)?e?n.bind(e)(...t):n(...t):n}function $y(n={}){return Object.keys(n).length===0&&n.constructor===Object}function Vy(n){return typeof n!="string"?n:n.match(/^[+-]?(?:\d*\.)?\d+$/)?Number(n):n==="true"?!0:n==="false"?!1:n}function hd(n,e){return n.style?n:{...n,getAttrs:t=>{const r=n.getAttrs?n.getAttrs(t):n.attrs;if(r===!1)return!1;const i=e.reduce((s,o)=>{const a=o.attribute.parseHTML?o.attribute.parseHTML(t):Vy(t.getAttribute(o.name));return a==null?s:{...s,[o.name]:a}},{});return{...r,...i}}}}function gd(n){return Object.fromEntries(Object.entries(n).filter(([e,t])=>e==="attrs"&&$y(t)?!1:t!=null))}function Fy(n,e){var t;const r=lg(n),{nodeExtensions:i,markExtensions:s}=Bo(n),o=(t=i.find(c=>W(c,"topNode")))===null||t===void 0?void 0:t.name,a=Object.fromEntries(i.map(c=>{const u=r.filter(v=>v.type===c.name),d={name:c.name,options:c.options,storage:c.storage,editor:e},p=n.reduce((v,y)=>{const k=W(y,"extendNodeSchema",d);return{...v,...k?k(c):{}}},{}),f=gd({...p,content:oe(W(c,"content",d)),marks:oe(W(c,"marks",d)),group:oe(W(c,"group",d)),inline:oe(W(c,"inline",d)),atom:oe(W(c,"atom",d)),selectable:oe(W(c,"selectable",d)),draggable:oe(W(c,"draggable",d)),code:oe(W(c,"code",d)),defining:oe(W(c,"defining",d)),isolating:oe(W(c,"isolating",d)),attrs:Object.fromEntries(u.map(v=>{var y;return[v.name,{default:(y=v==null?void 0:v.attribute)===null||y===void 0?void 0:y.default}]}))}),h=oe(W(c,"parseHTML",d));h&&(f.parseDOM=h.map(v=>hd(v,u)));const g=W(c,"renderHTML",d);g&&(f.toDOM=v=>g({node:v,HTMLAttributes:Ll(v,u)}));const m=W(c,"renderText",d);return m&&(f.toText=m),[c.name,f]})),l=Object.fromEntries(s.map(c=>{const u=r.filter(m=>m.type===c.name),d={name:c.name,options:c.options,storage:c.storage,editor:e},p=n.reduce((m,v)=>{const y=W(v,"extendMarkSchema",d);return{...m,...y?y(c):{}}},{}),f=gd({...p,inclusive:oe(W(c,"inclusive",d)),excludes:oe(W(c,"excludes",d)),group:oe(W(c,"group",d)),spanning:oe(W(c,"spanning",d)),code:oe(W(c,"code",d)),attrs:Object.fromEntries(u.map(m=>{var v;return[m.name,{default:(v=m==null?void 0:m.attribute)===null||v===void 0?void 0:v.default}]}))}),h=oe(W(c,"parseHTML",d));h&&(f.parseDOM=h.map(m=>hd(m,u)));const g=W(c,"renderHTML",d);return g&&(f.toDOM=m=>g({mark:m,HTMLAttributes:Ll(m,u)})),[c.name,f]}));return new ah({topNode:o,nodes:a,marks:l})}function Aa(n,e){return e.nodes[n]||e.marks[n]||null}function md(n,e){return Array.isArray(e)?e.some(t=>(typeof t=="string"?t:t.name)===n.name):e}const zy=(n,e=500)=>{let t="";const r=n.parentOffset;return n.parent.nodesBetween(Math.max(0,r-e),r,(i,s,o,a)=>{var l,c;const u=((c=(l=i.type.spec).toText)===null||c===void 0?void 0:c.call(l,{node:i,pos:s,parent:o,index:a}))||i.textContent||"%leaf%";t+=u.slice(0,Math.max(0,r-s))}),t};function wc(n){return Object.prototype.toString.call(n)==="[object RegExp]"}class ji{constructor(e){this.find=e.find,this.handler=e.handler}}const qy=(n,e)=>{if(wc(e))return e.exec(n);const t=e(n);if(!t)return null;const r=[t.text];return r.index=t.index,r.input=n,r.data=t.data,t.replaceWith&&(t.text.includes(t.replaceWith)||console.warn('[tiptap warn]: "inputRuleMatch.replaceWith" must be part of "inputRuleMatch.text".'),r.push(t.replaceWith)),r};function Ta(n){var e;const{editor:t,from:r,to:i,text:s,rules:o,plugin:a}=n,{view:l}=t;if(l.composing)return!1;const c=l.state.doc.resolve(r);if(c.parent.type.spec.code||!((e=c.nodeBefore||c.nodeAfter)===null||e===void 0)&&e.marks.find(p=>p.type.spec.code))return!1;let u=!1;const d=zy(c)+s;return o.forEach(p=>{if(u)return;const f=qy(d,p.find);if(!f)return;const h=l.state.tr,g=Io({state:l.state,transaction:h}),m={from:r-(f[0].length-s.length),to:i},{commands:v,chain:y,can:k}=new Ho({editor:t,state:g});p.handler({state:g,range:m,match:f,commands:v,chain:y,can:k})===null||!h.steps.length||(h.setMeta(a,{transform:h,from:r,to:i,text:s}),l.dispatch(h),u=!0)}),u}function Uy(n){const{editor:e,rules:t}=n,r=new _e({state:{init(){return null},apply(i,s){const o=i.getMeta(r);return o||(i.selectionSet||i.docChanged?null:s)}},props:{handleTextInput(i,s,o,a){return Ta({editor:e,from:s,to:o,text:a,rules:t,plugin:r})},handleDOMEvents:{compositionend:i=>(setTimeout(()=>{const{$cursor:s}=i.state.selection;s&&Ta({editor:e,from:s.pos,to:s.pos,text:"",rules:t,plugin:r})}),!1)},handleKeyDown(i,s){if(s.key!=="Enter")return!1;const{$cursor:o}=i.state.selection;return o?Ta({editor:e,from:o.pos,to:o.pos,text:` +`).scrollIntoView()),!0)};function sg(n){for(let e=0;e{let{$head:t,$anchor:r}=n.selection;if(!t.parent.type.spec.code||!t.sameParent(r))return!1;let i=t.node(-1),s=t.indexAfter(-1),o=sg(i.contentMatchAt(s));if(!o||!i.canReplaceWith(s,s,o))return!1;if(e){let a=t.after(),l=n.tr.replaceWith(a,a,o.createAndFill());l.setSelection(ne.near(l.doc.resolve(a),1)),e(l.scrollIntoView())}return!0},Sy=(n,e)=>{let t=n.selection,{$from:r,$to:i}=t;if(t instanceof St||r.parent.inlineContent||i.parent.inlineContent)return!1;let s=sg(i.parent.contentMatchAt(i.indexAfter()));if(!s||!s.isTextblock)return!1;if(e){let o=(!r.parentOffset&&i.index(){let{$cursor:t}=n.selection;if(!t||t.parent.content.size)return!1;if(t.depth>1&&t.after()!=t.end(-1)){let s=t.before();if(Hr(n.doc,s))return e&&e(n.tr.split(s).scrollIntoView()),!0}let r=t.blockRange(),i=r&&Yr(r);return i==null?!1:(e&&e(n.tr.lift(r,i).scrollIntoView()),!0)},My=(n,e)=>{let{$from:t,to:r}=n.selection,i,s=t.sharedDepth(r);return s==0?!1:(i=t.before(s),e&&e(n.tr.setSelection(Q.create(n.doc,i))),!0)};function Ay(n,e,t){let r=e.nodeBefore,i=e.nodeAfter,s=e.index();return!r||!i||!r.type.compatibleContent(i.type)?!1:!r.content.size&&e.parent.canReplace(s-1,s)?(t&&t(n.tr.delete(e.pos-r.nodeSize,e.pos).scrollIntoView()),!0):!e.parent.canReplace(s,s+1)||!(i.isTextblock||Dn(n.doc,e.pos))?!1:(t&&t(n.tr.clearIncompatible(e.pos,r.type,r.contentMatchAt(r.childCount)).join(e.pos).scrollIntoView()),!0)}function og(n,e,t){let r=e.nodeBefore,i=e.nodeAfter,s,o;if(r.type.spec.isolating||i.type.spec.isolating)return!1;if(Ay(n,e,t))return!0;let a=e.parent.canReplace(e.index(),e.index()+1);if(a&&(s=(o=r.contentMatchAt(r.childCount)).findWrapping(i.type))&&o.matchType(s[0]||i.type).validEnd){if(t){let d=e.pos+i.nodeSize,p=R.empty;for(let g=s.length-1;g>=0;g--)p=R.from(s[g].create(null,p));p=R.from(r.copy(p));let f=n.tr.step(new $e(e.pos-1,d,e.pos,d,new F(p,1,0),s.length,!0)),h=d+2*s.length;Dn(f.doc,h)&&f.join(h),t(f.scrollIntoView())}return!0}let l=ne.findFrom(e,1),c=l&&l.$from.blockRange(l.$to),u=c&&Yr(c);if(u!=null&&u>=e.depth)return t&&t(n.tr.lift(c,u).scrollIntoView()),!0;if(a&&qr(i,"start",!0)&&qr(r,"end")){let d=r,p=[];for(;p.push(d),!d.isTextblock;)d=d.lastChild;let f=i,h=1;for(;!f.isTextblock;f=f.firstChild)h++;if(d.canReplace(d.childCount,d.childCount,f.content)){if(t){let g=R.empty;for(let v=p.length-1;v>=0;v--)g=R.from(p[v].copy(g));let m=n.tr.step(new $e(e.pos-p.length,e.pos+i.nodeSize,e.pos+h,e.pos+i.nodeSize-h,new F(g,p.length,0),0,!0));t(m.scrollIntoView())}return!0}}return!1}function ag(n){return function(e,t){let r=e.selection,i=n<0?r.$from:r.$to,s=i.depth;for(;i.node(s).isInline;){if(!s)return!1;s--}return i.node(s).isTextblock?(t&&t(e.tr.setSelection(X.create(e.doc,n<0?i.start(s):i.end(s)))),!0):!1}}const Ty=ag(-1),Ny=ag(1);function Oy(n,e=null){return function(t,r){let{$from:i,$to:s}=t.selection,o=i.blockRange(s),a=o&&oc(o,n,e);return a?(r&&r(t.tr.wrap(o,a).scrollIntoView()),!0):!1}}function fd(n,e=null){return function(t,r){let i=!1;for(let s=0;s{if(i)return!1;if(!(!l.isTextblock||l.hasMarkup(n,e)))if(l.type==n)i=!0;else{let u=t.doc.resolve(c),d=u.index();i=u.parent.canReplaceWith(d,d+1,n)}})}if(!i)return!1;if(r){let s=t.tr;for(let o=0;o=2&&i.node(o.depth-1).type.compatibleContent(n)&&o.startIndex==0){if(i.index(o.depth-1)==0)return!1;let u=t.doc.resolve(o.start-2);l=new Vs(u,u,o.depth),o.endIndex=0;u--)s=R.from(t[u].type.create(t[u].attrs,s));n.step(new $e(e.start-(r?2:0),e.end,e.start,e.end,new F(s,0,0),t.length,!0));let o=0;for(let u=0;uo.childCount>0&&o.firstChild.type==n);return s?t?r.node(s.depth-1).type==n?Iy(e,t,n,s):Hy(e,t,s):!0:!1}}function Iy(n,e,t,r){let i=n.tr,s=r.end,o=r.$to.end(r.depth);sg;h--)f-=i.child(h).nodeSize,r.delete(f-1,f+1);let s=r.doc.resolve(t.start),o=s.nodeAfter;if(r.mapping.map(t.end)!=t.start+s.nodeAfter.nodeSize)return!1;let a=t.startIndex==0,l=t.endIndex==i.childCount,c=s.node(-1),u=s.index(-1);if(!c.canReplace(u+(a?0:1),u+1,o.content.append(l?R.empty:R.from(i))))return!1;let d=s.pos,p=d+o.nodeSize;return r.step(new $e(d-(a?1:0),p+(l?1:0),d+1,p-1,new F((a?R.empty:R.from(i.copy(R.empty))).append(l?R.empty:R.from(i.copy(R.empty))),a?0:1,l?0:1),a?0:1)),e(r.scrollIntoView()),!0}function By(n){return function(e,t){let{$from:r,$to:i}=e.selection,s=r.blockRange(i,c=>c.childCount>0&&c.firstChild.type==n);if(!s)return!1;let o=s.startIndex;if(o==0)return!1;let a=s.parent,l=a.child(o-1);if(l.type!=n)return!1;if(t){let c=l.lastChild&&l.lastChild.type==a.type,u=R.from(c?n.create():null),d=new F(R.from(n.create(null,R.from(a.type.create(null,u)))),c?3:1,0),p=s.start,f=s.end;t(e.tr.step(new $e(p-(c?3:1),f,p,f,d,1,!0)).scrollIntoView())}return!0}}function Io(n){const{state:e,transaction:t}=n;let{selection:r}=t,{doc:i}=t,{storedMarks:s}=t;return{...e,apply:e.apply.bind(e),applyTransaction:e.applyTransaction.bind(e),filterTransaction:e.filterTransaction,plugins:e.plugins,schema:e.schema,reconfigure:e.reconfigure.bind(e),toJSON:e.toJSON.bind(e),get storedMarks(){return s},get selection(){return r},get doc(){return i},get tr(){return r=t.selection,i=t.doc,s=t.storedMarks,t}}}class Ho{constructor(e){this.editor=e.editor,this.rawCommands=this.editor.extensionManager.commands,this.customState=e.state}get hasCustomState(){return!!this.customState}get state(){return this.customState||this.editor.state}get commands(){const{rawCommands:e,editor:t,state:r}=this,{view:i}=t,{tr:s}=r,o=this.buildProps(s);return Object.fromEntries(Object.entries(e).map(([a,l])=>[a,(...u)=>{const d=l(...u)(o);return!s.getMeta("preventDispatch")&&!this.hasCustomState&&i.dispatch(s),d}]))}get chain(){return()=>this.createChain()}get can(){return()=>this.createCan()}createChain(e,t=!0){const{rawCommands:r,editor:i,state:s}=this,{view:o}=i,a=[],l=!!e,c=e||s.tr,u=()=>(!l&&t&&!c.getMeta("preventDispatch")&&!this.hasCustomState&&o.dispatch(c),a.every(p=>p===!0)),d={...Object.fromEntries(Object.entries(r).map(([p,f])=>[p,(...g)=>{const m=this.buildProps(c,t),v=f(...g)(m);return a.push(v),d}])),run:u};return d}createCan(e){const{rawCommands:t,state:r}=this,i=!1,s=e||r.tr,o=this.buildProps(s,i);return{...Object.fromEntries(Object.entries(t).map(([l,c])=>[l,(...u)=>c(...u)({...o,dispatch:void 0})])),chain:()=>this.createChain(s,i)}}buildProps(e,t=!0){const{rawCommands:r,editor:i,state:s}=this,{view:o}=i,a={tr:e,editor:i,view:o,state:Io({state:s,transaction:e}),dispatch:t?()=>{}:void 0,chain:()=>this.createChain(e,t),can:()=>this.createCan(e),get commands(){return Object.fromEntries(Object.entries(r).map(([l,c])=>[l,(...u)=>c(...u)(a)]))}};return a}}let Py=class{constructor(){this.callbacks={}}on(e,t){return this.callbacks[e]||(this.callbacks[e]=[]),this.callbacks[e].push(t),this}emit(e,...t){const r=this.callbacks[e];return r&&r.forEach(i=>i.apply(this,t)),this}off(e,t){const r=this.callbacks[e];return r&&(t?this.callbacks[e]=r.filter(i=>i!==t):delete this.callbacks[e]),this}removeAllListeners(){this.callbacks={}}};function W(n,e,t){return n.config[e]===void 0&&n.parent?W(n.parent,e,t):typeof n.config[e]=="function"?n.config[e].bind({...t,parent:n.parent?W(n.parent,e,t):null}):n.config[e]}function Bo(n){const e=n.filter(i=>i.type==="extension"),t=n.filter(i=>i.type==="node"),r=n.filter(i=>i.type==="mark");return{baseExtensions:e,nodeExtensions:t,markExtensions:r}}function lg(n){const e=[],{nodeExtensions:t,markExtensions:r}=Bo(n),i=[...t,...r],s={default:null,rendered:!0,renderHTML:null,parseHTML:null,keepOnSplit:!0,isRequired:!1};return n.forEach(o=>{const a={name:o.name,options:o.options,storage:o.storage},l=W(o,"addGlobalAttributes",a);if(!l)return;l().forEach(u=>{u.types.forEach(d=>{Object.entries(u.attributes).forEach(([p,f])=>{e.push({type:d,name:p,attribute:{...s,...f}})})})})}),i.forEach(o=>{const a={name:o.name,options:o.options,storage:o.storage},l=W(o,"addAttributes",a);if(!l)return;const c=l();Object.entries(c).forEach(([u,d])=>{const p={...s,...d};typeof(p==null?void 0:p.default)=="function"&&(p.default=p.default()),p!=null&&p.isRequired&&(p==null?void 0:p.default)===void 0&&delete p.default,e.push({type:o.name,name:u,attribute:p})})}),e}function Fe(n,e){if(typeof n=="string"){if(!e.nodes[n])throw Error(`There is no node type named '${n}'. Maybe you forgot to add the extension?`);return e.nodes[n]}return n}function he(...n){return n.filter(e=>!!e).reduce((e,t)=>{const r={...e};return Object.entries(t).forEach(([i,s])=>{if(!r[i]){r[i]=s;return}if(i==="class"){const a=s?s.split(" "):[],l=r[i]?r[i].split(" "):[],c=a.filter(u=>!l.includes(u));r[i]=[...l,...c].join(" ")}else i==="style"?r[i]=[r[i],s].join("; "):r[i]=s}),r},{})}function Ll(n,e){return e.filter(t=>t.attribute.rendered).map(t=>t.attribute.renderHTML?t.attribute.renderHTML(n.attrs)||{}:{[t.name]:n.attrs[t.name]}).reduce((t,r)=>he(t,r),{})}function cg(n){return typeof n=="function"}function oe(n,e=void 0,...t){return cg(n)?e?n.bind(e)(...t):n(...t):n}function $y(n={}){return Object.keys(n).length===0&&n.constructor===Object}function Vy(n){return typeof n!="string"?n:n.match(/^[+-]?(?:\d*\.)?\d+$/)?Number(n):n==="true"?!0:n==="false"?!1:n}function hd(n,e){return n.style?n:{...n,getAttrs:t=>{const r=n.getAttrs?n.getAttrs(t):n.attrs;if(r===!1)return!1;const i=e.reduce((s,o)=>{const a=o.attribute.parseHTML?o.attribute.parseHTML(t):Vy(t.getAttribute(o.name));return a==null?s:{...s,[o.name]:a}},{});return{...r,...i}}}}function gd(n){return Object.fromEntries(Object.entries(n).filter(([e,t])=>e==="attrs"&&$y(t)?!1:t!=null))}function Fy(n,e){var t;const r=lg(n),{nodeExtensions:i,markExtensions:s}=Bo(n),o=(t=i.find(c=>W(c,"topNode")))===null||t===void 0?void 0:t.name,a=Object.fromEntries(i.map(c=>{const u=r.filter(v=>v.type===c.name),d={name:c.name,options:c.options,storage:c.storage,editor:e},p=n.reduce((v,y)=>{const k=W(y,"extendNodeSchema",d);return{...v,...k?k(c):{}}},{}),f=gd({...p,content:oe(W(c,"content",d)),marks:oe(W(c,"marks",d)),group:oe(W(c,"group",d)),inline:oe(W(c,"inline",d)),atom:oe(W(c,"atom",d)),selectable:oe(W(c,"selectable",d)),draggable:oe(W(c,"draggable",d)),code:oe(W(c,"code",d)),defining:oe(W(c,"defining",d)),isolating:oe(W(c,"isolating",d)),attrs:Object.fromEntries(u.map(v=>{var y;return[v.name,{default:(y=v==null?void 0:v.attribute)===null||y===void 0?void 0:y.default}]}))}),h=oe(W(c,"parseHTML",d));h&&(f.parseDOM=h.map(v=>hd(v,u)));const g=W(c,"renderHTML",d);g&&(f.toDOM=v=>g({node:v,HTMLAttributes:Ll(v,u)}));const m=W(c,"renderText",d);return m&&(f.toText=m),[c.name,f]})),l=Object.fromEntries(s.map(c=>{const u=r.filter(m=>m.type===c.name),d={name:c.name,options:c.options,storage:c.storage,editor:e},p=n.reduce((m,v)=>{const y=W(v,"extendMarkSchema",d);return{...m,...y?y(c):{}}},{}),f=gd({...p,inclusive:oe(W(c,"inclusive",d)),excludes:oe(W(c,"excludes",d)),group:oe(W(c,"group",d)),spanning:oe(W(c,"spanning",d)),code:oe(W(c,"code",d)),attrs:Object.fromEntries(u.map(m=>{var v;return[m.name,{default:(v=m==null?void 0:m.attribute)===null||v===void 0?void 0:v.default}]}))}),h=oe(W(c,"parseHTML",d));h&&(f.parseDOM=h.map(m=>hd(m,u)));const g=W(c,"renderHTML",d);return g&&(f.toDOM=m=>g({mark:m,HTMLAttributes:Ll(m,u)})),[c.name,f]}));return new ah({topNode:o,nodes:a,marks:l})}function Aa(n,e){return e.nodes[n]||e.marks[n]||null}function md(n,e){return Array.isArray(e)?e.some(t=>(typeof t=="string"?t:t.name)===n.name):e}const zy=(n,e=500)=>{let t="";const r=n.parentOffset;return n.parent.nodesBetween(Math.max(0,r-e),r,(i,s,o,a)=>{var l,c;const u=((c=(l=i.type.spec).toText)===null||c===void 0?void 0:c.call(l,{node:i,pos:s,parent:o,index:a}))||i.textContent||"%leaf%";t+=u.slice(0,Math.max(0,r-s))}),t};function wc(n){return Object.prototype.toString.call(n)==="[object RegExp]"}class ji{constructor(e){this.find=e.find,this.handler=e.handler}}const qy=(n,e)=>{if(wc(e))return e.exec(n);const t=e(n);if(!t)return null;const r=[t.text];return r.index=t.index,r.input=n,r.data=t.data,t.replaceWith&&(t.text.includes(t.replaceWith)||console.warn('[tiptap warn]: "inputRuleMatch.replaceWith" must be part of "inputRuleMatch.text".'),r.push(t.replaceWith)),r};function Ta(n){var e;const{editor:t,from:r,to:i,text:s,rules:o,plugin:a}=n,{view:l}=t;if(l.composing)return!1;const c=l.state.doc.resolve(r);if(c.parent.type.spec.code||!((e=c.nodeBefore||c.nodeAfter)===null||e===void 0)&&e.marks.find(p=>p.type.spec.code))return!1;let u=!1;const d=zy(c)+s;return o.forEach(p=>{if(u)return;const f=qy(d,p.find);if(!f)return;const h=l.state.tr,g=Io({state:l.state,transaction:h}),m={from:r-(f[0].length-s.length),to:i},{commands:v,chain:y,can:k}=new Ho({editor:t,state:g});p.handler({state:g,range:m,match:f,commands:v,chain:y,can:k})===null||!h.steps.length||(h.setMeta(a,{transform:h,from:r,to:i,text:s}),l.dispatch(h),u=!0)}),u}function Uy(n){const{editor:e,rules:t}=n,r=new _e({state:{init(){return null},apply(i,s){const o=i.getMeta(r);return o||(i.selectionSet||i.docChanged?null:s)}},props:{handleTextInput(i,s,o,a){return Ta({editor:e,from:s,to:o,text:a,rules:t,plugin:r})},handleDOMEvents:{compositionend:i=>(setTimeout(()=>{const{$cursor:s}=i.state.selection;s&&Ta({editor:e,from:s.pos,to:s.pos,text:"",rules:t,plugin:r})}),!1)},handleKeyDown(i,s){if(s.key!=="Enter")return!1;const{$cursor:o}=i.state.selection;return o?Ta({editor:e,from:o.pos,to:o.pos,text:` `,rules:t,plugin:r}):!1}},isInputRules:!0});return r}function Ky(n){return typeof n=="number"}class Zy{constructor(e){this.find=e.find,this.handler=e.handler}}const Wy=(n,e,t)=>{if(wc(e))return[...n.matchAll(e)];const r=e(n,t);return r?r.map(i=>{const s=[i.text];return s.index=i.index,s.input=n,s.data=i.data,i.replaceWith&&(i.text.includes(i.replaceWith)||console.warn('[tiptap warn]: "pasteRuleMatch.replaceWith" must be part of "pasteRuleMatch.text".'),s.push(i.replaceWith)),s}):[]};function Gy(n){const{editor:e,state:t,from:r,to:i,rule:s,pasteEvent:o,dropEvent:a}=n,{commands:l,chain:c,can:u}=new Ho({editor:e,state:t}),d=[];return t.doc.nodesBetween(r,i,(f,h)=>{if(!f.isTextblock||f.type.spec.code)return;const g=Math.max(r,h),m=Math.min(i,h+f.content.size),v=f.textBetween(g-h,m-h,void 0,"");Wy(v,s.find,o).forEach(k=>{if(k.index===void 0)return;const b=g+k.index+1,E=b+k[0].length,w={from:t.tr.mapping.map(b),to:t.tr.mapping.map(E)},S=s.handler({state:t,range:w,match:k,commands:l,chain:c,can:u,pasteEvent:o,dropEvent:a});d.push(S)})}),d.every(f=>f!==null)}function jy(n){const{editor:e,rules:t}=n;let r=null,i=!1,s=!1,o=new ClipboardEvent("paste"),a=new DragEvent("drop");return t.map(c=>new _e({view(u){const d=p=>{var f;r=!((f=u.dom.parentElement)===null||f===void 0)&&f.contains(p.target)?u.dom.parentElement:null};return window.addEventListener("dragstart",d),{destroy(){window.removeEventListener("dragstart",d)}}},props:{handleDOMEvents:{drop:(u,d)=>(s=r===u.dom.parentElement,a=d,!1),paste:(u,d)=>{var p;const f=(p=d.clipboardData)===null||p===void 0?void 0:p.getData("text/html");return o=d,i=!!(f!=null&&f.includes("data-pm-slice")),!1}}},appendTransaction:(u,d,p)=>{const f=u[0],h=f.getMeta("uiEvent")==="paste"&&!i,g=f.getMeta("uiEvent")==="drop"&&!s;if(!h&&!g)return;const m=d.doc.content.findDiffStart(p.doc.content),v=d.doc.content.findDiffEnd(p.doc.content);if(!Ky(m)||!v||m===v.b)return;const y=p.tr,k=Io({state:p,transaction:y});if(!(!Gy({editor:e,state:k,from:Math.max(m-1,0),to:v.b-1,rule:c,pasteEvent:o,dropEvent:a})||!y.steps.length))return a=new DragEvent("drop"),o=new ClipboardEvent("paste"),y}}))}function Jy(n){const e=n.filter((t,r)=>n.indexOf(t)!==r);return[...new Set(e)]}class Or{constructor(e,t){this.splittableMarks=[],this.editor=t,this.extensions=Or.resolve(e),this.schema=Fy(this.extensions,t),this.extensions.forEach(r=>{var i;this.editor.extensionStorage[r.name]=r.storage;const s={name:r.name,options:r.options,storage:r.storage,editor:this.editor,type:Aa(r.name,this.schema)};r.type==="mark"&&(!((i=oe(W(r,"keepOnSplit",s)))!==null&&i!==void 0)||i)&&this.splittableMarks.push(r.name);const o=W(r,"onBeforeCreate",s);o&&this.editor.on("beforeCreate",o);const a=W(r,"onCreate",s);a&&this.editor.on("create",a);const l=W(r,"onUpdate",s);l&&this.editor.on("update",l);const c=W(r,"onSelectionUpdate",s);c&&this.editor.on("selectionUpdate",c);const u=W(r,"onTransaction",s);u&&this.editor.on("transaction",u);const d=W(r,"onFocus",s);d&&this.editor.on("focus",d);const p=W(r,"onBlur",s);p&&this.editor.on("blur",p);const f=W(r,"onDestroy",s);f&&this.editor.on("destroy",f)})}static resolve(e){const t=Or.sort(Or.flatten(e)),r=Jy(t.map(i=>i.name));return r.length&&console.warn(`[tiptap warn]: Duplicate extension names found: [${r.map(i=>`'${i}'`).join(", ")}]. This can lead to issues.`),t}static flatten(e){return e.map(t=>{const r={name:t.name,options:t.options,storage:t.storage},i=W(t,"addExtensions",r);return i?[t,...this.flatten(i())]:t}).flat(10)}static sort(e){return e.sort((r,i)=>{const s=W(r,"priority")||100,o=W(i,"priority")||100;return s>o?-1:s{const r={name:t.name,options:t.options,storage:t.storage,editor:this.editor,type:Aa(t.name,this.schema)},i=W(t,"addCommands",r);return i?{...e,...i()}:e},{})}get plugins(){const{editor:e}=this,t=Or.sort([...this.extensions].reverse()),r=[],i=[],s=t.map(o=>{const a={name:o.name,options:o.options,storage:o.storage,editor:e,type:Aa(o.name,this.schema)},l=[],c=W(o,"addKeyboardShortcuts",a);let u={};if(o.type==="mark"&&o.config.exitable&&(u.ArrowRight=()=>De.handleExit({editor:e,mark:o})),c){const g=Object.fromEntries(Object.entries(c()).map(([m,v])=>[m,()=>v({editor:e})]));u={...u,...g}}const d=py(u);l.push(d);const p=W(o,"addInputRules",a);md(o,e.options.enableInputRules)&&p&&r.push(...p());const f=W(o,"addPasteRules",a);md(o,e.options.enablePasteRules)&&f&&i.push(...f());const h=W(o,"addProseMirrorPlugins",a);if(h){const g=h();l.push(...g)}return l}).flat();return[Uy({editor:e,rules:r}),...jy({editor:e,rules:i}),...s]}get attributes(){return lg(this.extensions)}get nodeViews(){const{editor:e}=this,{nodeExtensions:t}=Bo(this.extensions);return Object.fromEntries(t.filter(r=>!!W(r,"addNodeView")).map(r=>{const i=this.attributes.filter(l=>l.type===r.name),s={name:r.name,options:r.options,storage:r.storage,editor:e,type:Fe(r.name,this.schema)},o=W(r,"addNodeView",s);if(!o)return[];const a=(l,c,u,d)=>{const p=Ll(l,i);return o()({editor:e,node:l,getPos:u,decorations:d,HTMLAttributes:p,extension:r})};return[r.name,a]}))}}function Yy(n){return Object.prototype.toString.call(n).slice(8,-1)}function Na(n){return Yy(n)!=="Object"?!1:n.constructor===Object&&Object.getPrototypeOf(n)===Object.prototype}function Po(n,e){const t={...n};return Na(n)&&Na(e)&&Object.keys(e).forEach(r=>{Na(e[r])?r in n?t[r]=Po(n[r],e[r]):Object.assign(t,{[r]:e[r]}):Object.assign(t,{[r]:e[r]})}),t}class we{constructor(e={}){this.type="extension",this.name="extension",this.parent=null,this.child=null,this.config={name:this.name,defaultOptions:{}},this.config={...this.config,...e},this.name=this.config.name,e.defaultOptions&&console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`),this.options=this.config.defaultOptions,this.config.addOptions&&(this.options=oe(W(this,"addOptions",{name:this.name}))),this.storage=oe(W(this,"addStorage",{name:this.name,options:this.options}))||{}}static create(e={}){return new we(e)}configure(e={}){const t=this.extend();return t.options=Po(this.options,e),t.storage=oe(W(t,"addStorage",{name:t.name,options:t.options})),t}extend(e={}){const t=new we(e);return t.parent=this,this.child=t,t.name=e.name?e.name:t.parent.name,e.defaultOptions&&console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${t.name}".`),t.options=oe(W(t,"addOptions",{name:t.name})),t.storage=oe(W(t,"addStorage",{name:t.name,options:t.options})),t}}function $o(n,e,t){const{from:r,to:i}=e,{blockSeparator:s=` `,textSerializers:o={}}=t||{};let a="",l=!0;return n.nodesBetween(r,i,(c,u,d,p)=>{var f;const h=o==null?void 0:o[c.type.name];h?(c.isBlock&&!l&&(a+=s,l=!0),d&&(a+=h({node:c,pos:u,parent:d,index:p,range:e}))):c.isText?(a+=(f=c==null?void 0:c.text)===null||f===void 0?void 0:f.slice(Math.max(r,u)-u,i-u),l=!1):c.isBlock&&!l&&(a+=s,l=!0)}),a}function ug(n){return Object.fromEntries(Object.entries(n.nodes).filter(([,e])=>e.spec.toText).map(([e,t])=>[e,t.spec.toText]))}const Xy=we.create({name:"clipboardTextSerializer",addProseMirrorPlugins(){return[new _e({key:new Ae("clipboardTextSerializer"),props:{clipboardTextSerializer:()=>{const{editor:n}=this,{state:e,schema:t}=n,{doc:r,selection:i}=e,{ranges:s}=i,o=Math.min(...s.map(u=>u.$from.pos)),a=Math.max(...s.map(u=>u.$to.pos)),l=ug(t);return $o(r,{from:o,to:a},{textSerializers:l})}}})]}}),Qy=()=>({editor:n,view:e})=>(requestAnimationFrame(()=>{var t;n.isDestroyed||(e.dom.blur(),(t=window==null?void 0:window.getSelection())===null||t===void 0||t.removeAllRanges())}),!0),ev=(n=!1)=>({commands:e})=>e.setContent("",n),tv=()=>({state:n,tr:e,dispatch:t})=>{const{selection:r}=e,{ranges:i}=r;return t&&i.forEach(({$from:s,$to:o})=>{n.doc.nodesBetween(s.pos,o.pos,(a,l)=>{if(a.type.isText)return;const{doc:c,mapping:u}=e,d=c.resolve(u.map(l)),p=c.resolve(u.map(l+a.nodeSize)),f=d.blockRange(p);if(!f)return;const h=Yr(f);if(a.type.isTextblock){const{defaultType:g}=d.parent.contentMatchAt(d.index());e.setNodeMarkup(f.start,g)}(h||h===0)&&e.lift(f,h)})}),!0},nv=n=>e=>n(e),rv=()=>({state:n,dispatch:e})=>Sy(n,e),iv=(n,e)=>({editor:t,tr:r})=>{const{state:i}=t,s=i.doc.slice(n.from,n.to);r.deleteRange(n.from,n.to);const o=r.mapping.map(e);return r.insert(o,s.content),r.setSelection(new X(r.doc.resolve(o-1))),!0},sv=()=>({tr:n,dispatch:e})=>{const{selection:t}=n,r=t.$anchor.node();if(r.content.size>0)return!1;const i=n.selection.$anchor;for(let s=i.depth;s>0;s-=1)if(i.node(s).type===r.type){if(e){const a=i.before(s),l=i.after(s);n.delete(a,l).scrollIntoView()}return!0}return!1},ov=n=>({tr:e,state:t,dispatch:r})=>{const i=Fe(n,t.schema),s=e.selection.$anchor;for(let o=s.depth;o>0;o-=1)if(s.node(o).type===i){if(r){const l=s.before(o),c=s.after(o);e.delete(l,c).scrollIntoView()}return!0}return!1},av=n=>({tr:e,dispatch:t})=>{const{from:r,to:i}=n;return t&&e.delete(r,i),!0},lv=()=>({state:n,dispatch:e})=>fy(n,e),cv=()=>({commands:n})=>n.keyboardShortcut("Enter"),uv=()=>({state:n,dispatch:e})=>Cy(n,e);function Ur(n,e,t={strict:!0}){const r=Object.keys(e);return r.length?r.every(i=>t.strict?e[i]===n[i]:wc(e[i])?e[i].test(n[i]):e[i]===n[i]):!0}function Rl(n,e,t={}){return n.find(r=>r.type===e&&Ur(r.attrs,t))}function dv(n,e,t={}){return!!Rl(n,e,t)}function kc(n,e,t={}){if(!n||!e)return;let r=n.parent.childAfter(n.parentOffset);if(n.parentOffset===r.offset&&r.offset!==0&&(r=n.parent.childBefore(n.parentOffset)),!r.node)return;const i=Rl([...r.node.marks],e,t);if(!i)return;let s=r.index,o=n.start()+r.offset,a=s+1,l=o+r.node.nodeSize;for(Rl([...r.node.marks],e,t);s>0&&i.isInSet(n.parent.child(s-1).marks);)s-=1,o-=n.parent.child(s).nodeSize;for(;a({tr:t,state:r,dispatch:i})=>{const s=dn(n,r.schema),{doc:o,selection:a}=t,{$from:l,from:c,to:u}=a;if(i){const d=kc(l,s,e);if(d&&d.from<=c&&d.to>=u){const p=X.create(o,d.from,d.to);t.setSelection(p)}}return!0},fv=n=>e=>{const t=typeof n=="function"?n(e):n;for(let r=0;r({editor:t,view:r,tr:i,dispatch:s})=>{e={scrollIntoView:!0,...e};const o=()=>{Ec()&&r.dom.focus(),requestAnimationFrame(()=>{t.isDestroyed||(r.focus(),e!=null&&e.scrollIntoView&&t.commands.scrollIntoView())})};if(r.hasFocus()&&n===null||n===!1)return!0;if(s&&n===null&&!xc(t.state.selection))return o(),!0;const a=dg(i.doc,n)||t.state.selection,l=t.state.selection.eq(a);return s&&(l||i.setSelection(a),l&&i.storedMarks&&i.setStoredMarks(i.storedMarks),o()),!0},gv=(n,e)=>t=>n.every((r,i)=>e(r,{...t,index:i})),mv=(n,e)=>({tr:t,commands:r})=>r.insertContentAt({from:t.selection.from,to:t.selection.to},n,e),Dl=n=>{const e=n.childNodes;for(let t=e.length-1;t>=0;t-=1){const r=e[t];r.nodeType===3&&r.nodeValue&&!/\S/.test(r.nodeValue)?n.removeChild(r):r.nodeType===1&&Dl(r)}return n};function bd(n){const e=`${n}`,t=new window.DOMParser().parseFromString(e,"text/html").body;return Dl(t),Dl(t)}function js(n,e,t){if(t={slice:!0,parseOptions:{},...t},typeof n=="object"&&n!==null)try{return Array.isArray(n)&&n.length>0?R.fromArray(n.map(r=>e.nodeFromJSON(r))):e.nodeFromJSON(n)}catch(r){return console.warn("[tiptap warn]: Invalid content.","Passed value:",n,"Error:",r),js("",e,t)}if(typeof n=="string"){const r=Zi.fromSchema(e);return t.slice?r.parseSlice(bd(n),t.parseOptions).content:r.parse(bd(n),t.parseOptions)}return js("",e,t)}function bv(n,e,t){const r=n.steps.length-1;if(r{o===0&&(o=u)}),n.setSelection(ne.near(n.doc.resolve(o),t))}const yv=n=>n.toString().startsWith("<"),vv=(n,e,t)=>({tr:r,dispatch:i,editor:s})=>{if(i){t={parseOptions:{},updateSelection:!0,...t};const o=js(e,s.schema,{parseOptions:{preserveWhitespace:"full",...t.parseOptions}});if(o.toString()==="<>")return!0;let{from:a,to:l}=typeof n=="number"?{from:n,to:n}:{from:n.from,to:n.to},c=!0,u=!0;if((yv(o)?o:[o]).forEach(p=>{p.check(),c=c?p.isText&&p.marks.length===0:!1,u=u?p.isBlock:!1}),a===l&&u){const{parent:p}=r.doc.resolve(a);p.isTextblock&&!p.type.spec.code&&!p.childCount&&(a-=1,l+=1)}c?Array.isArray(e)?r.insertText(e.map(p=>p.text||"").join(""),a,l):typeof e=="object"&&e&&e.text?r.insertText(e.text,a,l):r.insertText(e,a,l):r.replaceWith(a,l,o),t.updateSelection&&bv(r,r.steps.length-1,-1)}return!0},wv=()=>({state:n,dispatch:e})=>wy(n,e),kv=()=>({state:n,dispatch:e})=>ky(n,e),xv=()=>({state:n,dispatch:e})=>gy(n,e),Ev=()=>({state:n,dispatch:e})=>yy(n,e),Cv=()=>({tr:n,state:e,dispatch:t})=>{try{const r=No(e.doc,e.selection.$from.pos,-1);return r==null?!1:(n.join(r,2),t&&t(n),!0)}catch{return!1}},Sv=()=>({state:n,dispatch:e,tr:t})=>{try{const r=No(n.doc,n.selection.$from.pos,1);return r==null?!1:(t.join(r,2),e&&e(t),!0)}catch{return!1}};function Cc(){return typeof navigator<"u"?/Mac/.test(navigator.platform):!1}function _v(n){const e=n.split(/-(?!$)/);let t=e[e.length-1];t==="Space"&&(t=" ");let r,i,s,o;for(let a=0;a({editor:e,view:t,tr:r,dispatch:i})=>{const s=_v(n).split(/-(?!$)/),o=s.find(c=>!["Alt","Ctrl","Meta","Shift"].includes(c)),a=new KeyboardEvent("keydown",{key:o==="Space"?" ":o,altKey:s.includes("Alt"),ctrlKey:s.includes("Ctrl"),metaKey:s.includes("Meta"),shiftKey:s.includes("Shift"),bubbles:!0,cancelable:!0}),l=e.captureTransaction(()=>{t.someProp("handleKeyDown",c=>c(t,a))});return l==null||l.steps.forEach(c=>{const u=c.map(r.mapping);u&&i&&r.maybeStep(u)}),!0};function sr(n,e,t={}){const{from:r,to:i,empty:s}=n.selection,o=e?Fe(e,n.schema):null,a=[];n.doc.nodesBetween(r,i,(d,p)=>{if(d.isText)return;const f=Math.max(r,p),h=Math.min(i,p+d.nodeSize);a.push({node:d,from:f,to:h})});const l=i-r,c=a.filter(d=>o?o.name===d.node.type.name:!0).filter(d=>Ur(d.node.attrs,t,{strict:!1}));return s?!!c.length:c.reduce((d,p)=>d+p.to-p.from,0)>=l}const Av=(n,e={})=>({state:t,dispatch:r})=>{const i=Fe(n,t.schema);return sr(t,i,e)?xy(t,r):!1},Tv=()=>({state:n,dispatch:e})=>_y(n,e),Nv=n=>({state:e,dispatch:t})=>{const r=Fe(n,e.schema);return Dy(r)(e,t)},Ov=()=>({state:n,dispatch:e})=>Ey(n,e);function Vo(n,e){return e.nodes[n]?"node":e.marks[n]?"mark":null}function yd(n,e){const t=typeof e=="string"?[e]:e;return Object.keys(n).reduce((r,i)=>(t.includes(i)||(r[i]=n[i]),r),{})}const Lv=(n,e)=>({tr:t,state:r,dispatch:i})=>{let s=null,o=null;const a=Vo(typeof n=="string"?n:n.name,r.schema);return a?(a==="node"&&(s=Fe(n,r.schema)),a==="mark"&&(o=dn(n,r.schema)),i&&t.selection.ranges.forEach(l=>{r.doc.nodesBetween(l.$from.pos,l.$to.pos,(c,u)=>{s&&s===c.type&&t.setNodeMarkup(u,void 0,yd(c.attrs,e)),o&&c.marks.length&&c.marks.forEach(d=>{o===d.type&&t.addMark(u,u+c.nodeSize,o.create(yd(d.attrs,e)))})})}),!0):!1},Rv=()=>({tr:n,dispatch:e})=>(e&&n.scrollIntoView(),!0),Dv=()=>({tr:n,commands:e})=>e.setTextSelection({from:0,to:n.doc.content.size}),Iv=()=>({state:n,dispatch:e})=>my(n,e),Hv=()=>({state:n,dispatch:e})=>vy(n,e),Bv=()=>({state:n,dispatch:e})=>My(n,e),Pv=()=>({state:n,dispatch:e})=>Ny(n,e),$v=()=>({state:n,dispatch:e})=>Ty(n,e);function pg(n,e,t={}){return js(n,e,{slice:!1,parseOptions:t})}const Vv=(n,e=!1,t={})=>({tr:r,editor:i,dispatch:s})=>{const{doc:o}=r,a=pg(n,i.schema,t);return s&&r.replaceWith(0,o.content.size,a).setMeta("preventUpdate",!e),!0};function Ji(n,e){const t=dn(e,n.schema),{from:r,to:i,empty:s}=n.selection,o=[];s?(n.storedMarks&&o.push(...n.storedMarks),o.push(...n.selection.$head.marks())):n.doc.nodesBetween(r,i,l=>{o.push(...l.marks)});const a=o.find(l=>l.type.name===t.name);return a?{...a.attrs}:{}}function Fv(n,e){const t=new lc(n);return e.forEach(r=>{r.steps.forEach(i=>{t.step(i)})}),t}function zv(n){for(let e=0;e{e(r)&&t.push({node:r,pos:i})}),t}function qv(n,e,t){const r=[];return n.nodesBetween(e.from,e.to,(i,s)=>{t(i)&&r.push({node:i,pos:s})}),r}function fg(n,e){for(let t=n.depth;t>0;t-=1){const r=n.node(t);if(e(r))return{pos:t>0?n.before(t):0,start:n.start(t),depth:t,node:r}}}function Fo(n){return e=>fg(e.$from,n)}function Sc(n,e){const t=qt.fromSchema(e).serializeFragment(n),i=document.implementation.createHTMLDocument().createElement("div");return i.appendChild(t),i.innerHTML}function Uv(n,e){const t={from:0,to:n.content.size};return $o(n,t,e)}function Kv(n,e){const t=Fe(e,n.schema),{from:r,to:i}=n.selection,s=[];n.doc.nodesBetween(r,i,a=>{s.push(a)});const o=s.reverse().find(a=>a.type.name===t.name);return o?{...o.attrs}:{}}function hg(n,e){const t=Vo(typeof e=="string"?e:e.name,n.schema);return t==="node"?Kv(n,e):t==="mark"?Ji(n,e):{}}function Zv(n,e=JSON.stringify){const t={};return n.filter(r=>{const i=e(r);return Object.prototype.hasOwnProperty.call(t,i)?!1:t[i]=!0})}function Wv(n){const e=Zv(n);return e.length===1?e:e.filter((t,r)=>!e.filter((s,o)=>o!==r).some(s=>t.oldRange.from>=s.oldRange.from&&t.oldRange.to<=s.oldRange.to&&t.newRange.from>=s.newRange.from&&t.newRange.to<=s.newRange.to))}function Gv(n){const{mapping:e,steps:t}=n,r=[];return e.maps.forEach((i,s)=>{const o=[];if(i.ranges.length)i.forEach((a,l)=>{o.push({from:a,to:l})});else{const{from:a,to:l}=t[s];if(a===void 0||l===void 0)return;o.push({from:a,to:l})}o.forEach(({from:a,to:l})=>{const c=e.slice(s).map(a,-1),u=e.slice(s).map(l),d=e.invert().map(c,-1),p=e.invert().map(u);r.push({oldRange:{from:d,to:p},newRange:{from:c,to:u}})})}),Wv(r)}function _c(n,e,t){const r=[];return n===e?t.resolve(n).marks().forEach(i=>{const s=t.resolve(n-1),o=kc(s,i.type);o&&r.push({mark:i,...o})}):t.nodesBetween(n,e,(i,s)=>{!i||i.nodeSize===void 0||r.push(...i.marks.map(o=>({from:s,to:s+i.nodeSize,mark:o})))}),r}function Ns(n,e,t){return Object.fromEntries(Object.entries(t).filter(([r])=>{const i=n.find(s=>s.type===e&&s.name===r);return i?i.attribute.keepOnSplit:!1}))}function Hl(n,e,t={}){const{empty:r,ranges:i}=n.selection,s=e?dn(e,n.schema):null;if(r)return!!(n.storedMarks||n.selection.$from.marks()).filter(d=>s?s.name===d.type.name:!0).find(d=>Ur(d.attrs,t,{strict:!1}));let o=0;const a=[];if(i.forEach(({$from:d,$to:p})=>{const f=d.pos,h=p.pos;n.doc.nodesBetween(f,h,(g,m)=>{if(!g.isText&&!g.marks.length)return;const v=Math.max(f,m),y=Math.min(h,m+g.nodeSize),k=y-v;o+=k,a.push(...g.marks.map(b=>({mark:b,from:v,to:y})))})}),o===0)return!1;const l=a.filter(d=>s?s.name===d.mark.type.name:!0).filter(d=>Ur(d.mark.attrs,t,{strict:!1})).reduce((d,p)=>d+p.to-p.from,0),c=a.filter(d=>s?d.mark.type!==s&&d.mark.type.excludes(s):!0).reduce((d,p)=>d+p.to-p.from,0);return(l>0?l+c:l)>=o}function jv(n,e,t={}){if(!e)return sr(n,null,t)||Hl(n,null,t);const r=Vo(e,n.schema);return r==="node"?sr(n,e,t):r==="mark"?Hl(n,e,t):!1}function vd(n,e){const{nodeExtensions:t}=Bo(e),r=t.find(o=>o.name===n);if(!r)return!1;const i={name:r.name,options:r.options,storage:r.storage},s=oe(W(r,"group",i));return typeof s!="string"?!1:s.split(" ").includes("list")}function Jv(n){var e;const t=(e=n.type.createAndFill())===null||e===void 0?void 0:e.toJSON(),r=n.toJSON();return JSON.stringify(t)===JSON.stringify(r)}function gg(n){return n instanceof Q}function zo(n,e,t){const i=n.state.doc.content.size,s=ln(e,0,i),o=ln(t,0,i),a=n.coordsAtPos(s),l=n.coordsAtPos(o,-1),c=Math.min(a.top,l.top),u=Math.max(a.bottom,l.bottom),d=Math.min(a.left,l.left),p=Math.max(a.right,l.right),f=p-d,h=u-c,v={top:c,bottom:u,left:d,right:p,width:f,height:h,x:d,y:c};return{...v,toJSON:()=>v}}function Yv(n,e,t){var r;const{selection:i}=e;let s=null;if(xc(i)&&(s=i.$cursor),s){const a=(r=n.storedMarks)!==null&&r!==void 0?r:s.marks();return!!t.isInSet(a)||!a.some(l=>l.type.excludes(t))}const{ranges:o}=i;return o.some(({$from:a,$to:l})=>{let c=a.depth===0?n.doc.inlineContent&&n.doc.type.allowsMarkType(t):!1;return n.doc.nodesBetween(a.pos,l.pos,(u,d,p)=>{if(c)return!1;if(u.isInline){const f=!p||p.type.allowsMarkType(t),h=!!t.isInSet(u.marks)||!u.marks.some(g=>g.type.excludes(t));c=f&&h}return!c}),c})}const Xv=(n,e={})=>({tr:t,state:r,dispatch:i})=>{const{selection:s}=t,{empty:o,ranges:a}=s,l=dn(n,r.schema);if(i)if(o){const c=Ji(r,l);t.addStoredMark(l.create({...c,...e}))}else a.forEach(c=>{const u=c.$from.pos,d=c.$to.pos;r.doc.nodesBetween(u,d,(p,f)=>{const h=Math.max(f,u),g=Math.min(f+p.nodeSize,d);p.marks.find(v=>v.type===l)?p.marks.forEach(v=>{l===v.type&&t.addMark(h,g,l.create({...v.attrs,...e}))}):t.addMark(h,g,l.create(e))})});return Yv(r,t,l)},Qv=(n,e)=>({tr:t})=>(t.setMeta(n,e),!0),ew=(n,e={})=>({state:t,dispatch:r,chain:i})=>{const s=Fe(n,t.schema);return s.isTextblock?i().command(({commands:o})=>fd(s,e)(t)?!0:o.clearNodes()).command(({state:o})=>fd(s,e)(o,r)).run():(console.warn('[tiptap warn]: Currently "setNode()" only supports text block nodes.'),!1)},tw=n=>({tr:e,dispatch:t})=>{if(t){const{doc:r}=e,i=ln(n,0,r.content.size),s=Q.create(r,i);e.setSelection(s)}return!0},nw=n=>({tr:e,dispatch:t})=>{if(t){const{doc:r}=e,{from:i,to:s}=typeof n=="number"?{from:n,to:n}:n,o=X.atStart(r).from,a=X.atEnd(r).to,l=ln(i,o,a),c=ln(s,o,a),u=X.create(r,l,c);e.setSelection(u)}return!0},rw=n=>({state:e,dispatch:t})=>{const r=Fe(n,e.schema);return By(r)(e,t)};function wd(n,e){const t=n.storedMarks||n.selection.$to.parentOffset&&n.selection.$from.marks();if(t){const r=t.filter(i=>e==null?void 0:e.includes(i.type.name));n.tr.ensureMarks(r)}}const iw=({keepMarks:n=!0}={})=>({tr:e,state:t,dispatch:r,editor:i})=>{const{selection:s,doc:o}=e,{$from:a,$to:l}=s,c=i.extensionManager.attributes,u=Ns(c,a.node().type.name,a.node().attrs);if(s instanceof Q&&s.node.isBlock)return!a.parentOffset||!Hr(o,a.pos)?!1:(r&&(n&&wd(t,i.extensionManager.splittableMarks),e.split(a.pos).scrollIntoView()),!0);if(!a.parent.isBlock)return!1;if(r){const d=l.parentOffset===l.parent.content.size;s instanceof X&&e.deleteSelection();const p=a.depth===0?void 0:zv(a.node(-1).contentMatchAt(a.indexAfter(-1)));let f=d&&p?[{type:p,attrs:u}]:void 0,h=Hr(e.doc,e.mapping.map(a.pos),1,f);if(!f&&!h&&Hr(e.doc,e.mapping.map(a.pos),1,p?[{type:p}]:void 0)&&(h=!0,f=p?[{type:p,attrs:u}]:void 0),h&&(e.split(e.mapping.map(a.pos),1,f),p&&!d&&!a.parentOffset&&a.parent.type!==p)){const g=e.mapping.map(a.before()),m=e.doc.resolve(g);a.node(-1).canReplaceWith(m.index(),m.index()+1,p)&&e.setNodeMarkup(e.mapping.map(a.before()),p)}n&&wd(t,i.extensionManager.splittableMarks),e.scrollIntoView()}return!0},sw=n=>({tr:e,state:t,dispatch:r,editor:i})=>{var s;const o=Fe(n,t.schema),{$from:a,$to:l}=t.selection,c=t.selection.node;if(c&&c.isBlock||a.depth<2||!a.sameParent(l))return!1;const u=a.node(-1);if(u.type!==o)return!1;const d=i.extensionManager.attributes;if(a.parent.content.size===0&&a.node(-1).childCount===a.indexAfter(-1)){if(a.depth===2||a.node(-3).type!==o||a.index(-2)!==a.node(-2).childCount-1)return!1;if(r){let m=R.empty;const v=a.index(-1)?1:a.index(-2)?2:3;for(let S=a.depth-v;S>=a.depth-3;S-=1)m=R.from(a.node(S).copy(m));const y=a.indexAfter(-1){if(w>-1)return!1;S.isTextblock&&S.content.size===0&&(w=A+1)}),w>-1&&e.setSelection(X.near(e.doc.resolve(w))),e.scrollIntoView()}return!0}const p=l.pos===a.end()?u.contentMatchAt(0).defaultType:null,f=Ns(d,u.type.name,u.attrs),h=Ns(d,a.node().type.name,a.node().attrs);e.delete(a.pos,l.pos);const g=p?[{type:o,attrs:f},{type:p,attrs:h}]:[{type:o,attrs:f}];if(!Hr(e.doc,a.pos,2))return!1;if(r){const{selection:m,storedMarks:v}=t,{splittableMarks:y}=i.extensionManager,k=v||m.$to.parentOffset&&m.$from.marks();if(e.split(a.pos,2,g).scrollIntoView(),!k||!r)return!0;const b=k.filter(E=>y.includes(E.type.name));e.ensureMarks(b)}return!0},Oa=(n,e)=>{const t=Fo(o=>o.type===e)(n.selection);if(!t)return!0;const r=n.doc.resolve(Math.max(0,t.pos-1)).before(t.depth);if(r===void 0)return!0;const i=n.doc.nodeAt(r);return t.node.type===(i==null?void 0:i.type)&&Dn(n.doc,t.pos)&&n.join(t.pos),!0},La=(n,e)=>{const t=Fo(o=>o.type===e)(n.selection);if(!t)return!0;const r=n.doc.resolve(t.start).after(t.depth);if(r===void 0)return!0;const i=n.doc.nodeAt(r);return t.node.type===(i==null?void 0:i.type)&&Dn(n.doc,r)&&n.join(r),!0},ow=(n,e,t,r={})=>({editor:i,tr:s,state:o,dispatch:a,chain:l,commands:c,can:u})=>{const{extensions:d,splittableMarks:p}=i.extensionManager,f=Fe(n,o.schema),h=Fe(e,o.schema),{selection:g,storedMarks:m}=o,{$from:v,$to:y}=g,k=v.blockRange(y),b=m||g.$to.parentOffset&&g.$from.marks();if(!k)return!1;const E=Fo(w=>vd(w.type.name,d))(g);if(k.depth>=1&&E&&k.depth-E.depth<=1){if(E.node.type===f)return c.liftListItem(h);if(vd(E.node.type.name,d)&&f.validContent(E.node.content)&&a)return l().command(()=>(s.setNodeMarkup(E.pos,f),!0)).command(()=>Oa(s,f)).command(()=>La(s,f)).run()}return!t||!b||!a?l().command(()=>u().wrapInList(f,r)?!0:c.clearNodes()).wrapInList(f,r).command(()=>Oa(s,f)).command(()=>La(s,f)).run():l().command(()=>{const w=u().wrapInList(f,r),S=b.filter(A=>p.includes(A.type.name));return s.ensureMarks(S),w?!0:c.clearNodes()}).wrapInList(f,r).command(()=>Oa(s,f)).command(()=>La(s,f)).run()},aw=(n,e={},t={})=>({state:r,commands:i})=>{const{extendEmptyMarkRange:s=!1}=t,o=dn(n,r.schema);return Hl(r,o,e)?i.unsetMark(o,{extendEmptyMarkRange:s}):i.setMark(o,e)},lw=(n,e,t={})=>({state:r,commands:i})=>{const s=Fe(n,r.schema),o=Fe(e,r.schema);return sr(r,s,t)?i.setNode(o):i.setNode(s,t)},cw=(n,e={})=>({state:t,commands:r})=>{const i=Fe(n,t.schema);return sr(t,i,e)?r.lift(i):r.wrapIn(i,e)},uw=()=>({state:n,dispatch:e})=>{const t=n.plugins;for(let r=0;r=0;l-=1)o.step(a.steps[l].invert(a.docs[l]));if(s.text){const l=o.doc.resolve(s.from).marks();o.replaceWith(s.from,s.to,n.schema.text(s.text,l))}else o.delete(s.from,s.to)}return!0}}return!1},dw=()=>({tr:n,dispatch:e})=>{const{selection:t}=n,{empty:r,ranges:i}=t;return r||e&&i.forEach(s=>{n.removeMark(s.$from.pos,s.$to.pos)}),!0},pw=(n,e={})=>({tr:t,state:r,dispatch:i})=>{var s;const{extendEmptyMarkRange:o=!1}=e,{selection:a}=t,l=dn(n,r.schema),{$from:c,empty:u,ranges:d}=a;if(!i)return!0;if(u&&o){let{from:p,to:f}=a;const h=(s=c.marks().find(m=>m.type===l))===null||s===void 0?void 0:s.attrs,g=kc(c,l,h);g&&(p=g.from,f=g.to),t.removeMark(p,f,l)}else d.forEach(p=>{t.removeMark(p.$from.pos,p.$to.pos,l)});return t.removeStoredMark(l),!0},fw=(n,e={})=>({tr:t,state:r,dispatch:i})=>{let s=null,o=null;const a=Vo(typeof n=="string"?n:n.name,r.schema);return a?(a==="node"&&(s=Fe(n,r.schema)),a==="mark"&&(o=dn(n,r.schema)),i&&t.selection.ranges.forEach(l=>{const c=l.$from.pos,u=l.$to.pos;r.doc.nodesBetween(c,u,(d,p)=>{s&&s===d.type&&t.setNodeMarkup(p,void 0,{...d.attrs,...e}),o&&d.marks.length&&d.marks.forEach(f=>{if(o===f.type){const h=Math.max(p,c),g=Math.min(p+d.nodeSize,u);t.addMark(h,g,o.create({...f.attrs,...e}))}})})}),!0):!1},hw=(n,e={})=>({state:t,dispatch:r})=>{const i=Fe(n,t.schema);return Oy(i,e)(t,r)},gw=(n,e={})=>({state:t,dispatch:r})=>{const i=Fe(n,t.schema);return Ly(i,e)(t,r)};var mw=Object.freeze({__proto__:null,blur:Qy,clearContent:ev,clearNodes:tv,command:nv,createParagraphNear:rv,cut:iv,deleteCurrentNode:sv,deleteNode:ov,deleteRange:av,deleteSelection:lv,enter:cv,exitCode:uv,extendMarkRange:pv,first:fv,focus:hv,forEach:gv,insertContent:mv,insertContentAt:vv,joinUp:wv,joinDown:kv,joinBackward:xv,joinForward:Ev,joinItemBackward:Cv,joinItemForward:Sv,keyboardShortcut:Mv,lift:Av,liftEmptyBlock:Tv,liftListItem:Nv,newlineInCode:Ov,resetAttributes:Lv,scrollIntoView:Rv,selectAll:Dv,selectNodeBackward:Iv,selectNodeForward:Hv,selectParentNode:Bv,selectTextblockEnd:Pv,selectTextblockStart:$v,setContent:Vv,setMark:Xv,setMeta:Qv,setNode:ew,setNodeSelection:tw,setTextSelection:nw,sinkListItem:rw,splitBlock:iw,splitListItem:sw,toggleList:ow,toggleMark:aw,toggleNode:lw,toggleWrap:cw,undoInputRule:uw,unsetAllMarks:dw,unsetMark:pw,updateAttributes:fw,wrapIn:hw,wrapInList:gw});const bw=we.create({name:"commands",addCommands(){return{...mw}}}),yw=we.create({name:"editable",addProseMirrorPlugins(){return[new _e({key:new Ae("editable"),props:{editable:()=>this.editor.options.editable}})]}}),vw=we.create({name:"focusEvents",addProseMirrorPlugins(){const{editor:n}=this;return[new _e({key:new Ae("focusEvents"),props:{handleDOMEvents:{focus:(e,t)=>{n.isFocused=!0;const r=n.state.tr.setMeta("focus",{event:t}).setMeta("addToHistory",!1);return e.dispatch(r),!1},blur:(e,t)=>{n.isFocused=!1;const r=n.state.tr.setMeta("blur",{event:t}).setMeta("addToHistory",!1);return e.dispatch(r),!1}}}})]}}),ww=we.create({name:"keymap",addKeyboardShortcuts(){const n=()=>this.editor.commands.first(({commands:o})=>[()=>o.undoInputRule(),()=>o.command(({tr:a})=>{const{selection:l,doc:c}=a,{empty:u,$anchor:d}=l,{pos:p,parent:f}=d,h=d.parent.isTextblock?a.doc.resolve(p-1):d,g=h.parent.type.spec.isolating,m=d.pos-d.parentOffset,v=g&&h.parent.childCount===1?m===d.pos:ne.atStart(c).from===p;return!u||!v||!f.type.isTextblock||f.textContent.length?!1:o.clearNodes()}),()=>o.deleteSelection(),()=>o.joinBackward(),()=>o.selectNodeBackward()]),e=()=>this.editor.commands.first(({commands:o})=>[()=>o.deleteSelection(),()=>o.deleteCurrentNode(),()=>o.joinForward(),()=>o.selectNodeForward()]),r={Enter:()=>this.editor.commands.first(({commands:o})=>[()=>o.newlineInCode(),()=>o.createParagraphNear(),()=>o.liftEmptyBlock(),()=>o.splitBlock()]),"Mod-Enter":()=>this.editor.commands.exitCode(),Backspace:n,"Mod-Backspace":n,"Shift-Backspace":n,Delete:e,"Mod-Delete":e,"Mod-a":()=>this.editor.commands.selectAll()},i={...r},s={...r,"Ctrl-h":n,"Alt-Backspace":n,"Ctrl-d":e,"Ctrl-Alt-Backspace":e,"Alt-Delete":e,"Alt-d":e,"Ctrl-a":()=>this.editor.commands.selectTextblockStart(),"Ctrl-e":()=>this.editor.commands.selectTextblockEnd()};return Ec()||Cc()?s:i},addProseMirrorPlugins(){return[new _e({key:new Ae("clearDocument"),appendTransaction:(n,e,t)=>{if(!(n.some(h=>h.docChanged)&&!e.doc.eq(t.doc)))return;const{empty:i,from:s,to:o}=e.selection,a=ne.atStart(e.doc).from,l=ne.atEnd(e.doc).to;if(i||!(s===a&&o===l)||!(t.doc.textBetween(0,t.doc.content.size," "," ").length===0))return;const d=t.tr,p=Io({state:t,transaction:d}),{commands:f}=new Ho({editor:this.editor,state:p});if(f.clearNodes(),!!d.steps.length)return d}})]}}),kw=we.create({name:"tabindex",addProseMirrorPlugins(){return[new _e({key:new Ae("tabindex"),props:{attributes:this.editor.isEditable?{tabindex:"0"}:{}}})]}});var mg=Object.freeze({__proto__:null,ClipboardTextSerializer:Xy,Commands:bw,Editable:yw,FocusEvents:vw,Keymap:ww,Tabindex:kw});const xw=`.ProseMirror { @@ -308,11 +308,11 @@ img.ProseMirror-separator { `;this.template=t,this.registerClickListener()}onClick(t){var r;t.setPainter((r=this.editor)==null?void 0:r.state.selection.$head.marks())}}class Bc{constructor(e,t,r){V(this,"editor");V(this,"globalConfig");V(this,"aiModelName");V(this,"aiModelConfig");this.editor=e,this.globalConfig=t,this.aiModelName=r,this.aiModelConfig=t.models[r]}chat(e,t,r){const i=s=>{const o=this.createAiClient(s,r),a=this.wrapMessage(`${e} ${t}`);o.start(a)};this.globalConfig.onCreateClientUrl?this.globalConfig.onCreateClientUrl(this.aiModelName,this.aiModelConfig,i):i(this.createAiClientUrl())}}class qg{constructor(e,t){V(this,"isStop",!1);V(this,"url");V(this,"webSocket");V(this,"isOpen",!1);V(this,"message");V(this,"listener");this.url=e,this.listener=t}start(e){this.listener.onStart(this),this.message=e,this.webSocket=new WebSocket(this.url),this.webSocket.onopen=t=>this.onOpen(t),this.webSocket.onmessage=t=>this.onMessage(t),this.webSocket.onclose=t=>this.onClose(t),this.webSocket.onerror=t=>this.onError(t)}stop(){this.webSocket&&(this.webSocket.close(),this.webSocket=void 0,this.isStop||(this.listener.onStop(),this.isStop=!0))}send(e){this.webSocket&&this.isOpen&&this.webSocket.send(e)}onOpen(e){this.isOpen=!0,this.send(this.message)}onMessage(e){this.listener.onMessage(e.data)}onClose(e){this.isOpen=!1,this.isStop||(this.listener.onStop(),this.isStop=!0)}onError(e){this.isOpen=!1,this.isStop||(this.listener.onStop(),this.isStop=!0)}}var Cn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Qr(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}function Ug(n){if(n.__esModule)return n;var e=n.default;if(typeof e=="function"){var t=function r(){return this instanceof r?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};t.prototype=e.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(n).forEach(function(r){var i=Object.getOwnPropertyDescriptor(n,r);Object.defineProperty(t,r,i.get?i:{enumerable:!0,get:function(){return n[r]}})}),t}var Kg={exports:{}};function hE(n){throw new Error('Could not dynamically require "'+n+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Pa={exports:{}};const gE={},mE=Object.freeze(Object.defineProperty({__proto__:null,default:gE},Symbol.toStringTag,{value:"Module"})),bE=Ug(mE);var jd;function Ko(){return jd||(jd=1,function(n,e){(function(t,r){n.exports=r()})(Cn,function(){var t=t||function(r,i){var s;if(typeof window<"u"&&window.crypto&&(s=window.crypto),typeof self<"u"&&self.crypto&&(s=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(s=globalThis.crypto),!s&&typeof window<"u"&&window.msCrypto&&(s=window.msCrypto),!s&&typeof Cn<"u"&&Cn.crypto&&(s=Cn.crypto),!s&&typeof hE=="function")try{s=bE}catch{}var o=function(){if(s){if(typeof s.getRandomValues=="function")try{return s.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof s.randomBytes=="function")try{return s.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},a=Object.create||function(){function y(){}return function(k){var b;return y.prototype=k,b=new y,y.prototype=null,b}}(),l={},c=l.lib={},u=c.Base=function(){return{extend:function(y){var k=a(this);return y&&k.mixIn(y),(!k.hasOwnProperty("init")||this.init===k.init)&&(k.init=function(){k.$super.init.apply(this,arguments)}),k.init.prototype=k,k.$super=this,k},create:function(){var y=this.extend();return y.init.apply(y,arguments),y},init:function(){},mixIn:function(y){for(var k in y)y.hasOwnProperty(k)&&(this[k]=y[k]);y.hasOwnProperty("toString")&&(this.toString=y.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),d=c.WordArray=u.extend({init:function(y,k){y=this.words=y||[],k!=i?this.sigBytes=k:this.sigBytes=y.length*4},toString:function(y){return(y||f).stringify(this)},concat:function(y){var k=this.words,b=y.words,E=this.sigBytes,w=y.sigBytes;if(this.clamp(),E%4)for(var S=0;S>>2]>>>24-S%4*8&255;k[E+S>>>2]|=A<<24-(E+S)%4*8}else for(var M=0;M>>2]=b[M>>>2];return this.sigBytes+=w,this},clamp:function(){var y=this.words,k=this.sigBytes;y[k>>>2]&=4294967295<<32-k%4*8,y.length=r.ceil(k/4)},clone:function(){var y=u.clone.call(this);return y.words=this.words.slice(0),y},random:function(y){for(var k=[],b=0;b>>2]>>>24-w%4*8&255;E.push((S>>>4).toString(16)),E.push((S&15).toString(16))}return E.join("")},parse:function(y){for(var k=y.length,b=[],E=0;E>>3]|=parseInt(y.substr(E,2),16)<<24-E%8*4;return new d.init(b,k/2)}},h=p.Latin1={stringify:function(y){for(var k=y.words,b=y.sigBytes,E=[],w=0;w>>2]>>>24-w%4*8&255;E.push(String.fromCharCode(S))}return E.join("")},parse:function(y){for(var k=y.length,b=[],E=0;E>>2]|=(y.charCodeAt(E)&255)<<24-E%4*8;return new d.init(b,k)}},g=p.Utf8={stringify:function(y){try{return decodeURIComponent(escape(h.stringify(y)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(y){return h.parse(unescape(encodeURIComponent(y)))}},m=c.BufferedBlockAlgorithm=u.extend({reset:function(){this._data=new d.init,this._nDataBytes=0},_append:function(y){typeof y=="string"&&(y=g.parse(y)),this._data.concat(y),this._nDataBytes+=y.sigBytes},_process:function(y){var k,b=this._data,E=b.words,w=b.sigBytes,S=this.blockSize,A=S*4,M=w/A;y?M=r.ceil(M):M=r.max((M|0)-this._minBufferSize,0);var L=M*S,z=r.min(L*4,w);if(L){for(var U=0;U>>7)^(M<<14|M>>>18)^M>>>3,z=d[A-2],U=(z<<15|z>>>17)^(z<<13|z>>>19)^z>>>10;d[A]=L+d[A-7]+U+d[A-16]}var K=b&E^~b&w,T=m&v^m&y^v&y,B=(m<<30|m>>>2)^(m<<19|m>>>13)^(m<<10|m>>>22),C=(b<<26|b>>>6)^(b<<21|b>>>11)^(b<<7|b>>>25),x=S+C+K+u[A]+d[A],_=B+T;S=w,w=E,E=b,b=k+x|0,k=y,y=v,v=m,m=x+_|0}g[0]=g[0]+m|0,g[1]=g[1]+v|0,g[2]=g[2]+y|0,g[3]=g[3]+k|0,g[4]=g[4]+b|0,g[5]=g[5]+E|0,g[6]=g[6]+w|0,g[7]=g[7]+S|0},_doFinalize:function(){var f=this._data,h=f.words,g=this._nDataBytes*8,m=f.sigBytes*8;return h[m>>>5]|=128<<24-m%32,h[(m+64>>>9<<4)+14]=r.floor(g/4294967296),h[(m+64>>>9<<4)+15]=g,f.sigBytes=h.length*4,this._process(),this._hash},clone:function(){var f=a.clone.call(this);return f._hash=this._hash.clone(),f}});i.SHA256=a._createHelper(p),i.HmacSHA256=a._createHmacHelper(p)}(Math),t.SHA256})}($a)),$a.exports}var Va={exports:{}},Yd;function vE(){return Yd||(Yd=1,function(n,e){(function(t,r){n.exports=r(Ko())})(Cn,function(t){(function(){var r=t,i=r.lib,s=i.Base,o=r.enc,a=o.Utf8,l=r.algo;l.HMAC=s.extend({init:function(c,u){c=this._hasher=new c.init,typeof u=="string"&&(u=a.parse(u));var d=c.blockSize,p=d*4;u.sigBytes>p&&(u=c.finalize(u)),u.clamp();for(var f=this._oKey=u.clone(),h=this._iKey=u.clone(),g=f.words,m=h.words,v=0;v>>2]>>>24-f%4*8&255,g=c[f+1>>>2]>>>24-(f+1)%4*8&255,m=c[f+2>>>2]>>>24-(f+2)%4*8&255,v=h<<16|g<<8|m,y=0;y<4&&f+y*.75>>6*(3-y)&63));var k=d.charAt(64);if(k)for(;p.length%4;)p.push(k);return p.join("")},parse:function(l){var c=l.length,u=this._map,d=this._reverseMap;if(!d){d=this._reverseMap=[];for(var p=0;p>>6-f%4*2,m=h|g;d[p>>>2]|=m<<24-p%4*8,p++}return s.create(d,p)}}(),t.enc.Base64})})(Zg);var xE=Zg.exports;const EE=Qr(xE),Zo=()=>"10000000-1000-4000-8000-100000000000".replace(/[018]/g,n=>(n^crypto.getRandomValues(new Uint8Array(1))[0]&15>>n/4).toString(16));class Wg extends Bc{constructor(e,t){super(e,t,"spark"),this.aiModelConfig={version:"v3.1",protocol:"wss",...t.models.spark}}createAiClient(e,t){return new qg(e,{onStart:t.onStart,onStop:t.onStop,onMessage:r=>{var s,o,a,l,c;const i=JSON.parse(r);i.payload&&((o=(s=i.payload.usage)==null?void 0:s.text)!=null&&o.total_tokens&&this.globalConfig.onTokenConsume&&this.globalConfig.onTokenConsume(this.aiModelName,this.aiModelConfig,(l=(a=i.payload.usage)==null?void 0:a.text)==null?void 0:l.total_tokens),(c=i.payload.choices)!=null&&c.text&&i.payload.choices.text[0]&&t.onMessage({...i.payload.choices.text[0],status:i.payload.choices.status}))}})}wrapMessage(e){const t=this.aiModelConfig,r={header:{app_id:t.appId,uid:Zo()},parameter:{chat:{domain:this.getDomain(t),temperature:.5,max_tokens:2048}},payload:{message:{text:[]}}};return r.payload.message.text.push({role:"user",content:e}),JSON.stringify(r)}getDomain(e){switch(e.version){case"v3.5":return"generalv3.5";case"v3.1":return"generalv3";case"v2.1":return"generalv2";default:return"general"}}createAiClientUrl(){const e=this.aiModelConfig,t=new Date().toUTCString().replace("GMT","+0000");let r=`host: spark-api.xf-yun.com `;r+="date: "+t+` -`,r+=`GET /${e.version}/chat HTTP/1.1`;const i=kE(r,e.apiSecret),s=EE.stringify(i),o=`api_key="${e.apiKey}", algorithm="hmac-sha256", headers="host date request-line", signature="${s}"`,a=btoa(o);return`${e.protocol}://spark-api.xf-yun.com/${e.version}/chat?authorization=${a}&date=${encodeURIComponent(t)}&host=spark-api.xf-yun.com`}}class CE{constructor(e,t){V(this,"isStop",!1);V(this,"config");V(this,"fetch");V(this,"isOpen",!1);V(this,"message");V(this,"listener");this.config=e,this.listener=t}start(e){this.message=e,this.onOpen(),this.listener.onStart(this)}stop(){this.fetch&&(this.fetch=void 0,this.isStop||(this.listener.onStop(),this.isStop=!0))}async send(e){if(this.isOpen)try{this.fetch=await fetch(this.config.url,{method:this.config.method,body:e});const t=this.fetch;if(!t.body)throw new Error("response.body is none");const r=({done:o,value:a})=>{if(o){this.onClose();return}return this.onMessage(s.decode(a)),i.read().then(({done:l,value:c})=>r({done:l,value:c}))},i=t.body.getReader(),s=new TextDecoder("utf-8");i.read().then(({done:o,value:a})=>r({done:o,value:a}))}catch{this.onError()}}onOpen(){this.isOpen=!0,this.send(this.message)}onMessage(e){this.listener.onMessage(e)}onClose(){this.isOpen=!1,this.isStop||(this.listener.onStop(),this.isStop=!0)}onError(){this.isOpen=!1,this.isStop||(this.listener.onStop(),this.isStop=!0)}}class SE extends Bc{constructor(e,t){super(e,t,"wenxin"),this.aiModelConfig={...t.models.wenxin}}createAiClient(e,t){return new CE({url:e,method:"POST"},{onStart:t.onStart,onStop:t.onStop,onMessage:r=>{const i=r.match(/data:([\s\S]*)$/);if(!i)return;const s=JSON.parse(i[1]);t.onMessage({status:s.is_end?2:1,role:"",content:s.result,index:s.sentence_id})}})}wrapMessage(e){const t={messages:[],stream:!0};return t.messages.push({role:"user",content:e}),JSON.stringify(t)}createAiClientUrl(){return`https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions_pro?access_token=${this.aiModelConfig.access_token}`}}class _E{constructor(e,t){V(this,"isStop",!1);V(this,"config");V(this,"fetch");V(this,"isOpen",!1);V(this,"message");V(this,"listener");V(this,"ctrl",new AbortController);this.config=e,this.listener=t}start(e){this.message=e,this.onOpen(),this.listener.onStart(this)}stop(){this.fetch&&(this.ctrl.abort(),this.isStop||(this.listener.onStop(),this.isStop=!0))}async send(e){var t;if(this.isOpen)try{const r=await fetch(this.config.url,{method:"POST",body:e});if(!r.ok){this.onError();return}const i=(t=r.body)==null?void 0:t.getReader();if(!i){this.onError();return}const s=new TextDecoder("utf-8");for(;;){let{value:o,done:a}=await i.read();if(a){this.onClose();break}let l=s.decode(o);if(!l)return;const c=l.split(` +`,r+=`GET /${e.version}/chat HTTP/1.1`;const i=kE(r,e.apiSecret),s=EE.stringify(i),o=`api_key="${e.apiKey}", algorithm="hmac-sha256", headers="host date request-line", signature="${s}"`,a=btoa(o);return`${e.protocol}://spark-api.xf-yun.com/${e.version}/chat?authorization=${a}&date=${encodeURIComponent(t)}&host=spark-api.xf-yun.com`}}class CE{constructor(e,t){V(this,"isStop",!1);V(this,"config");V(this,"fetch");V(this,"isOpen",!1);V(this,"message");V(this,"listener");this.config=e,this.listener=t}start(e){this.message=e,this.onOpen(),this.listener.onStart(this)}stop(){this.fetch&&(this.fetch=void 0,this.isStop||(this.listener.onStop(),this.isStop=!0))}async send(e){if(this.isOpen)try{this.fetch=await fetch(this.config.url,{method:this.config.method,body:e});const t=this.fetch;if(!t.body)throw new Error("response.body is none");const r=({done:o,value:a})=>{if(o){this.onClose();return}return this.onMessage(s.decode(a)),i.read().then(({done:l,value:c})=>r({done:l,value:c}))},i=t.body.getReader(),s=new TextDecoder("utf-8");i.read().then(({done:o,value:a})=>r({done:o,value:a}))}catch{this.onError()}}onOpen(){this.isOpen=!0,this.send(this.message)}onMessage(e){this.listener.onMessage(e)}onClose(){this.isOpen=!1,this.isStop||(this.listener.onStop(),this.isStop=!0)}onError(){this.isOpen=!1,this.isStop||(this.listener.onStop(),this.isStop=!0)}}class SE extends Bc{constructor(e,t){super(e,t,"wenxin"),this.aiModelConfig={...t.models.wenxin}}createAiClient(e,t){return new CE({url:e,method:"POST"},{onStart:t.onStart,onStop:t.onStop,onMessage:r=>{const i=r.match(/data:([\s\S]*)$/);if(!i)return;const s=JSON.parse(i[1]);t.onMessage({status:s.is_end?2:1,role:"",content:s.result,index:s.sentence_id})}})}wrapMessage(e){const t={messages:[],stream:!0};return t.messages.push({role:"user",content:e}),JSON.stringify(t)}createAiClientUrl(){return`https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions_pro?access_token=${this.aiModelConfig.access_token}`}}class _E{constructor(e,t){V(this,"isStop",!1);V(this,"config");V(this,"fetch");V(this,"isOpen",!1);V(this,"message");V(this,"listener");V(this,"ctrl",new AbortController);this.config=e,this.listener=t}start(e){this.message=e,this.onOpen(),this.listener.onStart(this)}stop(){this.fetch&&(this.ctrl.abort(),this.isStop||(this.listener.onStop(),this.isStop=!0))}async send(e){var t;if(this.isOpen)try{const r=await fetch(this.config.url,{method:this.config.method||"POST",headers:this.config.headers,body:e});if(!r.ok){this.onError();return}const i=(t=r.body)==null?void 0:t.getReader();if(!i){this.onError();return}const s=new TextDecoder("utf-8");for(;;){let{value:o,done:a}=await i.read();if(a){this.onClose();break}let l=s.decode(o);if(!l)return;const c=l.split(` -`);let u="",d=0;for(let p of c)p.indexOf("data:")==0?(u&&(console.log(u),this.onMessage(u)),u=p.substring(5)):(d!=c.length-1&&(u+=` +`);let u="",d=0;for(let p of c)p.indexOf("data:")==0?(u&&this.onMessage(u),u=p.substring(5)):(d!=c.length-1&&(u+=` -`),u+=p),d++;u&&(console.log(u),this.onMessage(u))}}catch{this.onError()}}onOpen(){this.isOpen=!0,this.send(this.message)}onMessage(e){this.listener.onMessage(e)}onClose(){this.isOpen=!1,this.isStop||(this.listener.onStop(),this.isStop=!0)}onError(){this.isOpen=!1,this.isStop||(this.listener.onStop(),this.isStop=!0)}}class ME extends Bc{constructor(e,t){super(e,t,"custom"),this.aiModelConfig={protocol:"sse",...t.models.custom}}createAiClient(e,t){const r=this.aiModelConfig,i={onStart:t.onStart,onStop:t.onStop,onMessage:s=>{var l;const o=this.aiModelConfig,a=(l=o.messageParser)==null?void 0:l.call(o,s);a&&t.onMessage(a)}};return r.protocol==="sse"?new _E({url:e,method:"post"},i):new qg(e,i)}wrapMessage(e){var r;const t=this.aiModelConfig;return(r=t.messageWrapper)==null?void 0:r.call(t,e)}createAiClientUrl(){var t;const e=this.aiModelConfig;return typeof e.url=="string"?e.url:(t=e.url)==null?void 0:t.call(e)}}class Rn{static init(e,t){var r;if(t&&t.models)for(let i of Object.keys(t.models))switch(i){case"spark":this.set(i,new Wg(e,t));break;case"wenxin":this.set(i,new SE(e,t));break;case"custom":this.set(i,new ME(e,t));break;default:const s=(r=t.modelFactory)==null?void 0:r.create(i,e,t);s&&this.set(i,s)}}static get(e){return(!e||e==="auto")&&(e=Object.keys(this.models)[0]),this.models[e]}static set(e,t){this.models[e]=t}}V(Rn,"models",{});const AE=n=>{let e="";return n.descendants(t=>{t.text&&(e+=t.text)}),e};class ro{constructor(e,t){V(this,"editor");V(this,"from");V(this,"options");this.editor=e,this.from=e.view.state.selection.from,this.options=t||{markdownParseEnable:!0}}onStart(){}onStop(){}onMessage(e){const{state:{tr:t},view:r}=this.editor;if(r.dispatch(t.insertText(e.content)),e.status==2&&this.options.markdownParseEnable){const i=this.editor.state.selection.to,s=this.editor.state.doc.textBetween(this.from,i),{state:{tr:o},view:a}=this.editor,l=this.editor.parseMarkdown(s);if(this.options.useMarkdownTextOnly){const c=AE(l),u=this.editor.schema.text(c);a.dispatch(o.replaceWith(this.from,i,u).scrollIntoView())}else a.dispatch(o.replaceWith(this.from,i,l).scrollIntoView())}this.editor.commands.scrollIntoView()}}const TE=[{icon:'',name:"AI 续写",prompt:"请帮我继续扩展一些这段话的内容",text:"focusBefore",model:"auto"},{icon:'',name:"AI 优化",prompt:"请帮我优化一下这段文字的内容,并返回结果",text:"selected",model:"auto"},{icon:'',name:"AI 校对",prompt:"请帮我找出这段话的错别字,把错别字修改后,并返回结果,不要解释或其他多余的内容",text:"selected",model:"auto"},{icon:'',name:"AI 翻译",prompt:"请帮我把这段内容翻译为英语,直接返回英语结果",text:"selected",model:"auto"}];class NE extends Xr{constructor(){super(),this.dropDivHeight="auto",this.dropDivWith="94px",this.width="36px",this.menuTextWidth="20px"}onCreate(e,t){var r;super.onCreate(e,t),this.menuData=((r=t.ai)==null?void 0:r.menus)||TE}renderTemplate(){this.template=` +`),u+=p),d++;u&&this.onMessage(u)}}catch{this.onError()}}onOpen(){this.isOpen=!0,this.send(this.message)}onMessage(e){this.listener.onMessage(e)}onClose(){this.isOpen=!1,this.isStop||(this.listener.onStop(),this.isStop=!0)}onError(){this.isOpen=!1,this.isStop||(this.listener.onStop(),this.isStop=!0)}}class ME extends Bc{constructor(e,t){super(e,t,"custom"),this.aiModelConfig={protocol:"sse",...t.models.custom}}createAiClient(e,t){var s;const r=this.aiModelConfig,i={onStart:t.onStart,onStop:t.onStop,onMessage:o=>{var c;const a=this.aiModelConfig,l=(c=a.messageParser)==null?void 0:c.call(a,o);l&&t.onMessage(l)}};return r.protocol==="sse"?new _E({url:e,method:"post",headers:(s=r.headers)==null?void 0:s.call(r)},i):new qg(e,i)}wrapMessage(e){var r;const t=this.aiModelConfig;return(r=t.messageWrapper)==null?void 0:r.call(t,e)}createAiClientUrl(){var t;const e=this.aiModelConfig;return typeof e.url=="string"?e.url:(t=e.url)==null?void 0:t.call(e)}}class Rn{static init(e,t){var r;if(t&&t.models)for(let i of Object.keys(t.models))switch(i){case"spark":this.set(i,new Wg(e,t));break;case"wenxin":this.set(i,new SE(e,t));break;case"custom":this.set(i,new ME(e,t));break;default:const s=(r=t.modelFactory)==null?void 0:r.create(i,e,t);s&&this.set(i,s)}}static get(e){return(!e||e==="auto")&&(e=Object.keys(this.models)[0]),this.models[e]}static set(e,t){this.models[e]=t}}V(Rn,"models",{});const AE=n=>{let e="";return n.descendants(t=>{t.text&&(e+=t.text)}),e};class ro{constructor(e,t){V(this,"editor");V(this,"from");V(this,"options");this.editor=e,this.from=e.view.state.selection.from,this.options=t||{markdownParseEnable:!0}}onStart(){}onStop(){}onMessage(e){const{state:{tr:t},view:r}=this.editor;if(r.dispatch(t.insertText(e.content)),e.status==2&&this.options.markdownParseEnable){const i=this.editor.state.selection.to,s=this.editor.state.doc.textBetween(this.from,i),{state:{tr:o},view:a}=this.editor,l=this.editor.parseMarkdown(s);if(this.options.useMarkdownTextOnly){const c=AE(l),u=this.editor.schema.text(c);a.dispatch(o.replaceWith(this.from,i,u).scrollIntoView())}else a.dispatch(o.replaceWith(this.from,i,l).scrollIntoView())}this.editor.commands.scrollIntoView()}}const TE=[{icon:'',name:"AI 续写",prompt:"请帮我继续扩展一些这段话的内容",text:"focusBefore",model:"auto"},{icon:'',name:"AI 优化",prompt:"请帮我优化一下这段文字的内容,并返回结果",text:"selected",model:"auto"},{icon:'',name:"AI 校对",prompt:"请帮我找出这段话的错别字,把错别字修改后,并返回结果,不要解释或其他多余的内容",text:"selected",model:"auto"},{icon:'',name:"AI 翻译",prompt:"请帮我翻译以上内容,在翻译之前,想先判断一下这个内容是不是中文,如果是中文,则翻译问英文,如果是其他语言,则需要翻译为中文,注意,你只需要返回翻译的结果,不需要对此进行任何解释,不需要除了翻译结果以外的其他任何内容。",text:"selected",model:"auto"}];class NE extends Xr{constructor(){super(),this.dropDivHeight="auto",this.dropDivWith="94px",this.width="36px",this.menuTextWidth="20px"}onCreate(e,t){var r;super.onCreate(e,t),this.menuData=((r=t.ai)==null?void 0:r.menus)||TE}renderTemplate(){this.template=`
- `}onCreate(t,r){this.count=t.editor.storage.characterCount.characters(),this.updateCharacters()}onTransaction(t){const r=t.editor.storage.characterCount.characters();r!=this.count&&(this.count=r,this.updateCharacters())}}const HE=/^\s*>\s$/,BE=ce.create({name:"blockquote",addOptions(){return{HTMLAttributes:{}}},content:"block+",group:"block",defining:!0,parseHTML(){return[{tag:"blockquote"}]},renderHTML({HTMLAttributes:n}){return["blockquote",fe(this.options.HTMLAttributes,n),0]},addCommands(){return{setBlockquote:()=>({commands:n})=>n.wrapIn(this.name),toggleBlockquote:()=>({commands:n})=>n.toggleWrap(this.name),unsetBlockquote:()=>({commands:n})=>n.lift(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-b":()=>this.editor.commands.toggleBlockquote()}},addInputRules(){return[ar({find:HE,type:this.type})]}}),PE=/(?:^|\s)((?:\*\*)((?:[^*]+))(?:\*\*))$/,$E=/(?:^|\s)((?:\*\*)((?:[^*]+))(?:\*\*))/g,VE=/(?:^|\s)((?:__)((?:[^__]+))(?:__))$/,FE=/(?:^|\s)((?:__)((?:[^__]+))(?:__))/g,zE=De.create({name:"bold",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"strong"},{tag:"b",getAttrs:n=>n.style.fontWeight!=="normal"&&null},{style:"font-weight",getAttrs:n=>/^(bold(er)?|[5-9]\d{2,})$/.test(n)&&null}]},renderHTML({HTMLAttributes:n}){return["strong",fe(this.options.HTMLAttributes,n),0]},addCommands(){return{setBold:()=>({commands:n})=>n.setMark(this.name),toggleBold:()=>({commands:n})=>n.toggleMark(this.name),unsetBold:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-b":()=>this.editor.commands.toggleBold(),"Mod-B":()=>this.editor.commands.toggleBold()}},addInputRules(){return[or({find:PE,type:this.type}),or({find:VE,type:this.type})]},addPasteRules(){return[Ln({find:$E,type:this.type}),Ln({find:FE,type:this.type})]}}),qE=ce.create({name:"listItem",addOptions(){return{HTMLAttributes:{},bulletListTypeName:"bulletList",orderedListTypeName:"orderedList"}},content:"paragraph block*",defining:!0,parseHTML(){return[{tag:"li"}]},renderHTML({HTMLAttributes:n}){return["li",fe(this.options.HTMLAttributes,n),0]},addKeyboardShortcuts(){return{Enter:()=>this.editor.commands.splitListItem(this.name),Tab:()=>this.editor.commands.sinkListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)}}}),Xd=De.create({name:"textStyle",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"span",getAttrs:n=>n.hasAttribute("style")?{}:!1}]},renderHTML({HTMLAttributes:n}){return["span",fe(this.options.HTMLAttributes,n),0]},addCommands(){return{removeEmptyTextStyle:()=>({state:n,commands:e})=>{const t=Ji(n,this.type);return Object.entries(t).some(([,i])=>!!i)?!0:e.unsetMark(this.name)}}}}),Qd=/^\s*([-+*])\s$/,UE=ce.create({name:"bulletList",addOptions(){return{itemTypeName:"listItem",HTMLAttributes:{},keepMarks:!1,keepAttributes:!1}},group:"block list",content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:"ul"}]},renderHTML({HTMLAttributes:n}){return["ul",fe(this.options.HTMLAttributes,n),0]},addCommands(){return{toggleBulletList:()=>({commands:n,chain:e})=>this.options.keepAttributes?e().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(qE.name,this.editor.getAttributes(Xd.name)).run():n.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{"Mod-Shift-8":()=>this.editor.commands.toggleBulletList()}},addInputRules(){let n=ar({find:Qd,type:this.type});return(this.options.keepMarks||this.options.keepAttributes)&&(n=ar({find:Qd,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:()=>this.editor.getAttributes(Xd.name),editor:this.editor})),[n]}}),KE=/(?:^|\s)((?:`)((?:[^`]+))(?:`))$/,ZE=/(?:^|\s)((?:`)((?:[^`]+))(?:`))/g,WE=De.create({name:"code",addOptions(){return{HTMLAttributes:{}}},excludes:"_",code:!0,exitable:!0,parseHTML(){return[{tag:"code"}]},renderHTML({HTMLAttributes:n}){return["code",fe(this.options.HTMLAttributes,n),0]},addCommands(){return{setCode:()=>({commands:n})=>n.setMark(this.name),toggleCode:()=>({commands:n})=>n.toggleMark(this.name),unsetCode:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-e":()=>this.editor.commands.toggleCode()}},addInputRules(){return[or({find:KE,type:this.type})]},addPasteRules(){return[Ln({find:ZE,type:this.type})]}}),GE=/^```([a-z]+)?[\s\n]$/,jE=/^~~~([a-z]+)?[\s\n]$/,Gg=ce.create({name:"codeBlock",addOptions(){return{languageClassPrefix:"language-",exitOnTripleEnter:!0,exitOnArrowDown:!0,HTMLAttributes:{}}},content:"text*",marks:"",group:"block",code:!0,defining:!0,addAttributes(){return{language:{default:null,parseHTML:n=>{var e;const{languageClassPrefix:t}=this.options,s=[...((e=n.firstElementChild)===null||e===void 0?void 0:e.classList)||[]].filter(o=>o.startsWith(t)).map(o=>o.replace(t,""))[0];return s||null},rendered:!1}}},parseHTML(){return[{tag:"pre",preserveWhitespace:"full"}]},renderHTML({node:n,HTMLAttributes:e}){return["pre",fe(this.options.HTMLAttributes,e),["code",{class:n.attrs.language?this.options.languageClassPrefix+n.attrs.language:null},0]]},addCommands(){return{setCodeBlock:n=>({commands:e})=>e.setNode(this.name,n),toggleCodeBlock:n=>({commands:e})=>e.toggleNode(this.name,"paragraph",n)}},addKeyboardShortcuts(){return{"Mod-Alt-c":()=>this.editor.commands.toggleCodeBlock(),Backspace:()=>{const{empty:n,$anchor:e}=this.editor.state.selection,t=e.pos===1;return!n||e.parent.type.name!==this.name?!1:t||!e.parent.textContent.length?this.editor.commands.clearNodes():!1},Enter:({editor:n})=>{if(!this.options.exitOnTripleEnter)return!1;const{state:e}=n,{selection:t}=e,{$from:r,empty:i}=t;if(!i||r.parent.type!==this.type)return!1;const s=r.parentOffset===r.parent.nodeSize-2,o=r.parent.textContent.endsWith(` + `}onCreate(t,r){this.count=t.editor.storage.characterCount.characters(),this.updateCharacters()}onTransaction(t){const r=t.editor.storage.characterCount.characters();r!=this.count&&(this.count=r,this.updateCharacters())}}const HE=/^\s*>\s$/,BE=ce.create({name:"blockquote",addOptions(){return{HTMLAttributes:{}}},content:"block+",group:"block",defining:!0,parseHTML(){return[{tag:"blockquote"}]},renderHTML({HTMLAttributes:n}){return["blockquote",he(this.options.HTMLAttributes,n),0]},addCommands(){return{setBlockquote:()=>({commands:n})=>n.wrapIn(this.name),toggleBlockquote:()=>({commands:n})=>n.toggleWrap(this.name),unsetBlockquote:()=>({commands:n})=>n.lift(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-b":()=>this.editor.commands.toggleBlockquote()}},addInputRules(){return[ar({find:HE,type:this.type})]}}),PE=/(?:^|\s)((?:\*\*)((?:[^*]+))(?:\*\*))$/,$E=/(?:^|\s)((?:\*\*)((?:[^*]+))(?:\*\*))/g,VE=/(?:^|\s)((?:__)((?:[^__]+))(?:__))$/,FE=/(?:^|\s)((?:__)((?:[^__]+))(?:__))/g,zE=De.create({name:"bold",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"strong"},{tag:"b",getAttrs:n=>n.style.fontWeight!=="normal"&&null},{style:"font-weight",getAttrs:n=>/^(bold(er)?|[5-9]\d{2,})$/.test(n)&&null}]},renderHTML({HTMLAttributes:n}){return["strong",he(this.options.HTMLAttributes,n),0]},addCommands(){return{setBold:()=>({commands:n})=>n.setMark(this.name),toggleBold:()=>({commands:n})=>n.toggleMark(this.name),unsetBold:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-b":()=>this.editor.commands.toggleBold(),"Mod-B":()=>this.editor.commands.toggleBold()}},addInputRules(){return[or({find:PE,type:this.type}),or({find:VE,type:this.type})]},addPasteRules(){return[Ln({find:$E,type:this.type}),Ln({find:FE,type:this.type})]}}),qE=ce.create({name:"listItem",addOptions(){return{HTMLAttributes:{},bulletListTypeName:"bulletList",orderedListTypeName:"orderedList"}},content:"paragraph block*",defining:!0,parseHTML(){return[{tag:"li"}]},renderHTML({HTMLAttributes:n}){return["li",he(this.options.HTMLAttributes,n),0]},addKeyboardShortcuts(){return{Enter:()=>this.editor.commands.splitListItem(this.name),Tab:()=>this.editor.commands.sinkListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)}}}),Xd=De.create({name:"textStyle",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"span",getAttrs:n=>n.hasAttribute("style")?{}:!1}]},renderHTML({HTMLAttributes:n}){return["span",he(this.options.HTMLAttributes,n),0]},addCommands(){return{removeEmptyTextStyle:()=>({state:n,commands:e})=>{const t=Ji(n,this.type);return Object.entries(t).some(([,i])=>!!i)?!0:e.unsetMark(this.name)}}}}),Qd=/^\s*([-+*])\s$/,UE=ce.create({name:"bulletList",addOptions(){return{itemTypeName:"listItem",HTMLAttributes:{},keepMarks:!1,keepAttributes:!1}},group:"block list",content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:"ul"}]},renderHTML({HTMLAttributes:n}){return["ul",he(this.options.HTMLAttributes,n),0]},addCommands(){return{toggleBulletList:()=>({commands:n,chain:e})=>this.options.keepAttributes?e().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(qE.name,this.editor.getAttributes(Xd.name)).run():n.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{"Mod-Shift-8":()=>this.editor.commands.toggleBulletList()}},addInputRules(){let n=ar({find:Qd,type:this.type});return(this.options.keepMarks||this.options.keepAttributes)&&(n=ar({find:Qd,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:()=>this.editor.getAttributes(Xd.name),editor:this.editor})),[n]}}),KE=/(?:^|\s)((?:`)((?:[^`]+))(?:`))$/,ZE=/(?:^|\s)((?:`)((?:[^`]+))(?:`))/g,WE=De.create({name:"code",addOptions(){return{HTMLAttributes:{}}},excludes:"_",code:!0,exitable:!0,parseHTML(){return[{tag:"code"}]},renderHTML({HTMLAttributes:n}){return["code",he(this.options.HTMLAttributes,n),0]},addCommands(){return{setCode:()=>({commands:n})=>n.setMark(this.name),toggleCode:()=>({commands:n})=>n.toggleMark(this.name),unsetCode:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-e":()=>this.editor.commands.toggleCode()}},addInputRules(){return[or({find:KE,type:this.type})]},addPasteRules(){return[Ln({find:ZE,type:this.type})]}}),GE=/^```([a-z]+)?[\s\n]$/,jE=/^~~~([a-z]+)?[\s\n]$/,Gg=ce.create({name:"codeBlock",addOptions(){return{languageClassPrefix:"language-",exitOnTripleEnter:!0,exitOnArrowDown:!0,HTMLAttributes:{}}},content:"text*",marks:"",group:"block",code:!0,defining:!0,addAttributes(){return{language:{default:null,parseHTML:n=>{var e;const{languageClassPrefix:t}=this.options,s=[...((e=n.firstElementChild)===null||e===void 0?void 0:e.classList)||[]].filter(o=>o.startsWith(t)).map(o=>o.replace(t,""))[0];return s||null},rendered:!1}}},parseHTML(){return[{tag:"pre",preserveWhitespace:"full"}]},renderHTML({node:n,HTMLAttributes:e}){return["pre",he(this.options.HTMLAttributes,e),["code",{class:n.attrs.language?this.options.languageClassPrefix+n.attrs.language:null},0]]},addCommands(){return{setCodeBlock:n=>({commands:e})=>e.setNode(this.name,n),toggleCodeBlock:n=>({commands:e})=>e.toggleNode(this.name,"paragraph",n)}},addKeyboardShortcuts(){return{"Mod-Alt-c":()=>this.editor.commands.toggleCodeBlock(),Backspace:()=>{const{empty:n,$anchor:e}=this.editor.state.selection,t=e.pos===1;return!n||e.parent.type.name!==this.name?!1:t||!e.parent.textContent.length?this.editor.commands.clearNodes():!1},Enter:({editor:n})=>{if(!this.options.exitOnTripleEnter)return!1;const{state:e}=n,{selection:t}=e,{$from:r,empty:i}=t;if(!i||r.parent.type!==this.type)return!1;const s=r.parentOffset===r.parent.nodeSize-2,o=r.parent.textContent.endsWith(` `);return!s||!o?!1:n.chain().command(({tr:a})=>(a.delete(r.pos-2,r.pos),!0)).exitCode().run()},ArrowDown:({editor:n})=>{if(!this.options.exitOnArrowDown)return!1;const{state:e}=n,{selection:t,doc:r}=e,{$from:i,empty:s}=t;if(!s||i.parent.type!==this.type||!(i.parentOffset===i.parent.nodeSize-2))return!1;const a=i.after();return a===void 0||r.nodeAt(a)?!1:n.commands.exitCode()}}},addInputRules(){return[Bl({find:GE,type:this.type,getAttributes:n=>({language:n[1]})}),Bl({find:jE,type:this.type,getAttributes:n=>({language:n[1]})})]},addProseMirrorPlugins(){return[new _e({key:new Ae("codeBlockVSCodeHandler"),props:{handlePaste:(n,e)=>{if(!e.clipboardData||this.editor.isActive(this.type.name))return!1;const t=e.clipboardData.getData("text/plain"),r=e.clipboardData.getData("vscode-editor-data"),i=r?JSON.parse(r):void 0,s=i==null?void 0:i.mode;if(!t||!s)return!1;const{tr:o}=n.state;return o.replaceSelectionWith(this.type.create({language:s})),o.setSelection(X.near(o.doc.resolve(Math.max(0,o.selection.from-2)))),o.insertText(t.replace(/\r\n?/g,` -`)),o.setMeta("paste",!0),n.dispatch(o),!0}}})]}}),JE=ce.create({name:"doc",topNode:!0,content:"block+"});function YE(n={}){return new _e({view(e){return new XE(e,n)}})}class XE{constructor(e,t){var r;this.editorView=e,this.cursorPos=null,this.element=null,this.timeout=-1,this.width=(r=t.width)!==null&&r!==void 0?r:1,this.color=t.color===!1?void 0:t.color||"black",this.class=t.class,this.handlers=["dragover","dragend","drop","dragleave"].map(i=>{let s=o=>{this[i](o)};return e.dom.addEventListener(i,s),{name:i,handler:s}})}destroy(){this.handlers.forEach(({name:e,handler:t})=>this.editorView.dom.removeEventListener(e,t))}update(e,t){this.cursorPos!=null&&t.doc!=e.state.doc&&(this.cursorPos>e.state.doc.content.size?this.setCursor(null):this.updateOverlay())}setCursor(e){e!=this.cursorPos&&(this.cursorPos=e,e==null?(this.element.parentNode.removeChild(this.element),this.element=null):this.updateOverlay())}updateOverlay(){let e=this.editorView.state.doc.resolve(this.cursorPos),t=!e.parent.inlineContent,r;if(t){let a=e.nodeBefore,l=e.nodeAfter;if(a||l){let c=this.editorView.nodeDOM(this.cursorPos-(a?a.nodeSize:0));if(c){let u=c.getBoundingClientRect(),d=a?u.bottom:u.top;a&&l&&(d=(d+this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top)/2),r={left:u.left,right:u.right,top:d-this.width/2,bottom:d+this.width/2}}}}if(!r){let a=this.editorView.coordsAtPos(this.cursorPos);r={left:a.left-this.width/2,right:a.left+this.width/2,top:a.top,bottom:a.bottom}}let i=this.editorView.dom.offsetParent;this.element||(this.element=i.appendChild(document.createElement("div")),this.class&&(this.element.className=this.class),this.element.style.cssText="position: absolute; z-index: 50; pointer-events: none;",this.color&&(this.element.style.backgroundColor=this.color)),this.element.classList.toggle("prosemirror-dropcursor-block",t),this.element.classList.toggle("prosemirror-dropcursor-inline",!t);let s,o;if(!i||i==document.body&&getComputedStyle(i).position=="static")s=-pageXOffset,o=-pageYOffset;else{let a=i.getBoundingClientRect();s=a.left-i.scrollLeft,o=a.top-i.scrollTop}this.element.style.left=r.left-s+"px",this.element.style.top=r.top-o+"px",this.element.style.width=r.right-r.left+"px",this.element.style.height=r.bottom-r.top+"px"}scheduleRemoval(e){clearTimeout(this.timeout),this.timeout=setTimeout(()=>this.setCursor(null),e)}dragover(e){if(!this.editorView.editable)return;let t=this.editorView.posAtCoords({left:e.clientX,top:e.clientY}),r=t&&t.inside>=0&&this.editorView.state.doc.nodeAt(t.inside),i=r&&r.type.spec.disableDropCursor,s=typeof i=="function"?i(this.editorView,t,e):i;if(t&&!s){let o=t.pos;if(this.editorView.dragging&&this.editorView.dragging.slice){let a=mh(this.editorView.state.doc,o,this.editorView.dragging.slice);a!=null&&(o=a)}this.setCursor(o),this.scheduleRemoval(5e3)}}dragend(){this.scheduleRemoval(20)}drop(){this.scheduleRemoval(20)}dragleave(e){(e.target==this.editorView.dom||!this.editorView.dom.contains(e.relatedTarget))&&this.setCursor(null)}}const QE=we.create({name:"dropCursor",addOptions(){return{color:"currentColor",width:1,class:void 0}},addProseMirrorPlugins(){return[YE(this.options)]}});class Re extends ne{constructor(e){super(e,e)}map(e,t){let r=e.resolve(t.map(this.head));return Re.valid(r)?new Re(r):ne.near(r)}content(){return F.empty}eq(e){return e instanceof Re&&e.head==this.head}toJSON(){return{type:"gapcursor",pos:this.head}}static fromJSON(e,t){if(typeof t.pos!="number")throw new RangeError("Invalid input for GapCursor.fromJSON");return new Re(e.resolve(t.pos))}getBookmark(){return new Pc(this.anchor)}static valid(e){let t=e.parent;if(t.isTextblock||!e2(e)||!t2(e))return!1;let r=t.type.spec.allowGapCursor;if(r!=null)return r;let i=t.contentMatchAt(e.index()).defaultType;return i&&i.isTextblock}static findGapCursorFrom(e,t,r=!1){e:for(;;){if(!r&&Re.valid(e))return e;let i=e.pos,s=null;for(let o=e.depth;;o--){let a=e.node(o);if(t>0?e.indexAfter(o)0){s=a.child(t>0?e.indexAfter(o):e.index(o)-1);break}else if(o==0)return null;i+=t;let l=e.doc.resolve(i);if(Re.valid(l))return l}for(;;){let o=t>0?s.firstChild:s.lastChild;if(!o){if(s.isAtom&&!s.isText&&!Q.isSelectable(s)){e=e.doc.resolve(i+s.nodeSize*t),r=!1;continue e}break}s=o,i+=t;let a=e.doc.resolve(i);if(Re.valid(a))return a}return null}}}Re.prototype.visible=!1;Re.findFrom=Re.findGapCursorFrom;ne.jsonID("gapcursor",Re);class Pc{constructor(e){this.pos=e}map(e){return new Pc(e.map(this.pos))}resolve(e){let t=e.resolve(this.pos);return Re.valid(t)?new Re(t):ne.near(t)}}function e2(n){for(let e=n.depth;e>=0;e--){let t=n.index(e),r=n.node(e);if(t==0){if(r.type.spec.isolating)return!0;continue}for(let i=r.child(t-1);;i=i.lastChild){if(i.childCount==0&&!i.inlineContent||i.isAtom||i.type.spec.isolating)return!0;if(i.inlineContent)return!1}}return!0}function t2(n){for(let e=n.depth;e>=0;e--){let t=n.indexAfter(e),r=n.node(e);if(t==r.childCount){if(r.type.spec.isolating)return!0;continue}for(let i=r.child(t);;i=i.firstChild){if(i.childCount==0&&!i.inlineContent||i.isAtom||i.type.spec.isolating)return!0;if(i.inlineContent)return!1}}return!0}function n2(){return new _e({props:{decorations:o2,createSelectionBetween(n,e,t){return e.pos==t.pos&&Re.valid(t)?new Re(t):null},handleClick:i2,handleKeyDown:r2,handleDOMEvents:{beforeinput:s2}}})}const r2=vc({ArrowLeft:us("horiz",-1),ArrowRight:us("horiz",1),ArrowUp:us("vert",-1),ArrowDown:us("vert",1)});function us(n,e){const t=n=="vert"?e>0?"down":"up":e>0?"right":"left";return function(r,i,s){let o=r.selection,a=e>0?o.$to:o.$from,l=o.empty;if(o instanceof X){if(!s.endOfTextblock(t)||a.depth==0)return!1;l=!1,a=r.doc.resolve(e>0?a.after():a.before())}let c=Re.findGapCursorFrom(a,e,l);return c?(i&&i(r.tr.setSelection(new Re(c))),!0):!1}}function i2(n,e,t){if(!n||!n.editable)return!1;let r=n.state.doc.resolve(e);if(!Re.valid(r))return!1;let i=n.posAtCoords({left:t.clientX,top:t.clientY});return i&&i.inside>-1&&Q.isSelectable(n.state.doc.nodeAt(i.inside))?!1:(n.dispatch(n.state.tr.setSelection(new Re(r))),!0)}function s2(n,e){if(e.inputType!="insertCompositionText"||!(n.state.selection instanceof Re))return!1;let{$from:t}=n.state.selection,r=t.parent.contentMatchAt(t.index()).findWrapping(n.state.schema.nodes.text);if(!r)return!1;let i=R.empty;for(let o=r.length-1;o>=0;o--)i=R.from(r[o].createAndFill(null,i));let s=n.state.tr.replace(t.pos,t.pos,new F(i,0,0));return s.setSelection(X.near(s.doc.resolve(t.pos+1))),n.dispatch(s),!1}function o2(n){if(!(n.selection instanceof Re))return null;let e=document.createElement("div");return e.className="ProseMirror-gapcursor",Ee.create(n.doc,[Be.widget(n.selection.head,e,{key:"gapcursor"})])}const a2=we.create({name:"gapCursor",addProseMirrorPlugins(){return[n2()]},extendNodeSchema(n){var e;const t={name:n.name,options:n.options,storage:n.storage};return{allowGapCursor:(e=oe(W(n,"allowGapCursor",t)))!==null&&e!==void 0?e:null}}}),l2=ce.create({name:"hardBreak",addOptions(){return{keepMarks:!0,HTMLAttributes:{}}},inline:!0,group:"inline",selectable:!1,parseHTML(){return[{tag:"br"}]},renderHTML({HTMLAttributes:n}){return["br",fe(this.options.HTMLAttributes,n)]},renderText(){return` -`},addCommands(){return{setHardBreak:()=>({commands:n,chain:e,state:t,editor:r})=>n.first([()=>n.exitCode(),()=>n.command(()=>{const{selection:i,storedMarks:s}=t;if(i.$from.parent.type.spec.isolating)return!1;const{keepMarks:o}=this.options,{splittableMarks:a}=r.extensionManager,l=s||i.$to.parentOffset&&i.$from.marks();return e().insertContent({type:this.name}).command(({tr:c,dispatch:u})=>{if(u&&l&&o){const d=l.filter(p=>a.includes(p.type.name));c.ensureMarks(d)}return!0}).run()})])}},addKeyboardShortcuts(){return{"Mod-Enter":()=>this.editor.commands.setHardBreak(),"Shift-Enter":()=>this.editor.commands.setHardBreak()}}}),jg=ce.create({name:"heading",addOptions(){return{levels:[1,2,3,4,5,6],HTMLAttributes:{}}},content:"inline*",group:"block",defining:!0,addAttributes(){return{level:{default:1,rendered:!1}}},parseHTML(){return this.options.levels.map(n=>({tag:`h${n}`,attrs:{level:n}}))},renderHTML({node:n,HTMLAttributes:e}){return[`h${this.options.levels.includes(n.attrs.level)?n.attrs.level:this.options.levels[0]}`,fe(this.options.HTMLAttributes,e),0]},addCommands(){return{setHeading:n=>({commands:e})=>this.options.levels.includes(n.level)?e.setNode(this.name,n):!1,toggleHeading:n=>({commands:e})=>this.options.levels.includes(n.level)?e.toggleNode(this.name,"paragraph",n):!1}},addKeyboardShortcuts(){return this.options.levels.reduce((n,e)=>({...n,[`Mod-Alt-${e}`]:()=>this.editor.commands.toggleHeading({level:e})}),{})},addInputRules(){return this.options.levels.map(n=>Bl({find:new RegExp(`^(#{1,${n}})\\s$`),type:this.type,getAttributes:{level:n}}))}});var io=200,Ve=function(){};Ve.prototype.append=function(e){return e.length?(e=Ve.from(e),!this.length&&e||e.length=t?Ve.empty:this.sliceInner(Math.max(0,e),Math.min(this.length,t))};Ve.prototype.get=function(e){if(!(e<0||e>=this.length))return this.getInner(e)};Ve.prototype.forEach=function(e,t,r){t===void 0&&(t=0),r===void 0&&(r=this.length),t<=r?this.forEachInner(e,t,r,0):this.forEachInvertedInner(e,t,r,0)};Ve.prototype.map=function(e,t,r){t===void 0&&(t=0),r===void 0&&(r=this.length);var i=[];return this.forEach(function(s,o){return i.push(e(s,o))},t,r),i};Ve.from=function(e){return e instanceof Ve?e:e&&e.length?new Jg(e):Ve.empty};var Jg=function(n){function e(r){n.call(this),this.values=r}n&&(e.__proto__=n),e.prototype=Object.create(n&&n.prototype),e.prototype.constructor=e;var t={length:{configurable:!0},depth:{configurable:!0}};return e.prototype.flatten=function(){return this.values},e.prototype.sliceInner=function(i,s){return i==0&&s==this.length?this:new e(this.values.slice(i,s))},e.prototype.getInner=function(i){return this.values[i]},e.prototype.forEachInner=function(i,s,o,a){for(var l=s;l=o;l--)if(i(this.values[l],a+l)===!1)return!1},e.prototype.leafAppend=function(i){if(this.length+i.length<=io)return new e(this.values.concat(i.flatten()))},e.prototype.leafPrepend=function(i){if(this.length+i.length<=io)return new e(i.flatten().concat(this.values))},t.length.get=function(){return this.values.length},t.depth.get=function(){return 0},Object.defineProperties(e.prototype,t),e}(Ve);Ve.empty=new Jg([]);var c2=function(n){function e(t,r){n.call(this),this.left=t,this.right=r,this.length=t.length+r.length,this.depth=Math.max(t.depth,r.depth)+1}return n&&(e.__proto__=n),e.prototype=Object.create(n&&n.prototype),e.prototype.constructor=e,e.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},e.prototype.getInner=function(r){return ra&&this.right.forEachInner(r,Math.max(i-a,0),Math.min(this.length,s)-a,o+a)===!1)return!1},e.prototype.forEachInvertedInner=function(r,i,s,o){var a=this.left.length;if(i>a&&this.right.forEachInvertedInner(r,i-a,Math.max(s,a)-a,o+a)===!1||s=s?this.right.slice(r-s,i-s):this.left.slice(r,s).append(this.right.slice(0,i-s))},e.prototype.leafAppend=function(r){var i=this.right.leafAppend(r);if(i)return new e(this.left,i)},e.prototype.leafPrepend=function(r){var i=this.left.leafPrepend(r);if(i)return new e(i,this.right)},e.prototype.appendInner=function(r){return this.left.depth>=Math.max(this.right.depth,r.depth)+1?new e(this.left,new e(this.right,r)):new e(this,r)},e}(Ve);const u2=500;class Rt{constructor(e,t){this.items=e,this.eventCount=t}popEvent(e,t){if(this.eventCount==0)return null;let r=this.items.length;for(;;r--)if(this.items.get(r-1).selection){--r;break}let i,s;t&&(i=this.remapping(r,this.items.length),s=i.maps.length);let o=e.tr,a,l,c=[],u=[];return this.items.forEach((d,p)=>{if(!d.step){i||(i=this.remapping(r,p+1),s=i.maps.length),s--,u.push(d);return}if(i){u.push(new Bt(d.map));let f=d.step.map(i.slice(s)),h;f&&o.maybeStep(f).doc&&(h=o.mapping.maps[o.mapping.maps.length-1],c.push(new Bt(h,void 0,void 0,c.length+u.length))),s--,h&&i.appendMap(h,s)}else o.maybeStep(d.step);if(d.selection)return a=i?d.selection.map(i.slice(s)):d.selection,l=new Rt(this.items.slice(0,r).append(u.reverse().concat(c)),this.eventCount-1),!1},this.items.length,0),{remaining:l,transform:o,selection:a}}addTransform(e,t,r,i){let s=[],o=this.eventCount,a=this.items,l=!i&&a.length?a.get(a.length-1):null;for(let u=0;up2&&(a=d2(a,c),o-=c),new Rt(a.append(s),o)}remapping(e,t){let r=new Ir;return this.items.forEach((i,s)=>{let o=i.mirrorOffset!=null&&s-i.mirrorOffset>=e?r.maps.length-i.mirrorOffset:void 0;r.appendMap(i.map,o)},e,t),r}addMaps(e){return this.eventCount==0?this:new Rt(this.items.append(e.map(t=>new Bt(t))),this.eventCount)}rebased(e,t){if(!this.eventCount)return this;let r=[],i=Math.max(0,this.items.length-t),s=e.mapping,o=e.steps.length,a=this.eventCount;this.items.forEach(p=>{p.selection&&a--},i);let l=t;this.items.forEach(p=>{let f=s.getMirror(--l);if(f==null)return;o=Math.min(o,f);let h=s.maps[f];if(p.step){let g=e.steps[f].invert(e.docs[f]),m=p.selection&&p.selection.map(s.slice(l+1,f));m&&a++,r.push(new Bt(h,g,m))}else r.push(new Bt(h))},i);let c=[];for(let p=t;pu2&&(d=d.compress(this.items.length-r.length)),d}emptyItemCount(){let e=0;return this.items.forEach(t=>{t.step||e++}),e}compress(e=this.items.length){let t=this.remapping(0,e),r=t.maps.length,i=[],s=0;return this.items.forEach((o,a)=>{if(a>=e)i.push(o),o.selection&&s++;else if(o.step){let l=o.step.map(t.slice(r)),c=l&&l.getMap();if(r--,c&&t.appendMap(c,r),l){let u=o.selection&&o.selection.map(t.slice(r));u&&s++;let d=new Bt(c.invert(),l,u),p,f=i.length-1;(p=i.length&&i[f].merge(d))?i[f]=p:i.push(d)}}else o.map&&r--},this.items.length,0),new Rt(Ve.from(i.reverse()),s)}}Rt.empty=new Rt(Ve.empty,0);function d2(n,e){let t;return n.forEach((r,i)=>{if(r.selection&&e--==0)return t=i,!1}),n.slice(t)}class Bt{constructor(e,t,r,i){this.map=e,this.step=t,this.selection=r,this.mirrorOffset=i}merge(e){if(this.step&&e.step&&!e.selection){let t=e.step.merge(this.step);if(t)return new Bt(t.getMap().invert(),t,this.selection)}}}class gn{constructor(e,t,r,i,s){this.done=e,this.undone=t,this.prevRanges=r,this.prevTime=i,this.prevComposition=s}}const p2=20;function f2(n,e,t,r){let i=t.getMeta(Nn),s;if(i)return i.historyState;t.getMeta(g2)&&(n=new gn(n.done,n.undone,null,0,-1));let o=t.getMeta("appendedTransaction");if(t.steps.length==0)return n;if(o&&o.getMeta(Nn))return o.getMeta(Nn).redo?new gn(n.done.addTransform(t,void 0,r,Ls(e)),n.undone,ep(t.mapping.maps[t.steps.length-1]),n.prevTime,n.prevComposition):new gn(n.done,n.undone.addTransform(t,void 0,r,Ls(e)),null,n.prevTime,n.prevComposition);if(t.getMeta("addToHistory")!==!1&&!(o&&o.getMeta("addToHistory")===!1)){let a=t.getMeta("composition"),l=n.prevTime==0||!o&&n.prevComposition!=a&&(n.prevTime<(t.time||0)-r.newGroupDelay||!h2(t,n.prevRanges)),c=o?Fa(n.prevRanges,t.mapping):ep(t.mapping.maps[t.steps.length-1]);return new gn(n.done.addTransform(t,l?e.selection.getBookmark():void 0,r,Ls(e)),Rt.empty,c,t.time,a??n.prevComposition)}else return(s=t.getMeta("rebased"))?new gn(n.done.rebased(t,s),n.undone.rebased(t,s),Fa(n.prevRanges,t.mapping),n.prevTime,n.prevComposition):new gn(n.done.addMaps(t.mapping.maps),n.undone.addMaps(t.mapping.maps),Fa(n.prevRanges,t.mapping),n.prevTime,n.prevComposition)}function h2(n,e){if(!e)return!1;if(!n.docChanged)return!0;let t=!1;return n.mapping.maps[0].forEach((r,i)=>{for(let s=0;s=e[s]&&(t=!0)}),t}function ep(n){let e=[];return n.forEach((t,r,i,s)=>e.push(i,s)),e}function Fa(n,e){if(!n)return null;let t=[];for(let r=0;r{let t=Nn.getState(n);return!t||t.done.eventCount==0?!1:(e&&Yg(t,n,e,!1),!0)},Qg=(n,e)=>{let t=Nn.getState(n);return!t||t.undone.eventCount==0?!1:(e&&Yg(t,n,e,!0),!0)},b2=we.create({name:"history",addOptions(){return{depth:100,newGroupDelay:500}},addCommands(){return{undo:()=>({state:n,dispatch:e})=>Xg(n,e),redo:()=>({state:n,dispatch:e})=>Qg(n,e)}},addProseMirrorPlugins(){return[m2(this.options)]},addKeyboardShortcuts(){return{"Mod-z":()=>this.editor.commands.undo(),"Mod-Z":()=>this.editor.commands.undo(),"Mod-y":()=>this.editor.commands.redo(),"Mod-Y":()=>this.editor.commands.redo(),"Shift-Mod-z":()=>this.editor.commands.redo(),"Shift-Mod-Z":()=>this.editor.commands.redo(),"Mod-я":()=>this.editor.commands.undo(),"Shift-Mod-я":()=>this.editor.commands.redo()}}}),y2=ce.create({name:"horizontalRule",addOptions(){return{HTMLAttributes:{}}},group:"block",parseHTML(){return[{tag:"hr"}]},renderHTML({HTMLAttributes:n}){return["hr",fe(this.options.HTMLAttributes,n)]},addCommands(){return{setHorizontalRule:()=>({chain:n,state:e})=>{const{$to:t}=e.selection,r=n();return t.parentOffset===0?r.insertContentAt(Math.max(t.pos-2,0),{type:this.name}):r.insertContent({type:this.name}),r.command(({tr:i,dispatch:s})=>{var o;if(s){const{$to:a}=i.selection,l=a.end();if(a.nodeAfter)a.nodeAfter.isTextblock?i.setSelection(X.create(i.doc,a.pos+1)):a.nodeAfter.isBlock?i.setSelection(Q.create(i.doc,a.pos)):i.setSelection(X.create(i.doc,a.pos));else{const c=(o=a.parent.type.contentMatch.defaultType)===null||o===void 0?void 0:o.create();c&&(i.insert(l,c),i.setSelection(X.create(i.doc,l+1)))}i.scrollIntoView()}return!0}).run()}}},addInputRules(){return[Mc({find:/^(?:---|—-|___\s|\*\*\*\s)$/,type:this.type})]}}),v2=/(?:^|\s)((?:\*)((?:[^*]+))(?:\*))$/,w2=/(?:^|\s)((?:\*)((?:[^*]+))(?:\*))/g,k2=/(?:^|\s)((?:_)((?:[^_]+))(?:_))$/,x2=/(?:^|\s)((?:_)((?:[^_]+))(?:_))/g,E2=De.create({name:"italic",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"em"},{tag:"i",getAttrs:n=>n.style.fontStyle!=="normal"&&null},{style:"font-style=italic"}]},renderHTML({HTMLAttributes:n}){return["em",fe(this.options.HTMLAttributes,n),0]},addCommands(){return{setItalic:()=>({commands:n})=>n.setMark(this.name),toggleItalic:()=>({commands:n})=>n.toggleMark(this.name),unsetItalic:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-i":()=>this.editor.commands.toggleItalic(),"Mod-I":()=>this.editor.commands.toggleItalic()}},addInputRules(){return[or({find:v2,type:this.type}),or({find:k2,type:this.type})]},addPasteRules(){return[Ln({find:w2,type:this.type}),Ln({find:x2,type:this.type})]}}),C2=ce.create({name:"listItem",addOptions(){return{HTMLAttributes:{},bulletListTypeName:"bulletList",orderedListTypeName:"orderedList"}},content:"paragraph block*",defining:!0,parseHTML(){return[{tag:"li"}]},renderHTML({HTMLAttributes:n}){return["li",fe(this.options.HTMLAttributes,n),0]},addKeyboardShortcuts(){return{Enter:()=>this.editor.commands.splitListItem(this.name),Tab:()=>this.editor.commands.sinkListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)}}}),S2=ce.create({name:"listItem",addOptions(){return{HTMLAttributes:{},bulletListTypeName:"bulletList",orderedListTypeName:"orderedList"}},content:"paragraph block*",defining:!0,parseHTML(){return[{tag:"li"}]},renderHTML({HTMLAttributes:n}){return["li",fe(this.options.HTMLAttributes,n),0]},addKeyboardShortcuts(){return{Enter:()=>this.editor.commands.splitListItem(this.name),Tab:()=>this.editor.commands.sinkListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)}}}),np=De.create({name:"textStyle",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"span",getAttrs:n=>n.hasAttribute("style")?{}:!1}]},renderHTML({HTMLAttributes:n}){return["span",fe(this.options.HTMLAttributes,n),0]},addCommands(){return{removeEmptyTextStyle:()=>({state:n,commands:e})=>{const t=Ji(n,this.type);return Object.entries(t).some(([,i])=>!!i)?!0:e.unsetMark(this.name)}}}}),rp=/^(\d+)\.\s$/,_2=ce.create({name:"orderedList",addOptions(){return{itemTypeName:"listItem",HTMLAttributes:{},keepMarks:!1,keepAttributes:!1}},group:"block list",content(){return`${this.options.itemTypeName}+`},addAttributes(){return{start:{default:1,parseHTML:n=>n.hasAttribute("start")?parseInt(n.getAttribute("start")||"",10):1}}},parseHTML(){return[{tag:"ol"}]},renderHTML({HTMLAttributes:n}){const{start:e,...t}=n;return e===1?["ol",fe(this.options.HTMLAttributes,t),0]:["ol",fe(this.options.HTMLAttributes,n),0]},addCommands(){return{toggleOrderedList:()=>({commands:n,chain:e})=>this.options.keepAttributes?e().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(S2.name,this.editor.getAttributes(np.name)).run():n.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{"Mod-Shift-7":()=>this.editor.commands.toggleOrderedList()}},addInputRules(){let n=ar({find:rp,type:this.type,getAttributes:e=>({start:+e[1]}),joinPredicate:(e,t)=>t.childCount+t.attrs.start===+e[1]});return(this.options.keepMarks||this.options.keepAttributes)&&(n=ar({find:rp,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:e=>({start:+e[1],...this.editor.getAttributes(np.name)}),joinPredicate:(e,t)=>t.childCount+t.attrs.start===+e[1],editor:this.editor})),[n]}}),M2=ce.create({name:"paragraph",priority:1e3,addOptions(){return{HTMLAttributes:{}}},group:"block",content:"inline*",parseHTML(){return[{tag:"p"}]},renderHTML({HTMLAttributes:n}){return["p",fe(this.options.HTMLAttributes,n),0]},addCommands(){return{setParagraph:()=>({commands:n})=>n.setNode(this.name)}},addKeyboardShortcuts(){return{"Mod-Alt-0":()=>this.editor.commands.setParagraph()}}}),A2=/(?:^|\s)((?:~~)((?:[^~]+))(?:~~))$/,T2=/(?:^|\s)((?:~~)((?:[^~]+))(?:~~))/g,N2=De.create({name:"strike",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"s"},{tag:"del"},{tag:"strike"},{style:"text-decoration",consuming:!1,getAttrs:n=>n.includes("line-through")?{}:!1}]},renderHTML({HTMLAttributes:n}){return["s",fe(this.options.HTMLAttributes,n),0]},addCommands(){return{setStrike:()=>({commands:n})=>n.setMark(this.name),toggleStrike:()=>({commands:n})=>n.toggleMark(this.name),unsetStrike:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){const n={};return Cc()?n["Mod-Shift-s"]=()=>this.editor.commands.toggleStrike():n["Ctrl-Shift-s"]=()=>this.editor.commands.toggleStrike(),n},addInputRules(){return[or({find:A2,type:this.type})]},addPasteRules(){return[Ln({find:T2,type:this.type})]}}),O2=ce.create({name:"text",group:"inline"}),ip=we.create({name:"starterKit",addExtensions(){var n,e,t,r,i,s,o,a,l,c,u,d,p,f,h,g,m,v;const y=[];return this.options.blockquote!==!1&&y.push(BE.configure((n=this.options)===null||n===void 0?void 0:n.blockquote)),this.options.bold!==!1&&y.push(zE.configure((e=this.options)===null||e===void 0?void 0:e.bold)),this.options.bulletList!==!1&&y.push(UE.configure((t=this.options)===null||t===void 0?void 0:t.bulletList)),this.options.code!==!1&&y.push(WE.configure((r=this.options)===null||r===void 0?void 0:r.code)),this.options.codeBlock!==!1&&y.push(Gg.configure((i=this.options)===null||i===void 0?void 0:i.codeBlock)),this.options.document!==!1&&y.push(JE.configure((s=this.options)===null||s===void 0?void 0:s.document)),this.options.dropcursor!==!1&&y.push(QE.configure((o=this.options)===null||o===void 0?void 0:o.dropcursor)),this.options.gapcursor!==!1&&y.push(a2.configure((a=this.options)===null||a===void 0?void 0:a.gapcursor)),this.options.hardBreak!==!1&&y.push(l2.configure((l=this.options)===null||l===void 0?void 0:l.hardBreak)),this.options.heading!==!1&&y.push(jg.configure((c=this.options)===null||c===void 0?void 0:c.heading)),this.options.history!==!1&&y.push(b2.configure((u=this.options)===null||u===void 0?void 0:u.history)),this.options.horizontalRule!==!1&&y.push(y2.configure((d=this.options)===null||d===void 0?void 0:d.horizontalRule)),this.options.italic!==!1&&y.push(E2.configure((p=this.options)===null||p===void 0?void 0:p.italic)),this.options.listItem!==!1&&y.push(C2.configure((f=this.options)===null||f===void 0?void 0:f.listItem)),this.options.orderedList!==!1&&y.push(_2.configure((h=this.options)===null||h===void 0?void 0:h.orderedList)),this.options.paragraph!==!1&&y.push(M2.configure((g=this.options)===null||g===void 0?void 0:g.paragraph)),this.options.strike!==!1&&y.push(N2.configure((m=this.options)===null||m===void 0?void 0:m.strike)),this.options.text!==!1&&y.push(O2.configure((v=this.options)===null||v===void 0?void 0:v.text)),y}}),L2=De.create({name:"underline",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"u"},{style:"text-decoration",consuming:!1,getAttrs:n=>n.includes("underline")?{}:!1}]},renderHTML({HTMLAttributes:n}){return["u",fe(this.options.HTMLAttributes,n),0]},addCommands(){return{setUnderline:()=>({commands:n})=>n.setMark(this.name),toggleUnderline:()=>({commands:n})=>n.toggleMark(this.name),unsetUnderline:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-u":()=>this.editor.commands.toggleUnderline(),"Mod-U":()=>this.editor.commands.toggleUnderline()}}}),R2=De.create({name:"textStyle",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"span",getAttrs:n=>n.hasAttribute("style")?{}:!1}]},renderHTML({HTMLAttributes:n}){return["span",fe(this.options.HTMLAttributes,n),0]},addCommands(){return{removeEmptyTextStyle:()=>({state:n,commands:e})=>{const t=Ji(n,this.type);return Object.entries(t).some(([,i])=>!!i)?!0:e.unsetMark(this.name)}}}}),D2=we.create({name:"fontFamily",addOptions(){return{types:["textStyle"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{fontFamily:{default:null,parseHTML:n=>{var e;return(e=n.style.fontFamily)===null||e===void 0?void 0:e.replace(/['"]+/g,"")},renderHTML:n=>n.fontFamily?{style:`font-family: ${n.fontFamily}`}:{}}}}]},addCommands(){return{setFontFamily:n=>({chain:e})=>e().setMark("textStyle",{fontFamily:n}).run(),unsetFontFamily:()=>({chain:n})=>n().setMark("textStyle",{fontFamily:null}).removeEmptyTextStyle().run()}}}),em=n=>{const e=document.createElement("div");return e.classList.add("aie-loader-placeholder"),e.innerHTML=` +`)),o.setMeta("paste",!0),n.dispatch(o),!0}}})]}}),JE=ce.create({name:"doc",topNode:!0,content:"block+"});function YE(n={}){return new _e({view(e){return new XE(e,n)}})}class XE{constructor(e,t){var r;this.editorView=e,this.cursorPos=null,this.element=null,this.timeout=-1,this.width=(r=t.width)!==null&&r!==void 0?r:1,this.color=t.color===!1?void 0:t.color||"black",this.class=t.class,this.handlers=["dragover","dragend","drop","dragleave"].map(i=>{let s=o=>{this[i](o)};return e.dom.addEventListener(i,s),{name:i,handler:s}})}destroy(){this.handlers.forEach(({name:e,handler:t})=>this.editorView.dom.removeEventListener(e,t))}update(e,t){this.cursorPos!=null&&t.doc!=e.state.doc&&(this.cursorPos>e.state.doc.content.size?this.setCursor(null):this.updateOverlay())}setCursor(e){e!=this.cursorPos&&(this.cursorPos=e,e==null?(this.element.parentNode.removeChild(this.element),this.element=null):this.updateOverlay())}updateOverlay(){let e=this.editorView.state.doc.resolve(this.cursorPos),t=!e.parent.inlineContent,r;if(t){let a=e.nodeBefore,l=e.nodeAfter;if(a||l){let c=this.editorView.nodeDOM(this.cursorPos-(a?a.nodeSize:0));if(c){let u=c.getBoundingClientRect(),d=a?u.bottom:u.top;a&&l&&(d=(d+this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top)/2),r={left:u.left,right:u.right,top:d-this.width/2,bottom:d+this.width/2}}}}if(!r){let a=this.editorView.coordsAtPos(this.cursorPos);r={left:a.left-this.width/2,right:a.left+this.width/2,top:a.top,bottom:a.bottom}}let i=this.editorView.dom.offsetParent;this.element||(this.element=i.appendChild(document.createElement("div")),this.class&&(this.element.className=this.class),this.element.style.cssText="position: absolute; z-index: 50; pointer-events: none;",this.color&&(this.element.style.backgroundColor=this.color)),this.element.classList.toggle("prosemirror-dropcursor-block",t),this.element.classList.toggle("prosemirror-dropcursor-inline",!t);let s,o;if(!i||i==document.body&&getComputedStyle(i).position=="static")s=-pageXOffset,o=-pageYOffset;else{let a=i.getBoundingClientRect();s=a.left-i.scrollLeft,o=a.top-i.scrollTop}this.element.style.left=r.left-s+"px",this.element.style.top=r.top-o+"px",this.element.style.width=r.right-r.left+"px",this.element.style.height=r.bottom-r.top+"px"}scheduleRemoval(e){clearTimeout(this.timeout),this.timeout=setTimeout(()=>this.setCursor(null),e)}dragover(e){if(!this.editorView.editable)return;let t=this.editorView.posAtCoords({left:e.clientX,top:e.clientY}),r=t&&t.inside>=0&&this.editorView.state.doc.nodeAt(t.inside),i=r&&r.type.spec.disableDropCursor,s=typeof i=="function"?i(this.editorView,t,e):i;if(t&&!s){let o=t.pos;if(this.editorView.dragging&&this.editorView.dragging.slice){let a=mh(this.editorView.state.doc,o,this.editorView.dragging.slice);a!=null&&(o=a)}this.setCursor(o),this.scheduleRemoval(5e3)}}dragend(){this.scheduleRemoval(20)}drop(){this.scheduleRemoval(20)}dragleave(e){(e.target==this.editorView.dom||!this.editorView.dom.contains(e.relatedTarget))&&this.setCursor(null)}}const QE=we.create({name:"dropCursor",addOptions(){return{color:"currentColor",width:1,class:void 0}},addProseMirrorPlugins(){return[YE(this.options)]}});class Re extends ne{constructor(e){super(e,e)}map(e,t){let r=e.resolve(t.map(this.head));return Re.valid(r)?new Re(r):ne.near(r)}content(){return F.empty}eq(e){return e instanceof Re&&e.head==this.head}toJSON(){return{type:"gapcursor",pos:this.head}}static fromJSON(e,t){if(typeof t.pos!="number")throw new RangeError("Invalid input for GapCursor.fromJSON");return new Re(e.resolve(t.pos))}getBookmark(){return new Pc(this.anchor)}static valid(e){let t=e.parent;if(t.isTextblock||!e2(e)||!t2(e))return!1;let r=t.type.spec.allowGapCursor;if(r!=null)return r;let i=t.contentMatchAt(e.index()).defaultType;return i&&i.isTextblock}static findGapCursorFrom(e,t,r=!1){e:for(;;){if(!r&&Re.valid(e))return e;let i=e.pos,s=null;for(let o=e.depth;;o--){let a=e.node(o);if(t>0?e.indexAfter(o)0){s=a.child(t>0?e.indexAfter(o):e.index(o)-1);break}else if(o==0)return null;i+=t;let l=e.doc.resolve(i);if(Re.valid(l))return l}for(;;){let o=t>0?s.firstChild:s.lastChild;if(!o){if(s.isAtom&&!s.isText&&!Q.isSelectable(s)){e=e.doc.resolve(i+s.nodeSize*t),r=!1;continue e}break}s=o,i+=t;let a=e.doc.resolve(i);if(Re.valid(a))return a}return null}}}Re.prototype.visible=!1;Re.findFrom=Re.findGapCursorFrom;ne.jsonID("gapcursor",Re);class Pc{constructor(e){this.pos=e}map(e){return new Pc(e.map(this.pos))}resolve(e){let t=e.resolve(this.pos);return Re.valid(t)?new Re(t):ne.near(t)}}function e2(n){for(let e=n.depth;e>=0;e--){let t=n.index(e),r=n.node(e);if(t==0){if(r.type.spec.isolating)return!0;continue}for(let i=r.child(t-1);;i=i.lastChild){if(i.childCount==0&&!i.inlineContent||i.isAtom||i.type.spec.isolating)return!0;if(i.inlineContent)return!1}}return!0}function t2(n){for(let e=n.depth;e>=0;e--){let t=n.indexAfter(e),r=n.node(e);if(t==r.childCount){if(r.type.spec.isolating)return!0;continue}for(let i=r.child(t);;i=i.firstChild){if(i.childCount==0&&!i.inlineContent||i.isAtom||i.type.spec.isolating)return!0;if(i.inlineContent)return!1}}return!0}function n2(){return new _e({props:{decorations:o2,createSelectionBetween(n,e,t){return e.pos==t.pos&&Re.valid(t)?new Re(t):null},handleClick:i2,handleKeyDown:r2,handleDOMEvents:{beforeinput:s2}}})}const r2=vc({ArrowLeft:us("horiz",-1),ArrowRight:us("horiz",1),ArrowUp:us("vert",-1),ArrowDown:us("vert",1)});function us(n,e){const t=n=="vert"?e>0?"down":"up":e>0?"right":"left";return function(r,i,s){let o=r.selection,a=e>0?o.$to:o.$from,l=o.empty;if(o instanceof X){if(!s.endOfTextblock(t)||a.depth==0)return!1;l=!1,a=r.doc.resolve(e>0?a.after():a.before())}let c=Re.findGapCursorFrom(a,e,l);return c?(i&&i(r.tr.setSelection(new Re(c))),!0):!1}}function i2(n,e,t){if(!n||!n.editable)return!1;let r=n.state.doc.resolve(e);if(!Re.valid(r))return!1;let i=n.posAtCoords({left:t.clientX,top:t.clientY});return i&&i.inside>-1&&Q.isSelectable(n.state.doc.nodeAt(i.inside))?!1:(n.dispatch(n.state.tr.setSelection(new Re(r))),!0)}function s2(n,e){if(e.inputType!="insertCompositionText"||!(n.state.selection instanceof Re))return!1;let{$from:t}=n.state.selection,r=t.parent.contentMatchAt(t.index()).findWrapping(n.state.schema.nodes.text);if(!r)return!1;let i=R.empty;for(let o=r.length-1;o>=0;o--)i=R.from(r[o].createAndFill(null,i));let s=n.state.tr.replace(t.pos,t.pos,new F(i,0,0));return s.setSelection(X.near(s.doc.resolve(t.pos+1))),n.dispatch(s),!1}function o2(n){if(!(n.selection instanceof Re))return null;let e=document.createElement("div");return e.className="ProseMirror-gapcursor",Ee.create(n.doc,[Be.widget(n.selection.head,e,{key:"gapcursor"})])}const a2=we.create({name:"gapCursor",addProseMirrorPlugins(){return[n2()]},extendNodeSchema(n){var e;const t={name:n.name,options:n.options,storage:n.storage};return{allowGapCursor:(e=oe(W(n,"allowGapCursor",t)))!==null&&e!==void 0?e:null}}}),l2=ce.create({name:"hardBreak",addOptions(){return{keepMarks:!0,HTMLAttributes:{}}},inline:!0,group:"inline",selectable:!1,parseHTML(){return[{tag:"br"}]},renderHTML({HTMLAttributes:n}){return["br",he(this.options.HTMLAttributes,n)]},renderText(){return` +`},addCommands(){return{setHardBreak:()=>({commands:n,chain:e,state:t,editor:r})=>n.first([()=>n.exitCode(),()=>n.command(()=>{const{selection:i,storedMarks:s}=t;if(i.$from.parent.type.spec.isolating)return!1;const{keepMarks:o}=this.options,{splittableMarks:a}=r.extensionManager,l=s||i.$to.parentOffset&&i.$from.marks();return e().insertContent({type:this.name}).command(({tr:c,dispatch:u})=>{if(u&&l&&o){const d=l.filter(p=>a.includes(p.type.name));c.ensureMarks(d)}return!0}).run()})])}},addKeyboardShortcuts(){return{"Mod-Enter":()=>this.editor.commands.setHardBreak(),"Shift-Enter":()=>this.editor.commands.setHardBreak()}}}),jg=ce.create({name:"heading",addOptions(){return{levels:[1,2,3,4,5,6],HTMLAttributes:{}}},content:"inline*",group:"block",defining:!0,addAttributes(){return{level:{default:1,rendered:!1}}},parseHTML(){return this.options.levels.map(n=>({tag:`h${n}`,attrs:{level:n}}))},renderHTML({node:n,HTMLAttributes:e}){return[`h${this.options.levels.includes(n.attrs.level)?n.attrs.level:this.options.levels[0]}`,he(this.options.HTMLAttributes,e),0]},addCommands(){return{setHeading:n=>({commands:e})=>this.options.levels.includes(n.level)?e.setNode(this.name,n):!1,toggleHeading:n=>({commands:e})=>this.options.levels.includes(n.level)?e.toggleNode(this.name,"paragraph",n):!1}},addKeyboardShortcuts(){return this.options.levels.reduce((n,e)=>({...n,[`Mod-Alt-${e}`]:()=>this.editor.commands.toggleHeading({level:e})}),{})},addInputRules(){return this.options.levels.map(n=>Bl({find:new RegExp(`^(#{1,${n}})\\s$`),type:this.type,getAttributes:{level:n}}))}});var io=200,Ve=function(){};Ve.prototype.append=function(e){return e.length?(e=Ve.from(e),!this.length&&e||e.length=t?Ve.empty:this.sliceInner(Math.max(0,e),Math.min(this.length,t))};Ve.prototype.get=function(e){if(!(e<0||e>=this.length))return this.getInner(e)};Ve.prototype.forEach=function(e,t,r){t===void 0&&(t=0),r===void 0&&(r=this.length),t<=r?this.forEachInner(e,t,r,0):this.forEachInvertedInner(e,t,r,0)};Ve.prototype.map=function(e,t,r){t===void 0&&(t=0),r===void 0&&(r=this.length);var i=[];return this.forEach(function(s,o){return i.push(e(s,o))},t,r),i};Ve.from=function(e){return e instanceof Ve?e:e&&e.length?new Jg(e):Ve.empty};var Jg=function(n){function e(r){n.call(this),this.values=r}n&&(e.__proto__=n),e.prototype=Object.create(n&&n.prototype),e.prototype.constructor=e;var t={length:{configurable:!0},depth:{configurable:!0}};return e.prototype.flatten=function(){return this.values},e.prototype.sliceInner=function(i,s){return i==0&&s==this.length?this:new e(this.values.slice(i,s))},e.prototype.getInner=function(i){return this.values[i]},e.prototype.forEachInner=function(i,s,o,a){for(var l=s;l=o;l--)if(i(this.values[l],a+l)===!1)return!1},e.prototype.leafAppend=function(i){if(this.length+i.length<=io)return new e(this.values.concat(i.flatten()))},e.prototype.leafPrepend=function(i){if(this.length+i.length<=io)return new e(i.flatten().concat(this.values))},t.length.get=function(){return this.values.length},t.depth.get=function(){return 0},Object.defineProperties(e.prototype,t),e}(Ve);Ve.empty=new Jg([]);var c2=function(n){function e(t,r){n.call(this),this.left=t,this.right=r,this.length=t.length+r.length,this.depth=Math.max(t.depth,r.depth)+1}return n&&(e.__proto__=n),e.prototype=Object.create(n&&n.prototype),e.prototype.constructor=e,e.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},e.prototype.getInner=function(r){return ra&&this.right.forEachInner(r,Math.max(i-a,0),Math.min(this.length,s)-a,o+a)===!1)return!1},e.prototype.forEachInvertedInner=function(r,i,s,o){var a=this.left.length;if(i>a&&this.right.forEachInvertedInner(r,i-a,Math.max(s,a)-a,o+a)===!1||s=s?this.right.slice(r-s,i-s):this.left.slice(r,s).append(this.right.slice(0,i-s))},e.prototype.leafAppend=function(r){var i=this.right.leafAppend(r);if(i)return new e(this.left,i)},e.prototype.leafPrepend=function(r){var i=this.left.leafPrepend(r);if(i)return new e(i,this.right)},e.prototype.appendInner=function(r){return this.left.depth>=Math.max(this.right.depth,r.depth)+1?new e(this.left,new e(this.right,r)):new e(this,r)},e}(Ve);const u2=500;class Rt{constructor(e,t){this.items=e,this.eventCount=t}popEvent(e,t){if(this.eventCount==0)return null;let r=this.items.length;for(;;r--)if(this.items.get(r-1).selection){--r;break}let i,s;t&&(i=this.remapping(r,this.items.length),s=i.maps.length);let o=e.tr,a,l,c=[],u=[];return this.items.forEach((d,p)=>{if(!d.step){i||(i=this.remapping(r,p+1),s=i.maps.length),s--,u.push(d);return}if(i){u.push(new Bt(d.map));let f=d.step.map(i.slice(s)),h;f&&o.maybeStep(f).doc&&(h=o.mapping.maps[o.mapping.maps.length-1],c.push(new Bt(h,void 0,void 0,c.length+u.length))),s--,h&&i.appendMap(h,s)}else o.maybeStep(d.step);if(d.selection)return a=i?d.selection.map(i.slice(s)):d.selection,l=new Rt(this.items.slice(0,r).append(u.reverse().concat(c)),this.eventCount-1),!1},this.items.length,0),{remaining:l,transform:o,selection:a}}addTransform(e,t,r,i){let s=[],o=this.eventCount,a=this.items,l=!i&&a.length?a.get(a.length-1):null;for(let u=0;up2&&(a=d2(a,c),o-=c),new Rt(a.append(s),o)}remapping(e,t){let r=new Ir;return this.items.forEach((i,s)=>{let o=i.mirrorOffset!=null&&s-i.mirrorOffset>=e?r.maps.length-i.mirrorOffset:void 0;r.appendMap(i.map,o)},e,t),r}addMaps(e){return this.eventCount==0?this:new Rt(this.items.append(e.map(t=>new Bt(t))),this.eventCount)}rebased(e,t){if(!this.eventCount)return this;let r=[],i=Math.max(0,this.items.length-t),s=e.mapping,o=e.steps.length,a=this.eventCount;this.items.forEach(p=>{p.selection&&a--},i);let l=t;this.items.forEach(p=>{let f=s.getMirror(--l);if(f==null)return;o=Math.min(o,f);let h=s.maps[f];if(p.step){let g=e.steps[f].invert(e.docs[f]),m=p.selection&&p.selection.map(s.slice(l+1,f));m&&a++,r.push(new Bt(h,g,m))}else r.push(new Bt(h))},i);let c=[];for(let p=t;pu2&&(d=d.compress(this.items.length-r.length)),d}emptyItemCount(){let e=0;return this.items.forEach(t=>{t.step||e++}),e}compress(e=this.items.length){let t=this.remapping(0,e),r=t.maps.length,i=[],s=0;return this.items.forEach((o,a)=>{if(a>=e)i.push(o),o.selection&&s++;else if(o.step){let l=o.step.map(t.slice(r)),c=l&&l.getMap();if(r--,c&&t.appendMap(c,r),l){let u=o.selection&&o.selection.map(t.slice(r));u&&s++;let d=new Bt(c.invert(),l,u),p,f=i.length-1;(p=i.length&&i[f].merge(d))?i[f]=p:i.push(d)}}else o.map&&r--},this.items.length,0),new Rt(Ve.from(i.reverse()),s)}}Rt.empty=new Rt(Ve.empty,0);function d2(n,e){let t;return n.forEach((r,i)=>{if(r.selection&&e--==0)return t=i,!1}),n.slice(t)}class Bt{constructor(e,t,r,i){this.map=e,this.step=t,this.selection=r,this.mirrorOffset=i}merge(e){if(this.step&&e.step&&!e.selection){let t=e.step.merge(this.step);if(t)return new Bt(t.getMap().invert(),t,this.selection)}}}class gn{constructor(e,t,r,i,s){this.done=e,this.undone=t,this.prevRanges=r,this.prevTime=i,this.prevComposition=s}}const p2=20;function f2(n,e,t,r){let i=t.getMeta(Nn),s;if(i)return i.historyState;t.getMeta(g2)&&(n=new gn(n.done,n.undone,null,0,-1));let o=t.getMeta("appendedTransaction");if(t.steps.length==0)return n;if(o&&o.getMeta(Nn))return o.getMeta(Nn).redo?new gn(n.done.addTransform(t,void 0,r,Ls(e)),n.undone,ep(t.mapping.maps[t.steps.length-1]),n.prevTime,n.prevComposition):new gn(n.done,n.undone.addTransform(t,void 0,r,Ls(e)),null,n.prevTime,n.prevComposition);if(t.getMeta("addToHistory")!==!1&&!(o&&o.getMeta("addToHistory")===!1)){let a=t.getMeta("composition"),l=n.prevTime==0||!o&&n.prevComposition!=a&&(n.prevTime<(t.time||0)-r.newGroupDelay||!h2(t,n.prevRanges)),c=o?Fa(n.prevRanges,t.mapping):ep(t.mapping.maps[t.steps.length-1]);return new gn(n.done.addTransform(t,l?e.selection.getBookmark():void 0,r,Ls(e)),Rt.empty,c,t.time,a??n.prevComposition)}else return(s=t.getMeta("rebased"))?new gn(n.done.rebased(t,s),n.undone.rebased(t,s),Fa(n.prevRanges,t.mapping),n.prevTime,n.prevComposition):new gn(n.done.addMaps(t.mapping.maps),n.undone.addMaps(t.mapping.maps),Fa(n.prevRanges,t.mapping),n.prevTime,n.prevComposition)}function h2(n,e){if(!e)return!1;if(!n.docChanged)return!0;let t=!1;return n.mapping.maps[0].forEach((r,i)=>{for(let s=0;s=e[s]&&(t=!0)}),t}function ep(n){let e=[];return n.forEach((t,r,i,s)=>e.push(i,s)),e}function Fa(n,e){if(!n)return null;let t=[];for(let r=0;r{let t=Nn.getState(n);return!t||t.done.eventCount==0?!1:(e&&Yg(t,n,e,!1),!0)},Qg=(n,e)=>{let t=Nn.getState(n);return!t||t.undone.eventCount==0?!1:(e&&Yg(t,n,e,!0),!0)},b2=we.create({name:"history",addOptions(){return{depth:100,newGroupDelay:500}},addCommands(){return{undo:()=>({state:n,dispatch:e})=>Xg(n,e),redo:()=>({state:n,dispatch:e})=>Qg(n,e)}},addProseMirrorPlugins(){return[m2(this.options)]},addKeyboardShortcuts(){return{"Mod-z":()=>this.editor.commands.undo(),"Mod-Z":()=>this.editor.commands.undo(),"Mod-y":()=>this.editor.commands.redo(),"Mod-Y":()=>this.editor.commands.redo(),"Shift-Mod-z":()=>this.editor.commands.redo(),"Shift-Mod-Z":()=>this.editor.commands.redo(),"Mod-я":()=>this.editor.commands.undo(),"Shift-Mod-я":()=>this.editor.commands.redo()}}}),y2=ce.create({name:"horizontalRule",addOptions(){return{HTMLAttributes:{}}},group:"block",parseHTML(){return[{tag:"hr"}]},renderHTML({HTMLAttributes:n}){return["hr",he(this.options.HTMLAttributes,n)]},addCommands(){return{setHorizontalRule:()=>({chain:n,state:e})=>{const{$to:t}=e.selection,r=n();return t.parentOffset===0?r.insertContentAt(Math.max(t.pos-2,0),{type:this.name}):r.insertContent({type:this.name}),r.command(({tr:i,dispatch:s})=>{var o;if(s){const{$to:a}=i.selection,l=a.end();if(a.nodeAfter)a.nodeAfter.isTextblock?i.setSelection(X.create(i.doc,a.pos+1)):a.nodeAfter.isBlock?i.setSelection(Q.create(i.doc,a.pos)):i.setSelection(X.create(i.doc,a.pos));else{const c=(o=a.parent.type.contentMatch.defaultType)===null||o===void 0?void 0:o.create();c&&(i.insert(l,c),i.setSelection(X.create(i.doc,l+1)))}i.scrollIntoView()}return!0}).run()}}},addInputRules(){return[Mc({find:/^(?:---|—-|___\s|\*\*\*\s)$/,type:this.type})]}}),v2=/(?:^|\s)((?:\*)((?:[^*]+))(?:\*))$/,w2=/(?:^|\s)((?:\*)((?:[^*]+))(?:\*))/g,k2=/(?:^|\s)((?:_)((?:[^_]+))(?:_))$/,x2=/(?:^|\s)((?:_)((?:[^_]+))(?:_))/g,E2=De.create({name:"italic",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"em"},{tag:"i",getAttrs:n=>n.style.fontStyle!=="normal"&&null},{style:"font-style=italic"}]},renderHTML({HTMLAttributes:n}){return["em",he(this.options.HTMLAttributes,n),0]},addCommands(){return{setItalic:()=>({commands:n})=>n.setMark(this.name),toggleItalic:()=>({commands:n})=>n.toggleMark(this.name),unsetItalic:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-i":()=>this.editor.commands.toggleItalic(),"Mod-I":()=>this.editor.commands.toggleItalic()}},addInputRules(){return[or({find:v2,type:this.type}),or({find:k2,type:this.type})]},addPasteRules(){return[Ln({find:w2,type:this.type}),Ln({find:x2,type:this.type})]}}),C2=ce.create({name:"listItem",addOptions(){return{HTMLAttributes:{},bulletListTypeName:"bulletList",orderedListTypeName:"orderedList"}},content:"paragraph block*",defining:!0,parseHTML(){return[{tag:"li"}]},renderHTML({HTMLAttributes:n}){return["li",he(this.options.HTMLAttributes,n),0]},addKeyboardShortcuts(){return{Enter:()=>this.editor.commands.splitListItem(this.name),Tab:()=>this.editor.commands.sinkListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)}}}),S2=ce.create({name:"listItem",addOptions(){return{HTMLAttributes:{},bulletListTypeName:"bulletList",orderedListTypeName:"orderedList"}},content:"paragraph block*",defining:!0,parseHTML(){return[{tag:"li"}]},renderHTML({HTMLAttributes:n}){return["li",he(this.options.HTMLAttributes,n),0]},addKeyboardShortcuts(){return{Enter:()=>this.editor.commands.splitListItem(this.name),Tab:()=>this.editor.commands.sinkListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)}}}),np=De.create({name:"textStyle",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"span",getAttrs:n=>n.hasAttribute("style")?{}:!1}]},renderHTML({HTMLAttributes:n}){return["span",he(this.options.HTMLAttributes,n),0]},addCommands(){return{removeEmptyTextStyle:()=>({state:n,commands:e})=>{const t=Ji(n,this.type);return Object.entries(t).some(([,i])=>!!i)?!0:e.unsetMark(this.name)}}}}),rp=/^(\d+)\.\s$/,_2=ce.create({name:"orderedList",addOptions(){return{itemTypeName:"listItem",HTMLAttributes:{},keepMarks:!1,keepAttributes:!1}},group:"block list",content(){return`${this.options.itemTypeName}+`},addAttributes(){return{start:{default:1,parseHTML:n=>n.hasAttribute("start")?parseInt(n.getAttribute("start")||"",10):1}}},parseHTML(){return[{tag:"ol"}]},renderHTML({HTMLAttributes:n}){const{start:e,...t}=n;return e===1?["ol",he(this.options.HTMLAttributes,t),0]:["ol",he(this.options.HTMLAttributes,n),0]},addCommands(){return{toggleOrderedList:()=>({commands:n,chain:e})=>this.options.keepAttributes?e().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(S2.name,this.editor.getAttributes(np.name)).run():n.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{"Mod-Shift-7":()=>this.editor.commands.toggleOrderedList()}},addInputRules(){let n=ar({find:rp,type:this.type,getAttributes:e=>({start:+e[1]}),joinPredicate:(e,t)=>t.childCount+t.attrs.start===+e[1]});return(this.options.keepMarks||this.options.keepAttributes)&&(n=ar({find:rp,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:e=>({start:+e[1],...this.editor.getAttributes(np.name)}),joinPredicate:(e,t)=>t.childCount+t.attrs.start===+e[1],editor:this.editor})),[n]}}),M2=ce.create({name:"paragraph",priority:1e3,addOptions(){return{HTMLAttributes:{}}},group:"block",content:"inline*",parseHTML(){return[{tag:"p"}]},renderHTML({HTMLAttributes:n}){return["p",he(this.options.HTMLAttributes,n),0]},addCommands(){return{setParagraph:()=>({commands:n})=>n.setNode(this.name)}},addKeyboardShortcuts(){return{"Mod-Alt-0":()=>this.editor.commands.setParagraph()}}}),A2=/(?:^|\s)((?:~~)((?:[^~]+))(?:~~))$/,T2=/(?:^|\s)((?:~~)((?:[^~]+))(?:~~))/g,N2=De.create({name:"strike",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"s"},{tag:"del"},{tag:"strike"},{style:"text-decoration",consuming:!1,getAttrs:n=>n.includes("line-through")?{}:!1}]},renderHTML({HTMLAttributes:n}){return["s",he(this.options.HTMLAttributes,n),0]},addCommands(){return{setStrike:()=>({commands:n})=>n.setMark(this.name),toggleStrike:()=>({commands:n})=>n.toggleMark(this.name),unsetStrike:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){const n={};return Cc()?n["Mod-Shift-s"]=()=>this.editor.commands.toggleStrike():n["Ctrl-Shift-s"]=()=>this.editor.commands.toggleStrike(),n},addInputRules(){return[or({find:A2,type:this.type})]},addPasteRules(){return[Ln({find:T2,type:this.type})]}}),O2=ce.create({name:"text",group:"inline"}),ip=we.create({name:"starterKit",addExtensions(){var n,e,t,r,i,s,o,a,l,c,u,d,p,f,h,g,m,v;const y=[];return this.options.blockquote!==!1&&y.push(BE.configure((n=this.options)===null||n===void 0?void 0:n.blockquote)),this.options.bold!==!1&&y.push(zE.configure((e=this.options)===null||e===void 0?void 0:e.bold)),this.options.bulletList!==!1&&y.push(UE.configure((t=this.options)===null||t===void 0?void 0:t.bulletList)),this.options.code!==!1&&y.push(WE.configure((r=this.options)===null||r===void 0?void 0:r.code)),this.options.codeBlock!==!1&&y.push(Gg.configure((i=this.options)===null||i===void 0?void 0:i.codeBlock)),this.options.document!==!1&&y.push(JE.configure((s=this.options)===null||s===void 0?void 0:s.document)),this.options.dropcursor!==!1&&y.push(QE.configure((o=this.options)===null||o===void 0?void 0:o.dropcursor)),this.options.gapcursor!==!1&&y.push(a2.configure((a=this.options)===null||a===void 0?void 0:a.gapcursor)),this.options.hardBreak!==!1&&y.push(l2.configure((l=this.options)===null||l===void 0?void 0:l.hardBreak)),this.options.heading!==!1&&y.push(jg.configure((c=this.options)===null||c===void 0?void 0:c.heading)),this.options.history!==!1&&y.push(b2.configure((u=this.options)===null||u===void 0?void 0:u.history)),this.options.horizontalRule!==!1&&y.push(y2.configure((d=this.options)===null||d===void 0?void 0:d.horizontalRule)),this.options.italic!==!1&&y.push(E2.configure((p=this.options)===null||p===void 0?void 0:p.italic)),this.options.listItem!==!1&&y.push(C2.configure((f=this.options)===null||f===void 0?void 0:f.listItem)),this.options.orderedList!==!1&&y.push(_2.configure((h=this.options)===null||h===void 0?void 0:h.orderedList)),this.options.paragraph!==!1&&y.push(M2.configure((g=this.options)===null||g===void 0?void 0:g.paragraph)),this.options.strike!==!1&&y.push(N2.configure((m=this.options)===null||m===void 0?void 0:m.strike)),this.options.text!==!1&&y.push(O2.configure((v=this.options)===null||v===void 0?void 0:v.text)),y}}),L2=De.create({name:"underline",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"u"},{style:"text-decoration",consuming:!1,getAttrs:n=>n.includes("underline")?{}:!1}]},renderHTML({HTMLAttributes:n}){return["u",he(this.options.HTMLAttributes,n),0]},addCommands(){return{setUnderline:()=>({commands:n})=>n.setMark(this.name),toggleUnderline:()=>({commands:n})=>n.toggleMark(this.name),unsetUnderline:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-u":()=>this.editor.commands.toggleUnderline(),"Mod-U":()=>this.editor.commands.toggleUnderline()}}}),R2=De.create({name:"textStyle",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"span",getAttrs:n=>n.hasAttribute("style")?{}:!1}]},renderHTML({HTMLAttributes:n}){return["span",he(this.options.HTMLAttributes,n),0]},addCommands(){return{removeEmptyTextStyle:()=>({state:n,commands:e})=>{const t=Ji(n,this.type);return Object.entries(t).some(([,i])=>!!i)?!0:e.unsetMark(this.name)}}}}),D2=we.create({name:"fontFamily",addOptions(){return{types:["textStyle"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{fontFamily:{default:null,parseHTML:n=>{var e;return(e=n.style.fontFamily)===null||e===void 0?void 0:e.replace(/['"]+/g,"")},renderHTML:n=>n.fontFamily?{style:`font-family: ${n.fontFamily}`}:{}}}}]},addCommands(){return{setFontFamily:n=>({chain:e})=>e().setMark("textStyle",{fontFamily:n}).run(),unsetFontFamily:()=>({chain:n})=>n().setMark("textStyle",{fontFamily:null}).removeEmptyTextStyle().run()}}}),em=n=>{const e=document.createElement("div");return e.classList.add("aie-loader-placeholder"),e.innerHTML=` `,Be.widget(n.pos,e,{id:n.id})},I2=n=>{const e=document.createElement("div");return e.classList.add("aie-loader-placeholder"),e.style.height="20px",e.style.display="inline-block",e.innerHTML=` ${n.text} - `,Be.widget(n.pos,e,{id:n.id})},H2=(n,e,t,r)=>{const i=new FormData;return i.append(r,n),new Promise((s,o)=>{fetch(e,{method:"post",headers:{Accept:"application/json",...t},body:i}).then(a=>a.json()).then(a=>{s(a)}).catch(a=>{o(a)})})},B2=(n,e,t,r)=>{let i=new FileReader;return new Promise((s,o)=>{i.onload=()=>s({errorCode:0,data:{src:i.result,href:n.name}}),i.onerror=()=>o(i.error),setTimeout(()=>i.readAsDataURL(n),5e3*Math.random())})},$c=n=>n?H2:B2,sp=new Ae("aie-attachment-plugin"),ai="attachment_action",P2=we.create({name:"attachment",addOptions(){return{uploadUrl:"",uploadHeaders:{},HTMLAttributes:{}}},addCommands(){return{uploadAttachment:n=>()=>{if(this.options.uploaderEvent&&this.options.uploaderEvent.onUploadBefore&&this.options.uploaderEvent.onUploadBefore(n,this.options.uploadUrl,this.options.uploadHeaders)===!1)return!1;const e=Zo(),{state:{tr:t},view:r,schema:i}=this.editor;return t.selection.empty||t.deleteSelection(),r.dispatch(t.setMeta(ai,{type:"add",id:e,pos:t.selection.from,text:n.name})),(this.options.uploader||$c(this.options.uploadUrl))(n,this.options.uploadUrl,this.options.uploadHeaders,"attachment").then(o=>{if(this.options.uploaderEvent&&this.options.uploaderEvent.onSuccess){const a=this.options.uploaderEvent.onSuccess(n,o);if(typeof a=="boolean"&&!a)return;typeof a=="object"&&(o=a)}if(o.errorCode===0&&o.data&&o.data.href){let l=sp.getState(this.editor.state).find(void 0,void 0,u=>u.id==e);const c=o.data.fileName||n.name;r.dispatch(r.state.tr.insertText(` ${c} `,l[0].from).addMark(l[0].from+1,c.length+l[0].from+1,i.marks.link.create({href:o.data.href,target:"_blank"})).setMeta(ai,{type:"remove",id:e}))}else r.dispatch(t.setMeta(ai,{type:"remove",id:e})),this.options.uploaderEvent&&this.options.uploaderEvent.onFailed&&this.options.uploaderEvent.onFailed(n,o)}).catch(o=>{const{state:{tr:a},view:l}=this.editor;l.dispatch(a.setMeta(ai,{type:"remove",id:e})),this.options.uploaderEvent&&this.options.uploaderEvent.onError&&this.options.uploaderEvent.onError(n,o)}),!0}}},addProseMirrorPlugins(){const n=this.editor;return[new _e({key:sp,state:{init:()=>Ee.empty,apply:(e,t)=>{const r=e.getMeta(ai);return t=t.map(e.mapping,e.doc),r&&r.type==="add"?t=t.add(e.doc,[I2(r)]):r&&r.type==="remove"&&(t=t.remove(t.find(void 0,void 0,i=>i.id==r.id))),t}},props:{decorations(e){return this.getState(e)},handleDOMEvents:{drop(e,t){if(!(t.dataTransfer&&t.dataTransfer.files&&t.dataTransfer.files.length))return!1;const i=Array.from(t.dataTransfer.files).filter(s=>!/video/i.test(s.type)&&!/image/i.test(s.type));return t.preventDefault(),i.forEach(s=>{n.commands.uploadAttachment(s)}),!0}}}})]}}),$2=we.create({name:"painter",addCommands(){return{setPainter:n=>({view:{dispatch:e,state:{tr:t},dom:r}})=>(r.style.cursor="context-menu",e(t.setMeta("painterAction",{type:"start",marks:n})),!0)}},addProseMirrorPlugins(){return[new _e({key:new Ae("aie-painter"),state:{init:()=>[],apply:(n,e)=>{const t=n.getMeta("painterAction");return t&&t.type==="start"?e=t.marks:t&&t.type==="end"&&(e=[]),e}},props:{handleDOMEvents:{mousedown(n,e){const t=this.getState(n.state);if(!t||t.length==0)return!1;const r=()=>{document.removeEventListener("mouseup",r);let{dispatch:i,state:{tr:s,selection:o},dom:a}=n;a.style.cursor="",s=s.removeMark(o.from,o.to);for(let l of t)l.type.name!="link"&&(s=s.addMark(o.from,o.to,l));i(s.setMeta("painterAction",{type:"end"}))};return document.addEventListener("mouseup",r),!0}}}})]}}),V2=/(?:^|\s)((?:==)((?:[^~=]+))(?:==))$/,F2=/(?:^|\s)((?:==)((?:[^~=]+))(?:==))/g,z2=De.create({name:"highlight",addOptions(){return{multicolor:!1,HTMLAttributes:{}}},addAttributes(){return this.options.multicolor?{color:{default:null,parseHTML:n=>n.getAttribute("data-color")||n.style.backgroundColor,renderHTML:n=>n.color?{"data-color":n.color,style:`background-color: ${n.color}; color: inherit`}:{}}}:{}},parseHTML(){return[{tag:"mark"}]},renderHTML({HTMLAttributes:n}){return["mark",fe(this.options.HTMLAttributes,n),0]},addCommands(){return{setHighlight:n=>({commands:e})=>e.setMark(this.name,n),toggleHighlight:n=>({commands:e})=>e.toggleMark(this.name,n),unsetHighlight:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-h":()=>this.editor.commands.toggleHighlight()}},addInputRules(){return[or({find:V2,type:this.type})]},addPasteRules(){return[Ln({find:F2,type:this.type})]}}),q2=we.create({name:"color",addOptions(){return{types:["textStyle"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{color:{default:null,parseHTML:n=>{var e;return(e=n.style.color)===null||e===void 0?void 0:e.replace(/['"]+/g,"")},renderHTML:n=>n.color?{style:`color: ${n.color}`}:{}}}}]},addCommands(){return{setColor:n=>({chain:e})=>e().setMark("textStyle",{color:n}).run(),unsetColor:()=>({chain:n})=>n().setMark("textStyle",{color:null}).removeEmptyTextStyle().run()}}}),U2=we.create({name:"fontSize",addOptions(){return{types:["textStyle"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{fontSize:{default:null,parseHTML:n=>{var e;return(e=n.style.fontSize)==null?void 0:e.replace(/['"]+/g,"")},renderHTML:n=>n.fontSize?{style:`font-size: ${n.fontSize}`}:{}}}}]},addCommands(){return{setFontSize:n=>({chain:e})=>e().setMark("textStyle",{fontSize:n}).run(),unsetFontSize:()=>({chain:n})=>n().setMark("textStyle",{fontSize:null}).removeEmptyTextStyle().run()}}}),K2=we.create({name:"lineHeight",addOptions(){return{types:["heading","paragraph"],heights:["100%","125%","150%","200%","250%","300%"],defaultHeight:"100%"}},addGlobalAttributes(){return[{types:this.options.types,attributes:{lineHeight:{default:this.options.defaultHeight,parseHTML:n=>n.style.lineHeight||this.options.defaultHeight,renderHTML:n=>n.lineHeight===this.options.defaultHeight?{}:{style:`line-height: ${n.lineHeight}`}}}}]},addCommands(){return{setLineHeight:n=>({commands:e})=>this.options.heights.includes(n)?this.options.types.every(t=>e.updateAttributes(t,{lineHeight:n})):!1,unsetLineHeight:()=>({commands:n})=>this.options.types.every(e=>n.resetAttributes(e,"lineHeight"))}}}),Z2=we.create({name:"textAlign",addOptions(){return{types:[],alignments:["left","center","right","justify"],defaultAlignment:"left"}},addGlobalAttributes(){return[{types:this.options.types,attributes:{textAlign:{default:this.options.defaultAlignment,parseHTML:n=>n.style.textAlign||this.options.defaultAlignment,renderHTML:n=>n.textAlign===this.options.defaultAlignment?{}:{style:`text-align: ${n.textAlign}`}}}}]},addCommands(){return{setTextAlign:n=>({commands:e})=>this.options.alignments.includes(n)?this.options.types.every(t=>e.updateAttributes(t,{textAlign:n})):!1,unsetTextAlign:()=>({commands:n})=>this.options.types.every(e=>n.resetAttributes(e,"textAlign"))}},addKeyboardShortcuts(){return{"Mod-Shift-l":()=>this.editor.commands.setTextAlign("left"),"Mod-Shift-e":()=>this.editor.commands.setTextAlign("center"),"Mod-Shift-r":()=>this.editor.commands.setTextAlign("right"),"Mod-Shift-j":()=>this.editor.commands.setTextAlign("justify")}}}),W2=we.create({name:"indent",addOptions(){return{types:["listItem","paragraph"],minLevel:0,maxLevel:8}},addGlobalAttributes(){return[{types:this.options.types,attributes:{indent:{default:0,parseHTML:n=>{const e=Number(n.getAttribute("data-indent"));return e&&e>this.options.minLevel?e:null},renderHTML:n=>n.indent?{style:`text-indent: ${(n==null?void 0:n.indent)*10}px`,"data-indent":n==null?void 0:n.indent}:{}}}}]},addCommands(){const n=(r,i,s)=>{var a;const o=(a=r==null?void 0:r.doc)==null?void 0:a.nodeAt(i);if(o){const l=(o.attrs.indent||0)+s,{minLevel:c,maxLevel:u}=this.options,d=lu?u:l;if(d!==o.attrs.indent){const{indent:p,...f}=o.attrs,h=d>c?{...f,indent:d}:f;return r.setNodeMarkup(i,o.type,h,o.marks)}}return r},e=(r,i)=>{const{doc:s,selection:o}=r;if(s&&o&&(o instanceof X||o instanceof St)){const{from:a,to:l}=o;s.nodesBetween(a,l,(c,u)=>this.options.types.includes(c.type.name)?(r=n(r,u,i),!1):!0)}return r},t=r=>()=>({tr:i,state:s,dispatch:o})=>{const{selection:a}=s;return i=i.setSelection(a),i=e(i,r),i.docChanged?(o==null||o(i),!0):!1};return{indent:t(1),outdent:t(-1)}},addKeyboardShortcuts(){return{Tab:()=>this.editor.commands.indent(),"Shift-Tab":()=>this.editor.commands.outdent()}}}),G2=/(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,j2=ce.create({name:"image",addOptions(){return{inline:!1,allowBase64:!1,HTMLAttributes:{}}},inline(){return this.options.inline},group(){return this.options.inline?"inline":"block"},draggable:!0,addAttributes(){return{src:{default:null},alt:{default:null},title:{default:null}}},parseHTML(){return[{tag:this.options.allowBase64?"img[src]":'img[src]:not([src^="data:"])'}]},renderHTML({HTMLAttributes:n}){return["img",fe(this.options.HTMLAttributes,n)]},addCommands(){return{setImage:n=>({commands:e})=>e.insertContent({type:this.name,attrs:n})}},addInputRules(){return[Mc({find:G2,type:this.type,getAttributes:n=>{const[,,e,t,r]=n;return{src:t,alt:e,title:r}}})]}}),tm=(n,e,t)=>{const r=n.querySelector(".resize-obj"),i=10;let s,o,a,l;const c=p=>{p.preventDefault(),e.addEventListener("mousemove",u),e.addEventListener("mouseup",d),e.addEventListener("mouseleave",d),s=p.clientX,o=Number(r.getAttribute("data-with"))||r.clientWidth,a=p.target.getAttribute("data-position"),l=e.clientWidth-100},u=p=>{const f=p.clientX-s;if(f==0)return;const h=a==="right"?f>0:f<0;let g=o+Math.abs(f)*(h?1:-1);g>=l&&(g=l),g{e.removeEventListener("mousemove",u),e.removeEventListener("mouseup",d),e.removeEventListener("mouseleave",d);const p={width:Number(r.getAttribute("data-width"))};t(p)};for(let p of n.querySelector(".aie-resize").children)p.addEventListener("mousedown",c)},op=new Ae("aie-image-plugin"),li="image_action",J2=j2.extend({name:"image",draggable:!0,selectable:!0,addOptions(){var n;return{...(n=this.parent)==null?void 0:n.call(this),uploadUrl:"",uploadHeaders:{},uploader:void 0,defaultSize:350}},allowGapCursor(){return!this.options.inline},addAttributes(){return{src:{default:"",parseHTML:n=>`${n.getAttribute("src")??""}`},alt:{default:""},title:{default:""},width:{default:this.options.defaultSize},height:{default:"auto"},align:{default:"left"}}},parseHTML(){return[{tag:this.options.allowBase64?"img[src]":'img[src]:not([src^="data:"])'}]},renderHTML({HTMLAttributes:n}){return["img",fe(this.options.HTMLAttributes,n)]},addCommands(){var n;return{...(n=this.parent)==null?void 0:n.call(this),uploadImage:e=>()=>{if(this.options.uploaderEvent&&this.options.uploaderEvent.onUploadBefore&&this.options.uploaderEvent.onUploadBefore(e,this.options.uploadUrl,this.options.uploadHeaders)===!1)return!1;const t=Zo(),{state:{tr:r},view:i,schema:s}=this.editor;return r.selection.empty||r.deleteSelection(),i.dispatch(r.setMeta(li,{type:"add",id:t,pos:r.selection.from})),(this.options.uploader||$c(this.options.uploadUrl))(e,this.options.uploadUrl,this.options.uploadHeaders,"image").then(a=>{if(this.options.uploaderEvent&&this.options.uploaderEvent.onSuccess){const l=this.options.uploaderEvent.onSuccess(e,a);if(typeof l=="boolean"&&!l)return;typeof l=="object"&&(a=l)}if(a.errorCode===0&&a.data&&a.data.src){let c=op.getState(this.editor.state).find(void 0,void 0,u=>u.id==t);i.dispatch(i.state.tr.insert(c[0].from,s.nodes.image.create({src:a.data.src,alt:a.data.alt})).setMeta(li,{type:"remove",id:t}))}else i.dispatch(r.setMeta(li,{type:"remove",id:t})),this.options.uploaderEvent&&this.options.uploaderEvent.onFailed&&this.options.uploaderEvent.onFailed(e,a)}).catch(a=>{const{state:{tr:l},view:c}=this.editor;c.dispatch(l.setMeta(li,{type:"remove",id:t})),this.options.uploaderEvent&&this.options.uploaderEvent.onError&&this.options.uploaderEvent.onError(e,a)}),!0}}},addNodeView(){return n=>{if(!this.editor.isEditable)return{};const e=document.createElement("div"),{src:t,width:r,height:i,align:s}=n.node.attrs;return e.classList.add(`align-${s}`),e.innerHTML=` + `,Be.widget(n.pos,e,{id:n.id})},H2=(n,e,t,r)=>{const i=new FormData;return i.append(r,n),new Promise((s,o)=>{fetch(e,{method:"post",headers:{Accept:"application/json",...t},body:i}).then(a=>a.json()).then(a=>{s(a)}).catch(a=>{o(a)})})},B2=(n,e,t,r)=>{let i=new FileReader;return new Promise((s,o)=>{i.onload=()=>s({errorCode:0,data:{src:i.result,href:n.name}}),i.onerror=()=>o(i.error),setTimeout(()=>i.readAsDataURL(n),5e3*Math.random())})},$c=n=>n?H2:B2,sp=new Ae("aie-attachment-plugin"),ai="attachment_action",P2=we.create({name:"attachment",addOptions(){return{uploadUrl:"",uploadHeaders:{},HTMLAttributes:{}}},addCommands(){return{uploadAttachment:n=>()=>{if(this.options.uploaderEvent&&this.options.uploaderEvent.onUploadBefore&&this.options.uploaderEvent.onUploadBefore(n,this.options.uploadUrl,this.options.uploadHeaders)===!1)return!1;const e=Zo(),{state:{tr:t},view:r,schema:i}=this.editor;return t.selection.empty||t.deleteSelection(),r.dispatch(t.setMeta(ai,{type:"add",id:e,pos:t.selection.from,text:n.name})),(this.options.uploader||$c(this.options.uploadUrl))(n,this.options.uploadUrl,this.options.uploadHeaders,"attachment").then(o=>{if(this.options.uploaderEvent&&this.options.uploaderEvent.onSuccess){const a=this.options.uploaderEvent.onSuccess(n,o);if(typeof a=="boolean"&&!a)return;typeof a=="object"&&(o=a)}if(o.errorCode===0&&o.data&&o.data.href){let l=sp.getState(this.editor.state).find(void 0,void 0,u=>u.id==e);const c=o.data.fileName||n.name;r.dispatch(r.state.tr.insertText(` ${c} `,l[0].from).addMark(l[0].from+1,c.length+l[0].from+1,i.marks.link.create({href:o.data.href,target:"_blank"})).setMeta(ai,{type:"remove",id:e}))}else r.dispatch(t.setMeta(ai,{type:"remove",id:e})),this.options.uploaderEvent&&this.options.uploaderEvent.onFailed&&this.options.uploaderEvent.onFailed(n,o)}).catch(o=>{const{state:{tr:a},view:l}=this.editor;l.dispatch(a.setMeta(ai,{type:"remove",id:e})),this.options.uploaderEvent&&this.options.uploaderEvent.onError&&this.options.uploaderEvent.onError(n,o)}),!0}}},addProseMirrorPlugins(){const n=this.editor;return[new _e({key:sp,state:{init:()=>Ee.empty,apply:(e,t)=>{const r=e.getMeta(ai);return t=t.map(e.mapping,e.doc),r&&r.type==="add"?t=t.add(e.doc,[I2(r)]):r&&r.type==="remove"&&(t=t.remove(t.find(void 0,void 0,i=>i.id==r.id))),t}},props:{decorations(e){return this.getState(e)},handleDOMEvents:{drop(e,t){if(!(t.dataTransfer&&t.dataTransfer.files&&t.dataTransfer.files.length))return!1;const i=Array.from(t.dataTransfer.files).filter(s=>!/video/i.test(s.type)&&!/image/i.test(s.type));return t.preventDefault(),i.forEach(s=>{n.commands.uploadAttachment(s)}),!0}}}})]}}),$2=we.create({name:"painter",addCommands(){return{setPainter:n=>({view:{dispatch:e,state:{tr:t},dom:r}})=>(r.style.cursor="context-menu",e(t.setMeta("painterAction",{type:"start",marks:n})),!0)}},addProseMirrorPlugins(){return[new _e({key:new Ae("aie-painter"),state:{init:()=>[],apply:(n,e)=>{const t=n.getMeta("painterAction");return t&&t.type==="start"?e=t.marks:t&&t.type==="end"&&(e=[]),e}},props:{handleDOMEvents:{mousedown(n,e){const t=this.getState(n.state);if(!t||t.length==0)return!1;const r=()=>{document.removeEventListener("mouseup",r);let{dispatch:i,state:{tr:s,selection:o},dom:a}=n;a.style.cursor="",s=s.removeMark(o.from,o.to);for(let l of t)l.type.name!="link"&&(s=s.addMark(o.from,o.to,l));i(s.setMeta("painterAction",{type:"end"}))};return document.addEventListener("mouseup",r),!0}}}})]}}),V2=/(?:^|\s)((?:==)((?:[^~=]+))(?:==))$/,F2=/(?:^|\s)((?:==)((?:[^~=]+))(?:==))/g,z2=De.create({name:"highlight",addOptions(){return{multicolor:!1,HTMLAttributes:{}}},addAttributes(){return this.options.multicolor?{color:{default:null,parseHTML:n=>n.getAttribute("data-color")||n.style.backgroundColor,renderHTML:n=>n.color?{"data-color":n.color,style:`background-color: ${n.color}; color: inherit`}:{}}}:{}},parseHTML(){return[{tag:"mark"}]},renderHTML({HTMLAttributes:n}){return["mark",he(this.options.HTMLAttributes,n),0]},addCommands(){return{setHighlight:n=>({commands:e})=>e.setMark(this.name,n),toggleHighlight:n=>({commands:e})=>e.toggleMark(this.name,n),unsetHighlight:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-h":()=>this.editor.commands.toggleHighlight()}},addInputRules(){return[or({find:V2,type:this.type})]},addPasteRules(){return[Ln({find:F2,type:this.type})]}}),q2=we.create({name:"color",addOptions(){return{types:["textStyle"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{color:{default:null,parseHTML:n=>{var e;return(e=n.style.color)===null||e===void 0?void 0:e.replace(/['"]+/g,"")},renderHTML:n=>n.color?{style:`color: ${n.color}`}:{}}}}]},addCommands(){return{setColor:n=>({chain:e})=>e().setMark("textStyle",{color:n}).run(),unsetColor:()=>({chain:n})=>n().setMark("textStyle",{color:null}).removeEmptyTextStyle().run()}}}),U2=we.create({name:"fontSize",addOptions(){return{types:["textStyle"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{fontSize:{default:null,parseHTML:n=>{var e;return(e=n.style.fontSize)==null?void 0:e.replace(/['"]+/g,"")},renderHTML:n=>n.fontSize?{style:`font-size: ${n.fontSize}`}:{}}}}]},addCommands(){return{setFontSize:n=>({chain:e})=>e().setMark("textStyle",{fontSize:n}).run(),unsetFontSize:()=>({chain:n})=>n().setMark("textStyle",{fontSize:null}).removeEmptyTextStyle().run()}}}),K2=we.create({name:"lineHeight",addOptions(){return{types:["heading","paragraph"],heights:["100%","125%","150%","200%","250%","300%"],defaultHeight:"100%"}},addGlobalAttributes(){return[{types:this.options.types,attributes:{lineHeight:{default:this.options.defaultHeight,parseHTML:n=>n.style.lineHeight||this.options.defaultHeight,renderHTML:n=>n.lineHeight===this.options.defaultHeight?{}:{style:`line-height: ${n.lineHeight}`}}}}]},addCommands(){return{setLineHeight:n=>({commands:e})=>this.options.heights.includes(n)?this.options.types.every(t=>e.updateAttributes(t,{lineHeight:n})):!1,unsetLineHeight:()=>({commands:n})=>this.options.types.every(e=>n.resetAttributes(e,"lineHeight"))}}}),Z2=we.create({name:"textAlign",addOptions(){return{types:[],alignments:["left","center","right","justify"],defaultAlignment:"left"}},addGlobalAttributes(){return[{types:this.options.types,attributes:{textAlign:{default:this.options.defaultAlignment,parseHTML:n=>n.style.textAlign||this.options.defaultAlignment,renderHTML:n=>n.textAlign===this.options.defaultAlignment?{}:{style:`text-align: ${n.textAlign}`}}}}]},addCommands(){return{setTextAlign:n=>({commands:e})=>this.options.alignments.includes(n)?this.options.types.every(t=>e.updateAttributes(t,{textAlign:n})):!1,unsetTextAlign:()=>({commands:n})=>this.options.types.every(e=>n.resetAttributes(e,"textAlign"))}},addKeyboardShortcuts(){return{"Mod-Shift-l":()=>this.editor.commands.setTextAlign("left"),"Mod-Shift-e":()=>this.editor.commands.setTextAlign("center"),"Mod-Shift-r":()=>this.editor.commands.setTextAlign("right"),"Mod-Shift-j":()=>this.editor.commands.setTextAlign("justify")}}}),W2=we.create({name:"indent",addOptions(){return{types:["listItem","paragraph"],minLevel:0,maxLevel:8}},addGlobalAttributes(){return[{types:this.options.types,attributes:{indent:{default:0,parseHTML:n=>{const e=Number(n.getAttribute("data-indent"));return e&&e>this.options.minLevel?e:null},renderHTML:n=>n.indent?{style:`text-indent: ${(n==null?void 0:n.indent)*10}px`,"data-indent":n==null?void 0:n.indent}:{}}}}]},addCommands(){const n=(r,i,s)=>{var a;const o=(a=r==null?void 0:r.doc)==null?void 0:a.nodeAt(i);if(o){const l=(o.attrs.indent||0)+s,{minLevel:c,maxLevel:u}=this.options,d=lu?u:l;if(d!==o.attrs.indent){const{indent:p,...f}=o.attrs,h=d>c?{...f,indent:d}:f;return r.setNodeMarkup(i,o.type,h,o.marks)}}return r},e=(r,i)=>{const{doc:s,selection:o}=r;if(s&&o&&(o instanceof X||o instanceof St)){const{from:a,to:l}=o;s.nodesBetween(a,l,(c,u)=>this.options.types.includes(c.type.name)?(r=n(r,u,i),!1):!0)}return r},t=r=>()=>({tr:i,state:s,dispatch:o})=>{const{selection:a}=s;return i=i.setSelection(a),i=e(i,r),i.docChanged?(o==null||o(i),!0):!1};return{indent:t(1),outdent:t(-1)}},addKeyboardShortcuts(){return{Tab:()=>this.editor.commands.indent(),"Shift-Tab":()=>this.editor.commands.outdent()}}}),G2=/(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,j2=ce.create({name:"image",addOptions(){return{inline:!1,allowBase64:!1,HTMLAttributes:{}}},inline(){return this.options.inline},group(){return this.options.inline?"inline":"block"},draggable:!0,addAttributes(){return{src:{default:null},alt:{default:null},title:{default:null}}},parseHTML(){return[{tag:this.options.allowBase64?"img[src]":'img[src]:not([src^="data:"])'}]},renderHTML({HTMLAttributes:n}){return["img",he(this.options.HTMLAttributes,n)]},addCommands(){return{setImage:n=>({commands:e})=>e.insertContent({type:this.name,attrs:n})}},addInputRules(){return[Mc({find:G2,type:this.type,getAttributes:n=>{const[,,e,t,r]=n;return{src:t,alt:e,title:r}}})]}}),tm=(n,e,t)=>{const r=n.querySelector(".resize-obj"),i=10;let s,o,a,l;const c=p=>{p.preventDefault(),e.addEventListener("mousemove",u),e.addEventListener("mouseup",d),e.addEventListener("mouseleave",d),s=p.clientX,o=Number(r.getAttribute("data-with"))||r.clientWidth,a=p.target.getAttribute("data-position"),l=e.clientWidth-100},u=p=>{const f=p.clientX-s;if(f==0)return;const h=a==="right"?f>0:f<0;let g=o+Math.abs(f)*(h?1:-1);g>=l&&(g=l),g{e.removeEventListener("mousemove",u),e.removeEventListener("mouseup",d),e.removeEventListener("mouseleave",d);const p={width:Number(r.getAttribute("data-width"))};t(p)};for(let p of n.querySelector(".aie-resize").children)p.addEventListener("mousedown",c)},op=new Ae("aie-image-plugin"),li="image_action",J2=j2.extend({name:"image",draggable:!0,selectable:!0,addOptions(){var n;return{...(n=this.parent)==null?void 0:n.call(this),uploadUrl:"",uploadHeaders:{},uploader:void 0,defaultSize:350}},allowGapCursor(){return!this.options.inline},addAttributes(){return{src:{default:"",parseHTML:n=>`${n.getAttribute("src")??""}`},alt:{default:""},title:{default:""},width:{default:this.options.defaultSize},height:{default:"auto"},align:{default:"left"}}},parseHTML(){return[{tag:this.options.allowBase64?"img[src]":'img[src]:not([src^="data:"])'}]},renderHTML({HTMLAttributes:n}){return["img",he(this.options.HTMLAttributes,n)]},addCommands(){var n;return{...(n=this.parent)==null?void 0:n.call(this),uploadImage:e=>()=>{if(this.options.uploaderEvent&&this.options.uploaderEvent.onUploadBefore&&this.options.uploaderEvent.onUploadBefore(e,this.options.uploadUrl,this.options.uploadHeaders)===!1)return!1;const t=Zo(),{state:{tr:r},view:i,schema:s}=this.editor;return r.selection.empty||r.deleteSelection(),i.dispatch(r.setMeta(li,{type:"add",id:t,pos:r.selection.from})),(this.options.uploader||$c(this.options.uploadUrl))(e,this.options.uploadUrl,this.options.uploadHeaders,"image").then(a=>{if(this.options.uploaderEvent&&this.options.uploaderEvent.onSuccess){const l=this.options.uploaderEvent.onSuccess(e,a);if(typeof l=="boolean"&&!l)return;typeof l=="object"&&(a=l)}if(a.errorCode===0&&a.data&&a.data.src){let c=op.getState(this.editor.state).find(void 0,void 0,u=>u.id==t);i.dispatch(i.state.tr.insert(c[0].from,s.nodes.image.create({src:a.data.src,alt:a.data.alt})).setMeta(li,{type:"remove",id:t}))}else i.dispatch(r.setMeta(li,{type:"remove",id:t})),this.options.uploaderEvent&&this.options.uploaderEvent.onFailed&&this.options.uploaderEvent.onFailed(e,a)}).catch(a=>{const{state:{tr:l},view:c}=this.editor;c.dispatch(l.setMeta(li,{type:"remove",id:t})),this.options.uploaderEvent&&this.options.uploaderEvent.onError&&this.options.uploaderEvent.onError(e,a)}),!0}}},addNodeView(){return n=>{if(!this.editor.isEditable)return{};const e=document.createElement("div"),{src:t,width:r,height:i,align:s}=n.node.attrs;return e.classList.add(`align-${s}`),e.innerHTML=`
@@ -353,11 +353,11 @@ ${t}`);o.start(a)};this.globalConfig.onCreateClientUrl?this.globalConfig.onCreat
- `,tm(e,n.editor.view.dom,o=>n.editor.commands.updateAttributes("image",o)),{dom:e}}},addProseMirrorPlugins(){const n=this.editor;return[new _e({key:op,state:{init:()=>Ee.empty,apply:(e,t)=>{const r=e.getMeta(li);if(r){let i=!1;const s=t.map(e.mapping,e.doc,{onRemove:o=>{i=!0}});i||(t=s),r.type==="add"?t=t.add(e.doc,[em(r)]):r.type==="remove"&&(t=t.remove(t.find(void 0,void 0,o=>o.id==r.id)))}return t}},props:{decorations(e){return this.getState(e)},handlePaste:(e,t)=>{var i;const r=Array.from(((i=t.clipboardData)==null?void 0:i.items)||[]);for(const s of r)if(s.type.indexOf("image")===0){t.preventDefault();const o=s.getAsFile();o&&this.editor.commands.uploadImage(o)}},handleDOMEvents:{drop(e,t){if(!(t.dataTransfer&&t.dataTransfer.files&&t.dataTransfer.files.length))return!1;const i=Array.from(t.dataTransfer.files).filter(c=>/image/i.test(c.type));if(i.length===0)return!1;t.preventDefault();const{state:{tr:s,doc:o},dispatch:a}=e,l=e.posAtCoords({left:t.clientX,top:t.clientY});return a(s.setSelection(X.create(o,l.pos)).scrollIntoView()),i.forEach(c=>{n.commands.uploadImage(c)}),!0}},transformPastedHTML(e){const r=new DOMParser().parseFromString(e,"text/html"),i=r.documentElement.querySelector("body");if(i!=null&&i.children){const s=r.documentElement.querySelectorAll("p > img");for(const o of s){const a=o.parentNode,l=Array.prototype.indexOf.call(i.children,a);o.parentElement.prepend(o),i.insertBefore(o,i.children[l])}return i.innerHTML}return e}}})]}});var Ul,Kl;if(typeof WeakMap<"u"){let n=new WeakMap;Ul=e=>n.get(e),Kl=(e,t)=>(n.set(e,t),t)}else{const n=[];let t=0;Ul=r=>{for(let i=0;i(t==10&&(t=0),n[t++]=r,n[t++]=i)}var Oe=class{constructor(n,e,t,r){this.width=n,this.height=e,this.map=t,this.problems=r}findCell(n){for(let e=0;e=t){(s||(s=[])).push({type:"overlong_rowspan",pos:u,n:v-k});break}const b=i+k*e;for(let E=0;Er&&(s+=c.attrs.colspan)}}for(let o=0;o1&&(t=!0)}e==-1?e=s:e!=s&&(e=Math.max(e,s))}return e}function Q2(n,e,t){n.problems||(n.problems=[]);const r={};for(let i=0;i0;e--)if(n.node(e).type.spec.tableRole=="row")return n.node(0).resolve(n.before(e+1));return null}function tC(n){for(let e=n.depth;e>0;e--){const t=n.node(e).type.spec.tableRole;if(t==="cell"||t==="header_cell")return n.node(e)}return null}function It(n){const e=n.selection.$head;for(let t=e.depth;t>0;t--)if(e.node(t).type.spec.tableRole=="row")return!0;return!1}function Wo(n){const e=n.selection;if("$anchorCell"in e&&e.$anchorCell)return e.$anchorCell.pos>e.$headCell.pos?e.$anchorCell:e.$headCell;if("node"in e&&e.node&&e.node.type.spec.tableRole=="cell")return e.$anchor;const t=ei(e.$head)||nC(e.$head);if(t)return t;throw new RangeError(`No cell found around position ${e.head}`)}function nC(n){for(let e=n.nodeAfter,t=n.pos;e;e=e.firstChild,t++){const r=e.type.spec.tableRole;if(r=="cell"||r=="header_cell")return n.doc.resolve(t)}for(let e=n.nodeBefore,t=n.pos;e;e=e.lastChild,t--){const r=e.type.spec.tableRole;if(r=="cell"||r=="header_cell")return n.doc.resolve(t-e.nodeSize)}}function Zl(n){return n.parent.type.spec.tableRole=="row"&&!!n.nodeAfter}function rC(n){return n.node(0).resolve(n.pos+n.nodeAfter.nodeSize)}function Vc(n,e){return n.depth==e.depth&&n.pos>=e.start(-1)&&n.pos<=e.end(-1)}function nm(n,e,t){const r=n.node(-1),i=Oe.get(r),s=n.start(-1),o=i.nextCell(n.pos-s,e,t);return o==null?null:n.node(0).resolve(s+o)}function cr(n,e,t=1){const r={...n,colspan:n.colspan-t};return r.colwidth&&(r.colwidth=r.colwidth.slice(),r.colwidth.splice(e,t),r.colwidth.some(i=>i>0)||(r.colwidth=null)),r}function rm(n,e,t=1){const r={...n,colspan:n.colspan+t};if(r.colwidth){r.colwidth=r.colwidth.slice();for(let i=0;ic!=e.pos-i);a.unshift(e.pos-i);const l=a.map(c=>{const u=t.nodeAt(c);if(!u)throw RangeError(`No cell with offset ${c} found`);const d=i+c+1;return new kh(o.resolve(d),o.resolve(d+u.content.size))});super(l[0].$from,l[0].$to,l),this.$anchorCell=n,this.$headCell=e}map(n,e){const t=n.resolve(e.map(this.$anchorCell.pos)),r=n.resolve(e.map(this.$headCell.pos));if(Zl(t)&&Zl(r)&&Vc(t,r)){const i=this.$anchorCell.node(-1)!=t.node(-1);return i&&this.isRowSelection()?he.rowSelection(t,r):i&&this.isColSelection()?he.colSelection(t,r):new he(t,r)}return X.between(t,r)}content(){const n=this.$anchorCell.node(-1),e=Oe.get(n),t=this.$anchorCell.start(-1),r=e.rectBetween(this.$anchorCell.pos-t,this.$headCell.pos-t),i={},s=[];for(let a=r.top;a0||g>0){let m=f.attrs;if(h>0&&(m=cr(m,0,h)),g>0&&(m=cr(m,m.colspan-g,g)),p.leftr.bottom){const m={...f.attrs,rowspan:Math.min(p.bottom,r.bottom)-Math.max(p.top,r.top)};p.top0)return!1;const t=n+this.$anchorCell.nodeAfter.attrs.rowspan,r=e+this.$headCell.nodeAfter.attrs.rowspan;return Math.max(t,r)==this.$headCell.node(-1).childCount}static colSelection(n,e=n){const t=n.node(-1),r=Oe.get(t),i=n.start(-1),s=r.findCell(n.pos-i),o=r.findCell(e.pos-i),a=n.node(0);return s.top<=o.top?(s.top>0&&(n=a.resolve(i+r.map[s.left])),o.bottom0&&(e=a.resolve(i+r.map[o.left])),s.bottom0)return!1;const s=r+this.$anchorCell.nodeAfter.attrs.colspan,o=i+this.$headCell.nodeAfter.attrs.colspan;return Math.max(s,o)==e.width}eq(n){return n instanceof he&&n.$anchorCell.pos==this.$anchorCell.pos&&n.$headCell.pos==this.$headCell.pos}static rowSelection(n,e=n){const t=n.node(-1),r=Oe.get(t),i=n.start(-1),s=r.findCell(n.pos-i),o=r.findCell(e.pos-i),a=n.node(0);return s.left<=o.left?(s.left>0&&(n=a.resolve(i+r.map[s.top*r.width])),o.right0&&(e=a.resolve(i+r.map[o.top*r.width])),s.right{e.push(Be.node(r,r+t.nodeSize,{class:"selectedCell"}))}),Ee.create(n.doc,e)}function oC({$from:n,$to:e}){if(n.pos==e.pos||n.pos=0&&!(n.after(i+1)=0&&!(e.before(s+1)>e.start(s));s--,r--);return t==r&&/row|table/.test(n.node(i).type.spec.tableRole)}function aC({$from:n,$to:e}){let t,r;for(let i=n.depth;i>0;i--){const s=n.node(i);if(s.type.spec.tableRole==="cell"||s.type.spec.tableRole==="header_cell"){t=s;break}}for(let i=e.depth;i>0;i--){const s=e.node(i);if(s.type.spec.tableRole==="cell"||s.type.spec.tableRole==="header_cell"){r=s;break}}return t!==r&&e.parentOffset===0}function lC(n,e,t){const r=(e||n).selection,i=(e||n).doc;let s,o;if(r instanceof Q&&(o=r.node.type.spec.tableRole)){if(o=="cell"||o=="header_cell")s=he.create(i,r.from);else if(o=="row"){const a=i.resolve(r.from+1);s=he.rowSelection(a,a)}else if(!t){const a=Oe.get(r.node),l=r.from+1,c=l+a.map[a.width*a.height-1];s=he.create(i,l+1,c)}}else r instanceof X&&oC(r)?s=X.create(i,r.from):r instanceof X&&aC(r)&&(s=X.create(i,r.$from.start(),r.$from.end()));return s&&(e||(e=n.tr)).setSelection(s),e}var cC=new Ae("fix-tables");function sm(n,e,t,r){const i=n.childCount,s=e.childCount;e:for(let o=0,a=0;o{i.type.spec.tableRole=="table"&&(t=uC(n,i,s,t))};return e?e.doc!=n.doc&&sm(e.doc,n.doc,0,r):n.doc.descendants(r),t}function uC(n,e,t,r){const i=Oe.get(e);if(!i.problems)return r;r||(r=n.tr);const s=[];for(let l=0;l0){let f="cell";u.firstChild&&(f=u.firstChild.type.spec.tableRole);const h=[];for(let m=0;m0&&r>0||e.child(0).type.spec.tableRole=="table");)t--,r--,e=e.child(0).content;const i=e.child(0),s=i.type.spec.tableRole,o=i.type.schema,a=[];if(s=="row")for(let l=0;l=0;o--){const{rowspan:a,colspan:l}=s.child(o).attrs;for(let c=i;c=e.length&&e.push(R.empty),t[i]r&&(p=p.type.createChecked(cr(p.attrs,p.attrs.colspan,u+p.attrs.colspan-r),p.content)),c.push(p),u+=p.attrs.colspan;for(let f=1;fi&&(d=d.type.create({...d.attrs,rowspan:Math.max(1,i-d.attrs.rowspan)},d.content)),l.push(d)}s.push(R.from(l))}t=s,e=i}return{width:n,height:e,rows:t}}function hC(n,e,t,r,i,s,o){const a=n.doc.type.schema,l=Xe(a);let c,u;if(i>e.width)for(let d=0,p=0;de.height){const d=[];for(let h=0,g=(e.height-1)*e.width;h=e.width?!1:t.nodeAt(e.map[g+h]).type==l.header_cell;d.push(m?u||(u=l.header_cell.createAndFill()):c||(c=l.cell.createAndFill()))}const p=l.row.create(null,R.from(d)),f=[];for(let h=e.height;h{if(!i)return!1;const s=t.selection;if(s instanceof he)return Rs(t,r,ne.near(s.$headCell,e));if(n!="horiz"&&!s.empty)return!1;const o=am(i,n,e);if(o==null)return!1;if(n=="horiz")return Rs(t,r,ne.near(t.doc.resolve(s.head+e),e));{const a=t.doc.resolve(o),l=nm(a,n,e);let c;return l?c=ne.near(l,1):e<0?c=ne.near(t.doc.resolve(a.before(-1)),-1):c=ne.near(t.doc.resolve(a.after(-1)),1),Rs(t,r,c)}}}function ps(n,e){return(t,r,i)=>{if(!i)return!1;const s=t.selection;let o;if(s instanceof he)o=s;else{const l=am(i,n,e);if(l==null)return!1;o=new he(t.doc.resolve(l))}const a=nm(o.$headCell,n,e);return a?Rs(t,r,new he(o.$anchorCell,a)):!1}}function fs(n,e){const t=n.selection;if(!(t instanceof he))return!1;if(e){const r=n.tr,i=Xe(n.schema).cell.createAndFill().content;t.forEachCell((s,o)=>{s.content.eq(i)||r.replace(r.mapping.map(o+1),r.mapping.map(o+s.nodeSize-1),new F(i,0,0))}),r.docChanged&&e(r)}return!0}function mC(n,e){const t=n.state.doc,r=ei(t.resolve(e));return r?(n.dispatch(n.state.tr.setSelection(new he(r))),!0):!1}function bC(n,e,t){if(!It(n.state))return!1;let r=dC(t);const i=n.state.selection;if(i instanceof he){r||(r={width:1,height:1,rows:[R.from(Wl(Xe(n.state.schema).cell,t))]});const s=i.$anchorCell.node(-1),o=i.$anchorCell.start(-1),a=Oe.get(s).rectBetween(i.$anchorCell.pos-o,i.$headCell.pos-o);return r=fC(r,a.right-a.left,a.bottom-a.top),cp(n.state,n.dispatch,o,a,r),!0}else if(r){const s=Wo(n.state),o=s.start(-1);return cp(n.state,n.dispatch,o,Oe.get(s.node(-1)).findCell(s.pos-o),r),!0}else return!1}function yC(n,e){var t;if(e.ctrlKey||e.metaKey)return;const r=up(n,e.target);let i;if(e.shiftKey&&n.state.selection instanceof he)s(n.state.selection.$anchorCell,e),e.preventDefault();else if(e.shiftKey&&r&&(i=ei(n.state.selection.$anchor))!=null&&((t=qa(n,e))==null?void 0:t.pos)!=i.pos)s(i,e),e.preventDefault();else if(!r)return;function s(l,c){let u=qa(n,c);const d=vn.getState(n.state)==null;if(!u||!Vc(l,u))if(d)u=l;else return;const p=new he(l,u);if(d||!n.state.selection.eq(p)){const f=n.state.tr.setSelection(p);d&&f.setMeta(vn,l.pos),n.dispatch(f)}}function o(){n.root.removeEventListener("mouseup",o),n.root.removeEventListener("dragstart",o),n.root.removeEventListener("mousemove",a),vn.getState(n.state)!=null&&n.dispatch(n.state.tr.setMeta(vn,-1))}function a(l){const c=l,u=vn.getState(n.state);let d;if(u!=null)d=n.state.doc.resolve(u);else if(up(n,c.target)!=r&&(d=qa(n,e),!d))return o();d&&s(d,c)}n.root.addEventListener("mouseup",o),n.root.addEventListener("dragstart",o),n.root.addEventListener("mousemove",a)}function am(n,e,t){if(!(n.state.selection instanceof X))return null;const{$head:r}=n.state.selection;for(let i=r.depth-1;i>=0;i--){const s=r.node(i);if((t<0?r.index(i):r.indexAfter(i))!=(t<0?0:s.childCount))return null;if(s.type.spec.tableRole=="cell"||s.type.spec.tableRole=="header_cell"){const a=r.before(i),l=e=="vert"?t>0?"down":"up":t>0?"right":"left";return n.endOfTextblock(l)?a:null}}return null}function up(n,e){for(;e&&e!=n.dom;e=e.parentNode)if(e.nodeName=="TD"||e.nodeName=="TH")return e;return null}function qa(n,e){const t=n.posAtCoords({left:e.clientX,top:e.clientY});return t&&t?ei(n.state.doc.resolve(t.pos)):null}var vC=class{constructor(e,t){this.node=e,this.cellMinWidth=t,this.dom=document.createElement("div"),this.dom.className="tableWrapper",this.table=this.dom.appendChild(document.createElement("table")),this.colgroup=this.table.appendChild(document.createElement("colgroup")),Gl(e,this.colgroup,this.table,t),this.contentDOM=this.table.appendChild(document.createElement("tbody"))}update(e){return e.type!=this.node.type?!1:(this.node=e,Gl(e,this.colgroup,this.table,this.cellMinWidth),!0)}ignoreMutation(e){return e.type=="attributes"&&(e.target==this.table||this.colgroup.contains(e.target))}};function Gl(n,e,t,r,i,s){var o;let a=0,l=!0,c=e.firstChild;const u=n.firstChild;if(u){for(let d=0,p=0;dnew t(a,e,l),new Ds(-1,!1)},apply(s,o){return o.apply(s)}},props:{attributes:s=>{const o=Ct.getState(s);return o&&o.activeHandle>-1?{class:"resize-cursor"}:{}},handleDOMEvents:{mousemove:(s,o)=>{kC(s,o,n,e,r)},mouseleave:s=>{xC(s)},mousedown:(s,o)=>{EC(s,o,e)}},decorations:s=>{const o=Ct.getState(s);if(o&&o.activeHandle>-1)return TC(s,o.activeHandle)},nodeViews:{}}});return i}var Ds=class{constructor(n,e){this.activeHandle=n,this.dragging=e}apply(n){const e=this,t=n.getMeta(Ct);if(t&&t.setHandle!=null)return new Ds(t.setHandle,!1);if(t&&t.setDragging!==void 0)return new Ds(e.activeHandle,t.setDragging);if(e.activeHandle>-1&&n.docChanged){let r=n.mapping.map(e.activeHandle,-1);return Zl(n.doc.resolve(r))||(r=-1),new Ds(r,e.dragging)}return e}};function kC(n,e,t,r,i){const s=Ct.getState(n.state);if(s&&!s.dragging){const o=SC(e.target);let a=-1;if(o){const{left:l,right:c}=o.getBoundingClientRect();e.clientX-l<=t?a=dp(n,e,"left",t):c-e.clientX<=t&&(a=dp(n,e,"right",t))}if(a!=s.activeHandle){if(!i&&a!==-1){const l=n.state.doc.resolve(a),c=l.node(-1),u=Oe.get(c),d=l.start(-1);if(u.colCount(l.pos-d)+l.nodeAfter.attrs.colspan-1==u.width-1)return}lm(n,a)}}}function xC(n){const e=Ct.getState(n.state);e&&e.activeHandle>-1&&!e.dragging&&lm(n,-1)}function EC(n,e,t){const r=Ct.getState(n.state);if(!r||r.activeHandle==-1||r.dragging)return!1;const i=n.state.doc.nodeAt(r.activeHandle),s=CC(n,r.activeHandle,i.attrs);n.dispatch(n.state.tr.setMeta(Ct,{setDragging:{startX:e.clientX,startWidth:s}}));function o(l){window.removeEventListener("mouseup",o),window.removeEventListener("mousemove",a);const c=Ct.getState(n.state);c!=null&&c.dragging&&(_C(n,c.activeHandle,pp(c.dragging,l,t)),n.dispatch(n.state.tr.setMeta(Ct,{setDragging:null})))}function a(l){if(!l.which)return o(l);const c=Ct.getState(n.state);if(c&&c.dragging){const u=pp(c.dragging,l,t);MC(n,c.activeHandle,u,t)}}return window.addEventListener("mouseup",o),window.addEventListener("mousemove",a),e.preventDefault(),!0}function CC(n,e,{colspan:t,colwidth:r}){const i=r&&r[r.length-1];if(i)return i;const s=n.domAtPos(e);let a=s.node.childNodes[s.offset].offsetWidth,l=t;if(r)for(let c=0;c0?-1:0;iC(e,r,i+s)&&(s=i==0||i==e.width?null:0);for(let o=0;o0&&i0&&e.map[a-1]==l||i0?-1:0;DC(e,r,i+l)&&(l=i==0||i==e.height?null:0);for(let c=0,u=e.width*i;c0&&i0&&u==e.map[c-e.width]){const d=t.nodeAt(u).attrs;n.setNodeMarkup(n.mapping.slice(a).map(u+r),null,{...d,rowspan:d.rowspan-1}),l+=d.colspan-1}else if(i0&&t[s]==t[s-1]||r.right0&&t[i]==t[i-n]||r.bottomt[r.type.spec.tableRole])(n,e)}function VC(n){return(e,t)=>{var r;const i=e.selection;let s,o;if(i instanceof he){if(i.$anchorCell.pos!=i.$headCell.pos)return!1;s=i.$anchorCell.nodeAfter,o=i.$anchorCell.pos}else{if(s=tC(i.$from),!s)return!1;o=(r=ei(i.$from))==null?void 0:r.pos}if(s==null||o==null||s.attrs.colspan==1&&s.attrs.rowspan==1)return!1;if(t){let a=s.attrs;const l=[],c=a.colwidth;a.rowspan>1&&(a={...a,rowspan:1}),a.colspan>1&&(a={...a,colspan:1});const u=Xt(e),d=e.tr;for(let f=0;f{o.attrs[n]!==e&&s.setNodeMarkup(a,null,{...o.attrs,[n]:e})}):s.setNodeMarkup(i.pos,null,{...i.nodeAfter.attrs,[n]:e}),r(s)}return!0}}function zC(n){return function(e,t){if(!It(e))return!1;if(t){const r=Xe(e.schema),i=Xt(e),s=e.tr,o=i.map.cellsInRect(n=="column"?{left:i.left,top:0,right:i.right,bottom:i.map.height}:n=="row"?{left:0,top:i.top,right:i.map.width,bottom:i.bottom}:i),a=o.map(l=>i.table.nodeAt(l));for(let l=0;l{const h=f+s.tableStart,g=o.doc.nodeAt(h);g&&o.setNodeMarkup(h,p,g.attrs)}),r(o)}return!0}}Bi("row",{useDeprecatedLogic:!0});Bi("column",{useDeprecatedLogic:!0});var qC=Bi("cell",{useDeprecatedLogic:!0});function UC(n,e){if(e<0){const t=n.nodeBefore;if(t)return n.pos-t.nodeSize;for(let r=n.index(-1)-1,i=n.before();r>=0;r--){const s=n.node(-1).child(r),o=s.lastChild;if(o)return i-1-o.nodeSize;i-=s.nodeSize}}else{if(n.index()0;r--)if(t.node(r).type.spec.tableRole=="table")return e&&e(n.tr.delete(t.before(r),t.after(r)).scrollIntoView()),!0;return!1}function ZC({allowTableNodeSelection:n=!1}={}){return new _e({key:vn,state:{init(){return null},apply(e,t){const r=e.getMeta(vn);if(r!=null)return r==-1?null:r;if(t==null||!e.docChanged)return t;const{deleted:i,pos:s}=e.mapping.mapResult(t);return i?null:s}},props:{decorations:sC,handleDOMEvents:{mousedown:yC},createSelectionBetween(e){return vn.getState(e.state)!=null?e.state.selection:null},handleTripleClick:mC,handleKeyDown:gC,handlePaste:bC},appendTransaction(e,t,r){return lC(r,om(r,t),n)}})}function yp(n,e,t,r,i,s){let o=0,a=!0,l=e.firstChild;const c=n.firstChild;for(let u=0,d=0;u{const r=n.nodes[t];r.spec.tableRole&&(e[r.spec.tableRole]=r)}),n.cached.tableNodeTypes=e,e}function jC(n,e,t,r,i){const s=GC(n),o=[],a=[];for(let c=0;c{const{selection:e}=n.state;if(!JC(e))return!1;let t=0;const r=fg(e.ranges[0].$from,s=>s.type.name==="table");return r==null||r.node.descendants(s=>{if(s.type.name==="table")return!1;["tableCell","tableHeader"].includes(s.type.name)&&(t+=1)}),t===e.ranges.length?(n.commands.deleteTable(),!0):!1},YC=ce.create({name:"table",addOptions(){return{HTMLAttributes:{},resizable:!1,handleWidth:5,cellMinWidth:25,View:WC,lastColumnResizable:!0,allowTableNodeSelection:!1}},content:"tableRow+",tableRole:"table",isolating:!0,group:"block",parseHTML(){return[{tag:"table"}]},renderHTML({HTMLAttributes:n}){return["table",fe(this.options.HTMLAttributes,n),["tbody",0]]},addCommands(){return{insertTable:({rows:n=3,cols:e=3,withHeaderRow:t=!0}={})=>({tr:r,dispatch:i,editor:s})=>{const o=jC(s.schema,n,e,t);if(i){const a=r.selection.anchor+1;r.replaceSelectionWith(o).scrollIntoView().setSelection(X.near(r.doc.resolve(a)))}return!0},addColumnBefore:()=>({state:n,dispatch:e})=>NC(n,e),addColumnAfter:()=>({state:n,dispatch:e})=>OC(n,e),deleteColumn:()=>({state:n,dispatch:e})=>RC(n,e),addRowBefore:()=>({state:n,dispatch:e})=>IC(n,e),addRowAfter:()=>({state:n,dispatch:e})=>HC(n,e),deleteRow:()=>({state:n,dispatch:e})=>PC(n,e),deleteTable:()=>({state:n,dispatch:e})=>KC(n,e),mergeCells:()=>({state:n,dispatch:e})=>hp(n,e),splitCell:()=>({state:n,dispatch:e})=>gp(n,e),toggleHeaderColumn:()=>({state:n,dispatch:e})=>Bi("column")(n,e),toggleHeaderRow:()=>({state:n,dispatch:e})=>Bi("row")(n,e),toggleHeaderCell:()=>({state:n,dispatch:e})=>qC(n,e),mergeOrSplit:()=>({state:n,dispatch:e})=>hp(n,e)?!0:gp(n,e),setCellAttribute:(n,e)=>({state:t,dispatch:r})=>FC(n,e)(t,r),goToNextCell:()=>({state:n,dispatch:e})=>bp(1)(n,e),goToPreviousCell:()=>({state:n,dispatch:e})=>bp(-1)(n,e),fixTables:()=>({state:n,dispatch:e})=>(e&&om(n),!0),setCellSelection:n=>({tr:e,dispatch:t})=>{if(t){const r=he.create(e.doc,n.anchorCell,n.headCell);e.setSelection(r)}return!0}}},addKeyboardShortcuts(){return{Tab:()=>this.editor.commands.goToNextCell()?!0:this.editor.can().addRowAfter()?this.editor.chain().addRowAfter().goToNextCell().run():!1,"Shift-Tab":()=>this.editor.commands.goToPreviousCell(),Backspace:hs,"Mod-Backspace":hs,Delete:hs,"Mod-Delete":hs}},addProseMirrorPlugins(){return[...this.options.resizable&&this.editor.isEditable?[wC({handleWidth:this.options.handleWidth,cellMinWidth:this.options.cellMinWidth,View:this.options.View,lastColumnResizable:this.options.lastColumnResizable})]:[],ZC({allowTableNodeSelection:this.options.allowTableNodeSelection})]},extendNodeSchema(n){const e={name:n.name,options:n.options,storage:n.storage};return{tableRole:oe(W(n,"tableRole",e))}}}),XC=ce.create({name:"tableRow",addOptions(){return{HTMLAttributes:{}}},content:"(tableCell | tableHeader)*",tableRole:"row",parseHTML(){return[{tag:"tr"}]},renderHTML({HTMLAttributes:n}){return["tr",fe(this.options.HTMLAttributes,n),0]}}),QC=ce.create({name:"tableHeader",addOptions(){return{HTMLAttributes:{}}},content:"block+",addAttributes(){return{colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:n=>{const e=n.getAttribute("colwidth");return e?[parseInt(e,10)]:null}}}},tableRole:"header_cell",isolating:!0,parseHTML(){return[{tag:"th"}]},renderHTML({HTMLAttributes:n}){return["th",fe(this.options.HTMLAttributes,n),0]}}),eS=ce.create({name:"tableCell",addOptions(){return{HTMLAttributes:{}}},content:"block+",addAttributes(){return{colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:n=>{const e=n.getAttribute("colwidth");return e?[parseInt(e,10)]:null}}}},tableRole:"cell",isolating:!0,parseHTML(){return[{tag:"td"}]},renderHTML({HTMLAttributes:n}){return["td",fe(this.options.HTMLAttributes,n),0]}}),tS=we.create({name:"characterCount",addOptions(){return{limit:null,mode:"textSize"}},addStorage(){return{characters:()=>0,words:()=>0}},onBeforeCreate(){this.storage.characters=n=>{const e=(n==null?void 0:n.node)||this.editor.state.doc;return((n==null?void 0:n.mode)||this.options.mode)==="textSize"?e.textBetween(0,e.content.size,void 0," ").length:e.nodeSize},this.storage.words=n=>{const e=(n==null?void 0:n.node)||this.editor.state.doc;return e.textBetween(0,e.content.size," "," ").split(" ").filter(i=>i!=="").length}},addProseMirrorPlugins(){return[new _e({key:new Ae("characterCount"),filterTransaction:(n,e)=>{const t=this.options.limit;if(!n.docChanged||t===0||t===null||t===void 0)return!0;const r=this.storage.characters({node:e.doc}),i=this.storage.characters({node:n.doc});if(i<=t||r>t&&i>t&&i<=r)return!0;if(r>t&&i>t&&i>r||!n.getMeta("paste"))return!1;const o=n.selection.$head.pos,a=i-t,l=o-a,c=o;return n.deleteRange(l,c),!(this.storage.characters({node:n.doc})>t)}})]}}),nS="aaa1rp3barth4b0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0faromeo7ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4vianca6w0s2x0a2z0ure5ba0by2idu3namex3narepublic11d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2ntley5rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re2s2c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y0eats7k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0cast4mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking0channel11l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dabur3d1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3nlop4pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t0isalat7u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0at2delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d0network8tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntdoor4ier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2o0dyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0ardian6cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5gtv3iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0eles2s3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6logistics9properties14fh2g1h1i0a1ds2m1nder2le4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3ncaster5ia3d0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4de2k2psy3ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0cys3drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7serati6ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rckmsd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic3tual5v1w1x1y1z2na0b1goya4me2tura4vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rthwesternmutual14on4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9dnavy5lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3ssagens7y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0america6xi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0stone5umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cher3ks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0a1b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp2w2ell3ia1ksha5oes2p0ping5uji3w0time7i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ffany5ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0channel7ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lkswagen7vo3te1ing3o2yage5u0elos6wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2olterskluwer11odside6rk0s2ld3w2s1tc1f3xbox3erox4finity6ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2",rS="ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5تصالات6رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2",jr=(n,e)=>{for(const t in e)n[t]=e[t];return n},jl="numeric",Jl="ascii",Yl="alpha",Is="asciinumeric",gs="alphanumeric",Xl="domain",dm="emoji",iS="scheme",sS="slashscheme",wp="whitespace";function oS(n,e){return n in e||(e[n]=[]),e[n]}function Zn(n,e,t){e[jl]&&(e[Is]=!0,e[gs]=!0),e[Jl]&&(e[Is]=!0,e[Yl]=!0),e[Is]&&(e[gs]=!0),e[Yl]&&(e[gs]=!0),e[gs]&&(e[Xl]=!0),e[dm]&&(e[Xl]=!0);for(const r in e){const i=oS(r,t);i.indexOf(n)<0&&i.push(n)}}function aS(n,e){const t={};for(const r in e)e[r].indexOf(n)>=0&&(t[r]=!0);return t}function ct(n){n===void 0&&(n=null),this.j={},this.jr=[],this.jd=null,this.t=n}ct.groups={};ct.prototype={accepts(){return!!this.t},go(n){const e=this,t=e.j[n];if(t)return t;for(let r=0;rn.ta(e,t,r,i),xt=(n,e,t,r,i)=>n.tr(e,t,r,i),kp=(n,e,t,r,i)=>n.ts(e,t,r,i),H=(n,e,t,r,i)=>n.tt(e,t,r,i),rn="WORD",Ql="UWORD",Pi="LOCALHOST",ec="TLD",tc="UTLD",Hs="SCHEME",Mr="SLASH_SCHEME",Fc="NUM",pm="WS",zc="NL",Lr="OPENBRACE",ki="OPENBRACKET",xi="OPENANGLEBRACKET",Ei="OPENPAREN",zn="CLOSEBRACE",Rr="CLOSEBRACKET",Dr="CLOSEANGLEBRACKET",qn="CLOSEPAREN",so="AMPERSAND",oo="APOSTROPHE",ao="ASTERISK",mn="AT",lo="BACKSLASH",co="BACKTICK",uo="CARET",wn="COLON",qc="COMMA",po="DOLLAR",Pt="DOT",fo="EQUALS",Uc="EXCLAMATION",$t="HYPHEN",ho="PERCENT",go="PIPE",mo="PLUS",bo="POUND",yo="QUERY",Kc="QUOTE",Zc="SEMI",Vt="SLASH",Ci="TILDE",vo="UNDERSCORE",fm="EMOJI",wo="SYM";var hm=Object.freeze({__proto__:null,WORD:rn,UWORD:Ql,LOCALHOST:Pi,TLD:ec,UTLD:tc,SCHEME:Hs,SLASH_SCHEME:Mr,NUM:Fc,WS:pm,NL:zc,OPENBRACE:Lr,OPENBRACKET:ki,OPENANGLEBRACKET:xi,OPENPAREN:Ei,CLOSEBRACE:zn,CLOSEBRACKET:Rr,CLOSEANGLEBRACKET:Dr,CLOSEPAREN:qn,AMPERSAND:so,APOSTROPHE:oo,ASTERISK:ao,AT:mn,BACKSLASH:lo,BACKTICK:co,CARET:uo,COLON:wn,COMMA:qc,DOLLAR:po,DOT:Pt,EQUALS:fo,EXCLAMATION:Uc,HYPHEN:$t,PERCENT:ho,PIPE:go,PLUS:mo,POUND:bo,QUERY:yo,QUOTE:Kc,SEMI:Zc,SLASH:Vt,TILDE:Ci,UNDERSCORE:vo,EMOJI:fm,SYM:wo});const wr=/[a-z]/,Ua=/\p{L}/u,Ka=/\p{Emoji}/u,Za=/\d/,xp=/\s/,Ep=` + `,tm(e,n.editor.view.dom,o=>n.editor.commands.updateAttributes("image",o)),{dom:e}}},addProseMirrorPlugins(){const n=this.editor;return[new _e({key:op,state:{init:()=>Ee.empty,apply:(e,t)=>{const r=e.getMeta(li);if(r){let i=!1;const s=t.map(e.mapping,e.doc,{onRemove:o=>{i=!0}});i||(t=s),r.type==="add"?t=t.add(e.doc,[em(r)]):r.type==="remove"&&(t=t.remove(t.find(void 0,void 0,o=>o.id==r.id)))}return t}},props:{decorations(e){return this.getState(e)},handlePaste:(e,t)=>{var i;const r=Array.from(((i=t.clipboardData)==null?void 0:i.items)||[]);for(const s of r)if(s.type.indexOf("image")===0){t.preventDefault();const o=s.getAsFile();o&&this.editor.commands.uploadImage(o)}},handleDOMEvents:{drop(e,t){if(!(t.dataTransfer&&t.dataTransfer.files&&t.dataTransfer.files.length))return!1;const i=Array.from(t.dataTransfer.files).filter(c=>/image/i.test(c.type));if(i.length===0)return!1;t.preventDefault();const{state:{tr:s,doc:o},dispatch:a}=e,l=e.posAtCoords({left:t.clientX,top:t.clientY});return a(s.setSelection(X.create(o,l.pos)).scrollIntoView()),i.forEach(c=>{n.commands.uploadImage(c)}),!0}},transformPastedHTML(e){const r=new DOMParser().parseFromString(e,"text/html"),i=r.documentElement.querySelector("body");if(i!=null&&i.children){const s=r.documentElement.querySelectorAll("p > img");for(const o of s){const a=o.parentNode,l=Array.prototype.indexOf.call(i.children,a);o.parentElement.prepend(o),i.insertBefore(o,i.children[l])}return i.innerHTML}return e}}})]}});var Ul,Kl;if(typeof WeakMap<"u"){let n=new WeakMap;Ul=e=>n.get(e),Kl=(e,t)=>(n.set(e,t),t)}else{const n=[];let t=0;Ul=r=>{for(let i=0;i(t==10&&(t=0),n[t++]=r,n[t++]=i)}var Oe=class{constructor(n,e,t,r){this.width=n,this.height=e,this.map=t,this.problems=r}findCell(n){for(let e=0;e=t){(s||(s=[])).push({type:"overlong_rowspan",pos:u,n:v-k});break}const b=i+k*e;for(let E=0;Er&&(s+=c.attrs.colspan)}}for(let o=0;o1&&(t=!0)}e==-1?e=s:e!=s&&(e=Math.max(e,s))}return e}function Q2(n,e,t){n.problems||(n.problems=[]);const r={};for(let i=0;i0;e--)if(n.node(e).type.spec.tableRole=="row")return n.node(0).resolve(n.before(e+1));return null}function tC(n){for(let e=n.depth;e>0;e--){const t=n.node(e).type.spec.tableRole;if(t==="cell"||t==="header_cell")return n.node(e)}return null}function It(n){const e=n.selection.$head;for(let t=e.depth;t>0;t--)if(e.node(t).type.spec.tableRole=="row")return!0;return!1}function Wo(n){const e=n.selection;if("$anchorCell"in e&&e.$anchorCell)return e.$anchorCell.pos>e.$headCell.pos?e.$anchorCell:e.$headCell;if("node"in e&&e.node&&e.node.type.spec.tableRole=="cell")return e.$anchor;const t=ei(e.$head)||nC(e.$head);if(t)return t;throw new RangeError(`No cell found around position ${e.head}`)}function nC(n){for(let e=n.nodeAfter,t=n.pos;e;e=e.firstChild,t++){const r=e.type.spec.tableRole;if(r=="cell"||r=="header_cell")return n.doc.resolve(t)}for(let e=n.nodeBefore,t=n.pos;e;e=e.lastChild,t--){const r=e.type.spec.tableRole;if(r=="cell"||r=="header_cell")return n.doc.resolve(t-e.nodeSize)}}function Zl(n){return n.parent.type.spec.tableRole=="row"&&!!n.nodeAfter}function rC(n){return n.node(0).resolve(n.pos+n.nodeAfter.nodeSize)}function Vc(n,e){return n.depth==e.depth&&n.pos>=e.start(-1)&&n.pos<=e.end(-1)}function nm(n,e,t){const r=n.node(-1),i=Oe.get(r),s=n.start(-1),o=i.nextCell(n.pos-s,e,t);return o==null?null:n.node(0).resolve(s+o)}function cr(n,e,t=1){const r={...n,colspan:n.colspan-t};return r.colwidth&&(r.colwidth=r.colwidth.slice(),r.colwidth.splice(e,t),r.colwidth.some(i=>i>0)||(r.colwidth=null)),r}function rm(n,e,t=1){const r={...n,colspan:n.colspan+t};if(r.colwidth){r.colwidth=r.colwidth.slice();for(let i=0;ic!=e.pos-i);a.unshift(e.pos-i);const l=a.map(c=>{const u=t.nodeAt(c);if(!u)throw RangeError(`No cell with offset ${c} found`);const d=i+c+1;return new kh(o.resolve(d),o.resolve(d+u.content.size))});super(l[0].$from,l[0].$to,l),this.$anchorCell=n,this.$headCell=e}map(n,e){const t=n.resolve(e.map(this.$anchorCell.pos)),r=n.resolve(e.map(this.$headCell.pos));if(Zl(t)&&Zl(r)&&Vc(t,r)){const i=this.$anchorCell.node(-1)!=t.node(-1);return i&&this.isRowSelection()?fe.rowSelection(t,r):i&&this.isColSelection()?fe.colSelection(t,r):new fe(t,r)}return X.between(t,r)}content(){const n=this.$anchorCell.node(-1),e=Oe.get(n),t=this.$anchorCell.start(-1),r=e.rectBetween(this.$anchorCell.pos-t,this.$headCell.pos-t),i={},s=[];for(let a=r.top;a0||g>0){let m=f.attrs;if(h>0&&(m=cr(m,0,h)),g>0&&(m=cr(m,m.colspan-g,g)),p.leftr.bottom){const m={...f.attrs,rowspan:Math.min(p.bottom,r.bottom)-Math.max(p.top,r.top)};p.top0)return!1;const t=n+this.$anchorCell.nodeAfter.attrs.rowspan,r=e+this.$headCell.nodeAfter.attrs.rowspan;return Math.max(t,r)==this.$headCell.node(-1).childCount}static colSelection(n,e=n){const t=n.node(-1),r=Oe.get(t),i=n.start(-1),s=r.findCell(n.pos-i),o=r.findCell(e.pos-i),a=n.node(0);return s.top<=o.top?(s.top>0&&(n=a.resolve(i+r.map[s.left])),o.bottom0&&(e=a.resolve(i+r.map[o.left])),s.bottom0)return!1;const s=r+this.$anchorCell.nodeAfter.attrs.colspan,o=i+this.$headCell.nodeAfter.attrs.colspan;return Math.max(s,o)==e.width}eq(n){return n instanceof fe&&n.$anchorCell.pos==this.$anchorCell.pos&&n.$headCell.pos==this.$headCell.pos}static rowSelection(n,e=n){const t=n.node(-1),r=Oe.get(t),i=n.start(-1),s=r.findCell(n.pos-i),o=r.findCell(e.pos-i),a=n.node(0);return s.left<=o.left?(s.left>0&&(n=a.resolve(i+r.map[s.top*r.width])),o.right0&&(e=a.resolve(i+r.map[o.top*r.width])),s.right{e.push(Be.node(r,r+t.nodeSize,{class:"selectedCell"}))}),Ee.create(n.doc,e)}function oC({$from:n,$to:e}){if(n.pos==e.pos||n.pos=0&&!(n.after(i+1)=0&&!(e.before(s+1)>e.start(s));s--,r--);return t==r&&/row|table/.test(n.node(i).type.spec.tableRole)}function aC({$from:n,$to:e}){let t,r;for(let i=n.depth;i>0;i--){const s=n.node(i);if(s.type.spec.tableRole==="cell"||s.type.spec.tableRole==="header_cell"){t=s;break}}for(let i=e.depth;i>0;i--){const s=e.node(i);if(s.type.spec.tableRole==="cell"||s.type.spec.tableRole==="header_cell"){r=s;break}}return t!==r&&e.parentOffset===0}function lC(n,e,t){const r=(e||n).selection,i=(e||n).doc;let s,o;if(r instanceof Q&&(o=r.node.type.spec.tableRole)){if(o=="cell"||o=="header_cell")s=fe.create(i,r.from);else if(o=="row"){const a=i.resolve(r.from+1);s=fe.rowSelection(a,a)}else if(!t){const a=Oe.get(r.node),l=r.from+1,c=l+a.map[a.width*a.height-1];s=fe.create(i,l+1,c)}}else r instanceof X&&oC(r)?s=X.create(i,r.from):r instanceof X&&aC(r)&&(s=X.create(i,r.$from.start(),r.$from.end()));return s&&(e||(e=n.tr)).setSelection(s),e}var cC=new Ae("fix-tables");function sm(n,e,t,r){const i=n.childCount,s=e.childCount;e:for(let o=0,a=0;o{i.type.spec.tableRole=="table"&&(t=uC(n,i,s,t))};return e?e.doc!=n.doc&&sm(e.doc,n.doc,0,r):n.doc.descendants(r),t}function uC(n,e,t,r){const i=Oe.get(e);if(!i.problems)return r;r||(r=n.tr);const s=[];for(let l=0;l0){let f="cell";u.firstChild&&(f=u.firstChild.type.spec.tableRole);const h=[];for(let m=0;m0&&r>0||e.child(0).type.spec.tableRole=="table");)t--,r--,e=e.child(0).content;const i=e.child(0),s=i.type.spec.tableRole,o=i.type.schema,a=[];if(s=="row")for(let l=0;l=0;o--){const{rowspan:a,colspan:l}=s.child(o).attrs;for(let c=i;c=e.length&&e.push(R.empty),t[i]r&&(p=p.type.createChecked(cr(p.attrs,p.attrs.colspan,u+p.attrs.colspan-r),p.content)),c.push(p),u+=p.attrs.colspan;for(let f=1;fi&&(d=d.type.create({...d.attrs,rowspan:Math.max(1,i-d.attrs.rowspan)},d.content)),l.push(d)}s.push(R.from(l))}t=s,e=i}return{width:n,height:e,rows:t}}function hC(n,e,t,r,i,s,o){const a=n.doc.type.schema,l=Xe(a);let c,u;if(i>e.width)for(let d=0,p=0;de.height){const d=[];for(let h=0,g=(e.height-1)*e.width;h=e.width?!1:t.nodeAt(e.map[g+h]).type==l.header_cell;d.push(m?u||(u=l.header_cell.createAndFill()):c||(c=l.cell.createAndFill()))}const p=l.row.create(null,R.from(d)),f=[];for(let h=e.height;h{if(!i)return!1;const s=t.selection;if(s instanceof fe)return Rs(t,r,ne.near(s.$headCell,e));if(n!="horiz"&&!s.empty)return!1;const o=am(i,n,e);if(o==null)return!1;if(n=="horiz")return Rs(t,r,ne.near(t.doc.resolve(s.head+e),e));{const a=t.doc.resolve(o),l=nm(a,n,e);let c;return l?c=ne.near(l,1):e<0?c=ne.near(t.doc.resolve(a.before(-1)),-1):c=ne.near(t.doc.resolve(a.after(-1)),1),Rs(t,r,c)}}}function ps(n,e){return(t,r,i)=>{if(!i)return!1;const s=t.selection;let o;if(s instanceof fe)o=s;else{const l=am(i,n,e);if(l==null)return!1;o=new fe(t.doc.resolve(l))}const a=nm(o.$headCell,n,e);return a?Rs(t,r,new fe(o.$anchorCell,a)):!1}}function fs(n,e){const t=n.selection;if(!(t instanceof fe))return!1;if(e){const r=n.tr,i=Xe(n.schema).cell.createAndFill().content;t.forEachCell((s,o)=>{s.content.eq(i)||r.replace(r.mapping.map(o+1),r.mapping.map(o+s.nodeSize-1),new F(i,0,0))}),r.docChanged&&e(r)}return!0}function mC(n,e){const t=n.state.doc,r=ei(t.resolve(e));return r?(n.dispatch(n.state.tr.setSelection(new fe(r))),!0):!1}function bC(n,e,t){if(!It(n.state))return!1;let r=dC(t);const i=n.state.selection;if(i instanceof fe){r||(r={width:1,height:1,rows:[R.from(Wl(Xe(n.state.schema).cell,t))]});const s=i.$anchorCell.node(-1),o=i.$anchorCell.start(-1),a=Oe.get(s).rectBetween(i.$anchorCell.pos-o,i.$headCell.pos-o);return r=fC(r,a.right-a.left,a.bottom-a.top),cp(n.state,n.dispatch,o,a,r),!0}else if(r){const s=Wo(n.state),o=s.start(-1);return cp(n.state,n.dispatch,o,Oe.get(s.node(-1)).findCell(s.pos-o),r),!0}else return!1}function yC(n,e){var t;if(e.ctrlKey||e.metaKey)return;const r=up(n,e.target);let i;if(e.shiftKey&&n.state.selection instanceof fe)s(n.state.selection.$anchorCell,e),e.preventDefault();else if(e.shiftKey&&r&&(i=ei(n.state.selection.$anchor))!=null&&((t=qa(n,e))==null?void 0:t.pos)!=i.pos)s(i,e),e.preventDefault();else if(!r)return;function s(l,c){let u=qa(n,c);const d=vn.getState(n.state)==null;if(!u||!Vc(l,u))if(d)u=l;else return;const p=new fe(l,u);if(d||!n.state.selection.eq(p)){const f=n.state.tr.setSelection(p);d&&f.setMeta(vn,l.pos),n.dispatch(f)}}function o(){n.root.removeEventListener("mouseup",o),n.root.removeEventListener("dragstart",o),n.root.removeEventListener("mousemove",a),vn.getState(n.state)!=null&&n.dispatch(n.state.tr.setMeta(vn,-1))}function a(l){const c=l,u=vn.getState(n.state);let d;if(u!=null)d=n.state.doc.resolve(u);else if(up(n,c.target)!=r&&(d=qa(n,e),!d))return o();d&&s(d,c)}n.root.addEventListener("mouseup",o),n.root.addEventListener("dragstart",o),n.root.addEventListener("mousemove",a)}function am(n,e,t){if(!(n.state.selection instanceof X))return null;const{$head:r}=n.state.selection;for(let i=r.depth-1;i>=0;i--){const s=r.node(i);if((t<0?r.index(i):r.indexAfter(i))!=(t<0?0:s.childCount))return null;if(s.type.spec.tableRole=="cell"||s.type.spec.tableRole=="header_cell"){const a=r.before(i),l=e=="vert"?t>0?"down":"up":t>0?"right":"left";return n.endOfTextblock(l)?a:null}}return null}function up(n,e){for(;e&&e!=n.dom;e=e.parentNode)if(e.nodeName=="TD"||e.nodeName=="TH")return e;return null}function qa(n,e){const t=n.posAtCoords({left:e.clientX,top:e.clientY});return t&&t?ei(n.state.doc.resolve(t.pos)):null}var vC=class{constructor(e,t){this.node=e,this.cellMinWidth=t,this.dom=document.createElement("div"),this.dom.className="tableWrapper",this.table=this.dom.appendChild(document.createElement("table")),this.colgroup=this.table.appendChild(document.createElement("colgroup")),Gl(e,this.colgroup,this.table,t),this.contentDOM=this.table.appendChild(document.createElement("tbody"))}update(e){return e.type!=this.node.type?!1:(this.node=e,Gl(e,this.colgroup,this.table,this.cellMinWidth),!0)}ignoreMutation(e){return e.type=="attributes"&&(e.target==this.table||this.colgroup.contains(e.target))}};function Gl(n,e,t,r,i,s){var o;let a=0,l=!0,c=e.firstChild;const u=n.firstChild;if(u){for(let d=0,p=0;dnew t(a,e,l),new Ds(-1,!1)},apply(s,o){return o.apply(s)}},props:{attributes:s=>{const o=Ct.getState(s);return o&&o.activeHandle>-1?{class:"resize-cursor"}:{}},handleDOMEvents:{mousemove:(s,o)=>{kC(s,o,n,e,r)},mouseleave:s=>{xC(s)},mousedown:(s,o)=>{EC(s,o,e)}},decorations:s=>{const o=Ct.getState(s);if(o&&o.activeHandle>-1)return TC(s,o.activeHandle)},nodeViews:{}}});return i}var Ds=class{constructor(n,e){this.activeHandle=n,this.dragging=e}apply(n){const e=this,t=n.getMeta(Ct);if(t&&t.setHandle!=null)return new Ds(t.setHandle,!1);if(t&&t.setDragging!==void 0)return new Ds(e.activeHandle,t.setDragging);if(e.activeHandle>-1&&n.docChanged){let r=n.mapping.map(e.activeHandle,-1);return Zl(n.doc.resolve(r))||(r=-1),new Ds(r,e.dragging)}return e}};function kC(n,e,t,r,i){const s=Ct.getState(n.state);if(s&&!s.dragging){const o=SC(e.target);let a=-1;if(o){const{left:l,right:c}=o.getBoundingClientRect();e.clientX-l<=t?a=dp(n,e,"left",t):c-e.clientX<=t&&(a=dp(n,e,"right",t))}if(a!=s.activeHandle){if(!i&&a!==-1){const l=n.state.doc.resolve(a),c=l.node(-1),u=Oe.get(c),d=l.start(-1);if(u.colCount(l.pos-d)+l.nodeAfter.attrs.colspan-1==u.width-1)return}lm(n,a)}}}function xC(n){const e=Ct.getState(n.state);e&&e.activeHandle>-1&&!e.dragging&&lm(n,-1)}function EC(n,e,t){const r=Ct.getState(n.state);if(!r||r.activeHandle==-1||r.dragging)return!1;const i=n.state.doc.nodeAt(r.activeHandle),s=CC(n,r.activeHandle,i.attrs);n.dispatch(n.state.tr.setMeta(Ct,{setDragging:{startX:e.clientX,startWidth:s}}));function o(l){window.removeEventListener("mouseup",o),window.removeEventListener("mousemove",a);const c=Ct.getState(n.state);c!=null&&c.dragging&&(_C(n,c.activeHandle,pp(c.dragging,l,t)),n.dispatch(n.state.tr.setMeta(Ct,{setDragging:null})))}function a(l){if(!l.which)return o(l);const c=Ct.getState(n.state);if(c&&c.dragging){const u=pp(c.dragging,l,t);MC(n,c.activeHandle,u,t)}}return window.addEventListener("mouseup",o),window.addEventListener("mousemove",a),e.preventDefault(),!0}function CC(n,e,{colspan:t,colwidth:r}){const i=r&&r[r.length-1];if(i)return i;const s=n.domAtPos(e);let a=s.node.childNodes[s.offset].offsetWidth,l=t;if(r)for(let c=0;c0?-1:0;iC(e,r,i+s)&&(s=i==0||i==e.width?null:0);for(let o=0;o0&&i0&&e.map[a-1]==l||i0?-1:0;DC(e,r,i+l)&&(l=i==0||i==e.height?null:0);for(let c=0,u=e.width*i;c0&&i0&&u==e.map[c-e.width]){const d=t.nodeAt(u).attrs;n.setNodeMarkup(n.mapping.slice(a).map(u+r),null,{...d,rowspan:d.rowspan-1}),l+=d.colspan-1}else if(i0&&t[s]==t[s-1]||r.right0&&t[i]==t[i-n]||r.bottomt[r.type.spec.tableRole])(n,e)}function VC(n){return(e,t)=>{var r;const i=e.selection;let s,o;if(i instanceof fe){if(i.$anchorCell.pos!=i.$headCell.pos)return!1;s=i.$anchorCell.nodeAfter,o=i.$anchorCell.pos}else{if(s=tC(i.$from),!s)return!1;o=(r=ei(i.$from))==null?void 0:r.pos}if(s==null||o==null||s.attrs.colspan==1&&s.attrs.rowspan==1)return!1;if(t){let a=s.attrs;const l=[],c=a.colwidth;a.rowspan>1&&(a={...a,rowspan:1}),a.colspan>1&&(a={...a,colspan:1});const u=Xt(e),d=e.tr;for(let f=0;f{o.attrs[n]!==e&&s.setNodeMarkup(a,null,{...o.attrs,[n]:e})}):s.setNodeMarkup(i.pos,null,{...i.nodeAfter.attrs,[n]:e}),r(s)}return!0}}function zC(n){return function(e,t){if(!It(e))return!1;if(t){const r=Xe(e.schema),i=Xt(e),s=e.tr,o=i.map.cellsInRect(n=="column"?{left:i.left,top:0,right:i.right,bottom:i.map.height}:n=="row"?{left:0,top:i.top,right:i.map.width,bottom:i.bottom}:i),a=o.map(l=>i.table.nodeAt(l));for(let l=0;l{const h=f+s.tableStart,g=o.doc.nodeAt(h);g&&o.setNodeMarkup(h,p,g.attrs)}),r(o)}return!0}}Bi("row",{useDeprecatedLogic:!0});Bi("column",{useDeprecatedLogic:!0});var qC=Bi("cell",{useDeprecatedLogic:!0});function UC(n,e){if(e<0){const t=n.nodeBefore;if(t)return n.pos-t.nodeSize;for(let r=n.index(-1)-1,i=n.before();r>=0;r--){const s=n.node(-1).child(r),o=s.lastChild;if(o)return i-1-o.nodeSize;i-=s.nodeSize}}else{if(n.index()0;r--)if(t.node(r).type.spec.tableRole=="table")return e&&e(n.tr.delete(t.before(r),t.after(r)).scrollIntoView()),!0;return!1}function ZC({allowTableNodeSelection:n=!1}={}){return new _e({key:vn,state:{init(){return null},apply(e,t){const r=e.getMeta(vn);if(r!=null)return r==-1?null:r;if(t==null||!e.docChanged)return t;const{deleted:i,pos:s}=e.mapping.mapResult(t);return i?null:s}},props:{decorations:sC,handleDOMEvents:{mousedown:yC},createSelectionBetween(e){return vn.getState(e.state)!=null?e.state.selection:null},handleTripleClick:mC,handleKeyDown:gC,handlePaste:bC},appendTransaction(e,t,r){return lC(r,om(r,t),n)}})}function yp(n,e,t,r,i,s){let o=0,a=!0,l=e.firstChild;const c=n.firstChild;for(let u=0,d=0;u{const r=n.nodes[t];r.spec.tableRole&&(e[r.spec.tableRole]=r)}),n.cached.tableNodeTypes=e,e}function jC(n,e,t,r,i){const s=GC(n),o=[],a=[];for(let c=0;c{const{selection:e}=n.state;if(!JC(e))return!1;let t=0;const r=fg(e.ranges[0].$from,s=>s.type.name==="table");return r==null||r.node.descendants(s=>{if(s.type.name==="table")return!1;["tableCell","tableHeader"].includes(s.type.name)&&(t+=1)}),t===e.ranges.length?(n.commands.deleteTable(),!0):!1},YC=ce.create({name:"table",addOptions(){return{HTMLAttributes:{},resizable:!1,handleWidth:5,cellMinWidth:25,View:WC,lastColumnResizable:!0,allowTableNodeSelection:!1}},content:"tableRow+",tableRole:"table",isolating:!0,group:"block",parseHTML(){return[{tag:"table"}]},renderHTML({HTMLAttributes:n}){return["table",he(this.options.HTMLAttributes,n),["tbody",0]]},addCommands(){return{insertTable:({rows:n=3,cols:e=3,withHeaderRow:t=!0}={})=>({tr:r,dispatch:i,editor:s})=>{const o=jC(s.schema,n,e,t);if(i){const a=r.selection.anchor+1;r.replaceSelectionWith(o).scrollIntoView().setSelection(X.near(r.doc.resolve(a)))}return!0},addColumnBefore:()=>({state:n,dispatch:e})=>NC(n,e),addColumnAfter:()=>({state:n,dispatch:e})=>OC(n,e),deleteColumn:()=>({state:n,dispatch:e})=>RC(n,e),addRowBefore:()=>({state:n,dispatch:e})=>IC(n,e),addRowAfter:()=>({state:n,dispatch:e})=>HC(n,e),deleteRow:()=>({state:n,dispatch:e})=>PC(n,e),deleteTable:()=>({state:n,dispatch:e})=>KC(n,e),mergeCells:()=>({state:n,dispatch:e})=>hp(n,e),splitCell:()=>({state:n,dispatch:e})=>gp(n,e),toggleHeaderColumn:()=>({state:n,dispatch:e})=>Bi("column")(n,e),toggleHeaderRow:()=>({state:n,dispatch:e})=>Bi("row")(n,e),toggleHeaderCell:()=>({state:n,dispatch:e})=>qC(n,e),mergeOrSplit:()=>({state:n,dispatch:e})=>hp(n,e)?!0:gp(n,e),setCellAttribute:(n,e)=>({state:t,dispatch:r})=>FC(n,e)(t,r),goToNextCell:()=>({state:n,dispatch:e})=>bp(1)(n,e),goToPreviousCell:()=>({state:n,dispatch:e})=>bp(-1)(n,e),fixTables:()=>({state:n,dispatch:e})=>(e&&om(n),!0),setCellSelection:n=>({tr:e,dispatch:t})=>{if(t){const r=fe.create(e.doc,n.anchorCell,n.headCell);e.setSelection(r)}return!0}}},addKeyboardShortcuts(){return{Tab:()=>this.editor.commands.goToNextCell()?!0:this.editor.can().addRowAfter()?this.editor.chain().addRowAfter().goToNextCell().run():!1,"Shift-Tab":()=>this.editor.commands.goToPreviousCell(),Backspace:hs,"Mod-Backspace":hs,Delete:hs,"Mod-Delete":hs}},addProseMirrorPlugins(){return[...this.options.resizable&&this.editor.isEditable?[wC({handleWidth:this.options.handleWidth,cellMinWidth:this.options.cellMinWidth,View:this.options.View,lastColumnResizable:this.options.lastColumnResizable})]:[],ZC({allowTableNodeSelection:this.options.allowTableNodeSelection})]},extendNodeSchema(n){const e={name:n.name,options:n.options,storage:n.storage};return{tableRole:oe(W(n,"tableRole",e))}}}),XC=ce.create({name:"tableRow",addOptions(){return{HTMLAttributes:{}}},content:"(tableCell | tableHeader)*",tableRole:"row",parseHTML(){return[{tag:"tr"}]},renderHTML({HTMLAttributes:n}){return["tr",he(this.options.HTMLAttributes,n),0]}}),QC=ce.create({name:"tableHeader",addOptions(){return{HTMLAttributes:{}}},content:"block+",addAttributes(){return{colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:n=>{const e=n.getAttribute("colwidth");return e?[parseInt(e,10)]:null}}}},tableRole:"header_cell",isolating:!0,parseHTML(){return[{tag:"th"}]},renderHTML({HTMLAttributes:n}){return["th",he(this.options.HTMLAttributes,n),0]}}),eS=ce.create({name:"tableCell",addOptions(){return{HTMLAttributes:{}}},content:"block+",addAttributes(){return{colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:n=>{const e=n.getAttribute("colwidth");return e?[parseInt(e,10)]:null}}}},tableRole:"cell",isolating:!0,parseHTML(){return[{tag:"td"}]},renderHTML({HTMLAttributes:n}){return["td",he(this.options.HTMLAttributes,n),0]}}),tS=we.create({name:"characterCount",addOptions(){return{limit:null,mode:"textSize"}},addStorage(){return{characters:()=>0,words:()=>0}},onBeforeCreate(){this.storage.characters=n=>{const e=(n==null?void 0:n.node)||this.editor.state.doc;return((n==null?void 0:n.mode)||this.options.mode)==="textSize"?e.textBetween(0,e.content.size,void 0," ").length:e.nodeSize},this.storage.words=n=>{const e=(n==null?void 0:n.node)||this.editor.state.doc;return e.textBetween(0,e.content.size," "," ").split(" ").filter(i=>i!=="").length}},addProseMirrorPlugins(){return[new _e({key:new Ae("characterCount"),filterTransaction:(n,e)=>{const t=this.options.limit;if(!n.docChanged||t===0||t===null||t===void 0)return!0;const r=this.storage.characters({node:e.doc}),i=this.storage.characters({node:n.doc});if(i<=t||r>t&&i>t&&i<=r)return!0;if(r>t&&i>t&&i>r||!n.getMeta("paste"))return!1;const o=n.selection.$head.pos,a=i-t,l=o-a,c=o;return n.deleteRange(l,c),!(this.storage.characters({node:n.doc})>t)}})]}}),nS="aaa1rp3barth4b0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0faromeo7ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4vianca6w0s2x0a2z0ure5ba0by2idu3namex3narepublic11d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2ntley5rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re2s2c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y0eats7k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0cast4mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking0channel11l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dabur3d1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3nlop4pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t0isalat7u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0at2delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d0network8tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntdoor4ier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2o0dyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0ardian6cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5gtv3iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0eles2s3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6logistics9properties14fh2g1h1i0a1ds2m1nder2le4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3ncaster5ia3d0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4de2k2psy3ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0cys3drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7serati6ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rckmsd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic3tual5v1w1x1y1z2na0b1goya4me2tura4vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rthwesternmutual14on4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9dnavy5lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3ssagens7y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0america6xi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0stone5umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cher3ks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0a1b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp2w2ell3ia1ksha5oes2p0ping5uji3w0time7i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ffany5ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0channel7ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lkswagen7vo3te1ing3o2yage5u0elos6wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2olterskluwer11odside6rk0s2ld3w2s1tc1f3xbox3erox4finity6ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2",rS="ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5تصالات6رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2",jr=(n,e)=>{for(const t in e)n[t]=e[t];return n},jl="numeric",Jl="ascii",Yl="alpha",Is="asciinumeric",gs="alphanumeric",Xl="domain",dm="emoji",iS="scheme",sS="slashscheme",wp="whitespace";function oS(n,e){return n in e||(e[n]=[]),e[n]}function Zn(n,e,t){e[jl]&&(e[Is]=!0,e[gs]=!0),e[Jl]&&(e[Is]=!0,e[Yl]=!0),e[Is]&&(e[gs]=!0),e[Yl]&&(e[gs]=!0),e[gs]&&(e[Xl]=!0),e[dm]&&(e[Xl]=!0);for(const r in e){const i=oS(r,t);i.indexOf(n)<0&&i.push(n)}}function aS(n,e){const t={};for(const r in e)e[r].indexOf(n)>=0&&(t[r]=!0);return t}function ct(n){n===void 0&&(n=null),this.j={},this.jr=[],this.jd=null,this.t=n}ct.groups={};ct.prototype={accepts(){return!!this.t},go(n){const e=this,t=e.j[n];if(t)return t;for(let r=0;rn.ta(e,t,r,i),xt=(n,e,t,r,i)=>n.tr(e,t,r,i),kp=(n,e,t,r,i)=>n.ts(e,t,r,i),H=(n,e,t,r,i)=>n.tt(e,t,r,i),rn="WORD",Ql="UWORD",Pi="LOCALHOST",ec="TLD",tc="UTLD",Hs="SCHEME",Mr="SLASH_SCHEME",Fc="NUM",pm="WS",zc="NL",Lr="OPENBRACE",ki="OPENBRACKET",xi="OPENANGLEBRACKET",Ei="OPENPAREN",zn="CLOSEBRACE",Rr="CLOSEBRACKET",Dr="CLOSEANGLEBRACKET",qn="CLOSEPAREN",so="AMPERSAND",oo="APOSTROPHE",ao="ASTERISK",mn="AT",lo="BACKSLASH",co="BACKTICK",uo="CARET",wn="COLON",qc="COMMA",po="DOLLAR",Pt="DOT",fo="EQUALS",Uc="EXCLAMATION",$t="HYPHEN",ho="PERCENT",go="PIPE",mo="PLUS",bo="POUND",yo="QUERY",Kc="QUOTE",Zc="SEMI",Vt="SLASH",Ci="TILDE",vo="UNDERSCORE",fm="EMOJI",wo="SYM";var hm=Object.freeze({__proto__:null,WORD:rn,UWORD:Ql,LOCALHOST:Pi,TLD:ec,UTLD:tc,SCHEME:Hs,SLASH_SCHEME:Mr,NUM:Fc,WS:pm,NL:zc,OPENBRACE:Lr,OPENBRACKET:ki,OPENANGLEBRACKET:xi,OPENPAREN:Ei,CLOSEBRACE:zn,CLOSEBRACKET:Rr,CLOSEANGLEBRACKET:Dr,CLOSEPAREN:qn,AMPERSAND:so,APOSTROPHE:oo,ASTERISK:ao,AT:mn,BACKSLASH:lo,BACKTICK:co,CARET:uo,COLON:wn,COMMA:qc,DOLLAR:po,DOT:Pt,EQUALS:fo,EXCLAMATION:Uc,HYPHEN:$t,PERCENT:ho,PIPE:go,PLUS:mo,POUND:bo,QUERY:yo,QUOTE:Kc,SEMI:Zc,SLASH:Vt,TILDE:Ci,UNDERSCORE:vo,EMOJI:fm,SYM:wo});const wr=/[a-z]/,Ua=/\p{L}/u,Ka=/\p{Emoji}/u,Za=/\d/,xp=/\s/,Ep=` `,lS="️",cS="‍";let ms=null,bs=null;function uS(n){n===void 0&&(n=[]);const e={};ct.groups=e;const t=new ct;ms==null&&(ms=Cp(nS)),bs==null&&(bs=Cp(rS)),H(t,"'",oo),H(t,"{",Lr),H(t,"[",ki),H(t,"<",xi),H(t,"(",Ei),H(t,"}",zn),H(t,"]",Rr),H(t,">",Dr),H(t,")",qn),H(t,"&",so),H(t,"*",ao),H(t,"@",mn),H(t,"`",co),H(t,"^",uo),H(t,":",wn),H(t,",",qc),H(t,"$",po),H(t,".",Pt),H(t,"=",fo),H(t,"!",Uc),H(t,"-",$t),H(t,"%",ho),H(t,"|",go),H(t,"+",mo),H(t,"#",bo),H(t,"?",yo),H(t,'"',Kc),H(t,"/",Vt),H(t,";",Zc),H(t,"~",Ci),H(t,"_",vo),H(t,"\\",lo);const r=xt(t,Za,Fc,{[jl]:!0});xt(r,Za,r);const i=xt(t,wr,rn,{[Jl]:!0});xt(i,wr,i);const s=xt(t,Ua,Ql,{[Yl]:!0});xt(s,wr),xt(s,Ua,s);const o=xt(t,xp,pm,{[wp]:!0});H(t,Ep,zc,{[wp]:!0}),H(o,Ep),xt(o,xp,o);const a=xt(t,Ka,fm,{[dm]:!0});xt(a,Ka,a),H(a,lS,a);const l=H(a,cS);xt(l,Ka,a);const c=[[wr,i]],u=[[wr,null],[Ua,s]];for(let d=0;dd[0]>p[0]?1:-1);for(let d=0;d=0?h[Xl]=!0:wr.test(p)?Za.test(p)?h[Is]=!0:h[Jl]=!0:h[jl]=!0,kp(t,p,p,h)}return kp(t,"localhost",Pi,{ascii:!0}),t.jd=new ct(wo),{start:t,tokens:jr({groups:e},hm)}}function dS(n,e){const t=pS(e.replace(/[A-Z]/g,a=>a.toLowerCase())),r=t.length,i=[];let s=0,o=0;for(;o=0&&(d+=t[o].length,p++),c+=t[o].length,s+=t[o].length,o++;s-=d,o-=p,c-=d,i.push({t:u.t,v:e.slice(s-c,s),s:s-c,e:s})}return i}function pS(n){const e=[],t=n.length;let r=0;for(;r56319||r+1===t||(s=n.charCodeAt(r+1))<56320||s>57343?n[r]:n.slice(r,r+2);e.push(o),r+=o.length}return e}function pn(n,e,t,r,i){let s;const o=e.length;for(let a=0;a=0;)s++;if(s>0){e.push(t.join(""));for(let o=parseInt(n.substring(r,r+s),10);o>0;o--)t.pop();r+=s}else t.push(n[r]),r++}return e}const $i={defaultProtocol:"http",events:null,format:Sp,formatHref:Sp,nl2br:!1,tagName:"a",target:null,rel:null,validate:!0,truncate:1/0,className:null,attributes:null,ignoreTags:[],render:null};function Wc(n,e){e===void 0&&(e=null);let t=jr({},$i);n&&(t=jr(t,n instanceof Wc?n.o:n));const r=t.ignoreTags,i=[];for(let s=0;st?r.substring(0,t)+"…":r},toFormattedHref(n){return n.get("formatHref",this.toHref(n.get("defaultProtocol")),this)},startIndex(){return this.tk[0].s},endIndex(){return this.tk[this.tk.length-1].e},toObject(n){return n===void 0&&(n=$i.defaultProtocol),{type:this.t,value:this.toString(),isLink:this.isLink,href:this.toHref(n),start:this.startIndex(),end:this.endIndex()}},toFormattedObject(n){return{type:this.t,value:this.toFormattedString(n),isLink:this.isLink,href:this.toFormattedHref(n),start:this.startIndex(),end:this.endIndex()}},validate(n){return n.get("validate",this.toString(),this)},render(n){const e=this,t=this.toHref(n.get("defaultProtocol")),r=n.get("formatHref",t,this),i=n.get("tagName",t,e),s=this.toFormattedString(n),o={},a=n.get("className",t,e),l=n.get("target",t,e),c=n.get("rel",t,e),u=n.getObj("attributes",t,e),d=n.getObj("events",t,e);return o.href=r,a&&(o.class=a),l&&(o.target=l),c&&(o.rel=c),u&&jr(o,u),{tagName:i,attributes:o,content:s,eventListeners:d}}};function Go(n,e){class t extends gm{constructor(i,s){super(i,s),this.t=n}}for(const r in e)t.prototype[r]=e[r];return t.t=n,t}const _p=Go("email",{isLink:!0,toHref(){return"mailto:"+this.toString()}}),Mp=Go("text"),fS=Go("nl"),Pn=Go("url",{isLink:!0,toHref(n){return n===void 0&&(n=$i.defaultProtocol),this.hasProtocol()?this.v:`${n}://${this.v}`},hasProtocol(){const n=this.tk;return n.length>=2&&n[0].t!==Pi&&n[1].t===wn}}),Pe=n=>new ct(n);function hS(n){let{groups:e}=n;const t=e.domain.concat([so,ao,mn,lo,co,uo,po,fo,$t,Fc,ho,go,mo,bo,Vt,wo,Ci,vo]),r=[oo,Dr,zn,Rr,qn,wn,qc,Pt,Uc,xi,Lr,ki,Ei,yo,Kc,Zc],i=[so,oo,ao,lo,co,uo,zn,po,fo,$t,Lr,ho,go,mo,bo,yo,Vt,wo,Ci,vo],s=Pe(),o=H(s,Ci);Y(o,i,o),Y(o,e.domain,o);const a=Pe(),l=Pe(),c=Pe();Y(s,e.domain,a),Y(s,e.scheme,l),Y(s,e.slashscheme,c),Y(a,i,o),Y(a,e.domain,a);const u=H(a,mn);H(o,mn,u),H(l,mn,u),H(c,mn,u);const d=H(o,Pt);Y(d,i,o),Y(d,e.domain,o);const p=Pe();Y(u,e.domain,p),Y(p,e.domain,p);const f=H(p,Pt);Y(f,e.domain,p);const h=Pe(_p);Y(f,e.tld,h),Y(f,e.utld,h),H(u,Pi,h);const g=H(p,$t);Y(g,e.domain,p),Y(h,e.domain,p),H(h,Pt,f),H(h,$t,g);const m=H(h,wn);Y(m,e.numeric,_p);const v=H(a,$t),y=H(a,Pt);Y(v,e.domain,a),Y(y,i,o),Y(y,e.domain,a);const k=Pe(Pn);Y(y,e.tld,k),Y(y,e.utld,k),Y(k,e.domain,a),Y(k,i,o),H(k,Pt,y),H(k,$t,v),H(k,mn,u);const b=H(k,wn),E=Pe(Pn);Y(b,e.numeric,E);const w=Pe(Pn),S=Pe();Y(w,t,w),Y(w,r,S),Y(S,t,w),Y(S,r,S),H(k,Vt,w),H(E,Vt,w);const A=H(l,wn),M=H(c,wn),L=H(M,Vt),z=H(L,Vt);Y(l,e.domain,a),H(l,Pt,y),H(l,$t,v),Y(c,e.domain,a),H(c,Pt,y),H(c,$t,v),Y(A,e.domain,w),H(A,Vt,w),Y(z,e.domain,w),Y(z,t,w),H(z,Vt,w);const U=H(w,Lr),K=H(w,ki),T=H(w,xi),B=H(w,Ei);H(S,Lr,U),H(S,ki,K),H(S,xi,T),H(S,Ei,B),H(U,zn,w),H(K,Rr,w),H(T,Dr,w),H(B,qn,w),H(U,zn,w);const C=Pe(Pn),x=Pe(Pn),_=Pe(Pn),D=Pe(Pn);Y(U,t,C),Y(K,t,x),Y(T,t,_),Y(B,t,D);const P=Pe(),G=Pe(),ee=Pe(),ge=Pe();return Y(U,r),Y(K,r),Y(T,r),Y(B,r),Y(C,t,C),Y(x,t,x),Y(_,t,_),Y(D,t,D),Y(C,r,C),Y(x,r,x),Y(_,r,_),Y(D,r,D),Y(P,t,P),Y(G,t,x),Y(ee,t,_),Y(ge,t,D),Y(P,r,P),Y(G,r,G),Y(ee,r,ee),Y(ge,r,ge),H(x,Rr,w),H(_,Dr,w),H(D,qn,w),H(C,zn,w),H(G,Rr,w),H(ee,Dr,w),H(ge,qn,w),H(P,qn,w),H(s,Pi,k),H(s,zc,fS),{start:s,tokens:hm}}function gS(n,e,t){let r=t.length,i=0,s=[],o=[];for(;i=0&&p++,i++,u++;if(p<0)i-=u,i0&&(s.push(Wa(Mp,e,o)),o=[]),i-=p,u-=p;const f=d.t,h=t.slice(i-u,i);s.push(Wa(f,e,h))}}return o.length>0&&s.push(Wa(Mp,e,o)),s}function Wa(n,e,t){const r=t[0].s,i=t[t.length-1].e,s=e.slice(r,i);return new n(s,t)}const mS=typeof console<"u"&&console&&console.warn||(()=>{}),bS="until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.",Ne={scanner:null,parser:null,tokenQueue:[],pluginQueue:[],customSchemes:[],initialized:!1};function yS(){ct.groups={},Ne.scanner=null,Ne.parser=null,Ne.tokenQueue=[],Ne.pluginQueue=[],Ne.customSchemes=[],Ne.initialized=!1}function Ap(n,e){if(e===void 0&&(e=!1),Ne.initialized&&mS(`linkifyjs: already initialized - will not register custom scheme "${n}" ${bS}`),!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(n))throw new Error(`linkifyjs: incorrect scheme format. 1. Must only contain digits, lowercase ASCII letters or "-" 2. Cannot start or end with "-" -3. "-" cannot repeat`);Ne.customSchemes.push([n,e])}function vS(){Ne.scanner=uS(Ne.customSchemes);for(let n=0;n{const i=e.some(c=>c.docChanged)&&!t.doc.eq(r.doc),s=e.some(c=>c.getMeta("preventAutolink"));if(!i||s)return;const{tr:o}=r,a=Fv(t.doc,[...e]);if(Gv(a).forEach(({newRange:c})=>{const u=qv(r.doc,c,f=>f.isTextblock);let d,p;if(u.length>1?(d=u[0],p=r.doc.textBetween(d.pos,d.pos+d.node.nodeSize,void 0," ")):u.length&&r.doc.textBetween(c.from,c.to," "," ").endsWith(" ")&&(d=u[0],p=r.doc.textBetween(d.pos,c.to,void 0," ")),d&&p){const f=p.split(" ").filter(m=>m!=="");if(f.length<=0)return!1;const h=f[f.length-1],g=d.pos+p.lastIndexOf(h);if(!h)return!1;Gc(h).filter(m=>m.isLink).map(m=>({...m,from:g+m.start+1,to:g+m.end+1})).filter(m=>r.schema.marks.code?!r.doc.rangeHasMark(m.from,m.to,r.schema.marks.code):!0).filter(m=>n.validate?n.validate(m.value):!0).forEach(m=>{_c(m.from,m.to,r.doc).some(v=>v.mark.type===n.type)||o.addMark(m.from,m.to,n.type.create({href:m.href}))})}}),!!o.steps.length)return o}})}function xS(n){return new _e({key:new Ae("handleClickLink"),props:{handleClick:(e,t,r)=>{var i,s;if(r.button!==0||r.target.nodeName!=="A")return!1;const a=hg(e.state,n.type.name),l=r.target,c=(i=l==null?void 0:l.href)!==null&&i!==void 0?i:a.href,u=(s=l==null?void 0:l.target)!==null&&s!==void 0?s:a.target;return l&&c?(e.editable&&window.open(c,u),!0):!1}}})}function ES(n){return new _e({key:new Ae("handlePasteLink"),props:{handlePaste:(e,t,r)=>{const{state:i}=e,{selection:s}=i,{empty:o}=s;if(o)return!1;let a="";r.content.forEach(c=>{a+=c.textContent});const l=Gc(a).find(c=>c.isLink&&c.value===a);return!a||!l?!1:(n.editor.commands.setMark(n.type,{href:l.href}),!0)}}})}const CS=De.create({name:"link",priority:1e3,keepOnSplit:!1,onCreate(){this.options.protocols.forEach(n=>{if(typeof n=="string"){Ap(n);return}Ap(n.scheme,n.optionalSlashes)})},onDestroy(){yS()},inclusive(){return this.options.autolink},addOptions(){return{openOnClick:!0,linkOnPaste:!0,autolink:!0,protocols:[],HTMLAttributes:{target:"_blank",rel:"noopener noreferrer nofollow",class:null},validate:void 0}},addAttributes(){return{href:{default:null},target:{default:this.options.HTMLAttributes.target},rel:{default:this.options.HTMLAttributes.rel},class:{default:this.options.HTMLAttributes.class}}},parseHTML(){return[{tag:'a[href]:not([href *= "javascript:" i])'}]},renderHTML({HTMLAttributes:n}){var e;return!((e=n.href)===null||e===void 0)&&e.startsWith("javascript:")?["a",fe(this.options.HTMLAttributes,{...n,href:""}),0]:["a",fe(this.options.HTMLAttributes,n),0]},addCommands(){return{setLink:n=>({chain:e})=>e().setMark(this.name,n).setMeta("preventAutolink",!0).run(),toggleLink:n=>({chain:e})=>e().toggleMark(this.name,n,{extendEmptyMarkRange:!0}).setMeta("preventAutolink",!0).run(),unsetLink:()=>({chain:n})=>n().unsetMark(this.name,{extendEmptyMarkRange:!0}).setMeta("preventAutolink",!0).run()}},addPasteRules(){return[Ln({find:(n,e)=>{var t;const r=(t=e==null?void 0:e.clipboardData)===null||t===void 0?void 0:t.getData("text/html"),i=[];if(r){const s=new DOMParser().parseFromString(r,"text/html"),o=s.querySelectorAll("a");o.length&&[...o].forEach(a=>i.push({text:a.innerText,data:{href:a.getAttribute("href")},index:s.body.innerText.indexOf(a.innerText)+a.innerText.length}))}if(n){const s=Gc(n).filter(o=>o.isLink);s.length&&s.forEach(o=>i.push({text:o.value,data:{href:o.href},index:o.start}))}return i},type:this.type,getAttributes:n=>{var e;return{href:(e=n.data)===null||e===void 0?void 0:e.href}}})]},addProseMirrorPlugins(){const n=[];return this.options.autolink&&n.push(kS({type:this.type,validate:this.options.validate})),this.options.openOnClick&&n.push(xS({type:this.type})),this.options.linkOnPaste&&n.push(ES({editor:this.editor,type:this.type})),n}}),SS=De.create({name:"superscript",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"sup"},{style:"vertical-align",getAttrs(n){return n!=="super"?!1:null}}]},renderHTML({HTMLAttributes:n}){return["sup",fe(this.options.HTMLAttributes,n),0]},addCommands(){return{setSuperscript:()=>({commands:n})=>n.setMark(this.name),toggleSuperscript:()=>({commands:n})=>n.toggleMark(this.name),unsetSuperscript:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-.":()=>this.editor.commands.toggleSuperscript()}}}),_S=De.create({name:"subscript",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"sub"},{style:"vertical-align",getAttrs(n){return n!=="sub"?!1:null}}]},renderHTML({HTMLAttributes:n}){return["sub",fe(this.options.HTMLAttributes,n),0]},addCommands(){return{setSubscript:()=>({commands:n})=>n.setMark(this.name),toggleSubscript:()=>({commands:n})=>n.toggleMark(this.name),unsetSubscript:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-,":()=>this.editor.commands.toggleSubscript()}}}),MS=ce.create({name:"taskList",addOptions(){return{itemTypeName:"taskItem",HTMLAttributes:{}}},group:"block list",content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:`ul[data-type="${this.name}"]`,priority:51}]},renderHTML({HTMLAttributes:n}){return["ul",fe(this.options.HTMLAttributes,n,{"data-type":this.name}),0]},addCommands(){return{toggleTaskList:()=>({commands:n})=>n.toggleList(this.name,this.options.itemTypeName)}},addKeyboardShortcuts(){return{"Mod-Shift-9":()=>this.editor.commands.toggleTaskList()}}}),AS=/^\s*(\[([( |x])?\])\s$/,TS=ce.create({name:"taskItem",addOptions(){return{nested:!1,HTMLAttributes:{},taskListTypeName:"taskList"}},content(){return this.options.nested?"paragraph block*":"paragraph+"},defining:!0,addAttributes(){return{checked:{default:!1,keepOnSplit:!1,parseHTML:n=>n.getAttribute("data-checked")==="true",renderHTML:n=>({"data-checked":n.checked})}}},parseHTML(){return[{tag:`li[data-type="${this.name}"]`,priority:51}]},renderHTML({node:n,HTMLAttributes:e}){return["li",fe(this.options.HTMLAttributes,e,{"data-type":this.name}),["label",["input",{type:"checkbox",checked:n.attrs.checked?"checked":null}],["span"]],["div",0]]},addKeyboardShortcuts(){const n={Enter:()=>this.editor.commands.splitListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)};return this.options.nested?{...n,Tab:()=>this.editor.commands.sinkListItem(this.name)}:n},addNodeView(){return({node:n,HTMLAttributes:e,getPos:t,editor:r})=>{const i=document.createElement("li"),s=document.createElement("label"),o=document.createElement("span"),a=document.createElement("input"),l=document.createElement("div");return s.contentEditable="false",a.type="checkbox",a.addEventListener("change",c=>{if(!r.isEditable&&!this.options.onReadOnlyChecked){a.checked=!a.checked;return}const{checked:u}=c.target;r.isEditable&&typeof t=="function"&&r.chain().focus(void 0,{scrollIntoView:!1}).command(({tr:d})=>{const p=t(),f=d.doc.nodeAt(p);return d.setNodeMarkup(p,void 0,{...f==null?void 0:f.attrs,checked:u}),!0}).run(),!r.isEditable&&this.options.onReadOnlyChecked&&(this.options.onReadOnlyChecked(n,u)||(a.checked=!a.checked))}),Object.entries(this.options.HTMLAttributes).forEach(([c,u])=>{i.setAttribute(c,u)}),i.dataset.checked=n.attrs.checked,n.attrs.checked&&a.setAttribute("checked","checked"),s.append(a,o),i.append(s,l),Object.entries(e).forEach(([c,u])=>{i.setAttribute(c,u)}),{dom:i,contentDOM:l,update:c=>c.type!==this.type?!1:(i.dataset.checked=c.attrs.checked,c.attrs.checked?a.setAttribute("checked","checked"):a.removeAttribute("checked"),!0)}}},addInputRules(){return[ar({find:AS,type:this.type,getAttributes:n=>({checked:n[n.length-1]==="x"})})]}});var jc={exports:{}};function Jc(n){return n instanceof Map?n.clear=n.delete=n.set=function(){throw new Error("map is read-only")}:n instanceof Set&&(n.add=n.clear=n.delete=function(){throw new Error("set is read-only")}),Object.freeze(n),Object.getOwnPropertyNames(n).forEach(function(e){var t=n[e];typeof t=="object"&&!Object.isFrozen(t)&&Jc(t)}),n}jc.exports=Jc;jc.exports.default=Jc;let Tp=class{constructor(e){e.data===void 0&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function mm(n){return n.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function Sn(n,...e){const t=Object.create(null);for(const r in n)t[r]=n[r];return e.forEach(function(r){for(const i in r)t[i]=r[i]}),t}const NS="",Np=n=>!!n.scope||n.sublanguage&&n.language,OS=(n,{prefix:e})=>{if(n.includes(".")){const t=n.split(".");return[`${e}${t.shift()}`,...t.map((r,i)=>`${r}${"_".repeat(i+1)}`)].join(" ")}return`${e}${n}`};let LS=class{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=mm(e)}openNode(e){if(!Np(e))return;let t="";e.sublanguage?t=`language-${e.language}`:t=OS(e.scope,{prefix:this.classPrefix}),this.span(t)}closeNode(e){Np(e)&&(this.buffer+=NS)}value(){return this.buffer}span(e){this.buffer+=``}};const Op=(n={})=>{const e={children:[]};return Object.assign(e,n),e};let RS=class bm{constructor(){this.rootNode=Op(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const t=Op({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return typeof t=="string"?e.addText(t):t.children&&(e.openNode(t),t.children.forEach(r=>this._walk(e,r)),e.closeNode(t)),e}static _collapse(e){typeof e!="string"&&e.children&&(e.children.every(t=>typeof t=="string")?e.children=[e.children.join("")]:e.children.forEach(t=>{bm._collapse(t)}))}},DS=class extends RS{constructor(e){super(),this.options=e}addKeyword(e,t){e!==""&&(this.openNode(t),this.addText(e),this.closeNode())}addText(e){e!==""&&this.add(e)}addSublanguage(e,t){const r=e.root;r.sublanguage=!0,r.language=t,this.add(r)}toHTML(){return new LS(this,this.options).value()}finalize(){return!0}};function Vi(n){return n?typeof n=="string"?n:n.source:null}function ym(n){return dr("(?=",n,")")}function IS(n){return dr("(?:",n,")*")}function HS(n){return dr("(?:",n,")?")}function dr(...n){return n.map(t=>Vi(t)).join("")}function BS(n){const e=n[n.length-1];return typeof e=="object"&&e.constructor===Object?(n.splice(n.length-1,1),e):{}}function Yc(...n){return"("+(BS(n).capture?"":"?:")+n.map(r=>Vi(r)).join("|")+")"}function vm(n){return new RegExp(n.toString()+"|").exec("").length-1}function PS(n,e){const t=n&&n.exec(e);return t&&t.index===0}const $S=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function Xc(n,{joinWith:e}){let t=0;return n.map(r=>{t+=1;const i=t;let s=Vi(r),o="";for(;s.length>0;){const a=$S.exec(s);if(!a){o+=s;break}o+=s.substring(0,a.index),s=s.substring(a.index+a[0].length),a[0][0]==="\\"&&a[1]?o+="\\"+String(Number(a[1])+i):(o+=a[0],a[0]==="("&&t++)}return o}).map(r=>`(${r})`).join(e)}const VS=/\b\B/,wm="[a-zA-Z]\\w*",Qc="[a-zA-Z_]\\w*",km="\\b\\d+(\\.\\d+)?",xm="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",Em="\\b(0b[01]+)",FS="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",zS=(n={})=>{const e=/^#![ ]*\//;return n.binary&&(n.begin=dr(e,/.*\b/,n.binary,/\b.*/)),Sn({scope:"meta",begin:e,end:/$/,relevance:0,"on:begin":(t,r)=>{t.index!==0&&r.ignoreMatch()}},n)},Fi={begin:"\\\\[\\s\\S]",relevance:0},qS={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[Fi]},US={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[Fi]},KS={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},jo=function(n,e,t={}){const r=Sn({scope:"comment",begin:n,end:e,contains:[]},t);r.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const i=Yc("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:dr(/[ ]+/,"(",i,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),r},ZS=jo("//","$"),WS=jo("/\\*","\\*/"),GS=jo("#","$"),jS={scope:"number",begin:km,relevance:0},JS={scope:"number",begin:xm,relevance:0},YS={scope:"number",begin:Em,relevance:0},XS={begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[Fi,{begin:/\[/,end:/\]/,relevance:0,contains:[Fi]}]}]},QS={scope:"title",begin:wm,relevance:0},e_={scope:"title",begin:Qc,relevance:0},t_={begin:"\\.\\s*"+Qc,relevance:0},n_=function(n){return Object.assign(n,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})};var ys=Object.freeze({__proto__:null,MATCH_NOTHING_RE:VS,IDENT_RE:wm,UNDERSCORE_IDENT_RE:Qc,NUMBER_RE:km,C_NUMBER_RE:xm,BINARY_NUMBER_RE:Em,RE_STARTERS_RE:FS,SHEBANG:zS,BACKSLASH_ESCAPE:Fi,APOS_STRING_MODE:qS,QUOTE_STRING_MODE:US,PHRASAL_WORDS_MODE:KS,COMMENT:jo,C_LINE_COMMENT_MODE:ZS,C_BLOCK_COMMENT_MODE:WS,HASH_COMMENT_MODE:GS,NUMBER_MODE:jS,C_NUMBER_MODE:JS,BINARY_NUMBER_MODE:YS,REGEXP_MODE:XS,TITLE_MODE:QS,UNDERSCORE_TITLE_MODE:e_,METHOD_GUARD:t_,END_SAME_AS_BEGIN:n_});function r_(n,e){n.input[n.index-1]==="."&&e.ignoreMatch()}function i_(n,e){n.className!==void 0&&(n.scope=n.className,delete n.className)}function s_(n,e){e&&n.beginKeywords&&(n.begin="\\b("+n.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",n.__beforeBegin=r_,n.keywords=n.keywords||n.beginKeywords,delete n.beginKeywords,n.relevance===void 0&&(n.relevance=0))}function o_(n,e){Array.isArray(n.illegal)&&(n.illegal=Yc(...n.illegal))}function a_(n,e){if(n.match){if(n.begin||n.end)throw new Error("begin & end are not supported with match");n.begin=n.match,delete n.match}}function l_(n,e){n.relevance===void 0&&(n.relevance=1)}const c_=(n,e)=>{if(!n.beforeMatch)return;if(n.starts)throw new Error("beforeMatch cannot be used with starts");const t=Object.assign({},n);Object.keys(n).forEach(r=>{delete n[r]}),n.keywords=t.keywords,n.begin=dr(t.beforeMatch,ym(t.begin)),n.starts={relevance:0,contains:[Object.assign(t,{endsParent:!0})]},n.relevance=0,delete t.beforeMatch},u_=["of","and","for","in","not","or","if","then","parent","list","value"],d_="keyword";function Cm(n,e,t=d_){const r=Object.create(null);return typeof n=="string"?i(t,n.split(" ")):Array.isArray(n)?i(t,n):Object.keys(n).forEach(function(s){Object.assign(r,Cm(n[s],e,s))}),r;function i(s,o){e&&(o=o.map(a=>a.toLowerCase())),o.forEach(function(a){const l=a.split("|");r[l[0]]=[s,p_(l[0],l[1])]})}}function p_(n,e){return e?Number(e):f_(n)?0:1}function f_(n){return u_.includes(n.toLowerCase())}const Lp={},er=n=>{console.error(n)},Rp=(n,...e)=>{console.log(`WARN: ${n}`,...e)},kr=(n,e)=>{Lp[`${n}/${e}`]||(console.log(`Deprecated as of ${n}. ${e}`),Lp[`${n}/${e}`]=!0)},ko=new Error;function Sm(n,e,{key:t}){let r=0;const i=n[t],s={},o={};for(let a=1;a<=e.length;a++)o[a+r]=i[a],s[a+r]=!0,r+=vm(e[a-1]);n[t]=o,n[t]._emit=s,n[t]._multi=!0}function h_(n){if(Array.isArray(n.begin)){if(n.skip||n.excludeBegin||n.returnBegin)throw er("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),ko;if(typeof n.beginScope!="object"||n.beginScope===null)throw er("beginScope must be object"),ko;Sm(n,n.begin,{key:"beginScope"}),n.begin=Xc(n.begin,{joinWith:""})}}function g_(n){if(Array.isArray(n.end)){if(n.skip||n.excludeEnd||n.returnEnd)throw er("skip, excludeEnd, returnEnd not compatible with endScope: {}"),ko;if(typeof n.endScope!="object"||n.endScope===null)throw er("endScope must be object"),ko;Sm(n,n.end,{key:"endScope"}),n.end=Xc(n.end,{joinWith:""})}}function m_(n){n.scope&&typeof n.scope=="object"&&n.scope!==null&&(n.beginScope=n.scope,delete n.scope)}function b_(n){m_(n),typeof n.beginScope=="string"&&(n.beginScope={_wrap:n.beginScope}),typeof n.endScope=="string"&&(n.endScope={_wrap:n.endScope}),h_(n),g_(n)}function y_(n){function e(o,a){return new RegExp(Vi(o),"m"+(n.case_insensitive?"i":"")+(n.unicodeRegex?"u":"")+(a?"g":""))}class t{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(a,l){l.position=this.position++,this.matchIndexes[this.matchAt]=l,this.regexes.push([l,a]),this.matchAt+=vm(a)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const a=this.regexes.map(l=>l[1]);this.matcherRe=e(Xc(a,{joinWith:"|"}),!0),this.lastIndex=0}exec(a){this.matcherRe.lastIndex=this.lastIndex;const l=this.matcherRe.exec(a);if(!l)return null;const c=l.findIndex((d,p)=>p>0&&d!==void 0),u=this.matchIndexes[c];return l.splice(0,c),Object.assign(l,u)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(a){if(this.multiRegexes[a])return this.multiRegexes[a];const l=new t;return this.rules.slice(a).forEach(([c,u])=>l.addRule(c,u)),l.compile(),this.multiRegexes[a]=l,l}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(a,l){this.rules.push([a,l]),l.type==="begin"&&this.count++}exec(a){const l=this.getMatcher(this.regexIndex);l.lastIndex=this.lastIndex;let c=l.exec(a);if(this.resumingScanAtSamePosition()&&!(c&&c.index===this.lastIndex)){const u=this.getMatcher(0);u.lastIndex=this.lastIndex+1,c=u.exec(a)}return c&&(this.regexIndex+=c.position+1,this.regexIndex===this.count&&this.considerAll()),c}}function i(o){const a=new r;return o.contains.forEach(l=>a.addRule(l.begin,{rule:l,type:"begin"})),o.terminatorEnd&&a.addRule(o.terminatorEnd,{type:"end"}),o.illegal&&a.addRule(o.illegal,{type:"illegal"}),a}function s(o,a){const l=o;if(o.isCompiled)return l;[i_,a_,b_,c_].forEach(u=>u(o,a)),n.compilerExtensions.forEach(u=>u(o,a)),o.__beforeBegin=null,[s_,o_,l_].forEach(u=>u(o,a)),o.isCompiled=!0;let c=null;return typeof o.keywords=="object"&&o.keywords.$pattern&&(o.keywords=Object.assign({},o.keywords),c=o.keywords.$pattern,delete o.keywords.$pattern),c=c||/\w+/,o.keywords&&(o.keywords=Cm(o.keywords,n.case_insensitive)),l.keywordPatternRe=e(c,!0),a&&(o.begin||(o.begin=/\B|\b/),l.beginRe=e(l.begin),!o.end&&!o.endsWithParent&&(o.end=/\B|\b/),o.end&&(l.endRe=e(l.end)),l.terminatorEnd=Vi(l.end)||"",o.endsWithParent&&a.terminatorEnd&&(l.terminatorEnd+=(o.end?"|":"")+a.terminatorEnd)),o.illegal&&(l.illegalRe=e(o.illegal)),o.contains||(o.contains=[]),o.contains=[].concat(...o.contains.map(function(u){return v_(u==="self"?o:u)})),o.contains.forEach(function(u){s(u,l)}),o.starts&&s(o.starts,a),l.matcher=i(l),l}if(n.compilerExtensions||(n.compilerExtensions=[]),n.contains&&n.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return n.classNameAliases=Sn(n.classNameAliases||{}),s(n)}function _m(n){return n?n.endsWithParent||_m(n.starts):!1}function v_(n){return n.variants&&!n.cachedVariants&&(n.cachedVariants=n.variants.map(function(e){return Sn(n,{variants:null},e)})),n.cachedVariants?n.cachedVariants:_m(n)?Sn(n,{starts:n.starts?Sn(n.starts):null}):Object.isFrozen(n)?Sn(n):n}var w_="11.6.0";let k_=class extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}};const Ga=mm,Dp=Sn,Ip=Symbol("nomatch"),x_=7,E_=function(n){const e=Object.create(null),t=Object.create(null),r=[];let i=!0;const s="Could not find the language '{}', did you forget to load/include a language module?",o={disableAutodetect:!0,name:"Plain text",contains:[]};let a={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:DS};function l(C){return a.noHighlightRe.test(C)}function c(C){let x=C.className+" ";x+=C.parentNode?C.parentNode.className:"";const _=a.languageDetectRe.exec(x);if(_){const D=M(_[1]);return D||(Rp(s.replace("{}",_[1])),Rp("Falling back to no-highlight mode for this block.",C)),D?_[1]:"no-highlight"}return x.split(/\s+/).find(D=>l(D)||M(D))}function u(C,x,_){let D="",P="";typeof x=="object"?(D=C,_=x.ignoreIllegals,P=x.language):(kr("10.7.0","highlight(lang, code, ...args) has been deprecated."),kr("10.7.0",`Please use highlight(code, options) instead. +3. "-" cannot repeat`);Ne.customSchemes.push([n,e])}function vS(){Ne.scanner=uS(Ne.customSchemes);for(let n=0;n{const i=e.some(c=>c.docChanged)&&!t.doc.eq(r.doc),s=e.some(c=>c.getMeta("preventAutolink"));if(!i||s)return;const{tr:o}=r,a=Fv(t.doc,[...e]);if(Gv(a).forEach(({newRange:c})=>{const u=qv(r.doc,c,f=>f.isTextblock);let d,p;if(u.length>1?(d=u[0],p=r.doc.textBetween(d.pos,d.pos+d.node.nodeSize,void 0," ")):u.length&&r.doc.textBetween(c.from,c.to," "," ").endsWith(" ")&&(d=u[0],p=r.doc.textBetween(d.pos,c.to,void 0," ")),d&&p){const f=p.split(" ").filter(m=>m!=="");if(f.length<=0)return!1;const h=f[f.length-1],g=d.pos+p.lastIndexOf(h);if(!h)return!1;Gc(h).filter(m=>m.isLink).map(m=>({...m,from:g+m.start+1,to:g+m.end+1})).filter(m=>r.schema.marks.code?!r.doc.rangeHasMark(m.from,m.to,r.schema.marks.code):!0).filter(m=>n.validate?n.validate(m.value):!0).forEach(m=>{_c(m.from,m.to,r.doc).some(v=>v.mark.type===n.type)||o.addMark(m.from,m.to,n.type.create({href:m.href}))})}}),!!o.steps.length)return o}})}function xS(n){return new _e({key:new Ae("handleClickLink"),props:{handleClick:(e,t,r)=>{var i,s;if(r.button!==0||r.target.nodeName!=="A")return!1;const a=hg(e.state,n.type.name),l=r.target,c=(i=l==null?void 0:l.href)!==null&&i!==void 0?i:a.href,u=(s=l==null?void 0:l.target)!==null&&s!==void 0?s:a.target;return l&&c?(e.editable&&window.open(c,u),!0):!1}}})}function ES(n){return new _e({key:new Ae("handlePasteLink"),props:{handlePaste:(e,t,r)=>{const{state:i}=e,{selection:s}=i,{empty:o}=s;if(o)return!1;let a="";r.content.forEach(c=>{a+=c.textContent});const l=Gc(a).find(c=>c.isLink&&c.value===a);return!a||!l?!1:(n.editor.commands.setMark(n.type,{href:l.href}),!0)}}})}const CS=De.create({name:"link",priority:1e3,keepOnSplit:!1,onCreate(){this.options.protocols.forEach(n=>{if(typeof n=="string"){Ap(n);return}Ap(n.scheme,n.optionalSlashes)})},onDestroy(){yS()},inclusive(){return this.options.autolink},addOptions(){return{openOnClick:!0,linkOnPaste:!0,autolink:!0,protocols:[],HTMLAttributes:{target:"_blank",rel:"noopener noreferrer nofollow",class:null},validate:void 0}},addAttributes(){return{href:{default:null},target:{default:this.options.HTMLAttributes.target},rel:{default:this.options.HTMLAttributes.rel},class:{default:this.options.HTMLAttributes.class}}},parseHTML(){return[{tag:'a[href]:not([href *= "javascript:" i])'}]},renderHTML({HTMLAttributes:n}){var e;return!((e=n.href)===null||e===void 0)&&e.startsWith("javascript:")?["a",he(this.options.HTMLAttributes,{...n,href:""}),0]:["a",he(this.options.HTMLAttributes,n),0]},addCommands(){return{setLink:n=>({chain:e})=>e().setMark(this.name,n).setMeta("preventAutolink",!0).run(),toggleLink:n=>({chain:e})=>e().toggleMark(this.name,n,{extendEmptyMarkRange:!0}).setMeta("preventAutolink",!0).run(),unsetLink:()=>({chain:n})=>n().unsetMark(this.name,{extendEmptyMarkRange:!0}).setMeta("preventAutolink",!0).run()}},addPasteRules(){return[Ln({find:(n,e)=>{var t;const r=(t=e==null?void 0:e.clipboardData)===null||t===void 0?void 0:t.getData("text/html"),i=[];if(r){const s=new DOMParser().parseFromString(r,"text/html"),o=s.querySelectorAll("a");o.length&&[...o].forEach(a=>i.push({text:a.innerText,data:{href:a.getAttribute("href")},index:s.body.innerText.indexOf(a.innerText)+a.innerText.length}))}if(n){const s=Gc(n).filter(o=>o.isLink);s.length&&s.forEach(o=>i.push({text:o.value,data:{href:o.href},index:o.start}))}return i},type:this.type,getAttributes:n=>{var e;return{href:(e=n.data)===null||e===void 0?void 0:e.href}}})]},addProseMirrorPlugins(){const n=[];return this.options.autolink&&n.push(kS({type:this.type,validate:this.options.validate})),this.options.openOnClick&&n.push(xS({type:this.type})),this.options.linkOnPaste&&n.push(ES({editor:this.editor,type:this.type})),n}}),SS=De.create({name:"superscript",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"sup"},{style:"vertical-align",getAttrs(n){return n!=="super"?!1:null}}]},renderHTML({HTMLAttributes:n}){return["sup",he(this.options.HTMLAttributes,n),0]},addCommands(){return{setSuperscript:()=>({commands:n})=>n.setMark(this.name),toggleSuperscript:()=>({commands:n})=>n.toggleMark(this.name),unsetSuperscript:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-.":()=>this.editor.commands.toggleSuperscript()}}}),_S=De.create({name:"subscript",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"sub"},{style:"vertical-align",getAttrs(n){return n!=="sub"?!1:null}}]},renderHTML({HTMLAttributes:n}){return["sub",he(this.options.HTMLAttributes,n),0]},addCommands(){return{setSubscript:()=>({commands:n})=>n.setMark(this.name),toggleSubscript:()=>({commands:n})=>n.toggleMark(this.name),unsetSubscript:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-,":()=>this.editor.commands.toggleSubscript()}}}),MS=ce.create({name:"taskList",addOptions(){return{itemTypeName:"taskItem",HTMLAttributes:{}}},group:"block list",content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:`ul[data-type="${this.name}"]`,priority:51}]},renderHTML({HTMLAttributes:n}){return["ul",he(this.options.HTMLAttributes,n,{"data-type":this.name}),0]},addCommands(){return{toggleTaskList:()=>({commands:n})=>n.toggleList(this.name,this.options.itemTypeName)}},addKeyboardShortcuts(){return{"Mod-Shift-9":()=>this.editor.commands.toggleTaskList()}}}),AS=/^\s*(\[([( |x])?\])\s$/,TS=ce.create({name:"taskItem",addOptions(){return{nested:!1,HTMLAttributes:{},taskListTypeName:"taskList"}},content(){return this.options.nested?"paragraph block*":"paragraph+"},defining:!0,addAttributes(){return{checked:{default:!1,keepOnSplit:!1,parseHTML:n=>n.getAttribute("data-checked")==="true",renderHTML:n=>({"data-checked":n.checked})}}},parseHTML(){return[{tag:`li[data-type="${this.name}"]`,priority:51}]},renderHTML({node:n,HTMLAttributes:e}){return["li",he(this.options.HTMLAttributes,e,{"data-type":this.name}),["label",["input",{type:"checkbox",checked:n.attrs.checked?"checked":null}],["span"]],["div",0]]},addKeyboardShortcuts(){const n={Enter:()=>this.editor.commands.splitListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)};return this.options.nested?{...n,Tab:()=>this.editor.commands.sinkListItem(this.name)}:n},addNodeView(){return({node:n,HTMLAttributes:e,getPos:t,editor:r})=>{const i=document.createElement("li"),s=document.createElement("label"),o=document.createElement("span"),a=document.createElement("input"),l=document.createElement("div");return s.contentEditable="false",a.type="checkbox",a.addEventListener("change",c=>{if(!r.isEditable&&!this.options.onReadOnlyChecked){a.checked=!a.checked;return}const{checked:u}=c.target;r.isEditable&&typeof t=="function"&&r.chain().focus(void 0,{scrollIntoView:!1}).command(({tr:d})=>{const p=t(),f=d.doc.nodeAt(p);return d.setNodeMarkup(p,void 0,{...f==null?void 0:f.attrs,checked:u}),!0}).run(),!r.isEditable&&this.options.onReadOnlyChecked&&(this.options.onReadOnlyChecked(n,u)||(a.checked=!a.checked))}),Object.entries(this.options.HTMLAttributes).forEach(([c,u])=>{i.setAttribute(c,u)}),i.dataset.checked=n.attrs.checked,n.attrs.checked&&a.setAttribute("checked","checked"),s.append(a,o),i.append(s,l),Object.entries(e).forEach(([c,u])=>{i.setAttribute(c,u)}),{dom:i,contentDOM:l,update:c=>c.type!==this.type?!1:(i.dataset.checked=c.attrs.checked,c.attrs.checked?a.setAttribute("checked","checked"):a.removeAttribute("checked"),!0)}}},addInputRules(){return[ar({find:AS,type:this.type,getAttributes:n=>({checked:n[n.length-1]==="x"})})]}});var jc={exports:{}};function Jc(n){return n instanceof Map?n.clear=n.delete=n.set=function(){throw new Error("map is read-only")}:n instanceof Set&&(n.add=n.clear=n.delete=function(){throw new Error("set is read-only")}),Object.freeze(n),Object.getOwnPropertyNames(n).forEach(function(e){var t=n[e];typeof t=="object"&&!Object.isFrozen(t)&&Jc(t)}),n}jc.exports=Jc;jc.exports.default=Jc;let Tp=class{constructor(e){e.data===void 0&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function mm(n){return n.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function Sn(n,...e){const t=Object.create(null);for(const r in n)t[r]=n[r];return e.forEach(function(r){for(const i in r)t[i]=r[i]}),t}const NS="",Np=n=>!!n.scope||n.sublanguage&&n.language,OS=(n,{prefix:e})=>{if(n.includes(".")){const t=n.split(".");return[`${e}${t.shift()}`,...t.map((r,i)=>`${r}${"_".repeat(i+1)}`)].join(" ")}return`${e}${n}`};let LS=class{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=mm(e)}openNode(e){if(!Np(e))return;let t="";e.sublanguage?t=`language-${e.language}`:t=OS(e.scope,{prefix:this.classPrefix}),this.span(t)}closeNode(e){Np(e)&&(this.buffer+=NS)}value(){return this.buffer}span(e){this.buffer+=``}};const Op=(n={})=>{const e={children:[]};return Object.assign(e,n),e};let RS=class bm{constructor(){this.rootNode=Op(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const t=Op({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return typeof t=="string"?e.addText(t):t.children&&(e.openNode(t),t.children.forEach(r=>this._walk(e,r)),e.closeNode(t)),e}static _collapse(e){typeof e!="string"&&e.children&&(e.children.every(t=>typeof t=="string")?e.children=[e.children.join("")]:e.children.forEach(t=>{bm._collapse(t)}))}},DS=class extends RS{constructor(e){super(),this.options=e}addKeyword(e,t){e!==""&&(this.openNode(t),this.addText(e),this.closeNode())}addText(e){e!==""&&this.add(e)}addSublanguage(e,t){const r=e.root;r.sublanguage=!0,r.language=t,this.add(r)}toHTML(){return new LS(this,this.options).value()}finalize(){return!0}};function Vi(n){return n?typeof n=="string"?n:n.source:null}function ym(n){return dr("(?=",n,")")}function IS(n){return dr("(?:",n,")*")}function HS(n){return dr("(?:",n,")?")}function dr(...n){return n.map(t=>Vi(t)).join("")}function BS(n){const e=n[n.length-1];return typeof e=="object"&&e.constructor===Object?(n.splice(n.length-1,1),e):{}}function Yc(...n){return"("+(BS(n).capture?"":"?:")+n.map(r=>Vi(r)).join("|")+")"}function vm(n){return new RegExp(n.toString()+"|").exec("").length-1}function PS(n,e){const t=n&&n.exec(e);return t&&t.index===0}const $S=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function Xc(n,{joinWith:e}){let t=0;return n.map(r=>{t+=1;const i=t;let s=Vi(r),o="";for(;s.length>0;){const a=$S.exec(s);if(!a){o+=s;break}o+=s.substring(0,a.index),s=s.substring(a.index+a[0].length),a[0][0]==="\\"&&a[1]?o+="\\"+String(Number(a[1])+i):(o+=a[0],a[0]==="("&&t++)}return o}).map(r=>`(${r})`).join(e)}const VS=/\b\B/,wm="[a-zA-Z]\\w*",Qc="[a-zA-Z_]\\w*",km="\\b\\d+(\\.\\d+)?",xm="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",Em="\\b(0b[01]+)",FS="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",zS=(n={})=>{const e=/^#![ ]*\//;return n.binary&&(n.begin=dr(e,/.*\b/,n.binary,/\b.*/)),Sn({scope:"meta",begin:e,end:/$/,relevance:0,"on:begin":(t,r)=>{t.index!==0&&r.ignoreMatch()}},n)},Fi={begin:"\\\\[\\s\\S]",relevance:0},qS={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[Fi]},US={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[Fi]},KS={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},jo=function(n,e,t={}){const r=Sn({scope:"comment",begin:n,end:e,contains:[]},t);r.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const i=Yc("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:dr(/[ ]+/,"(",i,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),r},ZS=jo("//","$"),WS=jo("/\\*","\\*/"),GS=jo("#","$"),jS={scope:"number",begin:km,relevance:0},JS={scope:"number",begin:xm,relevance:0},YS={scope:"number",begin:Em,relevance:0},XS={begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[Fi,{begin:/\[/,end:/\]/,relevance:0,contains:[Fi]}]}]},QS={scope:"title",begin:wm,relevance:0},e_={scope:"title",begin:Qc,relevance:0},t_={begin:"\\.\\s*"+Qc,relevance:0},n_=function(n){return Object.assign(n,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})};var ys=Object.freeze({__proto__:null,MATCH_NOTHING_RE:VS,IDENT_RE:wm,UNDERSCORE_IDENT_RE:Qc,NUMBER_RE:km,C_NUMBER_RE:xm,BINARY_NUMBER_RE:Em,RE_STARTERS_RE:FS,SHEBANG:zS,BACKSLASH_ESCAPE:Fi,APOS_STRING_MODE:qS,QUOTE_STRING_MODE:US,PHRASAL_WORDS_MODE:KS,COMMENT:jo,C_LINE_COMMENT_MODE:ZS,C_BLOCK_COMMENT_MODE:WS,HASH_COMMENT_MODE:GS,NUMBER_MODE:jS,C_NUMBER_MODE:JS,BINARY_NUMBER_MODE:YS,REGEXP_MODE:XS,TITLE_MODE:QS,UNDERSCORE_TITLE_MODE:e_,METHOD_GUARD:t_,END_SAME_AS_BEGIN:n_});function r_(n,e){n.input[n.index-1]==="."&&e.ignoreMatch()}function i_(n,e){n.className!==void 0&&(n.scope=n.className,delete n.className)}function s_(n,e){e&&n.beginKeywords&&(n.begin="\\b("+n.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",n.__beforeBegin=r_,n.keywords=n.keywords||n.beginKeywords,delete n.beginKeywords,n.relevance===void 0&&(n.relevance=0))}function o_(n,e){Array.isArray(n.illegal)&&(n.illegal=Yc(...n.illegal))}function a_(n,e){if(n.match){if(n.begin||n.end)throw new Error("begin & end are not supported with match");n.begin=n.match,delete n.match}}function l_(n,e){n.relevance===void 0&&(n.relevance=1)}const c_=(n,e)=>{if(!n.beforeMatch)return;if(n.starts)throw new Error("beforeMatch cannot be used with starts");const t=Object.assign({},n);Object.keys(n).forEach(r=>{delete n[r]}),n.keywords=t.keywords,n.begin=dr(t.beforeMatch,ym(t.begin)),n.starts={relevance:0,contains:[Object.assign(t,{endsParent:!0})]},n.relevance=0,delete t.beforeMatch},u_=["of","and","for","in","not","or","if","then","parent","list","value"],d_="keyword";function Cm(n,e,t=d_){const r=Object.create(null);return typeof n=="string"?i(t,n.split(" ")):Array.isArray(n)?i(t,n):Object.keys(n).forEach(function(s){Object.assign(r,Cm(n[s],e,s))}),r;function i(s,o){e&&(o=o.map(a=>a.toLowerCase())),o.forEach(function(a){const l=a.split("|");r[l[0]]=[s,p_(l[0],l[1])]})}}function p_(n,e){return e?Number(e):f_(n)?0:1}function f_(n){return u_.includes(n.toLowerCase())}const Lp={},er=n=>{console.error(n)},Rp=(n,...e)=>{console.log(`WARN: ${n}`,...e)},kr=(n,e)=>{Lp[`${n}/${e}`]||(console.log(`Deprecated as of ${n}. ${e}`),Lp[`${n}/${e}`]=!0)},ko=new Error;function Sm(n,e,{key:t}){let r=0;const i=n[t],s={},o={};for(let a=1;a<=e.length;a++)o[a+r]=i[a],s[a+r]=!0,r+=vm(e[a-1]);n[t]=o,n[t]._emit=s,n[t]._multi=!0}function h_(n){if(Array.isArray(n.begin)){if(n.skip||n.excludeBegin||n.returnBegin)throw er("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),ko;if(typeof n.beginScope!="object"||n.beginScope===null)throw er("beginScope must be object"),ko;Sm(n,n.begin,{key:"beginScope"}),n.begin=Xc(n.begin,{joinWith:""})}}function g_(n){if(Array.isArray(n.end)){if(n.skip||n.excludeEnd||n.returnEnd)throw er("skip, excludeEnd, returnEnd not compatible with endScope: {}"),ko;if(typeof n.endScope!="object"||n.endScope===null)throw er("endScope must be object"),ko;Sm(n,n.end,{key:"endScope"}),n.end=Xc(n.end,{joinWith:""})}}function m_(n){n.scope&&typeof n.scope=="object"&&n.scope!==null&&(n.beginScope=n.scope,delete n.scope)}function b_(n){m_(n),typeof n.beginScope=="string"&&(n.beginScope={_wrap:n.beginScope}),typeof n.endScope=="string"&&(n.endScope={_wrap:n.endScope}),h_(n),g_(n)}function y_(n){function e(o,a){return new RegExp(Vi(o),"m"+(n.case_insensitive?"i":"")+(n.unicodeRegex?"u":"")+(a?"g":""))}class t{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(a,l){l.position=this.position++,this.matchIndexes[this.matchAt]=l,this.regexes.push([l,a]),this.matchAt+=vm(a)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const a=this.regexes.map(l=>l[1]);this.matcherRe=e(Xc(a,{joinWith:"|"}),!0),this.lastIndex=0}exec(a){this.matcherRe.lastIndex=this.lastIndex;const l=this.matcherRe.exec(a);if(!l)return null;const c=l.findIndex((d,p)=>p>0&&d!==void 0),u=this.matchIndexes[c];return l.splice(0,c),Object.assign(l,u)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(a){if(this.multiRegexes[a])return this.multiRegexes[a];const l=new t;return this.rules.slice(a).forEach(([c,u])=>l.addRule(c,u)),l.compile(),this.multiRegexes[a]=l,l}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(a,l){this.rules.push([a,l]),l.type==="begin"&&this.count++}exec(a){const l=this.getMatcher(this.regexIndex);l.lastIndex=this.lastIndex;let c=l.exec(a);if(this.resumingScanAtSamePosition()&&!(c&&c.index===this.lastIndex)){const u=this.getMatcher(0);u.lastIndex=this.lastIndex+1,c=u.exec(a)}return c&&(this.regexIndex+=c.position+1,this.regexIndex===this.count&&this.considerAll()),c}}function i(o){const a=new r;return o.contains.forEach(l=>a.addRule(l.begin,{rule:l,type:"begin"})),o.terminatorEnd&&a.addRule(o.terminatorEnd,{type:"end"}),o.illegal&&a.addRule(o.illegal,{type:"illegal"}),a}function s(o,a){const l=o;if(o.isCompiled)return l;[i_,a_,b_,c_].forEach(u=>u(o,a)),n.compilerExtensions.forEach(u=>u(o,a)),o.__beforeBegin=null,[s_,o_,l_].forEach(u=>u(o,a)),o.isCompiled=!0;let c=null;return typeof o.keywords=="object"&&o.keywords.$pattern&&(o.keywords=Object.assign({},o.keywords),c=o.keywords.$pattern,delete o.keywords.$pattern),c=c||/\w+/,o.keywords&&(o.keywords=Cm(o.keywords,n.case_insensitive)),l.keywordPatternRe=e(c,!0),a&&(o.begin||(o.begin=/\B|\b/),l.beginRe=e(l.begin),!o.end&&!o.endsWithParent&&(o.end=/\B|\b/),o.end&&(l.endRe=e(l.end)),l.terminatorEnd=Vi(l.end)||"",o.endsWithParent&&a.terminatorEnd&&(l.terminatorEnd+=(o.end?"|":"")+a.terminatorEnd)),o.illegal&&(l.illegalRe=e(o.illegal)),o.contains||(o.contains=[]),o.contains=[].concat(...o.contains.map(function(u){return v_(u==="self"?o:u)})),o.contains.forEach(function(u){s(u,l)}),o.starts&&s(o.starts,a),l.matcher=i(l),l}if(n.compilerExtensions||(n.compilerExtensions=[]),n.contains&&n.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return n.classNameAliases=Sn(n.classNameAliases||{}),s(n)}function _m(n){return n?n.endsWithParent||_m(n.starts):!1}function v_(n){return n.variants&&!n.cachedVariants&&(n.cachedVariants=n.variants.map(function(e){return Sn(n,{variants:null},e)})),n.cachedVariants?n.cachedVariants:_m(n)?Sn(n,{starts:n.starts?Sn(n.starts):null}):Object.isFrozen(n)?Sn(n):n}var w_="11.6.0";let k_=class extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}};const Ga=mm,Dp=Sn,Ip=Symbol("nomatch"),x_=7,E_=function(n){const e=Object.create(null),t=Object.create(null),r=[];let i=!0;const s="Could not find the language '{}', did you forget to load/include a language module?",o={disableAutodetect:!0,name:"Plain text",contains:[]};let a={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:DS};function l(C){return a.noHighlightRe.test(C)}function c(C){let x=C.className+" ";x+=C.parentNode?C.parentNode.className:"";const _=a.languageDetectRe.exec(x);if(_){const D=M(_[1]);return D||(Rp(s.replace("{}",_[1])),Rp("Falling back to no-highlight mode for this block.",C)),D?_[1]:"no-highlight"}return x.split(/\s+/).find(D=>l(D)||M(D))}function u(C,x,_){let D="",P="";typeof x=="object"?(D=C,_=x.ignoreIllegals,P=x.language):(kr("10.7.0","highlight(lang, code, ...args) has been deprecated."),kr("10.7.0",`Please use highlight(code, options) instead. https://github.com/highlightjs/highlight.js/issues/2277`),P=C,D=x),_===void 0&&(_=!0);const G={code:D,language:P};T("before:highlight",G);const ee=G.result?G.result:d(G.language,G.code,_);return ee.code=G.code,T("after:highlight",ee),ee}function d(C,x,_,D){const P=Object.create(null);function G($,Z){return $.keywords[Z]}function ee(){if(!te.keywords){q.addText(ue);return}let $=0;te.keywordPatternRe.lastIndex=0;let Z=te.keywordPatternRe.exec(ue),O="";for(;Z;){O+=ue.substring($,Z.index);const I=Te.case_insensitive?Z[0].toLowerCase():Z[0],J=G(te,I);if(J){const[ae,Ie]=J;if(q.addText(O),O="",P[I]=(P[I]||0)+1,P[I]<=x_&&(ye+=Ie),ae.startsWith("_"))O+=Z[0];else{const gt=Te.classNameAliases[ae]||ae;q.addKeyword(Z[0],gt)}}else O+=Z[0];$=te.keywordPatternRe.lastIndex,Z=te.keywordPatternRe.exec(ue)}O+=ue.substring($),q.addText(O)}function ge(){if(ue==="")return;let $=null;if(typeof te.subLanguage=="string"){if(!e[te.subLanguage]){q.addText(ue);return}$=d(te.subLanguage,ue,!0,Ot[te.subLanguage]),Ot[te.subLanguage]=$._top}else $=f(ue,te.subLanguage.length?te.subLanguage:null);te.relevance>0&&(ye+=$.relevance),q.addSublanguage($._emitter,$.language)}function xe(){te.subLanguage!=null?ge():ee(),ue=""}function de($,Z){let O=1;const I=Z.length-1;for(;O<=I;){if(!$._emit[O]){O++;continue}const J=Te.classNameAliases[$[O]]||$[O],ae=Z[O];J?q.addKeyword(ae,J):(ue=ae,ee(),ue=""),O++}}function Me($,Z){return $.scope&&typeof $.scope=="string"&&q.openNode(Te.classNameAliases[$.scope]||$.scope),$.beginScope&&($.beginScope._wrap?(q.addKeyword(ue,Te.classNameAliases[$.beginScope._wrap]||$.beginScope._wrap),ue=""):$.beginScope._multi&&(de($.beginScope,Z),ue="")),te=Object.create($,{parent:{value:te}}),te}function ot($,Z,O){let I=PS($.endRe,O);if(I){if($["on:end"]){const J=new Tp($);$["on:end"](Z,J),J.isMatchIgnored&&(I=!1)}if(I){for(;$.endsParent&&$.parent;)$=$.parent;return $}}if($.endsWithParent)return ot($.parent,Z,O)}function qe($){return te.matcher.regexIndex===0?(ue+=$[0],1):(Ue=!0,0)}function ft($){const Z=$[0],O=$.rule,I=new Tp(O),J=[O.__beforeBegin,O["on:begin"]];for(const ae of J)if(ae&&(ae($,I),I.isMatchIgnored))return qe(Z);return O.skip?ue+=Z:(O.excludeBegin&&(ue+=Z),xe(),!O.returnBegin&&!O.excludeBegin&&(ue=Z)),Me(O,$),O.returnBegin?0:Z.length}function at($){const Z=$[0],O=x.substring($.index),I=ot(te,$,O);if(!I)return Ip;const J=te;te.endScope&&te.endScope._wrap?(xe(),q.addKeyword(Z,te.endScope._wrap)):te.endScope&&te.endScope._multi?(xe(),de(te.endScope,$)):J.skip?ue+=Z:(J.returnEnd||J.excludeEnd||(ue+=Z),xe(),J.excludeEnd&&(ue=Z));do te.scope&&q.closeNode(),!te.skip&&!te.subLanguage&&(ye+=te.relevance),te=te.parent;while(te!==I.parent);return I.starts&&Me(I.starts,$),J.returnEnd?0:Z.length}function wt(){const $=[];for(let Z=te;Z!==Te;Z=Z.parent)Z.scope&&$.unshift(Z.scope);$.forEach(Z=>q.openNode(Z))}let ht={};function pe($,Z){const O=Z&&Z[0];if(ue+=$,O==null)return xe(),0;if(ht.type==="begin"&&Z.type==="end"&&ht.index===Z.index&&O===""){if(ue+=x.slice(Z.index,Z.index+1),!i){const I=new Error(`0 width match regex (${C})`);throw I.languageName=C,I.badRule=ht.rule,I}return 1}if(ht=Z,Z.type==="begin")return ft(Z);if(Z.type==="illegal"&&!_){const I=new Error('Illegal lexeme "'+O+'" for mode "'+(te.scope||"")+'"');throw I.mode=te,I}else if(Z.type==="end"){const I=at(Z);if(I!==Ip)return I}if(Z.type==="illegal"&&O==="")return 1;if(je>1e5&&je>Z.index*3)throw new Error("potential infinite loop, way more iterations than matches");return ue+=O,O.length}const Te=M(C);if(!Te)throw er(s.replace("{}",C)),new Error('Unknown language: "'+C+'"');const et=y_(Te);let Le="",te=D||et;const Ot={},q=new a.__emitter(a);wt();let ue="",ye=0,le=0,je=0,Ue=!1;try{for(te.matcher.considerAll();;){je++,Ue?Ue=!1:te.matcher.considerAll(),te.matcher.lastIndex=le;const $=te.matcher.exec(x);if(!$)break;const Z=x.substring(le,$.index),O=pe(Z,$);le=$.index+O}return pe(x.substring(le)),q.closeAllNodes(),q.finalize(),Le=q.toHTML(),{language:C,value:Le,relevance:ye,illegal:!1,_emitter:q,_top:te}}catch($){if($.message&&$.message.includes("Illegal"))return{language:C,value:Ga(x),illegal:!0,relevance:0,_illegalBy:{message:$.message,index:le,context:x.slice(le-100,le+100),mode:$.mode,resultSoFar:Le},_emitter:q};if(i)return{language:C,value:Ga(x),illegal:!1,relevance:0,errorRaised:$,_emitter:q,_top:te};throw $}}function p(C){const x={value:Ga(C),illegal:!1,relevance:0,_top:o,_emitter:new a.__emitter(a)};return x._emitter.addText(C),x}function f(C,x){x=x||a.languages||Object.keys(e);const _=p(C),D=x.filter(M).filter(z).map(xe=>d(xe,C,!1));D.unshift(_);const P=D.sort((xe,de)=>{if(xe.relevance!==de.relevance)return de.relevance-xe.relevance;if(xe.language&&de.language){if(M(xe.language).supersetOf===de.language)return 1;if(M(de.language).supersetOf===xe.language)return-1}return 0}),[G,ee]=P,ge=G;return ge.secondBest=ee,ge}function h(C,x,_){const D=x&&t[x]||_;C.classList.add("hljs"),C.classList.add(`language-${D}`)}function g(C){let x=null;const _=c(C);if(l(_))return;if(T("before:highlightElement",{el:C,language:_}),C.children.length>0&&(a.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(C)),a.throwUnescapedHTML))throw new k_("One of your code blocks includes unescaped HTML.",C.innerHTML);x=C;const D=x.textContent,P=_?u(D,{language:_,ignoreIllegals:!0}):f(D);C.innerHTML=P.value,h(C,_,P.language),C.result={language:P.language,re:P.relevance,relevance:P.relevance},P.secondBest&&(C.secondBest={language:P.secondBest.language,relevance:P.secondBest.relevance}),T("after:highlightElement",{el:C,result:P,text:D})}function m(C){a=Dp(a,C)}const v=()=>{b(),kr("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function y(){b(),kr("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let k=!1;function b(){if(document.readyState==="loading"){k=!0;return}document.querySelectorAll(a.cssSelector).forEach(g)}function E(){k&&b()}typeof window<"u"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",E,!1);function w(C,x){let _=null;try{_=x(n)}catch(D){if(er("Language definition for '{}' could not be registered.".replace("{}",C)),i)er(D);else throw D;_=o}_.name||(_.name=C),e[C]=_,_.rawDefinition=x.bind(null,n),_.aliases&&L(_.aliases,{languageName:C})}function S(C){delete e[C];for(const x of Object.keys(t))t[x]===C&&delete t[x]}function A(){return Object.keys(e)}function M(C){return C=(C||"").toLowerCase(),e[C]||e[t[C]]}function L(C,{languageName:x}){typeof C=="string"&&(C=[C]),C.forEach(_=>{t[_.toLowerCase()]=x})}function z(C){const x=M(C);return x&&!x.disableAutodetect}function U(C){C["before:highlightBlock"]&&!C["before:highlightElement"]&&(C["before:highlightElement"]=x=>{C["before:highlightBlock"](Object.assign({block:x.el},x))}),C["after:highlightBlock"]&&!C["after:highlightElement"]&&(C["after:highlightElement"]=x=>{C["after:highlightBlock"](Object.assign({block:x.el},x))})}function K(C){U(C),r.push(C)}function T(C,x){const _=C;r.forEach(function(D){D[_]&&D[_](x)})}function B(C){return kr("10.7.0","highlightBlock will be removed entirely in v12.0"),kr("10.7.0","Please use highlightElement now."),g(C)}Object.assign(n,{highlight:u,highlightAuto:f,highlightAll:b,highlightElement:g,highlightBlock:B,configure:m,initHighlighting:v,initHighlightingOnLoad:y,registerLanguage:w,unregisterLanguage:S,listLanguages:A,getLanguage:M,registerAliases:L,autoDetection:z,inherit:Dp,addPlugin:K}),n.debugMode=function(){i=!1},n.safeMode=function(){i=!0},n.versionString=w_,n.regex={concat:dr,lookahead:ym,either:Yc,optional:HS,anyNumberOfTimes:IS};for(const C in ys)typeof ys[C]=="object"&&jc.exports(ys[C]);return Object.assign(n,ys),n};var zi=E_({}),C_=zi;zi.HighlightJS=zi;zi.default=zi;var S_=C_;function Mm(n,e=[]){return n.map(t=>{const r=[...e,...t.properties?t.properties.className:[]];return t.children?Mm(t.children,r):{text:t.value,classes:r}}).flat()}function Hp(n){return n.value||n.children||[]}function __(n){return!!S_.getLanguage(n)}function Bp({doc:n,name:e,lowlight:t,defaultLanguage:r}){const i=[];return Il(n,s=>s.type.name===e).forEach(s=>{let o=s.pos+1;const a=s.node.attrs.language||r,l=t.listLanguages(),c=a&&(l.includes(a)||__(a))?Hp(t.highlight(a,s.node.textContent)):Hp(t.highlightAuto(s.node.textContent));Mm(c).forEach(u=>{const d=o+u.text.length;if(u.classes.length){const p=Be.inline(o,d,{class:u.classes.join(" ")});i.push(p)}o=d})}),Ee.create(n,i)}function M_(n){return typeof n=="function"}function A_({name:n,lowlight:e,defaultLanguage:t}){if(!["highlight","highlightAuto","listLanguages"].every(i=>M_(e[i])))throw Error("You should provide an instance of lowlight to use the code-block-lowlight extension");const r=new _e({key:new Ae("lowlight"),state:{init:(i,{doc:s})=>Bp({doc:s,name:n,lowlight:e,defaultLanguage:t}),apply:(i,s,o,a)=>{const l=o.selection.$head.parent.type.name,c=a.selection.$head.parent.type.name,u=Il(o.doc,p=>p.type.name===n),d=Il(a.doc,p=>p.type.name===n);return i.docChanged&&([l,c].includes(n)||d.length!==u.length||i.steps.some(p=>p.from!==void 0&&p.to!==void 0&&u.some(f=>f.pos>=p.from&&f.pos+f.node.nodeSize<=p.to)))?Bp({doc:i.doc,name:n,lowlight:e,defaultLanguage:t}):s.map(i.mapping,i.doc)}},props:{decorations(i){return r.getState(i)}}});return r}const T_=Gg.extend({addOptions(){var n;return{...(n=this.parent)===null||n===void 0?void 0:n.call(this),lowlight:{},defaultLanguage:null}},addProseMirrorPlugins(){var n;return[...((n=this.parent)===null||n===void 0?void 0:n.call(this))||[],A_({name:this.name,lowlight:this.options.lowlight,defaultLanguage:this.options.defaultLanguage})]}});function Pp(n,e,t={}){const{empty:r,ranges:i,from:s,to:o}=n.selection,a=e?dn(e,n.schema):null;if(r)return!!(n.storedMarks||n.selection.$from.marks()).filter(g=>a?a.name===g.type.name:!0).find(g=>Ur(g.attrs,t,{strict:!1}));let l=s,c=o;const u=[];i.forEach(({$from:g,$to:m})=>{const v=g.pos,y=m.pos;l=Math.min(l,v),c=Math.max(l,y),n.doc.nodesBetween(v,y,(k,b)=>{if(!k.isText&&!k.marks.length)return;const E=Math.max(v,b),w=Math.min(y,b+k.nodeSize);u.push(...k.marks.map(S=>({mark:S,from:E,to:w})))})});const d=c-l;if(d===0)return!1;const p=u.filter(g=>a?a.name===g.mark.type.name:!0).filter(g=>Ur(g.mark.attrs,t,{strict:!1})).reduce((g,m)=>g+m.to-m.from,0),f=u.filter(g=>a?g.mark.type!==a&&g.mark.type.excludes(a):!0).reduce((g,m)=>g+m.to-m.from,0);return(p>0?p+f:p)>=d}function $p(n){var e;return!!((e=n.spec.group)!=null&&e.split(" ").includes("list"))}function Vp(n,e,t={}){if(!e)return sr(n,null,t)||Pp(n,null,t);const r=n.schema.nodes[e];if(r){if($p(r)){const s=Fo(o=>$p(o.type))(n.selection);return!!(s&&s.node.type.name===e)}return sr(n,e,t)}return n.schema.marks[e]?Pp(n,e,t):!1}function Fp(n){return new ji({find:n.find,handler:({state:e,range:t,match:r,commands:i})=>{const s=e.doc.resolve(t.from),o=oe(n.getAttributes,void 0,r)||{};if(!s.node(-1).canReplaceWith(s.index(-1),s.indexAfter(-1),n.type))return null;e.tr.delete(t.from,t.to).setBlockType(t.from,t.from,n.type,o),setTimeout(()=>i.focus(!0),0)}})}const Am=[{name:"Auto",value:"auto"},{name:"Plain Text",value:"plaintext",alias:["text","txt"]},{name:"Bash",value:"bash",alias:["sh"]},{name:"BASIC",value:"basic",alias:[]},{name:"C",value:"c",alias:["h"]},{name:"Clojure",value:"clojure",alias:["clj","edn"]},{name:"CMake",value:"cmake",alias:["cmake.in"]},{name:"CoffeeScript",value:"coffeescript",alias:["coffee","cson","iced"]},{name:"C++",value:"cpp",alias:["cc","c++","h++","hpp","hh","hxx","cxx"]},{name:"C#",value:"csharp",alias:["cs","c#"]},{name:"CSS",value:"css",alias:[]},{name:"Dart",value:"dart",alias:[]},{name:"Delphi",value:"delphi",alias:["dpr","dfm","pas","pascal"]},{name:"Dockerfile",value:"dockerfile",alias:["docker"]},{name:"Erlang",value:"erlang",alias:["erl"]},{name:"Go",value:"go",alias:["golang"]},{name:"GraphQL",value:"graphql",alias:["gql"]},{name:"Groovy",value:"groovy",alias:[]},{name:"Java",value:"java",alias:["jsp"]},{name:"JavaScript",value:"javascript",alias:["js","jsx","mjs","cjs"]},{name:"JSON",value:"json",alias:[]},{name:"Kotlin",value:"kotlin",alias:["kt","kts"]},{name:"Lua",value:"lua",alias:[]},{name:"Makefile",value:"makefile",alias:["mk","mak","make"]},{name:"Markdown",value:"markdown",alias:["md","mkdown","mkd"]},{name:"Matlab",value:"matlab",alias:[]},{name:"Objective-C",value:"objectivec",alias:["mm","objc","obj-c","obj-c++","objective-c++"]},{name:"PHP",value:"php",alias:[]},{name:"Properties",value:"properties",alias:[]},{name:"Python",value:"python",alias:["py","gyp","ipython"]},{name:"Ruby",value:"ruby",alias:["rb","gemspec","podspec","thor","irb"]},{name:"Rust",value:"rust",alias:["rs"]},{name:"Scala",value:"scala",alias:[]},{name:"SCSS",value:"scss",alias:[]},{name:"Shell",value:"shell",alias:["console","shellsession"]},{name:"SQL",value:"sql",alias:[]},{name:"Swift",value:"swift",alias:[]},{name:"TypeScript",value:"typescript",alias:["ts","tsx"]},{name:"WebAssembly",value:"wasm",alias:[]},{name:"HTML, XML",value:"xml",alias:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"]},{name:"YAML",value:"yaml",alias:["yml"]}],zp=n=>{if(!n)return null;const e=n.toLocaleLowerCase();return Am.find(r=>r.value===e||r.alias&&r.alias.includes(e))};function N_(n,e){const{$from:t,from:r,to:i}=n,a=(e.textContent||"").split(` `).reduce((f,h,g)=>(f[g]=(f[g-1]||0)+h.length+(g===0?0:1),f),{}),l=t.parentOffset,c=t.parentOffset+i-r,u=Object.keys(a),d=u.find(f=>a[f]>=l),p=u.find(f=>a[f]>=c);return{start:d,end:p}}const O_=/^[`·]{3}([a-z]+)?[\s\n]$/,L_=/^[~~]{3}([a-z]+)?[\s\n]$/,R_=T_.extend({addOptions(){var n;return{...(n=this.parent)==null?void 0:n.call(this),lowlight:{},defaultLanguage:null,languages:Am}},addCommands(){var n;return{...(n=this.parent)==null?void 0:n.call(this),addCodeComments:(e,t)=>({editor:r})=>{const{storage:i,view:{dispatch:s},state:{tr:o}}=r;s(o.setSelection(Q.create(r.state.doc,t)).deleteSelection());const a=i.markdown.serializer.serialize(e);return Rn.get(this.options.codeCommentsAi.model).chat(a,this.options.codeCommentsAi.prompt,new ro(r,{markdownParseEnable:!0,useMarkdownTextOnly:!0})),!0},addCodeExplain:(e,t)=>({editor:r})=>{const{storage:i,view:{dispatch:s},state:{tr:o}}=r,a=r.state.doc.nodeSize;a<=t+e.nodeSize+2?(r.commands.insertContentAt(t+e.nodeSize+1,"

"),s(o.setSelection(X.create(r.state.doc,a-2)))):s(o.setSelection(X.create(r.state.doc,t+e.nodeSize+1)));const l=i.markdown.serializer.serialize(e),c=Rn.get(this.options.codeExplainAi.model);return c==null||c.chat(l,this.options.codeExplainAi.prompt,new ro(r)),!0},toggleCodeBlock:e=>({commands:t,editor:r,chain:i})=>{const{state:s}=r,{from:o,to:a}=s.selection;if(!Vp(s,this.name)&&!s.selection.empty){let l=!0;const c=[];if(s.doc.nodesBetween(o,a,(u,d)=>{if(u.isInline)return!1;if(u.type.name!=="paragraph")return d+1<=o&&d+u.nodeSize-1>=a?void 0:(l=!1,!1);{const p=(u.textContent||"").slice(d+1>o?0:o-d-1,d+u.nodeSize-11)return i().command(({state:u,tr:d})=>(d.replaceRangeWith(o,a,this.type.create(e,u.schema.text(c.join(` `)))),!0)).setTextSelection({from:o+2,to:o+2}).run()}return t.toggleNode(this.name,"paragraph",e)}}},addKeyboardShortcuts(){var n;return{...(n=this.parent)==null?void 0:n.call(this),Tab:({editor:e})=>{const{state:t,view:r}=e;if(!Vp(t,this.name))return!1;const{selection:i,tr:s}=t,o=" ";if(i.empty)r.dispatch(s.insertText(o));else{const{$from:a,from:l,to:c}=i,u=a.node();if(u.type!==this.type)return!1;const{start:d,end:p}=N_(i,u);if(d===void 0||p===void 0)return r.dispatch(s.replaceSelectionWith(t.schema.text(o))),!0;const g=(u.textContent||"").split(` @@ -407,7 +407,7 @@ https://github.com/highlightjs/highlight.js/issues/2277`),G=x,P=_),D===void 0&&( - `),e.onConfirmClick(t=>{var s,o;const r=t.popper.querySelector("#href").value;if(r.trim()===""){(s=this.editor)==null||s.chain().focus().extendMarkRange("link").unsetLink().run();return}let i=t.popper.querySelector("#target").value;i.trim()===""&&(i=null),(o=this.editor)==null||o.chain().focus().extendMarkRange("link").setLink({href:r,target:i,rel:null}).run()}),e.onShow(t=>{var i;const r=(i=this.editor)==null?void 0:i.getAttributes("link");r&&r.href&&(t.popper.querySelector("#href").value=r.href),r&&r.target&&(t.popper.querySelector("#target").value=r.target)}),e.setTrigger(this.querySelector("#edit"),"right")}onItemClick(e){var t,r;e==="unlink"?(t=this.editor)==null||t.chain().focus().unsetLink().run():e==="visit"&&window.open((r=this.editor)==null?void 0:r.getAttributes("link").href,"_blank")}onTransaction(e){}}class YA extends Yo{constructor(){super(),this.items=[{id:"left",title:ie("align-left"),content:''},{id:"center",title:ie("align-center"),content:''},{id:"right",title:ie("align-right"),content:''},{id:"delete",title:ie("delete"),content:''}]}onItemClick(e){var t,r,i;if(e!="delete"){const s=(t=this.editor)==null?void 0:t.getAttributes("image");s.align=e,(r=this.editor)==null||r.chain().setImage(s).run()}else(i=this.editor)==null||i.commands.deleteSelection()}onTransaction(e){}}class XA extends Yo{constructor(){super(),this.items=[{id:"insert-column-left",title:ie("insert-column-left"),content:''},{id:"insert-column-right",title:ie("insert-column-right"),content:''},{id:"insert-row-top",title:ie("insert-row-top"),content:''},{id:"insert-row-bottom",title:ie("insert-row-bottom"),content:''},{id:"delete-column",title:ie("delete-column"),content:''},{id:"delete-row",title:ie("delete-row"),content:''},{id:"merge-cells-horizontal",title:ie("merge-cells-horizontal"),content:''},{id:"merge-cells-vertical",title:ie("merge-cells-vertical"),content:''},{id:"split-cells-horizontal",title:ie("split-cells-horizontal"),content:''},{id:"split-cells-vertical",title:ie("split-cells-vertical"),content:''},{id:"delete",title:ie("delete-table"),content:''}]}onItemClick(e){var t,r,i,s,o,a,l,c,u;e==="insert-column-left"?(t=this.editor)==null||t.chain().focus().addColumnBefore().run():e==="insert-column-right"?(r=this.editor)==null||r.chain().focus().addColumnAfter().run():e==="insert-row-top"?(i=this.editor)==null||i.chain().focus().addRowBefore().run():e==="insert-row-bottom"?(s=this.editor)==null||s.chain().focus().addRowAfter().run():e==="delete-column"?(o=this.editor)==null||o.chain().focus().deleteColumn().run():e==="delete-row"?(a=this.editor)==null||a.chain().focus().deleteRow().run():e==="merge-cells-horizontal"||e==="merge-cells-vertical"?(l=this.editor)==null||l.chain().focus().mergeCells().run():e==="split-cells-horizontal"||e==="split-cells-vertical"?(c=this.editor)==null||c.chain().focus().splitCell().run():e==="delete"&&((u=this.editor)==null||u.chain().focus().deleteTable().run())}show(e){!e||e.length==0?this.style.display="none":this.style.display="",this.querySelectorAll(".aie-bubble-menu-item").forEach(t=>{t.style.display="none"}),e.forEach(t=>{const r=this.querySelector(`#${t}`);r.style.display=""})}onTransaction(e){if(!e.editor.isActive("table"))return;const{state:{selection:t},view:r}=e.editor;if(t instanceof he)if(this.isOneCellSelected(t)){const i=["insert-column-left","insert-column-right","delete-column","insert-row-top","insert-row-bottom","delete-row"];if(e.editor.can().splitCell()){const s=r.nodeDOM(t.$anchorCell.pos),o=s.getAttribute("colspan"),a=s.getAttribute("rowspan");o&&Number(o)>1?i.push("split-cells-horizontal"):a&&Number(a)>1&&i.push("split-cells-vertical")}this.show(i)}else this.isAllTableSelected(t)?this.show(["delete"]):this.isColumnSelected(t,r)?this.show(["insert-column-left","insert-column-right","delete-column","merge-cells-vertical"]):this.isRowSelected(t,r)?this.show(["insert-row-top","insert-row-bottom","delete-row","merge-cells-horizontal"]):this.show(["merge-cells-horizontal"]);else this.show(["insert-column-left","insert-column-right","delete-column","insert-row-top","insert-row-bottom","delete-row"])}isAllTableSelected(e){const t=Oe.get(e.$anchorCell.node(-1)),r=t.cellsInRect({top:0,left:0,right:t.width,bottom:t.height});return e.ranges.length==r.length}isOneCellSelected(e){return e.ranges.length==1}isColumnSelected(e,t){let r=-1;for(let i of e.ranges)if(r==-1)r=t.coordsAtPos(i.$from.pos).left;else if(r!=t.coordsAtPos(i.$from.pos).left)return!1;return!0}isRowSelected(e,t){let r=-1;for(let i of e.ranges)if(r==-1)r=t.coordsAtPos(i.$from.pos).bottom;else if(r!=t.coordsAtPos(i.$from.pos).bottom)return!1;return!0}}const Ss={check:'',refresh:'',aiPanelStart:'',aiPanelStop:''};class QA extends Yo{constructor(){super();V(this,"_instance");V(this,"aiBubbleInstance");V(this,"bubblePanelEnable",!0);V(this,"aiClient");this.items=[{id:"ai",title:ie("ai"),content:` + `),e.onConfirmClick(t=>{var s,o;const r=t.popper.querySelector("#href").value;if(r.trim()===""){(s=this.editor)==null||s.chain().focus().extendMarkRange("link").unsetLink().run();return}let i=t.popper.querySelector("#target").value;i.trim()===""&&(i=null),(o=this.editor)==null||o.chain().focus().extendMarkRange("link").setLink({href:r,target:i,rel:null}).run()}),e.onShow(t=>{var i;const r=(i=this.editor)==null?void 0:i.getAttributes("link");r&&r.href&&(t.popper.querySelector("#href").value=r.href),r&&r.target&&(t.popper.querySelector("#target").value=r.target)}),e.setTrigger(this.querySelector("#edit"),"right")}onItemClick(e){var t,r;e==="unlink"?(t=this.editor)==null||t.chain().focus().unsetLink().run():e==="visit"&&window.open((r=this.editor)==null?void 0:r.getAttributes("link").href,"_blank")}onTransaction(e){}}class YA extends Yo{constructor(){super(),this.items=[{id:"left",title:ie("align-left"),content:''},{id:"center",title:ie("align-center"),content:''},{id:"right",title:ie("align-right"),content:''},{id:"delete",title:ie("delete"),content:''}]}onItemClick(e){var t,r,i;if(e!="delete"){const s=(t=this.editor)==null?void 0:t.getAttributes("image");s.align=e,(r=this.editor)==null||r.chain().setImage(s).run()}else(i=this.editor)==null||i.commands.deleteSelection()}onTransaction(e){}}class XA extends Yo{constructor(){super(),this.items=[{id:"insert-column-left",title:ie("insert-column-left"),content:''},{id:"insert-column-right",title:ie("insert-column-right"),content:''},{id:"insert-row-top",title:ie("insert-row-top"),content:''},{id:"insert-row-bottom",title:ie("insert-row-bottom"),content:''},{id:"delete-column",title:ie("delete-column"),content:''},{id:"delete-row",title:ie("delete-row"),content:''},{id:"merge-cells-horizontal",title:ie("merge-cells-horizontal"),content:''},{id:"merge-cells-vertical",title:ie("merge-cells-vertical"),content:''},{id:"split-cells-horizontal",title:ie("split-cells-horizontal"),content:''},{id:"split-cells-vertical",title:ie("split-cells-vertical"),content:''},{id:"delete",title:ie("delete-table"),content:''}]}connectedCallback(){this.style.display="none",super.connectedCallback()}onItemClick(e){var t,r,i,s,o,a,l,c,u;e==="insert-column-left"?(t=this.editor)==null||t.chain().focus().addColumnBefore().run():e==="insert-column-right"?(r=this.editor)==null||r.chain().focus().addColumnAfter().run():e==="insert-row-top"?(i=this.editor)==null||i.chain().focus().addRowBefore().run():e==="insert-row-bottom"?(s=this.editor)==null||s.chain().focus().addRowAfter().run():e==="delete-column"?(o=this.editor)==null||o.chain().focus().deleteColumn().run():e==="delete-row"?(a=this.editor)==null||a.chain().focus().deleteRow().run():e==="merge-cells-horizontal"||e==="merge-cells-vertical"?(l=this.editor)==null||l.chain().focus().mergeCells().run():e==="split-cells-horizontal"||e==="split-cells-vertical"?(c=this.editor)==null||c.chain().focus().splitCell().run():e==="delete"&&((u=this.editor)==null||u.chain().focus().deleteTable().run())}show(e){!e||e.length==0?this.style.display="none":this.style.display="",this.querySelectorAll(".aie-bubble-menu-item").forEach(t=>{t.style.display="none"}),e.forEach(t=>{const r=this.querySelector(`#${t}`);r&&(r.style.display="")})}onTransaction(e){if(!e.editor.isActive("table"))return;const{state:{selection:t},view:r}=e.editor;if(t instanceof fe)if(this.isOneCellSelected(t)){const i=["insert-column-left","insert-column-right","delete-column","insert-row-top","insert-row-bottom","delete-row"];if(e.editor.can().splitCell()){const s=r.nodeDOM(t.$anchorCell.pos),o=s.getAttribute("colspan"),a=s.getAttribute("rowspan");o&&Number(o)>1?i.push("split-cells-horizontal"):a&&Number(a)>1&&i.push("split-cells-vertical")}this.show(i)}else this.isAllTableSelected(t)?this.show(["delete"]):this.isColumnSelected(t,r)?this.show(["insert-column-left","insert-column-right","delete-column","merge-cells-vertical"]):this.isRowSelected(t,r)?this.show(["insert-row-top","insert-row-bottom","delete-row","merge-cells-horizontal"]):this.show(["merge-cells-horizontal"]);else this.show(["insert-column-left","insert-column-right","delete-column","insert-row-top","insert-row-bottom","delete-row"])}isAllTableSelected(e){const t=Oe.get(e.$anchorCell.node(-1)),r=t.cellsInRect({top:0,left:0,right:t.width,bottom:t.height});return e.ranges.length==r.length}isOneCellSelected(e){return e.ranges.length==1}isColumnSelected(e,t){let r=-1;for(let i of e.ranges)if(r==-1)r=t.coordsAtPos(i.$from.pos).left;else if(r!=t.coordsAtPos(i.$from.pos).left)return!1;return!0}isRowSelected(e,t){let r=-1;for(let i of e.ranges)if(r==-1)r=t.coordsAtPos(i.$from.pos).bottom;else if(r!=t.coordsAtPos(i.$from.pos).bottom)return!1;return!0}}const Ss={check:'',refresh:'',aiPanelStart:'',aiPanelStop:''};class QA extends Yo{constructor(){super();V(this,"_instance");V(this,"aiBubbleInstance");V(this,"bubblePanelEnable",!0);V(this,"aiClient");this.items=[{id:"ai",title:ie("ai"),content:`
AI
@@ -429,11 +429,11 @@ https://github.com/highlightjs/highlight.js/issues/2277`),G=x,P=_),D===void 0&&(

放弃

- `,t.querySelector("#replace").addEventListener("click",()=>{const r=t.querySelector("textarea");if(r.value){const{state:{selection:i,tr:s},view:{dispatch:o},schema:a}=this.editor,l=a.text(r.value);o(s.replaceRangeWith(i.from,i.to,l))}}),t.querySelector("#insert").addEventListener("click",()=>{const r=t.querySelector("textarea");if(r.value){const{state:{selection:i,tr:s},view:{dispatch:o}}=this.editor;o(s.insertText(r.value,i.to))}}),t.querySelector("#hide").addEventListener("click",()=>{var r,i;(r=this.aiBubbleInstance)==null||r.hide(),(i=this._instance)==null||i.show()}),t.querySelector("#go").addEventListener("click",()=>{var r;if(this.aiClient)this.aiClient.stop();else{const i=t.querySelector("textarea");i.value="";const{selection:s,doc:o}=this.editor.state,a=o.textBetween(s.from,s.to),l=this.editor.userOptions,c=Rn.get(((r=l.ai)==null?void 0:r.bubblePanelModel)||"spark");if(c){const u=t.querySelector("#prompt").value,d=this;c.chat(a,u,{onStart(p){d.aiClient=p,t.querySelector(".loader").style.display="block",t.querySelector(".aie-ai-panel-body-content").style.display="block",t.querySelector("#go").innerHTML=Ss.aiPanelStop},onStop(){d.aiClient=null,t.querySelector("#go").innerHTML=Ss.aiPanelStart,t.querySelector(".loader").style.display="none",t.querySelector(".aie-ai-panel-footer").style.display="block"},onMessage(p){i.value=(i==null?void 0:i.value)+p.content}})}else console.error("Ai model config error.")}}),t}}se("aie-bubble-link",JA);se("aie-bubble-image",YA);se("aie-bubble-table",XA);se("aie-bubble-text",QA);function Xo(n,e){return we.create({name:n,addOptions(){return{...e}},addProseMirrorPlugins(){return this.options.element?[i1({pluginKey:this.options.pluginKey,editor:this.editor,element:this.options.element,tippyOptions:this.options.tippyOptions,updateDelay:this.options.updateDelay,shouldShow:this.options.shouldShow})]:[]}})}const eT=n=>{const e=document.createElement("aie-bubble-text");return n.eventComponents.push(e),Xo("textSelectionBubble",{pluginKey:"textSelectionBubble",element:e,tippyOptions:{appendTo:n.container,placement:"top",arrow:!1,onCreate(t){e.instance=t}},shouldShow:({editor:t})=>{if(!t.isEditable)return!1;const{state:{selection:r}}=t;return!r.empty&&$o(t.state.doc,{from:r.from,to:r.to}).length>0&&!t.isActive("link")&&!t.isActive("image")}})},tT=n=>{const e=document.createElement("aie-bubble-link");return n.eventComponents.push(e),Xo("linkBubble",{pluginKey:"textSelectionBubble",element:e,tippyOptions:{appendTo:n.container,placement:"bottom",arrow:!1},shouldShow:({editor:t})=>t.isEditable?t.isActive("link"):!1})},nT=n=>{const e=document.createElement("aie-bubble-image");return n.eventComponents.push(e),Xo("imageBubble",{pluginKey:"imageBubble",element:e,tippyOptions:{appendTo:n.container,placement:"top-start",arrow:!1,getReferenceClientRect:()=>{const{ranges:t}=n.innerEditor.state.selection,r=Math.min(...t.map(u=>u.$from.pos)),i=Math.max(...t.map(u=>u.$to.pos)),s=n.innerEditor.view,a=s.nodeDOM(r).querySelector("img"),l=zo(s,r,i),c=a.getBoundingClientRect();return{...l,left:c.left+c.width*.25}}},shouldShow:({editor:t})=>t.isEditable?t.isActive("image"):!1})},rT=n=>{const e=document.createElement("aie-bubble-table");return n.eventComponents.push(e),Xo("tableBubble",{pluginKey:"tableBubble",element:e,tippyOptions:{placement:"top",appendTo:n.container,arrow:!1,getReferenceClientRect:()=>{const t=n.innerEditor.state.selection,{ranges:r}=t,i=Math.min(...r.map(u=>u.$from.pos)),s=Math.max(...r.map(u=>u.$to.pos)),o=n.innerEditor.view,a=zo(o,i,s),l=n.innerEditor.state.selection.$from.posAtIndex(0,1),c=n.innerEditor.view.coordsAtPos(l);return{...a,top:c.top}}},shouldShow:({editor:t})=>{const{state:{selection:r}}=t;return t.isActive("table")&&r.empty}})},iT=n=>{const e=[];return e.push(eT(n)),e.push(tT(n)),e.push(nT(n)),e.push(rT(n)),e},sT=we.create({name:"placeholder",addOptions(){return{emptyEditorClass:"is-editor-empty",emptyNodeClass:"is-empty",placeholder:"Write something …",showOnlyWhenEditable:!0,showOnlyCurrent:!0,includeChildren:!1}},addProseMirrorPlugins(){return[new _e({key:new Ae("placeholder"),props:{decorations:({doc:n,selection:e})=>{const t=this.editor.isEditable||!this.options.showOnlyWhenEditable,{anchor:r}=e,i=[];if(!t)return null;const s=n.type.createAndFill(),o=(s==null?void 0:s.sameMarkup(n))&&s.content.findDiffStart(n.content)===null;return n.descendants((a,l)=>{const c=r>=l&&r<=l+a.nodeSize,u=!a.isLeaf&&!a.childCount;if((c||!this.options.showOnlyCurrent)&&u){const d=[this.options.emptyNodeClass];o&&d.push(this.options.emptyEditorClass);const p=Be.node(l,l+a.nodeSize,{class:d.join(" "),"data-placeholder":typeof this.options.placeholder=="function"?this.options.placeholder({editor:this.editor,node:a,pos:l,hasAnchor:c}):this.options.placeholder});i.push(p)}return this.options.includeChildren}),Ee.create(n,i)}}})]}});function oT(n){var e;const{char:t,allowSpaces:r,allowedPrefixes:i,startOfLine:s,$position:o}=n,a=Sw(t),l=new RegExp(`\\s${a}$`),c=s?"^":"",u=r?new RegExp(`${c}${a}.*?(?=\\s${a}|$)`,"gm"):new RegExp(`${c}(?:^)?${a}[^\\s${a}]*`,"gm"),d=((e=o.nodeBefore)===null||e===void 0?void 0:e.isText)&&o.nodeBefore.text;if(!d)return null;const p=o.pos-d.length,f=Array.from(d.matchAll(u)).pop();if(!f||f.input===void 0||f.index===void 0)return null;const h=f.input.slice(Math.max(0,f.index-1),f.index),g=new RegExp(`^[${i==null?void 0:i.join("")}\0]?$`).test(h);if(i!==null&&!g)return null;const m=p+f.index;let v=m+f[0].length;return r&&l.test(d.slice(v-1,v+1))&&(f[0]+=" ",v+=1),m=o.pos?{range:{from:m,to:v},query:f[0].slice(t.length),text:f[0]}:null}const aT=new Ae("suggestion");function s1({pluginKey:n=aT,editor:e,char:t="@",allowSpaces:r=!1,allowedPrefixes:i=[" "],startOfLine:s=!1,decorationTag:o="span",decorationClass:a="suggestion",command:l=()=>null,items:c=()=>[],render:u=()=>({}),allow:d=()=>!0}){let p;const f=u==null?void 0:u(),h=new _e({key:n,view(){return{update:async(g,m)=>{var v,y,k,b,E,w,S;const A=(v=this.key)===null||v===void 0?void 0:v.getState(m),M=(y=this.key)===null||y===void 0?void 0:y.getState(g.state),L=A.active&&M.active&&A.range.from!==M.range.from,z=!A.active&&M.active,U=A.active&&!M.active,K=!z&&!U&&A.query!==M.query,T=z||L,B=K&&!L,C=U||L;if(!T&&!B&&!C)return;const x=C&&!T?A:M,_=g.dom.querySelector(`[data-decoration-id="${x.decorationId}"]`);p={editor:e,range:x.range,query:x.query,text:x.text,items:[],command:D=>{l({editor:e,range:x.range,props:D})},decorationNode:_,clientRect:_?()=>{var D;const{decorationId:P}=(D=this.key)===null||D===void 0?void 0:D.getState(e.state),G=g.dom.querySelector(`[data-decoration-id="${P}"]`);return(G==null?void 0:G.getBoundingClientRect())||null}:null},T&&((k=f==null?void 0:f.onBeforeStart)===null||k===void 0||k.call(f,p)),B&&((b=f==null?void 0:f.onBeforeUpdate)===null||b===void 0||b.call(f,p)),(B||T)&&(p.items=await c({editor:e,query:x.query})),C&&((E=f==null?void 0:f.onExit)===null||E===void 0||E.call(f,p)),B&&((w=f==null?void 0:f.onUpdate)===null||w===void 0||w.call(f,p)),T&&((S=f==null?void 0:f.onStart)===null||S===void 0||S.call(f,p))},destroy:()=>{var g;p&&((g=f==null?void 0:f.onExit)===null||g===void 0||g.call(f,p))}}},state:{init(){return{active:!1,range:{from:0,to:0},query:null,text:null,composing:!1}},apply(g,m,v,y){const{isEditable:k}=e,{composing:b}=e.view,{selection:E}=g,{empty:w,from:S}=E,A={...m};if(A.composing=b,k&&(w||e.view.composing)){(Sm.range.to)&&!b&&!m.composing&&(A.active=!1);const M=oT({char:t,allowSpaces:r,allowedPrefixes:i,startOfLine:s,$position:E.$from}),L=`id_${Math.floor(Math.random()*4294967295)}`;M&&d({editor:e,state:y,range:M.range})?(A.active=!0,A.decorationId=m.decorationId?m.decorationId:L,A.range=M.range,A.query=M.query,A.text=M.text):A.active=!1}else A.active=!1;return A.active||(A.decorationId=null,A.range={from:0,to:0},A.query=null,A.text=null),A}},props:{handleKeyDown(g,m){var v;const{active:y,range:k}=h.getState(g.state);return y&&((v=f==null?void 0:f.onKeyDown)===null||v===void 0?void 0:v.call(f,{view:g,event:m,range:k}))||!1},decorations(g){const{active:m,range:v,decorationId:y}=h.getState(g);return m?Ee.create(g.doc,[Be.inline(v.from,v.to,{nodeName:o,class:a,"data-decoration-id":y})]):null}}});return h}const lT=new Ae("mention"),cT=ce.create({name:"mention",addOptions(){return{HTMLAttributes:{},renderLabel({options:n,node:e}){var t;return`${n.suggestion.char}${(t=e.attrs.label)!==null&&t!==void 0?t:e.attrs.id}`},suggestion:{char:"@",pluginKey:lT,command:({editor:n,range:e,props:t})=>{var r,i;const s=n.view.state.selection.$to.nodeAfter;((r=s==null?void 0:s.text)===null||r===void 0?void 0:r.startsWith(" "))&&(e.to+=1),n.chain().focus().insertContentAt(e,[{type:this.name,attrs:t},{type:"text",text:" "}]).run(),(i=window.getSelection())===null||i===void 0||i.collapseToEnd()},allow:({state:n,range:e})=>{const t=n.doc.resolve(e.from),r=n.schema.nodes[this.name];return!!t.parent.type.contentMatch.matchType(r)}}}},group:"inline",inline:!0,selectable:!1,atom:!0,addAttributes(){return{id:{default:null,parseHTML:n=>n.getAttribute("data-id"),renderHTML:n=>n.id?{"data-id":n.id}:{}},label:{default:null,parseHTML:n=>n.getAttribute("data-label"),renderHTML:n=>n.label?{"data-label":n.label}:{}}}},parseHTML(){return[{tag:`span[data-type="${this.name}"]`}]},renderHTML({node:n,HTMLAttributes:e}){return["span",fe({"data-type":this.name},this.options.HTMLAttributes,e),this.options.renderLabel({options:this.options,node:n})]},renderText({node:n}){return this.options.renderLabel({options:this.options,node:n})},addKeyboardShortcuts(){return{Backspace:()=>this.editor.commands.command(({tr:n,state:e})=>{let t=!1;const{selection:r}=e,{empty:i,anchor:s}=r;return i?(e.doc.nodesBetween(s-1,s,(o,a)=>{if(o.type.name===this.name)return t=!0,n.insertText(this.options.suggestion.char||"",a,a+o.nodeSize),!1}),t):!1})}},addProseMirrorPlugins(){return[s1({editor:this.editor,...this.options.suggestion})]}}),uT=n=>cT.configure({HTMLAttributes:{class:"mention"},suggestion:{items:({query:e})=>n(e),render:()=>{let e,t,r=0,i;const s=()=>{e.innerHTML=` + `,t.querySelector("#replace").addEventListener("click",()=>{const r=t.querySelector("textarea");if(r.value){const{state:{selection:i,tr:s},view:{dispatch:o},schema:a}=this.editor,l=a.text(r.value);o(s.replaceRangeWith(i.from,i.to,l))}}),t.querySelector("#insert").addEventListener("click",()=>{const r=t.querySelector("textarea");if(r.value){const{state:{selection:i,tr:s},view:{dispatch:o}}=this.editor;o(s.insertText(r.value,i.to))}}),t.querySelector("#hide").addEventListener("click",()=>{var r,i;(r=this.aiBubbleInstance)==null||r.hide(),(i=this._instance)==null||i.show()}),t.querySelector("#go").addEventListener("click",()=>{var r;if(this.aiClient)this.aiClient.stop();else{const i=t.querySelector("textarea");i.value="";const{selection:s,doc:o}=this.editor.state,a=o.textBetween(s.from,s.to),l=this.editor.userOptions,c=Rn.get(((r=l.ai)==null?void 0:r.bubblePanelModel)||"spark");if(c){const u=t.querySelector("#prompt").value,d=this;c.chat(a,u,{onStart(p){d.aiClient=p,t.querySelector(".loader").style.display="block",t.querySelector(".aie-ai-panel-body-content").style.display="block",t.querySelector("#go").innerHTML=Ss.aiPanelStop},onStop(){d.aiClient=null,t.querySelector("#go").innerHTML=Ss.aiPanelStart,t.querySelector(".loader").style.display="none",t.querySelector(".aie-ai-panel-footer").style.display="block"},onMessage(p){i.value=(i==null?void 0:i.value)+p.content}})}else console.error("Ai model config error.")}}),t}}se("aie-bubble-link",JA);se("aie-bubble-image",YA);se("aie-bubble-table",XA);se("aie-bubble-text",QA);function Xo(n,e){return we.create({name:n,addOptions(){return{...e}},addProseMirrorPlugins(){return this.options.element?[i1({pluginKey:this.options.pluginKey,editor:this.editor,element:this.options.element,tippyOptions:this.options.tippyOptions,updateDelay:this.options.updateDelay,shouldShow:this.options.shouldShow})]:[]}})}const eT=n=>{const e=document.createElement("aie-bubble-text");return n.eventComponents.push(e),Xo("textSelectionBubble",{pluginKey:"textSelectionBubble",element:e,tippyOptions:{appendTo:n.container,placement:"top",arrow:!1,onCreate(t){e.instance=t}},shouldShow:({editor:t})=>{if(!t.isEditable)return!1;const{state:{selection:r}}=t;return!r.empty&&$o(t.state.doc,{from:r.from,to:r.to}).length>0&&!t.isActive("link")&&!t.isActive("image")&&!(r instanceof fe)}})},tT=n=>{const e=document.createElement("aie-bubble-link");return n.eventComponents.push(e),Xo("linkBubble",{pluginKey:"textSelectionBubble",element:e,tippyOptions:{appendTo:n.container,placement:"bottom",arrow:!1},shouldShow:({editor:t})=>t.isEditable?t.isActive("link"):!1})},nT=n=>{const e=document.createElement("aie-bubble-image");return n.eventComponents.push(e),Xo("imageBubble",{pluginKey:"imageBubble",element:e,tippyOptions:{appendTo:n.container,placement:"top-start",arrow:!1,getReferenceClientRect:()=>{const{ranges:t}=n.innerEditor.state.selection,r=Math.min(...t.map(u=>u.$from.pos)),i=Math.max(...t.map(u=>u.$to.pos)),s=n.innerEditor.view,a=s.nodeDOM(r).querySelector("img"),l=zo(s,r,i),c=a.getBoundingClientRect();return{...l,left:c.left+c.width*.25}}},shouldShow:({editor:t})=>t.isEditable?t.isActive("image"):!1})},rT=n=>{const e=document.createElement("aie-bubble-table");return n.eventComponents.push(e),Xo("tableBubble",{pluginKey:"tableBubble",element:e,tippyOptions:{placement:"top",appendTo:n.container,arrow:!1,getReferenceClientRect:()=>{const t=n.innerEditor.state.selection,{ranges:r}=t,i=Math.min(...r.map(u=>u.$from.pos)),s=Math.max(...r.map(u=>u.$to.pos)),o=n.innerEditor.view,a=zo(o,i,s),l=n.innerEditor.state.selection.$from.posAtIndex(0,1),c=n.innerEditor.view.coordsAtPos(l);return{...a,top:c.top}}},shouldShow:({editor:t})=>{const{state:{selection:r}}=t;return t.isActive("table")&&r instanceof fe}})},iT=n=>{const e=[];return e.push(eT(n)),e.push(tT(n)),e.push(nT(n)),e.push(rT(n)),e},sT=we.create({name:"placeholder",addOptions(){return{emptyEditorClass:"is-editor-empty",emptyNodeClass:"is-empty",placeholder:"Write something …",showOnlyWhenEditable:!0,showOnlyCurrent:!0,includeChildren:!1}},addProseMirrorPlugins(){return[new _e({key:new Ae("placeholder"),props:{decorations:({doc:n,selection:e})=>{const t=this.editor.isEditable||!this.options.showOnlyWhenEditable,{anchor:r}=e,i=[];if(!t)return null;const s=n.type.createAndFill(),o=(s==null?void 0:s.sameMarkup(n))&&s.content.findDiffStart(n.content)===null;return n.descendants((a,l)=>{const c=r>=l&&r<=l+a.nodeSize,u=!a.isLeaf&&!a.childCount;if((c||!this.options.showOnlyCurrent)&&u){const d=[this.options.emptyNodeClass];o&&d.push(this.options.emptyEditorClass);const p=Be.node(l,l+a.nodeSize,{class:d.join(" "),"data-placeholder":typeof this.options.placeholder=="function"?this.options.placeholder({editor:this.editor,node:a,pos:l,hasAnchor:c}):this.options.placeholder});i.push(p)}return this.options.includeChildren}),Ee.create(n,i)}}})]}});function oT(n){var e;const{char:t,allowSpaces:r,allowedPrefixes:i,startOfLine:s,$position:o}=n,a=Sw(t),l=new RegExp(`\\s${a}$`),c=s?"^":"",u=r?new RegExp(`${c}${a}.*?(?=\\s${a}|$)`,"gm"):new RegExp(`${c}(?:^)?${a}[^\\s${a}]*`,"gm"),d=((e=o.nodeBefore)===null||e===void 0?void 0:e.isText)&&o.nodeBefore.text;if(!d)return null;const p=o.pos-d.length,f=Array.from(d.matchAll(u)).pop();if(!f||f.input===void 0||f.index===void 0)return null;const h=f.input.slice(Math.max(0,f.index-1),f.index),g=new RegExp(`^[${i==null?void 0:i.join("")}\0]?$`).test(h);if(i!==null&&!g)return null;const m=p+f.index;let v=m+f[0].length;return r&&l.test(d.slice(v-1,v+1))&&(f[0]+=" ",v+=1),m=o.pos?{range:{from:m,to:v},query:f[0].slice(t.length),text:f[0]}:null}const aT=new Ae("suggestion");function s1({pluginKey:n=aT,editor:e,char:t="@",allowSpaces:r=!1,allowedPrefixes:i=[" "],startOfLine:s=!1,decorationTag:o="span",decorationClass:a="suggestion",command:l=()=>null,items:c=()=>[],render:u=()=>({}),allow:d=()=>!0}){let p;const f=u==null?void 0:u(),h=new _e({key:n,view(){return{update:async(g,m)=>{var v,y,k,b,E,w,S;const A=(v=this.key)===null||v===void 0?void 0:v.getState(m),M=(y=this.key)===null||y===void 0?void 0:y.getState(g.state),L=A.active&&M.active&&A.range.from!==M.range.from,z=!A.active&&M.active,U=A.active&&!M.active,K=!z&&!U&&A.query!==M.query,T=z||L,B=K&&!L,C=U||L;if(!T&&!B&&!C)return;const x=C&&!T?A:M,_=g.dom.querySelector(`[data-decoration-id="${x.decorationId}"]`);p={editor:e,range:x.range,query:x.query,text:x.text,items:[],command:D=>{l({editor:e,range:x.range,props:D})},decorationNode:_,clientRect:_?()=>{var D;const{decorationId:P}=(D=this.key)===null||D===void 0?void 0:D.getState(e.state),G=g.dom.querySelector(`[data-decoration-id="${P}"]`);return(G==null?void 0:G.getBoundingClientRect())||null}:null},T&&((k=f==null?void 0:f.onBeforeStart)===null||k===void 0||k.call(f,p)),B&&((b=f==null?void 0:f.onBeforeUpdate)===null||b===void 0||b.call(f,p)),(B||T)&&(p.items=await c({editor:e,query:x.query})),C&&((E=f==null?void 0:f.onExit)===null||E===void 0||E.call(f,p)),B&&((w=f==null?void 0:f.onUpdate)===null||w===void 0||w.call(f,p)),T&&((S=f==null?void 0:f.onStart)===null||S===void 0||S.call(f,p))},destroy:()=>{var g;p&&((g=f==null?void 0:f.onExit)===null||g===void 0||g.call(f,p))}}},state:{init(){return{active:!1,range:{from:0,to:0},query:null,text:null,composing:!1}},apply(g,m,v,y){const{isEditable:k}=e,{composing:b}=e.view,{selection:E}=g,{empty:w,from:S}=E,A={...m};if(A.composing=b,k&&(w||e.view.composing)){(Sm.range.to)&&!b&&!m.composing&&(A.active=!1);const M=oT({char:t,allowSpaces:r,allowedPrefixes:i,startOfLine:s,$position:E.$from}),L=`id_${Math.floor(Math.random()*4294967295)}`;M&&d({editor:e,state:y,range:M.range})?(A.active=!0,A.decorationId=m.decorationId?m.decorationId:L,A.range=M.range,A.query=M.query,A.text=M.text):A.active=!1}else A.active=!1;return A.active||(A.decorationId=null,A.range={from:0,to:0},A.query=null,A.text=null),A}},props:{handleKeyDown(g,m){var v;const{active:y,range:k}=h.getState(g.state);return y&&((v=f==null?void 0:f.onKeyDown)===null||v===void 0?void 0:v.call(f,{view:g,event:m,range:k}))||!1},decorations(g){const{active:m,range:v,decorationId:y}=h.getState(g);return m?Ee.create(g.doc,[Be.inline(v.from,v.to,{nodeName:o,class:a,"data-decoration-id":y})]):null}}});return h}const lT=new Ae("mention"),cT=ce.create({name:"mention",addOptions(){return{HTMLAttributes:{},renderLabel({options:n,node:e}){var t;return`${n.suggestion.char}${(t=e.attrs.label)!==null&&t!==void 0?t:e.attrs.id}`},suggestion:{char:"@",pluginKey:lT,command:({editor:n,range:e,props:t})=>{var r,i;const s=n.view.state.selection.$to.nodeAfter;((r=s==null?void 0:s.text)===null||r===void 0?void 0:r.startsWith(" "))&&(e.to+=1),n.chain().focus().insertContentAt(e,[{type:this.name,attrs:t},{type:"text",text:" "}]).run(),(i=window.getSelection())===null||i===void 0||i.collapseToEnd()},allow:({state:n,range:e})=>{const t=n.doc.resolve(e.from),r=n.schema.nodes[this.name];return!!t.parent.type.contentMatch.matchType(r)}}}},group:"inline",inline:!0,selectable:!1,atom:!0,addAttributes(){return{id:{default:null,parseHTML:n=>n.getAttribute("data-id"),renderHTML:n=>n.id?{"data-id":n.id}:{}},label:{default:null,parseHTML:n=>n.getAttribute("data-label"),renderHTML:n=>n.label?{"data-label":n.label}:{}}}},parseHTML(){return[{tag:`span[data-type="${this.name}"]`}]},renderHTML({node:n,HTMLAttributes:e}){return["span",he({"data-type":this.name},this.options.HTMLAttributes,e),this.options.renderLabel({options:this.options,node:n})]},renderText({node:n}){return this.options.renderLabel({options:this.options,node:n})},addKeyboardShortcuts(){return{Backspace:()=>this.editor.commands.command(({tr:n,state:e})=>{let t=!1;const{selection:r}=e,{empty:i,anchor:s}=r;return i?(e.doc.nodesBetween(s-1,s,(o,a)=>{if(o.type.name===this.name)return t=!0,n.insertText(this.options.suggestion.char||"",a,a+o.nodeSize),!1}),t):!1})}},addProseMirrorPlugins(){return[s1({editor:this.editor,...this.options.suggestion})]}}),uT=n=>cT.configure({HTMLAttributes:{class:"mention"},suggestion:{items:({query:e})=>n(e),render:()=>{let e,t,r=0,i;const s=()=>{e.innerHTML=`
${i.items.map((o,a)=>``).join("")}
- `,e.addEventListener("click",o=>{const a=o.target.closest(".item");if(a){const l=Number(a.getAttribute("data-index")),c=i.items[l];c&&c.id?i.command(c):i.command({id:c})}})};return{onStart:o=>{e=document.createElement("div"),e.classList.add("suggestion"),i=o,o.clientRect&&(s(),t=ze("body",{getReferenceClientRect:o.clientRect,appendTo:()=>o.editor.view.dom.closest(".aie-container"),content:e,showOnCreate:!0,interactive:!0,allowHTML:!0,trigger:"manual",placement:"bottom-start",arrow:!1}))},onUpdate(o){i=o,o.clientRect&&(s(),t[0].setProps({getReferenceClientRect:o.clientRect}))},onKeyDown(o){if(o.event.key==="Escape")return t[0].hide(),!0;if(o.event.key==="ArrowUp")return r=(r+i.items.length-1)%i.items.length,s(),!0;if(o.event.key==="ArrowDown")return r=(r+1)%i.items.length,s(),!0;if(o.event.key==="Enter"){const a=i.items[r];return a&&a.id?i.command(a):i.command({id:a}),!0}return!1},onExit(){t[0].destroy(),e.remove()}}}}}),dT=[{icon:'',name:"AI 续写",prompt:"请帮我继续扩展一些这段话的内容",model:"auto"},{icon:'',name:"AI 提问",prompt:"",model:"auto"},{icon:'',name:"AI 翻译",prompt:"请帮我把这段内容翻译为英语,直接返回英语结果",model:"auto"},{icon:'',name:"AI 生图",prompt:"请根据以上的内容,生成一张图片,并把图片返回给我",model:"auto"}],pT=we.create({name:"aiCommand",addOptions(){return{suggestion:{char:"/",command:({editor:n,range:e,props:t})=>{if(n.chain().focus().deleteRange(e).run(),t&&t.aiItem){let r=t.aiItem;const i=n.state.selection.$head.parent.textContent;let s=r.model;const o=Rn.get(r.model);o?o==null||o.chat(i,r.prompt,new ro(n)):console.error("Ai model config error. can not find the type:"+s+" at command menu")}else switch(t.index){case 0:n.chain().setParagraph().run();return;case 1:n.chain().setHeading({level:1}).run();return;case 2:n.chain().setHeading({level:2}).run();return;case 3:n.chain().setHeading({level:3}).run();return;case 4:n.chain().toggleContainer("warning").run();return;case 5:n.chain().toggleBlockquote().run();return;case 6:n.chain().toggleBulletList().run();return;case 7:n.chain().toggleOrderedList().run();return;case 8:n.chain().setTextAlign("left").run();return;case 9:n.chain().setTextAlign("center").run();return;case 10:n.chain().toggleTaskList().run();return;case 11:n.chain().toggleCodeBlock().run();return}},render:()=>{let n,e,t=0,r;const i=()=>{n.innerHTML=` + `,e.addEventListener("click",o=>{const a=o.target.closest(".item");if(a){const l=Number(a.getAttribute("data-index")),c=i.items[l];c&&c.id?i.command(c):i.command({id:c})}})};return{onStart:o=>{e=document.createElement("div"),e.classList.add("suggestion"),i=o,o.clientRect&&(s(),t=ze("body",{getReferenceClientRect:o.clientRect,appendTo:()=>o.editor.view.dom.closest(".aie-container"),content:e,showOnCreate:!0,interactive:!0,allowHTML:!0,trigger:"manual",placement:"bottom-start",arrow:!1}))},onUpdate(o){i=o,o.clientRect&&(s(),t[0].setProps({getReferenceClientRect:o.clientRect}))},onKeyDown(o){if(o.event.key==="Escape")return t[0].hide(),!0;if(o.event.key==="ArrowUp")return r=(r+i.items.length-1)%i.items.length,s(),!0;if(o.event.key==="ArrowDown")return r=(r+1)%i.items.length,s(),!0;if(o.event.key==="Enter"){const a=i.items[r];return a&&a.id?i.command(a):i.command({id:a}),!0}return!1},onExit(){t[0].destroy(),e.remove()}}}}}),dT=[{icon:'',name:"AI 续写",prompt:"请帮我继续扩展一些这段话的内容",model:"auto"},{icon:'',name:"AI 提问",prompt:"",model:"auto"},{icon:'',name:"AI 翻译",prompt:"请帮我翻译以上内容,在翻译之前,想先判断一下这个内容是不是中文,如果是中文,则翻译问英文,如果是其他语言,则需要翻译为中文,注意,你只需要返回翻译的结果,不需要对此进行任何解释,不需要除了翻译结果以外的其他任何内容。",model:"auto"},{icon:'',name:"AI 生图",prompt:"请根据以上的内容,生成一张图片,并把图片返回给我",model:"auto"}],pT=we.create({name:"aiCommand",addOptions(){return{suggestion:{char:"/",command:({editor:n,range:e,props:t})=>{if(n.chain().focus().deleteRange(e).run(),t&&t.aiItem){let r=t.aiItem;const i=n.state.selection.$head.parent.textContent;let s=r.model;const o=Rn.get(r.model);o?o==null||o.chat(i,r.prompt,new ro(n)):console.error("Ai model config error. can not find the type:"+s+" at command menu")}else switch(t.index){case 0:n.chain().setParagraph().run();return;case 1:n.chain().setHeading({level:1}).run();return;case 2:n.chain().setHeading({level:2}).run();return;case 3:n.chain().setHeading({level:3}).run();return;case 4:n.chain().toggleContainer("warning").run();return;case 5:n.chain().toggleBlockquote().run();return;case 6:n.chain().toggleBulletList().run();return;case 7:n.chain().toggleOrderedList().run();return;case 8:n.chain().setTextAlign("left").run();return;case 9:n.chain().setTextAlign("center").run();return;case 10:n.chain().toggleTaskList().run();return;case 11:n.chain().toggleCodeBlock().run();return}},render:()=>{let n,e,t=0,r;const i=()=>{n.innerHTML=`
@@ -509,4 +509,4 @@ ${t.innerHTML} `);return}},parse:{}}}}}),ode=ce.create({name:"heading"}),ade=ode.extend({addStorage(){return{markdown:{serialize:tn.nodes.heading,parse:{}}}}}),lde=ce.create({name:"horizontalRule"}),cde=lde.extend({addStorage(){return{markdown:{serialize:tn.nodes.horizontal_rule,parse:{}}}}}),ude=ce.create({name:"image"}),dde=ude.extend({addStorage(){return{markdown:{serialize:tn.nodes.image,parse:{}}}}}),pde=ce.create({name:"listItem"}),fde=pde.extend({addStorage(){return{markdown:{serialize:tn.nodes.list_item,parse:{}}}}}),hde=ce.create({name:"orderedList"});function gde(n,e,t){let r=0;for(;t-r>0&&e.child(t-r-1).type.name===n.type.name;r++);return r}const mde=hde.extend({addStorage(){return{markdown:{serialize(n,e,t,r){const i=e.attrs.start||1,s=String(i+e.childCount-1).length,o=n.repeat(" ",s+2),l=gde(e,t,r)%2?") ":". ";n.renderList(e,o,c=>{const u=String(i+c);return n.repeat(" ",s-u.length)+u+l})},parse:{}}}}}),bde=ce.create({name:"paragraph"}),yde=bde.extend({addStorage(){return{markdown:{serialize:tn.nodes.paragraph,parse:{}}}}});function gl(n){var e,t;return(e=n==null||(t=n.content)===null||t===void 0?void 0:t.content)!==null&&e!==void 0?e:[]}const vde=ce.create({name:"table"}),wde=vde.extend({addStorage(){return{markdown:{serialize(n,e,t){if(!kde(e)){la.storage.markdown.serialize.call(this,n,e,t);return}n.inTable=!0,e.forEach((r,i,s)=>{if(n.write("| "),r.forEach((o,a,l)=>{l&&n.write(" | ");const c=o.firstChild;c.textContent.trim()&&n.renderInline(c)}),n.write(" |"),n.ensureNewLine(),!s){const o=Array.from({length:r.childCount}).map(()=>"---").join(" | ");n.write(`| ${o} |`),n.ensureNewLine()}}),n.closeBlock(e),n.inTable=!1},parse:{}}}}});function Zf(n){return n.attrs.colspan>1||n.attrs.rowspan>1}function kde(n){const e=gl(n),t=e[0],r=e.slice(1);return!(gl(t).some(i=>i.type.name!=="tableHeader"||Zf(i)||i.childCount>1)||r.some(i=>gl(i).some(s=>s.type.name==="tableHeader"||Zf(s)||s.childCount>1)))}const xde=ce.create({name:"taskItem"}),Ede=xde.extend({addStorage(){return{markdown:{serialize(n,e){const t=e.attrs.checked?"[x]":"[ ]";n.write(`${t} `),n.renderContent(e)},parse:{updateDOM(n){[...n.querySelectorAll(".task-list-item")].forEach(e=>{const t=e.querySelector("input");e.setAttribute("data-type","taskItem"),t&&(e.setAttribute("data-checked",t.checked),t.remove())})}}}}}}),Cde=ce.create({name:"taskList"}),Sde=Cde.extend({addStorage(){return{markdown:{serialize:R1.storage.markdown.serialize,parse:{setup(n){n.use(Fue)},updateDOM(n){[...n.querySelectorAll(".contains-task-list")].forEach(e=>{e.setAttribute("data-type","taskList")})}}}}}}),_de=ce.create({name:"text"}),Mde=_de.extend({addStorage(){return{markdown:{serialize(n,e){n.text(jue(e.text))},parse:{}}}}}),Ade=De.create({name:"bold"}),Tde=Ade.extend({addStorage(){return{markdown:{serialize:tn.marks.strong,parse:{}}}}}),Nde=De.create({name:"code"}),Ode=Nde.extend({addStorage(){return{markdown:{serialize:tn.marks.code,parse:{}}}}}),Lde=De.create({name:"italic"}),Rde=Lde.extend({addStorage(){return{markdown:{serialize:tn.marks.em,parse:{}}}}}),Dde=De.create({name:"link"}),Ide=Dde.extend({addStorage(){return{markdown:{serialize:tn.marks.link,parse:{}}}}}),Hde=De.create({name:"strike"}),Bde=Hde.extend({addStorage(){return{markdown:{serialize:{open:"~~",close:"~~",expelEnclosingWhitespace:!0},parse:{}}}}}),Pde=[tde,R1,ide,D1,ade,cde,la,dde,fde,mde,yde,wde,Ede,Sde,Mde,Tde,Ode,L1,Rde,Ide,Bde];function Ao(n){var e,t;const r=(e=n.storage)===null||e===void 0?void 0:e.markdown,i=(t=Pde.find(s=>s.name===n.name))===null||t===void 0?void 0:t.storage.markdown;return r||i?{...i,...r}:null}class $de{constructor(e){Mo(this,"editor",null),this.editor=e}serialize(e){const t=new Gue(this.nodes,this.marks,{hardBreakNodeName:D1.name});return t.renderContent(e),t.out}get nodes(){var e;return{...Object.fromEntries(Object.keys(this.editor.schema.nodes).map(t=>[t,this.serializeNode(la)])),...Object.fromEntries((e=this.editor.extensionManager.extensions.filter(t=>t.type==="node"&&this.serializeNode(t)).map(t=>[t.name,this.serializeNode(t)]))!==null&&e!==void 0?e:[])}}get marks(){var e;return{...Object.fromEntries(Object.keys(this.editor.schema.marks).map(t=>[t,this.serializeMark(L1)])),...Object.fromEntries((e=this.editor.extensionManager.extensions.filter(t=>t.type==="mark"&&this.serializeMark(t)).map(t=>[t.name,this.serializeMark(t)]))!==null&&e!==void 0?e:[])}}serializeNode(e){var t;return(t=Ao(e))===null||t===void 0||(t=t.serialize)===null||t===void 0?void 0:t.bind({editor:this.editor,options:e.options})}serializeMark(e){var t;const r=(t=Ao(e))===null||t===void 0?void 0:t.serialize;return r?{...r,open:typeof r.open=="function"?r.open.bind({editor:this.editor,options:e.options}):r.open,close:typeof r.close=="function"?r.close.bind({editor:this.editor,options:e.options}):r.close}:null}}class Vde{constructor(e,t){Mo(this,"editor",null),Mo(this,"md",null);let{html:r,linkify:i,breaks:s}=t;this.editor=e,this.md=this.withPatchedRenderer(gu({html:r,linkify:i,breaks:s}))}parse(e){let{inline:t}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(typeof e=="string"){this.editor.extensionManager.extensions.forEach(s=>{var o;return(o=Ao(s))===null||o===void 0||(o=o.parse)===null||o===void 0||(o=o.setup)===null||o===void 0?void 0:o.call({editor:this.editor,options:s.options},this.md)});const r=this.md.render(e),i=mu(r);return this.editor.extensionManager.extensions.forEach(s=>{var o;return(o=Ao(s))===null||o===void 0||(o=o.parse)===null||o===void 0||(o=o.updateDOM)===null||o===void 0?void 0:o.call({editor:this.editor,options:s.options},i)}),this.normalizeDOM(i,{inline:t,content:e}),i.innerHTML}return e}normalizeDOM(e,t){let{inline:r,content:i}=t;return this.normalizeBlocks(e),e.querySelectorAll("*").forEach(s=>{var o;((o=s.nextSibling)===null||o===void 0?void 0:o.nodeType)===Node.TEXT_NODE&&!s.closest("pre")&&(s.nextSibling.textContent=s.nextSibling.textContent.replace(/^\n/,""))}),r&&this.normalizeInline(e,i),e}normalizeBlocks(e){const r=Object.values(this.editor.schema.nodes).filter(i=>i.isBlock).map(i=>{var s;return(s=i.spec.parseDOM)===null||s===void 0?void 0:s.map(o=>o.tag)}).flat().filter(Boolean).join(",");r&&[...e.querySelectorAll(r)].forEach(i=>{i.parentElement.matches("p")&&Jue(i)})}normalizeInline(e,t){var r;if((r=e.firstElementChild)!==null&&r!==void 0&&r.matches("p")){var i,s,o,a;const l=e.firstElementChild,{nextElementSibling:c}=l,u=(i=(s=t.match(/^\s+/))===null||s===void 0?void 0:s[0])!==null&&i!==void 0?i:"",d=c?"":(o=(a=t.match(/\s+$/))===null||a===void 0?void 0:a[0])!==null&&o!==void 0?o:"";if(t.match(/^\n\n/)){l.innerHTML=`${l.innerHTML}${d}`;return}Yue(l),e.innerHTML=`${u}${e.innerHTML}${d}`}}withPatchedRenderer(e){const t=r=>function(){const i=r(...arguments);return i===` `?i:i[i.length-1]===` `?i.slice(0,-1):i};return e.renderer.rules.hardbreak=t(e.renderer.rules.hardbreak),e.renderer.rules.softbreak=t(e.renderer.rules.softbreak),e.renderer.rules.fence=t(e.renderer.rules.fence),e.renderer.rules.code_block=t(e.renderer.rules.code_block),e.renderer.renderToken=t(e.renderer.renderToken.bind(e.renderer)),e}}const Fde=we.create({name:"markdownClipboard",addOptions(){return{transformPastedText:!1,transformCopiedText:!1}},addProseMirrorPlugins(){return[new _e({key:new Ae("markdownClipboard"),props:{clipboardTextParser:(n,e,t)=>{if(t||!this.options.transformPastedText)return null;const r=this.editor.storage.markdown.parser.parse(n,{inline:!0});return Zi.fromSchema(this.editor.schema).parseSlice(mu(r),{preserveWhitespace:!0,context:e})},clipboardTextSerializer:n=>this.options.transformCopiedText?this.editor.storage.markdown.serializer.serialize(n.content):null}})]}}),zde=we.create({name:"markdown",priority:50,addOptions(){return{html:!0,tightLists:!0,tightListClass:"tight",bulletListMarker:"-",linkify:!1,breaks:!1,transformPastedText:!1,transformCopiedText:!1}},addCommands(){const n=mg.Commands.config.addCommands();return{setContent:(e,t,r)=>i=>n.setContent(i.editor.storage.markdown.parser.parse(e),t,r)(i),insertContentAt:(e,t,r)=>i=>n.insertContentAt(e,i.editor.storage.markdown.parser.parse(t,{inline:!0}),r)(i)}},onBeforeCreate(){this.editor.storage.markdown={options:{...this.options},parser:new Vde(this.editor,this.options),serializer:new $de(this.editor),getMarkdown:()=>this.editor.storage.markdown.serializer.serialize(this.editor.state.doc)},this.editor.options.initialContent=this.editor.options.content,this.editor.options.content=this.editor.storage.markdown.parser.parse(this.editor.options.content)},onCreate(){this.editor.options.content=this.editor.options.initialContent,delete this.editor.options.initialContent},addStorage(){return{}},addExtensions(){return[Uue.configure({tight:this.options.tightLists,tightClass:this.options.tightListClass}),Fde.configure({transformPastedText:this.options.transformPastedText,transformCopiedText:this.options.transformCopiedText})]}});var qde=function(e,t,r){function i(f){return f.trim().split(" ",2)[0]===t}function s(f,h,g,m,v){return f[h].nesting===1&&f[h].attrJoin("class",t),v.renderToken(f,h,g,m,v)}r=r||{};var o=3,a=r.marker||":",l=a.charCodeAt(0),c=a.length,u=r.validate||i,d=r.render||s;function p(f,h,g,m){var v,y,k,b,E,w,S,A,M=!1,L=f.bMarks[h]+f.tShift[h],z=f.eMarks[h];if(l!==f.src.charCodeAt(L))return!1;for(v=L+1;v<=z&&a[(v-L)%c]===f.src[v];v++);if(k=Math.floor((v-L)/c),k=g||(L=f.bMarks[y]+f.tShift[y],z=f.eMarks[y],L=4)){for(v=L+1;v<=z&&a[(v-L)%c]===f.src[v];v++);if(!(Math.floor((v-L)/c){this.options.classes.forEach(e=>{n.use(Ude,e)})}}}}},addAttributes(){return{containerClass:{default:null,parseHTML:n=>[...n.classList].find(e=>this.options.classes.includes(e)),renderHTML:n=>({class:n.containerClass})}}},parseHTML(){return[{tag:"div",getAttrs:n=>{const e=n,t=["container-wrapper"].concat(this.options.classes);return[...e.classList].find(r=>t.includes(r))?null:!1}}]},renderHTML({HTMLAttributes:n}){return["div",fe(this.options.HTMLAttributes,n),0]},addCommands(){return{setContainer:n=>({commands:e})=>e.wrapIn(this.name,{containerClass:n}),toggleContainer:n=>({commands:e})=>e.toggleWrap(this.name,{containerClass:n}),unsetContainer:()=>({commands:n})=>n.lift(this.name)}},addInputRules(){return[ar({find:Kde,type:this.type,getAttributes:n=>({containerClass:n[1]})})]}}),Wde=jg.extend({addAttributes(){var n;return{...(n=this.parent)==null?void 0:n.call(this),id:{default:null}}}}),Gde=we.create({name:"saveExt",addKeyboardShortcuts(){return{"Mod-s":({editor:n})=>this.options.onSave?this.options.onSave(n.aiEditor):!1}}}),jde=(n,e)=>{var r,i,s,o,a,l,c,u,d,p,f,h,g,m,v,y,k,b,E,w,S,A,M;const t=e.cbName&&e.cbUrl?[ip.configure({history:!1,codeBlock:!1,heading:!1})]:[ip.configure({codeBlock:!1,heading:!1})];return t.push(L2,R2,D2,Wde,P2.configure({uploadUrl:(r=e.attachment)==null?void 0:r.uploadUrl,uploadHeaders:(i=e.attachment)==null?void 0:i.uploadHeaders,uploader:((s=e.attachment)==null?void 0:s.uploader)||e.uploader,uploaderEvent:(o=e.attachment)==null?void 0:o.uploaderEvent}),$2,fT,z2.configure({multicolor:!0}),q2,U2,K2,Z2.configure({types:["heading","paragraph"]}),W2,J2.configure({allowBase64:typeof((a=e.image)==null?void 0:a.allowBase64)>"u"?!0:(l=e.image)==null?void 0:l.allowBase64,defaultSize:((c=e.image)==null?void 0:c.defaultSize)||350,uploadUrl:(u=e.image)==null?void 0:u.uploadUrl,uploadHeaders:(d=e.image)==null?void 0:d.uploadHeaders,uploader:((p=e.image)==null?void 0:p.uploader)||e.uploader,uploaderEvent:(f=e.image)==null?void 0:f.uploaderEvent}),YC.configure({resizable:!0,lastColumnResizable:!0,allowTableNodeSelection:!0}),XC,QC,eS,tS,CS.configure({openOnClick:!1,autolink:typeof((h=e.link)==null?void 0:h.autolink)>"u"?!0:(g=e.link)==null?void 0:g.autolink,HTMLAttributes:{ref:(m=e==null?void 0:e.link)==null?void 0:m.rel,class:(v=e==null?void 0:e.link)==null?void 0:v.class}}),SS,_S,MS,TS.configure({nested:!0}),R_.configure({lowlight:UA(GM),defaultLanguage:"auto",languageClassPrefix:"language-",codeExplainAi:((k=(y=e.ai)==null?void 0:y.codeBlock)==null?void 0:k.codeExplain)||{model:"auto",prompt:"帮我对这个代码进行解释,返回代码的解释内容,注意,不需要对代码的注释进行解释"},codeCommentsAi:((E=(b=e.ai)==null?void 0:b.codeBlock)==null?void 0:E.codeComments)||{model:"auto",prompt:"帮我对这个代码添加一些注释,并返回添加注释的代码,只返回代码"}}),WA.configure({uploadUrl:(w=e.video)==null?void 0:w.uploadUrl,uploadHeaders:(S=e.video)==null?void 0:S.uploadHeaders,uploader:((A=e.video)==null?void 0:A.uploader)||e.uploader,uploaderEvent:(M=e.video)==null?void 0:M.uploaderEvent}),GA,Gde.configure({onSave:e.onSave}),zde.configure({html:!0,tightLists:!0,tightListClass:"tight",bulletListMarker:"-",linkify:!0,breaks:!0,transformPastedText:!0,transformCopiedText:!1}),Zde,...iT(n)),e.placeholder&&t.push(sT.configure({placeholder:e.placeholder})),t.push(pT.configure({suggestion:{items:L=>{var U;return((U=e.ai)==null?void 0:U.commands)||dT}}})),e.onMentionQuery&&t.push(uT(e.onMentionQuery)),t};const Jde={default:"默认",delete:"删除",confirm:"确定",undo:"撤销",redo:"重做",brush:"格式刷",container:"高亮块",eraser:"清除格式",heading:"正文/标题","font-family":"字体","font-size":"字号",bold:"加粗",italic:"斜体",underline:"下划线",strike:"删除线",link:"链接",code:"行内代码",subscript:"下标",superscript:"上标",hr:"分割线",todo:"任务列表",emoji:"表情",highlight:"高亮","font-color":"字体颜色",align:"对齐","line-height":"行高","bullet-list":"无序列表","ordered-list":"有序列表","indent-decrease":"减少缩进","indent-increase":"增加缩进",break:"强制换行",image:"图片",video:"视频",attachment:"附件",quote:"引用","code-block":"代码块",table:"表格",printer:"打印",fullscreen:"全屏",ai:"人工智能",paragraph:"正文",h1:"标题 1",h2:"标题 2",h3:"标题 3",h4:"标题 4",h5:"标题 5",h6:"标题 6",standardColors:"标准色",historyColors:"最近使用",insertTable:"插入表格",row:"行",column:"列","align-left":"居左对齐","align-right":"居右对齐","align-center":"居中对齐","align-justify":"两端对齐","insert-column-left":"左侧插入列","insert-column-right":"右侧插入列","insert-row-top":"上方插入行","insert-row-bottom":"下方插入行","delete-column":"删除当前列","delete-row":"删除当前行","merge-cells-horizontal":"合并单元格","merge-cells-vertical":"合并单元格","split-cells-horizontal":"解除合并单元格","split-cells-vertical":"解除合并单元格","delete-table":"上传表格","edit-link":"编辑链接",unlink:"取消链接","visit-link":"访问链接","link-address":"链接地址","link-open-type":"打开方式","link-open-blank":"新窗口","default-font-size":"字号","default-font-family":"默认字体"},Yde={default:"Default",delete:"Delete",confirm:"Confirm",undo:"Undo",redo:"Redo",brush:"Format Painter",container:"Highlight container",eraser:"clear format",heading:"Paragraph/Heading","font-family":"Font Family","font-size":"Font Size",bold:"Bold",italic:"Italics",underline:"Underline",strike:"Strikethrough",link:"Link",code:"Inline code",subscript:"Subscript",superscript:"Superscript",hr:"Dividing line",todo:"Task list",emoji:"Emoji expression",highlight:"Highlight","font-color":"Font color",align:"Alignment","line-height":"Line height","bullet-list":"Unordered list","ordered-list":"Ordered list","indent-decrease":"Decrease indent","indent-increase":"Increase indent",break:"Force line break",image:"Image",video:"video",attachment:"Attachment",quote:"Quote","code-block":"Code block",table:"Table",printer:"Print",fullscreen:"Full screen",ai:"AI",paragraph:"Paragraph",h1:"H1",h2:"H2",h3:"H3",h4:"H4",h5:"H5",h6:"H6",standardColors:"Standard colors",historyColors:"Recently used colors",insertTable:"Insert Table",row:"Row",column:"Column","align-left":"Align left","align-right":"Align right","align-center":"Align center","align-justify":"Align justify","insert-column-left":"Insert column left","insert-column-right":"Insert column right","insert-row-top":"Insert row top","insert-row-bottom":"Insert row bottom","delete-column":"Delete column","delete-row":"Delete row","merge-cells-horizontal":"Merge cells","merge-cells-vertical":"Merge cells","split-cells-horizontal":"Split cells","split-cells-vertical":"Split cells","delete-table":"Delete table","edit-link":"Edit link",unlink:"Unlink","visit-link":"Visit link","link-address":"Link address","link-open-type":"Open type","link-open-blank":"Blank","default-font-size":"Size","default-font-family":"Default font"};se("aie-header",DE);se("aie-footer",IE);const Xde={theme:"light",lang:"zh",contentRetentionKey:"ai-editor-content",editable:!0,placeholder:""};class I1 extends Cw{constructor(t,r,i={}){super(i);V(this,"aiEditor");V(this,"userOptions");this.aiEditor=t,this.userOptions=r}parseHtml(t){function r(s){return new window.DOMParser().parseFromString(`${s}`,"text/html").body}return Zi.fromSchema(this.schema).parse(r(t),{}).content}parseMarkdown(t){var i,s,o;const r=(o=(s=(i=this.storage.markdown)==null?void 0:i.parser)==null?void 0:s.parse)==null?void 0:o.call(s,t,{inline:!1});return this.parseHtml(r)}}class Qde{constructor(e){V(this,"customLayout",!1);V(this,"innerEditor");V(this,"container");V(this,"header");V(this,"mainEl");V(this,"footer");V(this,"options");V(this,"eventComponents",[]);this.options={...Xde,...e},this.initI18nAndInnerEditor()}initI18nAndInnerEditor(){const e=this.options.i18n||{},t={en:{translation:{...Yde,...e.en}},zh:{translation:{...Jde,...e.zh}}};for(let r of Object.keys(e))r!="en"&&r!="zh"&&(t[r]={translation:{...e[r]}});Ge.init({lng:this.options.lang,resources:t},(r,i)=>{this.initInnerEditor()})}initInnerEditor(){const e=typeof this.options.element=="string"?document.querySelector(this.options.element):this.options.element;e.classList.add(`aie-theme-${this.options.theme}`),this.container=e.querySelector(".aie-container"),this.container?this.customLayout=!0:(this.container=document.createElement("div"),this.container.classList.add("aie-container")),e.appendChild(this.container),this.mainEl=document.createElement("div"),this.mainEl.style.flexGrow="1",this.mainEl.style.overflow="auto",this.header=document.createElement("aie-header"),this.footer=document.createElement("aie-footer"),this.eventComponents.push(this.header),this.eventComponents.push(this.footer);let t=this.options.content;if(this.options.contentRetention&&this.options.contentRetentionKey){const i=localStorage.getItem(this.options.contentRetentionKey);i&&(t=JSON.parse(i))}let r=jde(this,this.options);if(this.options.onCreateBefore){const i=this.options.onCreateBefore(this,r);i||(r=i)}this.innerEditor=new I1(this,this.options,{element:this.mainEl,content:t,editable:this.options.editable,extensions:r,onCreate:i=>this.onCreate(i),onTransaction:i=>this.onTransaction(i),onDestroy:()=>this.onDestroy,editorProps:{attributes:{class:"aie-content"}}})}onCreate(e){this.innerEditor.view.dom.style.height="calc(100% - 20px)",this.eventComponents.forEach(s=>{s.onCreate&&s.onCreate(e,this.options)}),(this.container.querySelector(".aie-container-header")||this.container).appendChild(this.header),(this.container.querySelector(".aie-container-main")||this.container).appendChild(this.mainEl),(this.container.querySelector(".aie-container-footer")||this.container).appendChild(this.footer),this.options.ai&&Rn.init(this.innerEditor,this.options.ai),this.options.onCreated&&this.options.onCreated(this)}onTransaction(e){if(this.eventComponents.forEach(t=>{t.onTransaction&&t.onTransaction(e)}),!e.transaction.getMeta("ignoreChanged")&&(e.transaction.docChanged&&this.options.onChange&&this.options.onChange(this),e.transaction.docChanged&&this.options.contentRetention&&this.options.contentRetentionKey)){const t=this.innerEditor.getHTML();t==="

"||t===""?localStorage.removeItem(this.options.contentRetentionKey):localStorage.setItem(this.options.contentRetentionKey,JSON.stringify(this.innerEditor.getJSON()))}}onDestroy(){console.log("AiEditor has destroyed!")}getHtml(){return this.innerEditor.getHTML()}getJson(){return this.innerEditor.getJSON()}getText(){return this.innerEditor.getText()}getSelectedText(){const e=this.innerEditor.state.selection;return e.empty?"":$o(this.innerEditor.state.doc,{from:e.from,to:e.to})}getMarkdown(){return this.innerEditor.storage.markdown.getMarkdown()}getOptions(){return this.options}getOutline(){const e=this.innerEditor.state.doc,t=[];return e.descendants((r,i)=>{if(r.type.name==="heading"){const s=`aie-heading-${t.length+1}`;if(r.attrs.id!==s){const{state:{tr:a},view:{dispatch:l}}=this.innerEditor;l(a.setNodeMarkup(i,void 0,{...r.attrs,id:s}).setMeta("ignoreChanged",!0))}let o="";r.descendants(a=>{a.text&&(o+=a.text)}),t.push({id:s,text:o,level:r.attrs.level,pos:i,size:r.nodeSize})}}),t}focus(){return this.innerEditor.commands.focus(),this}focusPos(e){return this.innerEditor.commands.focus(e),this}focusStart(){return this.innerEditor.commands.focus("start"),this}focusEnd(){return this.innerEditor.commands.focus("end"),this}isFocused(){return this.innerEditor.isFocused}blur(){return this.innerEditor.commands.blur(),this}insert(e){return this.innerEditor.commands.insertContent(e),this}setEditable(e){return this.innerEditor.setEditable(e,!0),this}setContent(e){return this.focus().clear().insert(e),this}clear(){return this.innerEditor.commands.clearContent(!0),this}isEmpty(){return this.innerEditor.isEmpty}changeLang(e){return this.destroy(),this.options.lang=e,Ge.changeLanguage(e),this.initInnerEditor(),this}removeRetention(){return this.options.contentRetentionKey&&localStorage.removeItem(this.options.contentRetentionKey),this}destroy(){this.options.onDestroy&&this.options.onDestroy(this),this.innerEditor.destroy(),this.eventComponents=[],this.customLayout?(this.header.remove(),this.mainEl.remove(),this.footer.remove()):this.container.remove()}isDestroyed(){return this.innerEditor.isDestroyed}}exports.AiEditor=Qde;exports.AiModelManager=Rn;exports.InnerEditor=I1;exports.SparkAiModel=Wg; +`),n.renderContent(e),n.flushClose(1),n.write(":::"),n.closeBlock(e)},parse:{setup:n=>{this.options.classes.forEach(e=>{n.use(Ude,e)})}}}}},addAttributes(){return{containerClass:{default:null,parseHTML:n=>[...n.classList].find(e=>this.options.classes.includes(e)),renderHTML:n=>({class:n.containerClass})}}},parseHTML(){return[{tag:"div",getAttrs:n=>{const e=n,t=["container-wrapper"].concat(this.options.classes);return[...e.classList].find(r=>t.includes(r))?null:!1}}]},renderHTML({HTMLAttributes:n}){return["div",he(this.options.HTMLAttributes,n),0]},addCommands(){return{setContainer:n=>({commands:e})=>e.wrapIn(this.name,{containerClass:n}),toggleContainer:n=>({commands:e})=>e.toggleWrap(this.name,{containerClass:n}),unsetContainer:()=>({commands:n})=>n.lift(this.name)}},addInputRules(){return[ar({find:Kde,type:this.type,getAttributes:n=>({containerClass:n[1]})})]}}),Wde=jg.extend({addAttributes(){var n;return{...(n=this.parent)==null?void 0:n.call(this),id:{default:null}}}}),Gde=we.create({name:"saveExt",addKeyboardShortcuts(){return{"Mod-s":({editor:n})=>this.options.onSave?this.options.onSave(n.aiEditor):!1}}}),jde=(n,e)=>{var r,i,s,o,a,l,c,u,d,p,f,h,g,m,v,y,k,b,E,w,S,A,M;const t=e.cbName&&e.cbUrl?[ip.configure({history:!1,codeBlock:!1,heading:!1})]:[ip.configure({codeBlock:!1,heading:!1})];return t.push(L2,R2,D2,Wde,P2.configure({uploadUrl:(r=e.attachment)==null?void 0:r.uploadUrl,uploadHeaders:(i=e.attachment)==null?void 0:i.uploadHeaders,uploader:((s=e.attachment)==null?void 0:s.uploader)||e.uploader,uploaderEvent:(o=e.attachment)==null?void 0:o.uploaderEvent}),$2,fT,z2.configure({multicolor:!0}),q2,U2,K2,Z2.configure({types:["heading","paragraph"]}),W2,J2.configure({allowBase64:typeof((a=e.image)==null?void 0:a.allowBase64)>"u"?!0:(l=e.image)==null?void 0:l.allowBase64,defaultSize:((c=e.image)==null?void 0:c.defaultSize)||350,uploadUrl:(u=e.image)==null?void 0:u.uploadUrl,uploadHeaders:(d=e.image)==null?void 0:d.uploadHeaders,uploader:((p=e.image)==null?void 0:p.uploader)||e.uploader,uploaderEvent:(f=e.image)==null?void 0:f.uploaderEvent}),YC.configure({resizable:!0,lastColumnResizable:!0,allowTableNodeSelection:!0}),XC,QC,eS,tS,CS.configure({openOnClick:!1,autolink:typeof((h=e.link)==null?void 0:h.autolink)>"u"?!0:(g=e.link)==null?void 0:g.autolink,HTMLAttributes:{ref:(m=e==null?void 0:e.link)==null?void 0:m.rel,class:(v=e==null?void 0:e.link)==null?void 0:v.class}}),SS,_S,MS,TS.configure({nested:!0}),R_.configure({lowlight:UA(GM),defaultLanguage:"auto",languageClassPrefix:"language-",codeExplainAi:((k=(y=e.ai)==null?void 0:y.codeBlock)==null?void 0:k.codeExplain)||{model:"auto",prompt:"帮我对这个代码进行解释,返回代码的解释内容,注意,不需要对代码的注释进行解释"},codeCommentsAi:((E=(b=e.ai)==null?void 0:b.codeBlock)==null?void 0:E.codeComments)||{model:"auto",prompt:"帮我对这个代码添加一些注释,并返回添加注释的代码,只返回代码"}}),WA.configure({uploadUrl:(w=e.video)==null?void 0:w.uploadUrl,uploadHeaders:(S=e.video)==null?void 0:S.uploadHeaders,uploader:((A=e.video)==null?void 0:A.uploader)||e.uploader,uploaderEvent:(M=e.video)==null?void 0:M.uploaderEvent}),GA,Gde.configure({onSave:e.onSave}),zde.configure({html:!0,tightLists:!0,tightListClass:"tight",bulletListMarker:"-",linkify:!0,breaks:!0,transformPastedText:!0,transformCopiedText:!1}),Zde,...iT(n)),e.placeholder&&t.push(sT.configure({placeholder:e.placeholder})),t.push(pT.configure({suggestion:{items:L=>{var U;return((U=e.ai)==null?void 0:U.commands)||dT}}})),e.onMentionQuery&&t.push(uT(e.onMentionQuery)),t};const Jde={default:"默认",delete:"删除",confirm:"确定",undo:"撤销",redo:"重做",brush:"格式刷",container:"高亮块",eraser:"清除格式",heading:"正文/标题","font-family":"字体","font-size":"字号",bold:"加粗",italic:"斜体",underline:"下划线",strike:"删除线",link:"链接",code:"行内代码",subscript:"下标",superscript:"上标",hr:"分割线",todo:"任务列表",emoji:"表情",highlight:"高亮","font-color":"字体颜色",align:"对齐","line-height":"行高","bullet-list":"无序列表","ordered-list":"有序列表","indent-decrease":"减少缩进","indent-increase":"增加缩进",break:"强制换行",image:"图片",video:"视频",attachment:"附件",quote:"引用","code-block":"代码块",table:"表格",printer:"打印",fullscreen:"全屏",ai:"人工智能",paragraph:"正文",h1:"标题 1",h2:"标题 2",h3:"标题 3",h4:"标题 4",h5:"标题 5",h6:"标题 6",standardColors:"标准色",historyColors:"最近使用",insertTable:"插入表格",row:"行",column:"列","align-left":"居左对齐","align-right":"居右对齐","align-center":"居中对齐","align-justify":"两端对齐","insert-column-left":"左侧插入列","insert-column-right":"右侧插入列","insert-row-top":"上方插入行","insert-row-bottom":"下方插入行","delete-column":"删除当前列","delete-row":"删除当前行","merge-cells-horizontal":"合并单元格","merge-cells-vertical":"合并单元格","split-cells-horizontal":"解除合并单元格","split-cells-vertical":"解除合并单元格","delete-table":"上传表格","edit-link":"编辑链接",unlink:"取消链接","visit-link":"访问链接","link-address":"链接地址","link-open-type":"打开方式","link-open-blank":"新窗口","default-font-size":"字号","default-font-family":"默认字体"},Yde={default:"Default",delete:"Delete",confirm:"Confirm",undo:"Undo",redo:"Redo",brush:"Format Painter",container:"Highlight container",eraser:"clear format",heading:"Paragraph/Heading","font-family":"Font Family","font-size":"Font Size",bold:"Bold",italic:"Italics",underline:"Underline",strike:"Strikethrough",link:"Link",code:"Inline code",subscript:"Subscript",superscript:"Superscript",hr:"Dividing line",todo:"Task list",emoji:"Emoji expression",highlight:"Highlight","font-color":"Font color",align:"Alignment","line-height":"Line height","bullet-list":"Unordered list","ordered-list":"Ordered list","indent-decrease":"Decrease indent","indent-increase":"Increase indent",break:"Force line break",image:"Image",video:"video",attachment:"Attachment",quote:"Quote","code-block":"Code block",table:"Table",printer:"Print",fullscreen:"Full screen",ai:"AI",paragraph:"Paragraph",h1:"H1",h2:"H2",h3:"H3",h4:"H4",h5:"H5",h6:"H6",standardColors:"Standard colors",historyColors:"Recently used colors",insertTable:"Insert Table",row:"Row",column:"Column","align-left":"Align left","align-right":"Align right","align-center":"Align center","align-justify":"Align justify","insert-column-left":"Insert column left","insert-column-right":"Insert column right","insert-row-top":"Insert row top","insert-row-bottom":"Insert row bottom","delete-column":"Delete column","delete-row":"Delete row","merge-cells-horizontal":"Merge cells","merge-cells-vertical":"Merge cells","split-cells-horizontal":"Split cells","split-cells-vertical":"Split cells","delete-table":"Delete table","edit-link":"Edit link",unlink:"Unlink","visit-link":"Visit link","link-address":"Link address","link-open-type":"Open type","link-open-blank":"Blank","default-font-size":"Size","default-font-family":"Default font"};se("aie-header",DE);se("aie-footer",IE);const Xde={theme:"light",lang:"zh",contentRetentionKey:"ai-editor-content",editable:!0,placeholder:""};class I1 extends Cw{constructor(t,r,i={}){super(i);V(this,"aiEditor");V(this,"userOptions");this.aiEditor=t,this.userOptions=r}parseHtml(t){function r(s){return new window.DOMParser().parseFromString(`${s}`,"text/html").body}return Zi.fromSchema(this.schema).parse(r(t),{}).content}parseMarkdown(t){var i,s,o;const r=(o=(s=(i=this.storage.markdown)==null?void 0:i.parser)==null?void 0:s.parse)==null?void 0:o.call(s,t,{inline:!1});return this.parseHtml(r)}}class Qde{constructor(e){V(this,"customLayout",!1);V(this,"innerEditor");V(this,"container");V(this,"header");V(this,"mainEl");V(this,"footer");V(this,"options");V(this,"eventComponents",[]);this.options={...Xde,...e},this.initI18nAndInnerEditor()}initI18nAndInnerEditor(){const e=this.options.i18n||{},t={en:{translation:{...Yde,...e.en}},zh:{translation:{...Jde,...e.zh}}};for(let r of Object.keys(e))r!="en"&&r!="zh"&&(t[r]={translation:{...e[r]}});Ge.init({lng:this.options.lang,resources:t},(r,i)=>{this.initInnerEditor()})}initInnerEditor(){const e=typeof this.options.element=="string"?document.querySelector(this.options.element):this.options.element;e.classList.add(`aie-theme-${this.options.theme}`),this.container=e.querySelector(".aie-container"),this.container?this.customLayout=!0:(this.container=document.createElement("div"),this.container.classList.add("aie-container")),e.appendChild(this.container),this.mainEl=document.createElement("div"),this.mainEl.style.flexGrow="1",this.mainEl.style.overflow="auto",this.header=document.createElement("aie-header"),this.footer=document.createElement("aie-footer"),this.eventComponents.push(this.header),this.eventComponents.push(this.footer);let t=this.options.content;if(this.options.contentRetention&&this.options.contentRetentionKey){const i=localStorage.getItem(this.options.contentRetentionKey);i&&(t=JSON.parse(i))}let r=jde(this,this.options);if(this.options.onCreateBefore){const i=this.options.onCreateBefore(this,r);i||(r=i)}this.innerEditor=new I1(this,this.options,{element:this.mainEl,content:t,editable:this.options.editable,extensions:r,onCreate:i=>this.onCreate(i),onTransaction:i=>this.onTransaction(i),onDestroy:()=>this.onDestroy,editorProps:{attributes:{class:"aie-content"}}})}onCreate(e){this.innerEditor.view.dom.style.height="calc(100% - 20px)",this.eventComponents.forEach(s=>{s.onCreate&&s.onCreate(e,this.options)}),(this.container.querySelector(".aie-container-header")||this.container).appendChild(this.header),(this.container.querySelector(".aie-container-main")||this.container).appendChild(this.mainEl),(this.container.querySelector(".aie-container-footer")||this.container).appendChild(this.footer),this.options.ai&&Rn.init(this.innerEditor,this.options.ai),this.options.onCreated&&this.options.onCreated(this)}onTransaction(e){if(this.eventComponents.forEach(t=>{t.onTransaction&&t.onTransaction(e)}),!e.transaction.getMeta("ignoreChanged")&&(e.transaction.docChanged&&this.options.onChange&&this.options.onChange(this),e.transaction.docChanged&&this.options.contentRetention&&this.options.contentRetentionKey)){const t=this.innerEditor.getHTML();t==="

"||t===""?localStorage.removeItem(this.options.contentRetentionKey):localStorage.setItem(this.options.contentRetentionKey,JSON.stringify(this.innerEditor.getJSON()))}}onDestroy(){}getHtml(){return this.innerEditor.getHTML()}getJson(){return this.innerEditor.getJSON()}getText(){return this.innerEditor.getText()}getSelectedText(){const e=this.innerEditor.state.selection;return e.empty?"":$o(this.innerEditor.state.doc,{from:e.from,to:e.to})}getMarkdown(){return this.innerEditor.storage.markdown.getMarkdown()}getOptions(){return this.options}getOutline(){const e=this.innerEditor.state.doc,t=[];return e.descendants((r,i)=>{if(r.type.name==="heading"){const s=`aie-heading-${t.length+1}`;if(r.attrs.id!==s){const{state:{tr:a},view:{dispatch:l}}=this.innerEditor;l(a.setNodeMarkup(i,void 0,{...r.attrs,id:s}).setMeta("ignoreChanged",!0))}let o="";r.descendants(a=>{a.text&&(o+=a.text)}),t.push({id:s,text:o,level:r.attrs.level,pos:i,size:r.nodeSize})}}),t}focus(){return this.innerEditor.commands.focus(),this}focusPos(e){return this.innerEditor.commands.focus(e),this}focusStart(){return this.innerEditor.commands.focus("start"),this}focusEnd(){return this.innerEditor.commands.focus("end"),this}isFocused(){return this.innerEditor.isFocused}blur(){return this.innerEditor.commands.blur(),this}insert(e){return this.innerEditor.commands.insertContent(e),this}setEditable(e){return this.innerEditor.setEditable(e,!0),this}setContent(e){return this.focus().clear().insert(e),this}clear(){return this.innerEditor.commands.clearContent(!0),this}isEmpty(){return this.innerEditor.isEmpty}changeLang(e){return this.destroy(),this.options.lang=e,Ge.changeLanguage(e),this.initInnerEditor(),this}removeRetention(){return this.options.contentRetentionKey&&localStorage.removeItem(this.options.contentRetentionKey),this}destroy(){this.options.onDestroy&&this.options.onDestroy(this),this.innerEditor.destroy(),this.eventComponents=[],this.customLayout?(this.header.remove(),this.mainEl.remove(),this.footer.remove()):this.container.remove()}isDestroyed(){return this.innerEditor.isDestroyed}}exports.AiEditor=Qde;exports.AiModelManager=Rn;exports.InnerEditor=I1;exports.SparkAiModel=Wg; diff --git a/dist/index.js b/dist/index.js index 8ed3519..526e4e2 100644 --- a/dist/index.js +++ b/dist/index.js @@ -9303,7 +9303,7 @@ function Fe(n, e) { } return n; } -function fe(...n) { +function he(...n) { return n.filter((e) => !!e).reduce((e, t) => { const r = { ...e }; return Object.entries(t).forEach(([i, s]) => { @@ -9322,7 +9322,7 @@ function fe(...n) { function Ll(n, e) { return e.filter((t) => t.attribute.rendered).map((t) => t.attribute.renderHTML ? t.attribute.renderHTML(n.attrs) || {} : { [t.name]: n.attrs[t.name] - }).reduce((t, r) => fe(t, r), {}); + }).reduce((t, r) => he(t, r), {}); } function cg(n) { return typeof n == "function"; @@ -16886,7 +16886,14 @@ class SE { var t; if (this.isOpen) try { - const r = await fetch(this.config.url, { method: "POST", body: e }); + const r = await fetch( + this.config.url, + { + method: this.config.method || "POST", + headers: this.config.headers, + body: e + } + ); if (!r.ok) { this.onError(); return; @@ -16911,10 +16918,10 @@ class SE { `); let u = "", d = 0; for (let p of c) - p.indexOf("data:") == 0 ? (u && (console.log(u), this.onMessage(u)), u = p.substring(5)) : (d != c.length - 1 && (u += ` + p.indexOf("data:") == 0 ? (u && this.onMessage(u), u = p.substring(5)) : (d != c.length - 1 && (u += ` `), u += p), d++; - u && (console.log(u), this.onMessage(u)); + u && this.onMessage(u); } } catch { this.onError(); @@ -16941,16 +16948,21 @@ class _E extends Bc { }; } createAiClient(e, t) { + var s; const r = this.aiModelConfig, i = { onStart: t.onStart, onStop: t.onStop, - onMessage: (s) => { - var l; - const o = this.aiModelConfig, a = (l = o.messageParser) == null ? void 0 : l.call(o, s); - a && t.onMessage(a); + onMessage: (o) => { + var c; + const a = this.aiModelConfig, l = (c = a.messageParser) == null ? void 0 : c.call(a, o); + l && t.onMessage(l); } }; - return r.protocol === "sse" ? new SE({ url: e, method: "post" }, i) : new qg(e, i); + return r.protocol === "sse" ? new SE({ + url: e, + method: "post", + headers: (s = r.headers) == null ? void 0 : s.call(r) + }, i) : new qg(e, i); } wrapMessage(e) { var r; @@ -17048,7 +17060,7 @@ const AE = [ { icon: '', name: "AI 翻译", - prompt: "请帮我把这段内容翻译为英语,直接返回英语结果", + prompt: "请帮我翻译以上内容,在翻译之前,想先判断一下这个内容是不是中文,如果是中文,则翻译问英文,如果是其他语言,则需要翻译为中文,注意,你只需要返回翻译的结果,不需要对此进行任何解释,不需要除了翻译结果以外的其他任何内容。", text: "selected", model: "auto" } @@ -17341,7 +17353,7 @@ const IE = /^\s*>\s$/, HE = ce.create({ ]; }, renderHTML({ HTMLAttributes: n }) { - return ["blockquote", fe(this.options.HTMLAttributes, n), 0]; + return ["blockquote", he(this.options.HTMLAttributes, n), 0]; }, addCommands() { return { @@ -17386,7 +17398,7 @@ const IE = /^\s*>\s$/, HE = ce.create({ ]; }, renderHTML({ HTMLAttributes: n }) { - return ["strong", fe(this.options.HTMLAttributes, n), 0]; + return ["strong", he(this.options.HTMLAttributes, n), 0]; }, addCommands() { return { @@ -17444,7 +17456,7 @@ const IE = /^\s*>\s$/, HE = ce.create({ ]; }, renderHTML({ HTMLAttributes: n }) { - return ["li", fe(this.options.HTMLAttributes, n), 0]; + return ["li", he(this.options.HTMLAttributes, n), 0]; }, addKeyboardShortcuts() { return { @@ -17469,7 +17481,7 @@ const IE = /^\s*>\s$/, HE = ce.create({ ]; }, renderHTML({ HTMLAttributes: n }) { - return ["span", fe(this.options.HTMLAttributes, n), 0]; + return ["span", he(this.options.HTMLAttributes, n), 0]; }, addCommands() { return { @@ -17499,7 +17511,7 @@ const IE = /^\s*>\s$/, HE = ce.create({ ]; }, renderHTML({ HTMLAttributes: n }) { - return ["ul", fe(this.options.HTMLAttributes, n), 0]; + return ["ul", he(this.options.HTMLAttributes, n), 0]; }, addCommands() { return { @@ -17543,7 +17555,7 @@ const IE = /^\s*>\s$/, HE = ce.create({ ]; }, renderHTML({ HTMLAttributes: n }) { - return ["code", fe(this.options.HTMLAttributes, n), 0]; + return ["code", he(this.options.HTMLAttributes, n), 0]; }, addCommands() { return { @@ -17612,7 +17624,7 @@ const IE = /^\s*>\s$/, HE = ce.create({ renderHTML({ node: n, HTMLAttributes: e }) { return [ "pre", - fe(this.options.HTMLAttributes, e), + he(this.options.HTMLAttributes, e), [ "code", { @@ -18027,7 +18039,7 @@ const o2 = we.create({ ]; }, renderHTML({ HTMLAttributes: n }) { - return ["br", fe(this.options.HTMLAttributes, n)]; + return ["br", he(this.options.HTMLAttributes, n)]; }, renderText() { return ` @@ -18085,7 +18097,7 @@ const o2 = we.create({ })); }, renderHTML({ node: n, HTMLAttributes: e }) { - return [`h${this.options.levels.includes(n.attrs.level) ? n.attrs.level : this.options.levels[0]}`, fe(this.options.HTMLAttributes, e), 0]; + return [`h${this.options.levels.includes(n.attrs.level) ? n.attrs.level : this.options.levels[0]}`, he(this.options.HTMLAttributes, e), 0]; }, addCommands() { return { @@ -18483,7 +18495,7 @@ const Yg = (n, e) => { return [{ tag: "hr" }]; }, renderHTML({ HTMLAttributes: n }) { - return ["hr", fe(this.options.HTMLAttributes, n)]; + return ["hr", he(this.options.HTMLAttributes, n)]; }, addCommands() { return { @@ -18536,7 +18548,7 @@ const Yg = (n, e) => { ]; }, renderHTML({ HTMLAttributes: n }) { - return ["em", fe(this.options.HTMLAttributes, n), 0]; + return ["em", he(this.options.HTMLAttributes, n), 0]; }, addCommands() { return { @@ -18594,7 +18606,7 @@ const Yg = (n, e) => { ]; }, renderHTML({ HTMLAttributes: n }) { - return ["li", fe(this.options.HTMLAttributes, n), 0]; + return ["li", he(this.options.HTMLAttributes, n), 0]; }, addKeyboardShortcuts() { return { @@ -18622,7 +18634,7 @@ const Yg = (n, e) => { ]; }, renderHTML({ HTMLAttributes: n }) { - return ["li", fe(this.options.HTMLAttributes, n), 0]; + return ["li", he(this.options.HTMLAttributes, n), 0]; }, addKeyboardShortcuts() { return { @@ -18647,7 +18659,7 @@ const Yg = (n, e) => { ]; }, renderHTML({ HTMLAttributes: n }) { - return ["span", fe(this.options.HTMLAttributes, n), 0]; + return ["span", he(this.options.HTMLAttributes, n), 0]; }, addCommands() { return { @@ -18688,7 +18700,7 @@ const Yg = (n, e) => { }, renderHTML({ HTMLAttributes: n }) { const { start: e, ...t } = n; - return e === 1 ? ["ol", fe(this.options.HTMLAttributes, t), 0] : ["ol", fe(this.options.HTMLAttributes, n), 0]; + return e === 1 ? ["ol", he(this.options.HTMLAttributes, t), 0] : ["ol", he(this.options.HTMLAttributes, n), 0]; }, addCommands() { return { @@ -18735,7 +18747,7 @@ const Yg = (n, e) => { ]; }, renderHTML({ HTMLAttributes: n }) { - return ["p", fe(this.options.HTMLAttributes, n), 0]; + return ["p", he(this.options.HTMLAttributes, n), 0]; }, addCommands() { return { @@ -18773,7 +18785,7 @@ const Yg = (n, e) => { ]; }, renderHTML({ HTMLAttributes: n }) { - return ["s", fe(this.options.HTMLAttributes, n), 0]; + return ["s", he(this.options.HTMLAttributes, n), 0]; }, addCommands() { return { @@ -18832,7 +18844,7 @@ const Yg = (n, e) => { ]; }, renderHTML({ HTMLAttributes: n }) { - return ["u", fe(this.options.HTMLAttributes, n), 0]; + return ["u", he(this.options.HTMLAttributes, n), 0]; }, addCommands() { return { @@ -18863,7 +18875,7 @@ const Yg = (n, e) => { ]; }, renderHTML({ HTMLAttributes: n }) { - return ["span", fe(this.options.HTMLAttributes, n), 0]; + return ["span", he(this.options.HTMLAttributes, n), 0]; }, addCommands() { return { @@ -19078,7 +19090,7 @@ const Yg = (n, e) => { ]; }, renderHTML({ HTMLAttributes: n }) { - return ["mark", fe(this.options.HTMLAttributes, n), 0]; + return ["mark", he(this.options.HTMLAttributes, n), 0]; }, addCommands() { return { @@ -19342,7 +19354,7 @@ const Yg = (n, e) => { ]; }, renderHTML({ HTMLAttributes: n }) { - return ["img", fe(this.options.HTMLAttributes, n)]; + return ["img", he(this.options.HTMLAttributes, n)]; }, addCommands() { return { @@ -19434,7 +19446,7 @@ const Yg = (n, e) => { renderHTML({ HTMLAttributes: n }) { return [ "img", - fe(this.options.HTMLAttributes, n) + he(this.options.HTMLAttributes, n) ]; }, addCommands() { @@ -19856,7 +19868,7 @@ function rC(n, e, t) { return !1; return !0; } -var he = class extends ne { +var fe = class extends ne { // A table selection is identified by its anchor and head cells. The // positions given to this constructor should point _before_ two // cells in the same table. They may be the same, to select a single @@ -19883,7 +19895,7 @@ var he = class extends ne { const t = n.resolve(e.map(this.$anchorCell.pos)), r = n.resolve(e.map(this.$headCell.pos)); if (Zl(t) && Zl(r) && Vc(t, r)) { const i = this.$anchorCell.node(-1) != t.node(-1); - return i && this.isRowSelection() ? he.rowSelection(t, r) : i && this.isColSelection() ? he.colSelection(t, r) : new he(t, r); + return i && this.isRowSelection() ? fe.rowSelection(t, r) : i && this.isColSelection() ? fe.colSelection(t, r) : new fe(t, r); } return X.between(t, r); } @@ -19980,7 +19992,7 @@ var he = class extends ne { i + r.map[r.width * (r.height - 1) + o.right - 1] ))) : (o.top > 0 && (e = a.resolve(i + r.map[o.left])), s.bottom < r.height && (n = a.resolve( i + r.map[r.width * (r.height - 1) + s.right - 1] - ))), new he(n, e); + ))), new fe(n, e); } // True if this selection goes all the way from the left to the // right of the table. @@ -19992,7 +20004,7 @@ var he = class extends ne { return Math.max(s, o) == e.width; } eq(n) { - return n instanceof he && n.$anchorCell.pos == this.$anchorCell.pos && n.$headCell.pos == this.$headCell.pos; + return n instanceof fe && n.$anchorCell.pos == this.$anchorCell.pos && n.$headCell.pos == this.$headCell.pos; } // Returns the smallest row selection that covers the given anchor // and head cell. @@ -20004,7 +20016,7 @@ var he = class extends ne { i + r.map[r.width * (o.top + 1) - 1] ))) : (o.left > 0 && (e = a.resolve(i + r.map[o.top * r.width])), s.right < r.width && (n = a.resolve( i + r.map[r.width * (s.top + 1) - 1] - ))), new he(n, e); + ))), new fe(n, e); } toJSON() { return { @@ -20014,17 +20026,17 @@ var he = class extends ne { }; } static fromJSON(n, e) { - return new he(n.resolve(e.anchor), n.resolve(e.head)); + return new fe(n.resolve(e.anchor), n.resolve(e.head)); } static create(n, e, t = e) { - return new he(n.resolve(e), n.resolve(t)); + return new fe(n.resolve(e), n.resolve(t)); } getBookmark() { return new rm(this.$anchorCell.pos, this.$headCell.pos); } }; -he.prototype.visible = !1; -ne.jsonID("cell", he); +fe.prototype.visible = !1; +ne.jsonID("cell", fe); var rm = class { constructor(n, e) { this.anchor = n, this.head = e; @@ -20034,11 +20046,11 @@ var rm = class { } resolve(n) { const e = n.resolve(this.anchor), t = n.resolve(this.head); - return e.parent.type.spec.tableRole == "row" && t.parent.type.spec.tableRole == "row" && e.index() < e.parent.childCount && t.index() < t.parent.childCount && Vc(e, t) ? new he(e, t) : ne.near(t, 1); + return e.parent.type.spec.tableRole == "row" && t.parent.type.spec.tableRole == "row" && e.index() < e.parent.childCount && t.index() < t.parent.childCount && Vc(e, t) ? new fe(e, t) : ne.near(t, 1); } }; function iC(n) { - if (!(n.selection instanceof he)) + if (!(n.selection instanceof fe)) return null; const e = []; return n.selection.forEachCell((t, r) => { @@ -20080,13 +20092,13 @@ function aC(n, e, t) { let s, o; if (r instanceof Q && (o = r.node.type.spec.tableRole)) { if (o == "cell" || o == "header_cell") - s = he.create(i, r.from); + s = fe.create(i, r.from); else if (o == "row") { const a = i.resolve(r.from + 1); - s = he.rowSelection(a, a); + s = fe.rowSelection(a, a); } else if (!t) { const a = Oe.get(r.node), l = r.from + 1, c = l + a.map[a.width * a.height - 1]; - s = he.create(i, l + 1, c); + s = fe.create(i, l + 1, c); } } else r instanceof X && sC(r) ? s = X.create(i, r.from) : r instanceof X && oC(r) && (s = X.create(i, r.$from.start(), r.$from.end())); @@ -20371,7 +20383,7 @@ function cp(n, e, t, r, i) { ); } f(), d.setSelection( - new he( + new fe( d.doc.resolve(t + o.positionAt(a, l, s)), d.doc.resolve(t + o.positionAt(u - 1, c - 1, s)) ) @@ -20399,7 +20411,7 @@ function ds(n, e) { if (!i) return !1; const s = t.selection; - if (s instanceof he) + if (s instanceof fe) return Rs( t, r, @@ -20429,25 +20441,25 @@ function ps(n, e) { return !1; const s = t.selection; let o; - if (s instanceof he) + if (s instanceof fe) o = s; else { const l = om(i, n, e); if (l == null) return !1; - o = new he(t.doc.resolve(l)); + o = new fe(t.doc.resolve(l)); } const a = tm(o.$headCell, n, e); return a ? Rs( t, r, - new he(o.$anchorCell, a) + new fe(o.$anchorCell, a) ) : !1; }; } function fs(n, e) { const t = n.selection; - if (!(t instanceof he)) + if (!(t instanceof fe)) return !1; if (e) { const r = n.tr, i = Xe(n.schema).cell.createAndFill().content; @@ -20463,14 +20475,14 @@ function fs(n, e) { } function gC(n, e) { const t = n.state.doc, r = ei(t.resolve(e)); - return r ? (n.dispatch(n.state.tr.setSelection(new he(r))), !0) : !1; + return r ? (n.dispatch(n.state.tr.setSelection(new fe(r))), !0) : !1; } function mC(n, e, t) { if (!It(n.state)) return !1; let r = uC(t); const i = n.state.selection; - if (i instanceof he) { + if (i instanceof fe) { r || (r = { width: 1, height: 1, @@ -20503,7 +20515,7 @@ function bC(n, e) { return; const r = up(n, e.target); let i; - if (e.shiftKey && n.state.selection instanceof he) + if (e.shiftKey && n.state.selection instanceof fe) s(n.state.selection.$anchorCell, e), e.preventDefault(); else if (e.shiftKey && r && (i = ei(n.state.selection.$anchor)) != null && ((t = qa(n, e)) == null ? void 0 : t.pos) != i.pos) s(i, e), e.preventDefault(); @@ -20517,7 +20529,7 @@ function bC(n, e) { u = l; else return; - const p = new he(l, u); + const p = new fe(l, u); if (d || !n.state.selection.eq(p)) { const f = n.state.tr.setSelection(p); d && f.setMeta(vn, l.pos), n.dispatch(f); @@ -20805,7 +20817,7 @@ function AC(n, e) { } function Xt(n) { const e = n.selection, t = Wo(n), r = t.node(-1), i = t.start(-1), s = Oe.get(r); - return { ...e instanceof he ? s.rectBetween( + return { ...e instanceof fe ? s.rectBetween( e.$anchorCell.pos - i, e.$headCell.pos - i ) : s.findCell(t.pos - i), tableStart: i, map: s, table: r }; @@ -20988,7 +21000,7 @@ function PC({ width: n, height: e, map: t }, r) { } function hp(n, e) { const t = n.selection; - if (!(t instanceof he) || t.$anchorCell.pos == t.$headCell.pos) + if (!(t instanceof fe) || t.$anchorCell.pos == t.$headCell.pos) return !1; const r = Xt(n), { map: i } = r; if (PC(i, r)) @@ -21022,7 +21034,7 @@ function hp(n, e) { s.replaceWith(d + r.tableStart, u + r.tableStart, a); } s.setSelection( - new he(s.doc.resolve(l + r.tableStart)) + new fe(s.doc.resolve(l + r.tableStart)) ), e(s); } return !0; @@ -21036,7 +21048,7 @@ function $C(n) { var r; const i = e.selection; let s, o; - if (i instanceof he) { + if (i instanceof fe) { if (i.$anchorCell.pos != i.$headCell.pos) return !1; s = i.$anchorCell.nodeAfter, o = i.$anchorCell.pos; @@ -21073,8 +21085,8 @@ function $C(n) { o, n({ node: s, row: u.top, col: u.left }), l[0] - ), i instanceof he && d.setSelection( - new he( + ), i instanceof fe && d.setSelection( + new fe( d.doc.resolve(i.$anchorCell.pos), p ? d.doc.resolve(p) : void 0 ) @@ -21092,7 +21104,7 @@ function VC(n, e) { return !1; if (r) { const s = t.tr; - t.selection instanceof he ? t.selection.forEachCell((o, a) => { + t.selection instanceof fe ? t.selection.forEachCell((o, a) => { o.attrs[n] !== e && s.setNodeMarkup(a, null, { ...o.attrs, [n]: e @@ -21338,7 +21350,7 @@ function GC(n, e, t, r, i) { return s.table.createChecked(null, l); } function jC(n) { - return n instanceof he; + return n instanceof fe; } const hs = ({ editor: n }) => { const { selection: e } = n.state; @@ -21374,7 +21386,7 @@ const hs = ({ editor: n }) => { return [{ tag: "table" }]; }, renderHTML({ HTMLAttributes: n }) { - return ["table", fe(this.options.HTMLAttributes, n), ["tbody", 0]]; + return ["table", he(this.options.HTMLAttributes, n), ["tbody", 0]]; }, addCommands() { return { @@ -21405,7 +21417,7 @@ const hs = ({ editor: n }) => { fixTables: () => ({ state: n, dispatch: e }) => (e && sm(n), !0), setCellSelection: (n) => ({ tr: e, dispatch: t }) => { if (t) { - const r = he.create(e.doc, n.anchorCell, n.headCell); + const r = fe.create(e.doc, n.anchorCell, n.headCell); e.setSelection(r); } return !0; @@ -21465,7 +21477,7 @@ const hs = ({ editor: n }) => { ]; }, renderHTML({ HTMLAttributes: n }) { - return ["tr", fe(this.options.HTMLAttributes, n), 0]; + return ["tr", he(this.options.HTMLAttributes, n), 0]; } }), XC = ce.create({ name: "tableHeader", @@ -21500,7 +21512,7 @@ const hs = ({ editor: n }) => { ]; }, renderHTML({ HTMLAttributes: n }) { - return ["th", fe(this.options.HTMLAttributes, n), 0]; + return ["th", he(this.options.HTMLAttributes, n), 0]; } }), QC = ce.create({ name: "tableCell", @@ -21535,7 +21547,7 @@ const hs = ({ editor: n }) => { ]; }, renderHTML({ HTMLAttributes: n }) { - return ["td", fe(this.options.HTMLAttributes, n), 0]; + return ["td", he(this.options.HTMLAttributes, n), 0]; } }), eS = we.create({ name: "characterCount", @@ -22364,7 +22376,7 @@ const ES = De.create({ }, renderHTML({ HTMLAttributes: n }) { var e; - return !((e = n.href) === null || e === void 0) && e.startsWith("javascript:") ? ["a", fe(this.options.HTMLAttributes, { ...n, href: "" }), 0] : ["a", fe(this.options.HTMLAttributes, n), 0]; + return !((e = n.href) === null || e === void 0) && e.startsWith("javascript:") ? ["a", he(this.options.HTMLAttributes, { ...n, href: "" }), 0] : ["a", he(this.options.HTMLAttributes, n), 0]; }, addCommands() { return { @@ -22446,7 +22458,7 @@ const ES = De.create({ ]; }, renderHTML({ HTMLAttributes: n }) { - return ["sup", fe(this.options.HTMLAttributes, n), 0]; + return ["sup", he(this.options.HTMLAttributes, n), 0]; }, addCommands() { return { @@ -22481,7 +22493,7 @@ const ES = De.create({ ]; }, renderHTML({ HTMLAttributes: n }) { - return ["sub", fe(this.options.HTMLAttributes, n), 0]; + return ["sub", he(this.options.HTMLAttributes, n), 0]; }, addCommands() { return { @@ -22516,7 +22528,7 @@ const ES = De.create({ ]; }, renderHTML({ HTMLAttributes: n }) { - return ["ul", fe(this.options.HTMLAttributes, n, { "data-type": this.name }), 0]; + return ["ul", he(this.options.HTMLAttributes, n, { "data-type": this.name }), 0]; }, addCommands() { return { @@ -22564,7 +22576,7 @@ const ES = De.create({ renderHTML({ node: n, HTMLAttributes: e }) { return [ "li", - fe(this.options.HTMLAttributes, e, { + he(this.options.HTMLAttributes, e, { "data-type": this.name }), [ @@ -37633,6 +37645,9 @@ class YA extends Yo { } ]; } + connectedCallback() { + this.style.display = "none", super.connectedCallback(); + } onItemClick(e) { var t, r, i, s, o, a, l, c, u; e === "insert-column-left" ? (t = this.editor) == null || t.chain().focus().addColumnBefore().run() : e === "insert-column-right" ? (r = this.editor) == null || r.chain().focus().addColumnAfter().run() : e === "insert-row-top" ? (i = this.editor) == null || i.chain().focus().addRowBefore().run() : e === "insert-row-bottom" ? (s = this.editor) == null || s.chain().focus().addRowAfter().run() : e === "delete-column" ? (o = this.editor) == null || o.chain().focus().deleteColumn().run() : e === "delete-row" ? (a = this.editor) == null || a.chain().focus().deleteRow().run() : e === "merge-cells-horizontal" || e === "merge-cells-vertical" ? (l = this.editor) == null || l.chain().focus().mergeCells().run() : e === "split-cells-horizontal" || e === "split-cells-vertical" ? (c = this.editor) == null || c.chain().focus().splitCell().run() : e === "delete" && ((u = this.editor) == null || u.chain().focus().deleteTable().run()); @@ -37642,14 +37657,14 @@ class YA extends Yo { t.style.display = "none"; }), e.forEach((t) => { const r = this.querySelector(`#${t}`); - r.style.display = ""; + r && (r.style.display = ""); }); } onTransaction(e) { if (!e.editor.isActive("table")) return; const { state: { selection: t }, view: r } = e.editor; - if (t instanceof he) + if (t instanceof fe) if (this.isOneCellSelected(t)) { const i = ["insert-column-left", "insert-column-right", "delete-column", "insert-row-top", "insert-row-bottom", "delete-row"]; if (e.editor.can().splitCell()) { @@ -37910,7 +37925,7 @@ const QA = (n) => { return !r.empty && $o(t.state.doc, { from: r.from, to: r.to - }).length > 0 && !t.isActive("link") && !t.isActive("image"); + }).length > 0 && !t.isActive("link") && !t.isActive("image") && !(r instanceof fe); } }); }, eT = (n) => { @@ -37963,7 +37978,7 @@ const QA = (n) => { }, shouldShow: ({ editor: t }) => { const { state: { selection: r } } = t; - return t.isActive("table") && r.empty; + return t.isActive("table") && r instanceof fe; } }); }, rT = (n) => { @@ -38201,7 +38216,7 @@ const aT = new Ae("mention"), lT = ce.create({ renderHTML({ node: n, HTMLAttributes: e }) { return [ "span", - fe({ "data-type": this.name }, this.options.HTMLAttributes, e), + he({ "data-type": this.name }, this.options.HTMLAttributes, e), this.options.renderLabel({ options: this.options, node: n @@ -38309,7 +38324,7 @@ const aT = new Ae("mention"), lT = ce.create({ { icon: '', name: "AI 翻译", - prompt: "请帮我把这段内容翻译为英语,直接返回英语结果", + prompt: "请帮我翻译以上内容,在翻译之前,想先判断一下这个内容是不是中文,如果是中文,则翻译问英文,如果是其他语言,则需要翻译为中文,注意,你只需要返回翻译的结果,不需要对此进行任何解释,不需要除了翻译结果以外的其他任何内容。", model: "auto" }, { @@ -44412,7 +44427,7 @@ const qde = /* @__PURE__ */ Qr(zde), Ude = /^:::([a-z]+)?[\s\n]$/, Kde = ce.crea ]; }, renderHTML({ HTMLAttributes: n }) { - return ["div", fe(this.options.HTMLAttributes, n), 0]; + return ["div", he(this.options.HTMLAttributes, n), 0]; }, addCommands() { return { @@ -44839,7 +44854,6 @@ class Spe { } } onDestroy() { - console.log("AiEditor has destroyed!"); } getHtml() { return this.innerEditor.getHTML(); diff --git a/docs/zh/changes.md b/docs/zh/changes.md index 2a6c552..688eda9 100644 --- a/docs/zh/changes.md +++ b/docs/zh/changes.md @@ -1,6 +1,16 @@ # AiEditor ChangeLog +## v1.0.0-rc.9 20240324: +- 新增:自定义大语言模型添加 headers 配置的支持 +- 优化:优化 ai 翻译的 prompt 内容,以保证能够正确翻译多国语言 +- 优化:移除代码中一些多余的日志输出 +- 修复:修正表格的弹出菜单在某些情况下无法正确弹出的问题 +- 文档:修正快速开始的 ai 配置不正确(未同步最新版本)的问题 +- 文档:添加关于自定义大模型的相关文档 + + + ## v1.0.0-rc.8 20240317: - 新增:添加自定义对接任意大模型的支持 - 新增:添加文心一言大模型的支持,感谢 @bendantada diff --git a/package.json b/package.json index 4f8c5e6..808a491 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "aieditor", "author": "yangfuhai", - "version": "1.0.0-rc.8", + "version": "1.0.0-rc.9", "type": "module", "keywords": [ "editor",