@nocobase/app 2.0.2 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -661
- package/README.md +79 -10
- package/dist/client/958.c4d4681a.async.js +62 -0
- package/dist/client/index.html +1 -1
- package/dist/client/index.html.tpl +1 -1
- package/dist/client/npm._at_codemirror.57294623.async.js +26 -0
- package/dist/client/npm.codemirror.9e6e9d7f.async.js +1 -0
- package/dist/client/npm.htmlparser2.013ed004.async.js +2 -0
- package/dist/client/{p__index.eecb2cbe.async.js → p__index.cc6e9989.async.js} +259 -246
- package/dist/client/{umi.72639837.js → umi.95529939.js} +2 -2
- package/package.json +7 -7
- package/dist/client/6998.e875a954.async.js +0 -62
- package/dist/client/npm._at_codemirror.aa828743.async.js +0 -26
- package/dist/client/npm.htmlparser2.ee1fb042.async.js +0 -2
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[7436],{34790:function(tn,vi,Zt){Zt.d(vi,{B1:function(){return Rt},GA:function(){return o},Gn:function(){return ht},Mb:function(){return ke},TK:function(){return kt},eC:function(){return Pe},vQ:function(){return Ii},ys:function(){return Lt}});var P=Zt(78120),Q=Zt(47421),Z=Zt(59119);class kt{constructor(g,x,E,B){this.state=g,this.pos=x,this.explicit=E,this.view=B,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(g){let x=(0,Z.qz)(this.state).resolveInner(this.pos,-1);for(;x&&g.indexOf(x.name)<0;)x=x.parent;return x?{from:x.from,to:this.pos,text:this.state.sliceDoc(x.from,this.pos),type:x.type}:null}matchBefore(g){let x=this.state.doc.lineAt(this.pos),E=Math.max(x.from,this.pos-250),B=x.text.slice(E-x.from,this.pos-x.from),_=B.search(we(g,!1));return _<0?null:{from:E+_,to:this.pos,text:B.slice(_)}}get aborted(){return this.abortListeners==null}addEventListener(g,x,E){g=="abort"&&this.abortListeners&&(this.abortListeners.push(x),E&&E.onDocChange&&(this.abortOnDocChange=!0))}}function se(M){let g=Object.keys(M).join(""),x=/\w/.test(g);return x&&(g=g.replace(/\w/g,"")),`[${x?"\\w":""}${g.replace(/[^\w\s]/g,"\\$&")}]`}function Ce(M){let g=Object.create(null),x=Object.create(null);for(let{label:B}of M){g[B[0]]=!0;for(let _=1;_<B.length;_++)x[B[_]]=!0}let E=se(g)+se(x)+"*$";return[new RegExp("^"+E),new RegExp(E)]}function ke(M){let g=M.map(B=>typeof B=="string"?{label:B}:B),[x,E]=g.every(B=>/^\w+$/.test(B.label))?[/\w*$/,/\w+$/]:Ce(g);return B=>{let _=B.matchBefore(E);return _||B.explicit?{from:_?_.from:B.pos,options:g,validFor:x}:null}}function Oe(M,g){return x=>{for(let E=syntaxTree(x.state).resolveInner(x.pos,-1);E;E=E.parent){if(M.indexOf(E.name)>-1)return g(x);if(E.type.isTop)break}return null}}function Pe(M,g){return x=>{for(let E=(0,Z.qz)(x.state).resolveInner(x.pos,-1);E;E=E.parent){if(M.indexOf(E.name)>-1)return null;if(E.type.isTop)break}return g(x)}}class fe{constructor(g,x,E,B){this.completion=g,this.source=x,this.match=E,this.score=B}}function me(M){return M.selection.main.from}function we(M,g){var x;let{source:E}=M,B=g&&E[0]!="^",_=E[E.length-1]!="$";return!B&&!_?M:new RegExp(`${B?"^":""}(?:${E})${_?"$":""}`,(x=M.flags)!==null&&x!==void 0?x:M.ignoreCase?"i":"")}const _t=P.q6.define();function ri(M,g,x,E){let{main:B}=M.selection,_=x-B.from,Y=E-B.from;return Object.assign(Object.assign({},M.changeByRange(ot=>{if(ot!=B&&x!=E&&M.sliceDoc(ot.from+_,ot.from+Y)!=M.sliceDoc(x,E))return{range:ot};let nt=M.toText(g);return{changes:{from:ot.from+_,to:E==B.from?ot.to:ot.from+Y,insert:nt},range:P.jT.cursor(ot.from+_+nt.length)}})),{scrollIntoView:!0,userEvent:"input.complete"})}const ze=new WeakMap;function oi(M){if(!Array.isArray(M))return M;let g=ze.get(M);return g||ze.set(M,g=ke(M)),g}const Ye=P.Py.define(),ni=P.Py.define();class Be{constructor(g){this.pattern=g,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let x=0;x<g.length;){let E=(0,P.gm)(g,x),B=(0,P.nZ)(E);this.chars.push(E);let _=g.slice(x,x+B),Y=_.toUpperCase();this.folded.push((0,P.gm)(Y==_?_.toLowerCase():Y,0)),x+=B}this.astral=g.length!=this.chars.length}ret(g,x){return this.score=g,this.matched=x,this}match(g){if(this.pattern.length==0)return this.ret(-100,[]);if(g.length<this.pattern.length)return null;let{chars:x,folded:E,any:B,precise:_,byWord:Y}=this;if(x.length==1){let _e=(0,P.gm)(g,0),Pi=(0,P.nZ)(_e),yi=Pi==g.length?0:-100;if(_e!=x[0])if(_e==E[0])yi+=-200;else return null;return this.ret(yi,[0,Pi])}let ot=g.indexOf(this.pattern);if(ot==0)return this.ret(g.length==this.pattern.length?0:-100,[0,this.pattern.length]);let nt=x.length,vt=0;if(ot<0){for(let _e=0,Pi=Math.min(g.length,200);_e<Pi&&vt<nt;){let yi=(0,P.gm)(g,_e);(yi==x[vt]||yi==E[vt])&&(B[vt++]=_e),_e+=(0,P.nZ)(yi)}if(vt<nt)return null}let gt=0,Nt=0,he=!1,Se=0,je=-1,ti=-1,ai=/[a-z]/.test(g),xi=!0;for(let _e=0,Pi=Math.min(g.length,200),yi=0;_e<Pi&&Nt<nt;){let ui=(0,P.gm)(g,_e);ot<0&&(gt<nt&&ui==x[gt]&&(_[gt++]=_e),Se<nt&&(ui==x[Se]||ui==E[Se]?(Se==0&&(je=_e),ti=_e+1,Se++):Se=0));let ji,S=ui<255?ui>=48&&ui<=57||ui>=97&&ui<=122?2:ui>=65&&ui<=90?1:0:(ji=(0,P.bg)(ui))!=ji.toLowerCase()?1:ji!=ji.toUpperCase()?2:0;(!_e||S==1&&ai||yi==0&&S!=0)&&(x[Nt]==ui||E[Nt]==ui&&(he=!0)?Y[Nt++]=_e:Y.length&&(xi=!1)),yi=S,_e+=(0,P.nZ)(ui)}return Nt==nt&&Y[0]==0&&xi?this.result(-100+(he?-200:0),Y,g):Se==nt&&je==0?this.ret(-200-g.length+(ti==g.length?0:-100),[0,ti]):ot>-1?this.ret(-700-g.length,[ot,ot+this.pattern.length]):Se==nt?this.ret(-200+-700-g.length,[je,ti]):Nt==nt?this.result(-100+(he?-200:0)+-700+(xi?0:-1100),Y,g):x.length==2?null:this.result((B[0]?-700:0)+-200+-1100,B,g)}result(g,x,E){let B=[],_=0;for(let Y of x){let ot=Y+(this.astral?(0,P.nZ)((0,P.gm)(E,Y)):1);_&&B[_-1]==Y?B[_-1]=ot:(B[_++]=Y,B[_++]=ot)}return this.ret(g-E.length,B)}}class Me{constructor(g){this.pattern=g,this.matched=[],this.score=0,this.folded=g.toLowerCase()}match(g){if(g.length<this.pattern.length)return null;let x=g.slice(0,this.pattern.length),E=x==this.pattern?0:x.toLowerCase()==this.folded?-200:null;return E==null?null:(this.matched=[0,x.length],this.score=E+(g.length==this.pattern.length?0:-100),this)}}const de=P.r$.define({combine(M){return(0,P.BO)(M,{activateOnTyping:!0,activateOnCompletion:()=>!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:Pt,filterStrict:!1,compareCompletions:(g,x)=>g.label.localeCompare(x.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(g,x)=>g&&x,closeOnBlur:(g,x)=>g&&x,icons:(g,x)=>g&&x,tooltipClass:(g,x)=>E=>Jt(g(E),x(E)),optionClass:(g,x)=>E=>Jt(g(E),x(E)),addToOptions:(g,x)=>g.concat(x),filterStrict:(g,x)=>g||x})}});function Jt(M,g){return M?g?M+" "+g:M:g}function Pt(M,g,x,E,B,_){let Y=M.textDirection==Q.Nm.RTL,ot=Y,nt=!1,vt="top",gt,Nt,he=g.left-B.left,Se=B.right-g.right,je=E.right-E.left,ti=E.bottom-E.top;if(ot&&he<Math.min(je,Se)?ot=!1:!ot&&Se<Math.min(je,he)&&(ot=!0),je<=(ot?he:Se))gt=Math.max(B.top,Math.min(x.top,B.bottom-ti))-g.top,Nt=Math.min(400,ot?he:Se);else{nt=!0,Nt=Math.min(400,(Y?g.right:B.right-g.left)-30);let _e=B.bottom-g.bottom;_e>=ti||_e>g.top?gt=x.bottom-g.top:(vt="bottom",gt=g.bottom-x.top)}let ai=(g.bottom-g.top)/_.offsetHeight,xi=(g.right-g.left)/_.offsetWidth;return{style:`${vt}: ${gt/ai}px; max-width: ${Nt/xi}px`,class:"cm-completionInfo-"+(nt?Y?"left-narrow":"right-narrow":ot?"left":"right")}}function re(M){let g=M.addToOptions.slice();return M.icons&&g.push({render(x){let E=document.createElement("div");return E.classList.add("cm-completionIcon"),x.type&&E.classList.add(...x.type.split(/\s+/g).map(B=>"cm-completionIcon-"+B)),E.setAttribute("aria-hidden","true"),E},position:20}),g.push({render(x,E,B,_){let Y=document.createElement("span");Y.className="cm-completionLabel";let ot=x.displayLabel||x.label,nt=0;for(let vt=0;vt<_.length;){let gt=_[vt++],Nt=_[vt++];gt>nt&&Y.appendChild(document.createTextNode(ot.slice(nt,gt)));let he=Y.appendChild(document.createElement("span"));he.appendChild(document.createTextNode(ot.slice(gt,Nt))),he.className="cm-completionMatchedText",nt=Nt}return nt<ot.length&&Y.appendChild(document.createTextNode(ot.slice(nt))),Y},position:50},{render(x){if(!x.detail)return null;let E=document.createElement("span");return E.className="cm-completionDetail",E.textContent=x.detail,E},position:80}),g.sort((x,E)=>x.position-E.position).map(x=>x.render)}function Bt(M,g,x){if(M<=x)return{from:0,to:M};if(g<0&&(g=0),g<=M>>1){let B=Math.floor(g/x);return{from:B*x,to:(B+1)*x}}let E=Math.floor((M-g)/x);return{from:M-(E+1)*x,to:M-E*x}}class Je{constructor(g,x,E){this.view=g,this.stateField=x,this.applyCompletion=E,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:nt=>this.placeInfo(nt),key:this},this.space=null,this.currentClass="";let B=g.state.field(x),{options:_,selected:Y}=B.open,ot=g.state.facet(de);this.optionContent=re(ot),this.optionClass=ot.optionClass,this.tooltipClass=ot.tooltipClass,this.range=Bt(_.length,Y,ot.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(g.state),this.dom.addEventListener("mousedown",nt=>{let{options:vt}=g.state.field(x).open;for(let gt=nt.target,Nt;gt&>!=this.dom;gt=gt.parentNode)if(gt.nodeName=="LI"&&(Nt=/-(\d+)$/.exec(gt.id))&&+Nt[1]<vt.length){this.applyCompletion(g,vt[+Nt[1]]),nt.preventDefault();return}}),this.dom.addEventListener("focusout",nt=>{let vt=g.state.field(this.stateField,!1);vt&&vt.tooltip&&g.state.facet(de).closeOnBlur&&nt.relatedTarget!=g.contentDOM&&g.dispatch({effects:ni.of(null)})}),this.showOptions(_,B.id)}mount(){this.updateSel()}showOptions(g,x){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(g,x,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(g){var x;let E=g.state.field(this.stateField),B=g.startState.field(this.stateField);if(this.updateTooltipClass(g.state),E!=B){let{options:_,selected:Y,disabled:ot}=E.open;(!B.open||B.open.options!=_)&&(this.range=Bt(_.length,Y,g.state.facet(de).maxRenderedOptions),this.showOptions(_,E.id)),this.updateSel(),ot!=((x=B.open)===null||x===void 0?void 0:x.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!ot)}}updateTooltipClass(g){let x=this.tooltipClass(g);if(x!=this.currentClass){for(let E of this.currentClass.split(" "))E&&this.dom.classList.remove(E);for(let E of x.split(" "))E&&this.dom.classList.add(E);this.currentClass=x}}positioned(g){this.space=g,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let g=this.view.state.field(this.stateField),x=g.open;if((x.selected>-1&&x.selected<this.range.from||x.selected>=this.range.to)&&(this.range=Bt(x.options.length,x.selected,this.view.state.facet(de).maxRenderedOptions),this.showOptions(x.options,g.id)),this.updateSelectedOption(x.selected)){this.destroyInfo();let{completion:E}=x.options[x.selected],{info:B}=E;if(!B)return;let _=typeof B=="string"?document.createTextNode(B):B(E);if(!_)return;"then"in _?_.then(Y=>{Y&&this.view.state.field(this.stateField,!1)==g&&this.addInfoPane(Y,E)}).catch(Y=>(0,Q.OO)(this.view.state,Y,"completion info")):this.addInfoPane(_,E)}}addInfoPane(g,x){this.destroyInfo();let E=this.info=document.createElement("div");if(E.className="cm-tooltip cm-completionInfo",g.nodeType!=null)E.appendChild(g),this.infoDestroy=null;else{let{dom:B,destroy:_}=g;E.appendChild(B),this.infoDestroy=_||null}this.dom.appendChild(E),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(g){let x=null;for(let E=this.list.firstChild,B=this.range.from;E;E=E.nextSibling,B++)E.nodeName!="LI"||!E.id?B--:B==g?E.hasAttribute("aria-selected")||(E.setAttribute("aria-selected","true"),x=E):E.hasAttribute("aria-selected")&&E.removeAttribute("aria-selected");return x&&Fe(this.list,x),x}measureInfo(){let g=this.dom.querySelector("[aria-selected]");if(!g||!this.info)return null;let x=this.dom.getBoundingClientRect(),E=this.info.getBoundingClientRect(),B=g.getBoundingClientRect(),_=this.space;if(!_){let Y=this.dom.ownerDocument.documentElement;_={left:0,top:0,right:Y.clientWidth,bottom:Y.clientHeight}}return B.top>Math.min(_.bottom,x.bottom)-10||B.bottom<Math.max(_.top,x.top)+10?null:this.view.state.facet(de).positionInfo(this.view,x,B,E,_,this.dom)}placeInfo(g){this.info&&(g?(g.style&&(this.info.style.cssText=g.style),this.info.className="cm-tooltip cm-completionInfo "+(g.class||"")):this.info.style.cssText="top: -1e6px")}createListBox(g,x,E){const B=document.createElement("ul");B.id=x,B.setAttribute("role","listbox"),B.setAttribute("aria-expanded","true"),B.setAttribute("aria-label",this.view.state.phrase("Completions")),B.addEventListener("mousedown",Y=>{Y.target==B&&Y.preventDefault()});let _=null;for(let Y=E.from;Y<E.to;Y++){let{completion:ot,match:nt}=g[Y],{section:vt}=ot;if(vt){let he=typeof vt=="string"?vt:vt.name;if(he!=_&&(Y>E.from||E.from==0))if(_=he,typeof vt!="string"&&vt.header)B.appendChild(vt.header(vt));else{let Se=B.appendChild(document.createElement("completion-section"));Se.textContent=he}}const gt=B.appendChild(document.createElement("li"));gt.id=x+"-"+Y,gt.setAttribute("role","option");let Nt=this.optionClass(ot);Nt&&(gt.className=Nt);for(let he of this.optionContent){let Se=he(ot,this.view.state,this.view,nt);Se&>.appendChild(Se)}}return E.from&&B.classList.add("cm-completionListIncompleteTop"),E.to<g.length&&B.classList.add("cm-completionListIncompleteBottom"),B}destroyInfo(){this.info&&(this.infoDestroy&&this.infoDestroy(),this.info.remove(),this.info=null)}destroy(){this.destroyInfo()}}function di(M,g){return x=>new Je(x,M,g)}function Fe(M,g){let x=M.getBoundingClientRect(),E=g.getBoundingClientRect(),B=x.height/M.offsetHeight;E.top<x.top?M.scrollTop-=(x.top-E.top)/B:E.bottom>x.bottom&&(M.scrollTop+=(E.bottom-x.bottom)/B)}function Xe(M){return(M.boost||0)*100+(M.apply?10:0)+(M.info?5:0)+(M.type?1:0)}function Ut(M,g){let x=[],E=null,B=vt=>{x.push(vt);let{section:gt}=vt.completion;if(gt){E||(E=[]);let Nt=typeof gt=="string"?gt:gt.name;E.some(he=>he.name==Nt)||E.push(typeof gt=="string"?{name:Nt}:gt)}},_=g.facet(de);for(let vt of M)if(vt.hasResult()){let gt=vt.result.getMatch;if(vt.result.filter===!1)for(let Nt of vt.result.options)B(new fe(Nt,vt.source,gt?gt(Nt):[],1e9-x.length));else{let Nt=g.sliceDoc(vt.from,vt.to),he,Se=_.filterStrict?new Me(Nt):new Be(Nt);for(let je of vt.result.options)if(he=Se.match(je.label)){let ti=je.displayLabel?gt?gt(je,he.matched):[]:he.matched;B(new fe(je,vt.source,ti,he.score+(je.boost||0)))}}}if(E){let vt=Object.create(null),gt=0,Nt=(he,Se)=>{var je,ti;return((je=he.rank)!==null&&je!==void 0?je:1e9)-((ti=Se.rank)!==null&&ti!==void 0?ti:1e9)||(he.name<Se.name?-1:1)};for(let he of E.sort(Nt))gt-=1e5,vt[he.name]=gt;for(let he of x){let{section:Se}=he.completion;Se&&(he.score+=vt[typeof Se=="string"?Se:Se.name])}}let Y=[],ot=null,nt=_.compareCompletions;for(let vt of x.sort((gt,Nt)=>Nt.score-gt.score||nt(gt.completion,Nt.completion))){let gt=vt.completion;!ot||ot.label!=gt.label||ot.detail!=gt.detail||ot.type!=null&>.type!=null&&ot.type!=gt.type||ot.apply!=gt.apply||ot.boost!=gt.boost?Y.push(vt):Xe(vt.completion)>Xe(ot)&&(Y[Y.length-1]=vt),ot=vt.completion}return Y}class ce{constructor(g,x,E,B,_,Y){this.options=g,this.attrs=x,this.tooltip=E,this.timestamp=B,this.selected=_,this.disabled=Y}setSelected(g,x){return g==this.selected||g>=this.options.length?this:new ce(this.options,hi(x,g),this.tooltip,this.timestamp,g,this.disabled)}static build(g,x,E,B,_,Y){if(B&&!Y&&g.some(vt=>vt.isPending))return B.setDisabled();let ot=Ut(g,x);if(!ot.length)return B&&g.some(vt=>vt.isPending)?B.setDisabled():null;let nt=x.facet(de).selectOnOpen?0:-1;if(B&&B.selected!=nt&&B.selected!=-1){let vt=B.options[B.selected].completion;for(let gt=0;gt<ot.length;gt++)if(ot[gt].completion==vt){nt=gt;break}}return new ce(ot,hi(E,nt),{pos:g.reduce((vt,gt)=>gt.hasResult()?Math.min(vt,gt.from):vt,1e8),create:We,above:_.aboveCursor},B?B.timestamp:Date.now(),nt,!1)}map(g){return new ce(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:g.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}setDisabled(){return new ce(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}}class te{constructor(g,x,E){this.active=g,this.id=x,this.open=E}static start(){return new te(Ie,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(g){let{state:x}=g,E=x.facet(de),_=(E.override||x.languageDataAt("autocomplete",me(x)).map(oi)).map(nt=>(this.active.find(gt=>gt.source==nt)||new Ct(nt,this.active.some(gt=>gt.state!=0)?1:0)).update(g,E));_.length==this.active.length&&_.every((nt,vt)=>nt==this.active[vt])&&(_=this.active);let Y=this.open,ot=g.effects.some(nt=>nt.is(jt));Y&&g.docChanged&&(Y=Y.map(g.changes)),g.selection||_.some(nt=>nt.hasResult()&&g.changes.touchesRange(nt.from,nt.to))||!ve(_,this.active)||ot?Y=ce.build(_,x,this.id,Y,E,ot):Y&&Y.disabled&&!_.some(nt=>nt.isPending)&&(Y=null),!Y&&_.every(nt=>!nt.isPending)&&_.some(nt=>nt.hasResult())&&(_=_.map(nt=>nt.hasResult()?new Ct(nt.source,0):nt));for(let nt of g.effects)nt.is(Xt)&&(Y=Y&&Y.setSelected(nt.value,this.id));return _==this.active&&Y==this.open?this:new te(_,this.id,Y)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?Te:qe}}function ve(M,g){if(M==g)return!0;for(let x=0,E=0;;){for(;x<M.length&&!M[x].hasResult();)x++;for(;E<g.length&&!g[E].hasResult();)E++;let B=x==M.length,_=E==g.length;if(B||_)return B==_;if(M[x++].result!=g[E++].result)return!1}}const Te={"aria-autocomplete":"list"},qe={};function hi(M,g){let x={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":M};return g>-1&&(x["aria-activedescendant"]=M+"-"+g),x}const Ie=[];function ft(M,g){if(M.isUserEvent("input.complete")){let E=M.annotation(_t);if(E&&g.activateOnCompletion(E))return 12}let x=M.isUserEvent("input.type");return x&&g.activateOnTyping?5:x?1:M.isUserEvent("delete.backward")?2:M.selection?8:M.docChanged?16:0}class Ct{constructor(g,x,E=!1){this.source=g,this.state=x,this.explicit=E}hasResult(){return!1}get isPending(){return this.state==1}update(g,x){let E=ft(g,x),B=this;(E&8||E&16&&this.touches(g))&&(B=new Ct(B.source,0)),E&4&&B.state==0&&(B=new Ct(this.source,1)),B=B.updateFor(g,E);for(let _ of g.effects)if(_.is(Ye))B=new Ct(B.source,1,_.value);else if(_.is(ni))B=new Ct(B.source,0);else if(_.is(jt))for(let Y of _.value)Y.source==B.source&&(B=Y);return B}updateFor(g,x){return this.map(g.changes)}map(g){return this}touches(g){return g.changes.touchesRange(me(g.state))}}class Dt extends Ct{constructor(g,x,E,B,_,Y){super(g,3,x),this.limit=E,this.result=B,this.from=_,this.to=Y}hasResult(){return!0}updateFor(g,x){var E;if(!(x&3))return this.map(g.changes);let B=this.result;B.map&&!g.changes.empty&&(B=B.map(B,g.changes));let _=g.changes.mapPos(this.from),Y=g.changes.mapPos(this.to,1),ot=me(g.state);if(ot>Y||!B||x&2&&(me(g.startState)==this.from||ot<this.limit))return new Ct(this.source,x&4?1:0);let nt=g.changes.mapPos(this.limit);return At(B.validFor,g.state,_,Y)?new Dt(this.source,this.explicit,nt,B,_,Y):B.update&&(B=B.update(B,_,Y,new kt(g.state,ot,!1)))?new Dt(this.source,this.explicit,nt,B,B.from,(E=B.to)!==null&&E!==void 0?E:me(g.state)):new Ct(this.source,1,this.explicit)}map(g){return g.empty?this:(this.result.map?this.result.map(this.result,g):this.result)?new Dt(this.source,this.explicit,g.mapPos(this.limit),this.result,g.mapPos(this.from),g.mapPos(this.to,1)):new Ct(this.source,0)}touches(g){return g.changes.touchesRange(this.from,this.to)}}function At(M,g,x,E){if(!M)return!1;let B=g.sliceDoc(x,E);return typeof M=="function"?M(B,x,E,g):we(M,!0).test(B)}const jt=P.Py.define({map(M,g){return M.map(x=>x.map(g))}}),Xt=P.Py.define(),Et=P.QQ.define({create(){return te.start()},update(M,g){return M.update(g)},provide:M=>[Q.hJ.from(M,g=>g.tooltip),Q.tk.contentAttributes.from(M,g=>g.attrs)]});function le(M,g){const x=g.completion.apply||g.completion.label;let E=M.state.field(Et).active.find(B=>B.source==g.source);return E instanceof Dt?(typeof x=="string"?M.dispatch(Object.assign(Object.assign({},ri(M.state,x,E.from,E.to)),{annotations:_t.of(g.completion)})):x(M,g.completion,E.from,E.to),!0):!1}const We=di(Et,le);function Ae(M,g="option"){return x=>{let E=x.state.field(Et,!1);if(!E||!E.open||E.open.disabled||Date.now()-E.open.timestamp<x.state.facet(de).interactionDelay)return!1;let B=1,_;g=="page"&&(_=(0,Q.gB)(x,E.open.tooltip))&&(B=Math.max(2,Math.floor(_.dom.offsetHeight/_.dom.querySelector("li").offsetHeight)-1));let{length:Y}=E.open.options,ot=E.open.selected>-1?E.open.selected+B*(M?1:-1):M?0:Y-1;return ot<0?ot=g=="page"?0:Y-1:ot>=Y&&(ot=g=="page"?Y-1:0),x.dispatch({effects:Xt.of(ot)}),!0}}const yt=M=>{let g=M.state.field(Et,!1);return M.state.readOnly||!g||!g.open||g.open.selected<0||g.open.disabled||Date.now()-g.open.timestamp<M.state.facet(de).interactionDelay?!1:le(M,g.open.options[g.open.selected])},He=M=>M.state.field(Et,!1)?(M.dispatch({effects:Ye.of(!0)}),!0):!1,Ne=M=>{let g=M.state.field(Et,!1);return!g||!g.active.some(x=>x.state!=0)?!1:(M.dispatch({effects:ni.of(null)}),!0)};class G{constructor(g,x){this.active=g,this.context=x,this.time=Date.now(),this.updates=[],this.done=void 0}}const q=50,lt=1e3,rt=Q.lg.fromClass(class{constructor(M){this.view=M,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let g of M.state.field(Et).active)g.isPending&&this.startQuery(g)}update(M){let g=M.state.field(Et),x=M.state.facet(de);if(!M.selectionSet&&!M.docChanged&&M.startState.field(Et)==g)return;let E=M.transactions.some(_=>{let Y=ft(_,x);return Y&8||(_.selection||_.docChanged)&&!(Y&3)});for(let _=0;_<this.running.length;_++){let Y=this.running[_];if(E||Y.context.abortOnDocChange&&M.docChanged||Y.updates.length+M.transactions.length>q&&Date.now()-Y.time>lt){for(let ot of Y.context.abortListeners)try{ot()}catch(nt){(0,Q.OO)(this.view.state,nt)}Y.context.abortListeners=null,this.running.splice(_--,1)}else Y.updates.push(...M.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),M.transactions.some(_=>_.effects.some(Y=>Y.is(Ye)))&&(this.pendingStart=!0);let B=this.pendingStart?50:x.activateOnTypingDelay;if(this.debounceUpdate=g.active.some(_=>_.isPending&&!this.running.some(Y=>Y.active.source==_.source))?setTimeout(()=>this.startUpdate(),B):-1,this.composing!=0)for(let _ of M.transactions)_.isUserEvent("input.type")?this.composing=2:this.composing==2&&_.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:M}=this.view,g=M.field(Et);for(let x of g.active)x.isPending&&!this.running.some(E=>E.active.source==x.source)&&this.startQuery(x);this.running.length&&g.open&&g.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(de).updateSyncTime))}startQuery(M){let{state:g}=this.view,x=me(g),E=new kt(g,x,M.explicit,this.view),B=new G(M,E);this.running.push(B),Promise.resolve(M.source(E)).then(_=>{B.context.aborted||(B.done=_||null,this.scheduleAccept())},_=>{this.view.dispatch({effects:ni.of(null)}),(0,Q.OO)(this.view.state,_)})}scheduleAccept(){this.running.every(M=>M.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(de).updateSyncTime))}accept(){var M;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let g=[],x=this.view.state.facet(de),E=this.view.state.field(Et);for(let B=0;B<this.running.length;B++){let _=this.running[B];if(_.done===void 0)continue;if(this.running.splice(B--,1),_.done){let ot=me(_.updates.length?_.updates[0].startState:this.view.state),nt=Math.min(ot,_.done.from+(_.active.explicit?0:1)),vt=new Dt(_.active.source,_.active.explicit,nt,_.done,_.done.from,(M=_.done.to)!==null&&M!==void 0?M:ot);for(let gt of _.updates)vt=vt.update(gt,x);if(vt.hasResult()){g.push(vt);continue}}let Y=E.active.find(ot=>ot.source==_.active.source);if(Y&&Y.isPending)if(_.done==null){let ot=new Ct(_.active.source,0);for(let nt of _.updates)ot=ot.update(nt,x);ot.isPending||g.push(ot)}else this.startQuery(Y)}(g.length||E.open&&E.open.disabled)&&this.view.dispatch({effects:jt.of(g)})}},{eventHandlers:{blur(M){let g=this.view.state.field(Et,!1);if(g&&g.tooltip&&this.view.state.facet(de).closeOnBlur){let x=g.open&&(0,Q.gB)(this.view,g.open.tooltip);(!x||!x.dom.contains(M.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:ni.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:Ye.of(!1)}),20),this.composing=0}}}),bt=typeof navigator=="object"&&/Win/.test(navigator.platform),Ot=P.Wl.highest(Q.tk.domEventHandlers({keydown(M,g){let x=g.state.field(Et,!1);if(!x||!x.open||x.open.disabled||x.open.selected<0||M.key.length>1||M.ctrlKey&&!(bt&&M.altKey)||M.metaKey)return!1;let E=x.open.options[x.open.selected],B=x.active.find(Y=>Y.source==E.source),_=E.completion.commitCharacters||B.result.commitCharacters;return _&&_.indexOf(M.key)>-1&&le(g,E),!1}})),Ht=Q.tk.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xB7\xB7\xB7"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25CB'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25CC'"}},".cm-completionIcon-variable":{"&:after":{content:"'\u{1D465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1D436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1D461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222A'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25A1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1F511}\uFE0E'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25A2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class Wt{constructor(g,x,E,B){this.field=g,this.line=x,this.from=E,this.to=B}}class ae{constructor(g,x,E){this.field=g,this.from=x,this.to=E}map(g){let x=g.mapPos(this.from,-1,P.gc.TrackDel),E=g.mapPos(this.to,1,P.gc.TrackDel);return x==null||E==null?null:new ae(this.field,x,E)}}class ue{constructor(g,x){this.lines=g,this.fieldPositions=x}instantiate(g,x){let E=[],B=[x],_=g.doc.lineAt(x),Y=/^\s*/.exec(_.text)[0];for(let nt of this.lines){if(E.length){let vt=Y,gt=/^\t*/.exec(nt)[0].length;for(let Nt=0;Nt<gt;Nt++)vt+=g.facet(Z.c);B.push(x+vt.length-gt),nt=vt+nt.slice(gt)}E.push(nt),x+=nt.length+1}let ot=this.fieldPositions.map(nt=>new ae(nt.field,B[nt.line]+nt.from,B[nt.line]+nt.to));return{text:E,ranges:ot}}static parse(g){let x=[],E=[],B=[],_;for(let Y of g.split(/\r\n?|\n/)){for(;_=/[#$]\{(?:(\d+)(?::([^}]*))?|((?:\\[{}]|[^}])*))\}/.exec(Y);){let ot=_[1]?+_[1]:null,nt=_[2]||_[3]||"",vt=-1,gt=nt.replace(/\\[{}]/g,Nt=>Nt[1]);for(let Nt=0;Nt<x.length;Nt++)(ot!=null?x[Nt].seq==ot:gt&&x[Nt].name==gt)&&(vt=Nt);if(vt<0){let Nt=0;for(;Nt<x.length&&(ot==null||x[Nt].seq!=null&&x[Nt].seq<ot);)Nt++;x.splice(Nt,0,{seq:ot,name:gt}),vt=Nt;for(let he of B)he.field>=vt&&he.field++}B.push(new Wt(vt,E.length,_.index,_.index+gt.length)),Y=Y.slice(0,_.index)+nt+Y.slice(_.index+_[0].length)}Y=Y.replace(/\\([{}])/g,(ot,nt,vt)=>{for(let gt of B)gt.line==E.length&>.from>vt&&(gt.from--,gt.to--);return nt}),E.push(Y)}return new ue(E,B)}}let qt=Q.p.widget({widget:new class extends Q.l9{toDOM(){let M=document.createElement("span");return M.className="cm-snippetFieldPosition",M}ignoreEvent(){return!1}}}),oe=Q.p.mark({class:"cm-snippetField"});class ge{constructor(g,x){this.ranges=g,this.active=x,this.deco=Q.p.set(g.map(E=>(E.from==E.to?qt:oe).range(E.from,E.to)))}map(g){let x=[];for(let E of this.ranges){let B=E.map(g);if(!B)return null;x.push(B)}return new ge(x,this.active)}selectionInsideField(g){return g.ranges.every(x=>this.ranges.some(E=>E.field==this.active&&E.from<=x.from&&E.to>=x.to))}}const be=P.Py.define({map(M,g){return M&&M.map(g)}}),si=P.Py.define(),Gt=P.QQ.define({create(){return null},update(M,g){for(let x of g.effects){if(x.is(be))return x.value;if(x.is(si)&&M)return new ge(M.ranges,x.value)}return M&&g.docChanged&&(M=M.map(g.changes)),M&&g.selection&&!M.selectionInsideField(g.selection)&&(M=null),M},provide:M=>Q.tk.decorations.from(M,g=>g?g.deco:Q.p.none)});function Kt(M,g){return P.jT.create(M.filter(x=>x.field==g).map(x=>P.jT.range(x.from,x.to)))}function ci(M){let g=ue.parse(M);return(x,E,B,_)=>{let{text:Y,ranges:ot}=g.instantiate(x.state,B),{main:nt}=x.state.selection,vt={changes:{from:B,to:_==nt.from?nt.to:_,insert:P.xv.of(Y)},scrollIntoView:!0,annotations:E?[_t.of(E),P.YW.userEvent.of("input.complete")]:void 0};if(ot.length&&(vt.selection=Kt(ot,0)),ot.some(gt=>gt.field>0)){let gt=new ge(ot,0),Nt=vt.effects=[be.of(gt)];x.state.field(Gt,!1)===void 0&&Nt.push(P.Py.appendConfig.of([Gt,U,St,Ht]))}x.dispatch(x.state.update(vt))}}function li(M){return({state:g,dispatch:x})=>{let E=g.field(Gt,!1);if(!E||M<0&&E.active==0)return!1;let B=E.active+M,_=M>0&&!E.ranges.some(Y=>Y.field==B+M);return x(g.update({selection:Kt(E.ranges,B),effects:be.of(_?null:new ge(E.ranges,B)),scrollIntoView:!0})),!0}}const Ge=({state:M,dispatch:g})=>M.field(Gt,!1)?(g(M.update({effects:be.of(null)})),!0):!1,pi=li(1),Li=li(-1);function V(M){let g=M.field(Gt,!1);return!!(g&&g.ranges.some(x=>x.field==g.active+1))}function D(M){let g=M.field(Gt,!1);return!!(g&&g.active>0)}const $=[{key:"Tab",run:pi,shift:Li},{key:"Escape",run:Ge}],z=P.r$.define({combine(M){return M.length?M[0]:$}}),U=P.Wl.highest(Q.$f.compute([z],M=>M.facet(z)));function ht(M,g){return Object.assign(Object.assign({},g),{apply:ci(M)})}const St=Q.tk.domEventHandlers({mousedown(M,g){let x=g.state.field(Gt,!1),E;if(!x||(E=g.posAtCoords({x:M.clientX,y:M.clientY}))==null)return!1;let B=x.ranges.find(_=>_.from<=E&&_.to>=E);return!B||B.field==x.active?!1:(g.dispatch({selection:Kt(x.ranges,B.field),effects:be.of(x.ranges.some(_=>_.field>B.field)?new ge(x.ranges,B.field):null),scrollIntoView:!0}),!0)}});function wt(M){let g=M.replace(/[\]\-\\]/g,"\\$&");try{return new RegExp(`[\\p{Alphabetic}\\p{Number}_${g}]+`,"ug")}catch{return new RegExp(`[w${g}]`,"g")}}function It(M,g){return new RegExp(g(M.source),M.unicode?"u":"")}const Qt=null;function $e(M){return Qt[M]||(Qt[M]=new WeakMap)}function Ke(M,g,x,E,B){for(let _=M.iterLines(),Y=0;!_.next().done;){let{value:ot}=_,nt;for(g.lastIndex=0;nt=g.exec(ot);)if(!E[nt[0]]&&Y+nt.index!=B&&(x.push({type:"text",label:nt[0]}),E[nt[0]]=!0,x.length>=2e3))return;Y+=ot.length+1}}function Qe(M,g,x,E,B){let _=M.length>=1e3,Y=_&&g.get(M);if(Y)return Y;let ot=[],nt=Object.create(null);if(M.children){let vt=0;for(let gt of M.children){if(gt.length>=1e3)for(let Nt of Qe(gt,g,x,E-vt,B-vt))nt[Nt.label]||(nt[Nt.label]=!0,ot.push(Nt));else Ke(gt,x,ot,nt,B-vt);vt+=gt.length+1}}else Ke(M,x,ot,nt,B);return _&&ot.length<2e3&&g.set(M,ot),ot}const mi=M=>{let g=M.state.languageDataAt("wordChars",M.pos).join(""),x=wt(g),E=M.matchBefore(It(x,Y=>Y+"$"));if(!E&&!M.explicit)return null;let B=E?E.from:M.pos,_=Qe(M.state.doc,$e(g),x,5e4,B);return{from:B,options:_,validFor:It(x,Y=>"^"+Y)}},Ee={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},Ze=P.Py.define({map(M,g){let x=g.mapPos(M,-1,P.gc.TrackAfter);return x??void 0}}),gi=new class extends P.uU{};gi.startSide=1,gi.endSide=-1;const fi=P.QQ.define({create(){return P.Xs.empty},update(M,g){if(M=M.map(g.changes),g.selection){let x=g.state.doc.lineAt(g.selection.main.head);M=M.update({filter:E=>E>=x.from&&E<=x.to})}for(let x of g.effects)x.is(Ze)&&(M=M.update({add:[gi.range(x.value,x.value+1)]}));return M}});function Ii(){return[Ni,fi]}const ye="()[]{}<>\xAB\xBB\xBB\xAB\uFF3B\uFF3D\uFF5B\uFF5D";function Ri(M){for(let g=0;g<ye.length;g+=2)if(ye.charCodeAt(g)==M)return ye.charAt(g+1);return(0,P.bg)(M<128?M:M+1)}function zi(M,g){return M.languageDataAt("closeBrackets",g)[0]||Ee}const Ui=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),Ni=Q.tk.inputHandler.of((M,g,x,E)=>{if((Ui?M.composing:M.compositionStarted)||M.state.readOnly)return!1;let B=M.state.selection.main;if(E.length>2||E.length==2&&(0,P.nZ)((0,P.gm)(E,0))==1||g!=B.from||x!=B.to)return!1;let _=a(M.state,E);return _?(M.dispatch(_),!0):!1}),o=[{key:"Backspace",run:({state:M,dispatch:g})=>{if(M.readOnly)return!1;let E=zi(M,M.selection.main.head).brackets||Ee.brackets,B=null,_=M.changeByRange(Y=>{if(Y.empty){let ot=T(M.doc,Y.head);for(let nt of E)if(nt==ot&&y(M.doc,Y.head)==Ri((0,P.gm)(nt,0)))return{changes:{from:Y.head-nt.length,to:Y.head+nt.length},range:P.jT.cursor(Y.head-nt.length)}}return{range:B=Y}});return B||g(M.update(_,{scrollIntoView:!0,userEvent:"delete.backward"})),!B}}];function a(M,g){let x=zi(M,M.selection.main.head),E=x.brackets||Ee.brackets;for(let B of E){let _=Ri((0,P.gm)(B,0));if(g==B)return _==B?J(M,B,E.indexOf(B+B+B)>-1,x):A(M,B,_,x.before||Ee.before);if(g==_&&u(M,M.selection.main.from))return N(M,B,_)}return null}function u(M,g){let x=!1;return M.field(fi).between(0,M.doc.length,E=>{E==g&&(x=!0)}),x}function y(M,g){let x=M.sliceString(g,g+2);return x.slice(0,(0,P.nZ)((0,P.gm)(x,0)))}function T(M,g){let x=M.sliceString(g-2,g);return(0,P.nZ)((0,P.gm)(x,0))==x.length?x:x.slice(1)}function A(M,g,x,E){let B=null,_=M.changeByRange(Y=>{if(!Y.empty)return{changes:[{insert:g,from:Y.from},{insert:x,from:Y.to}],effects:Ze.of(Y.to+g.length),range:P.jT.range(Y.anchor+g.length,Y.head+g.length)};let ot=y(M.doc,Y.head);return!ot||/\s/.test(ot)||E.indexOf(ot)>-1?{changes:{insert:g+x,from:Y.head},effects:Ze.of(Y.head+g.length),range:P.jT.cursor(Y.head+g.length)}:{range:B=Y}});return B?null:M.update(_,{scrollIntoView:!0,userEvent:"input.type"})}function N(M,g,x){let E=null,B=M.changeByRange(_=>_.empty&&y(M.doc,_.head)==x?{changes:{from:_.head,to:_.head+x.length,insert:x},range:P.jT.cursor(_.head+x.length)}:E={range:_});return E?null:M.update(B,{scrollIntoView:!0,userEvent:"input.type"})}function J(M,g,x,E){let B=E.stringPrefixes||Ee.stringPrefixes,_=null,Y=M.changeByRange(ot=>{if(!ot.empty)return{changes:[{insert:g,from:ot.from},{insert:g,from:ot.to}],effects:Ze.of(ot.to+g.length),range:P.jT.range(ot.anchor+g.length,ot.head+g.length)};let nt=ot.head,vt=y(M.doc,nt),gt;if(vt==g){if(st(M,nt))return{changes:{insert:g+g,from:nt},effects:Ze.of(nt+g.length),range:P.jT.cursor(nt+g.length)};if(u(M,nt)){let he=x&&M.sliceDoc(nt,nt+g.length*3)==g+g+g?g+g+g:g;return{changes:{from:nt,to:nt+he.length,insert:he},range:P.jT.cursor(nt+he.length)}}}else{if(x&&M.sliceDoc(nt-2*g.length,nt)==g+g&&(gt=xt(M,nt-2*g.length,B))>-1&&st(M,gt))return{changes:{insert:g+g+g+g,from:nt},effects:Ze.of(nt+g.length),range:P.jT.cursor(nt+g.length)};if(M.charCategorizer(nt)(vt)!=P.D0.Word&&xt(M,nt,B)>-1&&!mt(M,nt,g,B))return{changes:{insert:g+g,from:nt},effects:Ze.of(nt+g.length),range:P.jT.cursor(nt+g.length)}}return{range:_=ot}});return _?null:M.update(Y,{scrollIntoView:!0,userEvent:"input.type"})}function st(M,g){let x=(0,Z.qz)(M).resolveInner(g+1);return x.parent&&x.from==g}function mt(M,g,x,E){let B=(0,Z.qz)(M).resolveInner(g,-1),_=E.reduce((Y,ot)=>Math.max(Y,ot.length),0);for(let Y=0;Y<5;Y++){let ot=M.sliceDoc(B.from,Math.min(B.to,B.from+x.length+_)),nt=ot.indexOf(x);if(!nt||nt>-1&&E.indexOf(ot.slice(0,nt))>-1){let gt=B.firstChild;for(;gt&>.from==B.from&>.to-gt.from>x.length+nt;){if(M.sliceDoc(gt.to-x.length,gt.to)==x)return!1;gt=gt.firstChild}return!0}let vt=B.to==g&&B.parent;if(!vt)break;B=vt}return!1}function xt(M,g,x){let E=M.charCategorizer(g);if(E(M.sliceDoc(g-1,g))!=P.D0.Word)return g;for(let B of x){let _=g-B.length;if(M.sliceDoc(_,g)==B&&E(M.sliceDoc(_-1,_))!=P.D0.Word)return _}return-1}function Lt(M={}){return[Ot,Et,de.of(M),rt,De,Ht]}const Rt=[{key:"Ctrl-Space",run:He},{mac:"Alt-`",run:He},{key:"Escape",run:Ne},{key:"ArrowDown",run:Ae(!0)},{key:"ArrowUp",run:Ae(!1)},{key:"PageDown",run:Ae(!0,"page")},{key:"PageUp",run:Ae(!1,"page")},{key:"Enter",run:yt}],De=P.Wl.highest(Q.$f.computeN([de],M=>M.facet(de).defaultKeymap?[Rt]:[]));function bi(M){let g=M.field(Et,!1);return g&&g.active.some(x=>x.isPending)?"pending":g&&g.active.some(x=>x.state!=0)?"active":null}const Ve=new WeakMap;function Vi(M){var g;let x=(g=M.field(Et,!1))===null||g===void 0?void 0:g.open;if(!x||x.disabled)return[];let E=Ve.get(x.options);return E||Ve.set(x.options,E=x.options.map(B=>B.completion)),E}function Fi(M){var g;let x=(g=M.field(Et,!1))===null||g===void 0?void 0:g.open;return x&&!x.disabled&&x.selected>=0?x.options[x.selected].completion:null}function Wi(M){var g;let x=(g=M.field(Et,!1))===null||g===void 0?void 0:g.open;return x&&!x.disabled&&x.selected>=0?x.selected:null}function Xi(M){return Xt.of(M)}},58377:function(tn,vi,Zt){Zt.d(vi,{dy:function(){return Ei},aG:function(){return us},s6:function(){return Si}});var P=Zt(68792),Q=Zt(9058),Z=Zt(59119),kt=Zt(41113);let se=null;function Ce(){if(!se&&typeof document=="object"&&document.body){let{style:m}=document.body,h=[],d=new Set;for(let w in m)w!="cssText"&&w!="cssFloat"&&typeof m[w]=="string"&&(/[A-Z]/.test(w)&&(w=w.replace(/[A-Z]/g,C=>"-"+C.toLowerCase())),d.has(w)||(h.push(w),d.add(w)));se=h.sort().map(w=>({type:"property",label:w,apply:w+": "}))}return se||[]}const ke=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map(m=>({type:"class",label:m})),Oe=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(m=>({type:"keyword",label:m})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(m=>({type:"constant",label:m}))),Pe=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(m=>({type:"type",label:m})),fe=["@charset","@color-profile","@container","@counter-style","@font-face","@font-feature-values","@font-palette-values","@import","@keyframes","@layer","@media","@namespace","@page","@position-try","@property","@scope","@starting-style","@supports","@view-transition"].map(m=>({type:"keyword",label:m})),me=/^(\w[\w-]*|-\w[\w-]*|)$/,we=/^-(-[\w-]*)?$/;function _t(m,h){var d;if((m.name=="("||m.type.isError)&&(m=m.parent||m),m.name!="ArgList")return!1;let w=(d=m.parent)===null||d===void 0?void 0:d.firstChild;return(w==null?void 0:w.name)!="Callee"?!1:h.sliceString(w.from,w.to)=="var"}const ri=new kt.hr,ze=["Declaration"];function oi(m){for(let h=m;;){if(h.type.isTop)return h;if(!(h=h.parent))return m}}function Ye(m,h,d){if(h.to-h.from>4096){let w=ri.get(h);if(w)return w;let C=[],F=new Set,H=h.cursor(kt.vj.IncludeAnonymous);if(H.firstChild())do for(let tt of Ye(m,H.node,d))F.has(tt.label)||(F.add(tt.label),C.push(tt));while(H.nextSibling());return ri.set(h,C),C}else{let w=[],C=new Set;return h.cursor().iterate(F=>{var H;if(d(F)&&F.matchContext(ze)&&((H=F.node.nextSibling)===null||H===void 0?void 0:H.name)==":"){let tt=m.sliceString(F.from,F.to);C.has(tt)||(C.add(tt),w.push({label:tt,type:"variable"}))}}),w}}const Be=(m=>h=>{let{state:d,pos:w}=h,C=(0,Z.qz)(d).resolveInner(w,-1),F=C.type.isError&&C.from==C.to-1&&d.doc.sliceString(C.from,C.to)=="-";if(C.name=="PropertyName"||(F||C.name=="TagName")&&/^(Block|Styles)$/.test(C.resolve(C.to).name))return{from:C.from,options:Ce(),validFor:me};if(C.name=="ValueName")return{from:C.from,options:Oe,validFor:me};if(C.name=="PseudoClassName")return{from:C.from,options:ke,validFor:me};if(m(C)||(h.explicit||F)&&_t(C,d.doc))return{from:m(C)||F?C.from:w,options:Ye(d.doc,oi(C),m),validFor:we};if(C.name=="TagName"){for(let{parent:it}=C;it;it=it.parent)if(it.name=="Block")return{from:C.from,options:Ce(),validFor:me};return{from:C.from,options:Pe,validFor:me}}if(C.name=="AtKeyword")return{from:C.from,options:fe,validFor:me};if(!h.explicit)return null;let H=C.resolve(w),tt=H.childBefore(w);return tt&&tt.name==":"&&H.name=="PseudoClassSelector"?{from:w,options:ke,validFor:me}:tt&&tt.name==":"&&H.name=="Declaration"||H.name=="ArgList"?{from:w,options:Oe,validFor:me}:H.name=="Block"||H.name=="Styles"?{from:w,options:Ce(),validFor:me}:null})(m=>m.name=="VariableName"),Me=Z.qp.define({name:"css",parser:Q.E.configure({props:[Z.uj.add({Declaration:(0,Z.tC)()}),Z.x0.add({"Block KeyframeList":Z.Dv})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function de(){return new Z.ri(Me,Me.data.of({autocomplete:Be}))}var Jt=Zt(13249),Pt=Zt(47421),re=Zt(78120),Bt=Zt(35524),Je=Zt(28699),di;const Fe=new kt.md;function Xe(m){return re.r$.define({combine:m?h=>h.concat(m):void 0})}const Ut=new kt.md;class ce{constructor(h,d,w=[],C=""){this.data=h,this.name=C,re.yy.prototype.hasOwnProperty("tree")||Object.defineProperty(re.yy.prototype,"tree",{get(){return Te(this)}}),this.parser=d,this.extension=[Ae.of(this),re.yy.languageData.of((F,H,tt)=>{let it=te(F,H,tt),Tt=it.type.prop(Fe);if(!Tt)return[];let Ft=F.facet(Tt),pe=it.type.prop(Ut);if(pe){let ei=it.resolve(H-it.from,tt);for(let Re of pe)if(Re.test(ei,F)){let Ci=F.facet(Re.facet);return Re.type=="replace"?Ci:Ci.concat(Ft)}}return Ft})].concat(w)}isActiveAt(h,d,w=-1){return te(h,d,w).type.prop(Fe)==this.data}findRegions(h){let d=h.facet(Ae);if((d==null?void 0:d.data)==this.data)return[{from:0,to:h.doc.length}];if(!d||!d.allowsNesting)return[];let w=[],C=(F,H)=>{if(F.prop(Fe)==this.data){w.push({from:H,to:H+F.length});return}let tt=F.prop(kt.md.mounted);if(tt){if(tt.tree.prop(Fe)==this.data){if(tt.overlay)for(let it of tt.overlay)w.push({from:it.from+H,to:it.to+H});else w.push({from:H,to:H+F.length});return}else if(tt.overlay){let it=w.length;if(C(tt.tree,tt.overlay[0].from+H),w.length>it)return}}for(let it=0;it<F.children.length;it++){let Tt=F.children[it];Tt instanceof kt.mp&&C(Tt,F.positions[it]+H)}};return C(Te(h),0),w}get allowsNesting(){return!0}}ce.setState=re.Py.define();function te(m,h,d){let w=m.facet(Ae),C=Te(m).topNode;if(!w||w.allowsNesting)for(let F=C;F;F=F.enter(h,d,kt.vj.ExcludeBuffers))F.type.isTop&&(C=F);return C}class ve extends ce{constructor(h,d,w){super(h,d,[],w),this.parser=d}static define(h){let d=Xe(h.languageData);return new ve(d,h.parser.configure({props:[Fe.add(w=>w.isTop?d:void 0)]}),h.name)}configure(h,d){return new ve(this.data,this.parser.configure(h),d||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function Te(m){let h=m.field(ce.state,!1);return h?h.tree:kt.mp.empty}function qe(m,h,d=50){var w;let C=(w=m.field(ce.state,!1))===null||w===void 0?void 0:w.context;if(!C)return null;let F=C.viewport;C.updateViewport({from:0,to:h});let H=C.isDone(h)||C.work(d,h)?C.tree:null;return C.updateViewport(F),H}function hi(m,h=m.doc.length){var d;return((d=m.field(ce.state,!1))===null||d===void 0?void 0:d.context.isDone(h))||!1}function Ie(m,h=m.viewport.to,d=100){let w=qe(m.state,h,d);return w!=Te(m.state)&&m.dispatch({}),!!w}function ft(m){var h;return((h=m.plugin(We))===null||h===void 0?void 0:h.isWorking())||!1}class Ct{constructor(h){this.doc=h,this.cursorPos=0,this.string="",this.cursor=h.iter()}get length(){return this.doc.length}syncTo(h){return this.string=this.cursor.next(h-this.cursorPos).value,this.cursorPos=h+this.string.length,this.cursorPos-this.string.length}chunk(h){return this.syncTo(h),this.string}get lineChunks(){return!0}read(h,d){let w=this.cursorPos-this.string.length;return h<w||d>=this.cursorPos?this.doc.sliceString(h,d):this.string.slice(h-w,d-w)}}let Dt=null;class At{constructor(h,d,w=[],C,F,H,tt,it){this.parser=h,this.state=d,this.fragments=w,this.tree=C,this.treeLen=F,this.viewport=H,this.skipped=tt,this.scheduleOn=it,this.parse=null,this.tempSkipped=[]}static create(h,d,w){return new At(h,d,[],kt.mp.empty,0,w,[],null)}startParse(){return this.parser.startParse(new Ct(this.state.doc),this.fragments)}work(h,d){return d!=null&&d>=this.state.doc.length&&(d=void 0),this.tree!=kt.mp.empty&&this.isDone(d??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var w;if(typeof h=="number"){let C=Date.now()+h;h=()=>Date.now()>C}for(this.parse||(this.parse=this.startParse()),d!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>d)&&d<this.state.doc.length&&this.parse.stopAt(d);;){let C=this.parse.advance();if(C)if(this.fragments=this.withoutTempSkipped(kt.i9.addTree(C,this.fragments,this.parse.stoppedAt!=null)),this.treeLen=(w=this.parse.stoppedAt)!==null&&w!==void 0?w:this.state.doc.length,this.tree=C,this.parse=null,this.treeLen<(d??this.state.doc.length))this.parse=this.startParse();else return!0;if(h())return!1}})}takeTree(){let h,d;this.parse&&(h=this.parse.parsedPos)>=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>h)&&this.parse.stopAt(h),this.withContext(()=>{for(;!(d=this.parse.advance()););}),this.treeLen=h,this.tree=d,this.fragments=this.withoutTempSkipped(kt.i9.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(h){let d=Dt;Dt=this;try{return h()}finally{Dt=d}}withoutTempSkipped(h){for(let d;d=this.tempSkipped.pop();)h=jt(h,d.from,d.to);return h}changes(h,d){let{fragments:w,tree:C,treeLen:F,viewport:H,skipped:tt}=this;if(this.takeTree(),!h.empty){let it=[];if(h.iterChangedRanges((Tt,Ft,pe,ei)=>it.push({fromA:Tt,toA:Ft,fromB:pe,toB:ei})),w=kt.i9.applyChanges(w,it),C=kt.mp.empty,F=0,H={from:h.mapPos(H.from,-1),to:h.mapPos(H.to,1)},this.skipped.length){tt=[];for(let Tt of this.skipped){let Ft=h.mapPos(Tt.from,1),pe=h.mapPos(Tt.to,-1);Ft<pe&&tt.push({from:Ft,to:pe})}}}return new At(this.parser,d,w,C,F,H,tt,this.scheduleOn)}updateViewport(h){if(this.viewport.from==h.from&&this.viewport.to==h.to)return!1;this.viewport=h;let d=this.skipped.length;for(let w=0;w<this.skipped.length;w++){let{from:C,to:F}=this.skipped[w];C<h.to&&F>h.from&&(this.fragments=jt(this.fragments,C,F),this.skipped.splice(w--,1))}return this.skipped.length>=d?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(h,d){this.skipped.push({from:h,to:d})}static getSkippingParser(h){return new class extends kt._b{createParse(d,w,C){let F=C[0].from,H=C[C.length-1].to;return{parsedPos:F,advance(){let it=Dt;if(it){for(let Tt of C)it.tempSkipped.push(Tt);h&&(it.scheduleOn=it.scheduleOn?Promise.all([it.scheduleOn,h]):h)}return this.parsedPos=H,new kt.mp(kt.Jq.none,[],[],H-F)},stoppedAt:null,stopAt(){}}}}}isDone(h){h=Math.min(h,this.state.doc.length);let d=this.fragments;return this.treeLen>=h&&d.length&&d[0].from==0&&d[0].to>=h}static get(){return Dt}}function jt(m,h,d){return kt.i9.applyChanges(m,[{fromA:h,toA:d,fromB:h,toB:d}])}class Xt{constructor(h){this.context=h,this.tree=h.tree}apply(h){if(!h.docChanged&&this.tree==this.context.tree)return this;let d=this.context.changes(h.changes,h.state),w=this.context.treeLen==h.startState.doc.length?void 0:Math.max(h.changes.mapPos(this.context.treeLen),d.viewport.to);return d.work(20,w)||d.takeTree(),new Xt(d)}static init(h){let d=Math.min(3e3,h.doc.length),w=At.create(h.facet(Ae).parser,h,{from:0,to:d});return w.work(20,d)||w.takeTree(),new Xt(w)}}ce.state=re.QQ.define({create:Xt.init,update(m,h){for(let d of h.effects)if(d.is(ce.setState))return d.value;return h.startState.facet(Ae)!=h.state.facet(Ae)?Xt.init(h.state):m.apply(h)}});let Et=m=>{let h=setTimeout(()=>m(),500);return()=>clearTimeout(h)};typeof requestIdleCallback<"u"&&(Et=m=>{let h=-1,d=setTimeout(()=>{h=requestIdleCallback(m,{timeout:500-100})},100);return()=>h<0?clearTimeout(d):cancelIdleCallback(h)});const le=typeof navigator<"u"&&(!((di=navigator.scheduling)===null||di===void 0)&&di.isInputPending)?()=>navigator.scheduling.isInputPending():null,We=Pt.lg.fromClass(class{constructor(h){this.view=h,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(h){let d=this.view.state.field(ce.state).context;(d.updateViewport(h.view.viewport)||this.view.viewport.to>d.treeLen)&&this.scheduleWork(),(h.docChanged||h.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(d)}scheduleWork(){if(this.working)return;let{state:h}=this.view,d=h.field(ce.state);(d.tree!=d.context.tree||!d.context.isDone(h.doc.length))&&(this.working=Et(this.work))}work(h){this.working=null;let d=Date.now();if(this.chunkEnd<d&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=d+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:w,viewport:{to:C}}=this.view,F=w.field(ce.state);if(F.tree==F.context.tree&&F.context.isDone(C+1e5))return;let H=Date.now()+Math.min(this.chunkBudget,100,h&&!le?Math.max(25,h.timeRemaining()-5):1e9),tt=F.context.treeLen<C&&w.doc.length>C+1e3,it=F.context.work(()=>le&&le()||Date.now()>H,C+(tt?0:1e5));this.chunkBudget-=Date.now()-d,(it||this.chunkBudget<=0)&&(F.context.takeTree(),this.view.dispatch({effects:ce.setState.of(new Xt(F.context))})),this.chunkBudget>0&&!(it&&!tt)&&this.scheduleWork(),this.checkAsyncSchedule(F.context)}checkAsyncSchedule(h){h.scheduleOn&&(this.workScheduled++,h.scheduleOn.then(()=>this.scheduleWork()).catch(d=>(0,Pt.OO)(this.view.state,d)).then(()=>this.workScheduled--),h.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),Ae=re.r$.define({combine(m){return m.length?m[0]:null},enables:m=>[ce.state,We,Pt.tk.contentAttributes.compute([m],h=>{let d=h.facet(m);return d&&d.name?{"data-language":d.name}:{}})]});class yt{constructor(h,d=[]){this.language=h,this.support=d,this.extension=[h,d]}}class He{constructor(h,d,w,C,F,H=void 0){this.name=h,this.alias=d,this.extensions=w,this.filename=C,this.loadFunc=F,this.support=H,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then(h=>this.support=h,h=>{throw this.loading=null,h}))}static of(h){let{load:d,support:w}=h;if(!d){if(!w)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");d=()=>Promise.resolve(w)}return new He(h.name,(h.alias||[]).concat(h.name).map(C=>C.toLowerCase()),h.extensions||[],h.filename,d,w)}static matchFilename(h,d){for(let C of h)if(C.filename&&C.filename.test(d))return C;let w=/\.([^.]+)$/.exec(d);if(w){for(let C of h)if(C.extensions.indexOf(w[1])>-1)return C}return null}static matchLanguageName(h,d,w=!0){d=d.toLowerCase();for(let C of h)if(C.alias.some(F=>F==d))return C;if(w)for(let C of h)for(let F of C.alias){let H=d.indexOf(F);if(H>-1&&(F.length>2||!/\w/.test(d[H-1])&&!/\w/.test(d[H+F.length])))return C}return null}}const Ne=null,G=re.r$.define({combine:m=>{if(!m.length)return" ";let h=m[0];if(!h||/\S/.test(h)||Array.from(h).some(d=>d!=h[0]))throw new Error("Invalid indent unit: "+JSON.stringify(m[0]));return h}});function q(m){let h=m.facet(G);return h.charCodeAt(0)==9?m.tabSize*h.length:h.length}function lt(m,h){let d="",w=m.tabSize,C=m.facet(G)[0];if(C==" "){for(;h>=w;)d+=" ",h-=w;C=" "}for(let F=0;F<h;F++)d+=C;return d}function rt(m,h){m instanceof EditorState&&(m=new Ot(m));for(let w of m.state.facet(Ne)){let C=w(m,h);if(C!==void 0)return C}let d=Te(m.state);return d.length>=h?Wt(m,d,h):null}function bt(m,h,d){let w=Object.create(null),C=new Ot(m,{overrideIndentation:H=>{var tt;return(tt=w[H])!==null&&tt!==void 0?tt:-1}}),F=[];for(let H=h;H<=d;){let tt=m.doc.lineAt(H);H=tt.to+1;let it=rt(C,tt.from);if(it==null)continue;/\S/.test(tt.text)||(it=0);let Tt=/^\s*/.exec(tt.text)[0],Ft=lt(m,it);Tt!=Ft&&(w[tt.from]=it,F.push({from:tt.from,to:tt.from+Tt.length,insert:Ft}))}return m.changes(F)}class Ot{constructor(h,d={}){this.state=h,this.options=d,this.unit=q(h)}lineAt(h,d=1){let w=this.state.doc.lineAt(h),{simulateBreak:C,simulateDoubleBreak:F}=this.options;return C!=null&&C>=w.from&&C<=w.to?F&&C==h?{text:"",from:h}:(d<0?C<h:C<=h)?{text:w.text.slice(C-w.from),from:C}:{text:w.text.slice(0,C-w.from),from:w.from}:w}textAfterPos(h,d=1){if(this.options.simulateDoubleBreak&&h==this.options.simulateBreak)return"";let{text:w,from:C}=this.lineAt(h,d);return w.slice(h-C,Math.min(w.length,h+100-C))}column(h,d=1){let{text:w,from:C}=this.lineAt(h,d),F=this.countColumn(w,h-C),H=this.options.overrideIndentation?this.options.overrideIndentation(C):-1;return H>-1&&(F+=H-this.countColumn(w,w.search(/\S|$/))),F}countColumn(h,d=h.length){return countColumn(h,this.state.tabSize,d)}lineIndent(h,d=1){let{text:w,from:C}=this.lineAt(h,d),F=this.options.overrideIndentation;if(F){let H=F(C);if(H>-1)return H}return this.countColumn(w,w.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const Ht=new kt.md;function Wt(m,h,d){let w=h.resolveStack(d),C=h.resolveInner(d,-1).resolve(d,0).enterUnfinishedNodesBefore(d);if(C!=w.node){let F=[];for(let H=C;H&&!(H.from<w.node.from||H.to>w.node.to||H.from==w.node.from&&H.type==w.node.type);H=H.parent)F.push(H);for(let H=F.length-1;H>=0;H--)w={node:F[H],next:w}}return ae(w,m,d)}function ae(m,h,d){for(let w=m;w;w=w.next){let C=qt(w.node);if(C)return C(ge.create(h,d,w))}return 0}function ue(m){return m.pos==m.options.simulateBreak&&m.options.simulateDoubleBreak}function qt(m){let h=m.type.prop(Ht);if(h)return h;let d=m.firstChild,w;if(d&&(w=d.type.prop(NodeProp.closedBy))){let C=m.lastChild,F=C&&w.indexOf(C.name)>-1;return H=>Kt(H,!0,1,void 0,F&&!ue(H)?C.from:void 0)}return m.parent==null?oe:null}function oe(){return 0}class ge extends null{constructor(h,d,w){super(h.state,h.options),this.base=h,this.pos=d,this.context=w}get node(){return this.context.node}static create(h,d,w){return new ge(h,d,w)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(h){let d=this.state.doc.lineAt(h.from);for(;;){let w=h.resolve(d.from);for(;w.parent&&w.parent.from==w.from;)w=w.parent;if(be(w,h))break;d=this.state.doc.lineAt(w.from)}return this.lineIndent(d.from)}continue(){return ae(this.context.next,this.base,this.pos)}}function be(m,h){for(let d=h;d;d=d.parent)if(m==d)return!0;return!1}function si(m){let h=m.node,d=h.childAfter(h.from),w=h.lastChild;if(!d)return null;let C=m.options.simulateBreak,F=m.state.doc.lineAt(d.from),H=C==null||C<=F.from?F.to:Math.min(F.to,C);for(let tt=d.to;;){let it=h.childAfter(tt);if(!it||it==w)return null;if(!it.type.isSkipped){if(it.from>=H)return null;let Tt=/^ */.exec(F.text.slice(d.to-F.from))[0].length;return{from:d.from,to:d.to+Tt}}tt=it.to}}function Gt({closing:m,align:h=!0,units:d=1}){return w=>Kt(w,h,d,m)}function Kt(m,h,d,w,C){let F=m.textAfter,H=F.match(/^\s*/)[0].length,tt=w&&F.slice(H,H+w.length)==w||C==m.pos+H,it=h?si(m):null;return it?tt?m.column(it.from):m.column(it.to):m.baseIndent+(tt?0:m.unit*d)}const ci=m=>m.baseIndent;function li({except:m,units:h=1}={}){return d=>{let w=m&&m.test(d.textAfter);return d.baseIndent+(w?0:h*d.unit)}}const Ge=200;function pi(){return EditorState.transactionFilter.of(m=>{if(!m.docChanged||!m.isUserEvent("input.type")&&!m.isUserEvent("input.complete"))return m;let h=m.startState.languageDataAt("indentOnInput",m.startState.selection.main.head);if(!h.length)return m;let d=m.newDoc,{head:w}=m.newSelection.main,C=d.lineAt(w);if(w>C.from+Ge)return m;let F=d.sliceString(C.from,w);if(!h.some(Tt=>Tt.test(F)))return m;let{state:H}=m,tt=-1,it=[];for(let{head:Tt}of H.selection.ranges){let Ft=H.doc.lineAt(Tt);if(Ft.from==tt)continue;tt=Ft.from;let pe=rt(H,Ft.from);if(pe==null)continue;let ei=/^\s*/.exec(Ft.text)[0],Re=lt(H,pe);ei!=Re&&it.push({from:Ft.from,to:Ft.from+ei.length,insert:Re})}return it.length?[m,{changes:it,sequential:!0}]:m})}const Li=re.r$.define(),V=new kt.md;function D(m){let h=m.firstChild,d=m.lastChild;return h&&h.to<d.from?{from:h.to,to:d.type.isError?m.to:d.from}:null}function $(m,h,d){let w=Te(m);if(w.length<d)return null;let C=w.resolveStack(d,1),F=null;for(let H=C;H;H=H.next){let tt=H.node;if(tt.to<=d||tt.from>d)continue;if(F&&tt.from<h)break;let it=tt.type.prop(V);if(it&&(tt.to<w.length-50||w.length==m.doc.length||!z(tt))){let Tt=it(tt,m);Tt&&Tt.from<=d&&Tt.from>=h&&Tt.to>d&&(F=Tt)}}return F}function z(m){let h=m.lastChild;return h&&h.to==m.to&&h.type.isError}function U(m,h,d){for(let w of m.facet(Li)){let C=w(m,h,d);if(C)return C}return $(m,h,d)}function ht(m,h){let d=h.mapPos(m.from,1),w=h.mapPos(m.to,-1);return d>=w?void 0:{from:d,to:w}}const St=re.Py.define({map:ht}),wt=re.Py.define({map:ht});function It(m){let h=[];for(let{head:d}of m.state.selection.ranges)h.some(w=>w.from<=d&&w.to>=d)||h.push(m.lineBlockAt(d));return h}const Qt=re.QQ.define({create(){return Pt.p.none},update(m,h){h.isUserEvent("delete")&&h.changes.iterChangedRanges((d,w)=>m=$e(m,d,w)),m=m.map(h.changes);for(let d of h.effects)if(d.is(St)&&!mi(m,d.value.from,d.value.to)){let{preparePlaceholder:w}=h.state.facet(L),C=w?Pt.p.replace({widget:new y(w(h.state,d.value))}):u;m=m.update({add:[C.range(d.value.from,d.value.to)]})}else d.is(wt)&&(m=m.update({filter:(w,C)=>d.value.from!=w||d.value.to!=C,filterFrom:d.value.from,filterTo:d.value.to}));return h.selection&&(m=$e(m,h.selection.main.head)),m},provide:m=>Pt.tk.decorations.from(m),toJSON(m,h){let d=[];return m.between(0,h.doc.length,(w,C)=>{d.push(w,C)}),d},fromJSON(m){if(!Array.isArray(m)||m.length%2)throw new RangeError("Invalid JSON for fold state");let h=[];for(let d=0;d<m.length;){let w=m[d++],C=m[d++];if(typeof w!="number"||typeof C!="number")throw new RangeError("Invalid JSON for fold state");h.push(u.range(w,C))}return Pt.p.set(h,!0)}});function $e(m,h,d=h){let w=!1;return m.between(h,d,(C,F)=>{C<d&&F>h&&(w=!0)}),w?m.update({filterFrom:h,filterTo:d,filter:(C,F)=>C>=d||F<=h}):m}function Ke(m){return m.field(Qt,!1)||RangeSet.empty}function Qe(m,h,d){var w;let C=null;return(w=m.field(Qt,!1))===null||w===void 0||w.between(h,d,(F,H)=>{(!C||C.from>F)&&(C={from:F,to:H})}),C}function mi(m,h,d){let w=!1;return m.between(h,h,(C,F)=>{C==h&&F==d&&(w=!0)}),w}function Ee(m,h){return m.field(Qt,!1)?h:h.concat(re.Py.appendConfig.of(o()))}const Ze=m=>{for(let h of It(m)){let d=U(m.state,h.from,h.to);if(d)return m.dispatch({effects:Ee(m.state,[St.of(d),fi(m,d)])}),!0}return!1},gi=m=>{if(!m.state.field(Qt,!1))return!1;let h=[];for(let d of It(m)){let w=Qe(m.state,d.from,d.to);w&&h.push(wt.of(w),fi(m,w,!1))}return h.length&&m.dispatch({effects:h}),h.length>0};function fi(m,h,d=!0){let w=m.state.doc.lineAt(h.from).number,C=m.state.doc.lineAt(h.to).number;return Pt.tk.announce.of(`${m.state.phrase(d?"Folded lines":"Unfolded lines")} ${w} ${m.state.phrase("to")} ${C}.`)}const Ii=m=>{let{state:h}=m,d=[];for(let w=0;w<h.doc.length;){let C=m.lineBlockAt(w),F=U(h,C.from,C.to);F&&d.push(St.of(F)),w=(F?m.lineBlockAt(F.to):C).to+1}return d.length&&m.dispatch({effects:Ee(m.state,d)}),!!d.length},ye=m=>{let h=m.state.field(Qt,!1);if(!h||!h.size)return!1;let d=[];return h.between(0,m.state.doc.length,(w,C)=>{d.push(wt.of({from:w,to:C}))}),m.dispatch({effects:d}),!0};function Ri(m,h){for(let d=h;;){let w=U(m.state,d.from,d.to);if(w&&w.to>h.from)return w;if(!d.from)return null;d=m.lineBlockAt(d.from-1)}}const zi=m=>{let h=[];for(let d of It(m)){let w=Qe(m.state,d.from,d.to);if(w)h.push(wt.of(w),fi(m,w,!1));else{let C=Ri(m,d);C&&h.push(St.of(C),fi(m,C))}}return h.length>0&&m.dispatch({effects:Ee(m.state,h)}),!!h.length},Ui=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:Ze},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:gi},{key:"Ctrl-Alt-[",run:Ii},{key:"Ctrl-Alt-]",run:ye}],Ni={placeholderDOM:null,preparePlaceholder:null,placeholderText:"\u2026"},L=re.r$.define({combine(m){return(0,re.BO)(m,Ni)}});function o(m){let h=[Qt,J];return m&&h.push(L.of(m)),h}function a(m,h){let{state:d}=m,w=d.facet(L),C=H=>{let tt=m.lineBlockAt(m.posAtDOM(H.target)),it=Qe(m.state,tt.from,tt.to);it&&m.dispatch({effects:wt.of(it)}),H.preventDefault()};if(w.placeholderDOM)return w.placeholderDOM(m,C,h);let F=document.createElement("span");return F.textContent=w.placeholderText,F.setAttribute("aria-label",d.phrase("folded code")),F.title=d.phrase("unfold"),F.className="cm-foldPlaceholder",F.onclick=C,F}const u=Pt.p.replace({widget:new class extends Pt.l9{toDOM(m){return a(m,null)}}});class y extends Pt.l9{constructor(h){super(),this.value=h}eq(h){return this.value==h.value}toDOM(h){return a(h,this.value)}}const T={openText:"\u2304",closedText:"\u203A",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class A extends null{constructor(h,d){super(),this.config=h,this.open=d}eq(h){return this.config==h.config&&this.open==h.open}toDOM(h){if(this.config.markerDOM)return this.config.markerDOM(this.open);let d=document.createElement("span");return d.textContent=this.open?this.config.openText:this.config.closedText,d.title=h.state.phrase(this.open?"Fold line":"Unfold line"),d}}function N(m={}){let h={...T,...m},d=new A(h,!0),w=new A(h,!1),C=ViewPlugin.fromClass(class{constructor(H){this.from=H.viewport.from,this.markers=this.buildMarkers(H)}update(H){(H.docChanged||H.viewportChanged||H.startState.facet(Ae)!=H.state.facet(Ae)||H.startState.field(Qt,!1)!=H.state.field(Qt,!1)||Te(H.startState)!=Te(H.state)||h.foldingChanged(H))&&(this.markers=this.buildMarkers(H.view))}buildMarkers(H){let tt=new RangeSetBuilder;for(let it of H.viewportLineBlocks){let Tt=Qe(H.state,it.from,it.to)?w:U(H.state,it.from,it.to)?d:null;Tt&&tt.add(it.from,it.from,Tt)}return tt.finish()}}),{domEventHandlers:F}=h;return[C,gutter({class:"cm-foldGutter",markers(H){var tt;return((tt=H.plugin(C))===null||tt===void 0?void 0:tt.markers)||RangeSet.empty},initialSpacer(){return new A(h,!1)},domEventHandlers:{...F,click:(H,tt,it)=>{if(F.click&&F.click(H,tt,it))return!0;let Tt=Qe(H.state,tt.from,tt.to);if(Tt)return H.dispatch({effects:wt.of(Tt)}),!0;let Ft=U(H.state,tt.from,tt.to);return Ft?(H.dispatch({effects:St.of(Ft)}),!0):!1}}}),o()]}const J=Pt.tk.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class st{constructor(h,d){this.specs=h;let w;function C(tt){let it=Je.V.newName();return(w||(w=Object.create(null)))["."+it]=tt,it}const F=typeof d.all=="string"?d.all:d.all?C(d.all):void 0,H=d.scope;this.scope=H instanceof ce?tt=>tt.prop(Fe)==H.data:H?tt=>tt==H:void 0,this.style=(0,Bt.QR)(h.map(tt=>({tag:tt.tag,class:tt.class||C(Object.assign({},tt,{tag:null}))})),{all:F}).style,this.module=w?new Je.V(w):null,this.themeType=d.themeType}static define(h,d){return new st(h,d||{})}}const mt=re.r$.define(),xt=re.r$.define({combine(m){return m.length?[m[0]]:null}});function Lt(m){let h=m.facet(mt);return h.length?h:m.facet(xt)}function Rt(m,h){let d=[Ve],w;return m instanceof st&&(m.module&&d.push(EditorView.styleModule.of(m.module)),w=m.themeType),h!=null&&h.fallback?d.push(xt.of(m)):w?d.push(mt.computeN([EditorView.darkTheme],C=>C.facet(EditorView.darkTheme)==(w=="dark")?[m]:[])):d.push(mt.of(m)),d}function De(m,h,d){let w=Lt(m),C=null;if(w){for(let F of w)if(!F.scope||d&&F.scope(d)){let H=F.style(h);H&&(C=C?C+" "+H:H)}}return C}class bi{constructor(h){this.markCache=Object.create(null),this.tree=Te(h.state),this.decorations=this.buildDeco(h,Lt(h.state)),this.decoratedTo=h.viewport.to}update(h){let d=Te(h.state),w=Lt(h.state),C=w!=Lt(h.startState),{viewport:F}=h.view,H=h.changes.mapPos(this.decoratedTo,1);d.length<F.to&&!C&&d.type==this.tree.type&&H>=F.to?(this.decorations=this.decorations.map(h.changes),this.decoratedTo=H):(d!=this.tree||h.viewportChanged||C)&&(this.tree=d,this.decorations=this.buildDeco(h.view,w),this.decoratedTo=F.to)}buildDeco(h,d){if(!d||!this.tree.length)return Pt.p.none;let w=new re.f_;for(let{from:C,to:F}of h.visibleRanges)(0,Bt.bW)(this.tree,d,(H,tt,it)=>{w.add(H,tt,this.markCache[it]||(this.markCache[it]=Pt.p.mark({class:it})))},C,F);return w.finish()}}const Ve=re.Wl.high(Pt.lg.fromClass(bi,{decorations:m=>m.decorations})),Vi=st.define([{tag:Bt.pJ.meta,color:"#404740"},{tag:Bt.pJ.link,textDecoration:"underline"},{tag:Bt.pJ.heading,textDecoration:"underline",fontWeight:"bold"},{tag:Bt.pJ.emphasis,fontStyle:"italic"},{tag:Bt.pJ.strong,fontWeight:"bold"},{tag:Bt.pJ.strikethrough,textDecoration:"line-through"},{tag:Bt.pJ.keyword,color:"#708"},{tag:[Bt.pJ.atom,Bt.pJ.bool,Bt.pJ.url,Bt.pJ.contentSeparator,Bt.pJ.labelName],color:"#219"},{tag:[Bt.pJ.literal,Bt.pJ.inserted],color:"#164"},{tag:[Bt.pJ.string,Bt.pJ.deleted],color:"#a11"},{tag:[Bt.pJ.regexp,Bt.pJ.escape,Bt.pJ.special(Bt.pJ.string)],color:"#e40"},{tag:Bt.pJ.definition(Bt.pJ.variableName),color:"#00f"},{tag:Bt.pJ.local(Bt.pJ.variableName),color:"#30a"},{tag:[Bt.pJ.typeName,Bt.pJ.namespace],color:"#085"},{tag:Bt.pJ.className,color:"#167"},{tag:[Bt.pJ.special(Bt.pJ.variableName),Bt.pJ.macroName],color:"#256"},{tag:Bt.pJ.definition(Bt.pJ.propertyName),color:"#00c"},{tag:Bt.pJ.comment,color:"#940"},{tag:Bt.pJ.invalid,color:"#f00"}]),Fi=Pt.tk.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),Wi=1e4,Xi="()[]{}",M=re.r$.define({combine(m){return(0,re.BO)(m,{afterCursor:!0,brackets:Xi,maxScanDistance:Wi,renderMatch:E})}}),g=Pt.p.mark({class:"cm-matchingBracket"}),x=Pt.p.mark({class:"cm-nonmatchingBracket"});function E(m){let h=[],d=m.matched?g:x;return h.push(d.range(m.start.from,m.start.to)),m.end&&h.push(d.range(m.end.from,m.end.to)),h}const _=[re.QQ.define({create(){return Pt.p.none},update(m,h){if(!h.docChanged&&!h.selection)return m;let d=[],w=h.state.facet(M);for(let C of h.state.selection.ranges){if(!C.empty)continue;let F=gt(h.state,C.head,-1,w)||C.head>0&>(h.state,C.head-1,1,w)||w.afterCursor&&(gt(h.state,C.head,1,w)||C.head<h.state.doc.length&>(h.state,C.head+1,-1,w));F&&(d=d.concat(w.renderMatch(F,h.state)))}return Pt.p.set(d,!0)},provide:m=>Pt.tk.decorations.from(m)}),Fi];function Y(m={}){return[M.of(m),_]}const ot=new kt.md;function nt(m,h,d){let w=m.prop(h<0?kt.md.openedBy:kt.md.closedBy);if(w)return w;if(m.name.length==1){let C=d.indexOf(m.name);if(C>-1&&C%2==(h<0?1:0))return[d[C+h]]}return null}function vt(m){let h=m.type.prop(ot);return h?h(m.node):m}function gt(m,h,d,w={}){let C=w.maxScanDistance||Wi,F=w.brackets||Xi,H=Te(m),tt=H.resolveInner(h,d);for(let it=tt;it;it=it.parent){let Tt=nt(it.type,d,F);if(Tt&&it.from<it.to){let Ft=vt(it);if(Ft&&(d>0?h>=Ft.from&&h<Ft.to:h>Ft.from&&h<=Ft.to))return Nt(m,h,d,it,Ft,Tt,F)}}return he(m,h,d,H,tt.type,C,F)}function Nt(m,h,d,w,C,F,H){let tt=w.parent,it={from:C.from,to:C.to},Tt=0,Ft=tt==null?void 0:tt.cursor();if(Ft&&(d<0?Ft.childBefore(w.from):Ft.childAfter(w.to)))do if(d<0?Ft.to<=w.from:Ft.from>=w.to){if(Tt==0&&F.indexOf(Ft.type.name)>-1&&Ft.from<Ft.to){let pe=vt(Ft);return{start:it,end:pe?{from:pe.from,to:pe.to}:void 0,matched:!0}}else if(nt(Ft.type,d,H))Tt++;else if(nt(Ft.type,-d,H)){if(Tt==0){let pe=vt(Ft);return{start:it,end:pe&&pe.from<pe.to?{from:pe.from,to:pe.to}:void 0,matched:!1}}Tt--}}while(d<0?Ft.prevSibling():Ft.nextSibling());return{start:it,matched:!1}}function he(m,h,d,w,C,F,H){let tt=d<0?m.sliceDoc(h-1,h):m.sliceDoc(h,h+1),it=H.indexOf(tt);if(it<0||it%2==0!=d>0)return null;let Tt={from:d<0?h-1:h,to:d>0?h+1:h},Ft=m.doc.iterRange(h,d>0?m.doc.length:0),pe=0;for(let ei=0;!Ft.next().done&&ei<=F;){let Re=Ft.value;d<0&&(ei+=Re.length);let Ci=h+ei*d;for(let Oi=d>0?0:Re.length-1,$i=d>0?Re.length:-1;Oi!=$i;Oi+=d){let qi=H.indexOf(Re[Oi]);if(!(qi<0||w.resolveInner(Ci+Oi,1).type!=C))if(qi%2==0==d>0)pe++;else{if(pe==1)return{start:Tt,end:{from:Ci+Oi,to:Ci+Oi+1},matched:qi>>1==it>>1};pe--}}d>0&&(ei+=Re.length)}return Ft.done?{start:Tt,matched:!1}:null}function Se(m,h,d,w=0,C=0){h==null&&(h=m.search(/[^\s\u00a0]/),h==-1&&(h=m.length));let F=C;for(let H=w;H<h;H++)m.charCodeAt(H)==9?F+=d-F%d:F++;return F}class je{constructor(h,d,w,C){this.string=h,this.tabSize=d,this.indentUnit=w,this.overrideIndent=C,this.pos=0,this.start=0,this.lastColumnPos=0,this.lastColumnValue=0}eol(){return this.pos>=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)}eat(h){let d=this.string.charAt(this.pos),w;if(typeof h=="string"?w=d==h:w=d&&(h instanceof RegExp?h.test(d):h(d)),w)return++this.pos,d}eatWhile(h){let d=this.pos;for(;this.eat(h););return this.pos>d}eatSpace(){let h=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>h}skipToEnd(){this.pos=this.string.length}skipTo(h){let d=this.string.indexOf(h,this.pos);if(d>-1)return this.pos=d,!0}backUp(h){this.pos-=h}column(){return this.lastColumnPos<this.start&&(this.lastColumnValue=Se(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue}indentation(){var h;return(h=this.overrideIndent)!==null&&h!==void 0?h:Se(this.string,null,this.tabSize)}match(h,d,w){if(typeof h=="string"){let C=H=>w?H.toLowerCase():H,F=this.string.substr(this.pos,h.length);return C(F)==C(h)?(d!==!1&&(this.pos+=h.length),!0):null}else{let C=this.string.slice(this.pos).match(h);return C&&C.index>0?null:(C&&d!==!1&&(this.pos+=C[0].length),C)}}current(){return this.string.slice(this.start,this.pos)}}function ti(m){return{name:m.name||"",token:m.token,blankLine:m.blankLine||(()=>{}),startState:m.startState||(()=>!0),copyState:m.copyState||ai,indent:m.indent||(()=>null),languageData:m.languageData||{},tokenTable:m.tokenTable||f,mergeTokens:m.mergeTokens!==!1}}function ai(m){if(typeof m!="object")return m;let h={};for(let d in m){let w=m[d];h[d]=w instanceof Array?w.slice():w}return h}const xi=new WeakMap;class _e extends null{constructor(h){let d=Xe(h.languageData),w=ti(h),C,F=new class extends Parser{createParse(H,tt,it){return new ji(C,H,tt,it)}};super(d,F,[],h.name),this.topNode=Le(d,this),C=this,this.streamParser=w,this.stateAfter=new NodeProp({perNode:!0}),this.tokenTable=h.tokenTable?new ct(w.tokenTable):at}static define(h){return new _e(h)}getIndent(h){let d,{overrideIndentation:w}=h.options;w&&(d=xi.get(h.state),d!=null&&d<h.pos-1e4&&(d=void 0));let C=Pi(this,h.node.tree,h.node.from,h.node.from,d??h.pos),F,H;if(C?(H=C.state,F=C.pos+1):(H=this.streamParser.startState(h.unit),F=h.node.from),h.pos-F>1e4)return null;for(;F<h.pos;){let it=h.state.doc.lineAt(F),Tt=Math.min(h.pos,it.to);if(it.length){let Ft=w?w(it.from):-1,pe=new je(it.text,h.state.tabSize,h.unit,Ft<0?void 0:Ft);for(;pe.pos<Tt-it.from;)S(this.streamParser.token,pe,H)}else this.streamParser.blankLine(H,h.unit);if(Tt==h.pos)break;F=it.to+1}let tt=h.lineAt(h.pos);return w&&d==null&&xi.set(h.state,tt.from),this.streamParser.indent(H,/^\s*(.*)/.exec(tt.text)[1],h)}get allowsNesting(){return!1}}function Pi(m,h,d,w,C){let F=d>=w&&d+h.length<=C&&h.prop(m.stateAfter);if(F)return{state:m.streamParser.copyState(F),pos:d+h.length};for(let H=h.children.length-1;H>=0;H--){let tt=h.children[H],it=d+h.positions[H],Tt=tt instanceof Tree&&it<C&&Pi(m,tt,it,w,C);if(Tt)return Tt}return null}function yi(m,h,d,w,C){if(C&&d<=0&&w>=h.length)return h;!C&&d==0&&h.type==m.topNode&&(C=!0);for(let F=h.children.length-1;F>=0;F--){let H=h.positions[F],tt=h.children[F],it;if(H<w&&tt instanceof Tree){if(!(it=yi(m,tt,d-H,w-H,C)))break;return C?new Tree(h.type,h.children.slice(0,F).concat(it),h.positions.slice(0,F+1),H+it.length):it}}return null}function ui(m,h,d,w,C){for(let F of h){let H=F.from+(F.openStart?25:0),tt=F.to-(F.openEnd?25:0),it=H<=d&&tt>d&&Pi(m,F.tree,0-F.offset,d,tt),Tt;if(it&&it.pos<=w&&(Tt=yi(m,F.tree,d+F.offset,it.pos+F.offset,!1)))return{state:it.state,tree:Tt}}return{state:m.streamParser.startState(C?q(C):4),tree:Tree.empty}}class ji{constructor(h,d,w,C){this.lang=h,this.input=d,this.fragments=w,this.ranges=C,this.stoppedAt=null,this.chunks=[],this.chunkPos=[],this.chunk=[],this.chunkReused=void 0,this.rangeIndex=0,this.to=C[C.length-1].to;let F=At.get(),H=C[0].from,{state:tt,tree:it}=ui(h,w,H,this.to,F==null?void 0:F.state);this.state=tt,this.parsedPos=this.chunkStart=H+it.length;for(let Tt=0;Tt<it.children.length;Tt++)this.chunks.push(it.children[Tt]),this.chunkPos.push(it.positions[Tt]);F&&this.parsedPos<F.viewport.from-1e5&&C.some(Tt=>Tt.from<=F.viewport.from&&Tt.to>=F.viewport.from)&&(this.state=this.lang.streamParser.startState(q(F.state)),F.skipUntilInView(this.parsedPos,F.viewport.from),this.parsedPos=F.viewport.from),this.moveRangeIndex()}advance(){let h=At.get(),d=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt),w=Math.min(d,this.chunkStart+512);for(h&&(w=Math.min(w,h.viewport.to));this.parsedPos<w;)this.parseLine(h);return this.chunkStart<this.parsedPos&&this.finishChunk(),this.parsedPos>=d?this.finish():h&&this.parsedPos>=h.viewport.to?(h.skipUntilInView(this.parsedPos,d),this.finish()):null}stopAt(h){this.stoppedAt=h}lineAfter(h){let d=this.input.chunk(h);if(this.input.lineChunks)d==`
|
|
2
|
+
`&&(d="");else{let w=d.indexOf(`
|
|
3
|
+
`);w>-1&&(d=d.slice(0,w))}return h+d.length<=this.to?d:d.slice(0,this.to-h)}nextLine(){let h=this.parsedPos,d=this.lineAfter(h),w=h+d.length;for(let C=this.rangeIndex;;){let F=this.ranges[C].to;if(F>=w||(d=d.slice(0,F-(w-d.length)),C++,C==this.ranges.length))break;let H=this.ranges[C].from,tt=this.lineAfter(H);d+=tt,w=H+tt.length}return{line:d,end:w}}skipGapsTo(h,d,w){for(;;){let C=this.ranges[this.rangeIndex].to,F=h+d;if(w>0?C>F:C>=F)break;let H=this.ranges[++this.rangeIndex].from;d+=H-C}return d}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to<this.parsedPos;)this.rangeIndex++}emitToken(h,d,w,C){let F=4;if(this.ranges.length>1){C=this.skipGapsTo(d,C,1),d+=C;let tt=this.chunk.length;C=this.skipGapsTo(w,C,-1),w+=C,F+=this.chunk.length-tt}let H=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&F==4&&H>=0&&this.chunk[H]==h&&this.chunk[H+2]==d?this.chunk[H+2]=w:this.chunk.push(h,d,w,F),C}parseLine(h){let{line:d,end:w}=this.nextLine(),C=0,{streamParser:F}=this.lang,H=new je(d,h?h.state.tabSize:4,h?q(h.state):2);if(H.eol())F.blankLine(this.state,H.indentUnit);else for(;!H.eol();){let tt=S(F.token,H,this.state);if(tt&&(C=this.emitToken(this.lang.tokenTable.resolve(tt),this.parsedPos+H.start,this.parsedPos+H.pos,C)),H.start>1e4)break}this.parsedPos=w,this.moveRangeIndex(),this.parsedPos<this.to&&this.parsedPos++}finishChunk(){let h=Tree.build({buffer:this.chunk,start:this.chunkStart,length:this.parsedPos-this.chunkStart,nodeSet:O,topID:0,maxBufferLength:512,reused:this.chunkReused});h=new Tree(h.type,h.children,h.positions,h.length,[[this.lang.stateAfter,this.lang.streamParser.copyState(this.state)]]),this.chunks.push(h),this.chunkPos.push(this.chunkStart-this.ranges[0].from),this.chunk=[],this.chunkReused=void 0,this.chunkStart=this.parsedPos}finish(){return new Tree(this.lang.topNode,this.chunks,this.chunkPos,this.parsedPos-this.ranges[0].from).balance()}}function S(m,h,d){h.start=h.pos;for(let w=0;w<10;w++){let C=m(h,d);if(h.pos>h.start)return C}throw new Error("Stream parser failed to advance stream.")}const f=Object.create(null),b=[kt.Jq.none],O=new kt.Lj(b),I=[],j=Object.create(null),K=Object.create(null);for(let[m,h]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])K[m]=Vt(f,h);class ct{constructor(h){this.extra=h,this.table=Object.assign(Object.create(null),K)}resolve(h){return h?this.table[h]||(this.table[h]=Vt(this.extra,h)):0}}const at=new ct(f);function Mt(m,h){I.indexOf(m)>-1||(I.push(m),console.warn(h))}function Vt(m,h){let d=[];for(let tt of h.split(" ")){let it=[];for(let Tt of tt.split(".")){let Ft=m[Tt]||Bt.pJ[Tt];Ft?typeof Ft=="function"?it.length?it=it.map(Ft):Mt(Tt,`Modifier ${Tt} used at start of tag`):it.length?Mt(Tt,`Tag ${Tt} used as modifier`):it=Array.isArray(Ft)?Ft:[Ft]:Mt(Tt,`Unknown highlighting tag ${Tt}`)}for(let Tt of it)d.push(Tt)}if(!d.length)return 0;let w=h.replace(/ /g,"_"),C=w+" "+d.map(tt=>tt.id),F=j[C];if(F)return F.id;let H=j[C]=kt.Jq.define({id:b.length,name:w,props:[(0,Bt.Gv)({[w]:d})]});return b.push(H),H.id}function Le(m,h){let d=NodeType.define({id:b.length,name:"Document",props:[Fe.add(()=>m),Ht.add(()=>w=>h.getIndent(w))],top:!0});return b.push(d),d}function ki(m){return m.length<=4096&&/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/.test(m)}function wi(m){for(let h=m.iter();!h.next().done;)if(ki(h.value))return!0;return!1}function _i(m){let h=!1;return m.iterChanges((d,w,C,F,H)=>{!h&&wi(H)&&(h=!0)}),h}const Hi=re.r$.define({combine:m=>m.some(h=>h)});function mn(m={}){let h=[ln];return m.alwaysIsolate&&h.push(Hi.of(!0)),h}const ln=Pt.lg.fromClass(class{constructor(m){this.always=m.state.facet(Hi)||m.textDirection!=Pt.Nm.LTR||m.state.facet(Pt.tk.perLineTextDirection),this.hasRTL=!this.always&&wi(m.state.doc),this.tree=Te(m.state),this.decorations=this.always||this.hasRTL?xn(m,this.tree,this.always):Pt.p.none}update(m){let h=m.state.facet(Hi)||m.view.textDirection!=Pt.Nm.LTR||m.state.facet(Pt.tk.perLineTextDirection);if(!h&&!this.hasRTL&&_i(m.changes)&&(this.hasRTL=!0),!h&&!this.hasRTL)return;let d=Te(m.state);(h!=this.always||d!=this.tree||m.docChanged||m.viewportChanged)&&(this.tree=d,this.always=h,this.decorations=xn(m.view,d,h))}},{provide:m=>{function h(d){var w,C;return(C=(w=d.plugin(m))===null||w===void 0?void 0:w.decorations)!==null&&C!==void 0?C:Pt.p.none}return[Pt.tk.outerDecorations.of(h),re.Wl.lowest(Pt.tk.bidiIsolatedRanges.of(h))]}});function xn(m,h,d){let w=new re.f_,C=m.visibleRanges;d||(C=as(C,m.state.doc));for(let{from:F,to:H}of C)h.iterate({enter:tt=>{let it=tt.type.prop(kt.md.isolate);it&&w.add(tt.from,tt.to,hs[it])},from:F,to:H});return w.finish()}function as(m,h){let d=h.iter(),w=0,C=[],F=null;for(let{from:H,to:tt}of m)if(!(F&&F.to>H&&(H=F.to,H>=tt)))for(w+d.value.length<H&&(d.next(H-(w+d.value.length)),w=H);;){let it=w,Tt=w+d.value.length;if(!d.lineBreak&&ki(d.value)&&(F&&F.to>it-10?F.to=Math.min(tt,Tt):C.push(F={from:it,to:Math.min(tt,Tt)})),Tt>=tt)break;w=Tt,d.next()}return C}const hs={rtl:Pt.p.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:Pt.Nm.RTL}),ltr:Pt.p.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:Pt.Nm.LTR}),auto:Pt.p.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})},Ji=["_blank","_self","_top","_parent"],an=["ascii","utf-8","utf-16","latin1","latin1"],Gi=["get","post","put","delete"],kn=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],Di=["true","false"],zt={},cs={a:{attrs:{href:null,ping:null,type:null,media:null,target:Ji,hreflang:null}},abbr:zt,address:zt,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:zt,aside:zt,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:zt,base:{attrs:{href:null,target:Ji}},bdi:zt,bdo:zt,blockquote:{attrs:{cite:null}},body:zt,br:zt,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:kn,formmethod:Gi,formnovalidate:["novalidate"],formtarget:Ji,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:zt,center:zt,cite:zt,code:zt,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:zt,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:zt,div:zt,dl:zt,dt:zt,em:zt,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:zt,figure:zt,footer:zt,form:{attrs:{action:null,name:null,"accept-charset":an,autocomplete:["on","off"],enctype:kn,method:Gi,novalidate:["novalidate"],target:Ji}},h1:zt,h2:zt,h3:zt,h4:zt,h5:zt,h6:zt,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:zt,hgroup:zt,hr:zt,html:{attrs:{manifest:null}},i:zt,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:kn,formmethod:Gi,formnovalidate:["novalidate"],formtarget:Ji,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:zt,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:zt,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:zt,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:an,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:zt,noscript:zt,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:zt,param:{attrs:{name:null,value:null}},pre:zt,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:zt,rt:zt,ruby:zt,samp:zt,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:an}},section:zt,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:zt,source:{attrs:{src:null,type:null,media:null}},span:zt,strong:zt,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:zt,summary:zt,sup:zt,table:zt,tbody:zt,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:zt,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:zt,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:zt,time:{attrs:{datetime:null}},title:zt,tr:zt,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:zt,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:zt},Sn={accesskey:null,class:null,contenteditable:Di,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:Di,autocorrect:Di,autocapitalize:Di,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":Di,"aria-autocomplete":["inline","list","both","none"],"aria-busy":Di,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":Di,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":Di,"aria-hidden":Di,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":Di,"aria-multiselectable":Di,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":Di,"aria-relevant":null,"aria-required":Di,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},gn="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(m=>"on"+m);for(let m of gn)Sn[m]=null;class hn{constructor(h,d){this.tags={...cs,...h},this.globalAttrs={...Sn,...d},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}hn.default=new hn;function en(m,h,d=m.length){if(!h)return"";let w=h.firstChild,C=w&&w.getChild("TagName");return C?m.sliceString(C.from,Math.min(C.to,d)):""}function nn(m,h=!1){for(;m;m=m.parent)if(m.name=="Element")if(h)h=!1;else return m;return null}function In(m,h,d){let w=d.tags[en(m,nn(h))];return(w==null?void 0:w.children)||d.allTags}function Cn(m,h){let d=[];for(let w=nn(h);w&&!w.type.isTop;w=nn(w.parent)){let C=en(m,w);if(C&&w.lastChild.name=="CloseTag")break;C&&d.indexOf(C)<0&&(h.name=="EndTag"||h.from>=w.firstChild.to)&&d.push(C)}return d}const Tn=/^[:\-\.\w\u00b7-\uffff]*$/;function Nn(m,h,d,w,C){let F=/\s*>/.test(m.sliceDoc(C,C+5))?"":">",H=nn(d,!0);return{from:w,to:C,options:In(m.doc,H,h).map(tt=>({label:tt,type:"type"})).concat(Cn(m.doc,d).map((tt,it)=>({label:"/"+tt,apply:"/"+tt+F,type:"type",boost:99-it}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function An(m,h,d,w){let C=/\s*>/.test(m.sliceDoc(w,w+5))?"":">";return{from:d,to:w,options:Cn(m.doc,h).map((F,H)=>({label:F,apply:F+C,type:"type",boost:99-H})),validFor:Tn}}function fs(m,h,d,w){let C=[],F=0;for(let H of In(m.doc,d,h))C.push({label:"<"+H,type:"type"});for(let H of Cn(m.doc,d))C.push({label:"</"+H+">",type:"type",boost:99-F++});return{from:w,to:w,options:C,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function Fn(m,h,d,w,C){let F=nn(d),H=F?h.tags[en(m.doc,F)]:null,tt=H&&H.attrs?Object.keys(H.attrs):[],it=H&&H.globalAttrs===!1?tt:tt.length?tt.concat(h.globalAttrNames):h.globalAttrNames;return{from:w,to:C,options:it.map(Tt=>({label:Tt,type:"property"})),validFor:Tn}}function bn(m,h,d,w,C){var F;let H=(F=d.parent)===null||F===void 0?void 0:F.getChild("AttributeName"),tt=[],it;if(H){let Tt=m.sliceDoc(H.from,H.to),Ft=h.globalAttrs[Tt];if(!Ft){let pe=nn(d),ei=pe?h.tags[en(m.doc,pe)]:null;Ft=(ei==null?void 0:ei.attrs)&&ei.attrs[Tt]}if(Ft){let pe=m.sliceDoc(w,C).toLowerCase(),ei='"',Re='"';/^['"]/.test(pe)?(it=pe[0]=='"'?/^[^"]*$/:/^[^']*$/,ei="",Re=m.sliceDoc(C,C+1)==pe[0]?"":pe[0],pe=pe.slice(1),w++):it=/^[^\s<>='"]*$/;for(let Ci of Ft)tt.push({label:Ci,apply:ei+Ci+Re,type:"constant"})}}return{from:w,to:C,options:tt,validFor:it}}function cn(m,h){let{state:d,pos:w}=h,C=Te(d).resolveInner(w,-1),F=C.resolve(w);for(let H=w,tt;F==C&&(tt=C.childBefore(H));){let it=tt.lastChild;if(!it||!it.type.isError||it.from<it.to)break;F=C=tt,H=it.from}return C.name=="TagName"?C.parent&&/CloseTag$/.test(C.parent.name)?An(d,C,C.from,w):Nn(d,m,C,C.from,w):C.name=="StartTag"?Nn(d,m,C,w,w):C.name=="StartCloseTag"||C.name=="IncompleteCloseTag"?An(d,C,w,w):C.name=="OpenTag"||C.name=="SelfClosingTag"||C.name=="AttributeName"?Fn(d,m,C,C.name=="AttributeName"?C.from:w,w):C.name=="Is"||C.name=="AttributeValue"||C.name=="UnquotedAttributeValue"?bn(d,m,C,C.name=="Is"?w:C.from,w):h.explicit&&(F.name=="Element"||F.name=="Text"||F.name=="Document")?fs(d,m,C,w):null}function us(m){return cn(hn.default,m)}function ds(m){let{extraTags:h,extraGlobalAttributes:d}=m,w=d||h?new hn(h,d):hn.default;return C=>cn(w,C)}const ps=Jt.Lz.parser.configure({top:"SingleExpression"}),Wn=[{tag:"script",attrs:m=>m.type=="text/typescript"||m.lang=="ts",parser:Jt.ev.parser},{tag:"script",attrs:m=>m.type=="text/babel"||m.type=="text/jsx",parser:Jt.uh.parser},{tag:"script",attrs:m=>m.type=="text/typescript-jsx",parser:Jt._v.parser},{tag:"script",attrs(m){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(m.type)},parser:ps},{tag:"script",attrs(m){return!m.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(m.type)},parser:Jt.Lz.parser},{tag:"style",attrs(m){return(!m.lang||m.lang=="css")&&(!m.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(m.type))},parser:Me.parser}],Hn=[{name:"style",parser:Me.parser.configure({top:"Styles"})}].concat(gn.map(m=>({name:m,parser:Jt.Lz.parser}))),Vn=ve.define({name:"html",parser:P.E.configure({props:[Ht.add({Element(m){let h=/^(\s*)(<\/)?/.exec(m.textAfter);return m.node.to<=m.pos+h[0].length?m.continue():m.lineIndent(m.node.from)+(h[2]?0:m.unit)},"OpenTag CloseTag SelfClosingTag"(m){return m.column(m.node.from)+m.unit},Document(m){if(m.pos+/\s*/.exec(m.textAfter)[0].length<m.node.to)return m.continue();let h=null,d;for(let w=m.node;;){let C=w.lastChild;if(!C||C.name!="Element"||C.to!=w.to)break;h=w=C}return h&&!((d=h.lastChild)&&(d.name=="CloseTag"||d.name=="SelfClosingTag"))?m.lineIndent(h.from)+m.unit:null}}),V.add({Element(m){let h=m.firstChild,d=m.lastChild;return!h||h.name!="OpenTag"?null:{from:h.to,to:d.name=="CloseTag"?d.from:m.to}}}),ot.add({"OpenTag CloseTag":m=>m.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"<!--",close:"-->"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),Si=Vn.configure({wrap:(0,P.X)(Wn,Hn)});function Ei(m={}){let h="",d;m.matchClosingTags===!1&&(h="noMatch"),m.selfClosingTags===!0&&(h=(h?h+" ":"")+"selfClosing"),(m.nestedLanguages&&m.nestedLanguages.length||m.nestedAttributes&&m.nestedAttributes.length)&&(d=(0,P.X)((m.nestedLanguages||[]).concat(Wn),(m.nestedAttributes||[]).concat(Hn)));let w=d?Vn.configure({wrap:d,dialect:h}):h?Si.configure({dialect:h}):Si;return new yt(w,[Si.data.of({autocomplete:ds(m)}),m.autoCloseTags!==!1?ms:[],(0,Jt.eJ)().support,de().support])}const Mn=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),ms=Pt.tk.inputHandler.of((m,h,d,w,C)=>{if(m.composing||m.state.readOnly||h!=d||w!=">"&&w!="/"||!Si.isActiveAt(m.state,h,-1))return!1;let F=C(),{state:H}=F,tt=H.changeByRange(it=>{var Tt,Ft,pe;let ei=H.doc.sliceString(it.from-1,it.to)==w,{head:Re}=it,Ci=Te(H).resolveInner(Re,-1),Oi;if(ei&&w==">"&&Ci.name=="EndTag"){let $i=Ci.parent;if(((Ft=(Tt=$i.parent)===null||Tt===void 0?void 0:Tt.lastChild)===null||Ft===void 0?void 0:Ft.name)!="CloseTag"&&(Oi=en(H.doc,$i.parent,Re))&&!Mn.has(Oi)){let qi=Re+(H.doc.sliceString(Re,Re+1)===">"?1:0),fn=`</${Oi}>`;return{range:it,changes:{from:Re,to:qi,insert:fn}}}}else if(ei&&w=="/"&&Ci.name=="IncompleteCloseTag"){let $i=Ci.parent;if(Ci.from==Re-2&&((pe=$i.lastChild)===null||pe===void 0?void 0:pe.name)!="CloseTag"&&(Oi=en(H.doc,$i,Re))&&!Mn.has(Oi)){let qi=Re+(H.doc.sliceString(Re,Re+1)===">"?1:0),fn=`${Oi}>`;return{range:re.jT.cursor(Re+fn.length,-1),changes:{from:Re,to:qi,insert:fn}}}}return{range:it}});return tt.changes.empty?!1:(m.dispatch([F,H.update(tt,{userEvent:"input.complete",scrollIntoView:!0})]),!0)})},13249:function(tn,vi,Zt){Zt.d(vi,{Lz:function(){return Jt},_v:function(){return Je},eJ:function(){return Ut},ev:function(){return re},uh:function(){return Bt}});var P=Zt(43150),Q=Zt(59119),Z=Zt(78120),kt=Zt(47421),se=Zt(34790),Ce=Zt(41113);const ke=[(0,se.Gn)("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),(0,se.Gn)("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),(0,se.Gn)("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),(0,se.Gn)("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),(0,se.Gn)("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),(0,se.Gn)(`try {
|
|
4
|
+
\${}
|
|
5
|
+
} catch (\${error}) {
|
|
6
|
+
\${}
|
|
7
|
+
}`,{label:"try",detail:"/ catch block",type:"keyword"}),(0,se.Gn)("if (${}) {\n ${}\n}",{label:"if",detail:"block",type:"keyword"}),(0,se.Gn)(`if (\${}) {
|
|
8
|
+
\${}
|
|
9
|
+
} else {
|
|
10
|
+
\${}
|
|
11
|
+
}`,{label:"if",detail:"/ else block",type:"keyword"}),(0,se.Gn)(`class \${name} {
|
|
12
|
+
constructor(\${params}) {
|
|
13
|
+
\${}
|
|
14
|
+
}
|
|
15
|
+
}`,{label:"class",detail:"definition",type:"keyword"}),(0,se.Gn)('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),(0,se.Gn)('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],Oe=ke.concat([(0,se.Gn)("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),(0,se.Gn)("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),(0,se.Gn)("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),Pe=new Ce.hr,fe=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function me(ft){return(Ct,Dt)=>{let At=Ct.node.getChild("VariableDefinition");return At&&Dt(At,ft),!0}}const we=["FunctionDeclaration"],_t={FunctionDeclaration:me("function"),ClassDeclaration:me("class"),ClassExpression:()=>!0,EnumDeclaration:me("constant"),TypeAliasDeclaration:me("type"),NamespaceDeclaration:me("namespace"),VariableDefinition(ft,Ct){ft.matchContext(we)||Ct(ft,"variable")},TypeDefinition(ft,Ct){Ct(ft,"type")},__proto__:null};function ri(ft,Ct){let Dt=Pe.get(Ct);if(Dt)return Dt;let At=[],jt=!0;function Xt(Et,le){let We=ft.sliceString(Et.from,Et.to);At.push({label:We,type:le})}return Ct.cursor(Ce.vj.IncludeAnonymous).iterate(Et=>{if(jt)jt=!1;else if(Et.name){let le=_t[Et.name];if(le&&le(Et,Xt)||fe.has(Et.name))return!1}else if(Et.to-Et.from>8192){for(let le of ri(ft,Et.node))At.push(le);return!1}}),Pe.set(Ct,At),At}const ze=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,oi=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function Ye(ft){let Ct=(0,Q.qz)(ft.state).resolveInner(ft.pos,-1);if(oi.indexOf(Ct.name)>-1)return null;let Dt=Ct.name=="VariableName"||Ct.to-Ct.from<20&&ze.test(ft.state.sliceDoc(Ct.from,Ct.to));if(!Dt&&!ft.explicit)return null;let At=[];for(let jt=Ct;jt;jt=jt.parent)fe.has(jt.name)&&(At=At.concat(ri(ft.state.doc,jt)));return{options:At,from:Dt?Ct.from:ft.pos,validFor:ze}}function ni(ft,Ct,Dt){var At;let jt=[];for(;;){let Xt=Ct.firstChild,Et;if((Xt==null?void 0:Xt.name)=="VariableName")return jt.push(ft(Xt)),{path:jt.reverse(),name:Dt};if((Xt==null?void 0:Xt.name)=="MemberExpression"&&((At=Et=Xt.lastChild)===null||At===void 0?void 0:At.name)=="PropertyName")jt.push(ft(Et)),Ct=Xt;else return null}}function Be(ft){let Ct=At=>ft.state.doc.sliceString(At.from,At.to),Dt=syntaxTree(ft.state).resolveInner(ft.pos,-1);return Dt.name=="PropertyName"?ni(Ct,Dt.parent,Ct(Dt)):(Dt.name=="."||Dt.name=="?.")&&Dt.parent.name=="MemberExpression"?ni(Ct,Dt.parent,""):oi.indexOf(Dt.name)>-1?null:Dt.name=="VariableName"||Dt.to-Dt.from<20&&ze.test(Ct(Dt))?{path:[],name:Ct(Dt)}:Dt.name=="MemberExpression"?ni(Ct,Dt,""):ft.explicit?{path:[],name:""}:null}function Me(ft,Ct){let Dt=[],At=new Set;for(let jt=0;;jt++){for(let Et of(Object.getOwnPropertyNames||Object.keys)(ft)){if(!/^[a-zA-Z_$\xaa-\uffdc][\w$\xaa-\uffdc]*$/.test(Et)||At.has(Et))continue;At.add(Et);let le;try{le=ft[Et]}catch{continue}Dt.push({label:Et,type:typeof le=="function"?/^[A-Z]/.test(Et)?"class":Ct?"function":"method":Ct?"variable":"property",boost:-jt})}let Xt=Object.getPrototypeOf(ft);if(!Xt)return Dt;ft=Xt}}function de(ft){let Ct=new Map;return Dt=>{let At=Be(Dt);if(!At)return null;let jt=ft;for(let Et of At.path)if(jt=jt[Et],!jt)return null;let Xt=Ct.get(jt);return Xt||Ct.set(jt,Xt=Me(jt,!At.path.length)),{from:Dt.pos-At.name.length,options:Xt,validFor:ze}}}const Jt=Q.qp.define({name:"javascript",parser:P.E.configure({props:[Q.uj.add({IfStatement:(0,Q.tC)({except:/^\s*({|else\b)/}),TryStatement:(0,Q.tC)({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:Q.ze,SwitchBody:ft=>{let Ct=ft.textAfter,Dt=/^\s*\}/.test(Ct),At=/^\s*(case|default)\b/.test(Ct);return ft.baseIndent+(Dt?0:At?1:2)*ft.unit},Block:(0,Q.vw)({closing:"}"}),ArrowFunction:ft=>ft.baseIndent+ft.unit,"TemplateString BlockComment":()=>null,"Statement Property":(0,Q.tC)({except:/^\s*{/}),JSXElement(ft){let Ct=/^\s*<\//.test(ft.textAfter);return ft.lineIndent(ft.node.from)+(Ct?0:ft.unit)},JSXEscape(ft){let Ct=/\s*\}/.test(ft.textAfter);return ft.lineIndent(ft.node.from)+(Ct?0:ft.unit)},"JSXOpenTag JSXSelfClosingTag"(ft){return ft.column(ft.node.from)+ft.unit}}),Q.x0.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":Q.Dv,BlockComment(ft){return{from:ft.from+2,to:ft.to-2}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),Pt={test:ft=>/^JSX/.test(ft.name),facet:(0,Q.kU)({commentTokens:{block:{open:"{/*",close:"*/}"}}})},re=Jt.configure({dialect:"ts"},"typescript"),Bt=Jt.configure({dialect:"jsx",props:[Q.KC.add(ft=>ft.isTop?[Pt]:void 0)]}),Je=Jt.configure({dialect:"jsx ts",props:[Q.KC.add(ft=>ft.isTop?[Pt]:void 0)]},"typescript");let di=ft=>({label:ft,type:"keyword"});const Fe="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(di),Xe=Fe.concat(["declare","implements","private","protected","public"].map(di));function Ut(ft={}){let Ct=ft.jsx?ft.typescript?Je:Bt:ft.typescript?re:Jt,Dt=ft.typescript?Oe.concat(Xe):ke.concat(Fe);return new Q.ri(Ct,[Jt.data.of({autocomplete:(0,se.eC)(oi,(0,se.Mb)(Dt))}),Jt.data.of({autocomplete:Ye}),ft.jsx?Te:[]])}function ce(ft){for(;;){if(ft.name=="JSXOpenTag"||ft.name=="JSXSelfClosingTag"||ft.name=="JSXFragmentTag")return ft;if(ft.name=="JSXEscape"||!ft.parent)return null;ft=ft.parent}}function te(ft,Ct,Dt=ft.length){for(let At=Ct==null?void 0:Ct.firstChild;At;At=At.nextSibling)if(At.name=="JSXIdentifier"||At.name=="JSXBuiltin"||At.name=="JSXNamespacedName"||At.name=="JSXMemberExpression")return ft.sliceString(At.from,Math.min(At.to,Dt));return""}const ve=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),Te=kt.tk.inputHandler.of((ft,Ct,Dt,At,jt)=>{if((ve?ft.composing:ft.compositionStarted)||ft.state.readOnly||Ct!=Dt||At!=">"&&At!="/"||!Jt.isActiveAt(ft.state,Ct,-1))return!1;let Xt=jt(),{state:Et}=Xt,le=Et.changeByRange(We=>{var Ae;let{head:yt}=We,He=(0,Q.qz)(Et).resolveInner(yt-1,-1),Ne;if(He.name=="JSXStartTag"&&(He=He.parent),!(Et.doc.sliceString(yt-1,yt)!=At||He.name=="JSXAttributeValue"&&He.to>yt)){if(At==">"&&He.name=="JSXFragmentTag")return{range:We,changes:{from:yt,insert:"</>"}};if(At=="/"&&He.name=="JSXStartCloseTag"){let G=He.parent,q=G.parent;if(q&&G.from==yt-2&&((Ne=te(Et.doc,q.firstChild,yt))||((Ae=q.firstChild)===null||Ae===void 0?void 0:Ae.name)=="JSXFragmentTag")){let lt=`${Ne}>`;return{range:Z.jT.cursor(yt+lt.length,-1),changes:{from:yt,insert:lt}}}}else if(At==">"){let G=ce(He);if(G&&G.name=="JSXOpenTag"&&!/^\/?>|^<\//.test(Et.doc.sliceString(yt,yt+2))&&(Ne=te(Et.doc,G,yt)))return{range:We,changes:{from:yt,insert:`</${Ne}>`}}}}return{range:We}});return le.changes.empty?!1:(ft.dispatch([Xt,Et.update(le,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});function qe(ft,Ct){return Ct||(Ct={parserOptions:{ecmaVersion:2019,sourceType:"module"},env:{browser:!0,node:!0,es6:!0,es2015:!0,es2017:!0,es2020:!0},rules:{}},ft.getRules().forEach((Dt,At)=>{var jt;!((jt=Dt.meta.docs)===null||jt===void 0)&&jt.recommended&&(Ct.rules[At]=2)})),Dt=>{let{state:At}=Dt,jt=[];for(let{from:Xt,to:Et}of Jt.findRegions(At)){let le=At.doc.lineAt(Xt),We={line:le.number-1,col:Xt-le.from,pos:Xt};for(let Ae of ft.verify(At.sliceDoc(Xt,Et),Ct))jt.push(Ie(Ae,At.doc,We))}return jt}}function hi(ft,Ct,Dt,At){return Dt.line(ft+At.line).from+Ct+(ft==1?At.col-1:-1)}function Ie(ft,Ct,Dt){let At=hi(ft.line,ft.column,Ct,Dt),jt={from:At,to:ft.endLine!=null&&ft.endColumn!=1?hi(ft.endLine,ft.endColumn,Ct,Dt):At,message:ft.message,source:ft.ruleId?"eslint:"+ft.ruleId:"eslint",severity:ft.severity==1?"warning":"error"};if(ft.fix){let{range:Xt,text:Et}=ft.fix,le=Xt[0]+Dt.pos-At,We=Xt[1]+Dt.pos-At;jt.actions=[{name:"fix",apply(Ae,yt){Ae.dispatch({changes:{from:yt+le,to:yt+We,insert:Et},scrollIntoView:!0})}}]}return jt}},59119:function(tn,vi,Zt){Zt.d(vi,{Dv:function(){return lt},Gn:function(){return qe},K0:function(){return ve},KC:function(){return Pe},Qf:function(){return Qe},R_:function(){return Ri},SS:function(){return te},Um:function(){return mt},c:function(){return Ut},e7:function(){return D},kU:function(){return Oe},mi:function(){return $e},n$:function(){return A},nF:function(){return gi},nY:function(){return Ne},qp:function(){return we},qz:function(){return _t},ri:function(){return di},tC:function(){return yt},uj:function(){return hi},vw:function(){return le},x0:function(){return q},y1:function(){return ce},ze:function(){return Ae}});var P=Zt(41113),Q=Zt(78120),Z=Zt(47421),kt=Zt(35524),se=Zt(28699),Ce;const ke=new P.md;function Oe(S){return Q.r$.define({combine:S?f=>f.concat(S):void 0})}const Pe=new P.md;class fe{constructor(f,b,O=[],I=""){this.data=f,this.name=I,Q.yy.prototype.hasOwnProperty("tree")||Object.defineProperty(Q.yy.prototype,"tree",{get(){return _t(this)}}),this.parser=b,this.extension=[Je.of(this),Q.yy.languageData.of((j,K,ct)=>{let at=me(j,K,ct),Mt=at.type.prop(ke);if(!Mt)return[];let Vt=j.facet(Mt),Le=at.type.prop(Pe);if(Le){let ki=at.resolve(K-at.from,ct);for(let wi of Le)if(wi.test(ki,j)){let _i=j.facet(wi.facet);return wi.type=="replace"?_i:_i.concat(Vt)}}return Vt})].concat(O)}isActiveAt(f,b,O=-1){return me(f,b,O).type.prop(ke)==this.data}findRegions(f){let b=f.facet(Je);if((b==null?void 0:b.data)==this.data)return[{from:0,to:f.doc.length}];if(!b||!b.allowsNesting)return[];let O=[],I=(j,K)=>{if(j.prop(ke)==this.data){O.push({from:K,to:K+j.length});return}let ct=j.prop(P.md.mounted);if(ct){if(ct.tree.prop(ke)==this.data){if(ct.overlay)for(let at of ct.overlay)O.push({from:at.from+K,to:at.to+K});else O.push({from:K,to:K+j.length});return}else if(ct.overlay){let at=O.length;if(I(ct.tree,ct.overlay[0].from+K),O.length>at)return}}for(let at=0;at<j.children.length;at++){let Mt=j.children[at];Mt instanceof P.mp&&I(Mt,j.positions[at]+K)}};return I(_t(f),0),O}get allowsNesting(){return!0}}fe.setState=Q.Py.define();function me(S,f,b){let O=S.facet(Je),I=_t(S).topNode;if(!O||O.allowsNesting)for(let j=I;j;j=j.enter(f,b,P.vj.ExcludeBuffers))j.type.isTop&&(I=j);return I}class we extends fe{constructor(f,b,O){super(f,b,[],O),this.parser=b}static define(f){let b=Oe(f.languageData);return new we(b,f.parser.configure({props:[ke.add(O=>O.isTop?b:void 0)]}),f.name)}configure(f,b){return new we(this.data,this.parser.configure(f),b||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function _t(S){let f=S.field(fe.state,!1);return f?f.tree:P.mp.empty}function ri(S,f,b=50){var O;let I=(O=S.field(fe.state,!1))===null||O===void 0?void 0:O.context;if(!I)return null;let j=I.viewport;I.updateViewport({from:0,to:f});let K=I.isDone(f)||I.work(b,f)?I.tree:null;return I.updateViewport(j),K}function ze(S,f=S.doc.length){var b;return((b=S.field(fe.state,!1))===null||b===void 0?void 0:b.context.isDone(f))||!1}function oi(S,f=S.viewport.to,b=100){let O=ri(S.state,f,b);return O!=_t(S.state)&&S.dispatch({}),!!O}function Ye(S){var f;return((f=S.plugin(Bt))===null||f===void 0?void 0:f.isWorking())||!1}class ni{constructor(f){this.doc=f,this.cursorPos=0,this.string="",this.cursor=f.iter()}get length(){return this.doc.length}syncTo(f){return this.string=this.cursor.next(f-this.cursorPos).value,this.cursorPos=f+this.string.length,this.cursorPos-this.string.length}chunk(f){return this.syncTo(f),this.string}get lineChunks(){return!0}read(f,b){let O=this.cursorPos-this.string.length;return f<O||b>=this.cursorPos?this.doc.sliceString(f,b):this.string.slice(f-O,b-O)}}let Be=null;class Me{constructor(f,b,O=[],I,j,K,ct,at){this.parser=f,this.state=b,this.fragments=O,this.tree=I,this.treeLen=j,this.viewport=K,this.skipped=ct,this.scheduleOn=at,this.parse=null,this.tempSkipped=[]}static create(f,b,O){return new Me(f,b,[],P.mp.empty,0,O,[],null)}startParse(){return this.parser.startParse(new ni(this.state.doc),this.fragments)}work(f,b){return b!=null&&b>=this.state.doc.length&&(b=void 0),this.tree!=P.mp.empty&&this.isDone(b??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var O;if(typeof f=="number"){let I=Date.now()+f;f=()=>Date.now()>I}for(this.parse||(this.parse=this.startParse()),b!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>b)&&b<this.state.doc.length&&this.parse.stopAt(b);;){let I=this.parse.advance();if(I)if(this.fragments=this.withoutTempSkipped(P.i9.addTree(I,this.fragments,this.parse.stoppedAt!=null)),this.treeLen=(O=this.parse.stoppedAt)!==null&&O!==void 0?O:this.state.doc.length,this.tree=I,this.parse=null,this.treeLen<(b??this.state.doc.length))this.parse=this.startParse();else return!0;if(f())return!1}})}takeTree(){let f,b;this.parse&&(f=this.parse.parsedPos)>=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>f)&&this.parse.stopAt(f),this.withContext(()=>{for(;!(b=this.parse.advance()););}),this.treeLen=f,this.tree=b,this.fragments=this.withoutTempSkipped(P.i9.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(f){let b=Be;Be=this;try{return f()}finally{Be=b}}withoutTempSkipped(f){for(let b;b=this.tempSkipped.pop();)f=de(f,b.from,b.to);return f}changes(f,b){let{fragments:O,tree:I,treeLen:j,viewport:K,skipped:ct}=this;if(this.takeTree(),!f.empty){let at=[];if(f.iterChangedRanges((Mt,Vt,Le,ki)=>at.push({fromA:Mt,toA:Vt,fromB:Le,toB:ki})),O=P.i9.applyChanges(O,at),I=P.mp.empty,j=0,K={from:f.mapPos(K.from,-1),to:f.mapPos(K.to,1)},this.skipped.length){ct=[];for(let Mt of this.skipped){let Vt=f.mapPos(Mt.from,1),Le=f.mapPos(Mt.to,-1);Vt<Le&&ct.push({from:Vt,to:Le})}}}return new Me(this.parser,b,O,I,j,K,ct,this.scheduleOn)}updateViewport(f){if(this.viewport.from==f.from&&this.viewport.to==f.to)return!1;this.viewport=f;let b=this.skipped.length;for(let O=0;O<this.skipped.length;O++){let{from:I,to:j}=this.skipped[O];I<f.to&&j>f.from&&(this.fragments=de(this.fragments,I,j),this.skipped.splice(O--,1))}return this.skipped.length>=b?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(f,b){this.skipped.push({from:f,to:b})}static getSkippingParser(f){return new class extends P._b{createParse(b,O,I){let j=I[0].from,K=I[I.length-1].to;return{parsedPos:j,advance(){let at=Be;if(at){for(let Mt of I)at.tempSkipped.push(Mt);f&&(at.scheduleOn=at.scheduleOn?Promise.all([at.scheduleOn,f]):f)}return this.parsedPos=K,new P.mp(P.Jq.none,[],[],K-j)},stoppedAt:null,stopAt(){}}}}}isDone(f){f=Math.min(f,this.state.doc.length);let b=this.fragments;return this.treeLen>=f&&b.length&&b[0].from==0&&b[0].to>=f}static get(){return Be}}function de(S,f,b){return P.i9.applyChanges(S,[{fromA:f,toA:b,fromB:f,toB:b}])}class Jt{constructor(f){this.context=f,this.tree=f.tree}apply(f){if(!f.docChanged&&this.tree==this.context.tree)return this;let b=this.context.changes(f.changes,f.state),O=this.context.treeLen==f.startState.doc.length?void 0:Math.max(f.changes.mapPos(this.context.treeLen),b.viewport.to);return b.work(20,O)||b.takeTree(),new Jt(b)}static init(f){let b=Math.min(3e3,f.doc.length),O=Me.create(f.facet(Je).parser,f,{from:0,to:b});return O.work(20,b)||O.takeTree(),new Jt(O)}}fe.state=Q.QQ.define({create:Jt.init,update(S,f){for(let b of f.effects)if(b.is(fe.setState))return b.value;return f.startState.facet(Je)!=f.state.facet(Je)?Jt.init(f.state):S.apply(f)}});let Pt=S=>{let f=setTimeout(()=>S(),500);return()=>clearTimeout(f)};typeof requestIdleCallback<"u"&&(Pt=S=>{let f=-1,b=setTimeout(()=>{f=requestIdleCallback(S,{timeout:500-100})},100);return()=>f<0?clearTimeout(b):cancelIdleCallback(f)});const re=typeof navigator<"u"&&(!((Ce=navigator.scheduling)===null||Ce===void 0)&&Ce.isInputPending)?()=>navigator.scheduling.isInputPending():null,Bt=Z.lg.fromClass(class{constructor(f){this.view=f,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(f){let b=this.view.state.field(fe.state).context;(b.updateViewport(f.view.viewport)||this.view.viewport.to>b.treeLen)&&this.scheduleWork(),(f.docChanged||f.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(b)}scheduleWork(){if(this.working)return;let{state:f}=this.view,b=f.field(fe.state);(b.tree!=b.context.tree||!b.context.isDone(f.doc.length))&&(this.working=Pt(this.work))}work(f){this.working=null;let b=Date.now();if(this.chunkEnd<b&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=b+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:O,viewport:{to:I}}=this.view,j=O.field(fe.state);if(j.tree==j.context.tree&&j.context.isDone(I+1e5))return;let K=Date.now()+Math.min(this.chunkBudget,100,f&&!re?Math.max(25,f.timeRemaining()-5):1e9),ct=j.context.treeLen<I&&O.doc.length>I+1e3,at=j.context.work(()=>re&&re()||Date.now()>K,I+(ct?0:1e5));this.chunkBudget-=Date.now()-b,(at||this.chunkBudget<=0)&&(j.context.takeTree(),this.view.dispatch({effects:fe.setState.of(new Jt(j.context))})),this.chunkBudget>0&&!(at&&!ct)&&this.scheduleWork(),this.checkAsyncSchedule(j.context)}checkAsyncSchedule(f){f.scheduleOn&&(this.workScheduled++,f.scheduleOn.then(()=>this.scheduleWork()).catch(b=>(0,Z.OO)(this.view.state,b)).then(()=>this.workScheduled--),f.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),Je=Q.r$.define({combine(S){return S.length?S[0]:null},enables:S=>[fe.state,Bt,Z.tk.contentAttributes.compute([S],f=>{let b=f.facet(S);return b&&b.name?{"data-language":b.name}:{}})]});class di{constructor(f,b=[]){this.language=f,this.support=b,this.extension=[f,b]}}class Fe{constructor(f,b,O,I,j,K=void 0){this.name=f,this.alias=b,this.extensions=O,this.filename=I,this.loadFunc=j,this.support=K,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then(f=>this.support=f,f=>{throw this.loading=null,f}))}static of(f){let{load:b,support:O}=f;if(!b){if(!O)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");b=()=>Promise.resolve(O)}return new Fe(f.name,(f.alias||[]).concat(f.name).map(I=>I.toLowerCase()),f.extensions||[],f.filename,b,O)}static matchFilename(f,b){for(let I of f)if(I.filename&&I.filename.test(b))return I;let O=/\.([^.]+)$/.exec(b);if(O){for(let I of f)if(I.extensions.indexOf(O[1])>-1)return I}return null}static matchLanguageName(f,b,O=!0){b=b.toLowerCase();for(let I of f)if(I.alias.some(j=>j==b))return I;if(O)for(let I of f)for(let j of I.alias){let K=b.indexOf(j);if(K>-1&&(j.length>2||!/\w/.test(b[K-1])&&!/\w/.test(b[K+j.length])))return I}return null}}const Xe=Q.r$.define(),Ut=Q.r$.define({combine:S=>{if(!S.length)return" ";let f=S[0];if(!f||/\S/.test(f)||Array.from(f).some(b=>b!=f[0]))throw new Error("Invalid indent unit: "+JSON.stringify(S[0]));return f}});function ce(S){let f=S.facet(Ut);return f.charCodeAt(0)==9?S.tabSize*f.length:f.length}function te(S,f){let b="",O=S.tabSize,I=S.facet(Ut)[0];if(I==" "){for(;f>=O;)b+=" ",f-=O;I=" "}for(let j=0;j<f;j++)b+=I;return b}function ve(S,f){S instanceof Q.yy&&(S=new qe(S));for(let O of S.state.facet(Xe)){let I=O(S,f);if(I!==void 0)return I}let b=_t(S.state);return b.length>=f?Ie(S,b,f):null}function Te(S,f,b){let O=Object.create(null),I=new qe(S,{overrideIndentation:K=>{var ct;return(ct=O[K])!==null&&ct!==void 0?ct:-1}}),j=[];for(let K=f;K<=b;){let ct=S.doc.lineAt(K);K=ct.to+1;let at=ve(I,ct.from);if(at==null)continue;/\S/.test(ct.text)||(at=0);let Mt=/^\s*/.exec(ct.text)[0],Vt=te(S,at);Mt!=Vt&&(O[ct.from]=at,j.push({from:ct.from,to:ct.from+Mt.length,insert:Vt}))}return S.changes(j)}class qe{constructor(f,b={}){this.state=f,this.options=b,this.unit=ce(f)}lineAt(f,b=1){let O=this.state.doc.lineAt(f),{simulateBreak:I,simulateDoubleBreak:j}=this.options;return I!=null&&I>=O.from&&I<=O.to?j&&I==f?{text:"",from:f}:(b<0?I<f:I<=f)?{text:O.text.slice(I-O.from),from:I}:{text:O.text.slice(0,I-O.from),from:O.from}:O}textAfterPos(f,b=1){if(this.options.simulateDoubleBreak&&f==this.options.simulateBreak)return"";let{text:O,from:I}=this.lineAt(f,b);return O.slice(f-I,Math.min(O.length,f+100-I))}column(f,b=1){let{text:O,from:I}=this.lineAt(f,b),j=this.countColumn(O,f-I),K=this.options.overrideIndentation?this.options.overrideIndentation(I):-1;return K>-1&&(j+=K-this.countColumn(O,O.search(/\S|$/))),j}countColumn(f,b=f.length){return(0,Q.IS)(f,this.state.tabSize,b)}lineIndent(f,b=1){let{text:O,from:I}=this.lineAt(f,b),j=this.options.overrideIndentation;if(j){let K=j(I);if(K>-1)return K}return this.countColumn(O,O.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const hi=new P.md;function Ie(S,f,b){let O=f.resolveStack(b),I=f.resolveInner(b,-1).resolve(b,0).enterUnfinishedNodesBefore(b);if(I!=O.node){let j=[];for(let K=I;K&&!(K.from<O.node.from||K.to>O.node.to||K.from==O.node.from&&K.type==O.node.type);K=K.parent)j.push(K);for(let K=j.length-1;K>=0;K--)O={node:j[K],next:O}}return ft(O,S,b)}function ft(S,f,b){for(let O=S;O;O=O.next){let I=Dt(O.node);if(I)return I(jt.create(f,b,O))}return 0}function Ct(S){return S.pos==S.options.simulateBreak&&S.options.simulateDoubleBreak}function Dt(S){let f=S.type.prop(hi);if(f)return f;let b=S.firstChild,O;if(b&&(O=b.type.prop(P.md.closedBy))){let I=S.lastChild,j=I&&O.indexOf(I.name)>-1;return K=>We(K,!0,1,void 0,j&&!Ct(K)?I.from:void 0)}return S.parent==null?At:null}function At(){return 0}class jt extends qe{constructor(f,b,O){super(f.state,f.options),this.base=f,this.pos=b,this.context=O}get node(){return this.context.node}static create(f,b,O){return new jt(f,b,O)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(f){let b=this.state.doc.lineAt(f.from);for(;;){let O=f.resolve(b.from);for(;O.parent&&O.parent.from==O.from;)O=O.parent;if(Xt(O,f))break;b=this.state.doc.lineAt(O.from)}return this.lineIndent(b.from)}continue(){return ft(this.context.next,this.base,this.pos)}}function Xt(S,f){for(let b=f;b;b=b.parent)if(S==b)return!0;return!1}function Et(S){let f=S.node,b=f.childAfter(f.from),O=f.lastChild;if(!b)return null;let I=S.options.simulateBreak,j=S.state.doc.lineAt(b.from),K=I==null||I<=j.from?j.to:Math.min(j.to,I);for(let ct=b.to;;){let at=f.childAfter(ct);if(!at||at==O)return null;if(!at.type.isSkipped){if(at.from>=K)return null;let Mt=/^ */.exec(j.text.slice(b.to-j.from))[0].length;return{from:b.from,to:b.to+Mt}}ct=at.to}}function le({closing:S,align:f=!0,units:b=1}){return O=>We(O,f,b,S)}function We(S,f,b,O,I){let j=S.textAfter,K=j.match(/^\s*/)[0].length,ct=O&&j.slice(K,K+O.length)==O||I==S.pos+K,at=f?Et(S):null;return at?ct?S.column(at.from):S.column(at.to):S.baseIndent+(ct?0:S.unit*b)}const Ae=S=>S.baseIndent;function yt({except:S,units:f=1}={}){return b=>{let O=S&&S.test(b.textAfter);return b.baseIndent+(O?0:f*b.unit)}}const He=200;function Ne(){return Q.yy.transactionFilter.of(S=>{if(!S.docChanged||!S.isUserEvent("input.type")&&!S.isUserEvent("input.complete"))return S;let f=S.startState.languageDataAt("indentOnInput",S.startState.selection.main.head);if(!f.length)return S;let b=S.newDoc,{head:O}=S.newSelection.main,I=b.lineAt(O);if(O>I.from+He)return S;let j=b.sliceString(I.from,O);if(!f.some(Mt=>Mt.test(j)))return S;let{state:K}=S,ct=-1,at=[];for(let{head:Mt}of K.selection.ranges){let Vt=K.doc.lineAt(Mt);if(Vt.from==ct)continue;ct=Vt.from;let Le=ve(K,Vt.from);if(Le==null)continue;let ki=/^\s*/.exec(Vt.text)[0],wi=te(K,Le);ki!=wi&&at.push({from:Vt.from,to:Vt.from+ki.length,insert:wi})}return at.length?[S,{changes:at,sequential:!0}]:S})}const G=Q.r$.define(),q=new P.md;function lt(S){let f=S.firstChild,b=S.lastChild;return f&&f.to<b.from?{from:f.to,to:b.type.isError?S.to:b.from}:null}function rt(S,f,b){let O=_t(S);if(O.length<b)return null;let I=O.resolveStack(b,1),j=null;for(let K=I;K;K=K.next){let ct=K.node;if(ct.to<=b||ct.from>b)continue;if(j&&ct.from<f)break;let at=ct.type.prop(q);if(at&&(ct.to<O.length-50||O.length==S.doc.length||!bt(ct))){let Mt=at(ct,S);Mt&&Mt.from<=b&&Mt.from>=f&&Mt.to>b&&(j=Mt)}}return j}function bt(S){let f=S.lastChild;return f&&f.to==S.to&&f.type.isError}function Ot(S,f,b){for(let O of S.facet(G)){let I=O(S,f,b);if(I)return I}return rt(S,f,b)}function Ht(S,f){let b=f.mapPos(S.from,1),O=f.mapPos(S.to,-1);return b>=O?void 0:{from:b,to:O}}const Wt=Q.Py.define({map:Ht}),ae=Q.Py.define({map:Ht});function ue(S){let f=[];for(let{head:b}of S.state.selection.ranges)f.some(O=>O.from<=b&&O.to>=b)||f.push(S.lineBlockAt(b));return f}const qt=Q.QQ.define({create(){return Z.p.none},update(S,f){f.isUserEvent("delete")&&f.changes.iterChangedRanges((b,O)=>S=oe(S,b,O)),S=S.map(f.changes);for(let b of f.effects)if(b.is(Wt)&&!si(S,b.value.from,b.value.to)){let{preparePlaceholder:O}=f.state.facet(z),I=O?Z.p.replace({widget:new wt(O(f.state,b.value))}):St;S=S.update({add:[I.range(b.value.from,b.value.to)]})}else b.is(ae)&&(S=S.update({filter:(O,I)=>b.value.from!=O||b.value.to!=I,filterFrom:b.value.from,filterTo:b.value.to}));return f.selection&&(S=oe(S,f.selection.main.head)),S},provide:S=>Z.tk.decorations.from(S),toJSON(S,f){let b=[];return S.between(0,f.doc.length,(O,I)=>{b.push(O,I)}),b},fromJSON(S){if(!Array.isArray(S)||S.length%2)throw new RangeError("Invalid JSON for fold state");let f=[];for(let b=0;b<S.length;){let O=S[b++],I=S[b++];if(typeof O!="number"||typeof I!="number")throw new RangeError("Invalid JSON for fold state");f.push(St.range(O,I))}return Z.p.set(f,!0)}});function oe(S,f,b=f){let O=!1;return S.between(f,b,(I,j)=>{I<b&&j>f&&(O=!0)}),O?S.update({filterFrom:f,filterTo:b,filter:(I,j)=>I>=b||j<=f}):S}function ge(S){return S.field(qt,!1)||RangeSet.empty}function be(S,f,b){var O;let I=null;return(O=S.field(qt,!1))===null||O===void 0||O.between(f,b,(j,K)=>{(!I||I.from>j)&&(I={from:j,to:K})}),I}function si(S,f,b){let O=!1;return S.between(f,f,(I,j)=>{I==f&&j==b&&(O=!0)}),O}function Gt(S,f){return S.field(qt,!1)?f:f.concat(Q.Py.appendConfig.of(U()))}const Kt=S=>{for(let f of ue(S)){let b=Ot(S.state,f.from,f.to);if(b)return S.dispatch({effects:Gt(S.state,[Wt.of(b),li(S,b)])}),!0}return!1},ci=S=>{if(!S.state.field(qt,!1))return!1;let f=[];for(let b of ue(S)){let O=be(S.state,b.from,b.to);O&&f.push(ae.of(O),li(S,O,!1))}return f.length&&S.dispatch({effects:f}),f.length>0};function li(S,f,b=!0){let O=S.state.doc.lineAt(f.from).number,I=S.state.doc.lineAt(f.to).number;return Z.tk.announce.of(`${S.state.phrase(b?"Folded lines":"Unfolded lines")} ${O} ${S.state.phrase("to")} ${I}.`)}const Ge=S=>{let{state:f}=S,b=[];for(let O=0;O<f.doc.length;){let I=S.lineBlockAt(O),j=Ot(f,I.from,I.to);j&&b.push(Wt.of(j)),O=(j?S.lineBlockAt(j.to):I).to+1}return b.length&&S.dispatch({effects:Gt(S.state,b)}),!!b.length},pi=S=>{let f=S.state.field(qt,!1);if(!f||!f.size)return!1;let b=[];return f.between(0,S.state.doc.length,(O,I)=>{b.push(ae.of({from:O,to:I}))}),S.dispatch({effects:b}),!0};function Li(S,f){for(let b=f;;){let O=Ot(S.state,b.from,b.to);if(O&&O.to>f.from)return O;if(!b.from)return null;b=S.lineBlockAt(b.from-1)}}const V=S=>{let f=[];for(let b of ue(S)){let O=be(S.state,b.from,b.to);if(O)f.push(ae.of(O),li(S,O,!1));else{let I=Li(S,b);I&&f.push(Wt.of(I),li(S,I))}}return f.length>0&&S.dispatch({effects:Gt(S.state,f)}),!!f.length},D=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:Kt},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:ci},{key:"Ctrl-Alt-[",run:Ge},{key:"Ctrl-Alt-]",run:pi}],$={placeholderDOM:null,preparePlaceholder:null,placeholderText:"\u2026"},z=Q.r$.define({combine(S){return(0,Q.BO)(S,$)}});function U(S){let f=[qt,Ke];return S&&f.push(z.of(S)),f}function ht(S,f){let{state:b}=S,O=b.facet(z),I=K=>{let ct=S.lineBlockAt(S.posAtDOM(K.target)),at=be(S.state,ct.from,ct.to);at&&S.dispatch({effects:ae.of(at)}),K.preventDefault()};if(O.placeholderDOM)return O.placeholderDOM(S,I,f);let j=document.createElement("span");return j.textContent=O.placeholderText,j.setAttribute("aria-label",b.phrase("folded code")),j.title=b.phrase("unfold"),j.className="cm-foldPlaceholder",j.onclick=I,j}const St=Z.p.replace({widget:new class extends Z.l9{toDOM(S){return ht(S,null)}}});class wt extends Z.l9{constructor(f){super(),this.value=f}eq(f){return this.value==f.value}toDOM(f){return ht(f,this.value)}}const It={openText:"\u2304",closedText:"\u203A",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class Qt extends Z.SJ{constructor(f,b){super(),this.config=f,this.open=b}eq(f){return this.config==f.config&&this.open==f.open}toDOM(f){if(this.config.markerDOM)return this.config.markerDOM(this.open);let b=document.createElement("span");return b.textContent=this.open?this.config.openText:this.config.closedText,b.title=f.state.phrase(this.open?"Fold line":"Unfold line"),b}}function $e(S={}){let f={...It,...S},b=new Qt(f,!0),O=new Qt(f,!1),I=Z.lg.fromClass(class{constructor(K){this.from=K.viewport.from,this.markers=this.buildMarkers(K)}update(K){(K.docChanged||K.viewportChanged||K.startState.facet(Je)!=K.state.facet(Je)||K.startState.field(qt,!1)!=K.state.field(qt,!1)||_t(K.startState)!=_t(K.state)||f.foldingChanged(K))&&(this.markers=this.buildMarkers(K.view))}buildMarkers(K){let ct=new Q.f_;for(let at of K.viewportLineBlocks){let Mt=be(K.state,at.from,at.to)?O:Ot(K.state,at.from,at.to)?b:null;Mt&&ct.add(at.from,at.from,Mt)}return ct.finish()}}),{domEventHandlers:j}=f;return[I,(0,Z.v5)({class:"cm-foldGutter",markers(K){var ct;return((ct=K.plugin(I))===null||ct===void 0?void 0:ct.markers)||Q.Xs.empty},initialSpacer(){return new Qt(f,!1)},domEventHandlers:{...j,click:(K,ct,at)=>{if(j.click&&j.click(K,ct,at))return!0;let Mt=be(K.state,ct.from,ct.to);if(Mt)return K.dispatch({effects:ae.of(Mt)}),!0;let Vt=Ot(K.state,ct.from,ct.to);return Vt?(K.dispatch({effects:Wt.of(Vt)}),!0):!1}}}),U()]}const Ke=Z.tk.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class Qe{constructor(f,b){this.specs=f;let O;function I(ct){let at=se.V.newName();return(O||(O=Object.create(null)))["."+at]=ct,at}const j=typeof b.all=="string"?b.all:b.all?I(b.all):void 0,K=b.scope;this.scope=K instanceof fe?ct=>ct.prop(ke)==K.data:K?ct=>ct==K:void 0,this.style=(0,kt.QR)(f.map(ct=>({tag:ct.tag,class:ct.class||I(Object.assign({},ct,{tag:null}))})),{all:j}).style,this.module=O?new se.V(O):null,this.themeType=b.themeType}static define(f,b){return new Qe(f,b||{})}}const mi=Q.r$.define(),Ee=Q.r$.define({combine(S){return S.length?[S[0]]:null}});function Ze(S){let f=S.facet(mi);return f.length?f:S.facet(Ee)}function gi(S,f){let b=[ye],O;return S instanceof Qe&&(S.module&&b.push(Z.tk.styleModule.of(S.module)),O=S.themeType),f!=null&&f.fallback?b.push(Ee.of(S)):O?b.push(mi.computeN([Z.tk.darkTheme],I=>I.facet(Z.tk.darkTheme)==(O=="dark")?[S]:[])):b.push(mi.of(S)),b}function fi(S,f,b){let O=Ze(S),I=null;if(O){for(let j of O)if(!j.scope||b&&j.scope(b)){let K=j.style(f);K&&(I=I?I+" "+K:K)}}return I}class Ii{constructor(f){this.markCache=Object.create(null),this.tree=_t(f.state),this.decorations=this.buildDeco(f,Ze(f.state)),this.decoratedTo=f.viewport.to}update(f){let b=_t(f.state),O=Ze(f.state),I=O!=Ze(f.startState),{viewport:j}=f.view,K=f.changes.mapPos(this.decoratedTo,1);b.length<j.to&&!I&&b.type==this.tree.type&&K>=j.to?(this.decorations=this.decorations.map(f.changes),this.decoratedTo=K):(b!=this.tree||f.viewportChanged||I)&&(this.tree=b,this.decorations=this.buildDeco(f.view,O),this.decoratedTo=j.to)}buildDeco(f,b){if(!b||!this.tree.length)return Z.p.none;let O=new Q.f_;for(let{from:I,to:j}of f.visibleRanges)(0,kt.bW)(this.tree,b,(K,ct,at)=>{O.add(K,ct,this.markCache[at]||(this.markCache[at]=Z.p.mark({class:at})))},I,j);return O.finish()}}const ye=Q.Wl.high(Z.lg.fromClass(Ii,{decorations:S=>S.decorations})),Ri=Qe.define([{tag:kt.pJ.meta,color:"#404740"},{tag:kt.pJ.link,textDecoration:"underline"},{tag:kt.pJ.heading,textDecoration:"underline",fontWeight:"bold"},{tag:kt.pJ.emphasis,fontStyle:"italic"},{tag:kt.pJ.strong,fontWeight:"bold"},{tag:kt.pJ.strikethrough,textDecoration:"line-through"},{tag:kt.pJ.keyword,color:"#708"},{tag:[kt.pJ.atom,kt.pJ.bool,kt.pJ.url,kt.pJ.contentSeparator,kt.pJ.labelName],color:"#219"},{tag:[kt.pJ.literal,kt.pJ.inserted],color:"#164"},{tag:[kt.pJ.string,kt.pJ.deleted],color:"#a11"},{tag:[kt.pJ.regexp,kt.pJ.escape,kt.pJ.special(kt.pJ.string)],color:"#e40"},{tag:kt.pJ.definition(kt.pJ.variableName),color:"#00f"},{tag:kt.pJ.local(kt.pJ.variableName),color:"#30a"},{tag:[kt.pJ.typeName,kt.pJ.namespace],color:"#085"},{tag:kt.pJ.className,color:"#167"},{tag:[kt.pJ.special(kt.pJ.variableName),kt.pJ.macroName],color:"#256"},{tag:kt.pJ.definition(kt.pJ.propertyName),color:"#00c"},{tag:kt.pJ.comment,color:"#940"},{tag:kt.pJ.invalid,color:"#f00"}]),zi=Z.tk.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),Ui=1e4,Ni="()[]{}",L=Q.r$.define({combine(S){return(0,Q.BO)(S,{afterCursor:!0,brackets:Ni,maxScanDistance:Ui,renderMatch:u})}}),o=Z.p.mark({class:"cm-matchingBracket"}),a=Z.p.mark({class:"cm-nonmatchingBracket"});function u(S){let f=[],b=S.matched?o:a;return f.push(b.range(S.start.from,S.start.to)),S.end&&f.push(b.range(S.end.from,S.end.to)),f}const T=[Q.QQ.define({create(){return Z.p.none},update(S,f){if(!f.docChanged&&!f.selection)return S;let b=[],O=f.state.facet(L);for(let I of f.state.selection.ranges){if(!I.empty)continue;let j=mt(f.state,I.head,-1,O)||I.head>0&&mt(f.state,I.head-1,1,O)||O.afterCursor&&(mt(f.state,I.head,1,O)||I.head<f.state.doc.length&&mt(f.state,I.head+1,-1,O));j&&(b=b.concat(O.renderMatch(j,f.state)))}return Z.p.set(b,!0)},provide:S=>Z.tk.decorations.from(S)}),zi];function A(S={}){return[L.of(S),T]}const N=new P.md;function J(S,f,b){let O=S.prop(f<0?P.md.openedBy:P.md.closedBy);if(O)return O;if(S.name.length==1){let I=b.indexOf(S.name);if(I>-1&&I%2==(f<0?1:0))return[b[I+f]]}return null}function st(S){let f=S.type.prop(N);return f?f(S.node):S}function mt(S,f,b,O={}){let I=O.maxScanDistance||Ui,j=O.brackets||Ni,K=_t(S),ct=K.resolveInner(f,b);for(let at=ct;at;at=at.parent){let Mt=J(at.type,b,j);if(Mt&&at.from<at.to){let Vt=st(at);if(Vt&&(b>0?f>=Vt.from&&f<Vt.to:f>Vt.from&&f<=Vt.to))return xt(S,f,b,at,Vt,Mt,j)}}return Lt(S,f,b,K,ct.type,I,j)}function xt(S,f,b,O,I,j,K){let ct=O.parent,at={from:I.from,to:I.to},Mt=0,Vt=ct==null?void 0:ct.cursor();if(Vt&&(b<0?Vt.childBefore(O.from):Vt.childAfter(O.to)))do if(b<0?Vt.to<=O.from:Vt.from>=O.to){if(Mt==0&&j.indexOf(Vt.type.name)>-1&&Vt.from<Vt.to){let Le=st(Vt);return{start:at,end:Le?{from:Le.from,to:Le.to}:void 0,matched:!0}}else if(J(Vt.type,b,K))Mt++;else if(J(Vt.type,-b,K)){if(Mt==0){let Le=st(Vt);return{start:at,end:Le&&Le.from<Le.to?{from:Le.from,to:Le.to}:void 0,matched:!1}}Mt--}}while(b<0?Vt.prevSibling():Vt.nextSibling());return{start:at,matched:!1}}function Lt(S,f,b,O,I,j,K){let ct=b<0?S.sliceDoc(f-1,f):S.sliceDoc(f,f+1),at=K.indexOf(ct);if(at<0||at%2==0!=b>0)return null;let Mt={from:b<0?f-1:f,to:b>0?f+1:f},Vt=S.doc.iterRange(f,b>0?S.doc.length:0),Le=0;for(let ki=0;!Vt.next().done&&ki<=j;){let wi=Vt.value;b<0&&(ki+=wi.length);let _i=f+ki*b;for(let Hi=b>0?0:wi.length-1,mn=b>0?wi.length:-1;Hi!=mn;Hi+=b){let ln=K.indexOf(wi[Hi]);if(!(ln<0||O.resolveInner(_i+Hi,1).type!=I))if(ln%2==0==b>0)Le++;else{if(Le==1)return{start:Mt,end:{from:_i+Hi,to:_i+Hi+1},matched:ln>>1==at>>1};Le--}}b>0&&(ki+=wi.length)}return Vt.done?{start:Mt,matched:!1}:null}function Rt(S,f,b,O=0,I=0){f==null&&(f=S.search(/[^\s\u00a0]/),f==-1&&(f=S.length));let j=I;for(let K=O;K<f;K++)S.charCodeAt(K)==9?j+=b-j%b:j++;return j}class De{constructor(f,b,O,I){this.string=f,this.tabSize=b,this.indentUnit=O,this.overrideIndent=I,this.pos=0,this.start=0,this.lastColumnPos=0,this.lastColumnValue=0}eol(){return this.pos>=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)}eat(f){let b=this.string.charAt(this.pos),O;if(typeof f=="string"?O=b==f:O=b&&(f instanceof RegExp?f.test(b):f(b)),O)return++this.pos,b}eatWhile(f){let b=this.pos;for(;this.eat(f););return this.pos>b}eatSpace(){let f=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>f}skipToEnd(){this.pos=this.string.length}skipTo(f){let b=this.string.indexOf(f,this.pos);if(b>-1)return this.pos=b,!0}backUp(f){this.pos-=f}column(){return this.lastColumnPos<this.start&&(this.lastColumnValue=Rt(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue}indentation(){var f;return(f=this.overrideIndent)!==null&&f!==void 0?f:Rt(this.string,null,this.tabSize)}match(f,b,O){if(typeof f=="string"){let I=K=>O?K.toLowerCase():K,j=this.string.substr(this.pos,f.length);return I(j)==I(f)?(b!==!1&&(this.pos+=f.length),!0):null}else{let I=this.string.slice(this.pos).match(f);return I&&I.index>0?null:(I&&b!==!1&&(this.pos+=I[0].length),I)}}current(){return this.string.slice(this.start,this.pos)}}function bi(S){return{name:S.name||"",token:S.token,blankLine:S.blankLine||(()=>{}),startState:S.startState||(()=>!0),copyState:S.copyState||Ve,indent:S.indent||(()=>null),languageData:S.languageData||{},tokenTable:S.tokenTable||E,mergeTokens:S.mergeTokens!==!1}}function Ve(S){if(typeof S!="object")return S;let f={};for(let b in S){let O=S[b];f[b]=O instanceof Array?O.slice():O}return f}const Vi=new WeakMap;class Fi extends null{constructor(f){let b=Oe(f.languageData),O=bi(f),I,j=new class extends Parser{createParse(K,ct,at){return new g(I,K,ct,at)}};super(b,j,[],f.name),this.topNode=Se(b,this),I=this,this.streamParser=O,this.stateAfter=new NodeProp({perNode:!0}),this.tokenTable=f.tokenTable?new vt(O.tokenTable):gt}static define(f){return new Fi(f)}getIndent(f){let b,{overrideIndentation:O}=f.options;O&&(b=Vi.get(f.state),b!=null&&b<f.pos-1e4&&(b=void 0));let I=Wi(this,f.node.tree,f.node.from,f.node.from,b??f.pos),j,K;if(I?(K=I.state,j=I.pos+1):(K=this.streamParser.startState(f.unit),j=f.node.from),f.pos-j>1e4)return null;for(;j<f.pos;){let at=f.state.doc.lineAt(j),Mt=Math.min(f.pos,at.to);if(at.length){let Vt=O?O(at.from):-1,Le=new De(at.text,f.state.tabSize,f.unit,Vt<0?void 0:Vt);for(;Le.pos<Mt-at.from;)x(this.streamParser.token,Le,K)}else this.streamParser.blankLine(K,f.unit);if(Mt==f.pos)break;j=at.to+1}let ct=f.lineAt(f.pos);return O&&b==null&&Vi.set(f.state,ct.from),this.streamParser.indent(K,/^\s*(.*)/.exec(ct.text)[1],f)}get allowsNesting(){return!1}}function Wi(S,f,b,O,I){let j=b>=O&&b+f.length<=I&&f.prop(S.stateAfter);if(j)return{state:S.streamParser.copyState(j),pos:b+f.length};for(let K=f.children.length-1;K>=0;K--){let ct=f.children[K],at=b+f.positions[K],Mt=ct instanceof Tree&&at<I&&Wi(S,ct,at,O,I);if(Mt)return Mt}return null}function Xi(S,f,b,O,I){if(I&&b<=0&&O>=f.length)return f;!I&&b==0&&f.type==S.topNode&&(I=!0);for(let j=f.children.length-1;j>=0;j--){let K=f.positions[j],ct=f.children[j],at;if(K<O&&ct instanceof Tree){if(!(at=Xi(S,ct,b-K,O-K,I)))break;return I?new Tree(f.type,f.children.slice(0,j).concat(at),f.positions.slice(0,j+1),K+at.length):at}}return null}function M(S,f,b,O,I){for(let j of f){let K=j.from+(j.openStart?25:0),ct=j.to-(j.openEnd?25:0),at=K<=b&&ct>b&&Wi(S,j.tree,0-j.offset,b,ct),Mt;if(at&&at.pos<=O&&(Mt=Xi(S,j.tree,b+j.offset,at.pos+j.offset,!1)))return{state:at.state,tree:Mt}}return{state:S.streamParser.startState(I?ce(I):4),tree:Tree.empty}}class g{constructor(f,b,O,I){this.lang=f,this.input=b,this.fragments=O,this.ranges=I,this.stoppedAt=null,this.chunks=[],this.chunkPos=[],this.chunk=[],this.chunkReused=void 0,this.rangeIndex=0,this.to=I[I.length-1].to;let j=Me.get(),K=I[0].from,{state:ct,tree:at}=M(f,O,K,this.to,j==null?void 0:j.state);this.state=ct,this.parsedPos=this.chunkStart=K+at.length;for(let Mt=0;Mt<at.children.length;Mt++)this.chunks.push(at.children[Mt]),this.chunkPos.push(at.positions[Mt]);j&&this.parsedPos<j.viewport.from-1e5&&I.some(Mt=>Mt.from<=j.viewport.from&&Mt.to>=j.viewport.from)&&(this.state=this.lang.streamParser.startState(ce(j.state)),j.skipUntilInView(this.parsedPos,j.viewport.from),this.parsedPos=j.viewport.from),this.moveRangeIndex()}advance(){let f=Me.get(),b=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt),O=Math.min(b,this.chunkStart+2048);for(f&&(O=Math.min(O,f.viewport.to));this.parsedPos<O;)this.parseLine(f);return this.chunkStart<this.parsedPos&&this.finishChunk(),this.parsedPos>=b?this.finish():f&&this.parsedPos>=f.viewport.to?(f.skipUntilInView(this.parsedPos,b),this.finish()):null}stopAt(f){this.stoppedAt=f}lineAfter(f){let b=this.input.chunk(f);if(this.input.lineChunks)b==`
|
|
16
|
+
`&&(b="");else{let O=b.indexOf(`
|
|
17
|
+
`);O>-1&&(b=b.slice(0,O))}return f+b.length<=this.to?b:b.slice(0,this.to-f)}nextLine(){let f=this.parsedPos,b=this.lineAfter(f),O=f+b.length;for(let I=this.rangeIndex;;){let j=this.ranges[I].to;if(j>=O||(b=b.slice(0,j-(O-b.length)),I++,I==this.ranges.length))break;let K=this.ranges[I].from,ct=this.lineAfter(K);b+=ct,O=K+ct.length}return{line:b,end:O}}skipGapsTo(f,b,O){for(;;){let I=this.ranges[this.rangeIndex].to,j=f+b;if(O>0?I>j:I>=j)break;let K=this.ranges[++this.rangeIndex].from;b+=K-I}return b}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to<this.parsedPos;)this.rangeIndex++}emitToken(f,b,O,I){let j=4;if(this.ranges.length>1){I=this.skipGapsTo(b,I,1),b+=I;let ct=this.chunk.length;I=this.skipGapsTo(O,I,-1),O+=I,j+=this.chunk.length-ct}let K=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&j==4&&K>=0&&this.chunk[K]==f&&this.chunk[K+2]==b?this.chunk[K+2]=O:this.chunk.push(f,b,O,j),I}parseLine(f){let{line:b,end:O}=this.nextLine(),I=0,{streamParser:j}=this.lang,K=new De(b,f?f.state.tabSize:4,f?ce(f.state):2);if(K.eol())j.blankLine(this.state,K.indentUnit);else for(;!K.eol();){let ct=x(j.token,K,this.state);if(ct&&(I=this.emitToken(this.lang.tokenTable.resolve(ct),this.parsedPos+K.start,this.parsedPos+K.pos,I)),K.start>1e4)break}this.parsedPos=O,this.moveRangeIndex(),this.parsedPos<this.to&&this.parsedPos++}finishChunk(){let f=Tree.build({buffer:this.chunk,start:this.chunkStart,length:this.parsedPos-this.chunkStart,nodeSet:_,topID:0,maxBufferLength:2048,reused:this.chunkReused});f=new Tree(f.type,f.children,f.positions,f.length,[[this.lang.stateAfter,this.lang.streamParser.copyState(this.state)]]),this.chunks.push(f),this.chunkPos.push(this.chunkStart-this.ranges[0].from),this.chunk=[],this.chunkReused=void 0,this.chunkStart=this.parsedPos}finish(){return new Tree(this.lang.topNode,this.chunks,this.chunkPos,this.parsedPos-this.ranges[0].from).balance()}}function x(S,f,b){f.start=f.pos;for(let O=0;O<10;O++){let I=S(f,b);if(f.pos>f.start)return I}throw new Error("Stream parser failed to advance stream.")}const E=Object.create(null),B=[P.Jq.none],_=new P.Lj(B),Y=[],ot=Object.create(null),nt=Object.create(null);for(let[S,f]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])nt[S]=he(E,f);class vt{constructor(f){this.extra=f,this.table=Object.assign(Object.create(null),nt)}resolve(f){return f?this.table[f]||(this.table[f]=he(this.extra,f)):0}}const gt=new vt(E);function Nt(S,f){Y.indexOf(S)>-1||(Y.push(S),console.warn(f))}function he(S,f){let b=[];for(let ct of f.split(" ")){let at=[];for(let Mt of ct.split(".")){let Vt=S[Mt]||kt.pJ[Mt];Vt?typeof Vt=="function"?at.length?at=at.map(Vt):Nt(Mt,`Modifier ${Mt} used at start of tag`):at.length?Nt(Mt,`Tag ${Mt} used as modifier`):at=Array.isArray(Vt)?Vt:[Vt]:Nt(Mt,`Unknown highlighting tag ${Mt}`)}for(let Mt of at)b.push(Mt)}if(!b.length)return 0;let O=f.replace(/ /g,"_"),I=O+" "+b.map(ct=>ct.id),j=ot[I];if(j)return j.id;let K=ot[I]=P.Jq.define({id:B.length,name:O,props:[(0,kt.Gv)({[O]:b})]});return B.push(K),K.id}function Se(S,f){let b=NodeType.define({id:B.length,name:"Document",props:[ke.add(()=>S),hi.add(()=>O=>f.getIndent(O))],top:!0});return B.push(b),b}function je(S){return S.length<=4096&&/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/.test(S)}function ti(S){for(let f=S.iter();!f.next().done;)if(je(f.value))return!0;return!1}function ai(S){let f=!1;return S.iterChanges((b,O,I,j,K)=>{!f&&ti(K)&&(f=!0)}),f}const xi=Q.r$.define({combine:S=>S.some(f=>f)});function _e(S={}){let f=[Pi];return S.alwaysIsolate&&f.push(xi.of(!0)),f}const Pi=Z.lg.fromClass(class{constructor(S){this.always=S.state.facet(xi)||S.textDirection!=Z.Nm.LTR||S.state.facet(Z.tk.perLineTextDirection),this.hasRTL=!this.always&&ti(S.state.doc),this.tree=_t(S.state),this.decorations=this.always||this.hasRTL?yi(S,this.tree,this.always):Z.p.none}update(S){let f=S.state.facet(xi)||S.view.textDirection!=Z.Nm.LTR||S.state.facet(Z.tk.perLineTextDirection);if(!f&&!this.hasRTL&&ai(S.changes)&&(this.hasRTL=!0),!f&&!this.hasRTL)return;let b=_t(S.state);(f!=this.always||b!=this.tree||S.docChanged||S.viewportChanged)&&(this.tree=b,this.always=f,this.decorations=yi(S.view,b,f))}},{provide:S=>{function f(b){var O,I;return(I=(O=b.plugin(S))===null||O===void 0?void 0:O.decorations)!==null&&I!==void 0?I:Z.p.none}return[Z.tk.outerDecorations.of(f),Q.Wl.lowest(Z.tk.bidiIsolatedRanges.of(f))]}});function yi(S,f,b){let O=new Q.f_,I=S.visibleRanges;b||(I=ui(I,S.state.doc));for(let{from:j,to:K}of I)f.iterate({enter:ct=>{let at=ct.type.prop(P.md.isolate);at&&O.add(ct.from,ct.to,ji[at])},from:j,to:K});return O.finish()}function ui(S,f){let b=f.iter(),O=0,I=[],j=null;for(let{from:K,to:ct}of S)if(!(j&&j.to>K&&(K=j.to,K>=ct)))for(O+b.value.length<K&&(b.next(K-(O+b.value.length)),O=K);;){let at=O,Mt=O+b.value.length;if(!b.lineBreak&&je(b.value)&&(j&&j.to>at-10?j.to=Math.min(ct,Mt):I.push(j={from:at,to:Math.min(ct,Mt)})),Mt>=ct)break;O=Mt,b.next()}return I}const ji={rtl:Z.p.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:Z.Nm.RTL}),ltr:Z.p.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:Z.Nm.LTR}),auto:Z.p.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})}},28519:function(tn,vi,Zt){Zt.d(vi,{Fv:function(){return Jt},Q2:function(){return He},ir:function(){return Je},p0:function(){return Pe}});var P=Zt(47421),Q=Zt(78120),Z=Zt(18580);class kt{constructor(q,lt,rt){this.from=q,this.to=lt,this.diagnostic=rt}}class se{constructor(q,lt,rt){this.diagnostics=q,this.panel=lt,this.selected=rt}static init(q,lt,rt){let bt=rt.facet(Bt).markerFilter;bt&&(q=bt(q,rt));let Ot=q.slice().sort((qt,oe)=>qt.from-oe.from||qt.to-oe.to),Ht=new Q.f_,Wt=[],ae=0;for(let qt=0;;){let oe=qt==Ot.length?null:Ot[qt];if(!oe&&!Wt.length)break;let ge,be;for(Wt.length?(ge=ae,be=Wt.reduce((Gt,Kt)=>Math.min(Gt,Kt.to),oe&&oe.from>ge?oe.from:1e8)):(ge=oe.from,be=oe.to,Wt.push(oe),qt++);qt<Ot.length;){let Gt=Ot[qt];if(Gt.from==ge&&(Gt.to>Gt.from||Gt.to==ge))Wt.push(Gt),qt++,be=Math.min(Gt.to,be);else{be=Math.min(Gt.from,be);break}}let si=Ie(Wt);if(Wt.some(Gt=>Gt.from==Gt.to||Gt.from==Gt.to-1&&rt.doc.lineAt(Gt.from).to==Gt.from))Ht.add(ge,ge,P.p.widget({widget:new Ut(si),diagnostics:Wt.slice()}));else{let Gt=Wt.reduce((Kt,ci)=>ci.markClass?Kt+" "+ci.markClass:Kt,"");Ht.add(ge,be,P.p.mark({class:"cm-lintRange cm-lintRange-"+si+Gt,diagnostics:Wt.slice(),inclusiveEnd:Wt.some(Kt=>Kt.to>be)}))}ae=be;for(let Gt=0;Gt<Wt.length;Gt++)Wt[Gt].to<=ae&&Wt.splice(Gt--,1)}let ue=Ht.finish();return new se(ue,lt,Ce(ue))}}function Ce(G,q=null,lt=0){let rt=null;return G.between(lt,1e9,(bt,Ot,{spec:Ht})=>{if(!(q&&Ht.diagnostics.indexOf(q)<0))if(!rt)rt=new kt(bt,Ot,q||Ht.diagnostics[0]);else{if(Ht.diagnostics.indexOf(rt.diagnostic)<0)return!1;rt=new kt(rt.from,Ot,rt.diagnostic)}}),rt}function ke(G,q){let lt=q.pos,rt=q.end||lt,bt=G.state.facet(Bt).hideOn(G,lt,rt);if(bt!=null)return bt;let Ot=G.startState.doc.lineAt(q.pos);return!!(G.effects.some(Ht=>Ht.is(fe))||G.changes.touchesRange(Ot.from,Math.max(Ot.to,rt)))}function Oe(G,q){return G.field(_t,!1)?q:q.concat(Q.Py.appendConfig.of(Ae))}function Pe(G,q){return{effects:Oe(G,[fe.of(q)])}}const fe=Q.Py.define(),me=Q.Py.define(),we=Q.Py.define(),_t=Q.QQ.define({create(){return new se(P.p.none,null,null)},update(G,q){if(q.docChanged&&G.diagnostics.size){let lt=G.diagnostics.map(q.changes),rt=null,bt=G.panel;if(G.selected){let Ot=q.changes.mapPos(G.selected.from,1);rt=Ce(lt,G.selected.diagnostic,Ot)||Ce(lt,null,Ot)}!lt.size&&bt&&q.state.facet(Bt).autoPanel&&(bt=null),G=new se(lt,bt,rt)}for(let lt of q.effects)if(lt.is(fe)){let rt=q.state.facet(Bt).autoPanel?lt.value.length?te.open:null:G.panel;G=se.init(lt.value,rt,q.state)}else lt.is(me)?G=new se(G.diagnostics,lt.value?te.open:null,G.selected):lt.is(we)&&(G=new se(G.diagnostics,G.panel,lt.value));return G},provide:G=>[P.mH.from(G,q=>q.panel),P.tk.decorations.from(G,q=>q.diagnostics)]});function ri(G){let q=G.field(_t,!1);return q?q.diagnostics.size:0}const ze=P.p.mark({class:"cm-lintRange cm-lintRange-active"});function oi(G,q,lt){let{diagnostics:rt}=G.state.field(_t),bt,Ot=-1,Ht=-1;rt.between(q-(lt<0?1:0),q+(lt>0?1:0),(ae,ue,{spec:qt})=>{if(q>=ae&&q<=ue&&(ae==ue||(q>ae||lt>0)&&(q<ue||lt<0)))return bt=qt.diagnostics,Ot=ae,Ht=ue,!1});let Wt=G.state.facet(Bt).tooltipFilter;return bt&&Wt&&(bt=Wt(bt,G.state)),bt?{pos:Ot,end:Ht,above:G.state.doc.lineAt(Ot).to<Ht,create(){return{dom:Ye(G,bt)}}}:null}function Ye(G,q){return(0,Z.Z)("ul",{class:"cm-tooltip-lint"},q.map(lt=>Xe(G,lt,!1)))}const ni=G=>{let q=G.state.field(_t,!1);(!q||!q.panel)&&G.dispatch({effects:Oe(G.state,[me.of(!0)])});let lt=(0,P.Sd)(G,te.open);return lt&<.dom.querySelector(".cm-panel-lint ul").focus(),!0},Be=G=>{let q=G.state.field(_t,!1);return!q||!q.panel?!1:(G.dispatch({effects:me.of(!1)}),!0)},Me=G=>{let q=G.state.field(_t,!1);if(!q)return!1;let lt=G.state.selection.main,rt=q.diagnostics.iter(lt.to+1);return!rt.value&&(rt=q.diagnostics.iter(0),!rt.value||rt.from==lt.from&&rt.to==lt.to)?!1:(G.dispatch({selection:{anchor:rt.from,head:rt.to},scrollIntoView:!0}),!0)},de=G=>{let{state:q}=G,lt=q.field(_t,!1);if(!lt)return!1;let rt=q.selection.main,bt,Ot,Ht,Wt;return lt.diagnostics.between(0,q.doc.length,(ae,ue)=>{ue<rt.to&&(bt==null||bt<ae)&&(bt=ae,Ot=ue),(Ht==null||ae>Ht)&&(Ht=ae,Wt=ue)}),Ht==null||bt==null&&Ht==rt.from?!1:(G.dispatch({selection:{anchor:bt??Ht,head:Ot??Wt},scrollIntoView:!0}),!0)},Jt=[{key:"Mod-Shift-m",run:ni,preventDefault:!0},{key:"F8",run:Me}],Pt=P.lg.fromClass(class{constructor(G){this.view=G,this.timeout=-1,this.set=!0;let{delay:q}=G.state.facet(Bt);this.lintTime=Date.now()+q,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,q)}run(){clearTimeout(this.timeout);let G=Date.now();if(G<this.lintTime-10)this.timeout=setTimeout(this.run,this.lintTime-G);else{this.set=!1;let{state:q}=this.view,{sources:lt}=q.facet(Bt);lt.length&&re(lt.map(rt=>Promise.resolve(rt(this.view))),rt=>{this.view.state.doc==q.doc&&this.view.dispatch(Pe(this.view.state,rt.reduce((bt,Ot)=>bt.concat(Ot))))},rt=>{(0,P.OO)(this.view.state,rt)})}}update(G){let q=G.state.facet(Bt);(G.docChanged||q!=G.startState.facet(Bt)||q.needsRefresh&&q.needsRefresh(G))&&(this.lintTime=Date.now()+q.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,q.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}});function re(G,q,lt){let rt=[],bt=-1;for(let Ot of G)Ot.then(Ht=>{rt.push(Ht),clearTimeout(bt),rt.length==G.length?q(rt):bt=setTimeout(()=>q(rt),200)},lt)}const Bt=Q.r$.define({combine(G){return Object.assign({sources:G.map(q=>q.source).filter(q=>q!=null)},(0,Q.BO)(G.map(q=>q.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{needsRefresh:(q,lt)=>q?lt?rt=>q(rt)||lt(rt):q:lt}))}});function Je(G,q={}){return[Bt.of({source:G,config:q}),Pt,Ae]}function di(G){let q=G.plugin(Pt);q&&q.force()}function Fe(G){let q=[];if(G)t:for(let{name:lt}of G){for(let rt=0;rt<lt.length;rt++){let bt=lt[rt];if(/[a-zA-Z]/.test(bt)&&!q.some(Ot=>Ot.toLowerCase()==bt.toLowerCase())){q.push(bt);continue t}}q.push("")}return q}function Xe(G,q,lt){var rt;let bt=lt?Fe(q.actions):[];return(0,Z.Z)("li",{class:"cm-diagnostic cm-diagnostic-"+q.severity},(0,Z.Z)("span",{class:"cm-diagnosticText"},q.renderMessage?q.renderMessage(G):q.message),(rt=q.actions)===null||rt===void 0?void 0:rt.map((Ot,Ht)=>{let Wt=!1,ae=ge=>{if(ge.preventDefault(),Wt)return;Wt=!0;let be=Ce(G.state.field(_t).diagnostics,q);be&&Ot.apply(G,be.from,be.to)},{name:ue}=Ot,qt=bt[Ht]?ue.indexOf(bt[Ht]):-1,oe=qt<0?ue:[ue.slice(0,qt),(0,Z.Z)("u",ue.slice(qt,qt+1)),ue.slice(qt+1)];return(0,Z.Z)("button",{type:"button",class:"cm-diagnosticAction",onclick:ae,onmousedown:ae,"aria-label":` Action: ${ue}${qt<0?"":` (access key "${bt[Ht]})"`}.`},oe)}),q.source&&(0,Z.Z)("div",{class:"cm-diagnosticSource"},q.source))}class Ut extends P.l9{constructor(q){super(),this.sev=q}eq(q){return q.sev==this.sev}toDOM(){return(0,Z.Z)("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class ce{constructor(q,lt){this.diagnostic=lt,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=Xe(q,lt,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class te{constructor(q){this.view=q,this.items=[];let lt=bt=>{if(bt.keyCode==27)Be(this.view),this.view.focus();else if(bt.keyCode==38||bt.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(bt.keyCode==40||bt.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(bt.keyCode==36)this.moveSelection(0);else if(bt.keyCode==35)this.moveSelection(this.items.length-1);else if(bt.keyCode==13)this.view.focus();else if(bt.keyCode>=65&&bt.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:Ot}=this.items[this.selectedIndex],Ht=Fe(Ot.actions);for(let Wt=0;Wt<Ht.length;Wt++)if(Ht[Wt].toUpperCase().charCodeAt(0)==bt.keyCode){let ae=Ce(this.view.state.field(_t).diagnostics,Ot);ae&&Ot.actions[Wt].apply(q,ae.from,ae.to)}}else return;bt.preventDefault()},rt=bt=>{for(let Ot=0;Ot<this.items.length;Ot++)this.items[Ot].dom.contains(bt.target)&&this.moveSelection(Ot)};this.list=(0,Z.Z)("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:lt,onclick:rt}),this.dom=(0,Z.Z)("div",{class:"cm-panel-lint"},this.list,(0,Z.Z)("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>Be(this.view)},"\xD7")),this.update()}get selectedIndex(){let q=this.view.state.field(_t).selected;if(!q)return-1;for(let lt=0;lt<this.items.length;lt++)if(this.items[lt].diagnostic==q.diagnostic)return lt;return-1}update(){let{diagnostics:q,selected:lt}=this.view.state.field(_t),rt=0,bt=!1,Ot=null,Ht=new Set;for(q.between(0,this.view.state.doc.length,(Wt,ae,{spec:ue})=>{for(let qt of ue.diagnostics){if(Ht.has(qt))continue;Ht.add(qt);let oe=-1,ge;for(let be=rt;be<this.items.length;be++)if(this.items[be].diagnostic==qt){oe=be;break}oe<0?(ge=new ce(this.view,qt),this.items.splice(rt,0,ge),bt=!0):(ge=this.items[oe],oe>rt&&(this.items.splice(rt,oe-rt),bt=!0)),lt&&ge.diagnostic==lt.diagnostic?ge.dom.hasAttribute("aria-selected")||(ge.dom.setAttribute("aria-selected","true"),Ot=ge):ge.dom.hasAttribute("aria-selected")&&ge.dom.removeAttribute("aria-selected"),rt++}});rt<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)bt=!0,this.items.pop();this.items.length==0&&(this.items.push(new ce(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),bt=!0),Ot?(this.list.setAttribute("aria-activedescendant",Ot.id),this.view.requestMeasure({key:this,read:()=>({sel:Ot.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:Wt,panel:ae})=>{let ue=ae.height/this.list.offsetHeight;Wt.top<ae.top?this.list.scrollTop-=(ae.top-Wt.top)/ue:Wt.bottom>ae.bottom&&(this.list.scrollTop+=(Wt.bottom-ae.bottom)/ue)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),bt&&this.sync()}sync(){let q=this.list.firstChild;function lt(){let rt=q;q=rt.nextSibling,rt.remove()}for(let rt of this.items)if(rt.dom.parentNode==this.list){for(;q!=rt.dom;)lt();q=rt.dom.nextSibling}else this.list.insertBefore(rt.dom,q);for(;q;)lt()}moveSelection(q){if(this.selectedIndex<0)return;let lt=this.view.state.field(_t),rt=Ce(lt.diagnostics,this.items[q].diagnostic);rt&&this.view.dispatch({selection:{anchor:rt.from,head:rt.to},scrollIntoView:!0,effects:we.of(rt)})}static open(q){return new te(q)}}function ve(G,q='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${q}>${encodeURIComponent(G)}</svg>')`}function Te(G){return ve(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${G}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}const qe=P.tk.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:Te("#d11")},".cm-lintRange-warning":{backgroundImage:Te("orange")},".cm-lintRange-info":{backgroundImage:Te("#999")},".cm-lintRange-hint":{backgroundImage:Te("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});function hi(G){return G=="error"?4:G=="warning"?3:G=="info"?2:1}function Ie(G){let q="hint",lt=1;for(let rt of G){let bt=hi(rt.severity);bt>lt&&(lt=bt,q=rt.severity)}return q}class ft extends P.SJ{constructor(q){super(),this.diagnostics=q,this.severity=Ie(q)}toDOM(q){let lt=document.createElement("div");lt.className="cm-lint-marker cm-lint-marker-"+this.severity;let rt=this.diagnostics,bt=q.state.facet(yt).tooltipFilter;return bt&&(rt=bt(rt,q.state)),rt.length&&(lt.onmouseover=()=>Dt(q,lt,rt)),lt}}function Ct(G,q){let lt=rt=>{let bt=q.getBoundingClientRect();if(!(rt.clientX>bt.left-10&&rt.clientX<bt.right+10&&rt.clientY>bt.top-10&&rt.clientY<bt.bottom+10)){for(let Ot=rt.target;Ot;Ot=Ot.parentNode)if(Ot.nodeType==1&&Ot.classList.contains("cm-tooltip-lint"))return;window.removeEventListener("mousemove",lt),G.state.field(le)&&G.dispatch({effects:Et.of(null)})}};window.addEventListener("mousemove",lt)}function Dt(G,q,lt){function rt(){let Ht=G.elementAtHeight(q.getBoundingClientRect().top+5-G.documentTop);G.coordsAtPos(Ht.from)&&G.dispatch({effects:Et.of({pos:Ht.from,above:!1,clip:!1,create(){return{dom:Ye(G,lt),getCoords:()=>q.getBoundingClientRect()}}})}),q.onmouseout=q.onmousemove=null,Ct(G,q)}let{hoverTime:bt}=G.state.facet(yt),Ot=setTimeout(rt,bt);q.onmouseout=()=>{clearTimeout(Ot),q.onmouseout=q.onmousemove=null},q.onmousemove=()=>{clearTimeout(Ot),Ot=setTimeout(rt,bt)}}function At(G,q){let lt=Object.create(null);for(let bt of q){let Ot=G.lineAt(bt.from);(lt[Ot.from]||(lt[Ot.from]=[])).push(bt)}let rt=[];for(let bt in lt)rt.push(new ft(lt[bt]).range(+bt));return Q.Xs.of(rt,!0)}const jt=(0,P.v5)({class:"cm-gutter-lint",markers:G=>G.state.field(Xt),widgetMarker:(G,q,lt)=>{let rt=[];return G.state.field(Xt).between(lt.from,lt.to,(bt,Ot,Ht)=>{bt>lt.from&&bt<lt.to&&rt.push(...Ht.diagnostics)}),rt.length?new ft(rt):null}}),Xt=Q.QQ.define({create(){return Q.Xs.empty},update(G,q){G=G.map(q.changes);let lt=q.state.facet(yt).markerFilter;for(let rt of q.effects)if(rt.is(fe)){let bt=rt.value;lt&&(bt=lt(bt||[],q.state)),G=At(q.state.doc,bt.slice(0))}return G}}),Et=Q.Py.define(),le=Q.QQ.define({create(){return null},update(G,q){return G&&q.docChanged&&(G=ke(q,G)?null:Object.assign(Object.assign({},G),{pos:q.changes.mapPos(G.pos)})),q.effects.reduce((lt,rt)=>rt.is(Et)?rt.value:lt,G)},provide:G=>P.hJ.from(G)}),We=P.tk.baseTheme({".cm-gutter-lint":{width:"1.4em","& .cm-gutterElement":{padding:".2em"}},".cm-lint-marker":{width:"1em",height:"1em"},".cm-lint-marker-info":{content:ve('<path fill="#aaf" stroke="#77e" stroke-width="6" stroke-linejoin="round" d="M5 5L35 5L35 35L5 35Z"/>')},".cm-lint-marker-warning":{content:ve('<path fill="#fe8" stroke="#fd7" stroke-width="6" stroke-linejoin="round" d="M20 6L37 35L3 35Z"/>')},".cm-lint-marker-error":{content:ve('<circle cx="20" cy="20" r="15" fill="#f87" stroke="#f43" stroke-width="6"/>')}}),Ae=[_t,P.tk.decorations.compute([_t],G=>{let{selected:q,panel:lt}=G.field(_t);return!q||!lt||q.from==q.to?P.p.none:P.p.set([ze.range(q.from,q.to)])}),(0,P.bF)(oi,{hideOn:ke}),qe],yt=Q.r$.define({combine(G){return(0,Q.BO)(G,{hoverTime:300,markerFilter:null,tooltipFilter:null})}});function He(G={}){return[yt.of(G),Xt,jt,We,le]}function Ne(G,q){let lt=G.field(_t,!1);if(lt&<.diagnostics.size){let rt=[],bt=[],Ot=-1;for(let Ht=RangeSet.iter([lt.diagnostics]);;Ht.next()){for(let Wt=0;Wt<rt.length;Wt++)(!Ht.value||Ht.value.spec.diagnostics.indexOf(rt[Wt])<0)&&(q(rt[Wt],bt[Wt],Ot),rt.splice(Wt,1),bt.splice(Wt--,1));if(!Ht.value)break;for(let Wt of Ht.value.spec.diagnostics)rt.indexOf(Wt)<0&&(rt.push(Wt),bt.push(Ht.from));Ot=Ht.to}}}},49892:function(tn,vi,Zt){Zt.d(vi,{Lp:function(){return si},sW:function(){return de}});var P=Zt(47421),Q=Zt(78120),Z=Zt(18580);const kt=typeof String.prototype.normalize=="function"?V=>V.normalize("NFKD"):V=>V;class se{constructor(D,$,z=0,U=D.length,ht,St){this.test=St,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=D.iterRange(z,U),this.bufferStart=z,this.normalize=ht?wt=>ht(kt(wt)):kt,this.query=this.normalize($)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return(0,Q.gm)(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let D=this.peek();if(D<0)return this.done=!0,this;let $=(0,Q.bg)(D),z=this.bufferStart+this.bufferPos;this.bufferPos+=(0,Q.nZ)(D);let U=this.normalize($);if(U.length)for(let ht=0,St=z;;ht++){let wt=U.charCodeAt(ht),It=this.match(wt,St,this.bufferPos+this.bufferStart);if(ht==U.length-1){if(It)return this.value=It,this;break}St==z&&ht<$.length&&$.charCodeAt(ht)==wt&&St++}}}match(D,$,z){let U=null;for(let ht=0;ht<this.matches.length;ht+=2){let St=this.matches[ht],wt=!1;this.query.charCodeAt(St)==D&&(St==this.query.length-1?U={from:this.matches[ht+1],to:z}:(this.matches[ht]++,wt=!0)),wt||(this.matches.splice(ht,2),ht-=2)}return this.query.charCodeAt(0)==D&&(this.query.length==1?U={from:$,to:z}:this.matches.push(1,$)),U&&this.test&&!this.test(U.from,U.to,this.buffer,this.bufferStart)&&(U=null),U}}typeof Symbol<"u"&&(se.prototype[Symbol.iterator]=function(){return this});const Ce={from:-1,to:-1,match:/.*/.exec("")},ke="gm"+(/x/.unicode==null?"":"u");class Oe{constructor(D,$,z,U=0,ht=D.length){if(this.text=D,this.to=ht,this.curLine="",this.done=!1,this.value=Ce,/\\[sWDnr]|\n|\r|\[\^/.test($))return new me(D,$,z,U,ht);this.re=new RegExp($,ke+(z!=null&&z.ignoreCase?"i":"")),this.test=z==null?void 0:z.test,this.iter=D.iter();let St=D.lineAt(U);this.curLineStart=St.from,this.matchPos=_t(D,U),this.getLine(this.curLineStart)}getLine(D){this.iter.next(D),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let D=this.matchPos-this.curLineStart;;){this.re.lastIndex=D;let $=this.matchPos<=this.to&&this.re.exec(this.curLine);if($){let z=this.curLineStart+$.index,U=z+$[0].length;if(this.matchPos=_t(this.text,U+(z==U?1:0)),z==this.curLineStart+this.curLine.length&&this.nextLine(),(z<U||z>this.value.to)&&(!this.test||this.test(z,U,$)))return this.value={from:z,to:U,match:$},this;D=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),D=0;else return this.done=!0,this}}}const Pe=new WeakMap;class fe{constructor(D,$){this.from=D,this.text=$}get to(){return this.from+this.text.length}static get(D,$,z){let U=Pe.get(D);if(!U||U.from>=z||U.to<=$){let wt=new fe($,D.sliceString($,z));return Pe.set(D,wt),wt}if(U.from==$&&U.to==z)return U;let{text:ht,from:St}=U;return St>$&&(ht=D.sliceString($,St)+ht,St=$),U.to<z&&(ht+=D.sliceString(U.to,z)),Pe.set(D,new fe(St,ht)),new fe($,ht.slice($-St,z-St))}}class me{constructor(D,$,z,U,ht){this.text=D,this.to=ht,this.done=!1,this.value=Ce,this.matchPos=_t(D,U),this.re=new RegExp($,ke+(z!=null&&z.ignoreCase?"i":"")),this.test=z==null?void 0:z.test,this.flat=fe.get(D,U,this.chunkEnd(U+5e3))}chunkEnd(D){return D>=this.to?this.to:this.text.lineAt(D).to}next(){for(;;){let D=this.re.lastIndex=this.matchPos-this.flat.from,$=this.re.exec(this.flat.text);if($&&!$[0]&&$.index==D&&(this.re.lastIndex=D+1,$=this.re.exec(this.flat.text)),$){let z=this.flat.from+$.index,U=z+$[0].length;if((this.flat.to>=this.to||$.index+$[0].length<=this.flat.text.length-10)&&(!this.test||this.test(z,U,$)))return this.value={from:z,to:U,match:$},this.matchPos=_t(this.text,U+(z==U?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=fe.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(Oe.prototype[Symbol.iterator]=me.prototype[Symbol.iterator]=function(){return this});function we(V){try{return new RegExp(V,ke),!0}catch{return!1}}function _t(V,D){if(D>=V.length)return D;let $=V.lineAt(D),z;for(;D<$.to&&(z=$.text.charCodeAt(D-$.from))>=56320&&z<57344;)D++;return D}function ri(V){let D=String(V.state.doc.lineAt(V.state.selection.main.head).number),$=(0,Z.Z)("input",{class:"cm-textfield",name:"line",value:D}),z=(0,Z.Z)("form",{class:"cm-gotoLine",onkeydown:ht=>{ht.keyCode==27?(ht.preventDefault(),V.dispatch({effects:ze.of(!1)}),V.focus()):ht.keyCode==13&&(ht.preventDefault(),U())},onsubmit:ht=>{ht.preventDefault(),U()}},(0,Z.Z)("label",V.state.phrase("Go to line"),": ",$)," ",(0,Z.Z)("button",{class:"cm-button",type:"submit"},V.state.phrase("go")),(0,Z.Z)("button",{name:"close",onclick:()=>{V.dispatch({effects:ze.of(!1)}),V.focus()},"aria-label":V.state.phrase("close"),type:"button"},["\xD7"]));function U(){let ht=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec($.value);if(!ht)return;let{state:St}=V,wt=St.doc.lineAt(St.selection.main.head),[,It,Qt,$e,Ke]=ht,Qe=$e?+$e.slice(1):0,mi=Qt?+Qt:wt.number;if(Qt&&Ke){let gi=mi/100;It&&(gi=gi*(It=="-"?-1:1)+wt.number/St.doc.lines),mi=Math.round(St.doc.lines*gi)}else Qt&&It&&(mi=mi*(It=="-"?-1:1)+wt.number);let Ee=St.doc.line(Math.max(1,Math.min(St.doc.lines,mi))),Ze=Q.jT.cursor(Ee.from+Math.max(0,Math.min(Qe,Ee.length)));V.dispatch({effects:[ze.of(!1),P.tk.scrollIntoView(Ze.from,{y:"center"})],selection:Ze}),V.focus()}return{dom:z}}const ze=Q.Py.define(),oi=Q.QQ.define({create(){return!0},update(V,D){for(let $ of D.effects)$.is(ze)&&(V=$.value);return V},provide:V=>P.mH.from(V,D=>D?ri:null)}),Ye=V=>{let D=(0,P.Sd)(V,ri);if(!D){let $=[ze.of(!0)];V.state.field(oi,!1)==null&&$.push(Q.Py.appendConfig.of([oi,ni])),V.dispatch({effects:$}),D=(0,P.Sd)(V,ri)}return D&&D.dom.querySelector("input").select(),!0},ni=P.tk.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px",position:"relative","& label":{fontSize:"80%"},"& [name=close]":{position:"absolute",top:"0",bottom:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:"0"}}}),Be={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},Me=Q.r$.define({combine(V){return(0,Q.BO)(V,Be,{highlightWordAroundCursor:(D,$)=>D||$,minSelectionLength:Math.min,maxMatches:Math.min})}});function de(V){let D=[di,Je];return V&&D.push(Me.of(V)),D}const Jt=P.p.mark({class:"cm-selectionMatch"}),Pt=P.p.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function re(V,D,$,z){return($==0||V(D.sliceDoc($-1,$))!=Q.D0.Word)&&(z==D.doc.length||V(D.sliceDoc(z,z+1))!=Q.D0.Word)}function Bt(V,D,$,z){return V(D.sliceDoc($,$+1))==Q.D0.Word&&V(D.sliceDoc(z-1,z))==Q.D0.Word}const Je=P.lg.fromClass(class{constructor(V){this.decorations=this.getDeco(V)}update(V){(V.selectionSet||V.docChanged||V.viewportChanged)&&(this.decorations=this.getDeco(V.view))}getDeco(V){let D=V.state.facet(Me),{state:$}=V,z=$.selection;if(z.ranges.length>1)return P.p.none;let U=z.main,ht,St=null;if(U.empty){if(!D.highlightWordAroundCursor)return P.p.none;let It=$.wordAt(U.head);if(!It)return P.p.none;St=$.charCategorizer(U.head),ht=$.sliceDoc(It.from,It.to)}else{let It=U.to-U.from;if(It<D.minSelectionLength||It>200)return P.p.none;if(D.wholeWords){if(ht=$.sliceDoc(U.from,U.to),St=$.charCategorizer(U.head),!(re(St,$,U.from,U.to)&&Bt(St,$,U.from,U.to)))return P.p.none}else if(ht=$.sliceDoc(U.from,U.to),!ht)return P.p.none}let wt=[];for(let It of V.visibleRanges){let Qt=new se($.doc,ht,It.from,It.to);for(;!Qt.next().done;){let{from:$e,to:Ke}=Qt.value;if((!St||re(St,$,$e,Ke))&&(U.empty&&$e<=U.from&&Ke>=U.to?wt.push(Pt.range($e,Ke)):($e>=U.to||Ke<=U.from)&&wt.push(Jt.range($e,Ke)),wt.length>D.maxMatches))return P.p.none}}return P.p.set(wt)}},{decorations:V=>V.decorations}),di=P.tk.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),Fe=({state:V,dispatch:D})=>{let{selection:$}=V,z=Q.jT.create($.ranges.map(U=>V.wordAt(U.head)||Q.jT.cursor(U.head)),$.mainIndex);return z.eq($)?!1:(D(V.update({selection:z})),!0)};function Xe(V,D){let{main:$,ranges:z}=V.selection,U=V.wordAt($.head),ht=U&&U.from==$.from&&U.to==$.to;for(let St=!1,wt=new se(V.doc,D,z[z.length-1].to);;)if(wt.next(),wt.done){if(St)return null;wt=new se(V.doc,D,0,Math.max(0,z[z.length-1].from-1)),St=!0}else{if(St&&z.some(It=>It.from==wt.value.from))continue;if(ht){let It=V.wordAt(wt.value.from);if(!It||It.from!=wt.value.from||It.to!=wt.value.to)continue}return wt.value}}const Ut=({state:V,dispatch:D})=>{let{ranges:$}=V.selection;if($.some(ht=>ht.from===ht.to))return Fe({state:V,dispatch:D});let z=V.sliceDoc($[0].from,$[0].to);if(V.selection.ranges.some(ht=>V.sliceDoc(ht.from,ht.to)!=z))return!1;let U=Xe(V,z);return U?(D(V.update({selection:V.selection.addRange(Q.jT.range(U.from,U.to),!1),effects:P.tk.scrollIntoView(U.to)})),!0):!1},ce=Q.r$.define({combine(V){return(0,Q.BO)(V,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:D=>new Gt(D),scrollToMatch:D=>P.tk.scrollIntoView(D)})}});function te(V){return V?[ce.of(V),Li]:Li}class ve{constructor(D){this.search=D.search,this.caseSensitive=!!D.caseSensitive,this.literal=!!D.literal,this.regexp=!!D.regexp,this.replace=D.replace||"",this.valid=!!this.search&&(!this.regexp||we(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!D.wholeWord}unquote(D){return this.literal?D:D.replace(/\\([nrt\\])/g,($,z)=>z=="n"?`
|
|
18
|
+
`:z=="r"?"\r":z=="t"?" ":"\\")}eq(D){return this.search==D.search&&this.replace==D.replace&&this.caseSensitive==D.caseSensitive&&this.regexp==D.regexp&&this.wholeWord==D.wholeWord}create(){return this.regexp?new jt(this):new Ie(this)}getCursor(D,$=0,z){let U=D.doc?D:Q.yy.create({doc:D});return z==null&&(z=U.doc.length),this.regexp?ft(this,U,$,z):qe(this,U,$,z)}}class Te{constructor(D){this.spec=D}}function qe(V,D,$,z){return new se(D.doc,V.unquoted,$,z,V.caseSensitive?void 0:U=>U.toLowerCase(),V.wholeWord?hi(D.doc,D.charCategorizer(D.selection.main.head)):void 0)}function hi(V,D){return($,z,U,ht)=>((ht>$||ht+U.length<z)&&(ht=Math.max(0,$-2),U=V.sliceString(ht,Math.min(V.length,z+2))),(D(Ct(U,$-ht))!=Q.D0.Word||D(Dt(U,$-ht))!=Q.D0.Word)&&(D(Dt(U,z-ht))!=Q.D0.Word||D(Ct(U,z-ht))!=Q.D0.Word))}class Ie extends Te{constructor(D){super(D)}nextMatch(D,$,z){let U=qe(this.spec,D,z,D.doc.length).nextOverlapping();if(U.done){let ht=Math.min(D.doc.length,$+this.spec.unquoted.length);U=qe(this.spec,D,0,ht).nextOverlapping()}return U.done||U.value.from==$&&U.value.to==z?null:U.value}prevMatchInRange(D,$,z){for(let U=z;;){let ht=Math.max($,U-1e4-this.spec.unquoted.length),St=qe(this.spec,D,ht,U),wt=null;for(;!St.nextOverlapping().done;)wt=St.value;if(wt)return wt;if(ht==$)return null;U-=1e4}}prevMatch(D,$,z){let U=this.prevMatchInRange(D,0,$);return U||(U=this.prevMatchInRange(D,Math.max(0,z-this.spec.unquoted.length),D.doc.length)),U&&(U.from!=$||U.to!=z)?U:null}getReplacement(D){return this.spec.unquote(this.spec.replace)}matchAll(D,$){let z=qe(this.spec,D,0,D.doc.length),U=[];for(;!z.next().done;){if(U.length>=$)return null;U.push(z.value)}return U}highlight(D,$,z,U){let ht=qe(this.spec,D,Math.max(0,$-this.spec.unquoted.length),Math.min(z+this.spec.unquoted.length,D.doc.length));for(;!ht.next().done;)U(ht.value.from,ht.value.to)}}function ft(V,D,$,z){return new Oe(D.doc,V.search,{ignoreCase:!V.caseSensitive,test:V.wholeWord?At(D.charCategorizer(D.selection.main.head)):void 0},$,z)}function Ct(V,D){return V.slice((0,Q.cp)(V,D,!1),D)}function Dt(V,D){return V.slice(D,(0,Q.cp)(V,D))}function At(V){return(D,$,z)=>!z[0].length||(V(Ct(z.input,z.index))!=Q.D0.Word||V(Dt(z.input,z.index))!=Q.D0.Word)&&(V(Dt(z.input,z.index+z[0].length))!=Q.D0.Word||V(Ct(z.input,z.index+z[0].length))!=Q.D0.Word)}class jt extends Te{nextMatch(D,$,z){let U=ft(this.spec,D,z,D.doc.length).next();return U.done&&(U=ft(this.spec,D,0,$).next()),U.done?null:U.value}prevMatchInRange(D,$,z){for(let U=1;;U++){let ht=Math.max($,z-U*1e4),St=ft(this.spec,D,ht,z),wt=null;for(;!St.next().done;)wt=St.value;if(wt&&(ht==$||wt.from>ht+10))return wt;if(ht==$)return null}}prevMatch(D,$,z){return this.prevMatchInRange(D,0,$)||this.prevMatchInRange(D,z,D.doc.length)}getReplacement(D){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,($,z)=>{if(z=="&")return D.match[0];if(z=="$")return"$";for(let U=z.length;U>0;U--){let ht=+z.slice(0,U);if(ht>0&&ht<D.match.length)return D.match[ht]+z.slice(U)}return $})}matchAll(D,$){let z=ft(this.spec,D,0,D.doc.length),U=[];for(;!z.next().done;){if(U.length>=$)return null;U.push(z.value)}return U}highlight(D,$,z,U){let ht=ft(this.spec,D,Math.max(0,$-250),Math.min(z+250,D.doc.length));for(;!ht.next().done;)U(ht.value.from,ht.value.to)}}const Xt=Q.Py.define(),Et=Q.Py.define(),le=Q.QQ.define({create(V){return new yt(ue(V).create(),null)},update(V,D){for(let $ of D.effects)$.is(Xt)?V=new yt($.value.create(),V.panel):$.is(Et)&&(V=new yt(V.query,$.value?ae:null));return V},provide:V=>P.mH.from(V,D=>D.panel)});function We(V){let D=V.field(le,!1);return D?D.query.spec:ue(V)}function Ae(V){var D;return((D=V.field(le,!1))===null||D===void 0?void 0:D.panel)!=null}class yt{constructor(D,$){this.query=D,this.panel=$}}const He=P.p.mark({class:"cm-searchMatch"}),Ne=P.p.mark({class:"cm-searchMatch cm-searchMatch-selected"}),G=P.lg.fromClass(class{constructor(V){this.view=V,this.decorations=this.highlight(V.state.field(le))}update(V){let D=V.state.field(le);(D!=V.startState.field(le)||V.docChanged||V.selectionSet||V.viewportChanged)&&(this.decorations=this.highlight(D))}highlight({query:V,panel:D}){if(!D||!V.spec.valid)return P.p.none;let{view:$}=this,z=new Q.f_;for(let U=0,ht=$.visibleRanges,St=ht.length;U<St;U++){let{from:wt,to:It}=ht[U];for(;U<St-1&&It>ht[U+1].from-2*250;)It=ht[++U].to;V.highlight($.state,wt,It,(Qt,$e)=>{let Ke=$.state.selection.ranges.some(Qe=>Qe.from==Qt&&Qe.to==$e);z.add(Qt,$e,Ke?Ne:He)})}return z.finish()}},{decorations:V=>V.decorations});function q(V){return D=>{let $=D.state.field(le,!1);return $&&$.query.spec.valid?V(D,$):ge(D)}}const lt=q((V,{query:D})=>{let{to:$}=V.state.selection.main,z=D.nextMatch(V.state,$,$);if(!z)return!1;let U=Q.jT.single(z.from,z.to),ht=V.state.facet(ce);return V.dispatch({selection:U,effects:[Ge(V,z),ht.scrollToMatch(U.main,V)],userEvent:"select.search"}),oe(V),!0}),rt=q((V,{query:D})=>{let{state:$}=V,{from:z}=$.selection.main,U=D.prevMatch($,z,z);if(!U)return!1;let ht=Q.jT.single(U.from,U.to),St=V.state.facet(ce);return V.dispatch({selection:ht,effects:[Ge(V,U),St.scrollToMatch(ht.main,V)],userEvent:"select.search"}),oe(V),!0}),bt=q((V,{query:D})=>{let $=D.matchAll(V.state,1e3);return!$||!$.length?!1:(V.dispatch({selection:Q.jT.create($.map(z=>Q.jT.range(z.from,z.to))),userEvent:"select.search.matches"}),!0)}),Ot=({state:V,dispatch:D})=>{let $=V.selection;if($.ranges.length>1||$.main.empty)return!1;let{from:z,to:U}=$.main,ht=[],St=0;for(let wt=new se(V.doc,V.sliceDoc(z,U));!wt.next().done;){if(ht.length>1e3)return!1;wt.value.from==z&&(St=ht.length),ht.push(Q.jT.range(wt.value.from,wt.value.to))}return D(V.update({selection:Q.jT.create(ht,St),userEvent:"select.search.matches"})),!0},Ht=q((V,{query:D})=>{let{state:$}=V,{from:z,to:U}=$.selection.main;if($.readOnly)return!1;let ht=D.nextMatch($,z,z);if(!ht)return!1;let St=ht,wt=[],It,Qt,$e=[];St.from==z&&St.to==U&&(Qt=$.toText(D.getReplacement(St)),wt.push({from:St.from,to:St.to,insert:Qt}),St=D.nextMatch($,St.from,St.to),$e.push(P.tk.announce.of($.phrase("replaced match on line $",$.doc.lineAt(z).number)+".")));let Ke=V.state.changes(wt);return St&&(It=Q.jT.single(St.from,St.to).map(Ke),$e.push(Ge(V,St)),$e.push($.facet(ce).scrollToMatch(It.main,V))),V.dispatch({changes:Ke,selection:It,effects:$e,userEvent:"input.replace"}),!0}),Wt=q((V,{query:D})=>{if(V.state.readOnly)return!1;let $=D.matchAll(V.state,1e9).map(U=>{let{from:ht,to:St}=U;return{from:ht,to:St,insert:D.getReplacement(U)}});if(!$.length)return!1;let z=V.state.phrase("replaced $ matches",$.length)+".";return V.dispatch({changes:$,effects:P.tk.announce.of(z),userEvent:"input.replace.all"}),!0});function ae(V){return V.state.facet(ce).createPanel(V)}function ue(V,D){var $,z,U,ht,St;let wt=V.selection.main,It=wt.empty||wt.to>wt.from+100?"":V.sliceDoc(wt.from,wt.to);if(D&&!It)return D;let Qt=V.facet(ce);return new ve({search:(($=D==null?void 0:D.literal)!==null&&$!==void 0?$:Qt.literal)?It:It.replace(/\n/g,"\\n"),caseSensitive:(z=D==null?void 0:D.caseSensitive)!==null&&z!==void 0?z:Qt.caseSensitive,literal:(U=D==null?void 0:D.literal)!==null&&U!==void 0?U:Qt.literal,regexp:(ht=D==null?void 0:D.regexp)!==null&&ht!==void 0?ht:Qt.regexp,wholeWord:(St=D==null?void 0:D.wholeWord)!==null&&St!==void 0?St:Qt.wholeWord})}function qt(V){let D=(0,P.Sd)(V,ae);return D&&D.dom.querySelector("[main-field]")}function oe(V){let D=qt(V);D&&D==V.root.activeElement&&D.select()}const ge=V=>{let D=V.state.field(le,!1);if(D&&D.panel){let $=qt(V);if($&&$!=V.root.activeElement){let z=ue(V.state,D.query.spec);z.valid&&V.dispatch({effects:Xt.of(z)}),$.focus(),$.select()}}else V.dispatch({effects:[Et.of(!0),D?Xt.of(ue(V.state,D.query.spec)):Q.Py.appendConfig.of(Li)]});return!0},be=V=>{let D=V.state.field(le,!1);if(!D||!D.panel)return!1;let $=(0,P.Sd)(V,ae);return $&&$.dom.contains(V.root.activeElement)&&V.focus(),V.dispatch({effects:Et.of(!1)}),!0},si=[{key:"Mod-f",run:ge,scope:"editor search-panel"},{key:"F3",run:lt,shift:rt,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:lt,shift:rt,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:be,scope:"editor search-panel"},{key:"Mod-Shift-l",run:Ot},{key:"Mod-Alt-g",run:Ye},{key:"Mod-d",run:Ut,preventDefault:!0}];class Gt{constructor(D){this.view=D;let $=this.query=D.state.field(le).query.spec;this.commit=this.commit.bind(this),this.searchField=(0,Z.Z)("input",{value:$.search,placeholder:Kt(D,"Find"),"aria-label":Kt(D,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=(0,Z.Z)("input",{value:$.replace,placeholder:Kt(D,"Replace"),"aria-label":Kt(D,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=(0,Z.Z)("input",{type:"checkbox",name:"case",form:"",checked:$.caseSensitive,onchange:this.commit}),this.reField=(0,Z.Z)("input",{type:"checkbox",name:"re",form:"",checked:$.regexp,onchange:this.commit}),this.wordField=(0,Z.Z)("input",{type:"checkbox",name:"word",form:"",checked:$.wholeWord,onchange:this.commit});function z(U,ht,St){return(0,Z.Z)("button",{class:"cm-button",name:U,onclick:ht,type:"button"},St)}this.dom=(0,Z.Z)("div",{onkeydown:U=>this.keydown(U),class:"cm-search"},[this.searchField,z("next",()=>lt(D),[Kt(D,"next")]),z("prev",()=>rt(D),[Kt(D,"previous")]),z("select",()=>bt(D),[Kt(D,"all")]),(0,Z.Z)("label",null,[this.caseField,Kt(D,"match case")]),(0,Z.Z)("label",null,[this.reField,Kt(D,"regexp")]),(0,Z.Z)("label",null,[this.wordField,Kt(D,"by word")]),...D.state.readOnly?[]:[(0,Z.Z)("br"),this.replaceField,z("replace",()=>Ht(D),[Kt(D,"replace")]),z("replaceAll",()=>Wt(D),[Kt(D,"replace all")])],(0,Z.Z)("button",{name:"close",onclick:()=>be(D),"aria-label":Kt(D,"close"),type:"button"},["\xD7"])])}commit(){let D=new ve({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});D.eq(this.query)||(this.query=D,this.view.dispatch({effects:Xt.of(D)}))}keydown(D){(0,P.$1)(this.view,D,"search-panel")?D.preventDefault():D.keyCode==13&&D.target==this.searchField?(D.preventDefault(),(D.shiftKey?rt:lt)(this.view)):D.keyCode==13&&D.target==this.replaceField&&(D.preventDefault(),Ht(this.view))}update(D){for(let $ of D.transactions)for(let z of $.effects)z.is(Xt)&&!z.value.eq(this.query)&&this.setQuery(z.value)}setQuery(D){this.query=D,this.searchField.value=D.search,this.replaceField.value=D.replace,this.caseField.checked=D.caseSensitive,this.reField.checked=D.regexp,this.wordField.checked=D.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(ce).top}}function Kt(V,D){return V.state.phrase(D)}const ci=30,li=/[\s\.,:;?!]/;function Ge(V,{from:D,to:$}){let z=V.state.doc.lineAt(D),U=V.state.doc.lineAt($).to,ht=Math.max(z.from,D-ci),St=Math.min(U,$+ci),wt=V.state.sliceDoc(ht,St);if(ht!=z.from){for(let It=0;It<ci;It++)if(!li.test(wt[It+1])&&li.test(wt[It])){wt=wt.slice(It);break}}if(St!=U){for(let It=wt.length-1;It>wt.length-ci;It--)if(!li.test(wt[It-1])&&li.test(wt[It])){wt=wt.slice(0,It);break}}return P.tk.announce.of(`${V.state.phrase("current match")}. ${wt} ${V.state.phrase("on line")} ${z.number}.`)}const pi=P.tk.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),Li=[le,Q.Wl.low(G),pi]},78120:function(tn,vi,Zt){Zt.d(vi,{BO:function(){return U},D0:function(){return pi},Gz:function(){return Ni},IS:function(){return Ui},Py:function(){return qt},QQ:function(){return Dt},Wl:function(){return Xt},Xs:function(){return Qt},YW:function(){return oe},as:function(){return Jt},bg:function(){return Ye},cp:function(){return _t},f_:function(){return Ke},gc:function(){return Me},gm:function(){return oi},jT:function(){return Ut},n0:function(){return de},nZ:function(){return ni},q6:function(){return Wt},r$:function(){return ve},uU:function(){return ht},xv:function(){return Q},yy:function(){return z}});var P=Zt(14020);class Q{lineAt(o){if(o<0||o>this.length)throw new RangeError(`Invalid position ${o} in document of length ${this.length}`);return this.lineInner(o,!1,1,0)}line(o){if(o<1||o>this.lines)throw new RangeError(`Invalid line number ${o} in ${this.lines}-line document`);return this.lineInner(o,!0,1,0)}replace(o,a,u){[o,a]=we(this,o,a);let y=[];return this.decompose(0,o,y,2),u.length&&u.decompose(0,u.length,y,3),this.decompose(a,this.length,y,1),kt.from(y,this.length-(a-o)+u.length)}append(o){return this.replace(this.length,this.length,o)}slice(o,a=this.length){[o,a]=we(this,o,a);let u=[];return this.decompose(o,a,u,0),kt.from(u,a-o)}eq(o){if(o==this)return!0;if(o.length!=this.length||o.lines!=this.lines)return!1;let a=this.scanIdentical(o,1),u=this.length-this.scanIdentical(o,-1),y=new Oe(this),T=new Oe(o);for(let A=a,N=a;;){if(y.next(A),T.next(A),A=0,y.lineBreak!=T.lineBreak||y.done!=T.done||y.value!=T.value)return!1;if(N+=y.value.length,y.done||N>=u)return!0}}iter(o=1){return new Oe(this,o)}iterRange(o,a=this.length){return new Pe(this,o,a)}iterLines(o,a){let u;if(o==null)u=this.iter();else{a==null&&(a=this.lines+1);let y=this.line(o).from;u=this.iterRange(y,Math.max(y,a==this.lines+1?this.length:a<=1?0:this.line(a-1).to))}return new fe(u)}toString(){return this.sliceString(0)}toJSON(){let o=[];return this.flatten(o),o}constructor(){}static of(o){if(o.length==0)throw new RangeError("A document must have at least one line");return o.length==1&&!o[0]?Q.empty:o.length<=32?new Z(o):kt.from(Z.split(o,[]))}}class Z extends Q{constructor(o,a=se(o)){super(),this.text=o,this.length=a}get lines(){return this.text.length}get children(){return null}lineInner(o,a,u,y){for(let T=0;;T++){let A=this.text[T],N=y+A.length;if((a?u:N)>=o)return new me(y,N,u,A);y=N+1,u++}}decompose(o,a,u,y){let T=o<=0&&a>=this.length?this:new Z(ke(this.text,o,a),Math.min(a,this.length)-Math.max(0,o));if(y&1){let A=u.pop(),N=Ce(T.text,A.text.slice(),0,T.length);if(N.length<=32)u.push(new Z(N,A.length+T.length));else{let J=N.length>>1;u.push(new Z(N.slice(0,J)),new Z(N.slice(J)))}}else u.push(T)}replace(o,a,u){if(!(u instanceof Z))return super.replace(o,a,u);[o,a]=we(this,o,a);let y=Ce(this.text,Ce(u.text,ke(this.text,0,o)),a),T=this.length+u.length-(a-o);return y.length<=32?new Z(y,T):kt.from(Z.split(y,[]),T)}sliceString(o,a=this.length,u=`
|
|
19
|
+
`){[o,a]=we(this,o,a);let y="";for(let T=0,A=0;T<=a&&A<this.text.length;A++){let N=this.text[A],J=T+N.length;T>o&&A&&(y+=u),o<J&&a>T&&(y+=N.slice(Math.max(0,o-T),a-T)),T=J+1}return y}flatten(o){for(let a of this.text)o.push(a)}scanIdentical(){return 0}static split(o,a){let u=[],y=-1;for(let T of o)u.push(T),y+=T.length+1,u.length==32&&(a.push(new Z(u,y)),u=[],y=-1);return y>-1&&a.push(new Z(u,y)),a}}class kt extends Q{constructor(o,a){super(),this.children=o,this.length=a,this.lines=0;for(let u of o)this.lines+=u.lines}lineInner(o,a,u,y){for(let T=0;;T++){let A=this.children[T],N=y+A.length,J=u+A.lines-1;if((a?J:N)>=o)return A.lineInner(o,a,u,y);y=N+1,u=J+1}}decompose(o,a,u,y){for(let T=0,A=0;A<=a&&T<this.children.length;T++){let N=this.children[T],J=A+N.length;if(o<=J&&a>=A){let st=y&((A<=o?1:0)|(J>=a?2:0));A>=o&&J<=a&&!st?u.push(N):N.decompose(o-A,a-A,u,st)}A=J+1}}replace(o,a,u){if([o,a]=we(this,o,a),u.lines<this.lines)for(let y=0,T=0;y<this.children.length;y++){let A=this.children[y],N=T+A.length;if(o>=T&&a<=N){let J=A.replace(o-T,a-T,u),st=this.lines-A.lines+J.lines;if(J.lines<st>>5-1&&J.lines>st>>5+1){let mt=this.children.slice();return mt[y]=J,new kt(mt,this.length-(a-o)+u.length)}return super.replace(T,N,J)}T=N+1}return super.replace(o,a,u)}sliceString(o,a=this.length,u=`
|
|
20
|
+
`){[o,a]=we(this,o,a);let y="";for(let T=0,A=0;T<this.children.length&&A<=a;T++){let N=this.children[T],J=A+N.length;A>o&&T&&(y+=u),o<J&&a>A&&(y+=N.sliceString(o-A,a-A,u)),A=J+1}return y}flatten(o){for(let a of this.children)a.flatten(o)}scanIdentical(o,a){if(!(o instanceof kt))return 0;let u=0,[y,T,A,N]=a>0?[0,0,this.children.length,o.children.length]:[this.children.length-1,o.children.length-1,-1,-1];for(;;y+=a,T+=a){if(y==A||T==N)return u;let J=this.children[y],st=o.children[T];if(J!=st)return u+J.scanIdentical(st,a);u+=J.length+1}}static from(o,a=o.reduce((u,y)=>u+y.length+1,-1)){let u=0;for(let Rt of o)u+=Rt.lines;if(u<32){let Rt=[];for(let De of o)De.flatten(Rt);return new Z(Rt,a)}let y=Math.max(32,u>>5),T=y<<1,A=y>>1,N=[],J=0,st=-1,mt=[];function xt(Rt){let De;if(Rt.lines>T&&Rt instanceof kt)for(let bi of Rt.children)xt(bi);else Rt.lines>A&&(J>A||!J)?(Lt(),N.push(Rt)):Rt instanceof Z&&J&&(De=mt[mt.length-1])instanceof Z&&Rt.lines+De.lines<=32?(J+=Rt.lines,st+=Rt.length+1,mt[mt.length-1]=new Z(De.text.concat(Rt.text),De.length+1+Rt.length)):(J+Rt.lines>y&&Lt(),J+=Rt.lines,st+=Rt.length+1,mt.push(Rt))}function Lt(){J!=0&&(N.push(mt.length==1?mt[0]:kt.from(mt,st)),st=-1,J=mt.length=0)}for(let Rt of o)xt(Rt);return Lt(),N.length==1?N[0]:new kt(N,a)}}Q.empty=new Z([""],0);function se(L){let o=-1;for(let a of L)o+=a.length+1;return o}function Ce(L,o,a=0,u=1e9){for(let y=0,T=0,A=!0;T<L.length&&y<=u;T++){let N=L[T],J=y+N.length;J>=a&&(J>u&&(N=N.slice(0,u-y)),y<a&&(N=N.slice(a-y)),A?(o[o.length-1]+=N,A=!1):o.push(N)),y=J+1}return o}function ke(L,o,a){return Ce(L,[""],o,a)}class Oe{constructor(o,a=1){this.dir=a,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[o],this.offsets=[a>0?1:(o instanceof Z?o.text.length:o.children.length)<<1]}nextInner(o,a){for(this.done=this.lineBreak=!1;;){let u=this.nodes.length-1,y=this.nodes[u],T=this.offsets[u],A=T>>1,N=y instanceof Z?y.text.length:y.children.length;if(A==(a>0?N:0)){if(u==0)return this.done=!0,this.value="",this;a>0&&this.offsets[u-1]++,this.nodes.pop(),this.offsets.pop()}else if((T&1)==(a>0?0:1)){if(this.offsets[u]+=a,o==0)return this.lineBreak=!0,this.value=`
|
|
21
|
+
`,this;o--}else if(y instanceof Z){let J=y.text[A+(a<0?-1:0)];if(this.offsets[u]+=a,J.length>Math.max(0,o))return this.value=o==0?J:a>0?J.slice(o):J.slice(0,J.length-o),this;o-=J.length}else{let J=y.children[A+(a<0?-1:0)];o>J.length?(o-=J.length,this.offsets[u]+=a):(a<0&&this.offsets[u]--,this.nodes.push(J),this.offsets.push(a>0?1:(J instanceof Z?J.text.length:J.children.length)<<1))}}}next(o=0){return o<0&&(this.nextInner(-o,-this.dir),o=this.value.length),this.nextInner(o,this.dir)}}class Pe{constructor(o,a,u){this.value="",this.done=!1,this.cursor=new Oe(o,a>u?-1:1),this.pos=a>u?o.length:0,this.from=Math.min(a,u),this.to=Math.max(a,u)}nextInner(o,a){if(a<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;o+=Math.max(0,a<0?this.pos-this.to:this.from-this.pos);let u=a<0?this.pos-this.from:this.to-this.pos;o>u&&(o=u),u-=o;let{value:y}=this.cursor.next(o);return this.pos+=(y.length+o)*a,this.value=y.length<=u?y:a<0?y.slice(y.length-u):y.slice(0,u),this.done=!this.value,this}next(o=0){return o<0?o=Math.max(o,this.from-this.pos):o>0&&(o=Math.min(o,this.to-this.pos)),this.nextInner(o,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class fe{constructor(o){this.inner=o,this.afterBreak=!0,this.value="",this.done=!1}next(o=0){let{done:a,lineBreak:u,value:y}=this.inner.next(o);return a&&this.afterBreak?(this.value="",this.afterBreak=!1):a?(this.done=!0,this.value=""):u?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=y,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(Q.prototype[Symbol.iterator]=function(){return this.iter()},Oe.prototype[Symbol.iterator]=Pe.prototype[Symbol.iterator]=fe.prototype[Symbol.iterator]=function(){return this});class me{constructor(o,a,u,y){this.from=o,this.to=a,this.number=u,this.text=y}get length(){return this.to-this.from}}function we(L,o,a){return o=Math.max(0,Math.min(L.length,o)),[o,Math.max(o,Math.min(L.length,a))]}function _t(L,o,a=!0,u=!0){return(0,P.c)(L,o,a,u)}function ri(L){return L>=56320&&L<57344}function ze(L){return L>=55296&&L<56320}function oi(L,o){let a=L.charCodeAt(o);if(!ze(a)||o+1==L.length)return a;let u=L.charCodeAt(o+1);return ri(u)?(a-55296<<10)+(u-56320)+65536:a}function Ye(L){return L<=65535?String.fromCharCode(L):(L-=65536,String.fromCharCode((L>>10)+55296,(L&1023)+56320))}function ni(L){return L<65536?1:2}const Be=/\r\n?|\n/;var Me=function(L){return L[L.Simple=0]="Simple",L[L.TrackDel=1]="TrackDel",L[L.TrackBefore=2]="TrackBefore",L[L.TrackAfter=3]="TrackAfter",L}(Me||(Me={}));class de{constructor(o){this.sections=o}get length(){let o=0;for(let a=0;a<this.sections.length;a+=2)o+=this.sections[a];return o}get newLength(){let o=0;for(let a=0;a<this.sections.length;a+=2){let u=this.sections[a+1];o+=u<0?this.sections[a]:u}return o}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(o){for(let a=0,u=0,y=0;a<this.sections.length;){let T=this.sections[a++],A=this.sections[a++];A<0?(o(u,y,T),y+=T):y+=A,u+=T}}iterChangedRanges(o,a=!1){Bt(this,o,a)}get invertedDesc(){let o=[];for(let a=0;a<this.sections.length;){let u=this.sections[a++],y=this.sections[a++];y<0?o.push(u,y):o.push(y,u)}return new de(o)}composeDesc(o){return this.empty?o:o.empty?this:di(this,o)}mapDesc(o,a=!1){return o.empty?this:Je(this,o,a)}mapPos(o,a=-1,u=Me.Simple){let y=0,T=0;for(let A=0;A<this.sections.length;){let N=this.sections[A++],J=this.sections[A++],st=y+N;if(J<0){if(st>o)return T+(o-y);T+=N}else{if(u!=Me.Simple&&st>=o&&(u==Me.TrackDel&&y<o&&st>o||u==Me.TrackBefore&&y<o||u==Me.TrackAfter&&st>o))return null;if(st>o||st==o&&a<0&&!N)return o==y||a<0?T:T+J;T+=J}y=st}if(o>y)throw new RangeError(`Position ${o} is out of range for changeset of length ${y}`);return T}touchesRange(o,a=o){for(let u=0,y=0;u<this.sections.length&&y<=a;){let T=this.sections[u++],A=this.sections[u++],N=y+T;if(A>=0&&y<=a&&N>=o)return y<o&&N>a?"cover":!0;y=N}return!1}toString(){let o="";for(let a=0;a<this.sections.length;){let u=this.sections[a++],y=this.sections[a++];o+=(o?" ":"")+u+(y>=0?":"+y:"")}return o}toJSON(){return this.sections}static fromJSON(o){if(!Array.isArray(o)||o.length%2||o.some(a=>typeof a!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new de(o)}static create(o){return new de(o)}}class Jt extends de{constructor(o,a){super(o),this.inserted=a}apply(o){if(this.length!=o.length)throw new RangeError("Applying change set to a document with the wrong length");return Bt(this,(a,u,y,T,A)=>o=o.replace(y,y+(u-a),A),!1),o}mapDesc(o,a=!1){return Je(this,o,a,!0)}invert(o){let a=this.sections.slice(),u=[];for(let y=0,T=0;y<a.length;y+=2){let A=a[y],N=a[y+1];if(N>=0){a[y]=N,a[y+1]=A;let J=y>>1;for(;u.length<J;)u.push(Q.empty);u.push(A?o.slice(T,T+A):Q.empty)}T+=A}return new Jt(a,u)}compose(o){return this.empty?o:o.empty?this:di(this,o,!0)}map(o,a=!1){return o.empty?this:Je(this,o,a,!0)}iterChanges(o,a=!1){Bt(this,o,a)}get desc(){return de.create(this.sections)}filter(o){let a=[],u=[],y=[],T=new Fe(this);t:for(let A=0,N=0;;){let J=A==o.length?1e9:o[A++];for(;N<J||N==J&&T.len==0;){if(T.done)break t;let mt=Math.min(T.len,J-N);Pt(y,mt,-1);let xt=T.ins==-1?-1:T.off==0?T.ins:0;Pt(a,mt,xt),xt>0&&re(u,a,T.text),T.forward(mt),N+=mt}let st=o[A++];for(;N<st;){if(T.done)break t;let mt=Math.min(T.len,st-N);Pt(a,mt,-1),Pt(y,mt,T.ins==-1?-1:T.off==0?T.ins:0),T.forward(mt),N+=mt}}return{changes:new Jt(a,u),filtered:de.create(y)}}toJSON(){let o=[];for(let a=0;a<this.sections.length;a+=2){let u=this.sections[a],y=this.sections[a+1];y<0?o.push(u):y==0?o.push([u]):o.push([u].concat(this.inserted[a>>1].toJSON()))}return o}static of(o,a,u){let y=[],T=[],A=0,N=null;function J(mt=!1){if(!mt&&!y.length)return;A<a&&Pt(y,a-A,-1);let xt=new Jt(y,T);N=N?N.compose(xt.map(N)):xt,y=[],T=[],A=0}function st(mt){if(Array.isArray(mt))for(let xt of mt)st(xt);else if(mt instanceof Jt){if(mt.length!=a)throw new RangeError(`Mismatched change set length (got ${mt.length}, expected ${a})`);J(),N=N?N.compose(mt.map(N)):mt}else{let{from:xt,to:Lt=xt,insert:Rt}=mt;if(xt>Lt||xt<0||Lt>a)throw new RangeError(`Invalid change range ${xt} to ${Lt} (in doc of length ${a})`);let De=Rt?typeof Rt=="string"?Q.of(Rt.split(u||Be)):Rt:Q.empty,bi=De.length;if(xt==Lt&&bi==0)return;xt<A&&J(),xt>A&&Pt(y,xt-A,-1),Pt(y,Lt-xt,bi),re(T,y,De),A=Lt}}return st(o),J(!N),N}static empty(o){return new Jt(o?[o,-1]:[],[])}static fromJSON(o){if(!Array.isArray(o))throw new RangeError("Invalid JSON representation of ChangeSet");let a=[],u=[];for(let y=0;y<o.length;y++){let T=o[y];if(typeof T=="number")a.push(T,-1);else{if(!Array.isArray(T)||typeof T[0]!="number"||T.some((A,N)=>N&&typeof A!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(T.length==1)a.push(T[0],0);else{for(;u.length<y;)u.push(Q.empty);u[y]=Q.of(T.slice(1)),a.push(T[0],u[y].length)}}}return new Jt(a,u)}static createSet(o,a){return new Jt(o,a)}}function Pt(L,o,a,u=!1){if(o==0&&a<=0)return;let y=L.length-2;y>=0&&a<=0&&a==L[y+1]?L[y]+=o:y>=0&&o==0&&L[y]==0?L[y+1]+=a:u?(L[y]+=o,L[y+1]+=a):L.push(o,a)}function re(L,o,a){if(a.length==0)return;let u=o.length-2>>1;if(u<L.length)L[L.length-1]=L[L.length-1].append(a);else{for(;L.length<u;)L.push(Q.empty);L.push(a)}}function Bt(L,o,a){let u=L.inserted;for(let y=0,T=0,A=0;A<L.sections.length;){let N=L.sections[A++],J=L.sections[A++];if(J<0)y+=N,T+=N;else{let st=y,mt=T,xt=Q.empty;for(;st+=N,mt+=J,J&&u&&(xt=xt.append(u[A-2>>1])),!(a||A==L.sections.length||L.sections[A+1]<0);)N=L.sections[A++],J=L.sections[A++];o(y,st,T,mt,xt),y=st,T=mt}}}function Je(L,o,a,u=!1){let y=[],T=u?[]:null,A=new Fe(L),N=new Fe(o);for(let J=-1;;){if(A.done&&N.len||N.done&&A.len)throw new Error("Mismatched change set lengths");if(A.ins==-1&&N.ins==-1){let st=Math.min(A.len,N.len);Pt(y,st,-1),A.forward(st),N.forward(st)}else if(N.ins>=0&&(A.ins<0||J==A.i||A.off==0&&(N.len<A.len||N.len==A.len&&!a))){let st=N.len;for(Pt(y,N.ins,-1);st;){let mt=Math.min(A.len,st);A.ins>=0&&J<A.i&&A.len<=mt&&(Pt(y,0,A.ins),T&&re(T,y,A.text),J=A.i),A.forward(mt),st-=mt}N.next()}else if(A.ins>=0){let st=0,mt=A.len;for(;mt;)if(N.ins==-1){let xt=Math.min(mt,N.len);st+=xt,mt-=xt,N.forward(xt)}else if(N.ins==0&&N.len<mt)mt-=N.len,N.next();else break;Pt(y,st,J<A.i?A.ins:0),T&&J<A.i&&re(T,y,A.text),J=A.i,A.forward(A.len-mt)}else{if(A.done&&N.done)return T?Jt.createSet(y,T):de.create(y);throw new Error("Mismatched change set lengths")}}}function di(L,o,a=!1){let u=[],y=a?[]:null,T=new Fe(L),A=new Fe(o);for(let N=!1;;){if(T.done&&A.done)return y?Jt.createSet(u,y):de.create(u);if(T.ins==0)Pt(u,T.len,0,N),T.next();else if(A.len==0&&!A.done)Pt(u,0,A.ins,N),y&&re(y,u,A.text),A.next();else{if(T.done||A.done)throw new Error("Mismatched change set lengths");{let J=Math.min(T.len2,A.len),st=u.length;if(T.ins==-1){let mt=A.ins==-1?-1:A.off?0:A.ins;Pt(u,J,mt,N),y&&mt&&re(y,u,A.text)}else A.ins==-1?(Pt(u,T.off?0:T.len,J,N),y&&re(y,u,T.textBit(J))):(Pt(u,T.off?0:T.len,A.off?0:A.ins,N),y&&!A.off&&re(y,u,A.text));N=(T.ins>J||A.ins>=0&&A.len>J)&&(N||u.length>st),T.forward2(J),A.forward(J)}}}}class Fe{constructor(o){this.set=o,this.i=0,this.next()}next(){let{sections:o}=this.set;this.i<o.length?(this.len=o[this.i++],this.ins=o[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:o}=this.set,a=this.i-2>>1;return a>=o.length?Q.empty:o[a]}textBit(o){let{inserted:a}=this.set,u=this.i-2>>1;return u>=a.length&&!o?Q.empty:a[u].slice(this.off,o==null?void 0:this.off+o)}forward(o){o==this.len?this.next():(this.len-=o,this.off+=o)}forward2(o){this.ins==-1?this.forward(o):o==this.ins?this.next():(this.ins-=o,this.off+=o)}}class Xe{constructor(o,a,u){this.from=o,this.to=a,this.flags=u}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let o=this.flags&7;return o==7?null:o}get goalColumn(){let o=this.flags>>6;return o==16777215?void 0:o}map(o,a=-1){let u,y;return this.empty?u=y=o.mapPos(this.from,a):(u=o.mapPos(this.from,1),y=o.mapPos(this.to,-1)),u==this.from&&y==this.to?this:new Xe(u,y,this.flags)}extend(o,a=o){if(o<=this.anchor&&a>=this.anchor)return Ut.range(o,a);let u=Math.abs(o-this.anchor)>Math.abs(a-this.anchor)?o:a;return Ut.range(this.anchor,u)}eq(o,a=!1){return this.anchor==o.anchor&&this.head==o.head&&(!a||!this.empty||this.assoc==o.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(o){if(!o||typeof o.anchor!="number"||typeof o.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return Ut.range(o.anchor,o.head)}static create(o,a,u){return new Xe(o,a,u)}}class Ut{constructor(o,a){this.ranges=o,this.mainIndex=a}map(o,a=-1){return o.empty?this:Ut.create(this.ranges.map(u=>u.map(o,a)),this.mainIndex)}eq(o,a=!1){if(this.ranges.length!=o.ranges.length||this.mainIndex!=o.mainIndex)return!1;for(let u=0;u<this.ranges.length;u++)if(!this.ranges[u].eq(o.ranges[u],a))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new Ut([this.main],0)}addRange(o,a=!0){return Ut.create([o].concat(this.ranges),a?0:this.mainIndex+1)}replaceRange(o,a=this.mainIndex){let u=this.ranges.slice();return u[a]=o,Ut.create(u,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(o=>o.toJSON()),main:this.mainIndex}}static fromJSON(o){if(!o||!Array.isArray(o.ranges)||typeof o.main!="number"||o.main>=o.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new Ut(o.ranges.map(a=>Xe.fromJSON(a)),o.main)}static single(o,a=o){return new Ut([Ut.range(o,a)],0)}static create(o,a=0){if(o.length==0)throw new RangeError("A selection needs at least one range");for(let u=0,y=0;y<o.length;y++){let T=o[y];if(T.empty?T.from<=u:T.from<u)return Ut.normalized(o.slice(),a);u=T.to}return new Ut(o,a)}static cursor(o,a=0,u,y){return Xe.create(o,o,(a==0?0:a<0?8:16)|(u==null?7:Math.min(6,u))|(y??16777215)<<6)}static range(o,a,u,y){let T=(u??16777215)<<6|(y==null?7:Math.min(6,y));return a<o?Xe.create(a,o,48|T):Xe.create(o,a,(a>o?8:0)|T)}static normalized(o,a=0){let u=o[a];o.sort((y,T)=>y.from-T.from),a=o.indexOf(u);for(let y=1;y<o.length;y++){let T=o[y],A=o[y-1];if(T.empty?T.from<=A.to:T.from<A.to){let N=A.from,J=Math.max(T.to,A.to);y<=a&&a--,o.splice(--y,2,T.anchor>T.head?Ut.range(J,N):Ut.range(N,J))}}return new Ut(o,a)}}function ce(L,o){for(let a of L.ranges)if(a.to>o)throw new RangeError("Selection points outside of document")}let te=0;class ve{constructor(o,a,u,y,T){this.combine=o,this.compareInput=a,this.compare=u,this.isStatic=y,this.id=te++,this.default=o([]),this.extensions=typeof T=="function"?T(this):T}get reader(){return this}static define(o={}){return new ve(o.combine||(a=>a),o.compareInput||((a,u)=>a===u),o.compare||(o.combine?(a,u)=>a===u:Te),!!o.static,o.enables)}of(o){return new qe([],this,0,o)}compute(o,a){if(this.isStatic)throw new Error("Can't compute a static facet");return new qe(o,this,1,a)}computeN(o,a){if(this.isStatic)throw new Error("Can't compute a static facet");return new qe(o,this,2,a)}from(o,a){return a||(a=u=>u),this.compute([o],u=>a(u.field(o)))}}function Te(L,o){return L==o||L.length==o.length&&L.every((a,u)=>a===o[u])}class qe{constructor(o,a,u,y){this.dependencies=o,this.facet=a,this.type=u,this.value=y,this.id=te++}dynamicSlot(o){var a;let u=this.value,y=this.facet.compareInput,T=this.id,A=o[T]>>1,N=this.type==2,J=!1,st=!1,mt=[];for(let xt of this.dependencies)xt=="doc"?J=!0:xt=="selection"?st=!0:((a=o[xt.id])!==null&&a!==void 0?a:1)&1||mt.push(o[xt.id]);return{create(xt){return xt.values[A]=u(xt),1},update(xt,Lt){if(J&&Lt.docChanged||st&&(Lt.docChanged||Lt.selection)||Ie(xt,mt)){let Rt=u(xt);if(N?!hi(Rt,xt.values[A],y):!y(Rt,xt.values[A]))return xt.values[A]=Rt,1}return 0},reconfigure:(xt,Lt)=>{let Rt,De=Lt.config.address[T];if(De!=null){let bi=Ne(Lt,De);if(this.dependencies.every(Ve=>Ve instanceof ve?Lt.facet(Ve)===xt.facet(Ve):Ve instanceof Dt?Lt.field(Ve,!1)==xt.field(Ve,!1):!0)||(N?hi(Rt=u(xt),bi,y):y(Rt=u(xt),bi)))return xt.values[A]=bi,0}else Rt=u(xt);return xt.values[A]=Rt,1}}}}function hi(L,o,a){if(L.length!=o.length)return!1;for(let u=0;u<L.length;u++)if(!a(L[u],o[u]))return!1;return!0}function Ie(L,o){let a=!1;for(let u of o)He(L,u)&1&&(a=!0);return a}function ft(L,o,a){let u=a.map(J=>L[J.id]),y=a.map(J=>J.type),T=u.filter(J=>!(J&1)),A=L[o.id]>>1;function N(J){let st=[];for(let mt=0;mt<u.length;mt++){let xt=Ne(J,u[mt]);if(y[mt]==2)for(let Lt of xt)st.push(Lt);else st.push(xt)}return o.combine(st)}return{create(J){for(let st of u)He(J,st);return J.values[A]=N(J),1},update(J,st){if(!Ie(J,T))return 0;let mt=N(J);return o.compare(mt,J.values[A])?0:(J.values[A]=mt,1)},reconfigure(J,st){let mt=Ie(J,u),xt=st.config.facets[o.id],Lt=st.facet(o);if(xt&&!mt&&Te(a,xt))return J.values[A]=Lt,0;let Rt=N(J);return o.compare(Rt,Lt)?(J.values[A]=Lt,0):(J.values[A]=Rt,1)}}}const Ct=ve.define({static:!0});class Dt{constructor(o,a,u,y,T){this.id=o,this.createF=a,this.updateF=u,this.compareF=y,this.spec=T,this.provides=void 0}static define(o){let a=new Dt(te++,o.create,o.update,o.compare||((u,y)=>u===y),o);return o.provide&&(a.provides=o.provide(a)),a}create(o){let a=o.facet(Ct).find(u=>u.field==this);return((a==null?void 0:a.create)||this.createF)(o)}slot(o){let a=o[this.id]>>1;return{create:u=>(u.values[a]=this.create(u),1),update:(u,y)=>{let T=u.values[a],A=this.updateF(T,y);return this.compareF(T,A)?0:(u.values[a]=A,1)},reconfigure:(u,y)=>{let T=u.facet(Ct),A=y.facet(Ct),N;return(N=T.find(J=>J.field==this))&&N!=A.find(J=>J.field==this)?(u.values[a]=N.create(u),1):y.config.address[this.id]!=null?(u.values[a]=y.field(this),0):(u.values[a]=this.create(u),1)}}}init(o){return[this,Ct.of({field:this,create:o})]}get extension(){return this}}const At={lowest:4,low:3,default:2,high:1,highest:0};function jt(L){return o=>new Et(o,L)}const Xt={highest:jt(At.highest),high:jt(At.high),default:jt(At.default),low:jt(At.low),lowest:jt(At.lowest)};class Et{constructor(o,a){this.inner=o,this.prec=a}}class le{of(o){return new We(this,o)}reconfigure(o){return le.reconfigure.of({compartment:this,extension:o})}get(o){return o.config.compartments.get(this)}}class We{constructor(o,a){this.compartment=o,this.inner=a}}class Ae{constructor(o,a,u,y,T,A){for(this.base=o,this.compartments=a,this.dynamicSlots=u,this.address=y,this.staticValues=T,this.facets=A,this.statusTemplate=[];this.statusTemplate.length<u.length;)this.statusTemplate.push(0)}staticFacet(o){let a=this.address[o.id];return a==null?o.default:this.staticValues[a>>1]}static resolve(o,a,u){let y=[],T=Object.create(null),A=new Map;for(let Lt of yt(o,a,A))Lt instanceof Dt?y.push(Lt):(T[Lt.facet.id]||(T[Lt.facet.id]=[])).push(Lt);let N=Object.create(null),J=[],st=[];for(let Lt of y)N[Lt.id]=st.length<<1,st.push(Rt=>Lt.slot(Rt));let mt=u==null?void 0:u.config.facets;for(let Lt in T){let Rt=T[Lt],De=Rt[0].facet,bi=mt&&mt[Lt]||[];if(Rt.every(Ve=>Ve.type==0))if(N[De.id]=J.length<<1|1,Te(bi,Rt))J.push(u.facet(De));else{let Ve=De.combine(Rt.map(Vi=>Vi.value));J.push(u&&De.compare(Ve,u.facet(De))?u.facet(De):Ve)}else{for(let Ve of Rt)Ve.type==0?(N[Ve.id]=J.length<<1|1,J.push(Ve.value)):(N[Ve.id]=st.length<<1,st.push(Vi=>Ve.dynamicSlot(Vi)));N[De.id]=st.length<<1,st.push(Ve=>ft(Ve,De,Rt))}}let xt=st.map(Lt=>Lt(N));return new Ae(o,A,xt,N,J,T)}}function yt(L,o,a){let u=[[],[],[],[],[]],y=new Map;function T(A,N){let J=y.get(A);if(J!=null){if(J<=N)return;let st=u[J].indexOf(A);st>-1&&u[J].splice(st,1),A instanceof We&&a.delete(A.compartment)}if(y.set(A,N),Array.isArray(A))for(let st of A)T(st,N);else if(A instanceof We){if(a.has(A.compartment))throw new RangeError("Duplicate use of compartment in extensions");let st=o.get(A.compartment)||A.inner;a.set(A.compartment,st),T(st,N)}else if(A instanceof Et)T(A.inner,A.prec);else if(A instanceof Dt)u[N].push(A),A.provides&&T(A.provides,N);else if(A instanceof qe)u[N].push(A),A.facet.extensions&&T(A.facet.extensions,At.default);else{let st=A.extension;if(!st)throw new Error(`Unrecognized extension value in extension set (${A}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);T(st,N)}}return T(L,At.default),u.reduce((A,N)=>A.concat(N))}function He(L,o){if(o&1)return 2;let a=o>>1,u=L.status[a];if(u==4)throw new Error("Cyclic dependency between fields and/or facets");if(u&2)return u;L.status[a]=4;let y=L.computeSlot(L,L.config.dynamicSlots[a]);return L.status[a]=2|y}function Ne(L,o){return o&1?L.config.staticValues[o>>1]:L.values[o>>1]}const G=ve.define(),q=ve.define({combine:L=>L.some(o=>o),static:!0}),lt=ve.define({combine:L=>L.length?L[0]:void 0,static:!0}),rt=ve.define(),bt=ve.define(),Ot=ve.define(),Ht=ve.define({combine:L=>L.length?L[0]:!1});class Wt{constructor(o,a){this.type=o,this.value=a}static define(){return new ae}}class ae{of(o){return new Wt(this,o)}}class ue{constructor(o){this.map=o}of(o){return new qt(this,o)}}class qt{constructor(o,a){this.type=o,this.value=a}map(o){let a=this.type.map(this.value,o);return a===void 0?void 0:a==this.value?this:new qt(this.type,a)}is(o){return this.type==o}static define(o={}){return new ue(o.map||(a=>a))}static mapEffects(o,a){if(!o.length)return o;let u=[];for(let y of o){let T=y.map(a);T&&u.push(T)}return u}}qt.reconfigure=qt.define(),qt.appendConfig=qt.define();class oe{constructor(o,a,u,y,T,A){this.startState=o,this.changes=a,this.selection=u,this.effects=y,this.annotations=T,this.scrollIntoView=A,this._doc=null,this._state=null,u&&ce(u,a.newLength),T.some(N=>N.type==oe.time)||(this.annotations=T.concat(oe.time.of(Date.now())))}static create(o,a,u,y,T,A){return new oe(o,a,u,y,T,A)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(o){for(let a of this.annotations)if(a.type==o)return a.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(o){let a=this.annotation(oe.userEvent);return!!(a&&(a==o||a.length>o.length&&a.slice(0,o.length)==o&&a[o.length]=="."))}}oe.time=Wt.define(),oe.userEvent=Wt.define(),oe.addToHistory=Wt.define(),oe.remote=Wt.define();function ge(L,o){let a=[];for(let u=0,y=0;;){let T,A;if(u<L.length&&(y==o.length||o[y]>=L[u]))T=L[u++],A=L[u++];else if(y<o.length)T=o[y++],A=o[y++];else return a;!a.length||a[a.length-1]<T?a.push(T,A):a[a.length-1]<A&&(a[a.length-1]=A)}}function be(L,o,a){var u;let y,T,A;return a?(y=o.changes,T=Jt.empty(o.changes.length),A=L.changes.compose(o.changes)):(y=o.changes.map(L.changes),T=L.changes.mapDesc(o.changes,!0),A=L.changes.compose(y)),{changes:A,selection:o.selection?o.selection.map(T):(u=L.selection)===null||u===void 0?void 0:u.map(y),effects:qt.mapEffects(L.effects,y).concat(qt.mapEffects(o.effects,T)),annotations:L.annotations.length?L.annotations.concat(o.annotations):o.annotations,scrollIntoView:L.scrollIntoView||o.scrollIntoView}}function si(L,o,a){let u=o.selection,y=Ge(o.annotations);return o.userEvent&&(y=y.concat(oe.userEvent.of(o.userEvent))),{changes:o.changes instanceof Jt?o.changes:Jt.of(o.changes||[],a,L.facet(lt)),selection:u&&(u instanceof Ut?u:Ut.single(u.anchor,u.head)),effects:Ge(o.effects),annotations:y,scrollIntoView:!!o.scrollIntoView}}function Gt(L,o,a){let u=si(L,o.length?o[0]:{},L.doc.length);o.length&&o[0].filter===!1&&(a=!1);for(let T=1;T<o.length;T++){o[T].filter===!1&&(a=!1);let A=!!o[T].sequential;u=be(u,si(L,o[T],A?u.changes.newLength:L.doc.length),A)}let y=oe.create(L,u.changes,u.selection,u.effects,u.annotations,u.scrollIntoView);return ci(a?Kt(y):y)}function Kt(L){let o=L.startState,a=!0;for(let y of o.facet(rt)){let T=y(L);if(T===!1){a=!1;break}Array.isArray(T)&&(a=a===!0?T:ge(a,T))}if(a!==!0){let y,T;if(a===!1)T=L.changes.invertedDesc,y=Jt.empty(o.doc.length);else{let A=L.changes.filter(a);y=A.changes,T=A.filtered.mapDesc(A.changes).invertedDesc}L=oe.create(o,y,L.selection&&L.selection.map(T),qt.mapEffects(L.effects,T),L.annotations,L.scrollIntoView)}let u=o.facet(bt);for(let y=u.length-1;y>=0;y--){let T=u[y](L);T instanceof oe?L=T:Array.isArray(T)&&T.length==1&&T[0]instanceof oe?L=T[0]:L=Gt(o,Ge(T),!1)}return L}function ci(L){let o=L.startState,a=o.facet(Ot),u=L;for(let y=a.length-1;y>=0;y--){let T=a[y](L);T&&Object.keys(T).length&&(u=be(u,si(o,T,L.changes.newLength),!0))}return u==L?L:oe.create(o,L.changes,L.selection,u.effects,u.annotations,u.scrollIntoView)}const li=[];function Ge(L){return L==null?li:Array.isArray(L)?L:[L]}var pi=function(L){return L[L.Word=0]="Word",L[L.Space=1]="Space",L[L.Other=2]="Other",L}(pi||(pi={}));const Li=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let V;try{V=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function D(L){if(V)return V.test(L);for(let o=0;o<L.length;o++){let a=L[o];if(/\w/.test(a)||a>"\x80"&&(a.toUpperCase()!=a.toLowerCase()||Li.test(a)))return!0}return!1}function $(L){return o=>{if(!/\S/.test(o))return pi.Space;if(D(o))return pi.Word;for(let a=0;a<L.length;a++)if(o.indexOf(L[a])>-1)return pi.Word;return pi.Other}}class z{constructor(o,a,u,y,T,A){this.config=o,this.doc=a,this.selection=u,this.values=y,this.status=o.statusTemplate.slice(),this.computeSlot=T,A&&(A._state=this);for(let N=0;N<this.config.dynamicSlots.length;N++)He(this,N<<1);this.computeSlot=null}field(o,a=!0){let u=this.config.address[o.id];if(u==null){if(a)throw new RangeError("Field is not present in this state");return}return He(this,u),Ne(this,u)}update(...o){return Gt(this,o,!0)}applyTransaction(o){let a=this.config,{base:u,compartments:y}=a;for(let N of o.effects)N.is(le.reconfigure)?(a&&(y=new Map,a.compartments.forEach((J,st)=>y.set(st,J)),a=null),y.set(N.value.compartment,N.value.extension)):N.is(qt.reconfigure)?(a=null,u=N.value):N.is(qt.appendConfig)&&(a=null,u=Ge(u).concat(N.value));let T;a?T=o.startState.values.slice():(a=Ae.resolve(u,y,this),T=new z(a,this.doc,this.selection,a.dynamicSlots.map(()=>null),(J,st)=>st.reconfigure(J,this),null).values);let A=o.startState.facet(q)?o.newSelection:o.newSelection.asSingle();new z(a,o.newDoc,A,T,(N,J)=>J.update(N,o),o)}replaceSelection(o){return typeof o=="string"&&(o=this.toText(o)),this.changeByRange(a=>({changes:{from:a.from,to:a.to,insert:o},range:Ut.cursor(a.from+o.length)}))}changeByRange(o){let a=this.selection,u=o(a.ranges[0]),y=this.changes(u.changes),T=[u.range],A=Ge(u.effects);for(let N=1;N<a.ranges.length;N++){let J=o(a.ranges[N]),st=this.changes(J.changes),mt=st.map(y);for(let Lt=0;Lt<N;Lt++)T[Lt]=T[Lt].map(mt);let xt=y.mapDesc(st,!0);T.push(J.range.map(xt)),y=y.compose(mt),A=qt.mapEffects(A,mt).concat(qt.mapEffects(Ge(J.effects),xt))}return{changes:y,selection:Ut.create(T,a.mainIndex),effects:A}}changes(o=[]){return o instanceof Jt?o:Jt.of(o,this.doc.length,this.facet(z.lineSeparator))}toText(o){return Q.of(o.split(this.facet(z.lineSeparator)||Be))}sliceDoc(o=0,a=this.doc.length){return this.doc.sliceString(o,a,this.lineBreak)}facet(o){let a=this.config.address[o.id];return a==null?o.default:(He(this,a),Ne(this,a))}toJSON(o){let a={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(o)for(let u in o){let y=o[u];y instanceof Dt&&this.config.address[y.id]!=null&&(a[u]=y.spec.toJSON(this.field(o[u]),this))}return a}static fromJSON(o,a={},u){if(!o||typeof o.doc!="string")throw new RangeError("Invalid JSON representation for EditorState");let y=[];if(u){for(let T in u)if(Object.prototype.hasOwnProperty.call(o,T)){let A=u[T],N=o[T];y.push(A.init(J=>A.spec.fromJSON(N,J)))}}return z.create({doc:o.doc,selection:Ut.fromJSON(o.selection),extensions:a.extensions?y.concat([a.extensions]):y})}static create(o={}){let a=Ae.resolve(o.extensions||[],new Map),u=o.doc instanceof Q?o.doc:Q.of((o.doc||"").split(a.staticFacet(z.lineSeparator)||Be)),y=o.selection?o.selection instanceof Ut?o.selection:Ut.single(o.selection.anchor,o.selection.head):Ut.single(0);return ce(y,u.length),a.staticFacet(q)||(y=y.asSingle()),new z(a,u,y,a.dynamicSlots.map(()=>null),(T,A)=>A.create(T),null)}get tabSize(){return this.facet(z.tabSize)}get lineBreak(){return this.facet(z.lineSeparator)||`
|
|
22
|
+
`}get readOnly(){return this.facet(Ht)}phrase(o,...a){for(let u of this.facet(z.phrases))if(Object.prototype.hasOwnProperty.call(u,o)){o=u[o];break}return a.length&&(o=o.replace(/\$(\$|\d*)/g,(u,y)=>{if(y=="$")return"$";let T=+(y||1);return!T||T>a.length?u:a[T-1]})),o}languageDataAt(o,a,u=-1){let y=[];for(let T of this.facet(G))for(let A of T(this,a,u))Object.prototype.hasOwnProperty.call(A,o)&&y.push(A[o]);return y}charCategorizer(o){return $(this.languageDataAt("wordChars",o).join(""))}wordAt(o){let{text:a,from:u,length:y}=this.doc.lineAt(o),T=this.charCategorizer(o),A=o-u,N=o-u;for(;A>0;){let J=_t(a,A,!1);if(T(a.slice(J,A))!=pi.Word)break;A=J}for(;N<y;){let J=_t(a,N);if(T(a.slice(N,J))!=pi.Word)break;N=J}return A==N?null:Ut.range(A+u,N+u)}}z.allowMultipleSelections=q,z.tabSize=ve.define({combine:L=>L.length?L[0]:4}),z.lineSeparator=lt,z.readOnly=Ht,z.phrases=ve.define({compare(L,o){let a=Object.keys(L),u=Object.keys(o);return a.length==u.length&&a.every(y=>L[y]==o[y])}}),z.languageData=G,z.changeFilter=rt,z.transactionFilter=bt,z.transactionExtender=Ot,le.reconfigure=qt.define();function U(L,o,a={}){let u={};for(let y of L)for(let T of Object.keys(y)){let A=y[T],N=u[T];if(N===void 0)u[T]=A;else if(!(N===A||A===void 0))if(Object.hasOwnProperty.call(a,T))u[T]=a[T](N,A);else throw new Error("Config merge conflict for field "+T)}for(let y in o)u[y]===void 0&&(u[y]=o[y]);return u}class ht{eq(o){return this==o}range(o,a=o){return St.create(o,a,this)}}ht.prototype.startSide=ht.prototype.endSide=0,ht.prototype.point=!1,ht.prototype.mapMode=Me.TrackDel;class St{constructor(o,a,u){this.from=o,this.to=a,this.value=u}static create(o,a,u){return new St(o,a,u)}}function wt(L,o){return L.from-o.from||L.value.startSide-o.value.startSide}class It{constructor(o,a,u,y){this.from=o,this.to=a,this.value=u,this.maxPoint=y}get length(){return this.to[this.to.length-1]}findIndex(o,a,u,y=0){let T=u?this.to:this.from;for(let A=y,N=T.length;;){if(A==N)return A;let J=A+N>>1,st=T[J]-o||(u?this.value[J].endSide:this.value[J].startSide)-a;if(J==A)return st>=0?A:N;st>=0?N=J:A=J+1}}between(o,a,u,y){for(let T=this.findIndex(a,-1e9,!0),A=this.findIndex(u,1e9,!1,T);T<A;T++)if(y(this.from[T]+o,this.to[T]+o,this.value[T])===!1)return!1}map(o,a){let u=[],y=[],T=[],A=-1,N=-1;for(let J=0;J<this.value.length;J++){let st=this.value[J],mt=this.from[J]+o,xt=this.to[J]+o,Lt,Rt;if(mt==xt){let De=a.mapPos(mt,st.startSide,st.mapMode);if(De==null||(Lt=Rt=De,st.startSide!=st.endSide&&(Rt=a.mapPos(mt,st.endSide),Rt<Lt)))continue}else if(Lt=a.mapPos(mt,st.startSide),Rt=a.mapPos(xt,st.endSide),Lt>Rt||Lt==Rt&&st.startSide>0&&st.endSide<=0)continue;(Rt-Lt||st.endSide-st.startSide)<0||(A<0&&(A=Lt),st.point&&(N=Math.max(N,Rt-Lt)),u.push(st),y.push(Lt-A),T.push(Rt-A))}return{mapped:u.length?new It(y,T,u,N):null,pos:A}}}class Qt{constructor(o,a,u,y){this.chunkPos=o,this.chunk=a,this.nextLayer=u,this.maxPoint=y}static create(o,a,u,y){return new Qt(o,a,u,y)}get length(){let o=this.chunk.length-1;return o<0?0:Math.max(this.chunkEnd(o),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let o=this.nextLayer.size;for(let a of this.chunk)o+=a.value.length;return o}chunkEnd(o){return this.chunkPos[o]+this.chunk[o].length}update(o){let{add:a=[],sort:u=!1,filterFrom:y=0,filterTo:T=this.length}=o,A=o.filter;if(a.length==0&&!A)return this;if(u&&(a=a.slice().sort(wt)),this.isEmpty)return a.length?Qt.of(a):this;let N=new mi(this,null,-1).goto(0),J=0,st=[],mt=new Ke;for(;N.value||J<a.length;)if(J<a.length&&(N.from-a[J].from||N.startSide-a[J].value.startSide)>=0){let xt=a[J++];mt.addInner(xt.from,xt.to,xt.value)||st.push(xt)}else N.rangeIndex==1&&N.chunkIndex<this.chunk.length&&(J==a.length||this.chunkEnd(N.chunkIndex)<a[J].from)&&(!A||y>this.chunkEnd(N.chunkIndex)||T<this.chunkPos[N.chunkIndex])&&mt.addChunk(this.chunkPos[N.chunkIndex],this.chunk[N.chunkIndex])?N.nextChunk():((!A||y>N.to||T<N.from||A(N.from,N.to,N.value))&&(mt.addInner(N.from,N.to,N.value)||st.push(St.create(N.from,N.to,N.value))),N.next());return mt.finishInner(this.nextLayer.isEmpty&&!st.length?Qt.empty:this.nextLayer.update({add:st,filter:A,filterFrom:y,filterTo:T}))}map(o){if(o.empty||this.isEmpty)return this;let a=[],u=[],y=-1;for(let A=0;A<this.chunk.length;A++){let N=this.chunkPos[A],J=this.chunk[A],st=o.touchesRange(N,N+J.length);if(st===!1)y=Math.max(y,J.maxPoint),a.push(J),u.push(o.mapPos(N));else if(st===!0){let{mapped:mt,pos:xt}=J.map(N,o);mt&&(y=Math.max(y,mt.maxPoint),a.push(mt),u.push(xt))}}let T=this.nextLayer.map(o);return a.length==0?T:new Qt(u,a,T||Qt.empty,y)}between(o,a,u){if(!this.isEmpty){for(let y=0;y<this.chunk.length;y++){let T=this.chunkPos[y],A=this.chunk[y];if(a>=T&&o<=T+A.length&&A.between(T,o-T,a-T,u)===!1)return}this.nextLayer.between(o,a,u)}}iter(o=0){return Ee.from([this]).goto(o)}get isEmpty(){return this.nextLayer==this}static iter(o,a=0){return Ee.from(o).goto(a)}static compare(o,a,u,y,T=-1){let A=o.filter(xt=>xt.maxPoint>0||!xt.isEmpty&&xt.maxPoint>=T),N=a.filter(xt=>xt.maxPoint>0||!xt.isEmpty&&xt.maxPoint>=T),J=Qe(A,N,u),st=new gi(A,J,T),mt=new gi(N,J,T);u.iterGaps((xt,Lt,Rt)=>fi(st,xt,mt,Lt,Rt,y)),u.empty&&u.length==0&&fi(st,0,mt,0,0,y)}static eq(o,a,u=0,y){y==null&&(y=1e9-1);let T=o.filter(mt=>!mt.isEmpty&&a.indexOf(mt)<0),A=a.filter(mt=>!mt.isEmpty&&o.indexOf(mt)<0);if(T.length!=A.length)return!1;if(!T.length)return!0;let N=Qe(T,A),J=new gi(T,N,0).goto(u),st=new gi(A,N,0).goto(u);for(;;){if(J.to!=st.to||!Ii(J.active,st.active)||J.point&&(!st.point||!J.point.eq(st.point)))return!1;if(J.to>y)return!0;J.next(),st.next()}}static spans(o,a,u,y,T=-1){let A=new gi(o,null,T).goto(a),N=a,J=A.openStart;for(;;){let st=Math.min(A.to,u);if(A.point){let mt=A.activeForPoint(A.to),xt=A.pointFrom<a?mt.length+1:A.point.startSide<0?mt.length:Math.min(mt.length,J);y.point(N,st,A.point,mt,xt,A.pointRank),J=Math.min(A.openEnd(st),mt.length)}else st>N&&(y.span(N,st,A.active,J),J=A.openEnd(st));if(A.to>u)return J+(A.point&&A.to>u?1:0);N=A.to,A.next()}}static of(o,a=!1){let u=new Ke;for(let y of o instanceof St?[o]:a?$e(o):o)u.add(y.from,y.to,y.value);return u.finish()}static join(o){if(!o.length)return Qt.empty;let a=o[o.length-1];for(let u=o.length-2;u>=0;u--)for(let y=o[u];y!=Qt.empty;y=y.nextLayer)a=new Qt(y.chunkPos,y.chunk,a,Math.max(y.maxPoint,a.maxPoint));return a}}Qt.empty=new Qt([],[],null,-1);function $e(L){if(L.length>1)for(let o=L[0],a=1;a<L.length;a++){let u=L[a];if(wt(o,u)>0)return L.slice().sort(wt);o=u}return L}Qt.empty.nextLayer=Qt.empty;class Ke{finishChunk(o){this.chunks.push(new It(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,o&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(o,a,u){this.addInner(o,a,u)||(this.nextLayer||(this.nextLayer=new Ke)).add(o,a,u)}addInner(o,a,u){let y=o-this.lastTo||u.startSide-this.last.endSide;if(y<=0&&(o-this.lastFrom||u.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return y<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=o),this.from.push(o-this.chunkStart),this.to.push(a-this.chunkStart),this.last=u,this.lastFrom=o,this.lastTo=a,this.value.push(u),u.point&&(this.maxPoint=Math.max(this.maxPoint,a-o)),!0)}addChunk(o,a){if((o-this.lastTo||a.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,a.maxPoint),this.chunks.push(a),this.chunkPos.push(o);let u=a.value.length-1;return this.last=a.value[u],this.lastFrom=a.from[u]+o,this.lastTo=a.to[u]+o,!0}finish(){return this.finishInner(Qt.empty)}finishInner(o){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return o;let a=Qt.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(o):o,this.setMaxPoint);return this.from=null,a}}function Qe(L,o,a){let u=new Map;for(let T of L)for(let A=0;A<T.chunk.length;A++)T.chunk[A].maxPoint<=0&&u.set(T.chunk[A],T.chunkPos[A]);let y=new Set;for(let T of o)for(let A=0;A<T.chunk.length;A++){let N=u.get(T.chunk[A]);N!=null&&(a?a.mapPos(N):N)==T.chunkPos[A]&&!(a!=null&&a.touchesRange(N,N+T.chunk[A].length))&&y.add(T.chunk[A])}return y}class mi{constructor(o,a,u,y=0){this.layer=o,this.skip=a,this.minPoint=u,this.rank=y}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(o,a=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(o,a,!1),this}gotoInner(o,a,u){for(;this.chunkIndex<this.layer.chunk.length;){let y=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(y)||this.layer.chunkEnd(this.chunkIndex)<o||y.maxPoint<this.minPoint))break;this.chunkIndex++,u=!1}if(this.chunkIndex<this.layer.chunk.length){let y=this.layer.chunk[this.chunkIndex].findIndex(o-this.layer.chunkPos[this.chunkIndex],a,!0);(!u||this.rangeIndex<y)&&this.setRangeIndex(y)}this.next()}forward(o,a){(this.to-o||this.endSide-a)<0&&this.gotoInner(o,a,!0)}next(){for(;;)if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}else{let o=this.layer.chunkPos[this.chunkIndex],a=this.layer.chunk[this.chunkIndex],u=o+a.from[this.rangeIndex];if(this.from=u,this.to=o+a.to[this.rangeIndex],this.value=a.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}setRangeIndex(o){if(o==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=o}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(o){return this.from-o.from||this.startSide-o.startSide||this.rank-o.rank||this.to-o.to||this.endSide-o.endSide}}class Ee{constructor(o){this.heap=o}static from(o,a=null,u=-1){let y=[];for(let T=0;T<o.length;T++)for(let A=o[T];!A.isEmpty;A=A.nextLayer)A.maxPoint>=u&&y.push(new mi(A,a,u,T));return y.length==1?y[0]:new Ee(y)}get startSide(){return this.value?this.value.startSide:0}goto(o,a=-1e9){for(let u of this.heap)u.goto(o,a);for(let u=this.heap.length>>1;u>=0;u--)Ze(this.heap,u);return this.next(),this}forward(o,a){for(let u of this.heap)u.forward(o,a);for(let u=this.heap.length>>1;u>=0;u--)Ze(this.heap,u);(this.to-o||this.value.endSide-a)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let o=this.heap[0];this.from=o.from,this.to=o.to,this.value=o.value,this.rank=o.rank,o.value&&o.next(),Ze(this.heap,0)}}}function Ze(L,o){for(let a=L[o];;){let u=(o<<1)+1;if(u>=L.length)break;let y=L[u];if(u+1<L.length&&y.compare(L[u+1])>=0&&(y=L[u+1],u++),a.compare(y)<0)break;L[u]=a,L[o]=y,o=u}}class gi{constructor(o,a,u){this.minPoint=u,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=Ee.from(o,a,u)}goto(o,a=-1e9){return this.cursor.goto(o,a),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=o,this.endSide=a,this.openStart=-1,this.next(),this}forward(o,a){for(;this.minActive>-1&&(this.activeTo[this.minActive]-o||this.active[this.minActive].endSide-a)<0;)this.removeActive(this.minActive);this.cursor.forward(o,a)}removeActive(o){ye(this.active,o),ye(this.activeTo,o),ye(this.activeRank,o),this.minActive=zi(this.active,this.activeTo)}addActive(o){let a=0,{value:u,to:y,rank:T}=this.cursor;for(;a<this.activeRank.length&&(T-this.activeRank[a]||y-this.activeTo[a])>0;)a++;Ri(this.active,a,u),Ri(this.activeTo,a,y),Ri(this.activeRank,a,T),o&&Ri(o,a,this.cursor.from),this.minActive=zi(this.active,this.activeTo)}next(){let o=this.to,a=this.point;this.point=null;let u=this.openStart<0?[]:null;for(;;){let y=this.minActive;if(y>-1&&(this.activeTo[y]-this.cursor.from||this.active[y].endSide-this.cursor.startSide)<0){if(this.activeTo[y]>o){this.to=this.activeTo[y],this.endSide=this.active[y].endSide;break}this.removeActive(y),u&&ye(u,y)}else if(this.cursor.value)if(this.cursor.from>o){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let T=this.cursor.value;if(!T.point)this.addActive(u),this.cursor.next();else if(a&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to)this.cursor.next();else{this.point=T,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=T.endSide,this.cursor.next(),this.forward(this.to,this.endSide);break}}else{this.to=this.endSide=1e9;break}}if(u){this.openStart=0;for(let y=u.length-1;y>=0&&u[y]<o;y--)this.openStart++}}activeForPoint(o){if(!this.active.length)return this.active;let a=[];for(let u=this.active.length-1;u>=0&&!(this.activeRank[u]<this.pointRank);u--)(this.activeTo[u]>o||this.activeTo[u]==o&&this.active[u].endSide>=this.point.endSide)&&a.push(this.active[u]);return a.reverse()}openEnd(o){let a=0;for(let u=this.activeTo.length-1;u>=0&&this.activeTo[u]>o;u--)a++;return a}}function fi(L,o,a,u,y,T){L.goto(o),a.goto(u);let A=u+y,N=u,J=u-o;for(;;){let st=L.to+J-a.to,mt=st||L.endSide-a.endSide,xt=mt<0?L.to+J:a.to,Lt=Math.min(xt,A);if(L.point||a.point?L.point&&a.point&&(L.point==a.point||L.point.eq(a.point))&&Ii(L.activeForPoint(L.to),a.activeForPoint(a.to))||T.comparePoint(N,Lt,L.point,a.point):Lt>N&&!Ii(L.active,a.active)&&T.compareRange(N,Lt,L.active,a.active),xt>A)break;(st||L.openEnd!=a.openEnd)&&T.boundChange&&T.boundChange(xt),N=xt,mt<=0&&L.next(),mt>=0&&a.next()}}function Ii(L,o){if(L.length!=o.length)return!1;for(let a=0;a<L.length;a++)if(L[a]!=o[a]&&!L[a].eq(o[a]))return!1;return!0}function ye(L,o){for(let a=o,u=L.length-1;a<u;a++)L[a]=L[a+1];L.pop()}function Ri(L,o,a){for(let u=L.length-1;u>=o;u--)L[u+1]=L[u];L[o]=a}function zi(L,o){let a=-1,u=1e9;for(let y=0;y<o.length;y++)(o[y]-u||L[y].endSide-L[a].endSide)<0&&(a=y,u=o[y]);return a}function Ui(L,o,a=L.length){let u=0;for(let y=0;y<a&&y<L.length;)L.charCodeAt(y)==9?(u+=o-u%o,y++):(u++,y=_t(L,y));return u}function Ni(L,o,a,u){for(let y=0,T=0;;){if(T>=o)return y;if(y==L.length)break;T+=L.charCodeAt(y)==9?a-T%a:1,y=_t(L,y)}return u===!0?-1:L.length}},23732:function(tn,vi,Zt){Zt.d(vi,{vk:function(){return Pt}});var P=Zt(47421),Q=Zt(59119),Z=Zt(35524);const kt="#e5c07b",se="#e06c75",Ce="#56b6c2",ke="#ffffff",Oe="#abb2bf",Pe="#7d8799",fe="#61afef",me="#98c379",we="#d19a66",_t="#c678dd",ri="#21252b",ze="#2c313a",oi="#282c34",Ye="#353a42",ni="#3E4451",Be="#528bff",Me={chalky:kt,coral:se,cyan:Ce,invalid:ke,ivory:Oe,stone:Pe,malibu:fe,sage:me,whiskey:we,violet:_t,darkBackground:ri,highlightBackground:ze,background:oi,tooltipBackground:Ye,selection:ni,cursor:Be},de=P.tk.theme({"&":{color:Oe,backgroundColor:oi},".cm-content":{caretColor:Be},".cm-cursor, .cm-dropCursor":{borderLeftColor:Be},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:ni},".cm-panels":{backgroundColor:ri,color:Oe},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:oi,color:Pe,border:"none"},".cm-activeLineGutter":{backgroundColor:ze},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:Ye},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:Ye,borderBottomColor:Ye},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:ze,color:Oe}}},{dark:!0}),Jt=Q.Qf.define([{tag:Z.pJ.keyword,color:_t},{tag:[Z.pJ.name,Z.pJ.deleted,Z.pJ.character,Z.pJ.propertyName,Z.pJ.macroName],color:se},{tag:[Z.pJ.function(Z.pJ.variableName),Z.pJ.labelName],color:fe},{tag:[Z.pJ.color,Z.pJ.constant(Z.pJ.name),Z.pJ.standard(Z.pJ.name)],color:we},{tag:[Z.pJ.definition(Z.pJ.name),Z.pJ.separator],color:Oe},{tag:[Z.pJ.typeName,Z.pJ.className,Z.pJ.number,Z.pJ.changed,Z.pJ.annotation,Z.pJ.modifier,Z.pJ.self,Z.pJ.namespace],color:kt},{tag:[Z.pJ.operator,Z.pJ.operatorKeyword,Z.pJ.url,Z.pJ.escape,Z.pJ.regexp,Z.pJ.link,Z.pJ.special(Z.pJ.string)],color:Ce},{tag:[Z.pJ.meta,Z.pJ.comment],color:Pe},{tag:Z.pJ.strong,fontWeight:"bold"},{tag:Z.pJ.emphasis,fontStyle:"italic"},{tag:Z.pJ.strikethrough,textDecoration:"line-through"},{tag:Z.pJ.link,color:Pe,textDecoration:"underline"},{tag:Z.pJ.heading,fontWeight:"bold",color:se},{tag:[Z.pJ.atom,Z.pJ.bool,Z.pJ.special(Z.pJ.variableName)],color:we},{tag:[Z.pJ.processingInstruction,Z.pJ.string,Z.pJ.inserted],color:me},{tag:Z.pJ.invalid,color:ke}]),Pt=[de,(0,Q.nF)(Jt)]},47421:function(tn,vi,Zt){Zt.d(vi,{$1:function(){return qr},$f:function(){return Ys},AE:function(){return ao},Eu:function(){return Uo},HQ:function(){return Yo},Nm:function(){return wt},OO:function(){return M},S2:function(){return Ao},SJ:function(){return Yi},Sd:function(){return pr},Uw:function(){return Qr},W$:function(){return wo},ZO:function(){return mo},Zs:function(){return So},bF:function(){return Io},gB:function(){return No},hJ:function(){return Os},jH:function(){return Mo},l9:function(){return si},lg:function(){return B},mH:function(){return is},p:function(){return Kt},qr:function(){return no},tk:function(){return xe},v5:function(){return $o}});var P=Zt(78120),Q=Zt(28699),Z=Zt(81754);function kt(s){let t;return s.nodeType==11?t=s.getSelection?s:s.ownerDocument:t=s,t.getSelection()}function se(s,t){return t?s==t||s.contains(t.nodeType!=1?t.parentNode:t):!1}function Ce(s,t){if(!t.anchorNode)return!1;try{return se(s,t.anchorNode)}catch{return!1}}function ke(s){return s.nodeType==3?Jt(s,0,s.nodeValue.length).getClientRects():s.nodeType==1?s.getClientRects():[]}function Oe(s,t,e,i){return e?me(s,t,e,i,-1)||me(s,t,e,i,1):!1}function Pe(s){for(var t=0;;t++)if(s=s.previousSibling,!s)return t}function fe(s){return s.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(s.nodeName)}function me(s,t,e,i,n){for(;;){if(s==e&&t==i)return!0;if(t==(n<0?0:we(s))){if(s.nodeName=="DIV")return!1;let r=s.parentNode;if(!r||r.nodeType!=1)return!1;t=Pe(s)+(n<0?0:1),s=r}else if(s.nodeType==1){if(s=s.childNodes[t+(n<0?-1:0)],s.nodeType==1&&s.contentEditable=="false")return!1;t=n<0?we(s):0}else return!1}}function we(s){return s.nodeType==3?s.nodeValue.length:s.childNodes.length}function _t(s,t){let e=t?s.left:s.right;return{left:e,right:e,top:s.top,bottom:s.bottom}}function ri(s){let t=s.visualViewport;return t?{left:0,right:t.width,top:0,bottom:t.height}:{left:0,right:s.innerWidth,top:0,bottom:s.innerHeight}}function ze(s,t){let e=t.width/s.offsetWidth,i=t.height/s.offsetHeight;return(e>.995&&e<1.005||!isFinite(e)||Math.abs(t.width-s.offsetWidth)<1)&&(e=1),(i>.995&&i<1.005||!isFinite(i)||Math.abs(t.height-s.offsetHeight)<1)&&(i=1),{scaleX:e,scaleY:i}}function oi(s,t,e,i,n,r,l,c){let p=s.ownerDocument,k=p.defaultView||window;for(let v=s,R=!1;v&&!R;)if(v.nodeType==1){let W,X=v==p.body,et=1,ut=1;if(X)W=ri(k);else{if(/^(fixed|sticky)$/.test(getComputedStyle(v).position)&&(R=!0),v.scrollHeight<=v.clientHeight&&v.scrollWidth<=v.clientWidth){v=v.assignedSlot||v.parentNode;continue}let $t=v.getBoundingClientRect();({scaleX:et,scaleY:ut}=ze(v,$t)),W={left:$t.left,right:$t.left+v.clientWidth*et,top:$t.top,bottom:$t.top+v.clientHeight*ut}}let dt=0,pt=0;if(n=="nearest")t.top<W.top?(pt=t.top-(W.top+l),e>0&&t.bottom>W.bottom+pt&&(pt=t.bottom-W.bottom+l)):t.bottom>W.bottom&&(pt=t.bottom-W.bottom+l,e<0&&t.top-pt<W.top&&(pt=t.top-(W.top+l)));else{let $t=t.bottom-t.top,ee=W.bottom-W.top;pt=(n=="center"&&$t<=ee?t.top+$t/2-ee/2:n=="start"||n=="center"&&e<0?t.top-l:t.bottom-ee+l)-W.top}if(i=="nearest"?t.left<W.left?(dt=t.left-(W.left+r),e>0&&t.right>W.right+dt&&(dt=t.right-W.right+r)):t.right>W.right&&(dt=t.right-W.right+r,e<0&&t.left<W.left+dt&&(dt=t.left-(W.left+r))):dt=(i=="center"?t.left+(t.right-t.left)/2-(W.right-W.left)/2:i=="start"==c?t.left-r:t.right-(W.right-W.left)+r)-W.left,dt||pt)if(X)k.scrollBy(dt,pt);else{let $t=0,ee=0;if(pt){let Yt=v.scrollTop;v.scrollTop+=pt/ut,ee=(v.scrollTop-Yt)*ut}if(dt){let Yt=v.scrollLeft;v.scrollLeft+=dt/et,$t=(v.scrollLeft-Yt)*et}t={left:t.left-$t,top:t.top-ee,right:t.right-$t,bottom:t.bottom-ee},$t&&Math.abs($t-dt)<1&&(i="nearest"),ee&&Math.abs(ee-pt)<1&&(n="nearest")}if(X)break;(t.top<W.top||t.bottom>W.bottom||t.left<W.left||t.right>W.right)&&(t={left:Math.max(t.left,W.left),right:Math.min(t.right,W.right),top:Math.max(t.top,W.top),bottom:Math.min(t.bottom,W.bottom)}),v=v.assignedSlot||v.parentNode}else if(v.nodeType==11)v=v.host;else break}function Ye(s){let t=s.ownerDocument,e,i;for(let n=s.parentNode;n&&!(n==t.body||e&&i);)if(n.nodeType==1)!i&&n.scrollHeight>n.clientHeight&&(i=n),!e&&n.scrollWidth>n.clientWidth&&(e=n),n=n.assignedSlot||n.parentNode;else if(n.nodeType==11)n=n.host;else break;return{x:e,y:i}}class ni{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(t){return this.anchorNode==t.anchorNode&&this.anchorOffset==t.anchorOffset&&this.focusNode==t.focusNode&&this.focusOffset==t.focusOffset}setRange(t){let{anchorNode:e,focusNode:i}=t;this.set(e,Math.min(t.anchorOffset,e?we(e):0),i,Math.min(t.focusOffset,i?we(i):0))}set(t,e,i,n){this.anchorNode=t,this.anchorOffset=e,this.focusNode=i,this.focusOffset=n}}let Be=null;function Me(s){if(s.setActive)return s.setActive();if(Be)return s.focus(Be);let t=[];for(let e=s;e&&(t.push(e,e.scrollTop,e.scrollLeft),e!=e.ownerDocument);e=e.parentNode);if(s.focus(Be==null?{get preventScroll(){return Be={preventScroll:!0},!0}}:void 0),!Be){Be=!1;for(let e=0;e<t.length;){let i=t[e++],n=t[e++],r=t[e++];i.scrollTop!=n&&(i.scrollTop=n),i.scrollLeft!=r&&(i.scrollLeft=r)}}}let de;function Jt(s,t,e=t){let i=de||(de=document.createRange());return i.setEnd(s,e),i.setStart(s,t),i}function Pt(s,t,e,i){let n={key:t,code:t,keyCode:e,which:e,cancelable:!0};i&&({altKey:n.altKey,ctrlKey:n.ctrlKey,shiftKey:n.shiftKey,metaKey:n.metaKey}=i);let r=new KeyboardEvent("keydown",n);r.synthetic=!0,s.dispatchEvent(r);let l=new KeyboardEvent("keyup",n);return l.synthetic=!0,s.dispatchEvent(l),r.defaultPrevented||l.defaultPrevented}function re(s){for(;s;){if(s&&(s.nodeType==9||s.nodeType==11&&s.host))return s;s=s.assignedSlot||s.parentNode}return null}function Bt(s){for(;s.attributes.length;)s.removeAttributeNode(s.attributes[0])}function Je(s,t){let e=t.focusNode,i=t.focusOffset;if(!e||t.anchorNode!=e||t.anchorOffset!=i)return!1;for(i=Math.min(i,we(e));;)if(i){if(e.nodeType!=1)return!1;let n=e.childNodes[i-1];n.contentEditable=="false"?i--:(e=n,i=we(e))}else{if(e==s)return!0;i=Pe(e),e=e.parentNode}}function di(s){return s.scrollTop>Math.max(1,s.scrollHeight-s.clientHeight-4)}function Fe(s,t){for(let e=s,i=t;;){if(e.nodeType==3&&i>0)return{node:e,offset:i};if(e.nodeType==1&&i>0){if(e.contentEditable=="false")return null;e=e.childNodes[i-1],i=we(e)}else if(e.parentNode&&!fe(e))i=Pe(e),e=e.parentNode;else return null}}function Xe(s,t){for(let e=s,i=t;;){if(e.nodeType==3&&i<e.nodeValue.length)return{node:e,offset:i};if(e.nodeType==1&&i<e.childNodes.length){if(e.contentEditable=="false")return null;e=e.childNodes[i],i=0}else if(e.parentNode&&!fe(e))i=Pe(e)+1,e=e.parentNode;else return null}}class Ut{constructor(t,e,i=!0){this.node=t,this.offset=e,this.precise=i}static before(t,e){return new Ut(t.parentNode,Pe(t),e)}static after(t,e){return new Ut(t.parentNode,Pe(t)+1,e)}}const ce=[];class te{constructor(){this.parent=null,this.dom=null,this.flags=2}get overrideDOMText(){return null}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(t){let e=this.posAtStart;for(let i of this.children){if(i==t)return e;e+=i.length+i.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(t){return this.posBefore(t)+t.length}sync(t,e){if(this.flags&2){let i=this.dom,n=null,r;for(let l of this.children){if(l.flags&7){if(!l.dom&&(r=n?n.nextSibling:i.firstChild)){let c=te.get(r);(!c||!c.parent&&c.canReuseDOM(l))&&l.reuseDOM(r)}l.sync(t,e),l.flags&=-8}if(r=n?n.nextSibling:i.firstChild,e&&!e.written&&e.node==i&&r!=l.dom&&(e.written=!0),l.dom.parentNode==i)for(;r&&r!=l.dom;)r=ve(r);else i.insertBefore(l.dom,r);n=l.dom}for(r=n?n.nextSibling:i.firstChild,r&&e&&e.node==i&&(e.written=!0);r;)r=ve(r)}else if(this.flags&1)for(let i of this.children)i.flags&7&&(i.sync(t,e),i.flags&=-8)}reuseDOM(t){}localPosFromDOM(t,e){let i;if(t==this.dom)i=this.dom.childNodes[e];else{let n=we(t)==0?0:e==0?-1:1;for(;;){let r=t.parentNode;if(r==this.dom)break;n==0&&r.firstChild!=r.lastChild&&(t==r.firstChild?n=-1:n=1),t=r}n<0?i=t:i=t.nextSibling}if(i==this.dom.firstChild)return 0;for(;i&&!te.get(i);)i=i.nextSibling;if(!i)return this.length;for(let n=0,r=0;;n++){let l=this.children[n];if(l.dom==i)return r;r+=l.length+l.breakAfter}}domBoundsAround(t,e,i=0){let n=-1,r=-1,l=-1,c=-1;for(let p=0,k=i,v=i;p<this.children.length;p++){let R=this.children[p],W=k+R.length;if(k<t&&W>e)return R.domBoundsAround(t,e,k);if(W>=t&&n==-1&&(n=p,r=k),k>e&&R.dom.parentNode==this.dom){l=p,c=v;break}v=W,k=W+R.breakAfter}return{from:r,to:c<0?i+this.length:c,startDOM:(n?this.children[n-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:l<this.children.length&&l>=0?this.children[l].dom:null}}markDirty(t=!1){this.flags|=2,this.markParentsDirty(t)}markParentsDirty(t){for(let e=this.parent;e;e=e.parent){if(t&&(e.flags|=2),e.flags&1)return;e.flags|=1,t=!1}}setParent(t){this.parent!=t&&(this.parent=t,this.flags&7&&this.markParentsDirty(!0))}setDOM(t){this.dom!=t&&(this.dom&&(this.dom.cmView=null),this.dom=t,t.cmView=this)}get rootView(){for(let t=this;;){let e=t.parent;if(!e)return t;t=e}}replaceChildren(t,e,i=ce){this.markDirty();for(let n=t;n<e;n++){let r=this.children[n];r.parent==this&&i.indexOf(r)<0&&r.destroy()}i.length<250?this.children.splice(t,e-t,...i):this.children=[].concat(this.children.slice(0,t),i,this.children.slice(e));for(let n=0;n<i.length;n++)i[n].setParent(this)}ignoreMutation(t){return!1}ignoreEvent(t){return!1}childCursor(t=this.length){return new Te(this.children,t,this.children.length)}childPos(t,e=1){return this.childCursor().findPos(t,e)}toString(){let t=this.constructor.name.replace("View","");return t+(this.children.length?"("+this.children.join()+")":this.length?"["+(t=="Text"?this.text:this.length)+"]":"")+(this.breakAfter?"#":"")}static get(t){return t.cmView}get isEditable(){return!0}get isWidget(){return!1}get isHidden(){return!1}merge(t,e,i,n,r,l){return!1}become(t){return!1}canReuseDOM(t){return t.constructor==this.constructor&&!((this.flags|t.flags)&8)}getSide(){return 0}destroy(){for(let t of this.children)t.parent==this&&t.destroy();this.parent=null}}te.prototype.breakAfter=0;function ve(s){let t=s.nextSibling;return s.parentNode.removeChild(s),t}class Te{constructor(t,e,i){this.children=t,this.pos=e,this.i=i,this.off=0}findPos(t,e=1){for(;;){if(t>this.pos||t==this.pos&&(e>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=t-this.pos,this;let i=this.children[--this.i];this.pos-=i.length+i.breakAfter}}}function qe(s,t,e,i,n,r,l,c,p){let{children:k}=s,v=k.length?k[t]:null,R=r.length?r[r.length-1]:null,W=R?R.breakAfter:l;if(!(t==i&&v&&!l&&!W&&r.length<2&&v.merge(e,n,r.length?R:null,e==0,c,p))){if(i<k.length){let X=k[i];X&&(n<X.length||X.breakAfter&&(R!=null&&R.breakAfter))?(t==i&&(X=X.split(n),n=0),!W&&R&&X.merge(0,n,R,!0,0,p)?r[r.length-1]=X:((n||X.children.length&&!X.children[0].length)&&X.merge(0,n,null,!1,0,p),r.push(X))):X!=null&&X.breakAfter&&(R?R.breakAfter=1:l=1),i++}for(v&&(v.breakAfter=l,e>0&&(!l&&r.length&&v.merge(e,v.length,r[0],!1,c,0)?v.breakAfter=r.shift().breakAfter:(e<v.length||v.children.length&&v.children[v.children.length-1].length==0)&&v.merge(e,v.length,null,!1,c,0),t++));t<i&&r.length;)if(k[i-1].become(r[r.length-1]))i--,r.pop(),p=r.length?0:c;else if(k[t].become(r[0]))t++,r.shift(),c=r.length?0:p;else break;!r.length&&t&&i<k.length&&!k[t-1].breakAfter&&k[i].merge(0,0,k[t-1],!1,c,p)&&t--,(t<i||r.length)&&s.replaceChildren(t,i,r)}}function hi(s,t,e,i,n,r){let l=s.childCursor(),{i:c,off:p}=l.findPos(e,1),{i:k,off:v}=l.findPos(t,-1),R=t-e;for(let W of i)R+=W.length;s.length+=R,qe(s,k,v,c,p,i,0,n,r)}let Ie=typeof navigator<"u"?navigator:{userAgent:"",vendor:"",platform:""},ft=typeof document<"u"?document:{documentElement:{style:{}}};const Ct=/Edge\/(\d+)/.exec(Ie.userAgent),Dt=/MSIE \d/.test(Ie.userAgent),At=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Ie.userAgent),jt=!!(Dt||At||Ct),Xt=!jt&&/gecko\/(\d+)/i.test(Ie.userAgent),Et=!jt&&/Chrome\/(\d+)/.exec(Ie.userAgent),le="webkitFontSmoothing"in ft.documentElement.style,We=!jt&&/Apple Computer/.test(Ie.vendor),Ae=We&&(/Mobile\/\w+/.test(Ie.userAgent)||Ie.maxTouchPoints>2);var yt={mac:Ae||/Mac/.test(Ie.platform),windows:/Win/.test(Ie.platform),linux:/Linux|X11/.test(Ie.platform),ie:jt,ie_version:Dt?ft.documentMode||6:At?+At[1]:Ct?+Ct[1]:0,gecko:Xt,gecko_version:Xt?+(/Firefox\/(\d+)/.exec(Ie.userAgent)||[0,0])[1]:0,chrome:!!Et,chrome_version:Et?+Et[1]:0,ios:Ae,android:/Android\b/.test(Ie.userAgent),webkit:le,safari:We,webkit_version:le?+(/\bAppleWebKit\/(\d+)/.exec(Ie.userAgent)||[0,0])[1]:0,tabSize:ft.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};const He=256;class Ne extends te{constructor(t){super(),this.text=t}get length(){return this.text.length}createDOM(t){this.setDOM(t||document.createTextNode(this.text))}sync(t,e){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(e&&e.node==this.dom&&(e.written=!0),this.dom.nodeValue=this.text)}reuseDOM(t){t.nodeType==3&&this.createDOM(t)}merge(t,e,i){return this.flags&8||i&&(!(i instanceof Ne)||this.length-(e-t)+i.length>He||i.flags&8)?!1:(this.text=this.text.slice(0,t)+(i?i.text:"")+this.text.slice(e),this.markDirty(),!0)}split(t){let e=new Ne(this.text.slice(t));return this.text=this.text.slice(0,t),this.markDirty(),e.flags|=this.flags&8,e}localPosFromDOM(t,e){return t==this.dom?e:e?this.text.length:0}domAtPos(t){return new Ut(this.dom,t)}domBoundsAround(t,e,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(t,e){return q(this.dom,t,e)}}class G extends te{constructor(t,e=[],i=0){super(),this.mark=t,this.children=e,this.length=i;for(let n of e)n.setParent(this)}setAttrs(t){if(Bt(t),this.mark.class&&(t.className=this.mark.class),this.mark.attrs)for(let e in this.mark.attrs)t.setAttribute(e,this.mark.attrs[e]);return t}canReuseDOM(t){return super.canReuseDOM(t)&&!((this.flags|t.flags)&8)}reuseDOM(t){t.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(t),this.flags|=6)}sync(t,e){this.dom?this.flags&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(t,e)}merge(t,e,i,n,r,l){return i&&(!(i instanceof G&&i.mark.eq(this.mark))||t&&r<=0||e<this.length&&l<=0)?!1:(hi(this,t,e,i?i.children.slice():[],r-1,l-1),this.markDirty(),!0)}split(t){let e=[],i=0,n=-1,r=0;for(let c of this.children){let p=i+c.length;p>t&&e.push(i<t?c.split(t-i):c),n<0&&i>=t&&(n=r),i=p,r++}let l=this.length-t;return this.length=t,n>-1&&(this.children.length=n,this.markDirty()),new G(this.mark,e,l)}domAtPos(t){return bt(this,t)}coordsAt(t,e){return Ht(this,t,e)}}function q(s,t,e){let i=s.nodeValue.length;t>i&&(t=i);let n=t,r=t,l=0;t==0&&e<0||t==i&&e>=0?yt.chrome||yt.gecko||(t?(n--,l=1):r<i&&(r++,l=-1)):e<0?n--:r<i&&r++;let c=Jt(s,n,r).getClientRects();if(!c.length)return null;let p=c[(l?l<0:e>=0)?0:c.length-1];return yt.safari&&!l&&p.width==0&&(p=Array.prototype.find.call(c,k=>k.width)||p),l?_t(p,l<0):p||null}class lt extends te{static create(t,e,i){return new lt(t,e,i)}constructor(t,e,i){super(),this.widget=t,this.length=e,this.side=i,this.prevWidget=null}split(t){let e=lt.create(this.widget,this.length-t,this.side);return this.length-=t,e}sync(t){(!this.dom||!this.widget.updateDOM(this.dom,t))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(t)),this.widget.editable||(this.dom.contentEditable="false"))}getSide(){return this.side}merge(t,e,i,n,r,l){return i&&(!(i instanceof lt)||!this.widget.compare(i.widget)||t>0&&r<=0||e<this.length&&l<=0)?!1:(this.length=t+(i?i.length:0)+(this.length-e),!0)}become(t){return t instanceof lt&&t.side==this.side&&this.widget.constructor==t.widget.constructor?(this.widget.compare(t.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=t.widget,this.length=t.length,!0):!1}ignoreMutation(){return!0}ignoreEvent(t){return this.widget.ignoreEvent(t)}get overrideDOMText(){if(this.length==0)return P.xv.empty;let t=this;for(;t.parent;)t=t.parent;let{view:e}=t,i=e&&e.state.doc,n=this.posAtStart;return i?i.slice(n,n+this.length):P.xv.empty}domAtPos(t){return(this.length?t==0:this.side>0)?Ut.before(this.dom):Ut.after(this.dom,t==this.length)}domBoundsAround(){return null}coordsAt(t,e){let i=this.widget.coordsAt(this.dom,t,e);if(i)return i;let n=this.dom.getClientRects(),r=null;if(!n.length)return null;let l=this.side?this.side<0:t>0;for(let c=l?n.length-1:0;r=n[c],!(t>0?c==0:c==n.length-1||r.top<r.bottom);c+=l?-1:1);return _t(r,!l)}get isEditable(){return!1}get isWidget(){return!0}get isHidden(){return this.widget.isHidden}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}}class rt extends te{constructor(t){super(),this.side=t}get length(){return 0}merge(){return!1}become(t){return t instanceof rt&&t.side==this.side}split(){return new rt(this.side)}sync(){if(!this.dom){let t=document.createElement("img");t.className="cm-widgetBuffer",t.setAttribute("aria-hidden","true"),this.setDOM(t)}}getSide(){return this.side}domAtPos(t){return this.side>0?Ut.before(this.dom):Ut.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(t){return this.dom.getBoundingClientRect()}get overrideDOMText(){return P.xv.empty}get isHidden(){return!0}}Ne.prototype.children=lt.prototype.children=rt.prototype.children=ce;function bt(s,t){let e=s.dom,{children:i}=s,n=0;for(let r=0;n<i.length;n++){let l=i[n],c=r+l.length;if(!(c==r&&l.getSide()<=0)){if(t>r&&t<c&&l.dom.parentNode==e)return l.domAtPos(t-r);if(t<=r)break;r=c}}for(let r=n;r>0;r--){let l=i[r-1];if(l.dom.parentNode==e)return l.domAtPos(l.length)}for(let r=n;r<i.length;r++){let l=i[r];if(l.dom.parentNode==e)return l.domAtPos(0)}return new Ut(e,0)}function Ot(s,t,e){let i,{children:n}=s;e>0&&t instanceof G&&n.length&&(i=n[n.length-1])instanceof G&&i.mark.eq(t.mark)?Ot(i,t.children[0],e-1):(n.push(t),t.setParent(s)),s.length+=t.length}function Ht(s,t,e){let i=null,n=-1,r=null,l=-1;function c(k,v){for(let R=0,W=0;R<k.children.length&&W<=v;R++){let X=k.children[R],et=W+X.length;et>=v&&(X.children.length?c(X,v-W):(!r||r.isHidden&&(e>0||ae(r,X)))&&(et>v||W==et&&X.getSide()>0)?(r=X,l=v-W):(W<v||W==et&&X.getSide()<0&&!X.isHidden)&&(i=X,n=v-W)),W=et}}c(s,t);let p=(e<0?i:r)||i||r;return p?p.coordsAt(Math.max(0,p==i?n:l),e):Wt(s)}function Wt(s){let t=s.dom.lastChild;if(!t)return s.dom.getBoundingClientRect();let e=ke(t);return e[e.length-1]||null}function ae(s,t){let e=s.coordsAt(0,1),i=t.coordsAt(0,1);return e&&i&&i.top<e.bottom}function ue(s,t){for(let e in s)e=="class"&&t.class?t.class+=" "+s.class:e=="style"&&t.style?t.style+=";"+s.style:t[e]=s[e];return t}const qt=Object.create(null);function oe(s,t,e){if(s==t)return!0;s||(s=qt),t||(t=qt);let i=Object.keys(s),n=Object.keys(t);if(i.length-(e&&i.indexOf(e)>-1?1:0)!=n.length-(e&&n.indexOf(e)>-1?1:0))return!1;for(let r of i)if(r!=e&&(n.indexOf(r)==-1||s[r]!==t[r]))return!1;return!0}function ge(s,t,e){let i=!1;if(t)for(let n in t)e&&n in e||(i=!0,n=="style"?s.style.cssText="":s.removeAttribute(n));if(e)for(let n in e)t&&t[n]==e[n]||(i=!0,n=="style"?s.style.cssText=e[n]:s.setAttribute(n,e[n]));return i}function be(s){let t=Object.create(null);for(let e=0;e<s.attributes.length;e++){let i=s.attributes[e];t[i.name]=i.value}return t}class si{eq(t){return!1}updateDOM(t,e){return!1}compare(t){return this==t||this.constructor==t.constructor&&this.eq(t)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(t){return!0}coordsAt(t,e,i){return null}get isHidden(){return!1}get editable(){return!1}destroy(t){}}var Gt=function(s){return s[s.Text=0]="Text",s[s.WidgetBefore=1]="WidgetBefore",s[s.WidgetAfter=2]="WidgetAfter",s[s.WidgetRange=3]="WidgetRange",s}(Gt||(Gt={}));class Kt extends P.uU{constructor(t,e,i,n){super(),this.startSide=t,this.endSide=e,this.widget=i,this.spec=n}get heightRelevant(){return!1}static mark(t){return new ci(t)}static widget(t){let e=Math.max(-1e4,Math.min(1e4,t.side||0)),i=!!t.block;return e+=i&&!t.inlineOrder?e>0?3e8:-4e8:e>0?1e8:-1e8,new Ge(t,e,e,i,t.widget||null,!1)}static replace(t){let e=!!t.block,i,n;if(t.isBlockGap)i=-5e8,n=4e8;else{let{start:r,end:l}=pi(t,e);i=(r?e?-3e8:-1:5e8)-1,n=(l?e?2e8:1:-6e8)+1}return new Ge(t,i,n,e,t.widget||null,!0)}static line(t){return new li(t)}static set(t,e=!1){return P.Xs.of(t,e)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}Kt.none=P.Xs.empty;class ci extends Kt{constructor(t){let{start:e,end:i}=pi(t);super(e?-1:5e8,i?1:-6e8,null,t),this.tagName=t.tagName||"span",this.class=t.class||"",this.attrs=t.attributes||null}eq(t){var e,i;return this==t||t instanceof ci&&this.tagName==t.tagName&&(this.class||((e=this.attrs)===null||e===void 0?void 0:e.class))==(t.class||((i=t.attrs)===null||i===void 0?void 0:i.class))&&oe(this.attrs,t.attrs,"class")}range(t,e=t){if(t>=e)throw new RangeError("Mark decorations may not be empty");return super.range(t,e)}}ci.prototype.point=!1;class li extends Kt{constructor(t){super(-2e8,-2e8,null,t)}eq(t){return t instanceof li&&this.spec.class==t.spec.class&&oe(this.spec.attributes,t.spec.attributes)}range(t,e=t){if(e!=t)throw new RangeError("Line decoration ranges must be zero-length");return super.range(t,e)}}li.prototype.mapMode=P.gc.TrackBefore,li.prototype.point=!0;class Ge extends Kt{constructor(t,e,i,n,r,l){super(e,i,r,t),this.block=n,this.isReplace=l,this.mapMode=n?e<=0?P.gc.TrackBefore:P.gc.TrackAfter:P.gc.TrackDel}get type(){return this.startSide!=this.endSide?Gt.WidgetRange:this.startSide<=0?Gt.WidgetBefore:Gt.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(t){return t instanceof Ge&&Li(this.widget,t.widget)&&this.block==t.block&&this.startSide==t.startSide&&this.endSide==t.endSide}range(t,e=t){if(this.isReplace&&(t>e||t==e&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&e!=t)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(t,e)}}Ge.prototype.point=!0;function pi(s,t=!1){let{inclusiveStart:e,inclusiveEnd:i}=s;return e==null&&(e=s.inclusive),i==null&&(i=s.inclusive),{start:e??t,end:i??t}}function Li(s,t){return s==t||!!(s&&t&&s.compare(t))}function V(s,t,e,i=0){let n=e.length-1;n>=0&&e[n]+i>=s?e[n]=Math.max(e[n],t):e.push(s,t)}class D extends te{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(t,e,i,n,r,l){if(i){if(!(i instanceof D))return!1;this.dom||i.transferDOM(this)}return n&&this.setDeco(i?i.attrs:null),hi(this,t,e,i?i.children.slice():[],r,l),!0}split(t){let e=new D;if(e.breakAfter=this.breakAfter,this.length==0)return e;let{i,off:n}=this.childPos(t);n&&(e.append(this.children[i].split(n),0),this.children[i].merge(n,this.children[i].length,null,!1,0,0),i++);for(let r=i;r<this.children.length;r++)e.append(this.children[r],0);for(;i>0&&this.children[i-1].length==0;)this.children[--i].destroy();return this.children.length=i,this.markDirty(),this.length=t,e}transferDOM(t){this.dom&&(this.markDirty(),t.setDOM(this.dom),t.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(t){oe(this.attrs,t)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=t)}append(t,e){Ot(this,t,e)}addLineDeco(t){let e=t.spec.attributes,i=t.spec.class;e&&(this.attrs=ue(e,this.attrs||{})),i&&(this.attrs=ue({class:i},this.attrs||{}))}domAtPos(t){return bt(this,t)}reuseDOM(t){t.nodeName=="DIV"&&(this.setDOM(t),this.flags|=6)}sync(t,e){var i;this.dom?this.flags&4&&(Bt(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(ge(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(t,e);let n=this.dom.lastChild;for(;n&&te.get(n)instanceof G;)n=n.lastChild;if(!n||!this.length||n.nodeName!="BR"&&((i=te.get(n))===null||i===void 0?void 0:i.isEditable)==!1&&(!yt.ios||!this.children.some(r=>r instanceof Ne))){let r=document.createElement("BR");r.cmIgnore=!0,this.dom.appendChild(r)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let t=0,e;for(let i of this.children){if(!(i instanceof Ne)||/[^ -~]/.test(i.text))return null;let n=ke(i.dom);if(n.length!=1)return null;t+=n[0].width,e=n[0].height}return t?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:t/this.length,textHeight:e}:null}coordsAt(t,e){let i=Ht(this,t,e);if(!this.children.length&&i&&this.parent){let{heightOracle:n}=this.parent.view.viewState,r=i.bottom-i.top;if(Math.abs(r-n.lineHeight)<2&&n.textHeight<r){let l=(r-n.textHeight)/2;return{top:i.top+l,bottom:i.bottom-l,left:i.left,right:i.left}}}return i}become(t){return t instanceof D&&this.children.length==0&&t.children.length==0&&oe(this.attrs,t.attrs)&&this.breakAfter==t.breakAfter}covers(){return!0}static find(t,e){for(let i=0,n=0;i<t.children.length;i++){let r=t.children[i],l=n+r.length;if(l>=e){if(r instanceof D)return r;if(l>e)break}n=l+r.breakAfter}return null}}class $ extends te{constructor(t,e,i){super(),this.widget=t,this.length=e,this.deco=i,this.breakAfter=0,this.prevWidget=null}merge(t,e,i,n,r,l){return i&&(!(i instanceof $)||!this.widget.compare(i.widget)||t>0&&r<=0||e<this.length&&l<=0)?!1:(this.length=t+(i?i.length:0)+(this.length-e),!0)}domAtPos(t){return t==0?Ut.before(this.dom):Ut.after(this.dom,t==this.length)}split(t){let e=this.length-t;this.length=t;let i=new $(this.widget,e,this.deco);return i.breakAfter=this.breakAfter,i}get children(){return ce}sync(t){(!this.dom||!this.widget.updateDOM(this.dom,t))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(t)),this.widget.editable||(this.dom.contentEditable="false"))}get overrideDOMText(){return this.parent?this.parent.view.state.doc.slice(this.posAtStart,this.posAtEnd):P.xv.empty}domBoundsAround(){return null}become(t){return t instanceof $&&t.widget.constructor==this.widget.constructor?(t.widget.compare(this.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=t.widget,this.length=t.length,this.deco=t.deco,this.breakAfter=t.breakAfter,!0):!1}ignoreMutation(){return!0}ignoreEvent(t){return this.widget.ignoreEvent(t)}get isEditable(){return!1}get isWidget(){return!0}coordsAt(t,e){let i=this.widget.coordsAt(this.dom,t,e);return i||(this.widget instanceof z?null:_t(this.dom.getBoundingClientRect(),this.length?t==0:e<=0))}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}covers(t){let{startSide:e,endSide:i}=this.deco;return e==i?!1:t<0?e<0:i>0}}class z extends si{constructor(t){super(),this.height=t}toDOM(){let t=document.createElement("div");return t.className="cm-gap",this.updateDOM(t),t}eq(t){return t.height==this.height}updateDOM(t){return t.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}}class U{constructor(t,e,i,n){this.doc=t,this.pos=e,this.end=i,this.disallowBlockEffectsFor=n,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=t.iter(),this.skip=e}posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let t=this.content[this.content.length-1];return!(t.breakAfter||t instanceof $&&t.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new D),this.atCursorPos=!0),this.curLine}flushBuffer(t=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(ht(new rt(-1),t),t.length),this.pendingBuffer=0)}addBlockWidget(t){this.flushBuffer(),this.curLine=null,this.content.push(t)}finish(t){this.pendingBuffer&&t<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,!this.posCovered()&&!(t&&this.content.length&&this.content[this.content.length-1]instanceof $)&&this.getLine()}buildText(t,e,i){for(;t>0;){if(this.textOff==this.text.length){let{value:r,lineBreak:l,done:c}=this.cursor.next(this.skip);if(this.skip=0,c)throw new Error("Ran out of text content when drawing inline views");if(l){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,t--;continue}else this.text=r,this.textOff=0}let n=Math.min(this.text.length-this.textOff,t,512);this.flushBuffer(e.slice(e.length-i)),this.getLine().append(ht(new Ne(this.text.slice(this.textOff,this.textOff+n)),e),i),this.atCursorPos=!0,this.textOff+=n,t-=n,i=0}}span(t,e,i,n){this.buildText(e-t,i,n),this.pos=e,this.openStart<0&&(this.openStart=n)}point(t,e,i,n,r,l){if(this.disallowBlockEffectsFor[l]&&i instanceof Ge){if(i.block)throw new RangeError("Block decorations may not be specified via plugins");if(e>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let c=e-t;if(i instanceof Ge)if(i.block)i.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new $(i.widget||St.block,c,i));else{let p=lt.create(i.widget||St.inline,c,c?0:i.startSide),k=this.atCursorPos&&!p.isEditable&&r<=n.length&&(t<e||i.startSide>0),v=!p.isEditable&&(t<e||r>n.length||i.startSide<=0),R=this.getLine();this.pendingBuffer==2&&!k&&!p.isEditable&&(this.pendingBuffer=0),this.flushBuffer(n),k&&(R.append(ht(new rt(1),n),r),r=n.length+Math.max(0,r-n.length)),R.append(ht(p,n),r),this.atCursorPos=v,this.pendingBuffer=v?t<e||r>n.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=n.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(i);c&&(this.textOff+c<=this.text.length?this.textOff+=c:(this.skip+=c-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=e),this.openStart<0&&(this.openStart=r)}static build(t,e,i,n,r){let l=new U(t,e,i,r);return l.openEnd=P.Xs.spans(n,e,i,l),l.openStart<0&&(l.openStart=l.openEnd),l.finish(l.openEnd),l}}function ht(s,t){for(let e of t)s=new G(e,[s],s.length);return s}class St extends si{constructor(t){super(),this.tag=t}eq(t){return t.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(t){return t.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}St.inline=new St("span"),St.block=new St("div");var wt=function(s){return s[s.LTR=0]="LTR",s[s.RTL=1]="RTL",s}(wt||(wt={}));const It=wt.LTR,Qt=wt.RTL;function $e(s){let t=[];for(let e=0;e<s.length;e++)t.push(1<<+s[e]);return t}const Ke=$e("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),Qe=$e("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),mi=Object.create(null),Ee=[];for(let s of["()","[]","{}"]){let t=s.charCodeAt(0),e=s.charCodeAt(1);mi[t]=e,mi[e]=-t}function Ze(s){return s<=247?Ke[s]:1424<=s&&s<=1524?2:1536<=s&&s<=1785?Qe[s-1536]:1774<=s&&s<=2220?4:8192<=s&&s<=8204?256:64336<=s&&s<=65023?4:1}const gi=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/;class fi{get dir(){return this.level%2?Qt:It}constructor(t,e,i){this.from=t,this.to=e,this.level=i}side(t,e){return this.dir==e==t?this.to:this.from}forward(t,e){return t==(this.dir==e)}static find(t,e,i,n){let r=-1;for(let l=0;l<t.length;l++){let c=t[l];if(c.from<=e&&c.to>=e){if(c.level==i)return l;(r<0||(n!=0?n<0?c.from<e:c.to>e:t[r].level>c.level))&&(r=l)}}if(r<0)throw new RangeError("Index out of range");return r}}function Ii(s,t){if(s.length!=t.length)return!1;for(let e=0;e<s.length;e++){let i=s[e],n=t[e];if(i.from!=n.from||i.to!=n.to||i.direction!=n.direction||!Ii(i.inner,n.inner))return!1}return!0}const ye=[];function Ri(s,t,e,i,n){for(let r=0;r<=i.length;r++){let l=r?i[r-1].to:t,c=r<i.length?i[r].from:e,p=r?256:n;for(let k=l,v=p,R=p;k<c;k++){let W=Ze(s.charCodeAt(k));W==512?W=v:W==8&&R==4&&(W=16),ye[k]=W==4?2:W,W&7&&(R=W),v=W}for(let k=l,v=p,R=p;k<c;k++){let W=ye[k];if(W==128)k<c-1&&v==ye[k+1]&&v&24?W=ye[k]=v:ye[k]=256;else if(W==64){let X=k+1;for(;X<c&&ye[X]==64;)X++;let et=k&&v==8||X<e&&ye[X]==8?R==1?1:8:256;for(let ut=k;ut<X;ut++)ye[ut]=et;k=X-1}else W==8&&R==1&&(ye[k]=1);v=W,W&7&&(R=W)}}}function zi(s,t,e,i,n){let r=n==1?2:1;for(let l=0,c=0,p=0;l<=i.length;l++){let k=l?i[l-1].to:t,v=l<i.length?i[l].from:e;for(let R=k,W,X,et;R<v;R++)if(X=mi[W=s.charCodeAt(R)])if(X<0){for(let ut=c-3;ut>=0;ut-=3)if(Ee[ut+1]==-X){let dt=Ee[ut+2],pt=dt&2?n:dt&4?dt&1?r:n:0;pt&&(ye[R]=ye[Ee[ut]]=pt),c=ut;break}}else{if(Ee.length==189)break;Ee[c++]=R,Ee[c++]=W,Ee[c++]=p}else if((et=ye[R])==2||et==1){let ut=et==n;p=ut?0:1;for(let dt=c-3;dt>=0;dt-=3){let pt=Ee[dt+2];if(pt&2)break;if(ut)Ee[dt+2]|=2;else{if(pt&4)break;Ee[dt+2]|=4}}}}}function Ui(s,t,e,i){for(let n=0,r=i;n<=e.length;n++){let l=n?e[n-1].to:s,c=n<e.length?e[n].from:t;for(let p=l;p<c;){let k=ye[p];if(k==256){let v=p+1;for(;;)if(v==c){if(n==e.length)break;v=e[n++].to,c=n<e.length?e[n].from:t}else if(ye[v]==256)v++;else break;let R=r==1,W=(v<t?ye[v]:i)==1,X=R==W?R?1:2:i;for(let et=v,ut=n,dt=ut?e[ut-1].to:s;et>p;)et==dt&&(et=e[--ut].from,dt=ut?e[ut-1].to:s),ye[--et]=X;p=v}else r=k,p++}}}function Ni(s,t,e,i,n,r,l){let c=i%2?2:1;if(i%2==n%2)for(let p=t,k=0;p<e;){let v=!0,R=!1;if(k==r.length||p<r[k].from){let ut=ye[p];ut!=c&&(v=!1,R=ut==16)}let W=!v&&c==1?[]:null,X=v?i:i+1,et=p;t:for(;;)if(k<r.length&&et==r[k].from){if(R)break t;let ut=r[k];if(!v)for(let dt=ut.to,pt=k+1;;){if(dt==e)break t;if(pt<r.length&&r[pt].from==dt)dt=r[pt++].to;else{if(ye[dt]==c)break t;break}}if(k++,W)W.push(ut);else{ut.from>p&&l.push(new fi(p,ut.from,X));let dt=ut.direction==It!=!(X%2);L(s,dt?i+1:i,n,ut.inner,ut.from,ut.to,l),p=ut.to}et=ut.to}else{if(et==e||(v?ye[et]!=c:ye[et]==c))break;et++}W?Ni(s,p,et,i+1,n,W,l):p<et&&l.push(new fi(p,et,X)),p=et}else for(let p=e,k=r.length;p>t;){let v=!0,R=!1;if(!k||p>r[k-1].to){let ut=ye[p-1];ut!=c&&(v=!1,R=ut==16)}let W=!v&&c==1?[]:null,X=v?i:i+1,et=p;t:for(;;)if(k&&et==r[k-1].to){if(R)break t;let ut=r[--k];if(!v)for(let dt=ut.from,pt=k;;){if(dt==t)break t;if(pt&&r[pt-1].to==dt)dt=r[--pt].from;else{if(ye[dt-1]==c)break t;break}}if(W)W.push(ut);else{ut.to<p&&l.push(new fi(ut.to,p,X));let dt=ut.direction==It!=!(X%2);L(s,dt?i+1:i,n,ut.inner,ut.from,ut.to,l),p=ut.from}et=ut.from}else{if(et==t||(v?ye[et-1]!=c:ye[et-1]==c))break;et--}W?Ni(s,et,p,i+1,n,W,l):et<p&&l.push(new fi(et,p,X)),p=et}}function L(s,t,e,i,n,r,l){let c=t%2?2:1;Ri(s,n,r,i,c),zi(s,n,r,i,c),Ui(n,r,i,c),Ni(s,n,r,t,e,i,l)}function o(s,t,e){if(!s)return[new fi(0,0,t==Qt?1:0)];if(t==It&&!e.length&&!gi.test(s))return a(s.length);if(e.length)for(;s.length>ye.length;)ye[ye.length]=256;let i=[],n=t==It?0:1;return L(s,n,n,e,0,s.length,i),i}function a(s){return[new fi(0,s,0)]}let u="";function y(s,t,e,i,n){var r;let l=i.head-s.from,c=fi.find(t,l,(r=i.bidiLevel)!==null&&r!==void 0?r:-1,i.assoc),p=t[c],k=p.side(n,e);if(l==k){let W=c+=n?1:-1;if(W<0||W>=t.length)return null;p=t[c=W],l=p.side(!n,e),k=p.side(n,e)}let v=(0,P.cp)(s.text,l,p.forward(n,e));(v<p.from||v>p.to)&&(v=k),u=s.text.slice(Math.min(l,v),Math.max(l,v));let R=c==(n?t.length-1:0)?null:t[c+(n?1:-1)];return R&&v==k&&R.level+(n?0:1)<p.level?P.jT.cursor(R.side(!n,e)+s.from,R.forward(n,e)?1:-1,R.level):P.jT.cursor(v+s.from,p.forward(n,e)?-1:1,p.level)}function T(s,t,e){for(let i=t;i<e;i++){let n=Ze(s.charCodeAt(i));if(n==1)return It;if(n==2||n==4)return Qt}return It}const A=P.r$.define(),N=P.r$.define(),J=P.r$.define(),st=P.r$.define(),mt=P.r$.define(),xt=P.r$.define(),Lt=P.r$.define(),Rt=P.r$.define(),De=P.r$.define(),bi=P.r$.define({combine:s=>s.some(t=>t)}),Ve=P.r$.define({combine:s=>s.some(t=>t)}),Vi=P.r$.define();class Fi{constructor(t,e="nearest",i="nearest",n=5,r=5,l=!1){this.range=t,this.y=e,this.x=i,this.yMargin=n,this.xMargin=r,this.isSnapshot=l}map(t){return t.empty?this:new Fi(this.range.map(t),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(t){return this.range.to<=t.doc.length?this:new Fi(P.jT.cursor(t.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const Wi=P.Py.define({map:(s,t)=>s.map(t)}),Xi=P.Py.define();function M(s,t,e){let i=s.facet(st);i.length?i[0](t):window.onerror&&window.onerror(String(t),e,void 0,void 0,t)||(e?console.error(e+":",t):console.error(t))}const g=P.r$.define({combine:s=>s.length?s[0]:!0});let x=0;const E=P.r$.define({combine(s){return s.filter((t,e)=>{for(let i=0;i<e;i++)if(s[i].plugin==t.plugin)return!1;return!0})}});class B{constructor(t,e,i,n,r){this.id=t,this.create=e,this.domEventHandlers=i,this.domEventObservers=n,this.baseExtensions=r(this),this.extension=this.baseExtensions.concat(E.of({plugin:this,arg:void 0}))}of(t){return this.baseExtensions.concat(E.of({plugin:this,arg:t}))}static define(t,e){const{eventHandlers:i,eventObservers:n,provide:r,decorations:l}=e||{};return new B(x++,t,i,n,c=>{let p=[];return l&&p.push(nt.of(k=>{let v=k.plugin(c);return v?l(v):Kt.none})),r&&p.push(r(c)),p})}static fromClass(t,e){return B.define((i,n)=>new t(i,n),e)}}class _{constructor(t){this.spec=t,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(t){if(this.value){if(this.mustUpdate){let e=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(e)}catch(i){if(M(e.state,i,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(t,this.spec.arg)}catch(e){M(t.state,e,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(t){var e;if(!((e=this.value)===null||e===void 0)&&e.destroy)try{this.value.destroy()}catch(i){M(t.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const Y=P.r$.define(),ot=P.r$.define(),nt=P.r$.define(),vt=P.r$.define(),gt=P.r$.define(),Nt=P.r$.define();function he(s,t){let e=s.state.facet(Nt);if(!e.length)return e;let i=e.map(r=>r instanceof Function?r(s):r),n=[];return P.Xs.spans(i,t.from,t.to,{point(){},span(r,l,c,p){let k=r-t.from,v=l-t.from,R=n;for(let W=c.length-1;W>=0;W--,p--){let X=c[W].spec.bidiIsolate,et;if(X==null&&(X=T(t.text,k,v)),p>0&&R.length&&(et=R[R.length-1]).to==k&&et.direction==X)et.to=v,R=et.inner;else{let ut={from:k,to:v,direction:X,inner:[]};R.push(ut),R=ut.inner}}}}),n}const Se=P.r$.define();function je(s){let t=0,e=0,i=0,n=0;for(let r of s.state.facet(Se)){let l=r(s);l&&(l.left!=null&&(t=Math.max(t,l.left)),l.right!=null&&(e=Math.max(e,l.right)),l.top!=null&&(i=Math.max(i,l.top)),l.bottom!=null&&(n=Math.max(n,l.bottom)))}return{left:t,right:e,top:i,bottom:n}}const ti=P.r$.define();class ai{constructor(t,e,i,n){this.fromA=t,this.toA=e,this.fromB=i,this.toB=n}join(t){return new ai(Math.min(this.fromA,t.fromA),Math.max(this.toA,t.toA),Math.min(this.fromB,t.fromB),Math.max(this.toB,t.toB))}addToSet(t){let e=t.length,i=this;for(;e>0;e--){let n=t[e-1];if(!(n.fromA>i.toA)){if(n.toA<i.fromA)break;i=i.join(n),t.splice(e-1,1)}}return t.splice(e,0,i),t}static extendWithRanges(t,e){if(e.length==0)return t;let i=[];for(let n=0,r=0,l=0,c=0;;n++){let p=n==t.length?null:t[n],k=l-c,v=p?p.fromB:1e9;for(;r<e.length&&e[r]<v;){let R=e[r],W=e[r+1],X=Math.max(c,R),et=Math.min(v,W);if(X<=et&&new ai(X+k,et+k,X,et).addToSet(i),W>v)break;r+=2}if(!p)return i;new ai(p.fromA,p.toA,p.fromB,p.toB).addToSet(i),l=p.toA,c=p.toB}}}class xi{constructor(t,e,i){this.view=t,this.state=e,this.transactions=i,this.flags=0,this.startState=t.state,this.changes=P.as.empty(this.startState.doc.length);for(let r of i)this.changes=this.changes.compose(r.changes);let n=[];this.changes.iterChangedRanges((r,l,c,p)=>n.push(new ai(r,l,c,p))),this.changedRanges=n}static create(t,e,i){return new xi(t,e,i)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(t=>t.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}class _e extends te{get length(){return this.view.state.doc.length}constructor(t){super(),this.view=t,this.decorations=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.markedForComposition=new Set,this.editContextFormatting=Kt.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(t.contentDOM),this.children=[new D],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new ai(0,0,0,t.state.doc.length)],0,null)}update(t){var e;let i=t.changedRanges;this.minWidth>0&&i.length&&(i.every(({fromA:k,toA:v})=>v<this.minWidthFrom||k>this.minWidthTo)?(this.minWidthFrom=t.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=t.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(t);let n=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((e=this.domChanged)===null||e===void 0)&&e.newSel?n=this.domChanged.newSel.head:!O(t.changes,this.hasComposition)&&!t.selectionSet&&(n=t.state.selection.main.head));let r=n>-1?ui(this.view,t.changes,n):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:k,to:v}=this.hasComposition;i=new ai(k,v,t.changes.mapPos(k,-1),t.changes.mapPos(v,1)).addToSet(i.slice())}this.hasComposition=r?{from:r.range.fromB,to:r.range.toB}:null,(yt.ie||yt.chrome)&&!r&&t&&t.state.doc.lines!=t.startState.doc.lines&&(this.forceSelection=!0);let l=this.decorations,c=this.updateDeco(),p=f(l,c,t.changes);return i=ai.extendWithRanges(i,p),!(this.flags&7)&&i.length==0?!1:(this.updateInner(i,t.startState.doc.length,r),t.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(t,e,i){this.view.viewState.mustMeasureContent=!0,this.updateChildren(t,e,i);let{observer:n}=this.view;n.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let l=yt.chrome||yt.ios?{node:n.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,l),this.flags&=-8,l&&(l.written||n.selectionRange.focusNode!=l.node)&&(this.forceSelection=!0),this.dom.style.height=""}),this.markedForComposition.forEach(l=>l.flags&=-9);let r=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let l of this.children)l instanceof $&&l.widget instanceof z&&r.push(l.dom);n.updateGaps(r)}updateChildren(t,e,i){let n=i?i.range.addToSet(t.slice()):t,r=this.childCursor(e);for(let l=n.length-1;;l--){let c=l>=0?n[l]:null;if(!c)break;let{fromA:p,toA:k,fromB:v,toB:R}=c,W,X,et,ut;if(i&&i.range.fromB<R&&i.range.toB>v){let Yt=U.build(this.view.state.doc,v,i.range.fromB,this.decorations,this.dynamicDecorationMap),ie=U.build(this.view.state.doc,i.range.toB,R,this.decorations,this.dynamicDecorationMap);X=Yt.breakAtStart,et=Yt.openStart,ut=ie.openEnd;let ne=this.compositionView(i);ie.breakAtStart?ne.breakAfter=1:ie.content.length&&ne.merge(ne.length,ne.length,ie.content[0],!1,ie.openStart,0)&&(ne.breakAfter=ie.content[0].breakAfter,ie.content.shift()),Yt.content.length&&ne.merge(0,0,Yt.content[Yt.content.length-1],!0,0,Yt.openEnd)&&Yt.content.pop(),W=Yt.content.concat(ne).concat(ie.content)}else({content:W,breakAtStart:X,openStart:et,openEnd:ut}=U.build(this.view.state.doc,v,R,this.decorations,this.dynamicDecorationMap));let{i:dt,off:pt}=r.findPos(k,1),{i:$t,off:ee}=r.findPos(p,-1);qe(this,$t,ee,dt,pt,W,X,et,ut)}i&&this.fixCompositionDOM(i)}updateEditContextFormatting(t){this.editContextFormatting=this.editContextFormatting.map(t.changes);for(let e of t.transactions)for(let i of e.effects)i.is(Xi)&&(this.editContextFormatting=i.value)}compositionView(t){let e=new Ne(t.text.nodeValue);e.flags|=8;for(let{deco:n}of t.marks)e=new G(n,[e],e.length);let i=new D;return i.append(e,0),i}fixCompositionDOM(t){let e=(r,l)=>{l.flags|=8|(l.children.some(p=>p.flags&7)?1:0),this.markedForComposition.add(l);let c=te.get(r);c&&c!=l&&(c.dom=null),l.setDOM(r)},i=this.childPos(t.range.fromB,1),n=this.children[i.i];e(t.line,n);for(let r=t.marks.length-1;r>=-1;r--)i=n.childPos(i.off,1),n=n.children[i.i],e(r>=0?t.marks[r].node:t.text,n)}updateSelection(t=!1,e=!1){(t||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let i=this.view.root.activeElement,n=i==this.dom,r=!n&&!(this.view.state.facet(g)||this.dom.tabIndex>-1)&&Ce(this.dom,this.view.observer.selectionRange)&&!(i&&this.dom.contains(i));if(!(n||e||r))return;let l=this.forceSelection;this.forceSelection=!1;let c=this.view.state.selection.main,p=this.moveToLine(this.domAtPos(c.anchor)),k=c.empty?p:this.moveToLine(this.domAtPos(c.head));if(yt.gecko&&c.empty&&!this.hasComposition&&Pi(p)){let R=document.createTextNode("");this.view.observer.ignore(()=>p.node.insertBefore(R,p.node.childNodes[p.offset]||null)),p=k=new Ut(R,0),l=!0}let v=this.view.observer.selectionRange;(l||!v.focusNode||(!Oe(p.node,p.offset,v.anchorNode,v.anchorOffset)||!Oe(k.node,k.offset,v.focusNode,v.focusOffset))&&!this.suppressWidgetCursorChange(v,c))&&(this.view.observer.ignore(()=>{yt.android&&yt.chrome&&this.dom.contains(v.focusNode)&&b(v.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let R=kt(this.view.root);if(R)if(c.empty){if(yt.gecko){let W=ji(p.node,p.offset);if(W&&W!=3){let X=(W==1?Fe:Xe)(p.node,p.offset);X&&(p=new Ut(X.node,X.offset))}}R.collapse(p.node,p.offset),c.bidiLevel!=null&&R.caretBidiLevel!==void 0&&(R.caretBidiLevel=c.bidiLevel)}else if(R.extend){R.collapse(p.node,p.offset);try{R.extend(k.node,k.offset)}catch{}}else{let W=document.createRange();c.anchor>c.head&&([p,k]=[k,p]),W.setEnd(k.node,k.offset),W.setStart(p.node,p.offset),R.removeAllRanges(),R.addRange(W)}r&&this.view.root.activeElement==this.dom&&(this.dom.blur(),i&&i.focus())}),this.view.observer.setSelectionRange(p,k)),this.impreciseAnchor=p.precise?null:new Ut(v.anchorNode,v.anchorOffset),this.impreciseHead=k.precise?null:new Ut(v.focusNode,v.focusOffset)}suppressWidgetCursorChange(t,e){return this.hasComposition&&e.empty&&Oe(t.focusNode,t.focusOffset,t.anchorNode,t.anchorOffset)&&this.posFromDOM(t.focusNode,t.focusOffset)==e.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:t}=this,e=t.state.selection.main,i=kt(t.root),{anchorNode:n,anchorOffset:r}=t.observer.selectionRange;if(!i||!e.empty||!e.assoc||!i.modify)return;let l=D.find(this,e.head);if(!l)return;let c=l.posAtStart;if(e.head==c||e.head==c+l.length)return;let p=this.coordsAt(e.head,-1),k=this.coordsAt(e.head,1);if(!p||!k||p.bottom>k.top)return;let v=this.domAtPos(e.head+e.assoc);i.collapse(v.node,v.offset),i.modify("move",e.assoc<0?"forward":"backward","lineboundary"),t.observer.readSelectionRange();let R=t.observer.selectionRange;t.docView.posFromDOM(R.anchorNode,R.anchorOffset)!=e.from&&i.collapse(n,r)}moveToLine(t){let e=this.dom,i;if(t.node!=e)return t;for(let n=t.offset;!i&&n<e.childNodes.length;n++){let r=te.get(e.childNodes[n]);r instanceof D&&(i=r.domAtPos(0))}for(let n=t.offset-1;!i&&n>=0;n--){let r=te.get(e.childNodes[n]);r instanceof D&&(i=r.domAtPos(r.length))}return i?new Ut(i.node,i.offset,!0):t}nearest(t){for(let e=t;e;){let i=te.get(e);if(i&&i.rootView==this)return i;e=e.parentNode}return null}posFromDOM(t,e){let i=this.nearest(t);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(t,e)+i.posAtStart}domAtPos(t){let{i:e,off:i}=this.childCursor().findPos(t,-1);for(;e<this.children.length-1;){let n=this.children[e];if(i<n.length||n instanceof D)break;e++,i=0}return this.children[e].domAtPos(i)}coordsAt(t,e){let i=null,n=0;for(let r=this.length,l=this.children.length-1;l>=0;l--){let c=this.children[l],p=r-c.breakAfter,k=p-c.length;if(p<t)break;if(k<=t&&(k<t||c.covers(-1))&&(p>t||c.covers(1))&&(!i||c instanceof D&&!(i instanceof D&&e>=0)))i=c,n=k;else if(i&&k==t&&p==t&&c instanceof $&&Math.abs(e)<2){if(c.deco.startSide<0)break;l&&(i=null)}r=k}return i?i.coordsAt(t-n,e):null}coordsForChar(t){let{i:e,off:i}=this.childPos(t,1),n=this.children[e];if(!(n instanceof D))return null;for(;n.children.length;){let{i:c,off:p}=n.childPos(i,1);for(;;c++){if(c==n.children.length)return null;if((n=n.children[c]).length)break}i=p}if(!(n instanceof Ne))return null;let r=(0,P.cp)(n.text,i);if(r==i)return null;let l=Jt(n.dom,i,r).getClientRects();for(let c=0;c<l.length;c++){let p=l[c];if(c==l.length-1||p.top<p.bottom&&p.left<p.right)return p}return null}measureVisibleLineHeights(t){let e=[],{from:i,to:n}=t,r=this.view.contentDOM.clientWidth,l=r>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,c=-1,p=this.view.textDirection==wt.LTR;for(let k=0,v=0;v<this.children.length;v++){let R=this.children[v],W=k+R.length;if(W>n)break;if(k>=i){let X=R.dom.getBoundingClientRect();if(e.push(X.height),l){let et=R.dom.lastChild,ut=et?ke(et):[];if(ut.length){let dt=ut[ut.length-1],pt=p?dt.right-X.left:X.right-dt.left;pt>c&&(c=pt,this.minWidth=r,this.minWidthFrom=k,this.minWidthTo=W)}}}k=W+R.breakAfter}return e}textDirectionAt(t){let{i:e}=this.childPos(t,1);return getComputedStyle(this.children[e].dom).direction=="rtl"?wt.RTL:wt.LTR}measureTextSize(){for(let r of this.children)if(r instanceof D){let l=r.measureTextSize();if(l)return l}let t=document.createElement("div"),e,i,n;return t.className="cm-line",t.style.width="99999px",t.style.position="absolute",t.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(t);let r=ke(t.firstChild)[0];e=t.getBoundingClientRect().height,i=r?r.width/27:7,n=r?r.height:e,t.remove()}),{lineHeight:e,charWidth:i,textHeight:n}}childCursor(t=this.length){let e=this.children.length;return e&&(t-=this.children[--e].length),new Te(this.children,t,e)}computeBlockGapDeco(){let t=[],e=this.view.viewState;for(let i=0,n=0;;n++){let r=n==e.viewports.length?null:e.viewports[n],l=r?r.from-1:this.length;if(l>i){let c=(e.lineBlockAt(l).bottom-e.lineBlockAt(i).top)/this.view.scaleY;t.push(Kt.replace({widget:new z(c),block:!0,inclusive:!0,isBlockGap:!0}).range(i,l))}if(!r)break;i=r.to+1}return Kt.set(t)}updateDeco(){let t=1,e=this.view.state.facet(nt).map(r=>(this.dynamicDecorationMap[t++]=typeof r=="function")?r(this.view):r),i=!1,n=this.view.state.facet(vt).map((r,l)=>{let c=typeof r=="function";return c&&(i=!0),c?r(this.view):r});for(n.length&&(this.dynamicDecorationMap[t++]=i,e.push(P.Xs.join(n))),this.decorations=[this.editContextFormatting,...e,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];t<this.decorations.length;)this.dynamicDecorationMap[t++]=!1;return this.decorations}scrollIntoView(t){if(t.isSnapshot){let k=this.view.viewState.lineBlockAt(t.range.head);this.view.scrollDOM.scrollTop=k.top-t.yMargin,this.view.scrollDOM.scrollLeft=t.xMargin;return}for(let k of this.view.state.facet(Vi))try{if(k(this.view,t.range,t))return!0}catch(v){M(this.view.state,v,"scroll handler")}let{range:e}=t,i=this.coordsAt(e.head,e.empty?e.assoc:e.head>e.anchor?-1:1),n;if(!i)return;!e.empty&&(n=this.coordsAt(e.anchor,e.anchor>e.head?-1:1))&&(i={left:Math.min(i.left,n.left),top:Math.min(i.top,n.top),right:Math.max(i.right,n.right),bottom:Math.max(i.bottom,n.bottom)});let r=je(this.view),l={left:i.left-r.left,top:i.top-r.top,right:i.right+r.right,bottom:i.bottom+r.bottom},{offsetWidth:c,offsetHeight:p}=this.view.scrollDOM;oi(this.view.scrollDOM,l,e.head<e.anchor?-1:1,t.x,t.y,Math.max(Math.min(t.xMargin,c),-c),Math.max(Math.min(t.yMargin,p),-p),this.view.textDirection==wt.LTR)}}function Pi(s){return s.node.nodeType==1&&s.node.firstChild&&(s.offset==0||s.node.childNodes[s.offset-1].contentEditable=="false")&&(s.offset==s.node.childNodes.length||s.node.childNodes[s.offset].contentEditable=="false")}function yi(s,t){let e=s.observer.selectionRange;if(!e.focusNode)return null;let i=Fe(e.focusNode,e.focusOffset),n=Xe(e.focusNode,e.focusOffset),r=i||n;if(n&&i&&n.node!=i.node){let c=te.get(n.node);if(!c||c instanceof Ne&&c.text!=n.node.nodeValue)r=n;else if(s.docView.lastCompositionAfterCursor){let p=te.get(i.node);!p||p instanceof Ne&&p.text!=i.node.nodeValue||(r=n)}}if(s.docView.lastCompositionAfterCursor=r!=i,!r)return null;let l=t-r.offset;return{from:l,to:l+r.node.nodeValue.length,node:r.node}}function ui(s,t,e){let i=yi(s,e);if(!i)return null;let{node:n,from:r,to:l}=i,c=n.nodeValue;if(/[\n\r]/.test(c)||s.state.doc.sliceString(i.from,i.to)!=c)return null;let p=t.invertedDesc,k=new ai(p.mapPos(r),p.mapPos(l),r,l),v=[];for(let R=n.parentNode;;R=R.parentNode){let W=te.get(R);if(W instanceof G)v.push({node:R,deco:W.mark});else{if(W instanceof D||R.nodeName=="DIV"&&R.parentNode==s.contentDOM)return{range:k,text:n,marks:v,line:R};if(R!=s.contentDOM)v.push({node:R,deco:new ci({inclusive:!0,attributes:be(R),tagName:R.tagName.toLowerCase()})});else return null}}}function ji(s,t){return s.nodeType!=1?0:(t&&s.childNodes[t-1].contentEditable=="false"?1:0)|(t<s.childNodes.length&&s.childNodes[t].contentEditable=="false"?2:0)}let S=class{constructor(){this.changes=[]}compareRange(t,e){V(t,e,this.changes)}comparePoint(t,e){V(t,e,this.changes)}boundChange(t){V(t,t,this.changes)}};function f(s,t,e){let i=new S;return P.Xs.compare(s,t,e,i),i.changes}function b(s,t){for(let e=s;e&&e!=t;e=e.assignedSlot||e.parentNode)if(e.nodeType==1&&e.contentEditable=="false")return!0;return!1}function O(s,t){let e=!1;return t&&s.iterChangedRanges((i,n)=>{i<t.to&&n>t.from&&(e=!0)}),e}function I(s,t,e=1){let i=s.charCategorizer(t),n=s.doc.lineAt(t),r=t-n.from;if(n.length==0)return P.jT.cursor(t);r==0?e=1:r==n.length&&(e=-1);let l=r,c=r;e<0?l=(0,P.cp)(n.text,r,!1):c=(0,P.cp)(n.text,r);let p=i(n.text.slice(l,c));for(;l>0;){let k=(0,P.cp)(n.text,l,!1);if(i(n.text.slice(k,l))!=p)break;l=k}for(;c<n.length;){let k=(0,P.cp)(n.text,c);if(i(n.text.slice(c,k))!=p)break;c=k}return P.jT.range(l+n.from,c+n.from)}function j(s,t){return t.left>s?t.left-s:Math.max(0,s-t.right)}function K(s,t){return t.top>s?t.top-s:Math.max(0,s-t.bottom)}function ct(s,t){return s.top<t.bottom-1&&s.bottom>t.top+1}function at(s,t){return t<s.top?{top:t,left:s.left,right:s.right,bottom:s.bottom}:s}function Mt(s,t){return t>s.bottom?{top:s.top,left:s.left,right:s.right,bottom:t}:s}function Vt(s,t,e){let i,n,r,l,c=!1,p,k,v,R;for(let et=s.firstChild;et;et=et.nextSibling){let ut=ke(et);for(let dt=0;dt<ut.length;dt++){let pt=ut[dt];n&&ct(n,pt)&&(pt=at(Mt(pt,n.bottom),n.top));let $t=j(t,pt),ee=K(e,pt);if($t==0&&ee==0)return et.nodeType==3?Le(et,t,e):Vt(et,t,e);(!i||l>ee||l==ee&&r>$t)&&(i=et,n=pt,r=$t,l=ee,c=$t?t<pt.left?dt>0:dt<ut.length-1:!0),$t==0?e>pt.bottom&&(!v||v.bottom<pt.bottom)?(p=et,v=pt):e<pt.top&&(!R||R.top>pt.top)&&(k=et,R=pt):v&&ct(v,pt)?v=Mt(v,pt.bottom):R&&ct(R,pt)&&(R=at(R,pt.top))}}if(v&&v.bottom>=e?(i=p,n=v):R&&R.top<=e&&(i=k,n=R),!i)return{node:s,offset:0};let W=Math.max(n.left,Math.min(n.right,t));if(i.nodeType==3)return Le(i,W,e);if(c&&i.contentEditable!="false")return Vt(i,W,e);let X=Array.prototype.indexOf.call(s.childNodes,i)+(t>=(n.left+n.right)/2?1:0);return{node:s,offset:X}}function Le(s,t,e){let i=s.nodeValue.length,n=-1,r=1e9,l=0;for(let c=0;c<i;c++){let p=Jt(s,c,c+1).getClientRects();for(let k=0;k<p.length;k++){let v=p[k];if(v.top==v.bottom)continue;l||(l=t-v.left);let R=(v.top>e?v.top-e:e-v.bottom)-1;if(v.left-1<=t&&v.right+1>=t&&R<r){let W=t>=(v.left+v.right)/2,X=W;if((yt.chrome||yt.gecko)&&Jt(s,c).getBoundingClientRect().left==v.right&&(X=!W),R<=0)return{node:s,offset:c+(X?1:0)};n=c+(X?1:0),r=R}}}return{node:s,offset:n>-1?n:l>0?s.nodeValue.length:0}}function ki(s,t,e,i=-1){var n,r;let l=s.contentDOM.getBoundingClientRect(),c=l.top+s.viewState.paddingTop,p,{docHeight:k}=s.viewState,{x:v,y:R}=t,W=R-c;if(W<0)return 0;if(W>k)return s.state.doc.length;for(let Yt=s.viewState.heightOracle.textHeight/2,ie=!1;p=s.elementAtHeight(W),p.type!=Gt.Text;)for(;W=i>0?p.bottom+Yt:p.top-Yt,!(W>=0&&W<=k);){if(ie)return e?null:0;ie=!0,i=-i}R=c+W;let X=p.from;if(X<s.viewport.from)return s.viewport.from==0?0:e?null:wi(s,l,p,v,R);if(X>s.viewport.to)return s.viewport.to==s.state.doc.length?s.state.doc.length:e?null:wi(s,l,p,v,R);let et=s.dom.ownerDocument,ut=s.root.elementFromPoint?s.root:et,dt=ut.elementFromPoint(v,R);dt&&!s.contentDOM.contains(dt)&&(dt=null),dt||(v=Math.max(l.left+1,Math.min(l.right-1,v)),dt=ut.elementFromPoint(v,R),dt&&!s.contentDOM.contains(dt)&&(dt=null));let pt,$t=-1;if(dt&&((n=s.docView.nearest(dt))===null||n===void 0?void 0:n.isEditable)!=!1){if(et.caretPositionFromPoint){let Yt=et.caretPositionFromPoint(v,R);Yt&&({offsetNode:pt,offset:$t}=Yt)}else if(et.caretRangeFromPoint){let Yt=et.caretRangeFromPoint(v,R);Yt&&({startContainer:pt,startOffset:$t}=Yt,(!s.contentDOM.contains(pt)||yt.safari&&_i(pt,$t,v)||yt.chrome&&Hi(pt,$t,v))&&(pt=void 0))}pt&&($t=Math.min(we(pt),$t))}if(!pt||!s.docView.dom.contains(pt)){let Yt=D.find(s.docView,X);if(!Yt)return W>p.top+p.height/2?p.to:p.from;({node:pt,offset:$t}=Vt(Yt.dom,v,R))}let ee=s.docView.nearest(pt);if(!ee)return null;if(ee.isWidget&&((r=ee.dom)===null||r===void 0?void 0:r.nodeType)==1){let Yt=ee.dom.getBoundingClientRect();return t.y<Yt.top||t.y<=Yt.bottom&&t.x<=(Yt.left+Yt.right)/2?ee.posAtStart:ee.posAtEnd}else return ee.localPosFromDOM(pt,$t)+ee.posAtStart}function wi(s,t,e,i,n){let r=Math.round((i-t.left)*s.defaultCharacterWidth);if(s.lineWrapping&&e.height>s.defaultLineHeight*1.5){let c=s.viewState.heightOracle.textHeight,p=Math.floor((n-e.top-(s.defaultLineHeight-c)*.5)/c);r+=p*s.viewState.heightOracle.lineLength}let l=s.state.sliceDoc(e.from,e.to);return e.from+(0,P.Gz)(l,r,s.state.tabSize)}function _i(s,t,e){let i,n=s;if(s.nodeType!=3||t!=(i=s.nodeValue.length))return!1;for(;;){let r=n.nextSibling;if(r){if(r.nodeName=="BR")break;return!1}else{let l=n.parentNode;if(!l||l.nodeName=="DIV")break;n=l}}return Jt(s,i-1,i).getBoundingClientRect().right>e}function Hi(s,t,e){if(t!=0)return!1;for(let n=s;;){let r=n.parentNode;if(!r||r.nodeType!=1||r.firstChild!=n)return!1;if(r.classList.contains("cm-line"))break;n=r}let i=s.nodeType==1?s.getBoundingClientRect():Jt(s,0,Math.max(s.nodeValue.length,1)).getBoundingClientRect();return e-i.left>5}function mn(s,t,e){let i=s.lineBlockAt(t);if(Array.isArray(i.type)){let n;for(let r of i.type){if(r.from>t)break;if(!(r.to<t)){if(r.from<t&&r.to>t)return r;(!n||r.type==Gt.Text&&(n.type!=r.type||(e<0?r.from<t:r.to>t)))&&(n=r)}}return n||i}return i}function ln(s,t,e,i){let n=mn(s,t.head,t.assoc||-1),r=!i||n.type!=Gt.Text||!(s.lineWrapping||n.widgetLineBreaks)?null:s.coordsAtPos(t.assoc<0&&t.head>n.from?t.head-1:t.head);if(r){let l=s.dom.getBoundingClientRect(),c=s.textDirectionAt(n.from),p=s.posAtCoords({x:e==(c==wt.LTR)?l.right-1:l.left+1,y:(r.top+r.bottom)/2});if(p!=null)return P.jT.cursor(p,e?-1:1)}return P.jT.cursor(e?n.to:n.from,e?-1:1)}function xn(s,t,e,i){let n=s.state.doc.lineAt(t.head),r=s.bidiSpans(n),l=s.textDirectionAt(n.from);for(let c=t,p=null;;){let k=y(n,r,l,c,e),v=u;if(!k){if(n.number==(e?s.state.doc.lines:1))return c;v=`
|
|
23
|
+
`,n=s.state.doc.line(n.number+(e?1:-1)),r=s.bidiSpans(n),k=s.visualLineSide(n,!e)}if(p){if(!p(v))return c}else{if(!i)return k;p=i(v)}c=k}}function as(s,t,e){let i=s.state.charCategorizer(t),n=i(e);return r=>{let l=i(r);return n==P.D0.Space&&(n=l),n==l}}function hs(s,t,e,i){let n=t.head,r=e?1:-1;if(n==(e?s.state.doc.length:0))return P.jT.cursor(n,t.assoc);let l=t.goalColumn,c,p=s.contentDOM.getBoundingClientRect(),k=s.coordsAtPos(n,t.assoc||-1),v=s.documentTop;if(k)l==null&&(l=k.left-p.left),c=r<0?k.top:k.bottom;else{let X=s.viewState.lineBlockAt(n);l==null&&(l=Math.min(p.right-p.left,s.defaultCharacterWidth*(n-X.from))),c=(r<0?X.top:X.bottom)+v}let R=p.left+l,W=i??s.viewState.heightOracle.textHeight>>1;for(let X=0;;X+=10){let et=c+(W+X)*r,ut=ki(s,{x:R,y:et},!1,r);if(et<p.top||et>p.bottom||(r<0?ut<n:ut>n)){let dt=s.docView.coordsForChar(ut),pt=!dt||et<dt.top?-1:1;return P.jT.cursor(ut,pt,void 0,l)}}}function Ji(s,t,e){for(;;){let i=0;for(let n of s)n.between(t-1,t+1,(r,l,c)=>{if(t>r&&t<l){let p=i||e||(t-r<l-t?-1:1);t=p<0?r:l,i=p}});if(!i)return t}}function an(s,t,e){let i=Ji(s.state.facet(gt).map(n=>n(s)),e.from,t.head>e.from?-1:1);return i==e.from?e:P.jT.cursor(i,i<e.from?1:-1)}const Gi="\uFFFF";class kn{constructor(t,e){this.points=t,this.text="",this.lineSeparator=e.facet(P.yy.lineSeparator)}append(t){this.text+=t}lineBreak(){this.text+=Gi}readRange(t,e){if(!t)return this;let i=t.parentNode;for(let n=t;;){this.findPointBefore(i,n);let r=this.text.length;this.readNode(n);let l=n.nextSibling;if(l==e)break;let c=te.get(n),p=te.get(l);(c&&p?c.breakAfter:(c?c.breakAfter:fe(n))||fe(l)&&(n.nodeName!="BR"||n.cmIgnore)&&this.text.length>r)&&this.lineBreak(),n=l}return this.findPointBefore(i,e),this}readTextNode(t){let e=t.nodeValue;for(let i of this.points)i.node==t&&(i.pos=this.text.length+Math.min(i.offset,e.length));for(let i=0,n=this.lineSeparator?null:/\r\n?|\n/g;;){let r=-1,l=1,c;if(this.lineSeparator?(r=e.indexOf(this.lineSeparator,i),l=this.lineSeparator.length):(c=n.exec(e))&&(r=c.index,l=c[0].length),this.append(e.slice(i,r<0?e.length:r)),r<0)break;if(this.lineBreak(),l>1)for(let p of this.points)p.node==t&&p.pos>this.text.length&&(p.pos-=l-1);i=r+l}}readNode(t){if(t.cmIgnore)return;let e=te.get(t),i=e&&e.overrideDOMText;if(i!=null){this.findPointInside(t,i.length);for(let n=i.iter();!n.next().done;)n.lineBreak?this.lineBreak():this.append(n.value)}else t.nodeType==3?this.readTextNode(t):t.nodeName=="BR"?t.nextSibling&&this.lineBreak():t.nodeType==1&&this.readRange(t.firstChild,null)}findPointBefore(t,e){for(let i of this.points)i.node==t&&t.childNodes[i.offset]==e&&(i.pos=this.text.length)}findPointInside(t,e){for(let i of this.points)(t.nodeType==3?i.node==t:t.contains(i.node))&&(i.pos=this.text.length+(Di(t,i.node,i.offset)?e:0))}}function Di(s,t,e){for(;;){if(!t||e<we(t))return!1;if(t==s)return!0;e=Pe(t)+1,t=t.parentNode}}class zt{constructor(t,e){this.node=t,this.offset=e,this.pos=-1}}class cs{constructor(t,e,i,n){this.typeOver=n,this.bounds=null,this.text="",this.domChanged=e>-1;let{impreciseHead:r,impreciseAnchor:l}=t.docView;if(t.state.readOnly&&e>-1)this.newSel=null;else if(e>-1&&(this.bounds=t.docView.domBoundsAround(e,i,0))){let c=r||l?[]:nn(t),p=new kn(c,t.state);p.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=p.text,this.newSel=In(c,this.bounds.from)}else{let c=t.observer.selectionRange,p=r&&r.node==c.focusNode&&r.offset==c.focusOffset||!se(t.contentDOM,c.focusNode)?t.state.selection.main.head:t.docView.posFromDOM(c.focusNode,c.focusOffset),k=l&&l.node==c.anchorNode&&l.offset==c.anchorOffset||!se(t.contentDOM,c.anchorNode)?t.state.selection.main.anchor:t.docView.posFromDOM(c.anchorNode,c.anchorOffset),v=t.viewport;if((yt.ios||yt.chrome)&&t.state.selection.main.empty&&p!=k&&(v.from>0||v.to<t.state.doc.length)){let R=Math.min(p,k),W=Math.max(p,k),X=v.from-R,et=v.to-W;(X==0||X==1||R==0)&&(et==0||et==-1||W==t.state.doc.length)&&(p=0,k=t.state.doc.length)}this.newSel=P.jT.single(k,p)}}}function Sn(s,t){let e,{newSel:i}=t,n=s.state.selection.main,r=s.inputState.lastKeyTime>Date.now()-100?s.inputState.lastKeyCode:-1;if(t.bounds){let{from:l,to:c}=t.bounds,p=n.from,k=null;(r===8||yt.android&&t.text.length<c-l)&&(p=n.to,k="end");let v=en(s.state.doc.sliceString(l,c,Gi),t.text,p-l,k);v&&(yt.chrome&&r==13&&v.toB==v.from+2&&t.text.slice(v.from,v.toB)==Gi+Gi&&v.toB--,e={from:l+v.from,to:l+v.toA,insert:P.xv.of(t.text.slice(v.from,v.toB).split(Gi))})}else i&&(!s.hasFocus&&s.state.facet(g)||i.main.eq(n))&&(i=null);if(!e&&!i)return!1;if(!e&&t.typeOver&&!n.empty&&i&&i.main.empty?e={from:n.from,to:n.to,insert:s.state.doc.slice(n.from,n.to)}:(yt.mac||yt.android)&&e&&e.from==e.to&&e.from==n.head-1&&/^\. ?$/.test(e.insert.toString())&&s.contentDOM.getAttribute("autocorrect")=="off"?(i&&e.insert.length==2&&(i=P.jT.single(i.main.anchor-1,i.main.head-1)),e={from:e.from,to:e.to,insert:P.xv.of([e.insert.toString().replace("."," ")])}):e&&e.from>=n.from&&e.to<=n.to&&(e.from!=n.from||e.to!=n.to)&&n.to-n.from-(e.to-e.from)<=4?e={from:n.from,to:n.to,insert:s.state.doc.slice(n.from,e.from).append(e.insert).append(s.state.doc.slice(e.to,n.to))}:yt.chrome&&e&&e.from==e.to&&e.from==n.head&&e.insert.toString()==`
|
|
24
|
+
`&&s.lineWrapping&&(i&&(i=P.jT.single(i.main.anchor-1,i.main.head-1)),e={from:n.from,to:n.to,insert:P.xv.of([" "])}),e)return gn(s,e,i,r);if(i&&!i.main.eq(n)){let l=!1,c="select";return s.inputState.lastSelectionTime>Date.now()-50&&(s.inputState.lastSelectionOrigin=="select"&&(l=!0),c=s.inputState.lastSelectionOrigin),s.dispatch({selection:i,scrollIntoView:l,userEvent:c}),!0}else return!1}function gn(s,t,e,i=-1){if(yt.ios&&s.inputState.flushIOSKey(t))return!0;let n=s.state.selection.main;if(yt.android&&(t.to==n.to&&(t.from==n.from||t.from==n.from-1&&s.state.sliceDoc(t.from,n.from)==" ")&&t.insert.length==1&&t.insert.lines==2&&Pt(s.contentDOM,"Enter",13)||(t.from==n.from-1&&t.to==n.to&&t.insert.length==0||i==8&&t.insert.length<t.to-t.from&&t.to>n.head)&&Pt(s.contentDOM,"Backspace",8)||t.from==n.from&&t.to==n.to+1&&t.insert.length==0&&Pt(s.contentDOM,"Delete",46)))return!0;let r=t.insert.toString();s.inputState.composing>=0&&s.inputState.composing++;let l,c=()=>l||(l=hn(s,t,e));return s.state.facet(xt).some(p=>p(s,t.from,t.to,r,c))||s.dispatch(c()),!0}function hn(s,t,e){let i,n=s.state,r=n.selection.main;if(t.from>=r.from&&t.to<=r.to&&t.to-t.from>=(r.to-r.from)/3&&(!e||e.main.empty&&e.main.from==t.from+t.insert.length)&&s.inputState.composing<0){let c=r.from<t.from?n.sliceDoc(r.from,t.from):"",p=r.to>t.to?n.sliceDoc(t.to,r.to):"";i=n.replaceSelection(s.state.toText(c+t.insert.sliceString(0,void 0,s.state.lineBreak)+p))}else{let c=n.changes(t),p=e&&e.main.to<=c.newLength?e.main:void 0;if(n.selection.ranges.length>1&&s.inputState.composing>=0&&t.to<=r.to&&t.to>=r.to-10){let k=s.state.sliceDoc(t.from,t.to),v,R=e&&yi(s,e.main.head);if(R){let et=t.insert.length-(t.to-t.from);v={from:R.from,to:R.to-et}}else v=s.state.doc.lineAt(r.head);let W=r.to-t.to,X=r.to-r.from;i=n.changeByRange(et=>{if(et.from==r.from&&et.to==r.to)return{changes:c,range:p||et.map(c)};let ut=et.to-W,dt=ut-k.length;if(et.to-et.from!=X||s.state.sliceDoc(dt,ut)!=k||et.to>=v.from&&et.from<=v.to)return{range:et};let pt=n.changes({from:dt,to:ut,insert:t.insert}),$t=et.to-r.to;return{changes:pt,range:p?P.jT.range(Math.max(0,p.anchor+$t),Math.max(0,p.head+$t)):et.map(pt)}})}else i={changes:c,selection:p&&n.selection.replaceRange(p)}}let l="input.type";return(s.composing||s.inputState.compositionPendingChange&&s.inputState.compositionEndedAt>Date.now()-50)&&(s.inputState.compositionPendingChange=!1,l+=".compose",s.inputState.compositionFirstChange&&(l+=".start",s.inputState.compositionFirstChange=!1)),n.update(i,{userEvent:l,scrollIntoView:!0})}function en(s,t,e,i){let n=Math.min(s.length,t.length),r=0;for(;r<n&&s.charCodeAt(r)==t.charCodeAt(r);)r++;if(r==n&&s.length==t.length)return null;let l=s.length,c=t.length;for(;l>0&&c>0&&s.charCodeAt(l-1)==t.charCodeAt(c-1);)l--,c--;if(i=="end"){let p=Math.max(0,r-Math.min(l,c));e-=l+p-r}if(l<r&&s.length<t.length){let p=e<=r&&e>=l?r-e:0;r-=p,c=r+(c-l),l=r}else if(c<r){let p=e<=r&&e>=c?r-e:0;r-=p,l=r+(l-c),c=r}return{from:r,toA:l,toB:c}}function nn(s){let t=[];if(s.root.activeElement!=s.contentDOM)return t;let{anchorNode:e,anchorOffset:i,focusNode:n,focusOffset:r}=s.observer.selectionRange;return e&&(t.push(new zt(e,i)),(n!=e||r!=i)&&t.push(new zt(n,r))),t}function In(s,t){if(s.length==0)return null;let e=s[0].pos,i=s.length==2?s[1].pos:e;return e>-1&&i>-1?P.jT.single(e+t,i+t):null}class Cn{setSelectionOrigin(t){this.lastSelectionOrigin=t,this.lastSelectionTime=Date.now()}constructor(t){this.view=t,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=t.hasFocus,yt.safari&&t.contentDOM.addEventListener("input",()=>null),yt.gecko&&Ar(t.contentDOM.ownerDocument)}handleEvent(t){!Vn(this.view,t)||this.ignoreDuringComposition(t)||t.type=="keydown"&&this.keydown(t)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(t.type,t)):this.runHandlers(t.type,t))}runHandlers(t,e){let i=this.handlers[t];if(i){for(let n of i.observers)n(this.view,e);for(let n of i.handlers){if(e.defaultPrevented)break;if(n(this.view,e)){e.preventDefault();break}}}}ensureHandlers(t){let e=Nn(t),i=this.handlers,n=this.view.contentDOM;for(let r in e)if(r!="scroll"){let l=!e[r].handlers.length,c=i[r];c&&l!=!c.handlers.length&&(n.removeEventListener(r,this.handleEvent),c=null),c||n.addEventListener(r,this.handleEvent,{passive:l})}for(let r in i)r!="scroll"&&!e[r]&&n.removeEventListener(r,this.handleEvent);this.handlers=e}keydown(t){if(this.lastKeyCode=t.keyCode,this.lastKeyTime=Date.now(),t.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&t.keyCode!=27&&Fn.indexOf(t.keyCode)<0&&(this.tabFocusMode=-1),yt.android&&yt.chrome&&!t.synthetic&&(t.keyCode==13||t.keyCode==8))return this.view.observer.delayAndroidKey(t.key,t.keyCode),!0;let e;return yt.ios&&!t.synthetic&&!t.altKey&&!t.metaKey&&((e=An.find(i=>i.keyCode==t.keyCode))&&!t.ctrlKey||fs.indexOf(t.key)>-1&&t.ctrlKey&&!t.shiftKey)?(this.pendingIOSKey=e||t,setTimeout(()=>this.flushIOSKey(),250),!0):(t.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(t){let e=this.pendingIOSKey;return!e||e.key=="Enter"&&t&&t.from<t.to&&/^\S+$/.test(t.insert.toString())?!1:(this.pendingIOSKey=void 0,Pt(this.view.contentDOM,e.key,e.keyCode,e instanceof KeyboardEvent?e:void 0))}ignoreDuringComposition(t){return/^key/.test(t.type)?this.composing>0?!0:yt.safari&&!yt.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1:!1}startMouseSelection(t){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=t}update(t){this.view.observer.update(t),this.mouseSelection&&this.mouseSelection.update(t),this.draggedContent&&t.docChanged&&(this.draggedContent=this.draggedContent.map(t.changes)),t.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function Tn(s,t){return(e,i)=>{try{return t.call(s,i,e)}catch(n){M(e.state,n)}}}function Nn(s){let t=Object.create(null);function e(i){return t[i]||(t[i]={observers:[],handlers:[]})}for(let i of s){let n=i.spec,r=n&&n.plugin.domEventHandlers,l=n&&n.plugin.domEventObservers;if(r)for(let c in r){let p=r[c];p&&e(c).handlers.push(Tn(i.value,p))}if(l)for(let c in l){let p=l[c];p&&e(c).observers.push(Tn(i.value,p))}}for(let i in Si)e(i).handlers.push(Si[i]);for(let i in Ei)e(i).observers.push(Ei[i]);return t}const An=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],fs="dthko",Fn=[16,17,18,20,91,92,224,225],bn=6;function cn(s){return Math.max(0,s)*.7+8}function us(s,t){return Math.max(Math.abs(s.clientX-t.clientX),Math.abs(s.clientY-t.clientY))}class ds{constructor(t,e,i,n){this.view=t,this.startEvent=e,this.style=i,this.mustSelect=n,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=e,this.scrollParents=Ye(t.contentDOM),this.atoms=t.state.facet(gt).map(l=>l(t));let r=t.contentDOM.ownerDocument;r.addEventListener("mousemove",this.move=this.move.bind(this)),r.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=e.shiftKey,this.multiple=t.state.facet(P.yy.allowMultipleSelections)&&ps(t,e),this.dragging=Hn(t,e)&&Ft(e)==1?null:!1}start(t){this.dragging===!1&&this.select(t)}move(t){if(t.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&us(this.startEvent,t)<10)return;this.select(this.lastEvent=t);let e=0,i=0,n=0,r=0,l=this.view.win.innerWidth,c=this.view.win.innerHeight;this.scrollParents.x&&({left:n,right:l}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:r,bottom:c}=this.scrollParents.y.getBoundingClientRect());let p=je(this.view);t.clientX-p.left<=n+bn?e=-cn(n-t.clientX):t.clientX+p.right>=l-bn&&(e=cn(t.clientX-l)),t.clientY-p.top<=r+bn?i=-cn(r-t.clientY):t.clientY+p.bottom>=c-bn&&(i=cn(t.clientY-c)),this.setScrollSpeed(e,i)}up(t){this.dragging==null&&this.select(this.lastEvent),this.dragging||t.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let t=this.view.contentDOM.ownerDocument;t.removeEventListener("mousemove",this.move),t.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(t,e){this.scrollSpeed={x:t,y:e},t||e?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:t,y:e}=this.scrollSpeed;t&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=t,t=0),e&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=e,e=0),(t||e)&&this.view.win.scrollBy(t,e),this.dragging===!1&&this.select(this.lastEvent)}skipAtoms(t){let e=null;for(let i=0;i<t.ranges.length;i++){let n=t.ranges[i],r=null;if(n.empty){let l=Ji(this.atoms,n.from,0);l!=n.from&&(r=P.jT.cursor(l,-1))}else{let l=Ji(this.atoms,n.from,-1),c=Ji(this.atoms,n.to,1);(l!=n.from||c!=n.to)&&(r=P.jT.range(n.from==n.anchor?l:c,n.from==n.head?l:c))}r&&(e||(e=t.ranges.slice()),e[i]=r)}return e?P.jT.create(e,t.mainIndex):t}select(t){let{view:e}=this,i=this.skipAtoms(this.style.get(t,this.extend,this.multiple));(this.mustSelect||!i.eq(e.state.selection,this.dragging===!1))&&this.view.dispatch({selection:i,userEvent:"select.pointer"}),this.mustSelect=!1}update(t){t.transactions.some(e=>e.isUserEvent("input.type"))?this.destroy():this.style.update(t)&&setTimeout(()=>this.select(this.lastEvent),20)}}function ps(s,t){let e=s.state.facet(A);return e.length?e[0](t):yt.mac?t.metaKey:t.ctrlKey}function Wn(s,t){let e=s.state.facet(N);return e.length?e[0](t):yt.mac?!t.altKey:!t.ctrlKey}function Hn(s,t){let{main:e}=s.state.selection;if(e.empty)return!1;let i=kt(s.root);if(!i||i.rangeCount==0)return!0;let n=i.getRangeAt(0).getClientRects();for(let r=0;r<n.length;r++){let l=n[r];if(l.left<=t.clientX&&l.right>=t.clientX&&l.top<=t.clientY&&l.bottom>=t.clientY)return!0}return!1}function Vn(s,t){if(!t.bubbles)return!0;if(t.defaultPrevented)return!1;for(let e=t.target,i;e!=s.contentDOM;e=e.parentNode)if(!e||e.nodeType==11||(i=te.get(e))&&i.ignoreEvent(t))return!1;return!0}const Si=Object.create(null),Ei=Object.create(null),Mn=yt.ie&&yt.ie_version<15||yt.ios&&yt.webkit_version<604;function ms(s){let t=s.dom.parentNode;if(!t)return;let e=t.appendChild(document.createElement("textarea"));e.style.cssText="position: fixed; left: -10000px; top: 10px",e.focus(),setTimeout(()=>{s.focus(),e.remove(),h(s,e.value)},50)}function m(s,t,e){for(let i of s.facet(t))e=i(e,s);return e}function h(s,t){t=m(s.state,Rt,t);let{state:e}=s,i,n=1,r=e.toText(t),l=r.lines==e.selection.ranges.length;if($i!=null&&e.selection.ranges.every(p=>p.empty)&&$i==r.toString()){let p=-1;i=e.changeByRange(k=>{let v=e.doc.lineAt(k.from);if(v.from==p)return{range:k};p=v.from;let R=e.toText((l?r.line(n++).text:t)+e.lineBreak);return{changes:{from:v.from,insert:R},range:P.jT.cursor(k.from+R.length)}})}else l?i=e.changeByRange(p=>{let k=r.line(n++);return{changes:{from:p.from,to:p.to,insert:k.text},range:P.jT.cursor(p.from+k.length)}}):i=e.replaceSelection(r);s.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}Ei.scroll=s=>{s.inputState.lastScrollTop=s.scrollDOM.scrollTop,s.inputState.lastScrollLeft=s.scrollDOM.scrollLeft},Si.keydown=(s,t)=>(s.inputState.setSelectionOrigin("select"),t.keyCode==27&&s.inputState.tabFocusMode!=0&&(s.inputState.tabFocusMode=Date.now()+2e3),!1),Ei.touchstart=(s,t)=>{s.inputState.lastTouchTime=Date.now(),s.inputState.setSelectionOrigin("select.pointer")},Ei.touchmove=s=>{s.inputState.setSelectionOrigin("select.pointer")},Si.mousedown=(s,t)=>{if(s.observer.flush(),s.inputState.lastTouchTime>Date.now()-2e3)return!1;let e=null;for(let i of s.state.facet(J))if(e=i(s,t),e)break;if(!e&&t.button==0&&(e=pe(s,t)),e){let i=!s.hasFocus;s.inputState.startMouseSelection(new ds(s,t,e,i)),i&&s.observer.ignore(()=>{Me(s.contentDOM);let r=s.root.activeElement;r&&!r.contains(s.contentDOM)&&r.blur()});let n=s.inputState.mouseSelection;if(n)return n.start(t),n.dragging===!1}return!1};function d(s,t,e,i){if(i==1)return P.jT.cursor(t,e);if(i==2)return I(s.state,t,e);{let n=D.find(s.docView,t),r=s.state.doc.lineAt(n?n.posAtEnd:t),l=n?n.posAtStart:r.from,c=n?n.posAtEnd:r.to;return c<s.state.doc.length&&c==r.to&&c++,P.jT.range(l,c)}}let w=(s,t,e)=>t>=e.top&&t<=e.bottom&&s>=e.left&&s<=e.right;function C(s,t,e,i){let n=D.find(s.docView,t);if(!n)return 1;let r=t-n.posAtStart;if(r==0)return 1;if(r==n.length)return-1;let l=n.coordsAt(r,-1);if(l&&w(e,i,l))return-1;let c=n.coordsAt(r,1);return c&&w(e,i,c)?1:l&&l.bottom>=i?-1:1}function F(s,t){let e=s.posAtCoords({x:t.clientX,y:t.clientY},!1);return{pos:e,bias:C(s,e,t.clientX,t.clientY)}}const H=yt.ie&&yt.ie_version<=11;let tt=null,it=0,Tt=0;function Ft(s){if(!H)return s.detail;let t=tt,e=Tt;return tt=s,Tt=Date.now(),it=!t||e>Date.now()-400&&Math.abs(t.clientX-s.clientX)<2&&Math.abs(t.clientY-s.clientY)<2?(it+1)%3:1}function pe(s,t){let e=F(s,t),i=Ft(t),n=s.state.selection;return{update(r){r.docChanged&&(e.pos=r.changes.mapPos(e.pos),n=n.map(r.changes))},get(r,l,c){let p=F(s,r),k,v=d(s,p.pos,p.bias,i);if(e.pos!=p.pos&&!l){let R=d(s,e.pos,e.bias,i),W=Math.min(R.from,v.from),X=Math.max(R.to,v.to);v=W<v.from?P.jT.range(W,X):P.jT.range(X,W)}return l?n.replaceRange(n.main.extend(v.from,v.to)):c&&i==1&&n.ranges.length>1&&(k=ei(n,p.pos))?k:c?n.addRange(v):P.jT.create([v])}}}function ei(s,t){for(let e=0;e<s.ranges.length;e++){let{from:i,to:n}=s.ranges[e];if(i<=t&&n>=t)return P.jT.create(s.ranges.slice(0,e).concat(s.ranges.slice(e+1)),s.mainIndex==e?0:s.mainIndex-(s.mainIndex>e?1:0))}return null}Si.dragstart=(s,t)=>{let{selection:{main:e}}=s.state;if(t.target.draggable){let n=s.docView.nearest(t.target);if(n&&n.isWidget){let r=n.posAtStart,l=r+n.length;(r>=e.to||l<=e.from)&&(e=P.jT.range(r,l))}}let{inputState:i}=s;return i.mouseSelection&&(i.mouseSelection.dragging=!0),i.draggedContent=e,t.dataTransfer&&(t.dataTransfer.setData("Text",m(s.state,De,s.state.sliceDoc(e.from,e.to))),t.dataTransfer.effectAllowed="copyMove"),!1},Si.dragend=s=>(s.inputState.draggedContent=null,!1);function Re(s,t,e,i){if(e=m(s.state,Rt,e),!e)return;let n=s.posAtCoords({x:t.clientX,y:t.clientY},!1),{draggedContent:r}=s.inputState,l=i&&r&&Wn(s,t)?{from:r.from,to:r.to}:null,c={from:n,insert:e},p=s.state.changes(l?[l,c]:c);s.focus(),s.dispatch({changes:p,selection:{anchor:p.mapPos(n,-1),head:p.mapPos(n,1)},userEvent:l?"move.drop":"input.drop"}),s.inputState.draggedContent=null}Si.drop=(s,t)=>{if(!t.dataTransfer)return!1;if(s.state.readOnly)return!0;let e=t.dataTransfer.files;if(e&&e.length){let i=Array(e.length),n=0,r=()=>{++n==e.length&&Re(s,t,i.filter(l=>l!=null).join(s.state.lineBreak),!1)};for(let l=0;l<e.length;l++){let c=new FileReader;c.onerror=r,c.onload=()=>{/[\x00-\x08\x0e-\x1f]{2}/.test(c.result)||(i[l]=c.result),r()},c.readAsText(e[l])}return!0}else{let i=t.dataTransfer.getData("Text");if(i)return Re(s,t,i,!0),!0}return!1},Si.paste=(s,t)=>{if(s.state.readOnly)return!0;s.observer.flush();let e=Mn?null:t.clipboardData;return e?(h(s,e.getData("text/plain")||e.getData("text/uri-list")),!0):(ms(s),!1)};function Ci(s,t){let e=s.dom.parentNode;if(!e)return;let i=e.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=t,i.focus(),i.selectionEnd=t.length,i.selectionStart=0,setTimeout(()=>{i.remove(),s.focus()},50)}function Oi(s){let t=[],e=[],i=!1;for(let n of s.selection.ranges)n.empty||(t.push(s.sliceDoc(n.from,n.to)),e.push(n));if(!t.length){let n=-1;for(let{from:r}of s.selection.ranges){let l=s.doc.lineAt(r);l.number>n&&(t.push(l.text),e.push({from:l.from,to:Math.min(s.doc.length,l.to+1)})),n=l.number}i=!0}return{text:m(s,De,t.join(s.lineBreak)),ranges:e,linewise:i}}let $i=null;Si.copy=Si.cut=(s,t)=>{let{text:e,ranges:i,linewise:n}=Oi(s.state);if(!e&&!n)return!1;$i=n?e:null,t.type=="cut"&&!s.state.readOnly&&s.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"});let r=Mn?null:t.clipboardData;return r?(r.clearData(),r.setData("text/plain",e),!0):(Ci(s,e),!1)};const qi=P.q6.define();function fn(s,t){let e=[];for(let i of s.facet(Lt)){let n=i(s,t);n&&e.push(n)}return e.length?s.update({effects:e,annotations:qi.of(!0)}):null}function Is(s){setTimeout(()=>{let t=s.hasFocus;if(t!=s.inputState.notifiedFocused){let e=fn(s.state,t);e?s.dispatch(e):s.update([])}},10)}Ei.focus=s=>{s.inputState.lastFocusTime=Date.now(),!s.scrollDOM.scrollTop&&(s.inputState.lastScrollTop||s.inputState.lastScrollLeft)&&(s.scrollDOM.scrollTop=s.inputState.lastScrollTop,s.scrollDOM.scrollLeft=s.inputState.lastScrollLeft),Is(s)},Ei.blur=s=>{s.observer.clearSelectionRange(),Is(s)},Ei.compositionstart=Ei.compositionupdate=s=>{s.observer.editContext||(s.inputState.compositionFirstChange==null&&(s.inputState.compositionFirstChange=!0),s.inputState.composing<0&&(s.inputState.composing=0))},Ei.compositionend=s=>{s.observer.editContext||(s.inputState.composing=-1,s.inputState.compositionEndedAt=Date.now(),s.inputState.compositionPendingKey=!0,s.inputState.compositionPendingChange=s.observer.pendingRecords().length>0,s.inputState.compositionFirstChange=null,yt.chrome&&yt.android?s.observer.flushSoon():s.inputState.compositionPendingChange?Promise.resolve().then(()=>s.observer.flush()):setTimeout(()=>{s.inputState.composing<0&&s.docView.hasComposition&&s.update([])},50))},Ei.contextmenu=s=>{s.inputState.lastContextMenu=Date.now()},Si.beforeinput=(s,t)=>{var e,i;if(t.inputType=="insertReplacementText"&&s.observer.editContext){let r=(e=t.dataTransfer)===null||e===void 0?void 0:e.getData("text/plain"),l=t.getTargetRanges();if(r&&l.length){let c=l[0],p=s.posAtDOM(c.startContainer,c.startOffset),k=s.posAtDOM(c.endContainer,c.endOffset);return gn(s,{from:p,to:k,insert:s.state.toText(r)},null),!0}}let n;if(yt.chrome&&yt.android&&(n=An.find(r=>r.inputType==t.inputType))&&(s.observer.delayAndroidKey(n.key,n.keyCode),n.key=="Backspace"||n.key=="Delete")){let r=((i=window.visualViewport)===null||i===void 0?void 0:i.height)||0;setTimeout(()=>{var l;(((l=window.visualViewport)===null||l===void 0?void 0:l.height)||0)>r+10&&s.hasFocus&&(s.contentDOM.blur(),s.focus())},100)}return yt.ios&&t.inputType=="deleteContentForward"&&s.observer.flushSoon(),yt.safari&&t.inputType=="insertText"&&s.inputState.composing>=0&&setTimeout(()=>Ei.compositionend(s,t),20),!1};const Ns=new Set;function Ar(s){Ns.has(s)||(Ns.add(s),s.addEventListener("copy",()=>{}),s.addEventListener("cut",()=>{}))}const Fs=["pre-wrap","normal","pre-line","break-spaces"];let un=!1;function gs(){un=!1}class Ws{constructor(t){this.lineWrapping=t,this.doc=P.xv.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(t,e){let i=this.doc.lineAt(e).number-this.doc.lineAt(t).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((e-t-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(t){return this.lineWrapping?(1+Math.max(0,Math.ceil((t-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(t){return this.doc=t,this}mustRefreshForWrapping(t){return Fs.indexOf(t)>-1!=this.lineWrapping}mustRefreshForHeights(t){let e=!1;for(let i=0;i<t.length;i++){let n=t[i];n<0?i++:this.heightSamples[Math.floor(n*10)]||(e=!0,this.heightSamples[Math.floor(n*10)]=!0)}return e}refresh(t,e,i,n,r,l){let c=Fs.indexOf(t)>-1,p=Math.round(e)!=Math.round(this.lineHeight)||this.lineWrapping!=c;if(this.lineWrapping=c,this.lineHeight=e,this.charWidth=i,this.textHeight=n,this.lineLength=r,p){this.heightSamples={};for(let k=0;k<l.length;k++){let v=l[k];v<0?k++:this.heightSamples[Math.floor(v*10)]=!0}}return p}}class Hs{constructor(t,e){this.from=t,this.heights=e,this.index=0}get more(){return this.index<this.heights.length}}class Ki{constructor(t,e,i,n,r){this.from=t,this.length=e,this.top=i,this.height=n,this._content=r}get type(){return typeof this._content=="number"?Gt.Text:Array.isArray(this._content)?this._content:this._content.type}get to(){return this.from+this.length}get bottom(){return this.top+this.height}get widget(){return this._content instanceof Ge?this._content.widget:null}get widgetLineBreaks(){return typeof this._content=="number"?this._content:0}join(t){let e=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(t._content)?t._content:[t]);return new Ki(this.from,this.length+t.length,this.top,this.height+t.height,e)}}var Ue=function(s){return s[s.ByPos=0]="ByPos",s[s.ByHeight=1]="ByHeight",s[s.ByPosNoHeight=2]="ByPosNoHeight",s}(Ue||(Ue={}));const $n=.001;class Mi{constructor(t,e,i=2){this.length=t,this.height=e,this.flags=i}get outdated(){return(this.flags&2)>0}set outdated(t){this.flags=(t?2:0)|this.flags&-3}setHeight(t){this.height!=t&&(Math.abs(this.height-t)>$n&&(un=!0),this.height=t)}replace(t,e,i){return Mi.of(i)}decomposeLeft(t,e){e.push(this)}decomposeRight(t,e){e.push(this)}applyChanges(t,e,i,n){let r=this,l=i.doc;for(let c=n.length-1;c>=0;c--){let{fromA:p,toA:k,fromB:v,toB:R}=n[c],W=r.lineAt(p,Ue.ByPosNoHeight,i.setDoc(e),0,0),X=W.to>=k?W:r.lineAt(k,Ue.ByPosNoHeight,i,0,0);for(R+=X.to-k,k=X.to;c>0&&W.from<=n[c-1].toA;)p=n[c-1].fromA,v=n[c-1].fromB,c--,p<W.from&&(W=r.lineAt(p,Ue.ByPosNoHeight,i,0,0));v+=W.from-p,p=W.from;let et=bs.build(i.setDoc(l),t,v,R);r=zn(r,r.replace(p,k,et))}return r.updateHeight(i,0)}static empty(){return new Bi(0,0)}static of(t){if(t.length==1)return t[0];let e=0,i=t.length,n=0,r=0;for(;;)if(e==i)if(n>r*2){let c=t[e-1];c.break?t.splice(--e,1,c.left,null,c.right):t.splice(--e,1,c.left,c.right),i+=1+c.break,n-=c.size}else if(r>n*2){let c=t[i];c.break?t.splice(i,1,c.left,null,c.right):t.splice(i,1,c.left,c.right),i+=2+c.break,r-=c.size}else break;else if(n<r){let c=t[e++];c&&(n+=c.size)}else{let c=t[--i];c&&(r+=c.size)}let l=0;return t[e-1]==null?(l=1,e--):t[e]==null&&(l=1,i++),new Mr(Mi.of(t.slice(0,e)),l,Mi.of(t.slice(i)))}}function zn(s,t){return s==t?s:(s.constructor!=t.constructor&&(un=!0),t)}Mi.prototype.size=1;class Vs extends Mi{constructor(t,e,i){super(t,e),this.deco=i}blockAt(t,e,i,n){return new Ki(n,this.length,i,this.height,this.deco||0)}lineAt(t,e,i,n,r){return this.blockAt(0,i,n,r)}forEachLine(t,e,i,n,r,l){t<=r+this.length&&e>=r&&l(this.blockAt(0,i,n,r))}updateHeight(t,e=0,i=!1,n){return n&&n.from<=e&&n.more&&this.setHeight(n.heights[n.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class Bi extends Vs{constructor(t,e){super(t,e,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(t,e,i,n){return new Ki(n,this.length,i,this.height,this.breaks)}replace(t,e,i){let n=i[0];return i.length==1&&(n instanceof Bi||n instanceof Ti&&n.flags&4)&&Math.abs(this.length-n.length)<10?(n instanceof Ti?n=new Bi(n.length,this.height):n.height=this.height,this.outdated||(n.outdated=!1),n):Mi.of(i)}updateHeight(t,e=0,i=!1,n){return n&&n.from<=e&&n.more?this.setHeight(n.heights[n.index++]):(i||this.outdated)&&this.setHeight(Math.max(this.widgetHeight,t.heightForLine(this.length-this.collapsed))+this.breaks*t.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class Ti extends Mi{constructor(t){super(t,0)}heightMetrics(t,e){let i=t.doc.lineAt(e).number,n=t.doc.lineAt(e+this.length).number,r=n-i+1,l,c=0;if(t.lineWrapping){let p=Math.min(this.height,t.lineHeight*r);l=p/r,this.length>r+1&&(c=(this.height-p)/(this.length-r-1))}else l=this.height/r;return{firstLine:i,lastLine:n,perLine:l,perChar:c}}blockAt(t,e,i,n){let{firstLine:r,lastLine:l,perLine:c,perChar:p}=this.heightMetrics(e,n);if(e.lineWrapping){let k=n+(t<e.lineHeight?0:Math.round(Math.max(0,Math.min(1,(t-i)/this.height))*this.length)),v=e.doc.lineAt(k),R=c+v.length*p,W=Math.max(i,t-R/2);return new Ki(v.from,v.length,W,R,0)}else{let k=Math.max(0,Math.min(l-r,Math.floor((t-i)/c))),{from:v,length:R}=e.doc.line(r+k);return new Ki(v,R,i+c*k,c,0)}}lineAt(t,e,i,n,r){if(e==Ue.ByHeight)return this.blockAt(t,i,n,r);if(e==Ue.ByPosNoHeight){let{from:X,to:et}=i.doc.lineAt(t);return new Ki(X,et-X,0,0,0)}let{firstLine:l,perLine:c,perChar:p}=this.heightMetrics(i,r),k=i.doc.lineAt(t),v=c+k.length*p,R=k.number-l,W=n+c*R+p*(k.from-r-R);return new Ki(k.from,k.length,Math.max(n,Math.min(W,n+this.height-v)),v,0)}forEachLine(t,e,i,n,r,l){t=Math.max(t,r),e=Math.min(e,r+this.length);let{firstLine:c,perLine:p,perChar:k}=this.heightMetrics(i,r);for(let v=t,R=n;v<=e;){let W=i.doc.lineAt(v);if(v==t){let et=W.number-c;R+=p*et+k*(t-r-et)}let X=p+k*W.length;l(new Ki(W.from,W.length,R,X,0)),R+=X,v=W.to+1}}replace(t,e,i){let n=this.length-e;if(n>0){let r=i[i.length-1];r instanceof Ti?i[i.length-1]=new Ti(r.length+n):i.push(null,new Ti(n-1))}if(t>0){let r=i[0];r instanceof Ti?i[0]=new Ti(t+r.length):i.unshift(new Ti(t-1),null)}return Mi.of(i)}decomposeLeft(t,e){e.push(new Ti(t-1),null)}decomposeRight(t,e){e.push(null,new Ti(this.length-t-1))}updateHeight(t,e=0,i=!1,n){let r=e+this.length;if(n&&n.from<=e+this.length&&n.more){let l=[],c=Math.max(e,n.from),p=-1;for(n.from>e&&l.push(new Ti(n.from-e-1).updateHeight(t,e));c<=r&&n.more;){let v=t.doc.lineAt(c).length;l.length&&l.push(null);let R=n.heights[n.index++];p==-1?p=R:Math.abs(R-p)>=$n&&(p=-2);let W=new Bi(v,R);W.outdated=!1,l.push(W),c+=v+1}c<=r&&l.push(null,new Ti(r-c).updateHeight(t,c));let k=Mi.of(l);return(p<0||Math.abs(k.height-this.height)>=$n||Math.abs(p-this.heightMetrics(t,e).perLine)>=$n)&&(un=!0),zn(this,k)}else(i||this.outdated)&&(this.setHeight(t.heightForGap(e,e+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class Mr extends Mi{constructor(t,e,i){super(t.length+e+i.length,t.height+i.height,e|(t.outdated||i.outdated?2:0)),this.left=t,this.right=i,this.size=t.size+i.size}get break(){return this.flags&1}blockAt(t,e,i,n){let r=i+this.left.height;return t<r?this.left.blockAt(t,e,i,n):this.right.blockAt(t,e,r,n+this.left.length+this.break)}lineAt(t,e,i,n,r){let l=n+this.left.height,c=r+this.left.length+this.break,p=e==Ue.ByHeight?t<l:t<c,k=p?this.left.lineAt(t,e,i,n,r):this.right.lineAt(t,e,i,l,c);if(this.break||(p?k.to<c:k.from>c))return k;let v=e==Ue.ByPosNoHeight?Ue.ByPosNoHeight:Ue.ByPos;return p?k.join(this.right.lineAt(c,v,i,l,c)):this.left.lineAt(c,v,i,n,r).join(k)}forEachLine(t,e,i,n,r,l){let c=n+this.left.height,p=r+this.left.length+this.break;if(this.break)t<p&&this.left.forEachLine(t,e,i,n,r,l),e>=p&&this.right.forEachLine(t,e,i,c,p,l);else{let k=this.lineAt(p,Ue.ByPos,i,n,r);t<k.from&&this.left.forEachLine(t,k.from-1,i,n,r,l),k.to>=t&&k.from<=e&&l(k),e>k.to&&this.right.forEachLine(k.to+1,e,i,c,p,l)}}replace(t,e,i){let n=this.left.length+this.break;if(e<n)return this.balanced(this.left.replace(t,e,i),this.right);if(t>this.left.length)return this.balanced(this.left,this.right.replace(t-n,e-n,i));let r=[];t>0&&this.decomposeLeft(t,r);let l=r.length;for(let c of i)r.push(c);if(t>0&&$s(r,l-1),e<this.length){let c=r.length;this.decomposeRight(e,r),$s(r,c)}return Mi.of(r)}decomposeLeft(t,e){let i=this.left.length;if(t<=i)return this.left.decomposeLeft(t,e);e.push(this.left),this.break&&(i++,t>=i&&e.push(null)),t>i&&this.right.decomposeLeft(t-i,e)}decomposeRight(t,e){let i=this.left.length,n=i+this.break;if(t>=n)return this.right.decomposeRight(t-n,e);t<i&&this.left.decomposeRight(t,e),this.break&&t<n&&e.push(null),e.push(this.right)}balanced(t,e){return t.size>2*e.size||e.size>2*t.size?Mi.of(this.break?[t,null,e]:[t,e]):(this.left=zn(this.left,t),this.right=zn(this.right,e),this.setHeight(t.height+e.height),this.outdated=t.outdated||e.outdated,this.size=t.size+e.size,this.length=t.length+this.break+e.length,this)}updateHeight(t,e=0,i=!1,n){let{left:r,right:l}=this,c=e+r.length+this.break,p=null;return n&&n.from<=e+r.length&&n.more?p=r=r.updateHeight(t,e,i,n):r.updateHeight(t,e,i),n&&n.from<=c+l.length&&n.more?p=l=l.updateHeight(t,c,i,n):l.updateHeight(t,c,i),p?this.balanced(r,l):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function $s(s,t){let e,i;s[t]==null&&(e=s[t-1])instanceof Ti&&(i=s[t+1])instanceof Ti&&s.splice(t-1,3,new Ti(e.length+1+i.length))}const Dr=5;class bs{constructor(t,e){this.pos=t,this.oracle=e,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=t}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(t,e){if(this.lineStart>-1){let i=Math.min(e,this.lineEnd),n=this.nodes[this.nodes.length-1];n instanceof Bi?n.length+=i-this.pos:(i>this.pos||!this.isCovered)&&this.nodes.push(new Bi(i-this.pos,-1)),this.writtenTo=i,e>i&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=e}point(t,e,i){if(t<e||i.heightRelevant){let n=i.widget?i.widget.estimatedHeight:0,r=i.widget?i.widget.lineBreaks:0;n<0&&(n=this.oracle.lineHeight);let l=e-t;i.block?this.addBlock(new Vs(l,n,i)):(l||r||n>=Dr)&&this.addLineDeco(n,r,l)}else e>t&&this.span(t,e);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:t,to:e}=this.oracle.doc.lineAt(this.pos);this.lineStart=t,this.lineEnd=e,this.writtenTo<t&&((this.writtenTo<t-1||this.nodes[this.nodes.length-1]==null)&&this.nodes.push(this.blankContent(this.writtenTo,t-1)),this.nodes.push(null)),this.pos>t&&this.nodes.push(new Bi(this.pos-t,-1)),this.writtenTo=this.pos}blankContent(t,e){let i=new Ti(e-t);return this.oracle.doc.lineAt(t).to==e&&(i.flags|=4),i}ensureLine(){this.enterLine();let t=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(t instanceof Bi)return t;let e=new Bi(0,-1);return this.nodes.push(e),e}addBlock(t){this.enterLine();let e=t.deco;e&&e.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(t),this.writtenTo=this.pos=this.pos+t.length,e&&e.endSide>0&&(this.covering=t)}addLineDeco(t,e,i){let n=this.ensureLine();n.length+=i,n.collapsed+=i,n.widgetHeight=Math.max(n.widgetHeight,t),n.breaks+=e,this.writtenTo=this.pos=this.pos+i}finish(t){let e=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(e instanceof Bi)&&!this.isCovered?this.nodes.push(new Bi(0,-1)):(this.writtenTo<this.pos||e==null)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos));let i=t;for(let n of this.nodes)n instanceof Bi&&n.updateHeight(this.oracle,i),i+=n?n.length:1;return this.nodes}static build(t,e,i,n){let r=new bs(i,t);return P.Xs.spans(e,i,n,r,0),r.finish(i)}}function Or(s,t,e){let i=new Pr;return P.Xs.compare(s,t,e,i,0),i.changes}class Pr{constructor(){this.changes=[]}compareRange(){}comparePoint(t,e,i,n){(t<e||i&&i.heightRelevant||n&&n.heightRelevant)&&V(t,e,this.changes,5)}}function Er(s,t){let e=s.getBoundingClientRect(),i=s.ownerDocument,n=i.defaultView||window,r=Math.max(0,e.left),l=Math.min(n.innerWidth,e.right),c=Math.max(0,e.top),p=Math.min(n.innerHeight,e.bottom);for(let k=s.parentNode;k&&k!=i.body;)if(k.nodeType==1){let v=k,R=window.getComputedStyle(v);if((v.scrollHeight>v.clientHeight||v.scrollWidth>v.clientWidth)&&R.overflow!="visible"){let W=v.getBoundingClientRect();r=Math.max(r,W.left),l=Math.min(l,W.right),c=Math.max(c,W.top),p=Math.min(k==s.parentNode?n.innerHeight:p,W.bottom)}k=R.position=="absolute"||R.position=="fixed"?v.offsetParent:v.parentNode}else if(k.nodeType==11)k=k.host;else break;return{left:r-e.left,right:Math.max(r,l)-e.left,top:c-(e.top+t),bottom:Math.max(c,p)-(e.top+t)}}function Lr(s){let t=s.getBoundingClientRect(),e=s.ownerDocument.defaultView||window;return t.left<e.innerWidth&&t.right>0&&t.top<e.innerHeight&&t.bottom>0}function Rr(s,t){let e=s.getBoundingClientRect();return{left:0,right:e.right-e.left,top:t,bottom:e.bottom-(e.top+t)}}class ys{constructor(t,e,i,n){this.from=t,this.to=e,this.size=i,this.displaySize=n}static same(t,e){if(t.length!=e.length)return!1;for(let i=0;i<t.length;i++){let n=t[i],r=e[i];if(n.from!=r.from||n.to!=r.to||n.size!=r.size)return!1}return!0}draw(t,e){return Kt.replace({widget:new Br(this.displaySize*(e?t.scaleY:t.scaleX),e)}).range(this.from,this.to)}}class Br extends si{constructor(t,e){super(),this.size=t,this.vertical=e}eq(t){return t.size==this.size&&t.vertical==this.vertical}toDOM(){let t=document.createElement("div");return this.vertical?t.style.height=this.size+"px":(t.style.width=this.size+"px",t.style.height="2px",t.style.display="inline-block"),t}get estimatedHeight(){return this.vertical?this.size:-1}}class zs{constructor(t){this.state=t,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentDOMWidth=0,this.contentDOMHeight=0,this.editorHeight=0,this.editorWidth=0,this.scrollTop=0,this.scrolledToBottom=!1,this.scaleX=1,this.scaleY=1,this.scrollAnchorPos=0,this.scrollAnchorHeight=-1,this.scaler=js,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=wt.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let e=t.facet(ot).some(i=>typeof i!="function"&&i.class=="cm-lineWrapping");this.heightOracle=new Ws(e),this.stateDeco=t.facet(nt).filter(i=>typeof i!="function"),this.heightMap=Mi.empty().applyChanges(this.stateDeco,P.xv.empty,this.heightOracle.setDoc(t.doc),[new ai(0,0,0,t.doc.length)]);for(let i=0;i<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());i++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Kt.set(this.lineGaps.map(i=>i.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let t=[this.viewport],{main:e}=this.state.selection;for(let i=0;i<=1;i++){let n=i?e.head:e.anchor;if(!t.some(({from:r,to:l})=>n>=r&&n<=l)){let{from:r,to:l}=this.lineBlockAt(n);t.push(new jn(r,l))}}return this.viewports=t.sort((i,n)=>i.from-n.from),this.updateScaler()}updateScaler(){let t=this.scaler;return this.scaler=this.heightMap.height<=7e6?js:new ws(this.heightOracle,this.heightMap,this.viewports),t.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,t=>{this.viewportLines.push(Dn(t,this.scaler))})}update(t,e=null){this.state=t.state;let i=this.stateDeco;this.stateDeco=this.state.facet(nt).filter(v=>typeof v!="function");let n=t.changedRanges,r=ai.extendWithRanges(n,Or(i,this.stateDeco,t?t.changes:P.as.empty(this.state.doc.length))),l=this.heightMap.height,c=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);gs(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,t.startState.doc,this.heightOracle.setDoc(this.state.doc),r),(this.heightMap.height!=l||un)&&(t.flags|=2),c?(this.scrollAnchorPos=t.changes.mapPos(c.from,-1),this.scrollAnchorHeight=c.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=l);let p=r.length?this.mapViewport(this.viewport,t.changes):this.viewport;(e&&(e.range.head<p.from||e.range.head>p.to)||!this.viewportIsAppropriate(p))&&(p=this.getViewport(0,e));let k=p.from!=this.viewport.from||p.to!=this.viewport.to;this.viewport=p,t.flags|=this.updateForViewport(),(k||!t.changes.empty||t.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,t.changes))),t.flags|=this.computeVisibleRanges(t.changes),e&&(this.scrollTarget=e),!this.mustEnforceCursorAssoc&&t.selectionSet&&t.view.lineWrapping&&t.state.selection.main.empty&&t.state.selection.main.assoc&&!t.state.facet(Ve)&&(this.mustEnforceCursorAssoc=!0)}measure(t){let e=t.contentDOM,i=window.getComputedStyle(e),n=this.heightOracle,r=i.whiteSpace;this.defaultTextDirection=i.direction=="rtl"?wt.RTL:wt.LTR;let l=this.heightOracle.mustRefreshForWrapping(r),c=e.getBoundingClientRect(),p=l||this.mustMeasureContent||this.contentDOMHeight!=c.height;this.contentDOMHeight=c.height,this.mustMeasureContent=!1;let k=0,v=0;if(c.width&&c.height){let{scaleX:Yt,scaleY:ie}=ze(e,c);(Yt>.005&&Math.abs(this.scaleX-Yt)>.005||ie>.005&&Math.abs(this.scaleY-ie)>.005)&&(this.scaleX=Yt,this.scaleY=ie,k|=16,l=p=!0)}let R=(parseInt(i.paddingTop)||0)*this.scaleY,W=(parseInt(i.paddingBottom)||0)*this.scaleY;(this.paddingTop!=R||this.paddingBottom!=W)&&(this.paddingTop=R,this.paddingBottom=W,k|=18),this.editorWidth!=t.scrollDOM.clientWidth&&(n.lineWrapping&&(p=!0),this.editorWidth=t.scrollDOM.clientWidth,k|=16);let X=t.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=X&&(this.scrollAnchorHeight=-1,this.scrollTop=X),this.scrolledToBottom=di(t.scrollDOM);let et=(this.printing?Rr:Er)(e,this.paddingTop),ut=et.top-this.pixelViewport.top,dt=et.bottom-this.pixelViewport.bottom;this.pixelViewport=et;let pt=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(pt!=this.inView&&(this.inView=pt,pt&&(p=!0)),!this.inView&&!this.scrollTarget&&!Lr(t.dom))return 0;let $t=c.width;if((this.contentDOMWidth!=$t||this.editorHeight!=t.scrollDOM.clientHeight)&&(this.contentDOMWidth=c.width,this.editorHeight=t.scrollDOM.clientHeight,k|=16),p){let Yt=t.docView.measureVisibleLineHeights(this.viewport);if(n.mustRefreshForHeights(Yt)&&(l=!0),l||n.lineWrapping&&Math.abs($t-this.contentDOMWidth)>n.charWidth){let{lineHeight:ie,charWidth:ne,textHeight:ii}=t.docView.measureTextSize();l=ie>0&&n.refresh(r,ie,ne,ii,$t/ne,Yt),l&&(t.docView.minWidth=0,k|=16)}ut>0&&dt>0?v=Math.max(ut,dt):ut<0&&dt<0&&(v=Math.min(ut,dt)),gs();for(let ie of this.viewports){let ne=ie.from==this.viewport.from?Yt:t.docView.measureVisibleLineHeights(ie);this.heightMap=(l?Mi.empty().applyChanges(this.stateDeco,P.xv.empty,this.heightOracle,[new ai(0,0,0,t.state.doc.length)]):this.heightMap).updateHeight(n,0,l,new Hs(ie.from,ne))}un&&(k|=2)}let ee=!this.viewportIsAppropriate(this.viewport,v)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return ee&&(k&2&&(k|=this.updateScaler()),this.viewport=this.getViewport(v,this.scrollTarget),k|=this.updateForViewport()),(k&2||ee)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(l?[]:this.lineGaps,t)),k|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,t.docView.enforceCursorAssoc()),k}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(t,e){let i=.5-Math.max(-.5,Math.min(.5,t/1e3/2)),n=this.heightMap,r=this.heightOracle,{visibleTop:l,visibleBottom:c}=this,p=new jn(n.lineAt(l-i*1e3,Ue.ByHeight,r,0,0).from,n.lineAt(c+(1-i)*1e3,Ue.ByHeight,r,0,0).to);if(e){let{head:k}=e.range;if(k<p.from||k>p.to){let v=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),R=n.lineAt(k,Ue.ByPos,r,0,0),W;e.y=="center"?W=(R.top+R.bottom)/2-v/2:e.y=="start"||e.y=="nearest"&&k<p.from?W=R.top:W=R.bottom-v,p=new jn(n.lineAt(W-1e3/2,Ue.ByHeight,r,0,0).from,n.lineAt(W+v+1e3/2,Ue.ByHeight,r,0,0).to)}}return p}mapViewport(t,e){let i=e.mapPos(t.from,-1),n=e.mapPos(t.to,1);return new jn(this.heightMap.lineAt(i,Ue.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(n,Ue.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:t,to:e},i=0){if(!this.inView)return!0;let{top:n}=this.heightMap.lineAt(t,Ue.ByPos,this.heightOracle,0,0),{bottom:r}=this.heightMap.lineAt(e,Ue.ByPos,this.heightOracle,0,0),{visibleTop:l,visibleBottom:c}=this;return(t==0||n<=l-Math.max(10,Math.min(-i,250)))&&(e==this.state.doc.length||r>=c+Math.max(10,Math.min(i,250)))&&n>l-2*1e3&&r<c+2*1e3}mapLineGaps(t,e){if(!t.length||e.empty)return t;let i=[];for(let n of t)e.touchesRange(n.from,n.to)||i.push(new ys(e.mapPos(n.from),e.mapPos(n.to),n.size,n.displaySize));return i}ensureLineGaps(t,e){let i=this.heightOracle.lineWrapping,n=i?1e4:2e3,r=n>>1,l=n<<1;if(this.defaultTextDirection!=wt.LTR&&!i)return[];let c=[],p=(v,R,W,X)=>{if(R-v<r)return;let et=this.state.selection.main,ut=[et.from];et.empty||ut.push(et.to);for(let pt of ut)if(pt>v&&pt<R){p(v,pt-10,W,X),p(pt+10,R,W,X);return}let dt=Nr(t,pt=>pt.from>=W.from&&pt.to<=W.to&&Math.abs(pt.from-v)<r&&Math.abs(pt.to-R)<r&&!ut.some($t=>pt.from<$t&&pt.to>$t));if(!dt){if(R<W.to&&e&&i&&e.visibleRanges.some(ee=>ee.from<=R&&ee.to>=R)){let ee=e.moveToLineBoundary(P.jT.cursor(R),!1,!0).head;ee>v&&(R=ee)}let pt=this.gapSize(W,v,R,X),$t=i||pt<2e6?pt:2e6;dt=new ys(v,R,pt,$t)}c.push(dt)},k=v=>{if(v.length<l||v.type!=Gt.Text)return;let R=Ir(v.from,v.to,this.stateDeco);if(R.total<l)return;let W=this.scrollTarget?this.scrollTarget.range.head:null,X,et;if(i){let ut=n/this.heightOracle.lineLength*this.heightOracle.lineHeight,dt,pt;if(W!=null){let $t=Jn(R,W),ee=((this.visibleBottom-this.visibleTop)/2+ut)/v.height;dt=$t-ee,pt=$t+ee}else dt=(this.visibleTop-v.top-ut)/v.height,pt=(this.visibleBottom-v.top+ut)/v.height;X=_n(R,dt),et=_n(R,pt)}else{let ut=R.total*this.heightOracle.charWidth,dt=n*this.heightOracle.charWidth,pt=0;if(ut>2e6)for(let ne of t)ne.from>=v.from&&ne.from<v.to&&ne.size!=ne.displaySize&&ne.from*this.heightOracle.charWidth+pt<this.pixelViewport.left&&(pt=ne.size-ne.displaySize);let $t=this.pixelViewport.left+pt,ee=this.pixelViewport.right+pt,Yt,ie;if(W!=null){let ne=Jn(R,W),ii=((ee-$t)/2+dt)/ut;Yt=ne-ii,ie=ne+ii}else Yt=($t-dt)/ut,ie=(ee+dt)/ut;X=_n(R,Yt),et=_n(R,ie)}X>v.from&&p(v.from,X,v,R),et<v.to&&p(et,v.to,v,R)};for(let v of this.viewportLines)Array.isArray(v.type)?v.type.forEach(k):k(v);return c}gapSize(t,e,i,n){let r=Jn(n,i)-Jn(n,e);return this.heightOracle.lineWrapping?t.height*r:n.total*this.heightOracle.charWidth*r}updateLineGaps(t){ys.same(t,this.lineGaps)||(this.lineGaps=t,this.lineGapDeco=Kt.set(t.map(e=>e.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(t){let e=this.stateDeco;this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let i=[];P.Xs.spans(e,this.viewport.from,this.viewport.to,{span(r,l){i.push({from:r,to:l})},point(){}},20);let n=0;if(i.length!=this.visibleRanges.length)n=12;else for(let r=0;r<i.length&&!(n&8);r++){let l=this.visibleRanges[r],c=i[r];(l.from!=c.from||l.to!=c.to)&&(n|=4,t&&t.mapPos(l.from,-1)==c.from&&t.mapPos(l.to,1)==c.to||(n|=8))}return this.visibleRanges=i,n}lineBlockAt(t){return t>=this.viewport.from&&t<=this.viewport.to&&this.viewportLines.find(e=>e.from<=t&&e.to>=t)||Dn(this.heightMap.lineAt(t,Ue.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(t){return t>=this.viewportLines[0].top&&t<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(e=>e.top<=t&&e.bottom>=t)||Dn(this.heightMap.lineAt(this.scaler.fromDOM(t),Ue.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(t){let e=this.lineBlockAtHeight(t+8);return e.from>=this.viewport.from||this.viewportLines[0].top-t>200?e:this.viewportLines[0]}elementAtHeight(t){return Dn(this.heightMap.blockAt(this.scaler.fromDOM(t),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class jn{constructor(t,e){this.from=t,this.to=e}}function Ir(s,t,e){let i=[],n=s,r=0;return P.Xs.spans(e,s,t,{span(){},point(l,c){l>n&&(i.push({from:n,to:l}),r+=l-n),n=c}},20),n<t&&(i.push({from:n,to:t}),r+=t-n),{total:r,ranges:i}}function _n({total:s,ranges:t},e){if(e<=0)return t[0].from;if(e>=1)return t[t.length-1].to;let i=Math.floor(s*e);for(let n=0;;n++){let{from:r,to:l}=t[n],c=l-r;if(i<=c)return r+i;i-=c}}function Jn(s,t){let e=0;for(let{from:i,to:n}of s.ranges){if(t<=n){e+=t-i;break}e+=n-i}return e/s.total}function Nr(s,t){for(let e of s)if(t(e))return e}const js={toDOM(s){return s},fromDOM(s){return s},scale:1,eq(s){return s==this}};class ws{constructor(t,e,i){let n=0,r=0,l=0;this.viewports=i.map(({from:c,to:p})=>{let k=e.lineAt(c,Ue.ByPos,t,0,0).top,v=e.lineAt(p,Ue.ByPos,t,0,0).bottom;return n+=v-k,{from:c,to:p,top:k,bottom:v,domTop:0,domBottom:0}}),this.scale=(7e6-n)/(e.height-n);for(let c of this.viewports)c.domTop=l+(c.top-r)*this.scale,l=c.domBottom=c.domTop+(c.bottom-c.top),r=c.bottom}toDOM(t){for(let e=0,i=0,n=0;;e++){let r=e<this.viewports.length?this.viewports[e]:null;if(!r||t<r.top)return n+(t-i)*this.scale;if(t<=r.bottom)return r.domTop+(t-r.top);i=r.bottom,n=r.domBottom}}fromDOM(t){for(let e=0,i=0,n=0;;e++){let r=e<this.viewports.length?this.viewports[e]:null;if(!r||t<r.domTop)return i+(t-n)/this.scale;if(t<=r.domBottom)return r.top+(t-r.domTop);i=r.bottom,n=r.domBottom}}eq(t){return t instanceof ws?this.scale==t.scale&&this.viewports.length==t.viewports.length&&this.viewports.every((e,i)=>e.from==t.viewports[i].from&&e.to==t.viewports[i].to):!1}}function Dn(s,t){if(t.scale==1)return s;let e=t.toDOM(s.top),i=t.toDOM(s.bottom);return new Ki(s.from,s.length,e,i-e,Array.isArray(s._content)?s._content.map(n=>Dn(n,t)):s._content)}const qn=P.r$.define({combine:s=>s.join(" ")}),vs=P.r$.define({combine:s=>s.indexOf(!0)>-1}),xs=Q.V.newName(),_s=Q.V.newName(),Js=Q.V.newName(),qs={"&light":"."+_s,"&dark":"."+Js};function ks(s,t,e){return new Q.V(t,{finish(i){return/&/.test(i)?i.replace(/&\w*/,n=>{if(n=="&")return s;if(!e||!e[n])throw new RangeError(`Unsupported selector: ${n}`);return e[n]}):s+" "+i}})}const Fr=ks("."+xs,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},qs),Wr={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Ss=yt.ie&&yt.ie_version<=11;class Hr{constructor(t){this.view=t,this.active=!1,this.editContext=null,this.selectionRange=new ni,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=t.contentDOM,this.observer=new MutationObserver(e=>{for(let i of e)this.queue.push(i);(yt.ie&&yt.ie_version<=11||yt.ios&&t.composing)&&e.some(i=>i.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&yt.android&&t.constructor.EDIT_CONTEXT!==!1&&!(yt.chrome&&yt.chrome_version<126)&&(this.editContext=new $r(t),t.state.facet(g)&&(t.contentDOM.editContext=this.editContext.editContext)),Ss&&(this.onCharData=e=>{this.queue.push({target:e.target,type:"characterData",oldValue:e.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var e;((e=this.view.docView)===null||e===void 0?void 0:e.lastUpdate)<Date.now()-75&&this.onResize()}),this.resizeScroll.observe(t.scrollDOM)),this.addWindowListeners(this.win=t.win),this.start(),typeof IntersectionObserver=="function"&&(this.intersection=new IntersectionObserver(e=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),e.length>0&&e[e.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(e=>{e.length>0&&e[e.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(t){this.view.inputState.runHandlers("scroll",t),this.intersecting&&this.view.measure()}onScroll(t){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(t)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(t){(t.type=="change"||!t.type)&&!t.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(t){if(this.gapIntersection&&(t.length!=this.gaps.length||this.gaps.some((e,i)=>e!=t[i]))){this.gapIntersection.disconnect();for(let e of t)this.gapIntersection.observe(e);this.gaps=t}}onSelectionChange(t){let e=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,n=this.selectionRange;if(i.state.facet(g)?i.root.activeElement!=this.dom:!Ce(this.dom,n))return;let r=n.anchorNode&&i.docView.nearest(n.anchorNode);if(r&&r.ignoreEvent(t)){e||(this.selectionChanged=!1);return}(yt.ie&&yt.ie_version<=11||yt.android&&yt.chrome)&&!i.state.selection.main.empty&&n.focusNode&&Oe(n.focusNode,n.focusOffset,n.anchorNode,n.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:t}=this,e=kt(t.root);if(!e)return!1;let i=yt.safari&&t.root.nodeType==11&&t.root.activeElement==this.dom&&Vr(this.view,e)||e;if(!i||this.selectionRange.eq(i))return!1;let n=Ce(this.dom,i);return n&&!this.selectionChanged&&t.inputState.lastFocusTime>Date.now()-200&&t.inputState.lastTouchTime<Date.now()-300&&Je(this.dom,i)?(this.view.inputState.lastFocusTime=0,t.docView.updateSelection(),!1):(this.selectionRange.setRange(i),n&&(this.selectionChanged=!0),!0)}setSelectionRange(t,e){this.selectionRange.set(t.node,t.offset,e.node,e.offset),this.selectionChanged=!1}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let t=0,e=null;for(let i=this.dom;i;)if(i.nodeType==1)!e&&t<this.scrollTargets.length&&this.scrollTargets[t]==i?t++:e||(e=this.scrollTargets.slice(0,t)),e&&e.push(i),i=i.assignedSlot||i.parentNode;else if(i.nodeType==11)i=i.host;else break;if(t<this.scrollTargets.length&&!e&&(e=this.scrollTargets.slice(0,t)),e){for(let i of this.scrollTargets)i.removeEventListener("scroll",this.onScroll);for(let i of this.scrollTargets=e)i.addEventListener("scroll",this.onScroll)}}ignore(t){if(!this.active)return t();try{return this.stop(),t()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,Wr),Ss&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),Ss&&this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData))}clear(){this.processRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(t,e){var i;if(!this.delayedAndroidKey){let n=()=>{let r=this.delayedAndroidKey;r&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=r.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&r.force&&Pt(this.dom,r.key,r.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(n)}(!this.delayedAndroidKey||t=="Enter")&&(this.delayedAndroidKey={key:t,keyCode:e,force:this.lastChange<Date.now()-50||!!(!((i=this.delayedAndroidKey)===null||i===void 0)&&i.force)})}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey),this.delayedAndroidKey=null,this.flushingAndroidKey=-1}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=this.view.win.requestAnimationFrame(()=>{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let t of this.observer.takeRecords())this.queue.push(t);return this.queue}processRecords(){let t=this.pendingRecords();t.length&&(this.queue=[]);let e=-1,i=-1,n=!1;for(let r of t){let l=this.readMutation(r);l&&(l.typeOver&&(n=!0),e==-1?{from:e,to:i}=l:(e=Math.min(l.from,e),i=Math.max(l.to,i)))}return{from:e,to:i,typeOver:n}}readChange(){let{from:t,to:e,typeOver:i}=this.processRecords(),n=this.selectionChanged&&Ce(this.dom,this.selectionRange);if(t<0&&!n)return null;t>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let r=new cs(this.view,t,e,i);return this.view.docView.domChanged={newSel:r.newSel?r.newSel.main:null},r}flush(t=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;t&&this.readSelectionRange();let e=this.readChange();if(!e)return this.view.requestMeasure(),!1;let i=this.view.state,n=Sn(this.view,e);return this.view.state==i&&(e.domChanged||e.newSel&&!e.newSel.main.eq(this.view.state.selection.main))&&this.view.update([]),n}readMutation(t){let e=this.view.docView.nearest(t.target);if(!e||e.ignoreMutation(t))return null;if(e.markDirty(t.type=="attributes"),t.type=="attributes"&&(e.flags|=4),t.type=="childList"){let i=Ks(e,t.previousSibling||t.target.previousSibling,-1),n=Ks(e,t.nextSibling||t.target.nextSibling,1);return{from:i?e.posAfter(i):e.posAtStart,to:n?e.posBefore(n):e.posAtEnd,typeOver:!1}}else return t.type=="characterData"?{from:e.posAtStart,to:e.posAtEnd,typeOver:t.target.nodeValue==t.oldValue}:null}setWindow(t){t!=this.win&&(this.removeWindowListeners(this.win),this.win=t,this.addWindowListeners(this.win))}addWindowListeners(t){t.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):t.addEventListener("beforeprint",this.onPrint),t.addEventListener("scroll",this.onScroll),t.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(t){t.removeEventListener("scroll",this.onScroll),t.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):t.removeEventListener("beforeprint",this.onPrint),t.document.removeEventListener("selectionchange",this.onSelectionChange)}update(t){this.editContext&&(this.editContext.update(t),t.startState.facet(g)!=t.state.facet(g)&&(t.view.contentDOM.editContext=t.state.facet(g)?this.editContext.editContext:null))}destroy(){var t,e,i;this.stop(),(t=this.intersection)===null||t===void 0||t.disconnect(),(e=this.gapIntersection)===null||e===void 0||e.disconnect(),(i=this.resizeScroll)===null||i===void 0||i.disconnect();for(let n of this.scrollTargets)n.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}}function Ks(s,t,e){for(;t;){let i=te.get(t);if(i&&i.parent==s)return i;let n=t.parentNode;t=n!=s.dom?n:e>0?t.nextSibling:t.previousSibling}return null}function Us(s,t){let e=t.startContainer,i=t.startOffset,n=t.endContainer,r=t.endOffset,l=s.docView.domAtPos(s.state.selection.main.anchor);return Oe(l.node,l.offset,n,r)&&([e,i,n,r]=[n,r,e,i]),{anchorNode:e,anchorOffset:i,focusNode:n,focusOffset:r}}function Vr(s,t){if(t.getComposedRanges){let n=t.getComposedRanges(s.root)[0];if(n)return Us(s,n)}let e=null;function i(n){n.preventDefault(),n.stopImmediatePropagation(),e=n.getTargetRanges()[0]}return s.contentDOM.addEventListener("beforeinput",i,!0),s.dom.ownerDocument.execCommand("indent"),s.contentDOM.removeEventListener("beforeinput",i,!0),e?Us(s,e):null}class $r{constructor(t){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(t.state);let e=this.editContext=new window.EditContext({text:t.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,t.state.selection.main.anchor))),selectionEnd:this.toContextPos(t.state.selection.main.head)});this.handlers.textupdate=i=>{let n=t.state.selection.main,{anchor:r,head:l}=n,c=this.toEditorPos(i.updateRangeStart),p=this.toEditorPos(i.updateRangeEnd);t.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:i.updateRangeStart,editorBase:c,drifted:!1});let k={from:c,to:p,insert:P.xv.of(i.text.split(`
|
|
25
|
+
`))};if(k.from==this.from&&r<this.from?k.from=r:k.to==this.to&&r>this.to&&(k.to=r),k.from==k.to&&!k.insert.length){let v=P.jT.single(this.toEditorPos(i.selectionStart),this.toEditorPos(i.selectionEnd));v.main.eq(n)||t.dispatch({selection:v,userEvent:"select"});return}if((yt.mac||yt.android)&&k.from==l-1&&/^\. ?$/.test(i.text)&&t.contentDOM.getAttribute("autocorrect")=="off"&&(k={from:c,to:p,insert:P.xv.of([i.text.replace("."," ")])}),this.pendingContextChange=k,!t.state.readOnly){let v=this.to-this.from+(k.to-k.from+k.insert.length);gn(t,k,P.jT.single(this.toEditorPos(i.selectionStart,v),this.toEditorPos(i.selectionEnd,v)))}this.pendingContextChange&&(this.revertPending(t.state),this.setSelection(t.state))},this.handlers.characterboundsupdate=i=>{let n=[],r=null;for(let l=this.toEditorPos(i.rangeStart),c=this.toEditorPos(i.rangeEnd);l<c;l++){let p=t.coordsForChar(l);r=p&&new DOMRect(p.left,p.top,p.right-p.left,p.bottom-p.top)||r||new DOMRect,n.push(r)}e.updateCharacterBounds(i.rangeStart,n)},this.handlers.textformatupdate=i=>{let n=[];for(let r of i.getTextFormats()){let l=r.underlineStyle,c=r.underlineThickness;if(l!="None"&&c!="None"){let p=this.toEditorPos(r.rangeStart),k=this.toEditorPos(r.rangeEnd);if(p<k){let v=`text-decoration: underline ${l=="Dashed"?"dashed ":l=="Squiggle"?"wavy ":""}${c=="Thin"?1:2}px`;n.push(Kt.mark({attributes:{style:v}}).range(p,k))}}}t.dispatch({effects:Xi.of(Kt.set(n))})},this.handlers.compositionstart=()=>{t.inputState.composing<0&&(t.inputState.composing=0,t.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(t.inputState.composing=-1,t.inputState.compositionFirstChange=null,this.composing){let{drifted:i}=this.composing;this.composing=null,i&&this.reset(t.state)}};for(let i in this.handlers)e.addEventListener(i,this.handlers[i]);this.measureReq={read:i=>{this.editContext.updateControlBounds(i.contentDOM.getBoundingClientRect());let n=kt(i.root);n&&n.rangeCount&&this.editContext.updateSelectionBounds(n.getRangeAt(0).getBoundingClientRect())}}}applyEdits(t){let e=0,i=!1,n=this.pendingContextChange;return t.changes.iterChanges((r,l,c,p,k)=>{if(i)return;let v=k.length-(l-r);if(n&&l>=n.to)if(n.from==r&&n.to==l&&n.insert.eq(k)){n=this.pendingContextChange=null,e+=v,this.to+=v;return}else n=null,this.revertPending(t.state);if(r+=e,l+=e,l<=this.from)this.from+=v,this.to+=v;else if(r<this.to){if(r<this.from||l>this.to||this.to-this.from+k.length>3e4){i=!0;return}this.editContext.updateText(this.toContextPos(r),this.toContextPos(l),k.toString()),this.to+=v}e+=v}),n&&!i&&this.revertPending(t.state),!i}update(t){let e=this.pendingContextChange,i=t.startState.selection.main;this.composing&&(this.composing.drifted||!t.changes.touchesRange(i.from,i.to)&&t.transactions.some(n=>!n.isUserEvent("input.type")&&n.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=t.changes.mapPos(this.composing.editorBase)):!this.applyEdits(t)||!this.rangeIsValid(t.state)?(this.pendingContextChange=null,this.reset(t.state)):(t.docChanged||t.selectionSet||e)&&this.setSelection(t.state),(t.geometryChanged||t.docChanged||t.selectionSet)&&t.view.requestMeasure(this.measureReq)}resetRange(t){let{head:e}=t.selection.main;this.from=Math.max(0,e-1e4),this.to=Math.min(t.doc.length,e+1e4)}reset(t){this.resetRange(t),this.editContext.updateText(0,this.editContext.text.length,t.doc.sliceString(this.from,this.to)),this.setSelection(t)}revertPending(t){let e=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(e.from),this.toContextPos(e.from+e.insert.length),t.doc.sliceString(e.from,e.to))}setSelection(t){let{main:e}=t.selection,i=this.toContextPos(Math.max(this.from,Math.min(this.to,e.anchor))),n=this.toContextPos(e.head);(this.editContext.selectionStart!=i||this.editContext.selectionEnd!=n)&&this.editContext.updateSelection(i,n)}rangeIsValid(t){let{head:e}=t.selection.main;return!(this.from>0&&e-this.from<500||this.to<t.doc.length&&this.to-e<500||this.to-this.from>1e4*3)}toEditorPos(t,e=this.to-this.from){t=Math.min(t,e);let i=this.composing;return i&&i.drifted?i.editorBase+(t-i.contextBase):t+this.from}toContextPos(t){let e=this.composing;return e&&e.drifted?e.contextBase+(t-e.editorBase):t-this.from}destroy(){for(let t in this.handlers)this.editContext.removeEventListener(t,this.handlers[t])}}class xe{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(t={}){var e;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),t.parent&&t.parent.appendChild(this.dom);let{dispatch:i}=t;this.dispatchTransactions=t.dispatchTransactions||i&&(n=>n.forEach(r=>i(r,this)))||(n=>this.update(n)),this.dispatch=this.dispatch.bind(this),this._root=t.root||re(t.parent)||document,this.viewState=new zs(t.state||P.yy.create(t)),t.scrollTo&&t.scrollTo.is(Wi)&&(this.viewState.scrollTarget=t.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(E).map(n=>new _(n));for(let n of this.plugins)n.update(this);this.observer=new Hr(this),this.inputState=new Cn(this),this.inputState.ensureHandlers(this.plugins),this.docView=new _e(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((e=document.fonts)===null||e===void 0)&&e.ready&&document.fonts.ready.then(()=>this.requestMeasure())}dispatch(...t){let e=t.length==1&&t[0]instanceof P.YW?t:t.length==1&&Array.isArray(t[0])?t[0]:[this.state.update(...t)];this.dispatchTransactions(e,this)}update(t){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let e=!1,i=!1,n,r=this.state;for(let W of t){if(W.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=W.state}if(this.destroyed){this.viewState.state=r;return}let l=this.hasFocus,c=0,p=null;t.some(W=>W.annotation(qi))?(this.inputState.notifiedFocused=l,c=1):l!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=l,p=fn(r,l),p||(c=1));let k=this.observer.delayedAndroidKey,v=null;if(k?(this.observer.clearDelayedAndroidKey(),v=this.observer.readChange(),(v&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(v=null)):this.observer.clear(),r.facet(P.yy.phrases)!=this.state.facet(P.yy.phrases))return this.setState(r);n=xi.create(this,r,t),n.flags|=c;let R=this.viewState.scrollTarget;try{this.updateState=2;for(let W of t){if(R&&(R=R.map(W.changes)),W.scrollIntoView){let{main:X}=W.state.selection;R=new Fi(X.empty?X:P.jT.cursor(X.head,X.head>X.anchor?-1:1))}for(let X of W.effects)X.is(Wi)&&(R=X.value.clip(this.state))}this.viewState.update(n,R),this.bidiCache=Kn.update(this.bidiCache,n.changes),n.empty||(this.updatePlugins(n),this.inputState.update(n)),e=this.docView.update(n),this.state.facet(ti)!=this.styleModules&&this.mountStyles(),i=this.updateAttrs(),this.showAnnouncements(t),this.docView.updateSelection(e,t.some(W=>W.isUserEvent("select.pointer")))}finally{this.updateState=0}if(n.startState.facet(qn)!=n.state.facet(qn)&&(this.viewState.mustMeasureContent=!0),(e||i||R||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),e&&this.docViewUpdate(),!n.empty)for(let W of this.state.facet(mt))try{W(n)}catch(X){M(this.state,X,"update listener")}(p||v)&&Promise.resolve().then(()=>{p&&this.state==p.startState&&this.dispatch(p),v&&!Sn(this,v)&&k.force&&Pt(this.contentDOM,k.key,k.keyCode)})}setState(t){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=t;return}this.updateState=2;let e=this.hasFocus;try{for(let i of this.plugins)i.destroy(this);this.viewState=new zs(t),this.plugins=t.facet(E).map(i=>new _(i)),this.pluginMap.clear();for(let i of this.plugins)i.update(this);this.docView.destroy(),this.docView=new _e(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}e&&this.focus(),this.requestMeasure()}updatePlugins(t){let e=t.startState.facet(E),i=t.state.facet(E);if(e!=i){let n=[];for(let r of i){let l=e.indexOf(r);if(l<0)n.push(new _(r));else{let c=this.plugins[l];c.mustUpdate=t,n.push(c)}}for(let r of this.plugins)r.mustUpdate!=t&&r.destroy(this);this.plugins=n,this.pluginMap.clear()}else for(let n of this.plugins)n.mustUpdate=t;for(let n=0;n<this.plugins.length;n++)this.plugins[n].update(this);e!=i&&this.inputState.ensureHandlers(this.plugins)}docViewUpdate(){for(let t of this.plugins){let e=t.value;if(e&&e.docViewUpdate)try{e.docViewUpdate(this)}catch(i){M(this.state,i,"doc view update listener")}}}measure(t=!0){if(this.destroyed)return;if(this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,t&&this.observer.forceFlush();let e=null,i=this.scrollDOM,n=i.scrollTop*this.scaleY,{scrollAnchorPos:r,scrollAnchorHeight:l}=this.viewState;Math.abs(n-this.viewState.scrollTop)>1&&(l=-1),this.viewState.scrollAnchorHeight=-1;try{for(let c=0;;c++){if(l<0)if(di(i))r=-1,l=this.viewState.heightMap.height;else{let X=this.viewState.scrollAnchorAt(n);r=X.from,l=X.top}this.updateState=1;let p=this.viewState.measure(this);if(!p&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(c>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let k=[];p&4||([this.measureRequests,k]=[k,this.measureRequests]);let v=k.map(X=>{try{return X.read(this)}catch(et){return M(this.state,et),Xs}}),R=xi.create(this,this.state,[]),W=!1;R.flags|=p,e?e.flags|=p:e=R,this.updateState=2,R.empty||(this.updatePlugins(R),this.inputState.update(R),this.updateAttrs(),W=this.docView.update(R),W&&this.docViewUpdate());for(let X=0;X<k.length;X++)if(v[X]!=Xs)try{let et=k[X];et.write&&et.write(v[X],this)}catch(et){M(this.state,et)}if(W&&this.docView.updateSelection(!0),!R.viewportChanged&&this.measureRequests.length==0){if(this.viewState.editorHeight)if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,l=-1;continue}else{let et=(r<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(r).top)-l;if(et>1||et<-1){n=n+et,i.scrollTop=n/this.scaleY,l=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(e&&!e.empty)for(let c of this.state.facet(mt))c(e)}get themeClasses(){return xs+" "+(this.state.facet(vs)?Js:_s)+" "+this.state.facet(qn)}updateAttrs(){let t=Gs(this,Y,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),e={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(g)?"true":"false",class:"cm-content",style:`${yt.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(e["aria-readonly"]="true"),Gs(this,ot,e);let i=this.observer.ignore(()=>{let n=ge(this.contentDOM,this.contentAttrs,e),r=ge(this.dom,this.editorAttrs,t);return n||r});return this.editorAttrs=t,this.contentAttrs=e,i}showAnnouncements(t){let e=!0;for(let i of t)for(let n of i.effects)if(n.is(xe.announce)){e&&(this.announceDOM.textContent=""),e=!1;let r=this.announceDOM.appendChild(document.createElement("div"));r.textContent=n.value}}mountStyles(){this.styleModules=this.state.facet(ti);let t=this.state.facet(xe.cspNonce);Q.V.mount(this.root,this.styleModules.concat(Fr).reverse(),t?{nonce:t}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(t){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),t){if(this.measureRequests.indexOf(t)>-1)return;if(t.key!=null){for(let e=0;e<this.measureRequests.length;e++)if(this.measureRequests[e].key===t.key){this.measureRequests[e]=t;return}}this.measureRequests.push(t)}}plugin(t){let e=this.pluginMap.get(t);return(e===void 0||e&&e.plugin!=t)&&this.pluginMap.set(t,e=this.plugins.find(i=>i.plugin==t)||null),e&&e.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(t){return this.readMeasured(),this.viewState.elementAtHeight(t)}lineBlockAtHeight(t){return this.readMeasured(),this.viewState.lineBlockAtHeight(t)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(t){return this.viewState.lineBlockAt(t)}get contentHeight(){return this.viewState.contentHeight}moveByChar(t,e,i){return an(this,t,xn(this,t,e,i))}moveByGroup(t,e){return an(this,t,xn(this,t,e,i=>as(this,t.head,i)))}visualLineSide(t,e){let i=this.bidiSpans(t),n=this.textDirectionAt(t.from),r=i[e?i.length-1:0];return P.jT.cursor(r.side(e,n)+t.from,r.forward(!e,n)?1:-1)}moveToLineBoundary(t,e,i=!0){return ln(this,t,e,i)}moveVertically(t,e,i){return an(this,t,hs(this,t,e,i))}domAtPos(t){return this.docView.domAtPos(t)}posAtDOM(t,e=0){return this.docView.posFromDOM(t,e)}posAtCoords(t,e=!0){return this.readMeasured(),ki(this,t,e)}coordsAtPos(t,e=1){this.readMeasured();let i=this.docView.coordsAt(t,e);if(!i||i.left==i.right)return i;let n=this.state.doc.lineAt(t),r=this.bidiSpans(n),l=r[fi.find(r,t-n.from,-1,e)];return _t(i,l.dir==wt.LTR==e>0)}coordsForChar(t){return this.readMeasured(),this.docView.coordsForChar(t)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(t){return!this.state.facet(bi)||t<this.viewport.from||t>this.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(t))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(t){if(t.length>zr)return a(t.length);let e=this.textDirectionAt(t.from),i;for(let r of this.bidiCache)if(r.from==t.from&&r.dir==e&&(r.fresh||Ii(r.isolates,i=he(this,t))))return r.order;i||(i=he(this,t));let n=o(t.text,e,i);return this.bidiCache.push(new Kn(t.from,t.to,e,i,!0,n)),n}get hasFocus(){var t;return(this.dom.ownerDocument.hasFocus()||yt.safari&&((t=this.inputState)===null||t===void 0?void 0:t.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{Me(this.contentDOM),this.docView.updateSelection()})}setRoot(t){this._root!=t&&(this._root=t,this.observer.setWindow((t.nodeType==9?t:t.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let t of this.plugins)t.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(t,e={}){return Wi.of(new Fi(typeof t=="number"?P.jT.cursor(t):t,e.y,e.x,e.yMargin,e.xMargin))}scrollSnapshot(){let{scrollTop:t,scrollLeft:e}=this.scrollDOM,i=this.viewState.scrollAnchorAt(t);return Wi.of(new Fi(P.jT.cursor(i.from),"start","start",i.top-t,e,!0))}setTabFocusMode(t){t==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof t=="boolean"?this.inputState.tabFocusMode=t?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+t)}static domEventHandlers(t){return B.define(()=>({}),{eventHandlers:t})}static domEventObservers(t){return B.define(()=>({}),{eventObservers:t})}static theme(t,e){let i=Q.V.newName(),n=[qn.of(i),ti.of(ks(`.${i}`,t))];return e&&e.dark&&n.push(vs.of(!0)),n}static baseTheme(t){return P.Wl.lowest(ti.of(ks("."+xs,t,qs)))}static findFromDOM(t){var e;let i=t.querySelector(".cm-content"),n=i&&te.get(i)||te.get(t);return((e=n==null?void 0:n.rootView)===null||e===void 0?void 0:e.view)||null}}xe.styleModule=ti,xe.inputHandler=xt,xe.clipboardInputFilter=Rt,xe.clipboardOutputFilter=De,xe.scrollHandler=Vi,xe.focusChangeEffect=Lt,xe.perLineTextDirection=bi,xe.exceptionSink=st,xe.updateListener=mt,xe.editable=g,xe.mouseSelectionStyle=J,xe.dragMovesSelection=N,xe.clickAddsSelectionRange=A,xe.decorations=nt,xe.outerDecorations=vt,xe.atomicRanges=gt,xe.bidiIsolatedRanges=Nt,xe.scrollMargins=Se,xe.darkTheme=vs,xe.cspNonce=P.r$.define({combine:s=>s.length?s[0]:""}),xe.contentAttributes=ot,xe.editorAttributes=Y,xe.lineWrapping=xe.contentAttributes.of({class:"cm-lineWrapping"}),xe.announce=P.Py.define();const zr=4096,Xs={};class Kn{constructor(t,e,i,n,r,l){this.from=t,this.to=e,this.dir=i,this.isolates=n,this.fresh=r,this.order=l}static update(t,e){if(e.empty&&!t.some(r=>r.fresh))return t;let i=[],n=t.length?t[t.length-1].dir:wt.LTR;for(let r=Math.max(0,t.length-10);r<t.length;r++){let l=t[r];l.dir==n&&!e.touchesRange(l.from,l.to)&&i.push(new Kn(e.mapPos(l.from,1),e.mapPos(l.to,-1),l.dir,l.isolates,!1,l.order))}return i}}function Gs(s,t,e){for(let i=s.state.facet(t),n=i.length-1;n>=0;n--){let r=i[n],l=typeof r=="function"?r(s):r;l&&ue(l,e)}return e}const jr=yt.mac?"mac":yt.windows?"win":yt.linux?"linux":"key";function _r(s,t){const e=s.split(/-(?!$)/);let i=e[e.length-1];i=="Space"&&(i=" ");let n,r,l,c;for(let p=0;p<e.length-1;++p){const k=e[p];if(/^(cmd|meta|m)$/i.test(k))c=!0;else if(/^a(lt)?$/i.test(k))n=!0;else if(/^(c|ctrl|control)$/i.test(k))r=!0;else if(/^s(hift)?$/i.test(k))l=!0;else if(/^mod$/i.test(k))t=="mac"?c=!0:r=!0;else throw new Error("Unrecognized modifier name: "+k)}return n&&(i="Alt-"+i),r&&(i="Ctrl-"+i),c&&(i="Meta-"+i),l&&(i="Shift-"+i),i}function Un(s,t,e){return t.altKey&&(s="Alt-"+s),t.ctrlKey&&(s="Ctrl-"+s),t.metaKey&&(s="Meta-"+s),e!==!1&&t.shiftKey&&(s="Shift-"+s),s}const Jr=P.Wl.default(xe.domEventHandlers({keydown(s,t){return tr(Zs(t.state),s,t,"editor")}})),Ys=P.r$.define({enables:Jr}),Qs=new WeakMap;function Zs(s){let t=s.facet(Ys),e=Qs.get(t);return e||Qs.set(t,e=Ur(t.reduce((i,n)=>i.concat(n),[]))),e}function qr(s,t,e){return tr(Zs(s.state),t,s,e)}let sn=null;const Kr=4e3;function Ur(s,t=jr){let e=Object.create(null),i=Object.create(null),n=(l,c)=>{let p=i[l];if(p==null)i[l]=c;else if(p!=c)throw new Error("Key binding "+l+" is used both as a regular binding and as a multi-stroke prefix")},r=(l,c,p,k,v)=>{var R,W;let X=e[l]||(e[l]=Object.create(null)),et=c.split(/ (?!$)/).map(pt=>_r(pt,t));for(let pt=1;pt<et.length;pt++){let $t=et.slice(0,pt).join(" ");n($t,!0),X[$t]||(X[$t]={preventDefault:!0,stopPropagation:!1,run:[ee=>{let Yt=sn={view:ee,prefix:$t,scope:l};return setTimeout(()=>{sn==Yt&&(sn=null)},Kr),!0}]})}let ut=et.join(" ");n(ut,!1);let dt=X[ut]||(X[ut]={preventDefault:!1,stopPropagation:!1,run:((W=(R=X._any)===null||R===void 0?void 0:R.run)===null||W===void 0?void 0:W.slice())||[]});p&&dt.run.push(p),k&&(dt.preventDefault=!0),v&&(dt.stopPropagation=!0)};for(let l of s){let c=l.scope?l.scope.split(" "):["editor"];if(l.any)for(let k of c){let v=e[k]||(e[k]=Object.create(null));v._any||(v._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:R}=l;for(let W in v)v[W].run.push(X=>R(X,Cs))}let p=l[t]||l.key;if(p)for(let k of c)r(k,p,l.run,l.preventDefault,l.stopPropagation),l.shift&&r(k,"Shift-"+p,l.shift,l.preventDefault,l.stopPropagation)}return e}let Cs=null;function tr(s,t,e,i){Cs=t;let n=(0,Z.YG)(t),r=(0,P.gm)(n,0),l=(0,P.nZ)(r)==n.length&&n!=" ",c="",p=!1,k=!1,v=!1;sn&&sn.view==e&&sn.scope==i&&(c=sn.prefix+" ",Fn.indexOf(t.keyCode)<0&&(k=!0,sn=null));let R=new Set,W=dt=>{if(dt){for(let pt of dt.run)if(!R.has(pt)&&(R.add(pt),pt(e)))return dt.stopPropagation&&(v=!0),!0;dt.preventDefault&&(dt.stopPropagation&&(v=!0),k=!0)}return!1},X=s[i],et,ut;return X&&(W(X[c+Un(n,t,!l)])?p=!0:l&&(t.altKey||t.metaKey||t.ctrlKey)&&!(yt.windows&&t.ctrlKey&&t.altKey)&&(et=Z.ue[t.keyCode])&&et!=n?(W(X[c+Un(et,t,!0)])||t.shiftKey&&(ut=Z.uY[t.keyCode])!=n&&ut!=et&&W(X[c+Un(ut,t,!1)]))&&(p=!0):l&&t.shiftKey&&W(X[c+Un(n,t,!0)])&&(p=!0),!p&&W(X._any)&&(p=!0)),k&&(p=!0),p&&v&&t.stopPropagation(),Cs=null,p}class On{constructor(t,e,i,n,r){this.className=t,this.left=e,this.top=i,this.width=n,this.height=r}draw(){let t=document.createElement("div");return t.className=this.className,this.adjust(t),t}update(t,e){return e.className!=this.className?!1:(this.adjust(t),!0)}adjust(t){t.style.left=this.left+"px",t.style.top=this.top+"px",this.width!=null&&(t.style.width=this.width+"px"),t.style.height=this.height+"px"}eq(t){return this.left==t.left&&this.top==t.top&&this.width==t.width&&this.height==t.height&&this.className==t.className}static forRange(t,e,i){if(i.empty){let n=t.coordsAtPos(i.head,i.assoc||1);if(!n)return[];let r=er(t);return[new On(e,n.left-r.left,n.top-r.top,null,n.bottom-n.top)]}else return Xr(t,e,i)}}function er(s){let t=s.scrollDOM.getBoundingClientRect();return{left:(s.textDirection==wt.LTR?t.left:t.right-s.scrollDOM.clientWidth*s.scaleX)-s.scrollDOM.scrollLeft*s.scaleX,top:t.top-s.scrollDOM.scrollTop*s.scaleY}}function ir(s,t,e,i){let n=s.coordsAtPos(t,e*2);if(!n)return i;let r=s.dom.getBoundingClientRect(),l=(n.top+n.bottom)/2,c=s.posAtCoords({x:r.left+1,y:l}),p=s.posAtCoords({x:r.right-1,y:l});return c==null||p==null?i:{from:Math.max(i.from,Math.min(c,p)),to:Math.min(i.to,Math.max(c,p))}}function Xr(s,t,e){if(e.to<=s.viewport.from||e.from>=s.viewport.to)return[];let i=Math.max(e.from,s.viewport.from),n=Math.min(e.to,s.viewport.to),r=s.textDirection==wt.LTR,l=s.contentDOM,c=l.getBoundingClientRect(),p=er(s),k=l.querySelector(".cm-line"),v=k&&window.getComputedStyle(k),R=c.left+(v?parseInt(v.paddingLeft)+Math.min(0,parseInt(v.textIndent)):0),W=c.right-(v?parseInt(v.paddingRight):0),X=mn(s,i,1),et=mn(s,n,-1),ut=X.type==Gt.Text?X:null,dt=et.type==Gt.Text?et:null;if(ut&&(s.lineWrapping||X.widgetLineBreaks)&&(ut=ir(s,i,1,ut)),dt&&(s.lineWrapping||et.widgetLineBreaks)&&(dt=ir(s,n,-1,dt)),ut&&dt&&ut.from==dt.from&&ut.to==dt.to)return $t(ee(e.from,e.to,ut));{let ie=ut?ee(e.from,null,ut):Yt(X,!1),ne=dt?ee(null,e.to,dt):Yt(et,!0),ii=[];return(ut||X).to<(dt||et).from-(ut&&dt?1:0)||X.widgetLineBreaks>1&&ie.bottom+s.defaultLineHeight/2<ne.top?ii.push(pt(R,ie.bottom,W,ne.top)):ie.bottom<ne.top&&s.elementAtHeight((ie.bottom+ne.top)/2).type==Gt.Text&&(ie.bottom=ne.top=(ie.bottom+ne.top)/2),$t(ie).concat(ii).concat($t(ne))}function pt(ie,ne,ii,Ai){return new On(t,ie-p.left,ne-p.top,ii-ie,Ai-ne)}function $t({top:ie,bottom:ne,horizontal:ii}){let Ai=[];for(let rn=0;rn<ii.length;rn+=2)Ai.push(pt(ii[rn],ie,ii[rn+1],ne));return Ai}function ee(ie,ne,ii){let Ai=1e9,rn=-1e9,rs=[];function Tr(dn,on,vn,pn,Bn){let Qi=s.coordsAtPos(dn,dn==ii.to?-2:2),Zi=s.coordsAtPos(vn,vn==ii.from?2:-2);!Qi||!Zi||(Ai=Math.min(Qi.top,Zi.top,Ai),rn=Math.max(Qi.bottom,Zi.bottom,rn),Bn==wt.LTR?rs.push(r&&on?R:Qi.left,r&&pn?W:Zi.right):rs.push(!r&&pn?R:Zi.left,!r&&on?W:Qi.right))}let os=ie??ii.from,ls=ne??ii.to;for(let dn of s.visibleRanges)if(dn.to>os&&dn.from<ls)for(let on=Math.max(dn.from,os),vn=Math.min(dn.to,ls);;){let pn=s.state.doc.lineAt(on);for(let Bn of s.bidiSpans(pn)){let Qi=Bn.from+pn.from,Zi=Bn.to+pn.from;if(Qi>=vn)break;Zi>on&&Tr(Math.max(Qi,on),ie==null&&Qi<=os,Math.min(Zi,vn),ne==null&&Zi>=ls,Bn.dir)}if(on=pn.to+1,on>=vn)break}return rs.length==0&&Tr(os,ie==null,ls,ne==null,s.textDirection),{top:Ai,bottom:rn,horizontal:rs}}function Yt(ie,ne){let ii=c.top+(ne?ie.top:ie.bottom);return{top:ii,bottom:ii,horizontal:[]}}}function Gr(s,t){return s.constructor==t.constructor&&s.eq(t)}class Yr{constructor(t,e){this.view=t,this.layer=e,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=t.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),e.above&&this.dom.classList.add("cm-layer-above"),e.class&&this.dom.classList.add(e.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(t.state),t.requestMeasure(this.measureReq),e.mount&&e.mount(this.dom,t)}update(t){t.startState.facet(Xn)!=t.state.facet(Xn)&&this.setOrder(t.state),(this.layer.update(t,this.dom)||t.geometryChanged)&&(this.scale(),t.view.requestMeasure(this.measureReq))}docViewUpdate(t){this.layer.updateOnDocViewUpdate!==!1&&t.requestMeasure(this.measureReq)}setOrder(t){let e=0,i=t.facet(Xn);for(;e<i.length&&i[e]!=this.layer;)e++;this.dom.style.zIndex=String((this.layer.above?150:-1)-e)}measure(){return this.layer.markers(this.view)}scale(){let{scaleX:t,scaleY:e}=this.view;(t!=this.scaleX||e!=this.scaleY)&&(this.scaleX=t,this.scaleY=e,this.dom.style.transform=`scale(${1/t}, ${1/e})`)}draw(t){if(t.length!=this.drawn.length||t.some((e,i)=>!Gr(e,this.drawn[i]))){let e=this.dom.firstChild,i=0;for(let n of t)n.update&&e&&n.constructor&&this.drawn[i].constructor&&n.update(e,this.drawn[i])?(e=e.nextSibling,i++):this.dom.insertBefore(n.draw(),e);for(;e;){let n=e.nextSibling;e.remove(),e=n}this.drawn=t}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const Xn=P.r$.define();function nr(s){return[B.define(t=>new Yr(t,s)),Xn.of(s)]}const yn=P.r$.define({combine(s){return(0,P.BO)(s,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(t,e)=>Math.min(t,e),drawRangeCursor:(t,e)=>t||e})}});function Qr(s={}){return[yn.of(s),Zr,to,eo,Ve.of(!0)]}function il(s){return s.facet(yn)}function sr(s){return s.startState.facet(yn)!=s.state.facet(yn)}const Zr=nr({above:!0,markers(s){let{state:t}=s,e=t.facet(yn),i=[];for(let n of t.selection.ranges){let r=n==t.selection.main;if(n.empty||e.drawRangeCursor){let l=r?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",c=n.empty?n:P.jT.cursor(n.head,n.head>n.anchor?-1:1);for(let p of On.forRange(s,l,c))i.push(p)}}return i},update(s,t){s.transactions.some(i=>i.selection)&&(t.style.animationName=t.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let e=sr(s);return e&&rr(s.state,t),s.docChanged||s.selectionSet||e},mount(s,t){rr(t.state,s)},class:"cm-cursorLayer"});function rr(s,t){t.style.animationDuration=s.facet(yn).cursorBlinkRate+"ms"}const to=nr({above:!1,markers(s){return s.state.selection.ranges.map(t=>t.empty?[]:On.forRange(s,"cm-selectionBackground",t)).reduce((t,e)=>t.concat(e))},update(s,t){return s.docChanged||s.selectionSet||s.viewportChanged||sr(s)},class:"cm-selectionLayer"}),eo=P.Wl.highest(xe.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),or=P.Py.define({map(s,t){return s==null?null:t.mapPos(s)}}),Pn=P.QQ.define({create(){return null},update(s,t){return s!=null&&(s=t.changes.mapPos(s)),t.effects.reduce((e,i)=>i.is(or)?i.value:e,s)}}),io=B.fromClass(class{constructor(s){this.view=s,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(s){var t;let e=s.state.field(Pn);e==null?this.cursor!=null&&((t=this.cursor)===null||t===void 0||t.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(s.startState.field(Pn)!=e||s.docChanged||s.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:s}=this,t=s.state.field(Pn),e=t!=null&&s.coordsAtPos(t);if(!e)return null;let i=s.scrollDOM.getBoundingClientRect();return{left:e.left-i.left+s.scrollDOM.scrollLeft*s.scaleX,top:e.top-i.top+s.scrollDOM.scrollTop*s.scaleY,height:e.bottom-e.top}}drawCursor(s){if(this.cursor){let{scaleX:t,scaleY:e}=this.view;s?(this.cursor.style.left=s.left/t+"px",this.cursor.style.top=s.top/e+"px",this.cursor.style.height=s.height/e+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(s){this.view.state.field(Pn)!=s&&this.view.dispatch({effects:or.of(s)})}},{eventObservers:{dragover(s){this.setDropPos(this.view.posAtCoords({x:s.clientX,y:s.clientY}))},dragleave(s){(s.target==this.view.contentDOM||!this.view.contentDOM.contains(s.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function no(){return[Pn,io]}function lr(s,t,e,i,n){t.lastIndex=0;for(let r=s.iterRange(e,i),l=e,c;!r.next().done;l+=r.value.length)if(!r.lineBreak)for(;c=t.exec(r.value);)n(l+c.index,c)}function so(s,t){let e=s.visibleRanges;if(e.length==1&&e[0].from==s.viewport.from&&e[0].to==s.viewport.to)return e;let i=[];for(let{from:n,to:r}of e)n=Math.max(s.state.doc.lineAt(n).from,n-t),r=Math.min(s.state.doc.lineAt(r).to,r+t),i.length&&i[i.length-1].to>=n?i[i.length-1].to=r:i.push({from:n,to:r});return i}class Ts{constructor(t){const{regexp:e,decoration:i,decorate:n,boundary:r,maxLength:l=1e3}=t;if(!e.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=e,n)this.addMatch=(c,p,k,v)=>n(v,k,k+c[0].length,c,p);else if(typeof i=="function")this.addMatch=(c,p,k,v)=>{let R=i(c,p,k);R&&v(k,k+c[0].length,R)};else if(i)this.addMatch=(c,p,k,v)=>v(k,k+c[0].length,i);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=r,this.maxLength=l}createDeco(t){let e=new P.f_,i=e.add.bind(e);for(let{from:n,to:r}of so(t,this.maxLength))lr(t.state.doc,this.regexp,n,r,(l,c)=>this.addMatch(c,t,l,i));return e.finish()}updateDeco(t,e){let i=1e9,n=-1;return t.docChanged&&t.changes.iterChanges((r,l,c,p)=>{p>=t.view.viewport.from&&c<=t.view.viewport.to&&(i=Math.min(c,i),n=Math.max(p,n))}),t.viewportMoved||n-i>1e3?this.createDeco(t.view):n>-1?this.updateRange(t.view,e.map(t.changes),i,n):e}updateRange(t,e,i,n){for(let r of t.visibleRanges){let l=Math.max(r.from,i),c=Math.min(r.to,n);if(c>=l){let p=t.state.doc.lineAt(l),k=p.to<c?t.state.doc.lineAt(c):p,v=Math.max(r.from,p.from),R=Math.min(r.to,k.to);if(this.boundary){for(;l>p.from;l--)if(this.boundary.test(p.text[l-1-p.from])){v=l;break}for(;c<k.to;c++)if(this.boundary.test(k.text[c-k.from])){R=c;break}}let W=[],X,et=(ut,dt,pt)=>W.push(pt.range(ut,dt));if(p==k)for(this.regexp.lastIndex=v-p.from;(X=this.regexp.exec(p.text))&&X.index<R-p.from;)this.addMatch(X,t,X.index+p.from,et);else lr(t.state.doc,this.regexp,v,R,(ut,dt)=>this.addMatch(dt,t,ut,et));e=e.update({filterFrom:v,filterTo:R,filter:(ut,dt)=>ut<v||dt>R,add:W})}}return e}}const As=/x/.unicode!=null?"gu":"g",ro=new RegExp(`[\0-\b
|
|
26
|
+
-\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,As),oo={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let Ms=null;function lo(){var s;if(Ms==null&&typeof document<"u"&&document.body){let t=document.body.style;Ms=((s=t.tabSize)!==null&&s!==void 0?s:t.MozTabSize)!=null}return Ms||!1}const Gn=P.r$.define({combine(s){let t=(0,P.BO)(s,{render:null,specialChars:ro,addSpecialChars:null});return(t.replaceTabs=!lo())&&(t.specialChars=new RegExp(" |"+t.specialChars.source,As)),t.addSpecialChars&&(t.specialChars=new RegExp(t.specialChars.source+"|"+t.addSpecialChars.source,As)),t}});function ao(s={}){return[Gn.of(s),ho()]}let ar=null;function ho(){return ar||(ar=B.fromClass(class{constructor(s){this.view=s,this.decorations=Kt.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(s.state.facet(Gn)),this.decorations=this.decorator.createDeco(s)}makeDecorator(s){return new Ts({regexp:s.specialChars,decoration:(t,e,i)=>{let{doc:n}=e.state,r=(0,P.gm)(t[0],0);if(r==9){let l=n.lineAt(i),c=e.state.tabSize,p=(0,P.IS)(l.text,c,i-l.from);return Kt.replace({widget:new po((c-p%c)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[r]||(this.decorationCache[r]=Kt.replace({widget:new uo(s,r)}))},boundary:s.replaceTabs?void 0:/[^]/})}update(s){let t=s.state.facet(Gn);s.startState.facet(Gn)!=t?(this.decorator=this.makeDecorator(t),this.decorations=this.decorator.createDeco(s.view)):this.decorations=this.decorator.updateDeco(s,this.decorations)}},{decorations:s=>s.decorations}))}const co="\u2022";function fo(s){return s>=32?co:s==10?"\u2424":String.fromCharCode(9216+s)}class uo extends si{constructor(t,e){super(),this.options=t,this.code=e}eq(t){return t.code==this.code}toDOM(t){let e=fo(this.code),i=t.state.phrase("Control character")+" "+(oo[this.code]||"0x"+this.code.toString(16)),n=this.options.render&&this.options.render(this.code,i,e);if(n)return n;let r=document.createElement("span");return r.textContent=e,r.title=i,r.setAttribute("aria-label",i),r.className="cm-specialChar",r}ignoreEvent(){return!1}}class po extends si{constructor(t){super(),this.width=t}eq(t){return t.width==this.width}toDOM(){let t=document.createElement("span");return t.textContent=" ",t.className="cm-tab",t.style.width=this.width+"px",t}ignoreEvent(){return!1}}const hr=null;function nl(){return[hr,ot.of(s=>{var t;return((t=s.plugin(hr))===null||t===void 0?void 0:t.attrs)||null})]}function mo(){return bo}const go=Kt.line({class:"cm-activeLine"}),bo=B.fromClass(class{constructor(s){this.decorations=this.getDeco(s)}update(s){(s.docChanged||s.selectionSet)&&(this.decorations=this.getDeco(s.view))}getDeco(s){let t=-1,e=[];for(let i of s.state.selection.ranges){let n=s.lineBlockAt(i.head);n.from>t&&(e.push(go.range(n.from)),t=n.from)}return Kt.set(e)}},{decorations:s=>s.decorations});class yo extends si{constructor(t){super(),this.content=t}toDOM(t){let e=document.createElement("span");return e.className="cm-placeholder",e.style.pointerEvents="none",e.appendChild(typeof this.content=="string"?document.createTextNode(this.content):typeof this.content=="function"?this.content(t):this.content.cloneNode(!0)),e.setAttribute("aria-hidden","true"),e}coordsAt(t){let e=t.firstChild?ke(t.firstChild):[];if(!e.length)return null;let i=window.getComputedStyle(t.parentNode),n=_t(e[0],i.direction!="rtl"),r=parseInt(i.lineHeight);return n.bottom-n.top>r*1.5?{left:n.left,right:n.right,top:n.top,bottom:n.top+r}:n}ignoreEvent(){return!1}}function wo(s){let t=B.fromClass(class{constructor(e){this.view=e,this.placeholder=s?Kt.set([Kt.widget({widget:new yo(s),side:1}).range(0)]):Kt.none}get decorations(){return this.view.state.doc.length?Kt.none:this.placeholder}},{decorations:e=>e.decorations});return typeof s=="string"?[t,xe.contentAttributes.of({"aria-placeholder":s})]:t}const Ds=2e3;function vo(s,t,e){let i=Math.min(t.line,e.line),n=Math.max(t.line,e.line),r=[];if(t.off>Ds||e.off>Ds||t.col<0||e.col<0){let l=Math.min(t.off,e.off),c=Math.max(t.off,e.off);for(let p=i;p<=n;p++){let k=s.doc.line(p);k.length<=c&&r.push(P.jT.range(k.from+l,k.to+c))}}else{let l=Math.min(t.col,e.col),c=Math.max(t.col,e.col);for(let p=i;p<=n;p++){let k=s.doc.line(p),v=(0,P.Gz)(k.text,l,s.tabSize,!0);if(v<0)r.push(P.jT.cursor(k.to));else{let R=(0,P.Gz)(k.text,c,s.tabSize);r.push(P.jT.range(k.from+v,k.from+R))}}}return r}function xo(s,t){let e=s.coordsAtPos(s.viewport.from);return e?Math.round(Math.abs((e.left-t)/s.defaultCharacterWidth)):-1}function cr(s,t){let e=s.posAtCoords({x:t.clientX,y:t.clientY},!1),i=s.state.doc.lineAt(e),n=e-i.from,r=n>Ds?-1:n==i.length?xo(s,t.clientX):(0,P.IS)(i.text,s.state.tabSize,e-i.from);return{line:i.number,col:r,off:n}}function ko(s,t){let e=cr(s,t),i=s.state.selection;return e?{update(n){if(n.docChanged){let r=n.changes.mapPos(n.startState.doc.line(e.line).from),l=n.state.doc.lineAt(r);e={line:l.number,col:e.col,off:Math.min(e.off,l.length)},i=i.map(n.changes)}},get(n,r,l){let c=cr(s,n);if(!c)return i;let p=vo(s.state,e,c);return p.length?l?P.jT.create(p.concat(i.ranges)):P.jT.create(p):i}}:null}function So(s){let t=(s==null?void 0:s.eventFilter)||(e=>e.altKey&&e.button==0);return xe.mouseSelectionStyle.of((e,i)=>t(i)?ko(e,i):null)}const Co={Alt:[18,s=>!!s.altKey],Control:[17,s=>!!s.ctrlKey],Shift:[16,s=>!!s.shiftKey],Meta:[91,s=>!!s.metaKey]},To={style:"cursor: crosshair"};function Ao(s={}){let[t,e]=Co[s.key||"Alt"],i=B.fromClass(class{constructor(n){this.view=n,this.isDown=!1}set(n){this.isDown!=n&&(this.isDown=n,this.view.update([]))}},{eventObservers:{keydown(n){this.set(n.keyCode==t||e(n))},keyup(n){(n.keyCode==t||!e(n))&&this.set(!1)},mousemove(n){this.set(e(n))}}});return[i,xe.contentAttributes.of(n=>{var r;return!((r=n.plugin(i))===null||r===void 0)&&r.isDown?To:null})]}const En="-10000px";class fr{constructor(t,e,i,n){this.facet=e,this.createTooltipView=i,this.removeTooltipView=n,this.input=t.state.facet(e),this.tooltips=this.input.filter(l=>l);let r=null;this.tooltipViews=this.tooltips.map(l=>r=i(l,r))}update(t,e){var i;let n=t.state.facet(this.facet),r=n.filter(p=>p);if(n===this.input){for(let p of this.tooltipViews)p.update&&p.update(t);return!1}let l=[],c=e?[]:null;for(let p=0;p<r.length;p++){let k=r[p],v=-1;if(k){for(let R=0;R<this.tooltips.length;R++){let W=this.tooltips[R];W&&W.create==k.create&&(v=R)}if(v<0)l[p]=this.createTooltipView(k,p?l[p-1]:null),c&&(c[p]=!!k.above);else{let R=l[p]=this.tooltipViews[v];c&&(c[p]=e[v]),R.update&&R.update(t)}}}for(let p of this.tooltipViews)l.indexOf(p)<0&&(this.removeTooltipView(p),(i=p.destroy)===null||i===void 0||i.call(p));return e&&(c.forEach((p,k)=>e[k]=p),e.length=c.length),this.input=n,this.tooltips=r,this.tooltipViews=l,!0}}function Mo(s={}){return Yn.of(s)}function Do(s){let t=s.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:t.clientHeight,right:t.clientWidth}}const Yn=P.r$.define({combine:s=>{var t,e,i;return{position:yt.ios?"absolute":((t=s.find(n=>n.position))===null||t===void 0?void 0:t.position)||"fixed",parent:((e=s.find(n=>n.parent))===null||e===void 0?void 0:e.parent)||null,tooltipSpace:((i=s.find(n=>n.tooltipSpace))===null||i===void 0?void 0:i.tooltipSpace)||Do}}}),ur=new WeakMap,Qn=B.fromClass(class{constructor(s){this.view=s,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let t=s.state.facet(Yn);this.position=t.position,this.parent=t.parent,this.classes=s.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new fr(s,Os,(e,i)=>this.createTooltip(e,i),e=>{this.resizeObserver&&this.resizeObserver.unobserve(e.dom),e.dom.remove()}),this.above=this.manager.tooltips.map(e=>!!e.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(e=>{Date.now()>this.lastTransaction-50&&e.length>0&&e[e.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),s.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let s of this.manager.tooltipViews)this.intersectionObserver.observe(s.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(s){s.transactions.length&&(this.lastTransaction=Date.now());let t=this.manager.update(s,this.above);t&&this.observeIntersection();let e=t||s.geometryChanged,i=s.state.facet(Yn);if(i.position!=this.position&&!this.madeAbsolute){this.position=i.position;for(let n of this.manager.tooltipViews)n.dom.style.position=this.position;e=!0}if(i.parent!=this.parent){this.parent&&this.container.remove(),this.parent=i.parent,this.createContainer();for(let n of this.manager.tooltipViews)this.container.appendChild(n.dom);e=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);e&&this.maybeMeasure()}createTooltip(s,t){let e=s.create(this.view),i=t?t.dom:null;if(e.dom.classList.add("cm-tooltip"),s.arrow&&!e.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let n=document.createElement("div");n.className="cm-tooltip-arrow",e.dom.appendChild(n)}return e.dom.style.position=this.position,e.dom.style.top=En,e.dom.style.left="0px",this.container.insertBefore(e.dom,i),e.mount&&e.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(e.dom),e}destroy(){var s,t,e;this.view.win.removeEventListener("resize",this.measureSoon);for(let i of this.manager.tooltipViews)i.dom.remove(),(s=i.destroy)===null||s===void 0||s.call(i);this.parent&&this.container.remove(),(t=this.resizeObserver)===null||t===void 0||t.disconnect(),(e=this.intersectionObserver)===null||e===void 0||e.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let s=1,t=1,e=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:r}=this.manager.tooltipViews[0];if(yt.gecko)e=r.offsetParent!=this.container.ownerDocument.body;else if(r.style.top==En&&r.style.left=="0px"){let l=r.getBoundingClientRect();e=Math.abs(l.top+1e4)>1||Math.abs(l.left)>1}}if(e||this.position=="absolute")if(this.parent){let r=this.parent.getBoundingClientRect();r.width&&r.height&&(s=r.width/this.parent.offsetWidth,t=r.height/this.parent.offsetHeight)}else({scaleX:s,scaleY:t}=this.view.viewState);let i=this.view.scrollDOM.getBoundingClientRect(),n=je(this.view);return{visible:{left:i.left+n.left,top:i.top+n.top,right:i.right-n.right,bottom:i.bottom-n.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((r,l)=>{let c=this.manager.tooltipViews[l];return c.getCoords?c.getCoords(r.pos):this.view.coordsAtPos(r.pos)}),size:this.manager.tooltipViews.map(({dom:r})=>r.getBoundingClientRect()),space:this.view.state.facet(Yn).tooltipSpace(this.view),scaleX:s,scaleY:t,makeAbsolute:e}}writeMeasure(s){var t;if(s.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let c of this.manager.tooltipViews)c.dom.style.position="absolute"}let{visible:e,space:i,scaleX:n,scaleY:r}=s,l=[];for(let c=0;c<this.manager.tooltips.length;c++){let p=this.manager.tooltips[c],k=this.manager.tooltipViews[c],{dom:v}=k,R=s.pos[c],W=s.size[c];if(!R||p.clip!==!1&&(R.bottom<=Math.max(e.top,i.top)||R.top>=Math.min(e.bottom,i.bottom)||R.right<Math.max(e.left,i.left)-.1||R.left>Math.min(e.right,i.right)+.1)){v.style.top=En;continue}let X=p.arrow?k.dom.querySelector(".cm-tooltip-arrow"):null,et=X?7:0,ut=W.right-W.left,dt=(t=ur.get(k))!==null&&t!==void 0?t:W.bottom-W.top,pt=k.offset||Po,$t=this.view.textDirection==wt.LTR,ee=W.width>i.right-i.left?$t?i.left:i.right-W.width:$t?Math.max(i.left,Math.min(R.left-(X?14:0)+pt.x,i.right-ut)):Math.min(Math.max(i.left,R.left-ut+(X?14:0)-pt.x),i.right-ut),Yt=this.above[c];!p.strictSide&&(Yt?R.top-dt-et-pt.y<i.top:R.bottom+dt+et+pt.y>i.bottom)&&Yt==i.bottom-R.bottom>R.top-i.top&&(Yt=this.above[c]=!Yt);let ie=(Yt?R.top-i.top:i.bottom-R.bottom)-et;if(ie<dt&&k.resize!==!1){if(ie<this.view.defaultLineHeight){v.style.top=En;continue}ur.set(k,dt),v.style.height=(dt=ie)/r+"px"}else v.style.height&&(v.style.height="");let ne=Yt?R.top-dt-et-pt.y:R.bottom+et+pt.y,ii=ee+ut;if(k.overlap!==!0)for(let Ai of l)Ai.left<ii&&Ai.right>ee&&Ai.top<ne+dt&&Ai.bottom>ne&&(ne=Yt?Ai.top-dt-2-et:Ai.bottom+et+2);if(this.position=="absolute"?(v.style.top=(ne-s.parent.top)/r+"px",dr(v,(ee-s.parent.left)/n)):(v.style.top=ne/r+"px",dr(v,ee/n)),X){let Ai=R.left+($t?pt.x:-pt.x)-(ee+14-7);X.style.left=Ai/n+"px"}k.overlap!==!0&&l.push({left:ee,top:ne,right:ii,bottom:ne+dt}),v.classList.toggle("cm-tooltip-above",Yt),v.classList.toggle("cm-tooltip-below",!Yt),k.positioned&&k.positioned(s.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let s of this.manager.tooltipViews)s.dom.style.top=En}},{eventObservers:{scroll(){this.maybeMeasure()}}});function dr(s,t){let e=parseInt(s.style.left,10);(isNaN(e)||Math.abs(t-e)>1)&&(s.style.left=t+"px")}const Oo=xe.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),Po={x:0,y:0},Os=P.r$.define({enables:[Qn,Oo]}),Ln=P.r$.define({combine:s=>s.reduce((t,e)=>t.concat(e),[])});class Zn{static create(t){return new Zn(t)}constructor(t){this.view=t,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new fr(t,Ln,(e,i)=>this.createHostedView(e,i),e=>e.dom.remove())}createHostedView(t,e){let i=t.create(this.view);return i.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(i.dom,e?e.dom.nextSibling:this.dom.firstChild),this.mounted&&i.mount&&i.mount(this.view),i}mount(t){for(let e of this.manager.tooltipViews)e.mount&&e.mount(t);this.mounted=!0}positioned(t){for(let e of this.manager.tooltipViews)e.positioned&&e.positioned(t)}update(t){this.manager.update(t)}destroy(){var t;for(let e of this.manager.tooltipViews)(t=e.destroy)===null||t===void 0||t.call(e)}passProp(t){let e;for(let i of this.manager.tooltipViews){let n=i[t];if(n!==void 0){if(e===void 0)e=n;else if(e!==n)return}}return e}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}}const Eo=Os.compute([Ln],s=>{let t=s.facet(Ln);return t.length===0?null:{pos:Math.min(...t.map(e=>e.pos)),end:Math.max(...t.map(e=>{var i;return(i=e.end)!==null&&i!==void 0?i:e.pos})),create:Zn.create,above:t[0].above,arrow:t.some(e=>e.arrow)}});class Lo{constructor(t,e,i,n,r){this.view=t,this.source=e,this.field=i,this.setHover=n,this.hoverTime=r,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:t.dom,time:0},this.checkHover=this.checkHover.bind(this),t.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),t.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let t=Date.now()-this.lastMove.time;t<this.hoverTime?this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime-t):this.startHover()}startHover(){clearTimeout(this.restartTimeout);let{view:t,lastMove:e}=this,i=t.docView.nearest(e.target);if(!i)return;let n,r=1;if(i instanceof lt)n=i.posAtStart;else{if(n=t.posAtCoords(e),n==null)return;let c=t.coordsAtPos(n);if(!c||e.y<c.top||e.y>c.bottom||e.x<c.left-t.defaultCharacterWidth||e.x>c.right+t.defaultCharacterWidth)return;let p=t.bidiSpans(t.state.doc.lineAt(n)).find(v=>v.from<=n&&v.to>=n),k=p&&p.dir==wt.RTL?-1:1;r=e.x<c.left?-k:k}let l=this.source(t,n,r);if(l!=null&&l.then){let c=this.pending={pos:n};l.then(p=>{this.pending==c&&(this.pending=null,p&&!(Array.isArray(p)&&!p.length)&&t.dispatch({effects:this.setHover.of(Array.isArray(p)?p:[p])}))},p=>M(t.state,p,"hover tooltip"))}else l&&!(Array.isArray(l)&&!l.length)&&t.dispatch({effects:this.setHover.of(Array.isArray(l)?l:[l])})}get tooltip(){let t=this.view.plugin(Qn),e=t?t.manager.tooltips.findIndex(i=>i.create==Zn.create):-1;return e>-1?t.manager.tooltipViews[e]:null}mousemove(t){var e,i;this.lastMove={x:t.clientX,y:t.clientY,target:t.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:n,tooltip:r}=this;if(n.length&&r&&!Ro(r.dom,t)||this.pending){let{pos:l}=n[0]||this.pending,c=(i=(e=n[0])===null||e===void 0?void 0:e.end)!==null&&i!==void 0?i:l;(l==c?this.view.posAtCoords(this.lastMove)!=l:!Bo(this.view,l,c,t.clientX,t.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(t){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:e}=this;if(e.length){let{tooltip:i}=this;i&&i.dom.contains(t.relatedTarget)?this.watchTooltipLeave(i.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(t){let e=i=>{t.removeEventListener("mouseleave",e),this.active.length&&!this.view.dom.contains(i.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};t.addEventListener("mouseleave",e)}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}const ts=4;function Ro(s,t){let{left:e,right:i,top:n,bottom:r}=s.getBoundingClientRect(),l;if(l=s.querySelector(".cm-tooltip-arrow")){let c=l.getBoundingClientRect();n=Math.min(c.top,n),r=Math.max(c.bottom,r)}return t.clientX>=e-ts&&t.clientX<=i+ts&&t.clientY>=n-ts&&t.clientY<=r+ts}function Bo(s,t,e,i,n,r){let l=s.scrollDOM.getBoundingClientRect(),c=s.documentTop+s.documentPadding.top+s.contentHeight;if(l.left>i||l.right<i||l.top>n||Math.min(l.bottom,c)<n)return!1;let p=s.posAtCoords({x:i,y:n},!1);return p>=t&&p<=e}function Io(s,t={}){let e=P.Py.define(),i=P.QQ.define({create(){return[]},update(n,r){if(n.length&&(t.hideOnChange&&(r.docChanged||r.selection)?n=[]:t.hideOn&&(n=n.filter(l=>!t.hideOn(r,l))),r.docChanged)){let l=[];for(let c of n){let p=r.changes.mapPos(c.pos,-1,P.gc.TrackDel);if(p!=null){let k=Object.assign(Object.create(null),c);k.pos=p,k.end!=null&&(k.end=r.changes.mapPos(k.end)),l.push(k)}}n=l}for(let l of r.effects)l.is(e)&&(n=l.value),l.is(Fo)&&(n=[]);return n},provide:n=>Ln.from(n)});return{active:i,extension:[i,B.define(n=>new Lo(n,s,i,e,t.hoverTime||300)),Eo]}}function No(s,t){let e=s.plugin(Qn);if(!e)return null;let i=e.manager.tooltips.indexOf(t);return i<0?null:e.manager.tooltipViews[i]}function sl(s){return s.facet(Ln).some(t=>t)}const Fo=P.Py.define(),rl=null;function ol(s){let t=s.plugin(Qn);t&&t.maybeMeasure()}const Ps=P.r$.define({combine(s){let t,e;for(let i of s)t=t||i.topContainer,e=e||i.bottomContainer;return{topContainer:t,bottomContainer:e}}});function ll(s){return s?[Ps.of(s)]:[]}function pr(s,t){let e=s.plugin(mr),i=e?e.specs.indexOf(t):-1;return i>-1?e.panels[i]:null}const mr=B.fromClass(class{constructor(s){this.input=s.state.facet(is),this.specs=this.input.filter(e=>e),this.panels=this.specs.map(e=>e(s));let t=s.state.facet(Ps);this.top=new es(s,!0,t.topContainer),this.bottom=new es(s,!1,t.bottomContainer),this.top.sync(this.panels.filter(e=>e.top)),this.bottom.sync(this.panels.filter(e=>!e.top));for(let e of this.panels)e.dom.classList.add("cm-panel"),e.mount&&e.mount()}update(s){let t=s.state.facet(Ps);this.top.container!=t.topContainer&&(this.top.sync([]),this.top=new es(s.view,!0,t.topContainer)),this.bottom.container!=t.bottomContainer&&(this.bottom.sync([]),this.bottom=new es(s.view,!1,t.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let e=s.state.facet(is);if(e!=this.input){let i=e.filter(p=>p),n=[],r=[],l=[],c=[];for(let p of i){let k=this.specs.indexOf(p),v;k<0?(v=p(s.view),c.push(v)):(v=this.panels[k],v.update&&v.update(s)),n.push(v),(v.top?r:l).push(v)}this.specs=i,this.panels=n,this.top.sync(r),this.bottom.sync(l);for(let p of c)p.dom.classList.add("cm-panel"),p.mount&&p.mount()}else for(let i of this.panels)i.update&&i.update(s)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:s=>xe.scrollMargins.of(t=>{let e=t.plugin(s);return e&&{top:e.top.scrollMargin(),bottom:e.bottom.scrollMargin()}})});class es{constructor(t,e,i){this.view=t,this.top=e,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(t){for(let e of this.panels)e.destroy&&t.indexOf(e)<0&&e.destroy();this.panels=t,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let e=this.container||this.view.dom;e.insertBefore(this.dom,this.top?e.firstChild:null)}let t=this.dom.firstChild;for(let e of this.panels)if(e.dom.parentNode==this.dom){for(;t!=e.dom;)t=gr(t);t=t.nextSibling}else this.dom.insertBefore(e.dom,t);for(;t;)t=gr(t)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let t of this.classes.split(" "))t&&this.container.classList.remove(t);for(let t of(this.classes=this.view.themeClasses).split(" "))t&&this.container.classList.add(t)}}}function gr(s){let t=s.nextSibling;return s.remove(),t}const is=P.r$.define({enables:mr});function al(s,t){let e,i=new Promise(l=>e=l),n=l=>Wo(l,t,e);s.state.field(ns,!1)?s.dispatch({effects:br.of(n)}):s.dispatch({effects:StateEffect.appendConfig.of(ns.init(()=>[n]))});let r=yr.of(n);return{close:r,result:i.then(l=>((s.win.queueMicrotask||(p=>s.win.setTimeout(p,10)))(()=>{s.state.field(ns).indexOf(n)>-1&&s.dispatch({effects:r})}),l))}}function hl(s,t){let e=s.state.field(ns,!1)||[];for(let i of e){let n=pr(s,i);if(n&&n.dom.classList.contains(t))return n}return null}const ns=P.QQ.define({create(){return[]},update(s,t){for(let e of t.effects)e.is(br)?s=[e.value].concat(s):e.is(yr)&&(s=s.filter(i=>i!=e.value));return s},provide:s=>is.computeN([s],t=>t.field(s))}),br=P.Py.define(),yr=P.Py.define();function Wo(s,t,e){let i=t.content?t.content(s,()=>l(null)):null;if(!i){if(i=elt("form"),t.input){let c=elt("input",t.input);/^(text|password|number|email|tel|url)$/.test(c.type)&&c.classList.add("cm-textfield"),c.name||(c.name="input"),i.appendChild(elt("label",(t.label||"")+": ",c))}else i.appendChild(document.createTextNode(t.label||""));i.appendChild(document.createTextNode(" ")),i.appendChild(elt("button",{class:"cm-button",type:"submit"},t.submitLabel||"OK"))}let n=i.nodeName=="FORM"?[i]:i.querySelectorAll("form");for(let c=0;c<n.length;c++){let p=n[c];p.addEventListener("keydown",k=>{k.keyCode==27?(k.preventDefault(),l(null)):k.keyCode==13&&(k.preventDefault(),l(p))}),p.addEventListener("submit",k=>{k.preventDefault(),l(p)})}let r=elt("div",i,elt("button",{onclick:()=>l(null),"aria-label":s.state.phrase("close"),class:"cm-dialog-close",type:"button"},["\xD7"]));t.class&&(r.className=t.class),r.classList.add("cm-dialog");function l(c){r.contains(r.ownerDocument.activeElement)&&s.focus(),e(c)}return{dom:r,top:t.top,mount:()=>{if(t.focus){let c;typeof t.focus=="string"?c=i.querySelector(t.focus):c=i.querySelector("input")||i.querySelector("button"),c&&"select"in c?c.select():c&&"focus"in c&&c.focus()}}}}class Yi extends P.uU{compare(t){return this==t||this.constructor==t.constructor&&this.eq(t)}eq(t){return!1}destroy(t){}}Yi.prototype.elementClass="",Yi.prototype.toDOM=void 0,Yi.prototype.mapMode=P.gc.TrackBefore,Yi.prototype.startSide=Yi.prototype.endSide=-1,Yi.prototype.point=!0;const ss=P.r$.define(),Ho=P.r$.define(),Vo={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>P.Xs.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},Rn=P.r$.define();function $o(s){return[wr(),Rn.of({...Vo,...s})]}const Es=P.r$.define({combine:s=>s.some(t=>t)});function wr(s){let t=[zo];return s&&s.fixed===!1&&t.push(Es.of(!0)),t}const zo=B.fromClass(class{constructor(s){this.view=s,this.domAfter=null,this.prevViewport=s.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=s.state.facet(Rn).map(t=>new xr(s,t)),this.fixed=!s.state.facet(Es);for(let t of this.gutters)t.config.side=="after"?this.getDOMAfter().appendChild(t.dom):this.dom.appendChild(t.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),s.scrollDOM.insertBefore(this.dom,s.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(s){if(this.updateGutters(s)){let t=this.prevViewport,e=s.view.viewport,i=Math.min(t.to,e.to)-Math.max(t.from,e.from);this.syncGutters(i<(e.to-e.from)*.8)}if(s.geometryChanged){let t=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=t,this.domAfter&&(this.domAfter.style.minHeight=t)}this.view.state.facet(Es)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=s.view.viewport}syncGutters(s){let t=this.dom.nextSibling;s&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let e=P.Xs.iter(this.view.state.facet(ss),this.view.viewport.from),i=[],n=this.gutters.map(r=>new jo(r,this.view.viewport,-this.view.documentPadding.top));for(let r of this.view.viewportLineBlocks)if(i.length&&(i=[]),Array.isArray(r.type)){let l=!0;for(let c of r.type)if(c.type==Gt.Text&&l){Ls(e,i,c.from);for(let p of n)p.line(this.view,c,i);l=!1}else if(c.widget)for(let p of n)p.widget(this.view,c)}else if(r.type==Gt.Text){Ls(e,i,r.from);for(let l of n)l.line(this.view,r,i)}else if(r.widget)for(let l of n)l.widget(this.view,r);for(let r of n)r.finish();s&&(this.view.scrollDOM.insertBefore(this.dom,t),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(s){let t=s.startState.facet(Rn),e=s.state.facet(Rn),i=s.docChanged||s.heightChanged||s.viewportChanged||!P.Xs.eq(s.startState.facet(ss),s.state.facet(ss),s.view.viewport.from,s.view.viewport.to);if(t==e)for(let n of this.gutters)n.update(s)&&(i=!0);else{i=!0;let n=[];for(let r of e){let l=t.indexOf(r);l<0?n.push(new xr(this.view,r)):(this.gutters[l].update(s),n.push(this.gutters[l]))}for(let r of this.gutters)r.dom.remove(),n.indexOf(r)<0&&r.destroy();for(let r of n)r.config.side=="after"?this.getDOMAfter().appendChild(r.dom):this.dom.appendChild(r.dom);this.gutters=n}return i}destroy(){for(let s of this.gutters)s.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:s=>xe.scrollMargins.of(t=>{let e=t.plugin(s);if(!e||e.gutters.length==0||!e.fixed)return null;let i=e.dom.offsetWidth*t.scaleX,n=e.domAfter?e.domAfter.offsetWidth*t.scaleX:0;return t.textDirection==wt.LTR?{left:i,right:n}:{right:i,left:n}})});function vr(s){return Array.isArray(s)?s:[s]}function Ls(s,t,e){for(;s.value&&s.from<=e;)s.from==e&&t.push(s.value),s.next()}class jo{constructor(t,e,i){this.gutter=t,this.height=i,this.i=0,this.cursor=P.Xs.iter(t.markers,e.from)}addElement(t,e,i){let{gutter:n}=this,r=(e.top-this.height)/t.scaleY,l=e.height/t.scaleY;if(this.i==n.elements.length){let c=new kr(t,l,r,i);n.elements.push(c),n.dom.appendChild(c.dom)}else n.elements[this.i].update(t,l,r,i);this.height=e.bottom,this.i++}line(t,e,i){let n=[];Ls(this.cursor,n,e.from),i.length&&(n=n.concat(i));let r=this.gutter.config.lineMarker(t,e,n);r&&n.unshift(r);let l=this.gutter;n.length==0&&!l.config.renderEmptyElements||this.addElement(t,e,n)}widget(t,e){let i=this.gutter.config.widgetMarker(t,e.widget,e),n=i?[i]:null;for(let r of t.state.facet(Ho)){let l=r(t,e.widget,e);l&&(n||(n=[])).push(l)}n&&this.addElement(t,e,n)}finish(){let t=this.gutter;for(;t.elements.length>this.i;){let e=t.elements.pop();t.dom.removeChild(e.dom),e.destroy()}}}class xr{constructor(t,e){this.view=t,this.config=e,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in e.domEventHandlers)this.dom.addEventListener(i,n=>{let r=n.target,l;if(r!=this.dom&&this.dom.contains(r)){for(;r.parentNode!=this.dom;)r=r.parentNode;let p=r.getBoundingClientRect();l=(p.top+p.bottom)/2}else l=n.clientY;let c=t.lineBlockAtHeight(l-t.documentTop);e.domEventHandlers[i](t,c,n)&&n.preventDefault()});this.markers=vr(e.markers(t)),e.initialSpacer&&(this.spacer=new kr(t,0,0,[e.initialSpacer(t)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(t){let e=this.markers;if(this.markers=vr(this.config.markers(t.view)),this.spacer&&this.config.updateSpacer){let n=this.config.updateSpacer(this.spacer.markers[0],t);n!=this.spacer.markers[0]&&this.spacer.update(t.view,0,0,[n])}let i=t.view.viewport;return!P.Xs.eq(this.markers,e,i.from,i.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(t):!1)}destroy(){for(let t of this.elements)t.destroy()}}class kr{constructor(t,e,i,n){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(t,e,i,n)}update(t,e,i,n){this.height!=e&&(this.height=e,this.dom.style.height=e+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i+"px":""),_o(this.markers,n)||this.setMarkers(t,n)}setMarkers(t,e){let i="cm-gutterElement",n=this.dom.firstChild;for(let r=0,l=0;;){let c=l,p=r<e.length?e[r++]:null,k=!1;if(p){let v=p.elementClass;v&&(i+=" "+v);for(let R=l;R<this.markers.length;R++)if(this.markers[R].compare(p)){c=R,k=!0;break}}else c=this.markers.length;for(;l<c;){let v=this.markers[l++];if(v.toDOM){v.destroy(n);let R=n.nextSibling;n.remove(),n=R}}if(!p)break;p.toDOM&&(k?n=n.nextSibling:this.dom.insertBefore(p.toDOM(t),n)),k&&l++}this.dom.className=i,this.markers=e}destroy(){this.setMarkers(null,[])}}function _o(s,t){if(s.length!=t.length)return!1;for(let e=0;e<s.length;e++)if(!s[e].compare(t[e]))return!1;return!0}const Jo=P.r$.define(),qo=P.r$.define(),wn=P.r$.define({combine(s){return(0,P.BO)(s,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(t,e){let i=Object.assign({},t);for(let n in e){let r=i[n],l=e[n];i[n]=r?(c,p,k)=>r(c,p,k)||l(c,p,k):l}return i}})}});class Rs extends Yi{constructor(t){super(),this.number=t}eq(t){return this.number==t.number}toDOM(){return document.createTextNode(this.number)}}function Bs(s,t){return s.state.facet(wn).formatNumber(t,s.state)}const Ko=Rn.compute([wn],s=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(t){return t.state.facet(Jo)},lineMarker(t,e,i){return i.some(n=>n.toDOM)?null:new Rs(Bs(t,t.state.doc.lineAt(e.from).number))},widgetMarker:(t,e,i)=>{for(let n of t.state.facet(qo)){let r=n(t,e,i);if(r)return r}return null},lineMarkerChange:t=>t.startState.facet(wn)!=t.state.facet(wn),initialSpacer(t){return new Rs(Bs(t,Sr(t.state.doc.lines)))},updateSpacer(t,e){let i=Bs(e.view,Sr(e.view.state.doc.lines));return i==t.number?t:new Rs(i)},domEventHandlers:s.facet(wn).domEventHandlers,side:"before"}));function Uo(s={}){return[wn.of(s),wr(),Ko]}function Sr(s){let t=9;for(;t<s;)t=t*10+9;return t}const Xo=new class extends Yi{constructor(){super(...arguments),this.elementClass="cm-activeLineGutter"}},Go=ss.compute(["selection"],s=>{let t=[],e=-1;for(let i of s.selection.ranges){let n=s.doc.lineAt(i.head).from;n>e&&(e=n,t.push(Xo.range(n)))}return P.Xs.of(t)});function Yo(){return Go}function Cr(s){return B.define(t=>({decorations:s.createDeco(t),update(e){this.decorations=s.updateDeco(e,this.decorations)}}),{decorations:t=>t.decorations})}const Qo=Kt.mark({class:"cm-highlightTab"}),Zo=Kt.mark({class:"cm-highlightSpace"}),tl=Cr(new Ts({regexp:/\t| /g,decoration:s=>s[0]==" "?Qo:Zo,boundary:/\S/}));function cl(){return tl}const el=Cr(new Ts({regexp:/\s+$/g,decoration:Kt.mark({class:"cm-trailingSpace"})}));function fl(){return el}const ul={HeightMap:Mi,HeightOracle:Ws,MeasuredHeights:Hs,QueryType:Ue,ChangedRange:ai,computeOrder:o,moveVisually:y,clearHeightChangeFlag:gs,getHeightChangeFlag:()=>un}}}]);
|