unleash-server 6.0.2 → 6.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/dist/lib/features/playground/advanced-playground.test.js +26 -1
- package/dist/lib/features/playground/advanced-playground.test.js.map +1 -1
- package/dist/lib/features/playground/feature-evaluator/client.d.ts.map +1 -1
- package/dist/lib/features/playground/feature-evaluator/client.js +2 -6
- package/dist/lib/features/playground/feature-evaluator/client.js.map +1 -1
- package/dist/test/e2e/helpers/test-helper.d.ts +2 -2
- package/dist/test/e2e/helpers/test-helper.d.ts.map +1 -1
- package/dist/test/e2e/helpers/test-helper.js +1 -1
- package/dist/test/e2e/helpers/test-helper.js.map +1 -1
- package/frontend/build/index.html +1 -1
- package/frontend/build/static/{AdvancedPlayground-p7tDUOqb.js → AdvancedPlayground-CQsMokDK.js} +1 -1
- package/frontend/build/static/{CheckCircleOutline-CZoWHYza.js → CheckCircleOutline-3N2b6C6u.js} +1 -1
- package/frontend/build/static/{CreateProject-DhmoT0x8.js → CreateProject-C50_8DJ-.js} +1 -1
- package/frontend/build/static/{FeatureMetricsChart-CrJhmvRS.js → FeatureMetricsChart-D7hBu9bH.js} +1 -1
- package/frontend/build/static/{FeatureStaleDialog-z-UTple3.js → FeatureStaleDialog-D-1JGcwj.js} +1 -1
- package/frontend/build/static/{FeatureViewLazyExport-BOJHJp48.js → FeatureViewLazyExport-CJKGy-V3.js} +2 -2
- package/frontend/build/static/{LazyAdminExport-BfaFcAaS.js → LazyAdminExport-DiDAlXlQ.js} +2 -2
- package/frontend/build/static/{LazyProjectExport-DbkNqnlj.js → LazyProjectExport-BeTXfctj.js} +2 -2
- package/frontend/build/static/{LineChartComponent-CLaoKci9.js → LineChartComponent-Bf3RodVh.js} +1 -1
- package/frontend/build/static/{NetworkOverview-Cq83oqfi.js → NetworkOverview-C-R8wA4S.js} +1 -1
- package/frontend/build/static/{NetworkTraffic-Bt6v3FUz.js → NetworkTraffic-D_eVTdGp.js} +1 -1
- package/frontend/build/static/{NetworkTrafficUsage-Dv8h54l9.js → NetworkTrafficUsage-BlFVx812.js} +1 -1
- package/frontend/build/static/{ProjectForm-CrLtsMQu.js → ProjectForm-c43ztjmB.js} +1 -1
- package/frontend/build/static/{ReactJSONEditor-C-nON7ak.js → ReactJSONEditor-DJyV5xPu.js} +1 -1
- package/frontend/build/static/{RoleCell-6hhnTvjl.js → RoleCell-C-E960FF.js} +1 -1
- package/frontend/build/static/{StrategyItemContainer-BDY93O1W.js → StrategyItemContainer-CvZqeW-d.js} +1 -1
- package/frontend/build/static/{index-DZdOsPxT.js → index-Bql--RTy.js} +1 -1
- package/frontend/build/static/{index-lGwH-xa2.js → index-D3PezXCS.js} +45 -45
- package/frontend/build/static/{unknownify-D-iKcXLX.js → unknownify-C7_4al21.js} +1 -1
- package/frontend/build/static/{useApiTokens-BhaMXLXr.js → useApiTokens-ZwBU99TL.js} +1 -1
- package/package.json +1 -1
package/frontend/build/static/{AdvancedPlayground-p7tDUOqb.js → AdvancedPlayground-CQsMokDK.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{u as ga,g as xa,r as M,j as d,_ as Pn,s as O,U as ya,a as G,B as R,C as T,d as ba,b as va,c as Fr,e as Sa,f as Mt,T as V,F as wa,I as Ca,S as ka,M as Aa,h as In,p as bs,i as vs,k as Zt,A as Wr,l as Ma,m as Da,n as Ss,o as Ta,P as Oa,q as ja,t as Ra,v as _e,D as Ba,w as wi,x as Ci,y as Ea,z as Vr,E as La,G as nt,H as Hr,J as Pa,K as Tt,L as He,N as zr,O as Nn,Q as $r,R as Ia,V as on,W as ei,X as ln,Y as Na,Z as Fa,$ as Wa,a0 as qr,a1 as Fn,a2 as ki,a3 as Va,a4 as ie,a5 as Ai,a6 as Ha,a7 as za,a8 as $a,a9 as qa,aa as Ua,ab as Ka,ac as ws,ad as Ur,ae as Wn,af as Vn,ag as Kr,ah as Hn,ai as Gr,aj as _r,ak as Jr,al as Yr,am as Ga,an as Cs,ao as _a,ap as Ja,aq as Hi,ar as Ya,as as Xa,at as Qa,au as Za,av as ec,aw as tc}from"./index-lGwH-xa2.js";import{E as z,F as P,c as Pt,S as xt,a as v,T as ti,C as zn,b as ic,I as Xr,g as Qr,i as ri,d as ge,e as Zr,f as eo,h as an,A as Mi,j as _,m as et,s as yt,N as cn,D as nc,k as ve,V as $n,l as q,n as de,o as be,p as Ot,q as Z,P as Di,r as qn,t as Un,u as I,v as ke,R as sc,w as rc,x as De,M as st,y as at,z as Kn,B as oc,G as lc,H as ac,J as cc,K as hc,W as dc,L as uc,O as fc,Q as pc,U as mc,X as gc,Y as xc,Z as yc,_ as bc,$ as vc,a0 as Gn,a1 as Sc,a2 as wc,a3 as Cc,a4 as kc,a5 as Ac,a6 as to,a7 as io,a8 as b,a9 as Mc,aa as Dc}from"./index-C2dLqsgz.js";import{u as Tc}from"./useApiTokens-BhaMXLXr.js";import{d as Oc}from"./CheckCircleOutline-CZoWHYza.js";import{S as jc}from"./StrategyItemContainer-BDY93O1W.js";const Rc=()=>{const{makeRequest:i,createRequest:e,errors:t,loading:n}=ga({propagateErrors:!0}),s="api/admin/playground";return{evaluateAdvancedPlayground:async o=>{const l=`${s}/advanced`,a=e(l,{method:"POST",body:JSON.stringify(o)});return(await i(a.caller,a.id)).json()},errors:t,loading:n}};var _n={exports:{}};function no(i,e=100,t={}){if(typeof i!="function")throw new TypeError(`Expected the first parameter to be a function, got \`${typeof i}\`.`);if(e<0)throw new RangeError("`wait` must not be negative.");const{immediate:n}=typeof t=="boolean"?{immediate:t}:t;let s,r,o,l,a;function c(){const f=s,p=r;return s=void 0,r=void 0,a=i.apply(f,p),a}function h(){const f=Date.now()-l;f<e&&f>=0?o=setTimeout(h,e-f):(o=void 0,n||(a=c()))}const u=function(...f){if(s&&this!==s)throw new Error("Debounced method called with different contexts.");s=this,r=f,l=Date.now();const p=n&&!o;return o||(o=setTimeout(h,e)),p&&(a=c()),a};return u.clear=()=>{o&&(clearTimeout(o),o=void 0)},u.flush=()=>{o&&u.trigger()},u.trigger=()=>{a=c(),u.clear()},u}_n.exports.debounce=no;_n.exports=no;var Bc=_n.exports;const Ec=xa(Bc);function Lc(i,e){if(i==null)return{};var t={},n=Object.keys(i),s,r;for(r=0;r<n.length;r++)s=n[r],!(e.indexOf(s)>=0)&&(t[s]=i[s]);return t}const Pc=i=>{let e=Yn(i.state);return e.line?Ic(i):e.block?Fc(i):!1};function Jn(i,e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let s=i(e,t);return s?(n(t.update(s)),!0):!1}}const Ic=Jn(Hc,0),Nc=Jn(so,0),Fc=Jn((i,e)=>so(i,e,Vc(e)),0);function Yn(i,e=i.selection.main.head){let t=i.languageDataAt("commentTokens",e);return t.length?t[0]:{}}const St=50;function Wc(i,{open:e,close:t},n,s){let r=i.sliceDoc(n-St,n),o=i.sliceDoc(s,s+St),l=/\s*$/.exec(r)[0].length,a=/^\s*/.exec(o)[0].length,c=r.length-l;if(r.slice(c-e.length,c)==e&&o.slice(a,a+t.length)==t)return{open:{pos:n-l,margin:l&&1},close:{pos:s+a,margin:a&&1}};let h,u;s-n<=2*St?h=u=i.sliceDoc(n,s):(h=i.sliceDoc(n,n+St),u=i.sliceDoc(s-St,s));let f=/^\s*/.exec(h)[0].length,p=/\s*$/.exec(u)[0].length,m=u.length-p-t.length;return h.slice(f,f+e.length)==e&&u.slice(m,m+t.length)==t?{open:{pos:n+f+e.length,margin:/\s/.test(h.charAt(f+e.length))?1:0},close:{pos:s-p-t.length,margin:/\s/.test(u.charAt(m-1))?1:0}}:null}function Vc(i){let e=[];for(let t of i.selection.ranges){let n=i.doc.lineAt(t.from),s=t.to<=n.to?n:i.doc.lineAt(t.to),r=e.length-1;r>=0&&e[r].to>n.from?e[r].to=s.to:e.push({from:n.from,to:s.to})}return e}function so(i,e,t=e.selection.ranges){let n=t.map(r=>Yn(e,r.from).block);if(!n.every(r=>r))return null;let s=t.map((r,o)=>Wc(e,n[o],r.from,r.to));if(i!=2&&!s.every(r=>r))return{changes:e.changes(t.map((r,o)=>s[o]?[]:[{from:r.from,insert:n[o].open+" "},{from:r.to,insert:" "+n[o].close}]))};if(i!=1&&s.some(r=>r)){let r=[];for(let o=0,l;o<s.length;o++)if(l=s[o]){let a=n[o],{open:c,close:h}=l;r.push({from:c.pos-a.open.length,to:c.pos+c.margin},{from:h.pos-h.margin,to:h.pos+a.close.length})}return{changes:r}}return null}function Hc(i,e,t=e.selection.ranges){let n=[],s=-1;for(let{from:r,to:o}of t){let l=n.length,a=1e9;for(let c=r;c<=o;){let h=e.doc.lineAt(c);if(h.from>s&&(r==o||o>h.from)){s=h.from;let u=Yn(e,c).line;if(!u)continue;let f=/^\s*/.exec(h.text)[0].length,p=f==h.length,m=h.text.slice(f,f+u.length)==u?f:-1;f<h.text.length&&f<a&&(a=f),n.push({line:h,comment:m,token:u,indent:f,empty:p,single:!1})}c=h.to+1}if(a<1e9)for(let c=l;c<n.length;c++)n[c].indent<n[c].line.text.length&&(n[c].indent=a);n.length==l+1&&(n[l].single=!0)}if(i!=2&&n.some(r=>r.comment<0&&(!r.empty||r.single))){let r=[];for(let{line:l,token:a,indent:c,empty:h,single:u}of n)(u||!h)&&r.push({from:l.from+c,insert:a+" "});let o=e.changes(r);return{changes:o,selection:e.selection.map(o,1)}}else if(i!=1&&n.some(r=>r.comment>=0)){let r=[];for(let{line:o,comment:l,token:a}of n)if(l>=0){let c=o.from+l,h=c+a.length;o.text[h-o.from]==" "&&h++,r.push({from:c,to:h})}return{changes:r}}return null}const hn=Mi.define(),zc=Mi.define(),$c=P.define(),ro=P.define({combine(i){return Pt(i,{minDepth:100,newGroupDelay:500},{minDepth:Math.max,newGroupDelay:Math.min})}});function qc(i){let e=0;return i.iterChangedRanges((t,n)=>e=n),e}const oo=xt.define({create(){return Ce.empty},update(i,e){let t=e.state.facet(ro),n=e.annotation(hn);if(n){let a=e.docChanged?v.single(qc(e.changes)):void 0,c=le.fromTransaction(e,a),h=n.side,u=h==0?i.undone:i.done;return c?u=oi(u,u.length,t.minDepth,c):u=co(u,e.startState.selection),new Ce(h==0?n.rest:u,h==0?u:n.rest)}let s=e.annotation(zc);if((s=="full"||s=="before")&&(i=i.isolate()),e.annotation(ti.addToHistory)===!1)return e.changes.empty?i:i.addMapping(e.changes.desc);let r=le.fromTransaction(e),o=e.annotation(ti.time),l=e.annotation(ti.userEvent);return r?i=i.addChanges(r,o,l,t.newGroupDelay,t.minDepth):e.selection&&(i=i.addSelection(e.startState.selection,o,l,t.newGroupDelay)),(s=="full"||s=="after")&&(i=i.isolate()),i},toJSON(i){return{done:i.done.map(e=>e.toJSON()),undone:i.undone.map(e=>e.toJSON())}},fromJSON(i){return new Ce(i.done.map(le.fromJSON),i.undone.map(le.fromJSON))}});function Uc(i={}){return[oo,ro.of(i),z.domEventHandlers({beforeinput(e,t){let n=e.inputType=="historyUndo"?lo:e.inputType=="historyRedo"?dn:null;return n?(e.preventDefault(),n(t)):!1}})]}function Ti(i,e){return function({state:t,dispatch:n}){if(!e&&t.readOnly)return!1;let s=t.field(oo,!1);if(!s)return!1;let r=s.pop(i,t,e);return r?(n(r),!0):!1}}const lo=Ti(0,!1),dn=Ti(1,!1),Kc=Ti(0,!0),Gc=Ti(1,!0);class le{constructor(e,t,n,s,r){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=s,this.selectionsAfter=r}setSelAfter(e){return new le(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,n;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(n=this.startSelection)===null||n===void 0?void 0:n.toJSON(),selectionsAfter:this.selectionsAfter.map(s=>s.toJSON())}}static fromJSON(e){return new le(e.changes&&zn.fromJSON(e.changes),[],e.mapped&&ic.fromJSON(e.mapped),e.startSelection&&v.fromJSON(e.startSelection),e.selectionsAfter.map(v.fromJSON))}static fromTransaction(e,t){let n=me;for(let s of e.startState.facet($c)){let r=s(e);r.length&&(n=n.concat(r))}return!n.length&&e.changes.empty?null:new le(e.changes.invert(e.startState.doc),n,void 0,t||e.startState.selection,me)}static selection(e){return new le(void 0,me,void 0,void 0,e)}}function oi(i,e,t,n){let s=e+1>t+20?e-t-1:0,r=i.slice(s,e);return r.push(n),r}function _c(i,e){let t=[],n=!1;return i.iterChangedRanges((s,r)=>t.push(s,r)),e.iterChangedRanges((s,r,o,l)=>{for(let a=0;a<t.length;){let c=t[a++],h=t[a++];l>=c&&o<=h&&(n=!0)}}),n}function Jc(i,e){return i.ranges.length==e.ranges.length&&i.ranges.filter((t,n)=>t.empty!=e.ranges[n].empty).length===0}function ao(i,e){return i.length?e.length?i.concat(e):i:e}const me=[],Yc=200;function co(i,e){if(i.length){let t=i[i.length-1],n=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-Yc));return n.length&&n[n.length-1].eq(e)?i:(n.push(e),oi(i,i.length-1,1e9,t.setSelAfter(n)))}else return[le.selection([e])]}function Xc(i){let e=i[i.length-1],t=i.slice();return t[i.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}function zi(i,e){if(!i.length)return i;let t=i.length,n=me;for(;t;){let s=Qc(i[t-1],e,n);if(s.changes&&!s.changes.empty||s.effects.length){let r=i.slice(0,t);return r[t-1]=s,r}else e=s.mapped,t--,n=s.selectionsAfter}return n.length?[le.selection(n)]:me}function Qc(i,e,t){let n=ao(i.selectionsAfter.length?i.selectionsAfter.map(l=>l.map(e)):me,t);if(!i.changes)return le.selection(n);let s=i.changes.map(e),r=e.mapDesc(i.changes,!0),o=i.mapped?i.mapped.composeDesc(r):r;return new le(s,_.mapEffects(i.effects,e),o,i.startSelection.map(r),n)}const Zc=/^(input\.type|delete)($|\.)/;class Ce{constructor(e,t,n=0,s=void 0){this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=s}isolate(){return this.prevTime?new Ce(this.done,this.undone):this}addChanges(e,t,n,s,r){let o=this.done,l=o[o.length-1];return l&&l.changes&&!l.changes.empty&&e.changes&&(!n||Zc.test(n))&&(!l.selectionsAfter.length&&t-this.prevTime<s&&_c(l.changes,e.changes)||n=="input.type.compose")?o=oi(o,o.length-1,r,new le(e.changes.compose(l.changes),ao(e.effects,l.effects),l.mapped,l.startSelection,me)):o=oi(o,o.length,r,e),new Ce(o,me,t,n)}addSelection(e,t,n,s){let r=this.done.length?this.done[this.done.length-1].selectionsAfter:me;return r.length>0&&t-this.prevTime<s&&n==this.prevUserEvent&&n&&/^select($|\.)/.test(n)&&Jc(r[r.length-1],e)?this:new Ce(co(this.done,e),this.undone,t,n)}addMapping(e){return new Ce(zi(this.done,e),zi(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,t,n){let s=e==0?this.done:this.undone;if(s.length==0)return null;let r=s[s.length-1];if(n&&r.selectionsAfter.length)return t.update({selection:r.selectionsAfter[r.selectionsAfter.length-1],annotations:hn.of({side:e,rest:Xc(s)}),userEvent:e==0?"select.undo":"select.redo",scrollIntoView:!0});if(r.changes){let o=s.length==1?me:s.slice(0,s.length-1);return r.mapped&&(o=zi(o,r.mapped)),t.update({changes:r.changes,selection:r.startSelection,effects:r.effects,annotations:hn.of({side:e,rest:o}),filter:!1,userEvent:e==0?"undo":"redo",scrollIntoView:!0})}else return null}}Ce.empty=new Ce(me,me);const eh=[{key:"Mod-z",run:lo,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:dn,preventDefault:!0},{linux:"Ctrl-Shift-z",run:dn,preventDefault:!0},{key:"Mod-u",run:Kc,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:Gc,preventDefault:!0}];function bt(i,e){return v.create(i.ranges.map(e),i.mainIndex)}function Oe(i,e){return i.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function Se({state:i,dispatch:e},t){let n=bt(i.selection,t);return n.eq(i.selection)?!1:(e(Oe(i,n)),!0)}function Oi(i,e){return v.cursor(e?i.to:i.from)}function ho(i,e){return Se(i,t=>t.empty?i.moveByChar(t,e):Oi(t,e))}function te(i){return i.textDirectionAt(i.state.selection.main.head)==nc.LTR}const uo=i=>ho(i,!te(i)),fo=i=>ho(i,te(i));function po(i,e){return Se(i,t=>t.empty?i.moveByGroup(t,e):Oi(t,e))}const th=i=>po(i,!te(i)),ih=i=>po(i,te(i));function nh(i,e,t){if(e.type.prop(t))return!0;let n=e.to-e.from;return n&&(n>2||/[^\s,.;:]/.test(i.sliceDoc(e.from,e.to)))||e.firstChild}function ji(i,e,t){let n=yt(i).resolveInner(e.head),s=t?cn.closedBy:cn.openedBy;for(let a=e.head;;){let c=t?n.childAfter(a):n.childBefore(a);if(!c)break;nh(i,c,s)?n=c:a=t?c.to:c.from}let r=n.type.prop(s),o,l;return r&&(o=t?et(i,n.from,1):et(i,n.to,-1))&&o.matched?l=t?o.end.to:o.end.from:l=t?n.to:n.from,v.cursor(l,t?-1:1)}const sh=i=>Se(i,e=>ji(i.state,e,!te(i))),rh=i=>Se(i,e=>ji(i.state,e,te(i)));function mo(i,e){return Se(i,t=>{if(!t.empty)return Oi(t,e);let n=i.moveVertically(t,e);return n.head!=t.head?n:i.moveToLineBoundary(t,e)})}const go=i=>mo(i,!1),xo=i=>mo(i,!0);function yo(i){return Math.max(i.defaultLineHeight,Math.min(i.dom.clientHeight,innerHeight)-5)}function bo(i,e){let{state:t}=i,n=bt(t.selection,l=>l.empty?i.moveVertically(l,e,yo(i)):Oi(l,e));if(n.eq(t.selection))return!1;let s=i.coordsAtPos(t.selection.main.head),r=i.scrollDOM.getBoundingClientRect(),o;return s&&s.top>r.top&&s.bottom<r.bottom&&s.top-r.top<=i.scrollDOM.scrollHeight-i.scrollDOM.scrollTop-i.scrollDOM.clientHeight&&(o=z.scrollIntoView(n.main.head,{y:"start",yMargin:s.top-r.top})),i.dispatch(Oe(t,n),{effects:o}),!0}const ks=i=>bo(i,!1),un=i=>bo(i,!0);function ze(i,e,t){let n=i.lineBlockAt(e.head),s=i.moveToLineBoundary(e,t);if(s.head==e.head&&s.head!=(t?n.to:n.from)&&(s=i.moveToLineBoundary(e,t,!1)),!t&&s.head==n.from&&n.length){let r=/^\s*/.exec(i.state.sliceDoc(n.from,Math.min(n.from+100,n.to)))[0].length;r&&e.head!=n.from+r&&(s=v.cursor(n.from+r))}return s}const oh=i=>Se(i,e=>ze(i,e,!0)),lh=i=>Se(i,e=>ze(i,e,!1)),ah=i=>Se(i,e=>ze(i,e,!te(i))),ch=i=>Se(i,e=>ze(i,e,te(i))),hh=i=>Se(i,e=>v.cursor(i.lineBlockAt(e.head).from,1)),dh=i=>Se(i,e=>v.cursor(i.lineBlockAt(e.head).to,-1));function uh(i,e,t){let n=!1,s=bt(i.selection,r=>{let o=et(i,r.head,-1)||et(i,r.head,1)||r.head>0&&et(i,r.head-1,1)||r.head<i.doc.length&&et(i,r.head+1,-1);if(!o||!o.end)return r;n=!0;let l=o.start.from==r.head?o.end.to:o.end.from;return t?v.range(r.anchor,l):v.cursor(l)});return n?(e(Oe(i,s)),!0):!1}const fh=({state:i,dispatch:e})=>uh(i,e,!1);function ye(i,e){let t=bt(i.state.selection,n=>{let s=e(n);return v.range(n.anchor,s.head,s.goalColumn,s.bidiLevel||void 0)});return t.eq(i.state.selection)?!1:(i.dispatch(Oe(i.state,t)),!0)}function vo(i,e){return ye(i,t=>i.moveByChar(t,e))}const So=i=>vo(i,!te(i)),wo=i=>vo(i,te(i));function Co(i,e){return ye(i,t=>i.moveByGroup(t,e))}const ph=i=>Co(i,!te(i)),mh=i=>Co(i,te(i)),gh=i=>ye(i,e=>ji(i.state,e,!te(i))),xh=i=>ye(i,e=>ji(i.state,e,te(i)));function ko(i,e){return ye(i,t=>i.moveVertically(t,e))}const Ao=i=>ko(i,!1),Mo=i=>ko(i,!0);function Do(i,e){return ye(i,t=>i.moveVertically(t,e,yo(i)))}const As=i=>Do(i,!1),Ms=i=>Do(i,!0),yh=i=>ye(i,e=>ze(i,e,!0)),bh=i=>ye(i,e=>ze(i,e,!1)),vh=i=>ye(i,e=>ze(i,e,!te(i))),Sh=i=>ye(i,e=>ze(i,e,te(i))),wh=i=>ye(i,e=>v.cursor(i.lineBlockAt(e.head).from)),Ch=i=>ye(i,e=>v.cursor(i.lineBlockAt(e.head).to)),Ds=({state:i,dispatch:e})=>(e(Oe(i,{anchor:0})),!0),Ts=({state:i,dispatch:e})=>(e(Oe(i,{anchor:i.doc.length})),!0),Os=({state:i,dispatch:e})=>(e(Oe(i,{anchor:i.selection.main.anchor,head:0})),!0),js=({state:i,dispatch:e})=>(e(Oe(i,{anchor:i.selection.main.anchor,head:i.doc.length})),!0),kh=({state:i,dispatch:e})=>(e(i.update({selection:{anchor:0,head:i.doc.length},userEvent:"select"})),!0),Ah=({state:i,dispatch:e})=>{let t=Bi(i).map(({from:n,to:s})=>v.range(n,Math.min(s+1,i.doc.length)));return e(i.update({selection:v.create(t),userEvent:"select"})),!0},Mh=({state:i,dispatch:e})=>{let t=bt(i.selection,n=>{var s;let r=yt(i).resolveInner(n.head,1);for(;!(r.from<n.from&&r.to>=n.to||r.to>n.to&&r.from<=n.from||!(!((s=r.parent)===null||s===void 0)&&s.parent));)r=r.parent;return v.range(r.to,r.from)});return e(Oe(i,t)),!0},Dh=({state:i,dispatch:e})=>{let t=i.selection,n=null;return t.ranges.length>1?n=v.create([t.main]):t.main.empty||(n=v.create([v.cursor(t.main.head)])),n?(e(Oe(i,n)),!0):!1};function Ri(i,e){if(i.state.readOnly)return!1;let t="delete.selection",{state:n}=i,s=n.changeByRange(r=>{let{from:o,to:l}=r;if(o==l){let a=e(o);a<o?(t="delete.backward",a=Ht(i,a,!1)):a>o&&(t="delete.forward",a=Ht(i,a,!0)),o=Math.min(o,a),l=Math.max(l,a)}else o=Ht(i,o,!1),l=Ht(i,l,!0);return o==l?{range:r}:{changes:{from:o,to:l},range:v.cursor(o)}});return s.changes.empty?!1:(i.dispatch(n.update(s,{scrollIntoView:!0,userEvent:t,effects:t=="delete.selection"?z.announce.of(n.phrase("Selection deleted")):void 0})),!0)}function Ht(i,e,t){if(i instanceof z)for(let n of i.state.facet(z.atomicRanges).map(s=>s(i)))n.between(e,e,(s,r)=>{s<e&&r>e&&(e=t?r:s)});return e}const To=(i,e)=>Ri(i,t=>{let{state:n}=i,s=n.doc.lineAt(t),r,o;if(!e&&t>s.from&&t<s.from+200&&!/[^ \t]/.test(r=s.text.slice(0,t-s.from))){if(r[r.length-1]==" ")return t-1;let l=eo(r,n.tabSize),a=l%an(n)||an(n);for(let c=0;c<a&&r[r.length-1-c]==" ";c++)t--;o=t}else o=ve(s.text,t-s.from,e,e)+s.from,o==t&&s.number!=(e?n.doc.lines:1)&&(o+=e?1:-1);return o}),fn=i=>To(i,!1),Oo=i=>To(i,!0),jo=(i,e)=>Ri(i,t=>{let n=t,{state:s}=i,r=s.doc.lineAt(n),o=s.charCategorizer(n);for(let l=null;;){if(n==(e?r.to:r.from)){n==t&&r.number!=(e?s.doc.lines:1)&&(n+=e?1:-1);break}let a=ve(r.text,n-r.from,e)+r.from,c=r.text.slice(Math.min(n,a)-r.from,Math.max(n,a)-r.from),h=o(c);if(l!=null&&h!=l)break;(c!=" "||n!=t)&&(l=h),n=a}return n}),Ro=i=>jo(i,!1),Th=i=>jo(i,!0),Bo=i=>Ri(i,e=>{let t=i.lineBlockAt(e).to;return e<t?t:Math.min(i.state.doc.length,e+1)}),Oh=i=>Ri(i,e=>{let t=i.lineBlockAt(e).from;return e>t?t:Math.max(0,e-1)}),jh=({state:i,dispatch:e})=>{if(i.readOnly)return!1;let t=i.changeByRange(n=>({changes:{from:n.from,to:n.to,insert:ge.of(["",""])},range:v.cursor(n.from)}));return e(i.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},Rh=({state:i,dispatch:e})=>{if(i.readOnly)return!1;let t=i.changeByRange(n=>{if(!n.empty||n.from==0||n.from==i.doc.length)return{range:n};let s=n.from,r=i.doc.lineAt(s),o=s==r.from?s-1:ve(r.text,s-r.from,!1)+r.from,l=s==r.to?s+1:ve(r.text,s-r.from,!0)+r.from;return{changes:{from:o,to:l,insert:i.doc.slice(s,l).append(i.doc.slice(o,s))},range:v.cursor(l)}});return t.changes.empty?!1:(e(i.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function Bi(i){let e=[],t=-1;for(let n of i.selection.ranges){let s=i.doc.lineAt(n.from),r=i.doc.lineAt(n.to);if(!n.empty&&n.to==r.from&&(r=i.doc.lineAt(n.to-1)),t>=s.number){let o=e[e.length-1];o.to=r.to,o.ranges.push(n)}else e.push({from:s.from,to:r.to,ranges:[n]});t=r.number+1}return e}function Eo(i,e,t){if(i.readOnly)return!1;let n=[],s=[];for(let r of Bi(i)){if(t?r.to==i.doc.length:r.from==0)continue;let o=i.doc.lineAt(t?r.to+1:r.from-1),l=o.length+1;if(t){n.push({from:r.to,to:o.to},{from:r.from,insert:o.text+i.lineBreak});for(let a of r.ranges)s.push(v.range(Math.min(i.doc.length,a.anchor+l),Math.min(i.doc.length,a.head+l)))}else{n.push({from:o.from,to:r.from},{from:r.to,insert:i.lineBreak+o.text});for(let a of r.ranges)s.push(v.range(a.anchor-l,a.head-l))}}return n.length?(e(i.update({changes:n,scrollIntoView:!0,selection:v.create(s,i.selection.mainIndex),userEvent:"move.line"})),!0):!1}const Bh=({state:i,dispatch:e})=>Eo(i,e,!1),Eh=({state:i,dispatch:e})=>Eo(i,e,!0);function Lo(i,e,t){if(i.readOnly)return!1;let n=[];for(let s of Bi(i))t?n.push({from:s.from,insert:i.doc.slice(s.from,s.to)+i.lineBreak}):n.push({from:s.to,insert:i.lineBreak+i.doc.slice(s.from,s.to)});return e(i.update({changes:n,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const Lh=({state:i,dispatch:e})=>Lo(i,e,!1),Ph=({state:i,dispatch:e})=>Lo(i,e,!0),Ih=i=>{if(i.state.readOnly)return!1;let{state:e}=i,t=e.changes(Bi(e).map(({from:s,to:r})=>(s>0?s--:r<e.doc.length&&r++,{from:s,to:r}))),n=bt(e.selection,s=>i.moveVertically(s,!0)).map(t);return i.dispatch({changes:t,selection:n,scrollIntoView:!0,userEvent:"delete.line"}),!0};function Nh(i,e){if(/\(\)|\[\]|\{\}/.test(i.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=yt(i).resolveInner(e),n=t.childBefore(e),s=t.childAfter(e),r;return n&&s&&n.to<=e&&s.from>=e&&(r=n.type.prop(cn.closedBy))&&r.indexOf(s.name)>-1&&i.doc.lineAt(n.to).from==i.doc.lineAt(s.from).from?{from:n.to,to:s.from}:null}const Fh=Po(!1),Wh=Po(!0);function Po(i){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(s=>{let{from:r,to:o}=s,l=e.doc.lineAt(r),a=!i&&r==o&&Nh(e,r);i&&(r=o=(o<=l.to?l:e.doc.lineAt(o)).to);let c=new Xr(e,{simulateBreak:r,simulateDoubleBreak:!!a}),h=Qr(c,r);for(h==null&&(h=/^\s*/.exec(e.doc.lineAt(r).text)[0].length);o<l.to&&/\s/.test(l.text[o-l.from]);)o++;a?{from:r,to:o}=a:r>l.from&&r<l.from+100&&!/\S/.test(l.text.slice(0,r))&&(r=l.from);let u=["",ri(e,h)];return a&&u.push(ri(e,c.lineIndent(l.from,-1))),{changes:{from:r,to:o,insert:ge.of(u)},range:v.cursor(r+1+u[1].length)}});return t(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0}}function Xn(i,e){let t=-1;return i.changeByRange(n=>{let s=[];for(let o=n.from;o<=n.to;){let l=i.doc.lineAt(o);l.number>t&&(n.empty||n.to>l.from)&&(e(l,s,n),t=l.number),o=l.to+1}let r=i.changes(s);return{changes:s,range:v.range(r.mapPos(n.anchor,1),r.mapPos(n.head,1))}})}const Vh=({state:i,dispatch:e})=>{if(i.readOnly)return!1;let t=Object.create(null),n=new Xr(i,{overrideIndentation:r=>{let o=t[r];return o??-1}}),s=Xn(i,(r,o,l)=>{let a=Qr(n,r.from);if(a==null)return;/\S/.test(r.text)||(a=0);let c=/^\s*/.exec(r.text)[0],h=ri(i,a);(c!=h||l.from<r.from+c.length)&&(t[r.from]=a,o.push({from:r.from,to:r.from+c.length,insert:h}))});return s.changes.empty||e(i.update(s,{userEvent:"indent"})),!0},Io=({state:i,dispatch:e})=>i.readOnly?!1:(e(i.update(Xn(i,(t,n)=>{n.push({from:t.from,insert:i.facet(Zr)})}),{userEvent:"input.indent"})),!0),No=({state:i,dispatch:e})=>i.readOnly?!1:(e(i.update(Xn(i,(t,n)=>{let s=/^\s*/.exec(t.text)[0];if(!s)return;let r=eo(s,i.tabSize),o=0,l=ri(i,Math.max(0,r-an(i)));for(;o<s.length&&o<l.length&&s.charCodeAt(o)==l.charCodeAt(o);)o++;n.push({from:t.from+o,to:t.from+s.length,insert:l.slice(o)})}),{userEvent:"delete.dedent"})),!0),Hh=[{key:"Ctrl-b",run:uo,shift:So,preventDefault:!0},{key:"Ctrl-f",run:fo,shift:wo},{key:"Ctrl-p",run:go,shift:Ao},{key:"Ctrl-n",run:xo,shift:Mo},{key:"Ctrl-a",run:hh,shift:wh},{key:"Ctrl-e",run:dh,shift:Ch},{key:"Ctrl-d",run:Oo},{key:"Ctrl-h",run:fn},{key:"Ctrl-k",run:Bo},{key:"Ctrl-Alt-h",run:Ro},{key:"Ctrl-o",run:jh},{key:"Ctrl-t",run:Rh},{key:"Ctrl-v",run:un}],zh=[{key:"ArrowLeft",run:uo,shift:So,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:th,shift:ph,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:ah,shift:vh,preventDefault:!0},{key:"ArrowRight",run:fo,shift:wo,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:ih,shift:mh,preventDefault:!0},{mac:"Cmd-ArrowRight",run:ch,shift:Sh,preventDefault:!0},{key:"ArrowUp",run:go,shift:Ao,preventDefault:!0},{mac:"Cmd-ArrowUp",run:Ds,shift:Os},{mac:"Ctrl-ArrowUp",run:ks,shift:As},{key:"ArrowDown",run:xo,shift:Mo,preventDefault:!0},{mac:"Cmd-ArrowDown",run:Ts,shift:js},{mac:"Ctrl-ArrowDown",run:un,shift:Ms},{key:"PageUp",run:ks,shift:As},{key:"PageDown",run:un,shift:Ms},{key:"Home",run:lh,shift:bh,preventDefault:!0},{key:"Mod-Home",run:Ds,shift:Os},{key:"End",run:oh,shift:yh,preventDefault:!0},{key:"Mod-End",run:Ts,shift:js},{key:"Enter",run:Fh},{key:"Mod-a",run:kh},{key:"Backspace",run:fn,shift:fn},{key:"Delete",run:Oo},{key:"Mod-Backspace",mac:"Alt-Backspace",run:Ro},{key:"Mod-Delete",mac:"Alt-Delete",run:Th},{mac:"Mod-Backspace",run:Oh},{mac:"Mod-Delete",run:Bo}].concat(Hh.map(i=>({mac:i.key,run:i.run,shift:i.shift}))),$h=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:sh,shift:gh},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:rh,shift:xh},{key:"Alt-ArrowUp",run:Bh},{key:"Shift-Alt-ArrowUp",run:Lh},{key:"Alt-ArrowDown",run:Eh},{key:"Shift-Alt-ArrowDown",run:Ph},{key:"Escape",run:Dh},{key:"Mod-Enter",run:Wh},{key:"Alt-l",mac:"Ctrl-l",run:Ah},{key:"Mod-i",run:Mh,preventDefault:!0},{key:"Mod-[",run:No},{key:"Mod-]",run:Io},{key:"Mod-Alt-\\",run:Vh},{key:"Shift-Mod-k",run:Ih},{key:"Shift-Mod-\\",run:fh},{key:"Mod-/",run:Pc},{key:"Alt-A",run:Nc}].concat(zh),qh={key:"Tab",run:Io,shift:No},Rs=typeof String.prototype.normalize=="function"?i=>i.normalize("NFKD"):i=>i;class ct{constructor(e,t,n=0,s=e.length,r,o){this.test=o,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(n,s),this.bufferStart=n,this.normalize=r?l=>r(Rs(l)):Rs,this.query=this.normalize(t)}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 de(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=qn(e),n=this.bufferStart+this.bufferPos;this.bufferPos+=be(e);let s=this.normalize(t);for(let r=0,o=n;;r++){let l=s.charCodeAt(r),a=this.match(l,o);if(a)return this.value=a,this;if(r==s.length-1)break;o==n&&r<t.length&&t.charCodeAt(r)==l&&o++}}}match(e,t){let n=null;for(let s=0;s<this.matches.length;s+=2){let r=this.matches[s],o=!1;this.query.charCodeAt(r)==e&&(r==this.query.length-1?n={from:this.matches[s+1],to:t+1}:(this.matches[s]++,o=!0)),o||(this.matches.splice(s,2),s-=2)}return this.query.charCodeAt(0)==e&&(this.query.length==1?n={from:t,to:t+1}:this.matches.push(1,t)),n&&this.test&&!this.test(n.from,n.to,this.buffer,this.bufferPos)&&(n=null),n}}typeof Symbol<"u"&&(ct.prototype[Symbol.iterator]=function(){return this});const Fo={from:-1,to:-1,match:/.*/.exec("")},Qn="gm"+(/x/.unicode==null?"":"u");class Wo{constructor(e,t,n,s=0,r=e.length){if(this.text=e,this.to=r,this.curLine="",this.done=!1,this.value=Fo,/\\[sWDnr]|\n|\r|\[\^/.test(t))return new Vo(e,t,n,s,r);this.re=new RegExp(t,Qn+(n!=null&&n.ignoreCase?"i":"")),this.test=n==null?void 0:n.test,this.iter=e.iter();let o=e.lineAt(s);this.curLineStart=o.from,this.matchPos=li(e,s),this.getLine(this.curLineStart)}getLine(e){this.iter.next(e),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 e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let n=this.curLineStart+t.index,s=n+t[0].length;if(this.matchPos=li(this.text,s+(n==s?1:0)),n==this.curLineStart+this.curLine.length&&this.nextLine(),(n<s||n>this.value.to)&&(!this.test||this.test(n,s,t)))return this.value={from:n,to:s,match:t},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),e=0;else return this.done=!0,this}}}const $i=new WeakMap;class rt{constructor(e,t){this.from=e,this.text=t}get to(){return this.from+this.text.length}static get(e,t,n){let s=$i.get(e);if(!s||s.from>=n||s.to<=t){let l=new rt(t,e.sliceString(t,n));return $i.set(e,l),l}if(s.from==t&&s.to==n)return s;let{text:r,from:o}=s;return o>t&&(r=e.sliceString(t,o)+r,o=t),s.to<n&&(r+=e.sliceString(s.to,n)),$i.set(e,new rt(o,r)),new rt(t,r.slice(t-o,n-o))}}class Vo{constructor(e,t,n,s,r){this.text=e,this.to=r,this.done=!1,this.value=Fo,this.matchPos=li(e,s),this.re=new RegExp(t,Qn+(n!=null&&n.ignoreCase?"i":"")),this.test=n==null?void 0:n.test,this.flat=rt.get(e,s,this.chunkEnd(s+5e3))}chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let n=this.flat.from+t.index,s=n+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(n,s,t)))return this.value={from:n,to:s,match:t},this.matchPos=li(this.text,s+(n==s?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=rt.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(Wo.prototype[Symbol.iterator]=Vo.prototype[Symbol.iterator]=function(){return this});function Uh(i){try{return new RegExp(i,Qn),!0}catch{return!1}}function li(i,e){if(e>=i.length)return e;let t=i.lineAt(e),n;for(;e<t.to&&(n=t.text.charCodeAt(e-t.from))>=56320&&n<57344;)e++;return e}function pn(i){let e=I("input",{class:"cm-textfield",name:"line"}),t=I("form",{class:"cm-gotoLine",onkeydown:s=>{s.keyCode==27?(s.preventDefault(),i.dispatch({effects:ai.of(!1)}),i.focus()):s.keyCode==13&&(s.preventDefault(),n())},onsubmit:s=>{s.preventDefault(),n()}},I("label",i.state.phrase("Go to line"),": ",e)," ",I("button",{class:"cm-button",type:"submit"},i.state.phrase("go")));function n(){let s=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(e.value);if(!s)return;let{state:r}=i,o=r.doc.lineAt(r.selection.main.head),[,l,a,c,h]=s,u=c?+c.slice(1):0,f=a?+a:o.number;if(a&&h){let m=f/100;l&&(m=m*(l=="-"?-1:1)+o.number/r.doc.lines),f=Math.round(r.doc.lines*m)}else a&&l&&(f=f*(l=="-"?-1:1)+o.number);let p=r.doc.line(Math.max(1,Math.min(r.doc.lines,f)));i.dispatch({effects:ai.of(!1),selection:v.cursor(p.from+Math.max(0,Math.min(u,p.length))),scrollIntoView:!0}),i.focus()}return{dom:t}}const ai=_.define(),Bs=xt.define({create(){return!0},update(i,e){for(let t of e.effects)t.is(ai)&&(i=t.value);return i},provide:i=>Un.from(i,e=>e?pn:null)}),Kh=i=>{let e=Ot(i,pn);if(!e){let t=[ai.of(!0)];i.state.field(Bs,!1)==null&&t.push(_.appendConfig.of([Bs,Gh])),i.dispatch({effects:t}),e=Ot(i,pn)}return e&&e.dom.querySelector("input").focus(),!0},Gh=z.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),_h={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},Ho=P.define({combine(i){return Pt(i,_h,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})}});function Jh(i){let e=[ed,Zh];return i&&e.push(Ho.of(i)),e}const Yh=q.mark({class:"cm-selectionMatch"}),Xh=q.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function Es(i,e,t,n){return(t==0||i(e.sliceDoc(t-1,t))!=Z.Word)&&(n==e.doc.length||i(e.sliceDoc(n,n+1))!=Z.Word)}function Qh(i,e,t,n){return i(e.sliceDoc(t,t+1))==Z.Word&&i(e.sliceDoc(n-1,n))==Z.Word}const Zh=$n.fromClass(class{constructor(i){this.decorations=this.getDeco(i)}update(i){(i.selectionSet||i.docChanged||i.viewportChanged)&&(this.decorations=this.getDeco(i.view))}getDeco(i){let e=i.state.facet(Ho),{state:t}=i,n=t.selection;if(n.ranges.length>1)return q.none;let s=n.main,r,o=null;if(s.empty){if(!e.highlightWordAroundCursor)return q.none;let a=t.wordAt(s.head);if(!a)return q.none;o=t.charCategorizer(s.head),r=t.sliceDoc(a.from,a.to)}else{let a=s.to-s.from;if(a<e.minSelectionLength||a>200)return q.none;if(e.wholeWords){if(r=t.sliceDoc(s.from,s.to),o=t.charCategorizer(s.head),!(Es(o,t,s.from,s.to)&&Qh(o,t,s.from,s.to)))return q.none}else if(r=t.sliceDoc(s.from,s.to).trim(),!r)return q.none}let l=[];for(let a of i.visibleRanges){let c=new ct(t.doc,r,a.from,a.to);for(;!c.next().done;){let{from:h,to:u}=c.value;if((!o||Es(o,t,h,u))&&(s.empty&&h<=s.from&&u>=s.to?l.push(Xh.range(h,u)):(h>=s.to||u<=s.from)&&l.push(Yh.range(h,u)),l.length>e.maxMatches))return q.none}}return q.set(l)}},{decorations:i=>i.decorations}),ed=z.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),td=({state:i,dispatch:e})=>{let{selection:t}=i,n=v.create(t.ranges.map(s=>i.wordAt(s.head)||v.cursor(s.head)),t.mainIndex);return n.eq(t)?!1:(e(i.update({selection:n})),!0)};function id(i,e){let{main:t,ranges:n}=i.selection,s=i.wordAt(t.head),r=s&&s.from==t.from&&s.to==t.to;for(let o=!1,l=new ct(i.doc,e,n[n.length-1].to);;)if(l.next(),l.done){if(o)return null;l=new ct(i.doc,e,0,Math.max(0,n[n.length-1].from-1)),o=!0}else{if(o&&n.some(a=>a.from==l.value.from))continue;if(r){let a=i.wordAt(l.value.from);if(!a||a.from!=l.value.from||a.to!=l.value.to)continue}return l.value}}const nd=({state:i,dispatch:e})=>{let{ranges:t}=i.selection;if(t.some(r=>r.from===r.to))return td({state:i,dispatch:e});let n=i.sliceDoc(t[0].from,t[0].to);if(i.selection.ranges.some(r=>i.sliceDoc(r.from,r.to)!=n))return!1;let s=id(i,n);return s?(e(i.update({selection:i.selection.addRange(v.range(s.from,s.to),!1),effects:z.scrollIntoView(s.to)})),!0):!1},Zn=P.define({combine(i){return Pt(i,{top:!1,caseSensitive:!1,literal:!1,wholeWord:!1,createPanel:e=>new md(e)})}});class zo{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||Uh(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(t,n)=>n=="n"?`
|
|
1
|
+
import{u as ga,g as xa,r as M,j as d,_ as Pn,s as O,U as ya,a as G,B as R,C as T,d as ba,b as va,c as Fr,e as Sa,f as Mt,T as V,F as wa,I as Ca,S as ka,M as Aa,h as In,p as bs,i as vs,k as Zt,A as Wr,l as Ma,m as Da,n as Ss,o as Ta,P as Oa,q as ja,t as Ra,v as _e,D as Ba,w as wi,x as Ci,y as Ea,z as Vr,E as La,G as nt,H as Hr,J as Pa,K as Tt,L as He,N as zr,O as Nn,Q as $r,R as Ia,V as on,W as ei,X as ln,Y as Na,Z as Fa,$ as Wa,a0 as qr,a1 as Fn,a2 as ki,a3 as Va,a4 as ie,a5 as Ai,a6 as Ha,a7 as za,a8 as $a,a9 as qa,aa as Ua,ab as Ka,ac as ws,ad as Ur,ae as Wn,af as Vn,ag as Kr,ah as Hn,ai as Gr,aj as _r,ak as Jr,al as Yr,am as Ga,an as Cs,ao as _a,ap as Ja,aq as Hi,ar as Ya,as as Xa,at as Qa,au as Za,av as ec,aw as tc}from"./index-D3PezXCS.js";import{E as z,F as P,c as Pt,S as xt,a as v,T as ti,C as zn,b as ic,I as Xr,g as Qr,i as ri,d as ge,e as Zr,f as eo,h as an,A as Mi,j as _,m as et,s as yt,N as cn,D as nc,k as ve,V as $n,l as q,n as de,o as be,p as Ot,q as Z,P as Di,r as qn,t as Un,u as I,v as ke,R as sc,w as rc,x as De,M as st,y as at,z as Kn,B as oc,G as lc,H as ac,J as cc,K as hc,W as dc,L as uc,O as fc,Q as pc,U as mc,X as gc,Y as xc,Z as yc,_ as bc,$ as vc,a0 as Gn,a1 as Sc,a2 as wc,a3 as Cc,a4 as kc,a5 as Ac,a6 as to,a7 as io,a8 as b,a9 as Mc,aa as Dc}from"./index-C2dLqsgz.js";import{u as Tc}from"./useApiTokens-ZwBU99TL.js";import{d as Oc}from"./CheckCircleOutline-3N2b6C6u.js";import{S as jc}from"./StrategyItemContainer-CvZqeW-d.js";const Rc=()=>{const{makeRequest:i,createRequest:e,errors:t,loading:n}=ga({propagateErrors:!0}),s="api/admin/playground";return{evaluateAdvancedPlayground:async o=>{const l=`${s}/advanced`,a=e(l,{method:"POST",body:JSON.stringify(o)});return(await i(a.caller,a.id)).json()},errors:t,loading:n}};var _n={exports:{}};function no(i,e=100,t={}){if(typeof i!="function")throw new TypeError(`Expected the first parameter to be a function, got \`${typeof i}\`.`);if(e<0)throw new RangeError("`wait` must not be negative.");const{immediate:n}=typeof t=="boolean"?{immediate:t}:t;let s,r,o,l,a;function c(){const f=s,p=r;return s=void 0,r=void 0,a=i.apply(f,p),a}function h(){const f=Date.now()-l;f<e&&f>=0?o=setTimeout(h,e-f):(o=void 0,n||(a=c()))}const u=function(...f){if(s&&this!==s)throw new Error("Debounced method called with different contexts.");s=this,r=f,l=Date.now();const p=n&&!o;return o||(o=setTimeout(h,e)),p&&(a=c()),a};return u.clear=()=>{o&&(clearTimeout(o),o=void 0)},u.flush=()=>{o&&u.trigger()},u.trigger=()=>{a=c(),u.clear()},u}_n.exports.debounce=no;_n.exports=no;var Bc=_n.exports;const Ec=xa(Bc);function Lc(i,e){if(i==null)return{};var t={},n=Object.keys(i),s,r;for(r=0;r<n.length;r++)s=n[r],!(e.indexOf(s)>=0)&&(t[s]=i[s]);return t}const Pc=i=>{let e=Yn(i.state);return e.line?Ic(i):e.block?Fc(i):!1};function Jn(i,e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let s=i(e,t);return s?(n(t.update(s)),!0):!1}}const Ic=Jn(Hc,0),Nc=Jn(so,0),Fc=Jn((i,e)=>so(i,e,Vc(e)),0);function Yn(i,e=i.selection.main.head){let t=i.languageDataAt("commentTokens",e);return t.length?t[0]:{}}const St=50;function Wc(i,{open:e,close:t},n,s){let r=i.sliceDoc(n-St,n),o=i.sliceDoc(s,s+St),l=/\s*$/.exec(r)[0].length,a=/^\s*/.exec(o)[0].length,c=r.length-l;if(r.slice(c-e.length,c)==e&&o.slice(a,a+t.length)==t)return{open:{pos:n-l,margin:l&&1},close:{pos:s+a,margin:a&&1}};let h,u;s-n<=2*St?h=u=i.sliceDoc(n,s):(h=i.sliceDoc(n,n+St),u=i.sliceDoc(s-St,s));let f=/^\s*/.exec(h)[0].length,p=/\s*$/.exec(u)[0].length,m=u.length-p-t.length;return h.slice(f,f+e.length)==e&&u.slice(m,m+t.length)==t?{open:{pos:n+f+e.length,margin:/\s/.test(h.charAt(f+e.length))?1:0},close:{pos:s-p-t.length,margin:/\s/.test(u.charAt(m-1))?1:0}}:null}function Vc(i){let e=[];for(let t of i.selection.ranges){let n=i.doc.lineAt(t.from),s=t.to<=n.to?n:i.doc.lineAt(t.to),r=e.length-1;r>=0&&e[r].to>n.from?e[r].to=s.to:e.push({from:n.from,to:s.to})}return e}function so(i,e,t=e.selection.ranges){let n=t.map(r=>Yn(e,r.from).block);if(!n.every(r=>r))return null;let s=t.map((r,o)=>Wc(e,n[o],r.from,r.to));if(i!=2&&!s.every(r=>r))return{changes:e.changes(t.map((r,o)=>s[o]?[]:[{from:r.from,insert:n[o].open+" "},{from:r.to,insert:" "+n[o].close}]))};if(i!=1&&s.some(r=>r)){let r=[];for(let o=0,l;o<s.length;o++)if(l=s[o]){let a=n[o],{open:c,close:h}=l;r.push({from:c.pos-a.open.length,to:c.pos+c.margin},{from:h.pos-h.margin,to:h.pos+a.close.length})}return{changes:r}}return null}function Hc(i,e,t=e.selection.ranges){let n=[],s=-1;for(let{from:r,to:o}of t){let l=n.length,a=1e9;for(let c=r;c<=o;){let h=e.doc.lineAt(c);if(h.from>s&&(r==o||o>h.from)){s=h.from;let u=Yn(e,c).line;if(!u)continue;let f=/^\s*/.exec(h.text)[0].length,p=f==h.length,m=h.text.slice(f,f+u.length)==u?f:-1;f<h.text.length&&f<a&&(a=f),n.push({line:h,comment:m,token:u,indent:f,empty:p,single:!1})}c=h.to+1}if(a<1e9)for(let c=l;c<n.length;c++)n[c].indent<n[c].line.text.length&&(n[c].indent=a);n.length==l+1&&(n[l].single=!0)}if(i!=2&&n.some(r=>r.comment<0&&(!r.empty||r.single))){let r=[];for(let{line:l,token:a,indent:c,empty:h,single:u}of n)(u||!h)&&r.push({from:l.from+c,insert:a+" "});let o=e.changes(r);return{changes:o,selection:e.selection.map(o,1)}}else if(i!=1&&n.some(r=>r.comment>=0)){let r=[];for(let{line:o,comment:l,token:a}of n)if(l>=0){let c=o.from+l,h=c+a.length;o.text[h-o.from]==" "&&h++,r.push({from:c,to:h})}return{changes:r}}return null}const hn=Mi.define(),zc=Mi.define(),$c=P.define(),ro=P.define({combine(i){return Pt(i,{minDepth:100,newGroupDelay:500},{minDepth:Math.max,newGroupDelay:Math.min})}});function qc(i){let e=0;return i.iterChangedRanges((t,n)=>e=n),e}const oo=xt.define({create(){return Ce.empty},update(i,e){let t=e.state.facet(ro),n=e.annotation(hn);if(n){let a=e.docChanged?v.single(qc(e.changes)):void 0,c=le.fromTransaction(e,a),h=n.side,u=h==0?i.undone:i.done;return c?u=oi(u,u.length,t.minDepth,c):u=co(u,e.startState.selection),new Ce(h==0?n.rest:u,h==0?u:n.rest)}let s=e.annotation(zc);if((s=="full"||s=="before")&&(i=i.isolate()),e.annotation(ti.addToHistory)===!1)return e.changes.empty?i:i.addMapping(e.changes.desc);let r=le.fromTransaction(e),o=e.annotation(ti.time),l=e.annotation(ti.userEvent);return r?i=i.addChanges(r,o,l,t.newGroupDelay,t.minDepth):e.selection&&(i=i.addSelection(e.startState.selection,o,l,t.newGroupDelay)),(s=="full"||s=="after")&&(i=i.isolate()),i},toJSON(i){return{done:i.done.map(e=>e.toJSON()),undone:i.undone.map(e=>e.toJSON())}},fromJSON(i){return new Ce(i.done.map(le.fromJSON),i.undone.map(le.fromJSON))}});function Uc(i={}){return[oo,ro.of(i),z.domEventHandlers({beforeinput(e,t){let n=e.inputType=="historyUndo"?lo:e.inputType=="historyRedo"?dn:null;return n?(e.preventDefault(),n(t)):!1}})]}function Ti(i,e){return function({state:t,dispatch:n}){if(!e&&t.readOnly)return!1;let s=t.field(oo,!1);if(!s)return!1;let r=s.pop(i,t,e);return r?(n(r),!0):!1}}const lo=Ti(0,!1),dn=Ti(1,!1),Kc=Ti(0,!0),Gc=Ti(1,!0);class le{constructor(e,t,n,s,r){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=s,this.selectionsAfter=r}setSelAfter(e){return new le(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,n;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(n=this.startSelection)===null||n===void 0?void 0:n.toJSON(),selectionsAfter:this.selectionsAfter.map(s=>s.toJSON())}}static fromJSON(e){return new le(e.changes&&zn.fromJSON(e.changes),[],e.mapped&&ic.fromJSON(e.mapped),e.startSelection&&v.fromJSON(e.startSelection),e.selectionsAfter.map(v.fromJSON))}static fromTransaction(e,t){let n=me;for(let s of e.startState.facet($c)){let r=s(e);r.length&&(n=n.concat(r))}return!n.length&&e.changes.empty?null:new le(e.changes.invert(e.startState.doc),n,void 0,t||e.startState.selection,me)}static selection(e){return new le(void 0,me,void 0,void 0,e)}}function oi(i,e,t,n){let s=e+1>t+20?e-t-1:0,r=i.slice(s,e);return r.push(n),r}function _c(i,e){let t=[],n=!1;return i.iterChangedRanges((s,r)=>t.push(s,r)),e.iterChangedRanges((s,r,o,l)=>{for(let a=0;a<t.length;){let c=t[a++],h=t[a++];l>=c&&o<=h&&(n=!0)}}),n}function Jc(i,e){return i.ranges.length==e.ranges.length&&i.ranges.filter((t,n)=>t.empty!=e.ranges[n].empty).length===0}function ao(i,e){return i.length?e.length?i.concat(e):i:e}const me=[],Yc=200;function co(i,e){if(i.length){let t=i[i.length-1],n=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-Yc));return n.length&&n[n.length-1].eq(e)?i:(n.push(e),oi(i,i.length-1,1e9,t.setSelAfter(n)))}else return[le.selection([e])]}function Xc(i){let e=i[i.length-1],t=i.slice();return t[i.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}function zi(i,e){if(!i.length)return i;let t=i.length,n=me;for(;t;){let s=Qc(i[t-1],e,n);if(s.changes&&!s.changes.empty||s.effects.length){let r=i.slice(0,t);return r[t-1]=s,r}else e=s.mapped,t--,n=s.selectionsAfter}return n.length?[le.selection(n)]:me}function Qc(i,e,t){let n=ao(i.selectionsAfter.length?i.selectionsAfter.map(l=>l.map(e)):me,t);if(!i.changes)return le.selection(n);let s=i.changes.map(e),r=e.mapDesc(i.changes,!0),o=i.mapped?i.mapped.composeDesc(r):r;return new le(s,_.mapEffects(i.effects,e),o,i.startSelection.map(r),n)}const Zc=/^(input\.type|delete)($|\.)/;class Ce{constructor(e,t,n=0,s=void 0){this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=s}isolate(){return this.prevTime?new Ce(this.done,this.undone):this}addChanges(e,t,n,s,r){let o=this.done,l=o[o.length-1];return l&&l.changes&&!l.changes.empty&&e.changes&&(!n||Zc.test(n))&&(!l.selectionsAfter.length&&t-this.prevTime<s&&_c(l.changes,e.changes)||n=="input.type.compose")?o=oi(o,o.length-1,r,new le(e.changes.compose(l.changes),ao(e.effects,l.effects),l.mapped,l.startSelection,me)):o=oi(o,o.length,r,e),new Ce(o,me,t,n)}addSelection(e,t,n,s){let r=this.done.length?this.done[this.done.length-1].selectionsAfter:me;return r.length>0&&t-this.prevTime<s&&n==this.prevUserEvent&&n&&/^select($|\.)/.test(n)&&Jc(r[r.length-1],e)?this:new Ce(co(this.done,e),this.undone,t,n)}addMapping(e){return new Ce(zi(this.done,e),zi(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,t,n){let s=e==0?this.done:this.undone;if(s.length==0)return null;let r=s[s.length-1];if(n&&r.selectionsAfter.length)return t.update({selection:r.selectionsAfter[r.selectionsAfter.length-1],annotations:hn.of({side:e,rest:Xc(s)}),userEvent:e==0?"select.undo":"select.redo",scrollIntoView:!0});if(r.changes){let o=s.length==1?me:s.slice(0,s.length-1);return r.mapped&&(o=zi(o,r.mapped)),t.update({changes:r.changes,selection:r.startSelection,effects:r.effects,annotations:hn.of({side:e,rest:o}),filter:!1,userEvent:e==0?"undo":"redo",scrollIntoView:!0})}else return null}}Ce.empty=new Ce(me,me);const eh=[{key:"Mod-z",run:lo,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:dn,preventDefault:!0},{linux:"Ctrl-Shift-z",run:dn,preventDefault:!0},{key:"Mod-u",run:Kc,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:Gc,preventDefault:!0}];function bt(i,e){return v.create(i.ranges.map(e),i.mainIndex)}function Oe(i,e){return i.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function Se({state:i,dispatch:e},t){let n=bt(i.selection,t);return n.eq(i.selection)?!1:(e(Oe(i,n)),!0)}function Oi(i,e){return v.cursor(e?i.to:i.from)}function ho(i,e){return Se(i,t=>t.empty?i.moveByChar(t,e):Oi(t,e))}function te(i){return i.textDirectionAt(i.state.selection.main.head)==nc.LTR}const uo=i=>ho(i,!te(i)),fo=i=>ho(i,te(i));function po(i,e){return Se(i,t=>t.empty?i.moveByGroup(t,e):Oi(t,e))}const th=i=>po(i,!te(i)),ih=i=>po(i,te(i));function nh(i,e,t){if(e.type.prop(t))return!0;let n=e.to-e.from;return n&&(n>2||/[^\s,.;:]/.test(i.sliceDoc(e.from,e.to)))||e.firstChild}function ji(i,e,t){let n=yt(i).resolveInner(e.head),s=t?cn.closedBy:cn.openedBy;for(let a=e.head;;){let c=t?n.childAfter(a):n.childBefore(a);if(!c)break;nh(i,c,s)?n=c:a=t?c.to:c.from}let r=n.type.prop(s),o,l;return r&&(o=t?et(i,n.from,1):et(i,n.to,-1))&&o.matched?l=t?o.end.to:o.end.from:l=t?n.to:n.from,v.cursor(l,t?-1:1)}const sh=i=>Se(i,e=>ji(i.state,e,!te(i))),rh=i=>Se(i,e=>ji(i.state,e,te(i)));function mo(i,e){return Se(i,t=>{if(!t.empty)return Oi(t,e);let n=i.moveVertically(t,e);return n.head!=t.head?n:i.moveToLineBoundary(t,e)})}const go=i=>mo(i,!1),xo=i=>mo(i,!0);function yo(i){return Math.max(i.defaultLineHeight,Math.min(i.dom.clientHeight,innerHeight)-5)}function bo(i,e){let{state:t}=i,n=bt(t.selection,l=>l.empty?i.moveVertically(l,e,yo(i)):Oi(l,e));if(n.eq(t.selection))return!1;let s=i.coordsAtPos(t.selection.main.head),r=i.scrollDOM.getBoundingClientRect(),o;return s&&s.top>r.top&&s.bottom<r.bottom&&s.top-r.top<=i.scrollDOM.scrollHeight-i.scrollDOM.scrollTop-i.scrollDOM.clientHeight&&(o=z.scrollIntoView(n.main.head,{y:"start",yMargin:s.top-r.top})),i.dispatch(Oe(t,n),{effects:o}),!0}const ks=i=>bo(i,!1),un=i=>bo(i,!0);function ze(i,e,t){let n=i.lineBlockAt(e.head),s=i.moveToLineBoundary(e,t);if(s.head==e.head&&s.head!=(t?n.to:n.from)&&(s=i.moveToLineBoundary(e,t,!1)),!t&&s.head==n.from&&n.length){let r=/^\s*/.exec(i.state.sliceDoc(n.from,Math.min(n.from+100,n.to)))[0].length;r&&e.head!=n.from+r&&(s=v.cursor(n.from+r))}return s}const oh=i=>Se(i,e=>ze(i,e,!0)),lh=i=>Se(i,e=>ze(i,e,!1)),ah=i=>Se(i,e=>ze(i,e,!te(i))),ch=i=>Se(i,e=>ze(i,e,te(i))),hh=i=>Se(i,e=>v.cursor(i.lineBlockAt(e.head).from,1)),dh=i=>Se(i,e=>v.cursor(i.lineBlockAt(e.head).to,-1));function uh(i,e,t){let n=!1,s=bt(i.selection,r=>{let o=et(i,r.head,-1)||et(i,r.head,1)||r.head>0&&et(i,r.head-1,1)||r.head<i.doc.length&&et(i,r.head+1,-1);if(!o||!o.end)return r;n=!0;let l=o.start.from==r.head?o.end.to:o.end.from;return t?v.range(r.anchor,l):v.cursor(l)});return n?(e(Oe(i,s)),!0):!1}const fh=({state:i,dispatch:e})=>uh(i,e,!1);function ye(i,e){let t=bt(i.state.selection,n=>{let s=e(n);return v.range(n.anchor,s.head,s.goalColumn,s.bidiLevel||void 0)});return t.eq(i.state.selection)?!1:(i.dispatch(Oe(i.state,t)),!0)}function vo(i,e){return ye(i,t=>i.moveByChar(t,e))}const So=i=>vo(i,!te(i)),wo=i=>vo(i,te(i));function Co(i,e){return ye(i,t=>i.moveByGroup(t,e))}const ph=i=>Co(i,!te(i)),mh=i=>Co(i,te(i)),gh=i=>ye(i,e=>ji(i.state,e,!te(i))),xh=i=>ye(i,e=>ji(i.state,e,te(i)));function ko(i,e){return ye(i,t=>i.moveVertically(t,e))}const Ao=i=>ko(i,!1),Mo=i=>ko(i,!0);function Do(i,e){return ye(i,t=>i.moveVertically(t,e,yo(i)))}const As=i=>Do(i,!1),Ms=i=>Do(i,!0),yh=i=>ye(i,e=>ze(i,e,!0)),bh=i=>ye(i,e=>ze(i,e,!1)),vh=i=>ye(i,e=>ze(i,e,!te(i))),Sh=i=>ye(i,e=>ze(i,e,te(i))),wh=i=>ye(i,e=>v.cursor(i.lineBlockAt(e.head).from)),Ch=i=>ye(i,e=>v.cursor(i.lineBlockAt(e.head).to)),Ds=({state:i,dispatch:e})=>(e(Oe(i,{anchor:0})),!0),Ts=({state:i,dispatch:e})=>(e(Oe(i,{anchor:i.doc.length})),!0),Os=({state:i,dispatch:e})=>(e(Oe(i,{anchor:i.selection.main.anchor,head:0})),!0),js=({state:i,dispatch:e})=>(e(Oe(i,{anchor:i.selection.main.anchor,head:i.doc.length})),!0),kh=({state:i,dispatch:e})=>(e(i.update({selection:{anchor:0,head:i.doc.length},userEvent:"select"})),!0),Ah=({state:i,dispatch:e})=>{let t=Bi(i).map(({from:n,to:s})=>v.range(n,Math.min(s+1,i.doc.length)));return e(i.update({selection:v.create(t),userEvent:"select"})),!0},Mh=({state:i,dispatch:e})=>{let t=bt(i.selection,n=>{var s;let r=yt(i).resolveInner(n.head,1);for(;!(r.from<n.from&&r.to>=n.to||r.to>n.to&&r.from<=n.from||!(!((s=r.parent)===null||s===void 0)&&s.parent));)r=r.parent;return v.range(r.to,r.from)});return e(Oe(i,t)),!0},Dh=({state:i,dispatch:e})=>{let t=i.selection,n=null;return t.ranges.length>1?n=v.create([t.main]):t.main.empty||(n=v.create([v.cursor(t.main.head)])),n?(e(Oe(i,n)),!0):!1};function Ri(i,e){if(i.state.readOnly)return!1;let t="delete.selection",{state:n}=i,s=n.changeByRange(r=>{let{from:o,to:l}=r;if(o==l){let a=e(o);a<o?(t="delete.backward",a=Ht(i,a,!1)):a>o&&(t="delete.forward",a=Ht(i,a,!0)),o=Math.min(o,a),l=Math.max(l,a)}else o=Ht(i,o,!1),l=Ht(i,l,!0);return o==l?{range:r}:{changes:{from:o,to:l},range:v.cursor(o)}});return s.changes.empty?!1:(i.dispatch(n.update(s,{scrollIntoView:!0,userEvent:t,effects:t=="delete.selection"?z.announce.of(n.phrase("Selection deleted")):void 0})),!0)}function Ht(i,e,t){if(i instanceof z)for(let n of i.state.facet(z.atomicRanges).map(s=>s(i)))n.between(e,e,(s,r)=>{s<e&&r>e&&(e=t?r:s)});return e}const To=(i,e)=>Ri(i,t=>{let{state:n}=i,s=n.doc.lineAt(t),r,o;if(!e&&t>s.from&&t<s.from+200&&!/[^ \t]/.test(r=s.text.slice(0,t-s.from))){if(r[r.length-1]==" ")return t-1;let l=eo(r,n.tabSize),a=l%an(n)||an(n);for(let c=0;c<a&&r[r.length-1-c]==" ";c++)t--;o=t}else o=ve(s.text,t-s.from,e,e)+s.from,o==t&&s.number!=(e?n.doc.lines:1)&&(o+=e?1:-1);return o}),fn=i=>To(i,!1),Oo=i=>To(i,!0),jo=(i,e)=>Ri(i,t=>{let n=t,{state:s}=i,r=s.doc.lineAt(n),o=s.charCategorizer(n);for(let l=null;;){if(n==(e?r.to:r.from)){n==t&&r.number!=(e?s.doc.lines:1)&&(n+=e?1:-1);break}let a=ve(r.text,n-r.from,e)+r.from,c=r.text.slice(Math.min(n,a)-r.from,Math.max(n,a)-r.from),h=o(c);if(l!=null&&h!=l)break;(c!=" "||n!=t)&&(l=h),n=a}return n}),Ro=i=>jo(i,!1),Th=i=>jo(i,!0),Bo=i=>Ri(i,e=>{let t=i.lineBlockAt(e).to;return e<t?t:Math.min(i.state.doc.length,e+1)}),Oh=i=>Ri(i,e=>{let t=i.lineBlockAt(e).from;return e>t?t:Math.max(0,e-1)}),jh=({state:i,dispatch:e})=>{if(i.readOnly)return!1;let t=i.changeByRange(n=>({changes:{from:n.from,to:n.to,insert:ge.of(["",""])},range:v.cursor(n.from)}));return e(i.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},Rh=({state:i,dispatch:e})=>{if(i.readOnly)return!1;let t=i.changeByRange(n=>{if(!n.empty||n.from==0||n.from==i.doc.length)return{range:n};let s=n.from,r=i.doc.lineAt(s),o=s==r.from?s-1:ve(r.text,s-r.from,!1)+r.from,l=s==r.to?s+1:ve(r.text,s-r.from,!0)+r.from;return{changes:{from:o,to:l,insert:i.doc.slice(s,l).append(i.doc.slice(o,s))},range:v.cursor(l)}});return t.changes.empty?!1:(e(i.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function Bi(i){let e=[],t=-1;for(let n of i.selection.ranges){let s=i.doc.lineAt(n.from),r=i.doc.lineAt(n.to);if(!n.empty&&n.to==r.from&&(r=i.doc.lineAt(n.to-1)),t>=s.number){let o=e[e.length-1];o.to=r.to,o.ranges.push(n)}else e.push({from:s.from,to:r.to,ranges:[n]});t=r.number+1}return e}function Eo(i,e,t){if(i.readOnly)return!1;let n=[],s=[];for(let r of Bi(i)){if(t?r.to==i.doc.length:r.from==0)continue;let o=i.doc.lineAt(t?r.to+1:r.from-1),l=o.length+1;if(t){n.push({from:r.to,to:o.to},{from:r.from,insert:o.text+i.lineBreak});for(let a of r.ranges)s.push(v.range(Math.min(i.doc.length,a.anchor+l),Math.min(i.doc.length,a.head+l)))}else{n.push({from:o.from,to:r.from},{from:r.to,insert:i.lineBreak+o.text});for(let a of r.ranges)s.push(v.range(a.anchor-l,a.head-l))}}return n.length?(e(i.update({changes:n,scrollIntoView:!0,selection:v.create(s,i.selection.mainIndex),userEvent:"move.line"})),!0):!1}const Bh=({state:i,dispatch:e})=>Eo(i,e,!1),Eh=({state:i,dispatch:e})=>Eo(i,e,!0);function Lo(i,e,t){if(i.readOnly)return!1;let n=[];for(let s of Bi(i))t?n.push({from:s.from,insert:i.doc.slice(s.from,s.to)+i.lineBreak}):n.push({from:s.to,insert:i.lineBreak+i.doc.slice(s.from,s.to)});return e(i.update({changes:n,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const Lh=({state:i,dispatch:e})=>Lo(i,e,!1),Ph=({state:i,dispatch:e})=>Lo(i,e,!0),Ih=i=>{if(i.state.readOnly)return!1;let{state:e}=i,t=e.changes(Bi(e).map(({from:s,to:r})=>(s>0?s--:r<e.doc.length&&r++,{from:s,to:r}))),n=bt(e.selection,s=>i.moveVertically(s,!0)).map(t);return i.dispatch({changes:t,selection:n,scrollIntoView:!0,userEvent:"delete.line"}),!0};function Nh(i,e){if(/\(\)|\[\]|\{\}/.test(i.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=yt(i).resolveInner(e),n=t.childBefore(e),s=t.childAfter(e),r;return n&&s&&n.to<=e&&s.from>=e&&(r=n.type.prop(cn.closedBy))&&r.indexOf(s.name)>-1&&i.doc.lineAt(n.to).from==i.doc.lineAt(s.from).from?{from:n.to,to:s.from}:null}const Fh=Po(!1),Wh=Po(!0);function Po(i){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(s=>{let{from:r,to:o}=s,l=e.doc.lineAt(r),a=!i&&r==o&&Nh(e,r);i&&(r=o=(o<=l.to?l:e.doc.lineAt(o)).to);let c=new Xr(e,{simulateBreak:r,simulateDoubleBreak:!!a}),h=Qr(c,r);for(h==null&&(h=/^\s*/.exec(e.doc.lineAt(r).text)[0].length);o<l.to&&/\s/.test(l.text[o-l.from]);)o++;a?{from:r,to:o}=a:r>l.from&&r<l.from+100&&!/\S/.test(l.text.slice(0,r))&&(r=l.from);let u=["",ri(e,h)];return a&&u.push(ri(e,c.lineIndent(l.from,-1))),{changes:{from:r,to:o,insert:ge.of(u)},range:v.cursor(r+1+u[1].length)}});return t(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0}}function Xn(i,e){let t=-1;return i.changeByRange(n=>{let s=[];for(let o=n.from;o<=n.to;){let l=i.doc.lineAt(o);l.number>t&&(n.empty||n.to>l.from)&&(e(l,s,n),t=l.number),o=l.to+1}let r=i.changes(s);return{changes:s,range:v.range(r.mapPos(n.anchor,1),r.mapPos(n.head,1))}})}const Vh=({state:i,dispatch:e})=>{if(i.readOnly)return!1;let t=Object.create(null),n=new Xr(i,{overrideIndentation:r=>{let o=t[r];return o??-1}}),s=Xn(i,(r,o,l)=>{let a=Qr(n,r.from);if(a==null)return;/\S/.test(r.text)||(a=0);let c=/^\s*/.exec(r.text)[0],h=ri(i,a);(c!=h||l.from<r.from+c.length)&&(t[r.from]=a,o.push({from:r.from,to:r.from+c.length,insert:h}))});return s.changes.empty||e(i.update(s,{userEvent:"indent"})),!0},Io=({state:i,dispatch:e})=>i.readOnly?!1:(e(i.update(Xn(i,(t,n)=>{n.push({from:t.from,insert:i.facet(Zr)})}),{userEvent:"input.indent"})),!0),No=({state:i,dispatch:e})=>i.readOnly?!1:(e(i.update(Xn(i,(t,n)=>{let s=/^\s*/.exec(t.text)[0];if(!s)return;let r=eo(s,i.tabSize),o=0,l=ri(i,Math.max(0,r-an(i)));for(;o<s.length&&o<l.length&&s.charCodeAt(o)==l.charCodeAt(o);)o++;n.push({from:t.from+o,to:t.from+s.length,insert:l.slice(o)})}),{userEvent:"delete.dedent"})),!0),Hh=[{key:"Ctrl-b",run:uo,shift:So,preventDefault:!0},{key:"Ctrl-f",run:fo,shift:wo},{key:"Ctrl-p",run:go,shift:Ao},{key:"Ctrl-n",run:xo,shift:Mo},{key:"Ctrl-a",run:hh,shift:wh},{key:"Ctrl-e",run:dh,shift:Ch},{key:"Ctrl-d",run:Oo},{key:"Ctrl-h",run:fn},{key:"Ctrl-k",run:Bo},{key:"Ctrl-Alt-h",run:Ro},{key:"Ctrl-o",run:jh},{key:"Ctrl-t",run:Rh},{key:"Ctrl-v",run:un}],zh=[{key:"ArrowLeft",run:uo,shift:So,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:th,shift:ph,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:ah,shift:vh,preventDefault:!0},{key:"ArrowRight",run:fo,shift:wo,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:ih,shift:mh,preventDefault:!0},{mac:"Cmd-ArrowRight",run:ch,shift:Sh,preventDefault:!0},{key:"ArrowUp",run:go,shift:Ao,preventDefault:!0},{mac:"Cmd-ArrowUp",run:Ds,shift:Os},{mac:"Ctrl-ArrowUp",run:ks,shift:As},{key:"ArrowDown",run:xo,shift:Mo,preventDefault:!0},{mac:"Cmd-ArrowDown",run:Ts,shift:js},{mac:"Ctrl-ArrowDown",run:un,shift:Ms},{key:"PageUp",run:ks,shift:As},{key:"PageDown",run:un,shift:Ms},{key:"Home",run:lh,shift:bh,preventDefault:!0},{key:"Mod-Home",run:Ds,shift:Os},{key:"End",run:oh,shift:yh,preventDefault:!0},{key:"Mod-End",run:Ts,shift:js},{key:"Enter",run:Fh},{key:"Mod-a",run:kh},{key:"Backspace",run:fn,shift:fn},{key:"Delete",run:Oo},{key:"Mod-Backspace",mac:"Alt-Backspace",run:Ro},{key:"Mod-Delete",mac:"Alt-Delete",run:Th},{mac:"Mod-Backspace",run:Oh},{mac:"Mod-Delete",run:Bo}].concat(Hh.map(i=>({mac:i.key,run:i.run,shift:i.shift}))),$h=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:sh,shift:gh},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:rh,shift:xh},{key:"Alt-ArrowUp",run:Bh},{key:"Shift-Alt-ArrowUp",run:Lh},{key:"Alt-ArrowDown",run:Eh},{key:"Shift-Alt-ArrowDown",run:Ph},{key:"Escape",run:Dh},{key:"Mod-Enter",run:Wh},{key:"Alt-l",mac:"Ctrl-l",run:Ah},{key:"Mod-i",run:Mh,preventDefault:!0},{key:"Mod-[",run:No},{key:"Mod-]",run:Io},{key:"Mod-Alt-\\",run:Vh},{key:"Shift-Mod-k",run:Ih},{key:"Shift-Mod-\\",run:fh},{key:"Mod-/",run:Pc},{key:"Alt-A",run:Nc}].concat(zh),qh={key:"Tab",run:Io,shift:No},Rs=typeof String.prototype.normalize=="function"?i=>i.normalize("NFKD"):i=>i;class ct{constructor(e,t,n=0,s=e.length,r,o){this.test=o,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(n,s),this.bufferStart=n,this.normalize=r?l=>r(Rs(l)):Rs,this.query=this.normalize(t)}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 de(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=qn(e),n=this.bufferStart+this.bufferPos;this.bufferPos+=be(e);let s=this.normalize(t);for(let r=0,o=n;;r++){let l=s.charCodeAt(r),a=this.match(l,o);if(a)return this.value=a,this;if(r==s.length-1)break;o==n&&r<t.length&&t.charCodeAt(r)==l&&o++}}}match(e,t){let n=null;for(let s=0;s<this.matches.length;s+=2){let r=this.matches[s],o=!1;this.query.charCodeAt(r)==e&&(r==this.query.length-1?n={from:this.matches[s+1],to:t+1}:(this.matches[s]++,o=!0)),o||(this.matches.splice(s,2),s-=2)}return this.query.charCodeAt(0)==e&&(this.query.length==1?n={from:t,to:t+1}:this.matches.push(1,t)),n&&this.test&&!this.test(n.from,n.to,this.buffer,this.bufferPos)&&(n=null),n}}typeof Symbol<"u"&&(ct.prototype[Symbol.iterator]=function(){return this});const Fo={from:-1,to:-1,match:/.*/.exec("")},Qn="gm"+(/x/.unicode==null?"":"u");class Wo{constructor(e,t,n,s=0,r=e.length){if(this.text=e,this.to=r,this.curLine="",this.done=!1,this.value=Fo,/\\[sWDnr]|\n|\r|\[\^/.test(t))return new Vo(e,t,n,s,r);this.re=new RegExp(t,Qn+(n!=null&&n.ignoreCase?"i":"")),this.test=n==null?void 0:n.test,this.iter=e.iter();let o=e.lineAt(s);this.curLineStart=o.from,this.matchPos=li(e,s),this.getLine(this.curLineStart)}getLine(e){this.iter.next(e),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 e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let n=this.curLineStart+t.index,s=n+t[0].length;if(this.matchPos=li(this.text,s+(n==s?1:0)),n==this.curLineStart+this.curLine.length&&this.nextLine(),(n<s||n>this.value.to)&&(!this.test||this.test(n,s,t)))return this.value={from:n,to:s,match:t},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),e=0;else return this.done=!0,this}}}const $i=new WeakMap;class rt{constructor(e,t){this.from=e,this.text=t}get to(){return this.from+this.text.length}static get(e,t,n){let s=$i.get(e);if(!s||s.from>=n||s.to<=t){let l=new rt(t,e.sliceString(t,n));return $i.set(e,l),l}if(s.from==t&&s.to==n)return s;let{text:r,from:o}=s;return o>t&&(r=e.sliceString(t,o)+r,o=t),s.to<n&&(r+=e.sliceString(s.to,n)),$i.set(e,new rt(o,r)),new rt(t,r.slice(t-o,n-o))}}class Vo{constructor(e,t,n,s,r){this.text=e,this.to=r,this.done=!1,this.value=Fo,this.matchPos=li(e,s),this.re=new RegExp(t,Qn+(n!=null&&n.ignoreCase?"i":"")),this.test=n==null?void 0:n.test,this.flat=rt.get(e,s,this.chunkEnd(s+5e3))}chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let n=this.flat.from+t.index,s=n+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(n,s,t)))return this.value={from:n,to:s,match:t},this.matchPos=li(this.text,s+(n==s?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=rt.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(Wo.prototype[Symbol.iterator]=Vo.prototype[Symbol.iterator]=function(){return this});function Uh(i){try{return new RegExp(i,Qn),!0}catch{return!1}}function li(i,e){if(e>=i.length)return e;let t=i.lineAt(e),n;for(;e<t.to&&(n=t.text.charCodeAt(e-t.from))>=56320&&n<57344;)e++;return e}function pn(i){let e=I("input",{class:"cm-textfield",name:"line"}),t=I("form",{class:"cm-gotoLine",onkeydown:s=>{s.keyCode==27?(s.preventDefault(),i.dispatch({effects:ai.of(!1)}),i.focus()):s.keyCode==13&&(s.preventDefault(),n())},onsubmit:s=>{s.preventDefault(),n()}},I("label",i.state.phrase("Go to line"),": ",e)," ",I("button",{class:"cm-button",type:"submit"},i.state.phrase("go")));function n(){let s=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(e.value);if(!s)return;let{state:r}=i,o=r.doc.lineAt(r.selection.main.head),[,l,a,c,h]=s,u=c?+c.slice(1):0,f=a?+a:o.number;if(a&&h){let m=f/100;l&&(m=m*(l=="-"?-1:1)+o.number/r.doc.lines),f=Math.round(r.doc.lines*m)}else a&&l&&(f=f*(l=="-"?-1:1)+o.number);let p=r.doc.line(Math.max(1,Math.min(r.doc.lines,f)));i.dispatch({effects:ai.of(!1),selection:v.cursor(p.from+Math.max(0,Math.min(u,p.length))),scrollIntoView:!0}),i.focus()}return{dom:t}}const ai=_.define(),Bs=xt.define({create(){return!0},update(i,e){for(let t of e.effects)t.is(ai)&&(i=t.value);return i},provide:i=>Un.from(i,e=>e?pn:null)}),Kh=i=>{let e=Ot(i,pn);if(!e){let t=[ai.of(!0)];i.state.field(Bs,!1)==null&&t.push(_.appendConfig.of([Bs,Gh])),i.dispatch({effects:t}),e=Ot(i,pn)}return e&&e.dom.querySelector("input").focus(),!0},Gh=z.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),_h={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},Ho=P.define({combine(i){return Pt(i,_h,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})}});function Jh(i){let e=[ed,Zh];return i&&e.push(Ho.of(i)),e}const Yh=q.mark({class:"cm-selectionMatch"}),Xh=q.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function Es(i,e,t,n){return(t==0||i(e.sliceDoc(t-1,t))!=Z.Word)&&(n==e.doc.length||i(e.sliceDoc(n,n+1))!=Z.Word)}function Qh(i,e,t,n){return i(e.sliceDoc(t,t+1))==Z.Word&&i(e.sliceDoc(n-1,n))==Z.Word}const Zh=$n.fromClass(class{constructor(i){this.decorations=this.getDeco(i)}update(i){(i.selectionSet||i.docChanged||i.viewportChanged)&&(this.decorations=this.getDeco(i.view))}getDeco(i){let e=i.state.facet(Ho),{state:t}=i,n=t.selection;if(n.ranges.length>1)return q.none;let s=n.main,r,o=null;if(s.empty){if(!e.highlightWordAroundCursor)return q.none;let a=t.wordAt(s.head);if(!a)return q.none;o=t.charCategorizer(s.head),r=t.sliceDoc(a.from,a.to)}else{let a=s.to-s.from;if(a<e.minSelectionLength||a>200)return q.none;if(e.wholeWords){if(r=t.sliceDoc(s.from,s.to),o=t.charCategorizer(s.head),!(Es(o,t,s.from,s.to)&&Qh(o,t,s.from,s.to)))return q.none}else if(r=t.sliceDoc(s.from,s.to).trim(),!r)return q.none}let l=[];for(let a of i.visibleRanges){let c=new ct(t.doc,r,a.from,a.to);for(;!c.next().done;){let{from:h,to:u}=c.value;if((!o||Es(o,t,h,u))&&(s.empty&&h<=s.from&&u>=s.to?l.push(Xh.range(h,u)):(h>=s.to||u<=s.from)&&l.push(Yh.range(h,u)),l.length>e.maxMatches))return q.none}}return q.set(l)}},{decorations:i=>i.decorations}),ed=z.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),td=({state:i,dispatch:e})=>{let{selection:t}=i,n=v.create(t.ranges.map(s=>i.wordAt(s.head)||v.cursor(s.head)),t.mainIndex);return n.eq(t)?!1:(e(i.update({selection:n})),!0)};function id(i,e){let{main:t,ranges:n}=i.selection,s=i.wordAt(t.head),r=s&&s.from==t.from&&s.to==t.to;for(let o=!1,l=new ct(i.doc,e,n[n.length-1].to);;)if(l.next(),l.done){if(o)return null;l=new ct(i.doc,e,0,Math.max(0,n[n.length-1].from-1)),o=!0}else{if(o&&n.some(a=>a.from==l.value.from))continue;if(r){let a=i.wordAt(l.value.from);if(!a||a.from!=l.value.from||a.to!=l.value.to)continue}return l.value}}const nd=({state:i,dispatch:e})=>{let{ranges:t}=i.selection;if(t.some(r=>r.from===r.to))return td({state:i,dispatch:e});let n=i.sliceDoc(t[0].from,t[0].to);if(i.selection.ranges.some(r=>i.sliceDoc(r.from,r.to)!=n))return!1;let s=id(i,n);return s?(e(i.update({selection:i.selection.addRange(v.range(s.from,s.to),!1),effects:z.scrollIntoView(s.to)})),!0):!1},Zn=P.define({combine(i){return Pt(i,{top:!1,caseSensitive:!1,literal:!1,wholeWord:!1,createPanel:e=>new md(e)})}});class zo{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||Uh(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(t,n)=>n=="n"?`
|
|
2
2
|
`:n=="r"?"\r":n=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new ld(this):new rd(this)}getCursor(e,t=0,n){let s=e.doc?e:ke.create({doc:e});return n==null&&(n=s.doc.length),this.regexp?Ze(this,s,t,n):Qe(this,s,t,n)}}let $o=class{constructor(e){this.spec=e}};function Qe(i,e,t,n){return new ct(e.doc,i.unquoted,t,n,i.caseSensitive?void 0:s=>s.toLowerCase(),i.wholeWord?sd(e.doc,e.charCategorizer(e.selection.main.head)):void 0)}function sd(i,e){return(t,n,s,r)=>((r>t||r+s.length<n)&&(r=Math.max(0,t-2),s=i.sliceString(r,Math.min(i.length,n+2))),(e(ci(s,t-r))!=Z.Word||e(hi(s,t-r))!=Z.Word)&&(e(hi(s,n-r))!=Z.Word||e(ci(s,n-r))!=Z.Word))}class rd extends $o{constructor(e){super(e)}nextMatch(e,t,n){let s=Qe(this.spec,e,n,e.doc.length).nextOverlapping();return s.done&&(s=Qe(this.spec,e,0,t).nextOverlapping()),s.done?null:s.value}prevMatchInRange(e,t,n){for(let s=n;;){let r=Math.max(t,s-1e4-this.spec.unquoted.length),o=Qe(this.spec,e,r,s),l=null;for(;!o.nextOverlapping().done;)l=o.value;if(l)return l;if(r==t)return null;s-=1e4}}prevMatch(e,t,n){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,n,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,t){let n=Qe(this.spec,e,0,e.doc.length),s=[];for(;!n.next().done;){if(s.length>=t)return null;s.push(n.value)}return s}highlight(e,t,n,s){let r=Qe(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(n+this.spec.unquoted.length,e.doc.length));for(;!r.next().done;)s(r.value.from,r.value.to)}}function Ze(i,e,t,n){return new Wo(e.doc,i.search,{ignoreCase:!i.caseSensitive,test:i.wholeWord?od(e.charCategorizer(e.selection.main.head)):void 0},t,n)}function ci(i,e){return i.slice(ve(i,e,!1),e)}function hi(i,e){return i.slice(e,ve(i,e))}function od(i){return(e,t,n)=>!n[0].length||(i(ci(n.input,n.index))!=Z.Word||i(hi(n.input,n.index))!=Z.Word)&&(i(hi(n.input,n.index+n[0].length))!=Z.Word||i(ci(n.input,n.index+n[0].length))!=Z.Word)}class ld extends $o{nextMatch(e,t,n){let s=Ze(this.spec,e,n,e.doc.length).next();return s.done&&(s=Ze(this.spec,e,0,t).next()),s.done?null:s.value}prevMatchInRange(e,t,n){for(let s=1;;s++){let r=Math.max(t,n-s*1e4),o=Ze(this.spec,e,r,n),l=null;for(;!o.next().done;)l=o.value;if(l&&(r==t||l.from>r+10))return l;if(r==t)return null}}prevMatch(e,t,n){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,n,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace.replace(/\$([$&\d+])/g,(t,n)=>n=="$"?"$":n=="&"?e.match[0]:n!="0"&&+n<e.match.length?e.match[n]:t))}matchAll(e,t){let n=Ze(this.spec,e,0,e.doc.length),s=[];for(;!n.next().done;){if(s.length>=t)return null;s.push(n.value)}return s}highlight(e,t,n,s){let r=Ze(this.spec,e,Math.max(0,t-250),Math.min(n+250,e.doc.length));for(;!r.next().done;)s(r.value.from,r.value.to)}}const jt=_.define(),es=_.define(),Fe=xt.define({create(i){return new qi(mn(i).create(),null)},update(i,e){for(let t of e.effects)t.is(jt)?i=new qi(t.value.create(),i.panel):t.is(es)&&(i=new qi(i.query,t.value?ts:null));return i},provide:i=>Un.from(i,e=>e.panel)});class qi{constructor(e,t){this.query=e,this.panel=t}}const ad=q.mark({class:"cm-searchMatch"}),cd=q.mark({class:"cm-searchMatch cm-searchMatch-selected"}),hd=$n.fromClass(class{constructor(i){this.view=i,this.decorations=this.highlight(i.state.field(Fe))}update(i){let e=i.state.field(Fe);(e!=i.startState.field(Fe)||i.docChanged||i.selectionSet||i.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:i,panel:e}){if(!e||!i.spec.valid)return q.none;let{view:t}=this,n=new sc;for(let s=0,r=t.visibleRanges,o=r.length;s<o;s++){let{from:l,to:a}=r[s];for(;s<o-1&&a>r[s+1].from-2*250;)a=r[++s].to;i.highlight(t.state,l,a,(c,h)=>{let u=t.state.selection.ranges.some(f=>f.from==c&&f.to==h);n.add(c,h,u?cd:ad)})}return n.finish()}},{decorations:i=>i.decorations});function It(i){return e=>{let t=e.state.field(Fe,!1);return t&&t.query.spec.valid?i(e,t):qo(e)}}const di=It((i,{query:e})=>{let{to:t}=i.state.selection.main,n=e.nextMatch(i.state,t,t);return n?(i.dispatch({selection:{anchor:n.from,head:n.to},scrollIntoView:!0,effects:is(i,n),userEvent:"select.search"}),!0):!1}),ui=It((i,{query:e})=>{let{state:t}=i,{from:n}=t.selection.main,s=e.prevMatch(t,n,n);return s?(i.dispatch({selection:{anchor:s.from,head:s.to},scrollIntoView:!0,effects:is(i,s),userEvent:"select.search"}),!0):!1}),dd=It((i,{query:e})=>{let t=e.matchAll(i.state,1e3);return!t||!t.length?!1:(i.dispatch({selection:v.create(t.map(n=>v.range(n.from,n.to))),userEvent:"select.search.matches"}),!0)}),ud=({state:i,dispatch:e})=>{let t=i.selection;if(t.ranges.length>1||t.main.empty)return!1;let{from:n,to:s}=t.main,r=[],o=0;for(let l=new ct(i.doc,i.sliceDoc(n,s));!l.next().done;){if(r.length>1e3)return!1;l.value.from==n&&(o=r.length),r.push(v.range(l.value.from,l.value.to))}return e(i.update({selection:v.create(r,o),userEvent:"select.search.matches"})),!0},Ls=It((i,{query:e})=>{let{state:t}=i,{from:n,to:s}=t.selection.main;if(t.readOnly)return!1;let r=e.nextMatch(t,n,n);if(!r)return!1;let o=[],l,a,c=[];if(r.from==n&&r.to==s&&(a=t.toText(e.getReplacement(r)),o.push({from:r.from,to:r.to,insert:a}),r=e.nextMatch(t,r.from,r.to),c.push(z.announce.of(t.phrase("replaced match on line $",t.doc.lineAt(n).number)+"."))),r){let h=o.length==0||o[0].from>=r.to?0:r.to-r.from-a.length;l={anchor:r.from-h,head:r.to-h},c.push(is(i,r))}return i.dispatch({changes:o,selection:l,scrollIntoView:!!l,effects:c,userEvent:"input.replace"}),!0}),fd=It((i,{query:e})=>{if(i.state.readOnly)return!1;let t=e.matchAll(i.state,1e9).map(s=>{let{from:r,to:o}=s;return{from:r,to:o,insert:e.getReplacement(s)}});if(!t.length)return!1;let n=i.state.phrase("replaced $ matches",t.length)+".";return i.dispatch({changes:t,effects:z.announce.of(n),userEvent:"input.replace.all"}),!0});function ts(i){return i.state.facet(Zn).createPanel(i)}function mn(i,e){var t,n,s,r;let o=i.selection.main,l=o.empty||o.to>o.from+100?"":i.sliceDoc(o.from,o.to);if(e&&!l)return e;let a=i.facet(Zn);return new zo({search:((t=e==null?void 0:e.literal)!==null&&t!==void 0?t:a.literal)?l:l.replace(/\n/g,"\\n"),caseSensitive:(n=e==null?void 0:e.caseSensitive)!==null&&n!==void 0?n:a.caseSensitive,literal:(s=e==null?void 0:e.literal)!==null&&s!==void 0?s:a.literal,wholeWord:(r=e==null?void 0:e.wholeWord)!==null&&r!==void 0?r:a.wholeWord})}const qo=i=>{let e=i.state.field(Fe,!1);if(e&&e.panel){let t=Ot(i,ts);if(!t)return!1;let n=t.dom.querySelector("[main-field]");if(n&&n!=i.root.activeElement){let s=mn(i.state,e.query.spec);s.valid&&i.dispatch({effects:jt.of(s)}),n.focus(),n.select()}}else i.dispatch({effects:[es.of(!0),e?jt.of(mn(i.state,e.query.spec)):_.appendConfig.of(xd)]});return!0},Uo=i=>{let e=i.state.field(Fe,!1);if(!e||!e.panel)return!1;let t=Ot(i,ts);return t&&t.dom.contains(i.root.activeElement)&&i.focus(),i.dispatch({effects:es.of(!1)}),!0},pd=[{key:"Mod-f",run:qo,scope:"editor search-panel"},{key:"F3",run:di,shift:ui,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:di,shift:ui,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:Uo,scope:"editor search-panel"},{key:"Mod-Shift-l",run:ud},{key:"Alt-g",run:Kh},{key:"Mod-d",run:nd,preventDefault:!0}];class md{constructor(e){this.view=e;let t=this.query=e.state.field(Fe).query.spec;this.commit=this.commit.bind(this),this.searchField=I("input",{value:t.search,placeholder:ce(e,"Find"),"aria-label":ce(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=I("input",{value:t.replace,placeholder:ce(e,"Replace"),"aria-label":ce(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=I("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=I("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=I("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit});function n(s,r,o){return I("button",{class:"cm-button",name:s,onclick:r,type:"button"},o)}this.dom=I("div",{onkeydown:s=>this.keydown(s),class:"cm-search"},[this.searchField,n("next",()=>di(e),[ce(e,"next")]),n("prev",()=>ui(e),[ce(e,"previous")]),n("select",()=>dd(e),[ce(e,"all")]),I("label",null,[this.caseField,ce(e,"match case")]),I("label",null,[this.reField,ce(e,"regexp")]),I("label",null,[this.wordField,ce(e,"by word")]),...e.state.readOnly?[]:[I("br"),this.replaceField,n("replace",()=>Ls(e),[ce(e,"replace")]),n("replaceAll",()=>fd(e),[ce(e,"replace all")])],I("button",{name:"close",onclick:()=>Uo(e),"aria-label":ce(e,"close"),type:"button"},["×"])])}commit(){let e=new zo({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:jt.of(e)}))}keydown(e){rc(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?ui:di)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),Ls(this.view))}update(e){for(let t of e.transactions)for(let n of t.effects)n.is(jt)&&!n.value.eq(this.query)&&this.setQuery(n.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(Zn).top}}function ce(i,e){return i.state.phrase(e)}const zt=30,$t=/[\s\.,:;?!]/;function is(i,{from:e,to:t}){let n=i.state.doc.lineAt(e),s=i.state.doc.lineAt(t).to,r=Math.max(n.from,e-zt),o=Math.min(s,t+zt),l=i.state.sliceDoc(r,o);if(r!=n.from){for(let a=0;a<zt;a++)if(!$t.test(l[a+1])&&$t.test(l[a])){l=l.slice(a);break}}if(o!=s){for(let a=l.length-1;a>l.length-zt;a--)if(!$t.test(l[a-1])&&$t.test(l[a])){l=l.slice(0,a);break}}return z.announce.of(`${i.state.phrase("current match")}. ${l} ${i.state.phrase("on line")} ${n.number}.`)}const gd=z.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"}}),xd=[Fe,Di.lowest(hd),gd];function fi(i){let e;return i.nodeType==11?e=i.getSelection?i:i.ownerDocument:e=i,e.getSelection()}function ht(i,e){return e?i==e||i.contains(e.nodeType!=1?e.parentNode:e):!1}function yd(i){let e=i.activeElement;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}function ii(i,e){if(!e.anchorNode)return!1;try{return ht(i,e.anchorNode)}catch{return!1}}function Rt(i){return i.nodeType==3?dt(i,0,i.nodeValue.length).getClientRects():i.nodeType==1?i.getClientRects():[]}function pi(i,e,t,n){return t?Ps(i,e,t,n,-1)||Ps(i,e,t,n,1):!1}function mi(i){for(var e=0;;e++)if(i=i.previousSibling,!i)return e}function Ps(i,e,t,n,s){for(;;){if(i==t&&e==n)return!0;if(e==(s<0?0:Bt(i))){if(i.nodeName=="DIV")return!1;let r=i.parentNode;if(!r||r.nodeType!=1)return!1;e=mi(i)+(s<0?0:1),i=r}else if(i.nodeType==1){if(i=i.childNodes[e+(s<0?-1:0)],i.nodeType==1&&i.contentEditable=="false")return!1;e=s<0?Bt(i):0}else return!1}}function Bt(i){return i.nodeType==3?i.nodeValue.length:i.childNodes.length}const Ko={left:0,right:0,top:0,bottom:0};function ns(i,e){let t=e?i.left:i.right;return{left:t,right:t,top:i.top,bottom:i.bottom}}function bd(i){return{left:0,right:i.innerWidth,top:0,bottom:i.innerHeight}}function vd(i,e,t,n,s,r,o,l){let a=i.ownerDocument,c=a.defaultView||window;for(let h=i;h;)if(h.nodeType==1){let u,f=h==a.body;if(f)u=bd(c);else{if(h.scrollHeight<=h.clientHeight&&h.scrollWidth<=h.clientWidth){h=h.assignedSlot||h.parentNode;continue}let x=h.getBoundingClientRect();u={left:x.left,right:x.left+h.clientWidth,top:x.top,bottom:x.top+h.clientHeight}}let p=0,m=0;if(s=="nearest")e.top<u.top?(m=-(u.top-e.top+o),t>0&&e.bottom>u.bottom+m&&(m=e.bottom-u.bottom+m+o)):e.bottom>u.bottom&&(m=e.bottom-u.bottom+o,t<0&&e.top-m<u.top&&(m=-(u.top+m-e.top+o)));else{let x=e.bottom-e.top,g=u.bottom-u.top;m=(s=="center"&&x<=g?e.top+x/2-g/2:s=="start"||s=="center"&&t<0?e.top-o:e.bottom-g+o)-u.top}if(n=="nearest"?e.left<u.left?(p=-(u.left-e.left+r),t>0&&e.right>u.right+p&&(p=e.right-u.right+p+r)):e.right>u.right&&(p=e.right-u.right+r,t<0&&e.left<u.left+p&&(p=-(u.left+p-e.left+r))):p=(n=="center"?e.left+(e.right-e.left)/2-(u.right-u.left)/2:n=="start"==l?e.left-r:e.right-(u.right-u.left)+r)-u.left,p||m)if(f)c.scrollBy(p,m);else{let x=0,g=0;if(m){let y=h.scrollTop;h.scrollTop+=m,g=h.scrollTop-y}if(p){let y=h.scrollLeft;h.scrollLeft+=p,x=h.scrollLeft-y}e={left:e.left-x,top:e.top-g,right:e.right-x,bottom:e.bottom-g},x&&Math.abs(x-p)<1&&(n="nearest"),g&&Math.abs(g-m)<1&&(s="nearest")}if(f)break;h=h.assignedSlot||h.parentNode}else if(h.nodeType==11)h=h.host;else break}function Sd(i){let e=i.ownerDocument;for(let t=i.parentNode;t&&t!=e.body;)if(t.nodeType==1){if(t.scrollHeight>t.clientHeight||t.scrollWidth>t.clientWidth)return t;t=t.assignedSlot||t.parentNode}else if(t.nodeType==11)t=t.host;else break;return null}class wd{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){this.set(e.anchorNode,e.anchorOffset,e.focusNode,e.focusOffset)}set(e,t,n,s){this.anchorNode=e,this.anchorOffset=t,this.focusNode=n,this.focusOffset=s}}let Xe=null;function Go(i){if(i.setActive)return i.setActive();if(Xe)return i.focus(Xe);let e=[];for(let t=i;t&&(e.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(i.focus(Xe==null?{get preventScroll(){return Xe={preventScroll:!0},!0}}:void 0),!Xe){Xe=!1;for(let t=0;t<e.length;){let n=e[t++],s=e[t++],r=e[t++];n.scrollTop!=s&&(n.scrollTop=s),n.scrollLeft!=r&&(n.scrollLeft=r)}}}let Is;function dt(i,e,t=e){let n=Is||(Is=document.createRange());return n.setEnd(i,t),n.setStart(i,e),n}function ot(i,e,t){let n={key:e,code:e,keyCode:t,which:t,cancelable:!0},s=new KeyboardEvent("keydown",n);s.synthetic=!0,i.dispatchEvent(s);let r=new KeyboardEvent("keyup",n);return r.synthetic=!0,i.dispatchEvent(r),s.defaultPrevented||r.defaultPrevented}function Cd(i){for(;i;){if(i&&(i.nodeType==9||i.nodeType==11&&i.host))return i;i=i.assignedSlot||i.parentNode}return null}function _o(i){for(;i.attributes.length;)i.removeAttributeNode(i.attributes[0])}function kd(i,e){let t=e.focusNode,n=e.focusOffset;if(!t||e.anchorNode!=t||e.anchorOffset!=n)return!1;for(;;)if(n){if(t.nodeType!=1)return!1;let s=t.childNodes[n-1];s.contentEditable=="false"?n--:(t=s,n=Bt(t))}else{if(t==i)return!0;n=mi(t),t=t.parentNode}}class ee{constructor(e,t,n=!0){this.node=e,this.offset=t,this.precise=n}static before(e,t){return new ee(e.parentNode,mi(e),t)}static after(e,t){return new ee(e.parentNode,mi(e)+1,t)}}const ss=[];class F{constructor(){this.parent=null,this.dom=null,this.dirty=2}get editorView(){if(!this.parent)throw new Error("Accessing view in orphan content view");return this.parent.editorView}get overrideDOMText(){return null}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e){let t=this.posAtStart;for(let n of this.children){if(n==e)return t;t+=n.length+n.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}coordsAt(e,t){return null}sync(e){if(this.dirty&2){let t=this.dom,n=null,s;for(let r of this.children){if(r.dirty){if(!r.dom&&(s=n?n.nextSibling:t.firstChild)){let o=F.get(s);(!o||!o.parent&&o.canReuseDOM(r))&&r.reuseDOM(s)}r.sync(e),r.dirty=0}if(s=n?n.nextSibling:t.firstChild,e&&!e.written&&e.node==t&&s!=r.dom&&(e.written=!0),r.dom.parentNode==t)for(;s&&s!=r.dom;)s=Ns(s);else t.insertBefore(r.dom,s);n=r.dom}for(s=n?n.nextSibling:t.firstChild,s&&e&&e.node==t&&(e.written=!0);s;)s=Ns(s)}else if(this.dirty&1)for(let t of this.children)t.dirty&&(t.sync(e),t.dirty=0)}reuseDOM(e){}localPosFromDOM(e,t){let n;if(e==this.dom)n=this.dom.childNodes[t];else{let s=Bt(e)==0?0:t==0?-1:1;for(;;){let r=e.parentNode;if(r==this.dom)break;s==0&&r.firstChild!=r.lastChild&&(e==r.firstChild?s=-1:s=1),e=r}s<0?n=e:n=e.nextSibling}if(n==this.dom.firstChild)return 0;for(;n&&!F.get(n);)n=n.nextSibling;if(!n)return this.length;for(let s=0,r=0;;s++){let o=this.children[s];if(o.dom==n)return r;r+=o.length+o.breakAfter}}domBoundsAround(e,t,n=0){let s=-1,r=-1,o=-1,l=-1;for(let a=0,c=n,h=n;a<this.children.length;a++){let u=this.children[a],f=c+u.length;if(c<e&&f>t)return u.domBoundsAround(e,t,c);if(f>=e&&s==-1&&(s=a,r=c),c>t&&u.dom.parentNode==this.dom){o=a,l=h;break}h=f,c=f+u.breakAfter}return{from:r,to:l<0?n+this.length:l,startDOM:(s?this.children[s-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:o<this.children.length&&o>=0?this.children[o].dom:null}}markDirty(e=!1){this.dirty|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let t=this.parent;t;t=t.parent){if(e&&(t.dirty|=2),t.dirty&1)return;t.dirty|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.dirty&&this.markParentsDirty(!0))}setDOM(e){this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this}get rootView(){for(let e=this;;){let t=e.parent;if(!t)return e;e=t}}replaceChildren(e,t,n=ss){this.markDirty();for(let s=e;s<t;s++){let r=this.children[s];r.parent==this&&r.destroy()}this.children.splice(e,t-e,...n);for(let s=0;s<n.length;s++)n[s].setParent(this)}ignoreMutation(e){return!1}ignoreEvent(e){return!1}childCursor(e=this.length){return new Jo(this.children,e,this.children.length)}childPos(e,t=1){return this.childCursor().findPos(e,t)}toString(){let e=this.constructor.name.replace("View","");return e+(this.children.length?"("+this.children.join()+")":this.length?"["+(e=="Text"?this.text:this.length)+"]":"")+(this.breakAfter?"#":"")}static get(e){return e.cmView}get isEditable(){return!0}merge(e,t,n,s,r,o){return!1}become(e){return!1}canReuseDOM(e){return e.constructor==this.constructor}getSide(){return 0}destroy(){this.parent=null}}F.prototype.breakAfter=0;function Ns(i){let e=i.nextSibling;return i.parentNode.removeChild(i),e}class Jo{constructor(e,t,n){this.children=e,this.pos=t,this.i=n,this.off=0}findPos(e,t=1){for(;;){if(e>this.pos||e==this.pos&&(t>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let n=this.children[--this.i];this.pos-=n.length+n.breakAfter}}}function Yo(i,e,t,n,s,r,o,l,a){let{children:c}=i,h=c.length?c[e]:null,u=r.length?r[r.length-1]:null,f=u?u.breakAfter:o;if(!(e==n&&h&&!o&&!f&&r.length<2&&h.merge(t,s,r.length?u:null,t==0,l,a))){if(n<c.length){let p=c[n];p&&s<p.length?(e==n&&(p=p.split(s),s=0),!f&&u&&p.merge(0,s,u,!0,0,a)?r[r.length-1]=p:(s&&p.merge(0,s,null,!1,0,a),r.push(p))):p!=null&&p.breakAfter&&(u?u.breakAfter=1:o=1),n++}for(h&&(h.breakAfter=o,t>0&&(!o&&r.length&&h.merge(t,h.length,r[0],!1,l,0)?h.breakAfter=r.shift().breakAfter:(t<h.length||h.children.length&&h.children[h.children.length-1].length==0)&&h.merge(t,h.length,null,!1,l,0),e++));e<n&&r.length;)if(c[n-1].become(r[r.length-1]))n--,r.pop(),a=r.length?0:l;else if(c[e].become(r[0]))e++,r.shift(),l=r.length?0:a;else break;!r.length&&e&&n<c.length&&!c[e-1].breakAfter&&c[n].merge(0,0,c[e-1],!1,l,a)&&e--,(e<n||r.length)&&i.replaceChildren(e,n,r)}}function Xo(i,e,t,n,s,r){let o=i.childCursor(),{i:l,off:a}=o.findPos(t,1),{i:c,off:h}=o.findPos(e,-1),u=e-t;for(let f of n)u+=f.length;i.length+=u,Yo(i,c,h,l,a,n,0,s,r)}let ue=typeof navigator<"u"?navigator:{userAgent:"",vendor:"",platform:""},gn=typeof document<"u"?document:{documentElement:{style:{}}};const xn=/Edge\/(\d+)/.exec(ue.userAgent),Qo=/MSIE \d/.test(ue.userAgent),yn=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(ue.userAgent),Ei=!!(Qo||yn||xn),Fs=!Ei&&/gecko\/(\d+)/i.test(ue.userAgent),Ui=!Ei&&/Chrome\/(\d+)/.exec(ue.userAgent),Ws="webkitFontSmoothing"in gn.documentElement.style,Zo=!Ei&&/Apple Computer/.test(ue.vendor),Vs=Zo&&(/Mobile\/\w+/.test(ue.userAgent)||ue.maxTouchPoints>2);var A={mac:Vs||/Mac/.test(ue.platform),windows:/Win/.test(ue.platform),linux:/Linux|X11/.test(ue.platform),ie:Ei,ie_version:Qo?gn.documentMode||6:yn?+yn[1]:xn?+xn[1]:0,gecko:Fs,gecko_version:Fs?+(/Firefox\/(\d+)/.exec(ue.userAgent)||[0,0])[1]:0,chrome:!!Ui,chrome_version:Ui?+Ui[1]:0,ios:Vs,android:/Android\b/.test(ue.userAgent),webkit:Ws,safari:Zo,webkit_version:Ws?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:gn.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};const Ad=256;class Ve extends F{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(e&&e.node==this.dom&&(e.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,t,n){return n&&(!(n instanceof Ve)||this.length-(t-e)+n.length>Ad)?!1:(this.text=this.text.slice(0,e)+(n?n.text:"")+this.text.slice(t),this.markDirty(),!0)}split(e){let t=new Ve(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),t}localPosFromDOM(e,t){return e==this.dom?t:t?this.text.length:0}domAtPos(e){return new ee(this.dom,e)}domBoundsAround(e,t,n){return{from:n,to:n+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,t){return bn(this.dom,e,t)}}class Te extends F{constructor(e,t=[],n=0){super(),this.mark=e,this.children=t,this.length=n;for(let s of t)s.setParent(this)}setAttrs(e){if(_o(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let t in this.mark.attrs)e.setAttribute(t,this.mark.attrs[t]);return e}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.dirty|=6)}sync(e){this.dom?this.dirty&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e)}merge(e,t,n,s,r,o){return n&&(!(n instanceof Te&&n.mark.eq(this.mark))||e&&r<=0||t<this.length&&o<=0)?!1:(Xo(this,e,t,n?n.children:[],r-1,o-1),this.markDirty(),!0)}split(e){let t=[],n=0,s=-1,r=0;for(let l of this.children){let a=n+l.length;a>e&&t.push(n<e?l.split(e-n):l),s<0&&n>=e&&(s=r),n=a,r++}let o=this.length-e;return this.length=e,s>-1&&(this.children.length=s,this.markDirty()),new Te(this.mark,t,o)}domAtPos(e){return il(this,e)}coordsAt(e,t){return sl(this,e,t)}}function bn(i,e,t){let n=i.nodeValue.length;e>n&&(e=n);let s=e,r=e,o=0;e==0&&t<0||e==n&&t>=0?A.chrome||A.gecko||(e?(s--,o=1):r<n&&(r++,o=-1)):t<0?s--:r<n&&r++;let l=dt(i,s,r).getClientRects();if(!l.length)return Ko;let a=l[(o?o<0:t>=0)?0:l.length-1];return A.safari&&!o&&a.width==0&&(a=Array.prototype.find.call(l,c=>c.width)||a),o?ns(a,o<0):a||null}class Pe extends F{constructor(e,t,n){super(),this.widget=e,this.length=t,this.side=n,this.prevWidget=null}static create(e,t,n){return new(e.customView||Pe)(e,t,n)}split(e){let t=Pe.create(this.widget,this.length-e,this.side);return this.length-=e,t}sync(){(!this.dom||!this.widget.updateDOM(this.dom))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(this.editorView)),this.dom.contentEditable="false")}getSide(){return this.side}merge(e,t,n,s,r,o){return n&&(!(n instanceof Pe)||!this.widget.compare(n.widget)||e>0&&r<=0||t<this.length&&o<=0)?!1:(this.length=e+(n?n.length:0)+(this.length-t),!0)}become(e){return e.length==this.length&&e instanceof Pe&&e.side==this.side&&this.widget.constructor==e.widget.constructor?(this.widget.eq(e.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=e.widget,!0):!1}ignoreMutation(){return!0}ignoreEvent(e){return this.widget.ignoreEvent(e)}get overrideDOMText(){if(this.length==0)return ge.empty;let e=this;for(;e.parent;)e=e.parent;let t=e.editorView,n=t&&t.state.doc,s=this.posAtStart;return n?n.slice(s,s+this.length):ge.empty}domAtPos(e){return e==0?ee.before(this.dom):ee.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,t){let n=this.dom.getClientRects(),s=null;if(!n.length)return Ko;for(let r=e>0?n.length-1:0;s=n[r],!(e>0?r==0:r==n.length-1||s.top<s.bottom);r+=e>0?-1:1);return this.length?s:ns(s,this.side>0)}get isEditable(){return!1}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}}class el extends Pe{domAtPos(e){let{topView:t,text:n}=this.widget;return t?vn(e,0,t,n,(s,r)=>s.domAtPos(r),s=>new ee(n,Math.min(s,n.nodeValue.length))):new ee(n,Math.min(e,n.nodeValue.length))}sync(){this.setDOM(this.widget.toDOM())}localPosFromDOM(e,t){let{topView:n,text:s}=this.widget;return n?tl(e,t,n,s):Math.min(t,this.length)}ignoreMutation(){return!1}get overrideDOMText(){return null}coordsAt(e,t){let{topView:n,text:s}=this.widget;return n?vn(e,t,n,s,(r,o,l)=>r.coordsAt(o,l),(r,o)=>bn(s,r,o)):bn(s,e,t)}destroy(){var e;super.destroy(),(e=this.widget.topView)===null||e===void 0||e.destroy()}get isEditable(){return!0}canReuseDOM(){return!0}}function vn(i,e,t,n,s,r){if(t instanceof Te){for(let o=t.dom.firstChild;o;o=o.nextSibling){let l=F.get(o);if(!l)return r(i,e);let a=ht(o,n),c=l.length+(a?n.nodeValue.length:0);if(i<c||i==c&&l.getSide()<=0)return a?vn(i,e,l,n,s,r):s(l,i,e);i-=c}return s(t,t.length,-1)}else return t.dom==n?r(i,e):s(t,i,e)}function tl(i,e,t,n){if(t instanceof Te)for(let s of t.children){let r=0,o=ht(s.dom,n);if(ht(s.dom,i))return r+(o?tl(i,e,s,n):s.localPosFromDOM(i,e));r+=o?n.nodeValue.length:s.length}else if(t.dom==n)return Math.min(e,n.nodeValue.length);return t.localPosFromDOM(i,e)}class ut extends F{constructor(e){super(),this.side=e}get length(){return 0}merge(){return!1}become(e){return e instanceof ut&&e.side==this.side}split(){return new ut(this.side)}sync(){if(!this.dom){let e=document.createElement("img");e.className="cm-widgetBuffer",e.setAttribute("aria-hidden","true"),this.setDOM(e)}}getSide(){return this.side}domAtPos(e){return ee.before(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){let t=this.dom.getBoundingClientRect(),n=Md(this,this.side>0?-1:1);return n&&n.top<t.bottom&&n.bottom>t.top?{left:t.left,right:t.right,top:n.top,bottom:n.bottom}:t}get overrideDOMText(){return ge.empty}}Ve.prototype.children=Pe.prototype.children=ut.prototype.children=ss;function Md(i,e){let t=i.parent,n=t?t.children.indexOf(i):-1;for(;t&&n>=0;)if(e<0?n>0:n<t.children.length){let s=t.children[n+e];if(s instanceof Ve){let r=s.coordsAt(e<0?s.length:0,e);if(r)return r}n+=e}else if(t instanceof Te&&t.parent)n=t.parent.children.indexOf(t)+(e<0?0:1),t=t.parent;else{let s=t.dom.lastChild;if(s&&s.nodeName=="BR")return s.getClientRects()[0];break}}function il(i,e){let t=i.dom,{children:n}=i,s=0;for(let r=0;s<n.length;s++){let o=n[s],l=r+o.length;if(!(l==r&&o.getSide()<=0)){if(e>r&&e<l&&o.dom.parentNode==t)return o.domAtPos(e-r);if(e<=r)break;r=l}}for(let r=s;r>0;r--){let o=n[r-1];if(o.dom.parentNode==t)return o.domAtPos(o.length)}for(let r=s;r<n.length;r++){let o=n[r];if(o.dom.parentNode==t)return o.domAtPos(0)}return new ee(t,0)}function nl(i,e,t){let n,{children:s}=i;t>0&&e instanceof Te&&s.length&&(n=s[s.length-1])instanceof Te&&n.mark.eq(e.mark)?nl(n,e.children[0],t-1):(s.push(e),e.setParent(i)),i.length+=e.length}function sl(i,e,t){let n=null,s=-1,r=null,o=-1;function l(c,h){for(let u=0,f=0;u<c.children.length&&f<=h;u++){let p=c.children[u],m=f+p.length;m>=h&&(p.children.length?l(p,h-f):!r&&(m>h||f==m&&p.getSide()>0)?(r=p,o=h-f):(f<h||f==m&&p.getSide()<0)&&(n=p,s=h-f)),f=m}}l(i,e);let a=(t<0?n:r)||n||r;return a?a.coordsAt(Math.max(0,a==n?s:o),t):Dd(i)}function Dd(i){let e=i.dom.lastChild;if(!e)return i.dom.getBoundingClientRect();let t=Rt(e);return t[t.length-1]||null}function Sn(i,e){for(let t in i)t=="class"&&e.class?e.class+=" "+i.class:t=="style"&&e.style?e.style+=";"+i.style:e[t]=i[t];return e}function rs(i,e){if(i==e)return!0;if(!i||!e)return!1;let t=Object.keys(i),n=Object.keys(e);if(t.length!=n.length)return!1;for(let s of t)if(n.indexOf(s)==-1||i[s]!==e[s])return!1;return!0}function wn(i,e,t){let n=null;if(e)for(let s in e)t&&s in t||i.removeAttribute(n=s);if(t)for(let s in t)e&&e[s]==t[s]||i.setAttribute(n=s,t[s]);return!!n}class Li{eq(e){return!1}updateDOM(e){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}ignoreEvent(e){return!0}get customView(){return null}destroy(e){}}var U=function(i){return i[i.Text=0]="Text",i[i.WidgetBefore=1]="WidgetBefore",i[i.WidgetAfter=2]="WidgetAfter",i[i.WidgetRange=3]="WidgetRange",i}(U||(U={}));class Y extends Kn{constructor(e,t,n,s){super(),this.startSide=e,this.endSide=t,this.widget=n,this.spec=s}get heightRelevant(){return!1}static mark(e){return new Pi(e)}static widget(e){let t=e.side||0,n=!!e.block;return t+=n?t>0?3e8:-4e8:t>0?1e8:-1e8,new Je(e,t,t,n,e.widget||null,!1)}static replace(e){let t=!!e.block,n,s;if(e.isBlockGap)n=-5e8,s=4e8;else{let{start:r,end:o}=rl(e,t);n=(r?t?-3e8:-1:5e8)-1,s=(o?t?2e8:1:-6e8)+1}return new Je(e,n,s,t,e.widget||null,!0)}static line(e){return new Nt(e)}static set(e,t=!1){return De.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}Y.none=De.empty;class Pi extends Y{constructor(e){let{start:t,end:n}=rl(e);super(t?-1:5e8,n?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){return this==e||e instanceof Pi&&this.tagName==e.tagName&&this.class==e.class&&rs(this.attrs,e.attrs)}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}}Pi.prototype.point=!1;class Nt extends Y{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof Nt&&this.spec.class==e.spec.class&&rs(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}}Nt.prototype.mapMode=st.TrackBefore;Nt.prototype.point=!0;class Je extends Y{constructor(e,t,n,s,r,o){super(t,n,r,e),this.block=s,this.isReplace=o,this.mapMode=s?t<=0?st.TrackBefore:st.TrackAfter:st.TrackDel}get type(){return this.startSide<this.endSide?U.WidgetRange:this.startSide<=0?U.WidgetBefore:U.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&this.widget.estimatedHeight>=5}eq(e){return e instanceof Je&&Td(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}}Je.prototype.point=!0;function rl(i,e=!1){let{inclusiveStart:t,inclusiveEnd:n}=i;return t==null&&(t=i.inclusive),n==null&&(n=i.inclusive),{start:t??e,end:n??e}}function Td(i,e){return i==e||!!(i&&e&&i.compare(e))}function Cn(i,e,t,n=0){let s=t.length-1;s>=0&&t[s]+n>=i?t[s]=Math.max(t[s],e):t.push(i,e)}class ne extends F{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,t,n,s,r,o){if(n){if(!(n instanceof ne))return!1;this.dom||n.transferDOM(this)}return s&&this.setDeco(n?n.attrs:null),Xo(this,e,t,n?n.children:[],r,o),!0}split(e){let t=new ne;if(t.breakAfter=this.breakAfter,this.length==0)return t;let{i:n,off:s}=this.childPos(e);s&&(t.append(this.children[n].split(s),0),this.children[n].merge(s,this.children[n].length,null,!1,0,0),n++);for(let r=n;r<this.children.length;r++)t.append(this.children[r],0);for(;n>0&&this.children[n-1].length==0;)this.children[--n].destroy();return this.children.length=n,this.markDirty(),this.length=e,t}transferDOM(e){this.dom&&(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){rs(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,t){nl(this,e,t)}addLineDeco(e){let t=e.spec.attributes,n=e.spec.class;t&&(this.attrs=Sn(t,this.attrs||{})),n&&(this.attrs=Sn({class:n},this.attrs||{}))}domAtPos(e){return il(this,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.dirty|=6)}sync(e){var t;this.dom?this.dirty&4&&(_o(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&&(wn(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e);let n=this.dom.lastChild;for(;n&&F.get(n)instanceof Te;)n=n.lastChild;if(!n||!this.length||n.nodeName!="BR"&&((t=F.get(n))===null||t===void 0?void 0:t.isEditable)==!1&&(!A.ios||!this.children.some(s=>s instanceof Ve))){let s=document.createElement("BR");s.cmIgnore=!0,this.dom.appendChild(s)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0;for(let t of this.children){if(!(t instanceof Ve)||/[^ -~]/.test(t.text))return null;let n=Rt(t.dom);if(n.length!=1)return null;e+=n[0].width}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length}:null}coordsAt(e,t){return sl(this,e,t)}become(e){return!1}get type(){return U.Text}static find(e,t){for(let n=0,s=0;n<e.children.length;n++){let r=e.children[n],o=s+r.length;if(o>=t){if(r instanceof ne)return r;if(o>t)break}s=o+r.breakAfter}return null}}class Ge extends F{constructor(e,t,n){super(),this.widget=e,this.length=t,this.type=n,this.breakAfter=0,this.prevWidget=null}merge(e,t,n,s,r,o){return n&&(!(n instanceof Ge)||!this.widget.compare(n.widget)||e>0&&r<=0||t<this.length&&o<=0)?!1:(this.length=e+(n?n.length:0)+(this.length-t),!0)}domAtPos(e){return e==0?ee.before(this.dom):ee.after(this.dom,e==this.length)}split(e){let t=this.length-e;this.length=e;let n=new Ge(this.widget,t,this.type);return n.breakAfter=this.breakAfter,n}get children(){return ss}sync(){(!this.dom||!this.widget.updateDOM(this.dom))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(this.editorView)),this.dom.contentEditable="false")}get overrideDOMText(){return this.parent?this.parent.view.state.doc.slice(this.posAtStart,this.posAtEnd):ge.empty}domBoundsAround(){return null}become(e){return e instanceof Ge&&e.type==this.type&&e.widget.constructor==this.widget.constructor?(e.widget.eq(this.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=e.widget,this.length=e.length,this.breakAfter=e.breakAfter,!0):!1}ignoreMutation(){return!0}ignoreEvent(e){return this.widget.ignoreEvent(e)}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}}class os{constructor(e,t,n,s){this.doc=e,this.pos=t,this.end=n,this.disallowBlockEffectsFor=s,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=e.iter(),this.skip=t}posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let e=this.content[this.content.length-1];return!e.breakAfter&&!(e instanceof Ge&&e.type==U.WidgetBefore)}getLine(){return this.curLine||(this.content.push(this.curLine=new ne),this.atCursorPos=!0),this.curLine}flushBuffer(e=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(qt(new ut(-1),e),e.length),this.pendingBuffer=0)}addBlockWidget(e){this.flushBuffer(),this.curLine=null,this.content.push(e)}finish(e){this.pendingBuffer&&e<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,this.posCovered()||this.getLine()}buildText(e,t,n){for(;e>0;){if(this.textOff==this.text.length){let{value:r,lineBreak:o,done:l}=this.cursor.next(this.skip);if(this.skip=0,l)throw new Error("Ran out of text content when drawing inline views");if(o){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,e--;continue}else this.text=r,this.textOff=0}let s=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(t.slice(t.length-n)),this.getLine().append(qt(new Ve(this.text.slice(this.textOff,this.textOff+s)),t),n),this.atCursorPos=!0,this.textOff+=s,e-=s,n=0}}span(e,t,n,s){this.buildText(t-e,n,s),this.pos=t,this.openStart<0&&(this.openStart=s)}point(e,t,n,s,r,o){if(this.disallowBlockEffectsFor[o]&&n instanceof Je){if(n.block)throw new RangeError("Block decorations may not be specified via plugins");if(t>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let l=t-e;if(n instanceof Je)if(n.block){let{type:a}=n;a==U.WidgetAfter&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new Ge(n.widget||new Hs("div"),l,a))}else{let a=Pe.create(n.widget||new Hs("span"),l,l?0:n.startSide),c=this.atCursorPos&&!a.isEditable&&r<=s.length&&(e<t||n.startSide>0),h=!a.isEditable&&(e<t||r>s.length||n.startSide<=0),u=this.getLine();this.pendingBuffer==2&&!c&&(this.pendingBuffer=0),this.flushBuffer(s),c&&(u.append(qt(new ut(1),s),r),r=s.length+Math.max(0,r-s.length)),u.append(qt(a,s),r),this.atCursorPos=h,this.pendingBuffer=h?e<t||r>s.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=s.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(n);l&&(this.textOff+l<=this.text.length?this.textOff+=l:(this.skip+=l-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=t),this.openStart<0&&(this.openStart=r)}static build(e,t,n,s,r){let o=new os(e,t,n,r);return o.openEnd=De.spans(s,t,n,o),o.openStart<0&&(o.openStart=o.openEnd),o.finish(o.openEnd),o}}function qt(i,e){for(let t of e)i=new Te(t,[i],i.length);return i}class Hs extends Li{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}}const ol=P.define(),ll=P.define(),al=P.define(),cl=P.define(),kn=P.define(),hl=P.define(),dl=P.define({combine:i=>i.some(e=>e)}),Od=P.define({combine:i=>i.some(e=>e)});class gi{constructor(e,t="nearest",n="nearest",s=5,r=5){this.range=e,this.y=t,this.x=n,this.yMargin=s,this.xMargin=r}map(e){return e.empty?this:new gi(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin)}}const zs=_.define({map:(i,e)=>i.map(e)});function Ae(i,e,t){let n=i.facet(cl);n.length?n[0](e):window.onerror?window.onerror(String(e),t,void 0,void 0,e):t?console.error(t+":",e):console.error(e)}const Ii=P.define({combine:i=>i.length?i[0]:!0});let jd=0;const Ct=P.define();class ft{constructor(e,t,n,s){this.id=e,this.create=t,this.domEventHandlers=n,this.extension=s(this)}static define(e,t){const{eventHandlers:n,provide:s,decorations:r}=t||{};return new ft(jd++,e,n,o=>{let l=[Ct.of(o)];return r&&l.push(Et.of(a=>{let c=a.plugin(o);return c?r(c):Y.none})),s&&l.push(s(o)),l})}static fromClass(e,t){return ft.define(n=>new e(n),t)}}class Ki{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}update(e){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(n){if(Ae(t.state,n,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(e)}catch(t){Ae(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(!((t=this.value)===null||t===void 0)&&t.destroy)try{this.value.destroy()}catch(n){Ae(e.state,n,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const ul=P.define(),ls=P.define(),Et=P.define(),fl=P.define(),pl=P.define(),kt=P.define();class Me{constructor(e,t,n,s){this.fromA=e,this.toA=t,this.fromB=n,this.toB=s}join(e){return new Me(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,n=this;for(;t>0;t--){let s=e[t-1];if(!(s.fromA>n.toA)){if(s.toA<n.fromA)break;n=n.join(s),e.splice(t-1,1)}}return e.splice(t,0,n),e}static extendWithRanges(e,t){if(t.length==0)return e;let n=[];for(let s=0,r=0,o=0,l=0;;s++){let a=s==e.length?null:e[s],c=o-l,h=a?a.fromB:1e9;for(;r<t.length&&t[r]<h;){let u=t[r],f=t[r+1],p=Math.max(l,u),m=Math.min(h,f);if(p<=m&&new Me(p+c,m+c,p,m).addToSet(n),f>h)break;r+=2}if(!a)return n;new Me(a.fromA,a.toA,a.fromB,a.toB).addToSet(n),o=a.toA,l=a.toB}}}class xi{constructor(e,t,n){this.view=e,this.state=t,this.transactions=n,this.flags=0,this.startState=e.state,this.changes=zn.empty(this.startState.doc.length);for(let o of n)this.changes=this.changes.compose(o.changes);let s=[];this.changes.iterChangedRanges((o,l,a,c)=>s.push(new Me(o,l,a,c))),this.changedRanges=s;let r=e.hasFocus;r!=e.inputState.notifiedFocused&&(e.inputState.notifiedFocused=r,this.flags|=1)}static create(e,t,n){return new xi(e,t,n)}get viewportChanged(){return(this.flags&4)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&10)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}var X=function(i){return i[i.LTR=0]="LTR",i[i.RTL=1]="RTL",i}(X||(X={}));const An=X.LTR,Rd=X.RTL;function ml(i){let e=[];for(let t=0;t<i.length;t++)e.push(1<<+i[t]);return e}const Bd=ml("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),Ed=ml("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),Mn=Object.create(null),we=[];for(let i of["()","[]","{}"]){let e=i.charCodeAt(0),t=i.charCodeAt(1);Mn[e]=t,Mn[t]=-e}function Ld(i){return i<=247?Bd[i]:1424<=i&&i<=1524?2:1536<=i&&i<=1785?Ed[i-1536]:1774<=i&&i<=2220?4:8192<=i&&i<=8203?256:64336<=i&&i<=65023?4:i==8204?256:1}const Pd=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/;class lt{constructor(e,t,n){this.from=e,this.to=t,this.level=n}get dir(){return this.level%2?Rd:An}side(e,t){return this.dir==t==e?this.to:this.from}static find(e,t,n,s){let r=-1;for(let o=0;o<e.length;o++){let l=e[o];if(l.from<=t&&l.to>=t){if(l.level==n)return o;(r<0||(s!=0?s<0?l.from<t:l.to>t:e[r].level>l.level))&&(r=o)}}if(r<0)throw new RangeError("Index out of range");return r}}const H=[];function Id(i,e){let t=i.length,n=e==An?1:2,s=e==An?2:1;if(!i||n==1&&!Pd.test(i))return gl(t);for(let o=0,l=n,a=n;o<t;o++){let c=Ld(i.charCodeAt(o));c==512?c=l:c==8&&a==4&&(c=16),H[o]=c==4?2:c,c&7&&(a=c),l=c}for(let o=0,l=n,a=n;o<t;o++){let c=H[o];if(c==128)o<t-1&&l==H[o+1]&&l&24?c=H[o]=l:H[o]=256;else if(c==64){let h=o+1;for(;h<t&&H[h]==64;)h++;let u=o&&l==8||h<t&&H[h]==8?a==1?1:8:256;for(let f=o;f<h;f++)H[f]=u;o=h-1}else c==8&&a==1&&(H[o]=1);l=c,c&7&&(a=c)}for(let o=0,l=0,a=0,c,h,u;o<t;o++)if(h=Mn[c=i.charCodeAt(o)])if(h<0){for(let f=l-3;f>=0;f-=3)if(we[f+1]==-h){let p=we[f+2],m=p&2?n:p&4?p&1?s:n:0;m&&(H[o]=H[we[f]]=m),l=f;break}}else{if(we.length==189)break;we[l++]=o,we[l++]=c,we[l++]=a}else if((u=H[o])==2||u==1){let f=u==n;a=f?0:1;for(let p=l-3;p>=0;p-=3){let m=we[p+2];if(m&2)break;if(f)we[p+2]|=2;else{if(m&4)break;we[p+2]|=4}}}for(let o=0;o<t;o++)if(H[o]==256){let l=o+1;for(;l<t&&H[l]==256;)l++;let a=(o?H[o-1]:n)==1,c=(l<t?H[l]:n)==1,h=a==c?a?1:2:n;for(let u=o;u<l;u++)H[u]=h;o=l-1}let r=[];if(n==1)for(let o=0;o<t;){let l=o,a=H[o++]!=1;for(;o<t&&a==(H[o]!=1);)o++;if(a)for(let c=o;c>l;){let h=c,u=H[--c]!=2;for(;c>l&&u==(H[c-1]!=2);)c--;r.push(new lt(c,h,u?2:1))}else r.push(new lt(l,o,0))}else for(let o=0;o<t;){let l=o,a=H[o++]==2;for(;o<t&&a==(H[o]==2);)o++;r.push(new lt(l,o,a?1:2))}return r}function gl(i){return[new lt(0,i,0)]}let xl="";function Nd(i,e,t,n,s){var r;let o=n.head-i.from,l=-1;if(o==0){if(!s||!i.length)return null;e[0].level!=t&&(o=e[0].side(!1,t),l=0)}else if(o==i.length){if(s)return null;let f=e[e.length-1];f.level!=t&&(o=f.side(!0,t),l=e.length-1)}l<0&&(l=lt.find(e,o,(r=n.bidiLevel)!==null&&r!==void 0?r:-1,n.assoc));let a=e[l];o==a.side(s,t)&&(a=e[l+=s?1:-1],o=a.side(!s,t));let c=s==(a.dir==t),h=ve(i.text,o,c);if(xl=i.text.slice(Math.min(o,h),Math.max(o,h)),h!=a.side(s,t))return v.cursor(h+i.from,c?-1:1,a.level);let u=l==(s?e.length-1:0)?null:e[l+(s?1:-1)];return!u&&a.level!=t?v.cursor(s?i.to:i.from,s?-1:1,t):u&&u.level<a.level?v.cursor(u.side(!s,t)+i.from,s?1:-1,u.level):v.cursor(h+i.from,s?-1:1,a.level)}const Ie="";class yl{constructor(e,t){this.points=e,this.text="",this.lineSeparator=t.facet(ke.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=Ie}readRange(e,t){if(!e)return this;let n=e.parentNode;for(let s=e;;){this.findPointBefore(n,s),this.readNode(s);let r=s.nextSibling;if(r==t)break;let o=F.get(s),l=F.get(r);(o&&l?o.breakAfter:(o?o.breakAfter:$s(s))||$s(r)&&(s.nodeName!="BR"||s.cmIgnore))&&this.lineBreak(),s=r}return this.findPointBefore(n,t),this}readTextNode(e){let t=e.nodeValue;for(let n of this.points)n.node==e&&(n.pos=this.text.length+Math.min(n.offset,t.length));for(let n=0,s=this.lineSeparator?null:/\r\n?|\n/g;;){let r=-1,o=1,l;if(this.lineSeparator?(r=t.indexOf(this.lineSeparator,n),o=this.lineSeparator.length):(l=s.exec(t))&&(r=l.index,o=l[0].length),this.append(t.slice(n,r<0?t.length:r)),r<0)break;if(this.lineBreak(),o>1)for(let a of this.points)a.node==e&&a.pos>this.text.length&&(a.pos-=o-1);n=r+o}}readNode(e){if(e.cmIgnore)return;let t=F.get(e),n=t&&t.overrideDOMText;if(n!=null){this.findPointInside(e,n.length);for(let s=n.iter();!s.next().done;)s.lineBreak?this.lineBreak():this.append(s.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let n of this.points)n.node==e&&e.childNodes[n.offset]==t&&(n.pos=this.text.length)}findPointInside(e,t){for(let n of this.points)(e.nodeType==3?n.node==e:e.contains(n.node))&&(n.pos=this.text.length+Math.min(t,n.offset))}}function $s(i){return i.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(i.nodeName)}class qs{constructor(e,t){this.node=e,this.offset=t,this.pos=-1}}class Us extends F{constructor(e){super(),this.view=e,this.compositionDeco=Y.none,this.decorations=[],this.dynamicDecorationMap=[],this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new ne],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new Me(0,0,0,e.state.doc.length)],0)}get editorView(){return this.view}get length(){return this.view.state.doc.length}update(e){let t=e.changedRanges;this.minWidth>0&&t.length&&(t.every(({fromA:o,toA:l})=>l<this.minWidthFrom||o>this.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.view.inputState.composing<0?this.compositionDeco=Y.none:(e.transactions.length||this.dirty)&&(this.compositionDeco=Wd(this.view,e.changes)),(A.ie||A.chrome)&&!this.compositionDeco.size&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let n=this.decorations,s=this.updateDeco(),r=$d(n,s,e.changes);return t=Me.extendWithRanges(t,r),this.dirty==0&&t.length==0?!1:(this.updateInner(t,e.startState.doc.length),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,t);let{observer:n}=this.view;n.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let r=A.chrome||A.ios?{node:n.selectionRange.focusNode,written:!1}:void 0;this.sync(r),this.dirty=0,r&&(r.written||n.selectionRange.focusNode!=r.node)&&(this.forceSelection=!0),this.dom.style.height=""});let s=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let r of this.children)r instanceof Ge&&r.widget instanceof Ks&&s.push(r.dom);n.updateGaps(s)}updateChildren(e,t){let n=this.childCursor(t);for(let s=e.length-1;;s--){let r=s>=0?e[s]:null;if(!r)break;let{fromA:o,toA:l,fromB:a,toB:c}=r,{content:h,breakAtStart:u,openStart:f,openEnd:p}=os.build(this.view.state.doc,a,c,this.decorations,this.dynamicDecorationMap),{i:m,off:x}=n.findPos(l,1),{i:g,off:y}=n.findPos(o,-1);Yo(this,g,y,m,x,h,u,f,p)}}updateSelection(e=!1,t=!1){if((e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange(),!(t||this.mayControlSelection()))return;let n=this.forceSelection;this.forceSelection=!1;let s=this.view.state.selection.main,r=this.domAtPos(s.anchor),o=s.empty?r:this.domAtPos(s.head);if(A.gecko&&s.empty&&Fd(r)){let a=document.createTextNode("");this.view.observer.ignore(()=>r.node.insertBefore(a,r.node.childNodes[r.offset]||null)),r=o=new ee(a,0),n=!0}let l=this.view.observer.selectionRange;(n||!l.focusNode||!pi(r.node,r.offset,l.anchorNode,l.anchorOffset)||!pi(o.node,o.offset,l.focusNode,l.focusOffset))&&(this.view.observer.ignore(()=>{A.android&&A.chrome&&this.dom.contains(l.focusNode)&&qd(l.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let a=fi(this.view.root);if(a)if(s.empty){if(A.gecko){let c=Hd(r.node,r.offset);if(c&&c!=3){let h=vl(r.node,r.offset,c==1?1:-1);h&&(r=new ee(h,c==1?0:h.nodeValue.length))}}a.collapse(r.node,r.offset),s.bidiLevel!=null&&l.cursorBidiLevel!=null&&(l.cursorBidiLevel=s.bidiLevel)}else if(a.extend){a.collapse(r.node,r.offset);try{a.extend(o.node,o.offset)}catch{}}else{let c=document.createRange();s.anchor>s.head&&([r,o]=[o,r]),c.setEnd(o.node,o.offset),c.setStart(r.node,r.offset),a.removeAllRanges(),a.addRange(c)}}),this.view.observer.setSelectionRange(r,o)),this.impreciseAnchor=r.precise?null:new ee(l.anchorNode,l.anchorOffset),this.impreciseHead=o.precise?null:new ee(l.focusNode,l.focusOffset)}enforceCursorAssoc(){if(this.compositionDeco.size)return;let{view:e}=this,t=e.state.selection.main,n=fi(e.root),{anchorNode:s,anchorOffset:r}=e.observer.selectionRange;if(!n||!t.empty||!t.assoc||!n.modify)return;let o=ne.find(this,t.head);if(!o)return;let l=o.posAtStart;if(t.head==l||t.head==l+o.length)return;let a=this.coordsAt(t.head,-1),c=this.coordsAt(t.head,1);if(!a||!c||a.bottom>c.top)return;let h=this.domAtPos(t.head+t.assoc);n.collapse(h.node,h.offset),n.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let u=e.observer.selectionRange;e.docView.posFromDOM(u.anchorNode,u.anchorOffset)!=t.from&&n.collapse(s,r)}mayControlSelection(){let e=this.view.root.activeElement;return e==this.dom||ii(this.dom,this.view.observer.selectionRange)&&!(e&&this.dom.contains(e))}nearest(e){for(let t=e;t;){let n=F.get(t);if(n&&n.rootView==this)return n;t=t.parentNode}return null}posFromDOM(e,t){let n=this.nearest(e);if(!n)throw new RangeError("Trying to find position for a DOM position outside of the document");return n.localPosFromDOM(e,t)+n.posAtStart}domAtPos(e){let{i:t,off:n}=this.childCursor().findPos(e,-1);for(;t<this.children.length-1;){let s=this.children[t];if(n<s.length||s instanceof ne)break;t++,n=0}return this.children[t].domAtPos(n)}coordsAt(e,t){for(let n=this.length,s=this.children.length-1;;s--){let r=this.children[s],o=n-r.breakAfter-r.length;if(e>o||e==o&&r.type!=U.WidgetBefore&&r.type!=U.WidgetAfter&&(!s||t==2||this.children[s-1].breakAfter||this.children[s-1].type==U.WidgetBefore&&t>-2))return r.coordsAt(e-o,t);n=o}}measureVisibleLineHeights(e){let t=[],{from:n,to:s}=e,r=this.view.contentDOM.clientWidth,o=r>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,l=-1,a=this.view.textDirection==X.LTR;for(let c=0,h=0;h<this.children.length;h++){let u=this.children[h],f=c+u.length;if(f>s)break;if(c>=n){let p=u.dom.getBoundingClientRect();if(t.push(p.height),o){let m=u.dom.lastChild,x=m?Rt(m):[];if(x.length){let g=x[x.length-1],y=a?g.right-p.left:p.right-g.left;y>l&&(l=y,this.minWidth=r,this.minWidthFrom=c,this.minWidthTo=f)}}}c=f+u.breakAfter}return t}textDirectionAt(e){let{i:t}=this.childPos(e,1);return getComputedStyle(this.children[t].dom).direction=="rtl"?X.RTL:X.LTR}measureTextSize(){for(let s of this.children)if(s instanceof ne){let r=s.measureTextSize();if(r)return r}let e=document.createElement("div"),t,n;return e.className="cm-line",e.style.width="99999px",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let s=Rt(e.firstChild)[0];t=e.getBoundingClientRect().height,n=s?s.width/27:7,e.remove()}),{lineHeight:t,charWidth:n}}childCursor(e=this.length){let t=this.children.length;return t&&(e-=this.children[--t].length),new Jo(this.children,e,t)}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let n=0,s=0;;s++){let r=s==t.viewports.length?null:t.viewports[s],o=r?r.from-1:this.length;if(o>n){let l=t.lineBlockAt(o).bottom-t.lineBlockAt(n).top;e.push(Y.replace({widget:new Ks(l),block:!0,inclusive:!0,isBlockGap:!0}).range(n,o))}if(!r)break;n=r.to+1}return Y.set(e)}updateDeco(){let e=this.view.state.facet(Et).map((t,n)=>(this.dynamicDecorationMap[n]=typeof t=="function")?t(this.view):t);for(let t=e.length;t<e.length+3;t++)this.dynamicDecorationMap[t]=!1;return this.decorations=[...e,this.compositionDeco,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco]}scrollIntoView(e){let{range:t}=e,n=this.coordsAt(t.head,t.empty?t.assoc:t.head>t.anchor?-1:1),s;if(!n)return;!t.empty&&(s=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(n={left:Math.min(n.left,s.left),top:Math.min(n.top,s.top),right:Math.max(n.right,s.right),bottom:Math.max(n.bottom,s.bottom)});let r=0,o=0,l=0,a=0;for(let h of this.view.state.facet(pl).map(u=>u(this.view)))if(h){let{left:u,right:f,top:p,bottom:m}=h;u!=null&&(r=Math.max(r,u)),f!=null&&(o=Math.max(o,f)),p!=null&&(l=Math.max(l,p)),m!=null&&(a=Math.max(a,m))}let c={left:n.left-r,top:n.top-l,right:n.right+o,bottom:n.bottom+a};vd(this.view.scrollDOM,c,t.head<t.anchor?-1:1,e.x,e.y,e.xMargin,e.yMargin,this.view.textDirection==X.LTR)}}function Fd(i){return i.node.nodeType==1&&i.node.firstChild&&(i.offset==0||i.node.childNodes[i.offset-1].contentEditable=="false")&&(i.offset==i.node.childNodes.length||i.node.childNodes[i.offset].contentEditable=="false")}class Ks extends Li{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get estimatedHeight(){return this.height}}function bl(i){let e=i.observer.selectionRange,t=e.focusNode&&vl(e.focusNode,e.focusOffset,0);if(!t)return null;let n=i.docView.nearest(t);if(!n)return null;if(n instanceof ne){let s=t;for(;s.parentNode!=n.dom;)s=s.parentNode;let r=s.previousSibling;for(;r&&!F.get(r);)r=r.previousSibling;let o=r?F.get(r).posAtEnd:n.posAtStart;return{from:o,to:o,node:s,text:t}}else{for(;;){let{parent:r}=n;if(!r)return null;if(r instanceof ne)break;n=r}let s=n.posAtStart;return{from:s,to:s+n.length,node:n.dom,text:t}}}function Wd(i,e){let t=bl(i);if(!t)return Y.none;let{from:n,to:s,node:r,text:o}=t,l=e.mapPos(n,1),a=Math.max(l,e.mapPos(s,-1)),{state:c}=i,h=r.nodeType==3?r.nodeValue:new yl([],c).readRange(r.firstChild,null).text;if(a-l<h.length)if(c.doc.sliceString(l,Math.min(c.doc.length,l+h.length),Ie)==h)a=l+h.length;else if(c.doc.sliceString(Math.max(0,a-h.length),a,Ie)==h)l=a-h.length;else return Y.none;else if(c.doc.sliceString(l,a,Ie)!=h)return Y.none;let u=F.get(r);return u instanceof el?u=u.widget.topView:u&&(u.parent=null),Y.set(Y.replace({widget:new Vd(r,o,u),inclusive:!0}).range(l,a))}class Vd extends Li{constructor(e,t,n){super(),this.top=e,this.text=t,this.topView=n}eq(e){return this.top==e.top&&this.text==e.text}toDOM(){return this.top}ignoreEvent(){return!1}get customView(){return el}}function vl(i,e,t){for(;;){if(i.nodeType==3)return i;if(i.nodeType==1&&e>0&&t<=0)i=i.childNodes[e-1],e=Bt(i);else if(i.nodeType==1&&e<i.childNodes.length&&t>=0)i=i.childNodes[e],e=0;else return null}}function Hd(i,e){return i.nodeType!=1?0:(e&&i.childNodes[e-1].contentEditable=="false"?1:0)|(e<i.childNodes.length&&i.childNodes[e].contentEditable=="false"?2:0)}class zd{constructor(){this.changes=[]}compareRange(e,t){Cn(e,t,this.changes)}comparePoint(e,t){Cn(e,t,this.changes)}}function $d(i,e,t){let n=new zd;return De.compare(i,e,t,n),n.changes}function qd(i,e){for(let t=i;t&&t!=e;t=t.assignedSlot||t.parentNode)if(t.nodeType==1&&t.contentEditable=="false")return!0;return!1}function Ud(i,e,t=1){let n=i.charCategorizer(e),s=i.doc.lineAt(e),r=e-s.from;if(s.length==0)return v.cursor(e);r==0?t=1:r==s.length&&(t=-1);let o=r,l=r;t<0?o=ve(s.text,r,!1):l=ve(s.text,r);let a=n(s.text.slice(o,l));for(;o>0;){let c=ve(s.text,o,!1);if(n(s.text.slice(c,o))!=a)break;o=c}for(;l<s.length;){let c=ve(s.text,l);if(n(s.text.slice(l,c))!=a)break;l=c}return v.range(o+s.from,l+s.from)}function Kd(i,e){return e.left>i?e.left-i:Math.max(0,i-e.right)}function Gd(i,e){return e.top>i?e.top-i:Math.max(0,i-e.bottom)}function Gi(i,e){return i.top<e.bottom-1&&i.bottom>e.top+1}function Gs(i,e){return e<i.top?{top:e,left:i.left,right:i.right,bottom:i.bottom}:i}function _s(i,e){return e>i.bottom?{top:i.top,left:i.left,right:i.right,bottom:e}:i}function Dn(i,e,t){let n,s,r,o,l=!1,a,c,h,u;for(let m=i.firstChild;m;m=m.nextSibling){let x=Rt(m);for(let g=0;g<x.length;g++){let y=x[g];s&&Gi(s,y)&&(y=Gs(_s(y,s.bottom),s.top));let S=Kd(e,y),D=Gd(t,y);if(S==0&&D==0)return m.nodeType==3?Js(m,e,t):Dn(m,e,t);if(!n||o>D||o==D&&r>S){n=m,s=y,r=S,o=D;let C=D?t<y.top?-1:1:S?e<y.left?-1:1:0;l=!C||(C>0?g<x.length-1:g>0)}S==0?t>y.bottom&&(!h||h.bottom<y.bottom)?(a=m,h=y):t<y.top&&(!u||u.top>y.top)&&(c=m,u=y):h&&Gi(h,y)?h=_s(h,y.bottom):u&&Gi(u,y)&&(u=Gs(u,y.top))}}if(h&&h.bottom>=t?(n=a,s=h):u&&u.top<=t&&(n=c,s=u),!n)return{node:i,offset:0};let f=Math.max(s.left,Math.min(s.right,e));if(n.nodeType==3)return Js(n,f,t);if(l&&n.contentEditable!="false")return Dn(n,f,t);let p=Array.prototype.indexOf.call(i.childNodes,n)+(e>=(s.left+s.right)/2?1:0);return{node:i,offset:p}}function Js(i,e,t){let n=i.nodeValue.length,s=-1,r=1e9,o=0;for(let l=0;l<n;l++){let a=dt(i,l,l+1).getClientRects();for(let c=0;c<a.length;c++){let h=a[c];if(h.top==h.bottom)continue;o||(o=e-h.left);let u=(h.top>t?h.top-t:t-h.bottom)-1;if(h.left-1<=e&&h.right+1>=e&&u<r){let f=e>=(h.left+h.right)/2,p=f;if((A.chrome||A.gecko)&&dt(i,l).getBoundingClientRect().left==h.right&&(p=!f),u<=0)return{node:i,offset:l+(p?1:0)};s=l+(p?1:0),r=u}}}return{node:i,offset:s>-1?s:o>0?i.nodeValue.length:0}}function Sl(i,{x:e,y:t},n,s=-1){var r;let o=i.contentDOM.getBoundingClientRect(),l=o.top+i.viewState.paddingTop,a,{docHeight:c}=i.viewState,h=t-l;if(h<0)return 0;if(h>c)return i.state.doc.length;for(let y=i.defaultLineHeight/2,S=!1;a=i.elementAtHeight(h),a.type!=U.Text;)for(;h=s>0?a.bottom+y:a.top-y,!(h>=0&&h<=c);){if(S)return n?null:0;S=!0,s=-s}t=l+h;let u=a.from;if(u<i.viewport.from)return i.viewport.from==0?0:n?null:Ys(i,o,a,e,t);if(u>i.viewport.to)return i.viewport.to==i.state.doc.length?i.state.doc.length:n?null:Ys(i,o,a,e,t);let f=i.dom.ownerDocument,p=i.root.elementFromPoint?i.root:f,m=p.elementFromPoint(e,t);m&&!i.contentDOM.contains(m)&&(m=null),m||(e=Math.max(o.left+1,Math.min(o.right-1,e)),m=p.elementFromPoint(e,t),m&&!i.contentDOM.contains(m)&&(m=null));let x,g=-1;if(m&&((r=i.docView.nearest(m))===null||r===void 0?void 0:r.isEditable)!=!1){if(f.caretPositionFromPoint){let y=f.caretPositionFromPoint(e,t);y&&({offsetNode:x,offset:g}=y)}else if(f.caretRangeFromPoint){let y=f.caretRangeFromPoint(e,t);y&&({startContainer:x,startOffset:g}=y,(!i.contentDOM.contains(x)||A.safari&&_d(x,g,e)||A.chrome&&Jd(x,g,e))&&(x=void 0))}}if(!x||!i.docView.dom.contains(x)){let y=ne.find(i.docView,u);if(!y)return h>a.top+a.height/2?a.to:a.from;({node:x,offset:g}=Dn(y.dom,e,t))}return i.docView.posFromDOM(x,g)}function Ys(i,e,t,n,s){let r=Math.round((n-e.left)*i.defaultCharacterWidth);if(i.lineWrapping&&t.height>i.defaultLineHeight*1.5){let l=Math.floor((s-t.top)/i.defaultLineHeight);r+=l*i.viewState.heightOracle.lineLength}let o=i.state.sliceDoc(t.from,t.to);return t.from+oc(o,r,i.state.tabSize)}function _d(i,e,t){let n;if(i.nodeType!=3||e!=(n=i.nodeValue.length))return!1;for(let s=i.nextSibling;s;s=s.nextSibling)if(s.nodeType!=1||s.nodeName!="BR")return!1;return dt(i,n-1,n).getBoundingClientRect().left>t}function Jd(i,e,t){if(e!=0)return!1;for(let s=i;;){let r=s.parentNode;if(!r||r.nodeType!=1||r.firstChild!=s)return!1;if(r.classList.contains("cm-line"))break;s=r}let n=i.nodeType==1?i.getBoundingClientRect():dt(i,0,Math.max(i.nodeValue.length,1)).getBoundingClientRect();return t-n.left>5}function Yd(i,e,t,n){let s=i.state.doc.lineAt(e.head),r=!n||!i.lineWrapping?null:i.coordsAtPos(e.assoc<0&&e.head>s.from?e.head-1:e.head);if(r){let a=i.dom.getBoundingClientRect(),c=i.textDirectionAt(s.from),h=i.posAtCoords({x:t==(c==X.LTR)?a.right-1:a.left+1,y:(r.top+r.bottom)/2});if(h!=null)return v.cursor(h,t?-1:1)}let o=ne.find(i.docView,e.head),l=o?t?o.posAtEnd:o.posAtStart:t?s.to:s.from;return v.cursor(l,t?-1:1)}function Xs(i,e,t,n){let s=i.state.doc.lineAt(e.head),r=i.bidiSpans(s),o=i.textDirectionAt(s.from);for(let l=e,a=null;;){let c=Nd(s,r,o,l,t),h=xl;if(!c){if(s.number==(t?i.state.doc.lines:1))return l;h=`
|
|
3
3
|
`,s=i.state.doc.line(s.number+(t?1:-1)),r=i.bidiSpans(s),c=v.cursor(t?s.from:s.to)}if(a){if(!a(h))return l}else{if(!n)return c;a=n(h)}l=c}}function Xd(i,e,t){let n=i.state.charCategorizer(e),s=n(t);return r=>{let o=n(r);return s==Z.Space&&(s=o),s==o}}function Qd(i,e,t,n){let s=e.head,r=t?1:-1;if(s==(t?i.state.doc.length:0))return v.cursor(s,e.assoc);let o=e.goalColumn,l,a=i.contentDOM.getBoundingClientRect(),c=i.coordsAtPos(s),h=i.documentTop;if(c)o==null&&(o=c.left-a.left),l=r<0?c.top:c.bottom;else{let p=i.viewState.lineBlockAt(s);o==null&&(o=Math.min(a.right-a.left,i.defaultCharacterWidth*(s-p.from))),l=(r<0?p.top:p.bottom)+h}let u=a.left+o,f=n??i.defaultLineHeight>>1;for(let p=0;;p+=10){let m=l+(f+p)*r,x=Sl(i,{x:u,y:m},!1,r);if(m<a.top||m>a.bottom||(r<0?x<s:x>s))return v.cursor(x,e.assoc,void 0,o)}}function _i(i,e,t){let n=i.state.facet(fl).map(s=>s(i));for(;;){let s=!1;for(let r of n)r.between(t.from-1,t.from+1,(o,l,a)=>{t.from>o&&t.from<l&&(t=e.head>t.from?v.cursor(o,1):v.cursor(l,-1),s=!0)});if(!s)return t}}class Zd{constructor(e){this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.chromeScrollHack=-1,this.pendingIOSKey=void 0,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.lastContextMenu=0,this.scrollHandlers=[],this.registeredEvents=[],this.customHandlers=[],this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.mouseSelection=null;let t=(n,s)=>{this.ignoreDuringComposition(s)||s.type=="keydown"&&this.keydown(e,s)||(this.mustFlushObserver(s)&&e.observer.forceFlush(),this.runCustomHandlers(s.type,e,s)?s.preventDefault():n(e,s))};for(let n in K){let s=K[n];e.contentDOM.addEventListener(n,r=>{Qs(e,r)&&t(s,r)},Tn[n]),this.registeredEvents.push(n)}e.scrollDOM.addEventListener("mousedown",n=>{n.target==e.scrollDOM&&t(K.mousedown,n)}),A.chrome&&A.chrome_version==102&&e.scrollDOM.addEventListener("wheel",()=>{this.chromeScrollHack<0?e.contentDOM.style.pointerEvents="none":window.clearTimeout(this.chromeScrollHack),this.chromeScrollHack=setTimeout(()=>{this.chromeScrollHack=-1,e.contentDOM.style.pointerEvents=""},100)},{passive:!0}),this.notifiedFocused=e.hasFocus,A.safari&&e.contentDOM.addEventListener("input",()=>null)}setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}ensureHandlers(e,t){var n;let s;this.customHandlers=[];for(let r of t)if(s=(n=r.update(e).spec)===null||n===void 0?void 0:n.domEventHandlers){this.customHandlers.push({plugin:r.value,handlers:s});for(let o in s)this.registeredEvents.indexOf(o)<0&&o!="scroll"&&(this.registeredEvents.push(o),e.contentDOM.addEventListener(o,l=>{Qs(e,l)&&this.runCustomHandlers(o,e,l)&&l.preventDefault()}))}}runCustomHandlers(e,t,n){for(let s of this.customHandlers){let r=s.handlers[e];if(r)try{if(r.call(s.plugin,n,t)||n.defaultPrevented)return!0}catch(o){Ae(t.state,o)}}return!1}runScrollHandlers(e,t){this.lastScrollTop=e.scrollDOM.scrollTop,this.lastScrollLeft=e.scrollDOM.scrollLeft;for(let n of this.customHandlers){let s=n.handlers.scroll;if(s)try{s.call(n.plugin,t,e)}catch(r){Ae(e.state,r)}}}keydown(e,t){if(this.lastKeyCode=t.keyCode,this.lastKeyTime=Date.now(),t.keyCode==9&&Date.now()<this.lastEscPress+2e3)return!0;if(A.android&&A.chrome&&!t.synthetic&&(t.keyCode==13||t.keyCode==8))return e.observer.delayAndroidKey(t.key,t.keyCode),!0;let n;return A.ios&&!t.synthetic&&!t.altKey&&!t.metaKey&&((n=wl.find(s=>s.keyCode==t.keyCode))&&!t.ctrlKey||eu.indexOf(t.key)>-1&&t.ctrlKey&&!t.shiftKey)?(this.pendingIOSKey=n||t,setTimeout(()=>this.flushIOSKey(e),250),!0):!1}flushIOSKey(e){let t=this.pendingIOSKey;return t?(this.pendingIOSKey=void 0,ot(e.contentDOM,t.key,t.keyCode)):!1}ignoreDuringComposition(e){return/^key/.test(e.type)?this.composing>0?!0:A.safari&&!A.ios&&Date.now()-this.compositionEndedAt<100?(this.compositionEndedAt=0,!0):!1:!1}mustFlushObserver(e){return e.type=="keydown"&&e.keyCode!=229}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.mouseSelection&&this.mouseSelection.update(e),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}const wl=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],eu="dthko",Cl=[16,17,18,20,91,92,224,225];function Ut(i){return i*.7+8}class tu{constructor(e,t,n,s){this.view=e,this.style=n,this.mustSelect=s,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParent=Sd(e.contentDOM);let r=e.contentDOM.ownerDocument;r.addEventListener("mousemove",this.move=this.move.bind(this)),r.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(ke.allowMultipleSelections)&&iu(e,t),this.dragMove=nu(e,t),this.dragging=su(e,t)&&Dl(t)==1?null:!1,this.dragging===!1&&(t.preventDefault(),this.select(t))}move(e){var t;if(e.buttons==0)return this.destroy();if(this.dragging!==!1)return;this.select(this.lastEvent=e);let n=0,s=0,r=((t=this.scrollParent)===null||t===void 0?void 0:t.getBoundingClientRect())||{left:0,top:0,right:this.view.win.innerWidth,bottom:this.view.win.innerHeight};e.clientX<=r.left?n=-Ut(r.left-e.clientX):e.clientX>=r.right&&(n=Ut(e.clientX-r.right)),e.clientY<=r.top?s=-Ut(r.top-e.clientY):e.clientY>=r.bottom&&(s=Ut(e.clientY-r.bottom)),this.setScrollSpeed(n,s)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){this.scrollParent?(this.scrollParent.scrollLeft+=this.scrollSpeed.x,this.scrollParent.scrollTop+=this.scrollSpeed.y):this.view.win.scrollBy(this.scrollSpeed.x,this.scrollSpeed.y),this.dragging===!1&&this.select(this.lastEvent)}select(e){let t=this.style.get(e,this.extend,this.multiple);(this.mustSelect||!t.eq(this.view.state.selection)||t.main.assoc!=this.view.state.selection.main.assoc)&&this.view.dispatch({selection:t,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.docChanged&&this.dragging&&(this.dragging=this.dragging.map(e.changes)),this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}}function iu(i,e){let t=i.state.facet(ol);return t.length?t[0](e):A.mac?e.metaKey:e.ctrlKey}function nu(i,e){let t=i.state.facet(ll);return t.length?t[0](e):A.mac?!e.altKey:!e.ctrlKey}function su(i,e){let{main:t}=i.state.selection;if(t.empty)return!1;let n=fi(i.root);if(!n||n.rangeCount==0)return!0;let s=n.getRangeAt(0).getClientRects();for(let r=0;r<s.length;r++){let o=s[r];if(o.left<=e.clientX&&o.right>=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function Qs(i,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,n;t!=i.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(n=F.get(t))&&n.ignoreEvent(e))return!1;return!0}const K=Object.create(null),Tn=Object.create(null),kl=A.ie&&A.ie_version<15||A.ios&&A.webkit_version<604;function ru(i){let e=i.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{i.focus(),t.remove(),Al(i,t.value)},50)}function Al(i,e){let{state:t}=i,n,s=1,r=t.toText(e),o=r.lines==t.selection.ranges.length;if(On!=null&&t.selection.ranges.every(a=>a.empty)&&On==r.toString()){let a=-1;n=t.changeByRange(c=>{let h=t.doc.lineAt(c.from);if(h.from==a)return{range:c};a=h.from;let u=t.toText((o?r.line(s++).text:e)+t.lineBreak);return{changes:{from:h.from,insert:u},range:v.cursor(c.from+u.length)}})}else o?n=t.changeByRange(a=>{let c=r.line(s++);return{changes:{from:a.from,to:a.to,insert:c.text},range:v.cursor(a.from+c.length)}}):n=t.replaceSelection(r);i.dispatch(n,{userEvent:"input.paste",scrollIntoView:!0})}K.keydown=(i,e)=>{i.inputState.setSelectionOrigin("select"),e.keyCode==27?i.inputState.lastEscPress=Date.now():Cl.indexOf(e.keyCode)<0&&(i.inputState.lastEscPress=0)};K.touchstart=(i,e)=>{i.inputState.lastTouchTime=Date.now(),i.inputState.setSelectionOrigin("select.pointer")};K.touchmove=i=>{i.inputState.setSelectionOrigin("select.pointer")};Tn.touchstart=Tn.touchmove={passive:!0};K.mousedown=(i,e)=>{if(i.observer.flush(),i.inputState.lastTouchTime>Date.now()-2e3)return;let t=null;for(let n of i.state.facet(al))if(t=n(i,e),t)break;if(!t&&e.button==0&&(t=au(i,e)),t){let n=i.root.activeElement!=i.contentDOM;n&&i.observer.ignore(()=>Go(i.contentDOM)),i.inputState.startMouseSelection(new tu(i,e,t,n))}};function Zs(i,e,t,n){if(n==1)return v.cursor(e,t);if(n==2)return Ud(i.state,e,t);{let s=ne.find(i.docView,e),r=i.state.doc.lineAt(s?s.posAtEnd:e),o=s?s.posAtStart:r.from,l=s?s.posAtEnd:r.to;return l<i.state.doc.length&&l==r.to&&l++,v.range(o,l)}}let Ml=(i,e)=>i>=e.top&&i<=e.bottom,er=(i,e,t)=>Ml(e,t)&&i>=t.left&&i<=t.right;function ou(i,e,t,n){let s=ne.find(i.docView,e);if(!s)return 1;let r=e-s.posAtStart;if(r==0)return 1;if(r==s.length)return-1;let o=s.coordsAt(r,-1);if(o&&er(t,n,o))return-1;let l=s.coordsAt(r,1);return l&&er(t,n,l)?1:o&&Ml(n,o)?-1:1}function tr(i,e){let t=i.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:t,bias:ou(i,t,e.clientX,e.clientY)}}const lu=A.ie&&A.ie_version<=11;let ir=null,nr=0,sr=0;function Dl(i){if(!lu)return i.detail;let e=ir,t=sr;return ir=i,sr=Date.now(),nr=!e||t>Date.now()-400&&Math.abs(e.clientX-i.clientX)<2&&Math.abs(e.clientY-i.clientY)<2?(nr+1)%3:1}function au(i,e){let t=tr(i,e),n=Dl(e),s=i.state.selection;return{update(r){r.docChanged&&(t.pos=r.changes.mapPos(t.pos),s=s.map(r.changes))},get(r,o,l){let a=tr(i,r),c=Zs(i,a.pos,a.bias,n);if(t.pos!=a.pos&&!o){let h=Zs(i,t.pos,t.bias,n),u=Math.min(h.from,c.from),f=Math.max(h.to,c.to);c=u<c.from?v.range(u,f):v.range(f,u)}return o?s.replaceRange(s.main.extend(c.from,c.to)):l&&s.ranges.length>1&&s.ranges.some(h=>h.eq(c))?cu(s,c):l?s.addRange(c):v.create([c])}}}function cu(i,e){for(let t=0;;t++)if(i.ranges[t].eq(e))return v.create(i.ranges.slice(0,t).concat(i.ranges.slice(t+1)),i.mainIndex==t?0:i.mainIndex-(i.mainIndex>t?1:0))}K.dragstart=(i,e)=>{let{selection:{main:t}}=i.state,{mouseSelection:n}=i.inputState;n&&(n.dragging=t),e.dataTransfer&&(e.dataTransfer.setData("Text",i.state.sliceDoc(t.from,t.to)),e.dataTransfer.effectAllowed="copyMove")};function rr(i,e,t,n){if(!t)return;let s=i.posAtCoords({x:e.clientX,y:e.clientY},!1);e.preventDefault();let{mouseSelection:r}=i.inputState,o=n&&r&&r.dragging&&r.dragMove?{from:r.dragging.from,to:r.dragging.to}:null,l={from:s,insert:t},a=i.state.changes(o?[o,l]:l);i.focus(),i.dispatch({changes:a,selection:{anchor:a.mapPos(s,-1),head:a.mapPos(s,1)},userEvent:o?"move.drop":"input.drop"})}K.drop=(i,e)=>{if(!e.dataTransfer)return;if(i.state.readOnly)return e.preventDefault();let t=e.dataTransfer.files;if(t&&t.length){e.preventDefault();let n=Array(t.length),s=0,r=()=>{++s==t.length&&rr(i,e,n.filter(o=>o!=null).join(i.state.lineBreak),!1)};for(let o=0;o<t.length;o++){let l=new FileReader;l.onerror=r,l.onload=()=>{/[\x00-\x08\x0e-\x1f]{2}/.test(l.result)||(n[o]=l.result),r()},l.readAsText(t[o])}}else rr(i,e,e.dataTransfer.getData("Text"),!0)};K.paste=(i,e)=>{if(i.state.readOnly)return e.preventDefault();i.observer.flush();let t=kl?null:e.clipboardData;t?(Al(i,t.getData("text/plain")),e.preventDefault()):ru(i)};function hu(i,e){let t=i.dom.parentNode;if(!t)return;let n=t.appendChild(document.createElement("textarea"));n.style.cssText="position: fixed; left: -10000px; top: 10px",n.value=e,n.focus(),n.selectionEnd=e.length,n.selectionStart=0,setTimeout(()=>{n.remove(),i.focus()},50)}function du(i){let e=[],t=[],n=!1;for(let s of i.selection.ranges)s.empty||(e.push(i.sliceDoc(s.from,s.to)),t.push(s));if(!e.length){let s=-1;for(let{from:r}of i.selection.ranges){let o=i.doc.lineAt(r);o.number>s&&(e.push(o.text),t.push({from:o.from,to:Math.min(i.doc.length,o.to+1)})),s=o.number}n=!0}return{text:e.join(i.lineBreak),ranges:t,linewise:n}}let On=null;K.copy=K.cut=(i,e)=>{let{text:t,ranges:n,linewise:s}=du(i.state);if(!t&&!s)return;On=s?t:null;let r=kl?null:e.clipboardData;r?(e.preventDefault(),r.clearData(),r.setData("text/plain",t)):hu(i,t),e.type=="cut"&&!i.state.readOnly&&i.dispatch({changes:n,scrollIntoView:!0,userEvent:"delete.cut"})};function Tl(i){setTimeout(()=>{i.hasFocus!=i.inputState.notifiedFocused&&i.update([])},10)}K.focus=i=>{i.inputState.lastFocusTime=Date.now(),!i.scrollDOM.scrollTop&&(i.inputState.lastScrollTop||i.inputState.lastScrollLeft)&&(i.scrollDOM.scrollTop=i.inputState.lastScrollTop,i.scrollDOM.scrollLeft=i.inputState.lastScrollLeft),Tl(i)};K.blur=i=>{i.observer.clearSelectionRange(),Tl(i)};K.compositionstart=K.compositionupdate=i=>{i.inputState.compositionFirstChange==null&&(i.inputState.compositionFirstChange=!0),i.inputState.composing<0&&(i.inputState.composing=0)};K.compositionend=i=>{i.inputState.composing=-1,i.inputState.compositionEndedAt=Date.now(),i.inputState.compositionFirstChange=null,A.chrome&&A.android&&i.observer.flushSoon(),setTimeout(()=>{i.inputState.composing<0&&i.docView.compositionDeco.size&&i.update([])},50)};K.contextmenu=i=>{i.inputState.lastContextMenu=Date.now()};K.beforeinput=(i,e)=>{var t;let n;if(A.chrome&&A.android&&(n=wl.find(s=>s.inputType==e.inputType))&&(i.observer.delayAndroidKey(n.key,n.keyCode),n.key=="Backspace"||n.key=="Delete")){let s=((t=window.visualViewport)===null||t===void 0?void 0:t.height)||0;setTimeout(()=>{var r;(((r=window.visualViewport)===null||r===void 0?void 0:r.height)||0)>s+10&&i.hasFocus&&(i.contentDOM.blur(),i.focus())},100)}};const or=["pre-wrap","normal","pre-line","break-spaces"];class uu{constructor(e){this.lineWrapping=e,this.doc=ge.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.lineLength=30,this.heightChanged=!1}heightForGap(e,t){let n=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(n+=Math.ceil((t-e-n*this.lineLength*.5)/this.lineLength)),this.lineHeight*n}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return or.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let n=0;n<e.length;n++){let s=e[n];s<0?n++:this.heightSamples[Math.floor(s*10)]||(t=!0,this.heightSamples[Math.floor(s*10)]=!0)}return t}refresh(e,t,n,s,r){let o=or.indexOf(e)>-1,l=Math.round(t)!=Math.round(this.lineHeight)||this.lineWrapping!=o;if(this.lineWrapping=o,this.lineHeight=t,this.charWidth=n,this.lineLength=s,l){this.heightSamples={};for(let a=0;a<r.length;a++){let c=r[a];c<0?a++:this.heightSamples[Math.floor(c*10)]=!0}}return l}}class fu{constructor(e,t){this.from=e,this.heights=t,this.index=0}get more(){return this.index<this.heights.length}}class Ne{constructor(e,t,n,s,r){this.from=e,this.length=t,this.top=n,this.height=s,this.type=r}get to(){return this.from+this.length}get bottom(){return this.top+this.height}join(e){let t=(Array.isArray(this.type)?this.type:[this]).concat(Array.isArray(e.type)?e.type:[e]);return new Ne(this.from,this.length+e.length,this.top,this.height+e.height,t)}}var N=function(i){return i[i.ByPos=0]="ByPos",i[i.ByHeight=1]="ByHeight",i[i.ByPosNoHeight=2]="ByPosNoHeight",i}(N||(N={}));const ni=.001;class se{constructor(e,t,n=2){this.length=e,this.height=t,this.flags=n}get outdated(){return(this.flags&2)>0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e,t){this.height!=t&&(Math.abs(this.height-t)>ni&&(e.heightChanged=!0),this.height=t)}replace(e,t,n){return se.of(n)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,n,s){let r=this;for(let o=s.length-1;o>=0;o--){let{fromA:l,toA:a,fromB:c,toB:h}=s[o],u=r.lineAt(l,N.ByPosNoHeight,t,0,0),f=u.to>=a?u:r.lineAt(a,N.ByPosNoHeight,t,0,0);for(h+=f.to-a,a=f.to;o>0&&u.from<=s[o-1].toA;)l=s[o-1].fromA,c=s[o-1].fromB,o--,l<u.from&&(u=r.lineAt(l,N.ByPosNoHeight,t,0,0));c+=u.from-l,l=u.from;let p=as.build(n,e,c,h);r=r.replace(l,a,p)}return r.updateHeight(n,0)}static empty(){return new he(0,0)}static of(e){if(e.length==1)return e[0];let t=0,n=e.length,s=0,r=0;for(;;)if(t==n)if(s>r*2){let l=e[t-1];l.break?e.splice(--t,1,l.left,null,l.right):e.splice(--t,1,l.left,l.right),n+=1+l.break,s-=l.size}else if(r>s*2){let l=e[n];l.break?e.splice(n,1,l.left,null,l.right):e.splice(n,1,l.left,l.right),n+=2+l.break,r-=l.size}else break;else if(s<r){let l=e[t++];l&&(s+=l.size)}else{let l=e[--n];l&&(r+=l.size)}let o=0;return e[t-1]==null?(o=1,t--):e[t]==null&&(o=1,n++),new pu(se.of(e.slice(0,t)),o,se.of(e.slice(n)))}}se.prototype.size=1;class Ol extends se{constructor(e,t,n){super(e,t),this.type=n}blockAt(e,t,n,s){return new Ne(s,this.length,n,this.height,this.type)}lineAt(e,t,n,s,r){return this.blockAt(0,n,s,r)}forEachLine(e,t,n,s,r,o){e<=r+this.length&&t>=r&&o(this.blockAt(0,n,s,r))}updateHeight(e,t=0,n=!1,s){return s&&s.from<=t&&s.more&&this.setHeight(e,s.heights[s.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class he extends Ol{constructor(e,t){super(e,t,U.Text),this.collapsed=0,this.widgetHeight=0}replace(e,t,n){let s=n[0];return n.length==1&&(s instanceof he||s instanceof J&&s.flags&4)&&Math.abs(this.length-s.length)<10?(s instanceof J?s=new he(s.length,this.height):s.height=this.height,this.outdated||(s.outdated=!1),s):se.of(n)}updateHeight(e,t=0,n=!1,s){return s&&s.from<=t&&s.more?this.setHeight(e,s.heights[s.index++]):(n||this.outdated)&&this.setHeight(e,Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class J extends se{constructor(e){super(e,0)}lines(e,t){let n=e.lineAt(t).number,s=e.lineAt(t+this.length).number;return{firstLine:n,lastLine:s,lineHeight:this.height/(s-n+1)}}blockAt(e,t,n,s){let{firstLine:r,lastLine:o,lineHeight:l}=this.lines(t,s),a=Math.max(0,Math.min(o-r,Math.floor((e-n)/l))),{from:c,length:h}=t.line(r+a);return new Ne(c,h,n+l*a,l,U.Text)}lineAt(e,t,n,s,r){if(t==N.ByHeight)return this.blockAt(e,n,s,r);if(t==N.ByPosNoHeight){let{from:u,to:f}=n.lineAt(e);return new Ne(u,f-u,0,0,U.Text)}let{firstLine:o,lineHeight:l}=this.lines(n,r),{from:a,length:c,number:h}=n.lineAt(e);return new Ne(a,c,s+l*(h-o),l,U.Text)}forEachLine(e,t,n,s,r,o){let{firstLine:l,lineHeight:a}=this.lines(n,r);for(let c=Math.max(e,r),h=Math.min(r+this.length,t);c<=h;){let u=n.lineAt(c);c==e&&(s+=a*(u.number-l)),o(new Ne(u.from,u.length,s,a,U.Text)),s+=a,c=u.to+1}}replace(e,t,n){let s=this.length-t;if(s>0){let r=n[n.length-1];r instanceof J?n[n.length-1]=new J(r.length+s):n.push(null,new J(s-1))}if(e>0){let r=n[0];r instanceof J?n[0]=new J(e+r.length):n.unshift(new J(e-1),null)}return se.of(n)}decomposeLeft(e,t){t.push(new J(e-1),null)}decomposeRight(e,t){t.push(null,new J(this.length-e-1))}updateHeight(e,t=0,n=!1,s){let r=t+this.length;if(s&&s.from<=t+this.length&&s.more){let o=[],l=Math.max(t,s.from),a=-1,c=e.heightChanged;for(s.from>t&&o.push(new J(s.from-t-1).updateHeight(e,t));l<=r&&s.more;){let u=e.doc.lineAt(l).length;o.length&&o.push(null);let f=s.heights[s.index++];a==-1?a=f:Math.abs(f-a)>=ni&&(a=-2);let p=new he(u,f);p.outdated=!1,o.push(p),l+=u+1}l<=r&&o.push(null,new J(r-l).updateHeight(e,l));let h=se.of(o);return e.heightChanged=c||a<0||Math.abs(h.height-this.height)>=ni||Math.abs(a-this.lines(e.doc,t).lineHeight)>=ni,h}else(n||this.outdated)&&(this.setHeight(e,e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class pu extends se{constructor(e,t,n){super(e.length+t+n.length,e.height+n.height,t|(e.outdated||n.outdated?2:0)),this.left=e,this.right=n,this.size=e.size+n.size}get break(){return this.flags&1}blockAt(e,t,n,s){let r=n+this.left.height;return e<r?this.left.blockAt(e,t,n,s):this.right.blockAt(e,t,r,s+this.left.length+this.break)}lineAt(e,t,n,s,r){let o=s+this.left.height,l=r+this.left.length+this.break,a=t==N.ByHeight?e<o:e<l,c=a?this.left.lineAt(e,t,n,s,r):this.right.lineAt(e,t,n,o,l);if(this.break||(a?c.to<l:c.from>l))return c;let h=t==N.ByPosNoHeight?N.ByPosNoHeight:N.ByPos;return a?c.join(this.right.lineAt(l,h,n,o,l)):this.left.lineAt(l,h,n,s,r).join(c)}forEachLine(e,t,n,s,r,o){let l=s+this.left.height,a=r+this.left.length+this.break;if(this.break)e<a&&this.left.forEachLine(e,t,n,s,r,o),t>=a&&this.right.forEachLine(e,t,n,l,a,o);else{let c=this.lineAt(a,N.ByPos,n,s,r);e<c.from&&this.left.forEachLine(e,c.from-1,n,s,r,o),c.to>=e&&c.from<=t&&o(c),t>c.to&&this.right.forEachLine(c.to+1,t,n,l,a,o)}}replace(e,t,n){let s=this.left.length+this.break;if(t<s)return this.balanced(this.left.replace(e,t,n),this.right);if(e>this.left.length)return this.balanced(this.left,this.right.replace(e-s,t-s,n));let r=[];e>0&&this.decomposeLeft(e,r);let o=r.length;for(let l of n)r.push(l);if(e>0&&lr(r,o-1),t<this.length){let l=r.length;this.decomposeRight(t,r),lr(r,l)}return se.of(r)}decomposeLeft(e,t){let n=this.left.length;if(e<=n)return this.left.decomposeLeft(e,t);t.push(this.left),this.break&&(n++,e>=n&&t.push(null)),e>n&&this.right.decomposeLeft(e-n,t)}decomposeRight(e,t){let n=this.left.length,s=n+this.break;if(e>=s)return this.right.decomposeRight(e-s,t);e<n&&this.left.decomposeRight(e,t),this.break&&e<s&&t.push(null),t.push(this.right)}balanced(e,t){return e.size>2*t.size||t.size>2*e.size?se.of(this.break?[e,null,t]:[e,t]):(this.left=e,this.right=t,this.height=e.height+t.height,this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,n=!1,s){let{left:r,right:o}=this,l=t+r.length+this.break,a=null;return s&&s.from<=t+r.length&&s.more?a=r=r.updateHeight(e,t,n,s):r.updateHeight(e,t,n),s&&s.from<=l+o.length&&s.more?a=o=o.updateHeight(e,l,n,s):o.updateHeight(e,l,n),a?this.balanced(r,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function lr(i,e){let t,n;i[e]==null&&(t=i[e-1])instanceof J&&(n=i[e+1])instanceof J&&i.splice(e-1,3,new J(t.length+1+n.length))}const mu=5;class as{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let n=Math.min(t,this.lineEnd),s=this.nodes[this.nodes.length-1];s instanceof he?s.length+=n-this.pos:(n>this.pos||!this.isCovered)&&this.nodes.push(new he(n-this.pos,-1)),this.writtenTo=n,t>n&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,n){if(e<t||n.heightRelevant){let s=n.widget?n.widget.estimatedHeight:0;s<0&&(s=this.oracle.lineHeight);let r=t-e;n.block?this.addBlock(new Ol(r,s,n.type)):(r||s>=mu)&&this.addLineDeco(s,r)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenTo<e&&((this.writtenTo<e-1||this.nodes[this.nodes.length-1]==null)&&this.nodes.push(this.blankContent(this.writtenTo,e-1)),this.nodes.push(null)),this.pos>e&&this.nodes.push(new he(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,t){let n=new J(t-e);return this.oracle.doc.lineAt(e).to==t&&(n.flags|=4),n}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof he)return e;let t=new he(0,-1);return this.nodes.push(t),t}addBlock(e){this.enterLine(),e.type==U.WidgetAfter&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,e.type!=U.WidgetBefore&&(this.covering=e)}addLineDeco(e,t){let n=this.ensureLine();n.length+=t,n.collapsed+=t,n.widgetHeight=Math.max(n.widgetHeight,e),this.writtenTo=this.pos=this.pos+t}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof he)&&!this.isCovered?this.nodes.push(new he(0,-1)):(this.writtenTo<this.pos||t==null)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos));let n=e;for(let s of this.nodes)s instanceof he&&s.updateHeight(this.oracle,n),n+=s?s.length:1;return this.nodes}static build(e,t,n,s){let r=new as(n,e);return De.spans(t,n,s,r,0),r.finish(n)}}function gu(i,e,t){let n=new xu;return De.compare(i,e,t,n,0),n.changes}class xu{constructor(){this.changes=[]}compareRange(){}comparePoint(e,t,n,s){(e<t||n&&n.heightRelevant||s&&s.heightRelevant)&&Cn(e,t,this.changes,5)}}function yu(i,e){let t=i.getBoundingClientRect(),n=i.ownerDocument,s=n.defaultView||window,r=Math.max(0,t.left),o=Math.min(s.innerWidth,t.right),l=Math.max(0,t.top),a=Math.min(s.innerHeight,t.bottom);for(let c=i.parentNode;c&&c!=n.body;)if(c.nodeType==1){let h=c,u=window.getComputedStyle(h);if((h.scrollHeight>h.clientHeight||h.scrollWidth>h.clientWidth)&&u.overflow!="visible"){let f=h.getBoundingClientRect();r=Math.max(r,f.left),o=Math.min(o,f.right),l=Math.max(l,f.top),a=c==i.parentNode?f.bottom:Math.min(a,f.bottom)}c=u.position=="absolute"||u.position=="fixed"?h.offsetParent:h.parentNode}else if(c.nodeType==11)c=c.host;else break;return{left:r-t.left,right:Math.max(r,o)-t.left,top:l-(t.top+e),bottom:Math.max(l,a)-(t.top+e)}}function bu(i,e){let t=i.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}class Ji{constructor(e,t,n){this.from=e,this.to=t,this.size=n}static same(e,t){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++){let s=e[n],r=t[n];if(s.from!=r.from||s.to!=r.to||s.size!=r.size)return!1}return!0}draw(e){return Y.replace({widget:new vu(this.size,e)}).range(this.from,this.to)}}class vu extends Li{constructor(e,t){super(),this.size=e,this.vertical=t}eq(e){return e.size==this.size&&e.vertical==this.vertical}toDOM(){let e=document.createElement("div");return this.vertical?e.style.height=this.size+"px":(e.style.width=this.size+"px",e.style.height="2px",e.style.display="inline-block"),e}get estimatedHeight(){return this.vertical?this.size:-1}}class ar{constructor(e){this.state=e,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.scaler=cr,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=X.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let t=e.facet(ls).some(n=>typeof n!="function"&&n.class=="cm-lineWrapping");this.heightOracle=new uu(t),this.stateDeco=e.facet(Et).filter(n=>typeof n!="function"),this.heightMap=se.empty().applyChanges(this.stateDeco,ge.empty,this.heightOracle.setDoc(e.doc),[new Me(0,0,0,e.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Y.set(this.lineGaps.map(n=>n.draw(!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let n=0;n<=1;n++){let s=n?t.head:t.anchor;if(!e.some(({from:r,to:o})=>s>=r&&s<=o)){let{from:r,to:o}=this.lineBlockAt(s);e.push(new Kt(r,o))}}this.viewports=e.sort((n,s)=>n.from-s.from),this.scaler=this.heightMap.height<=7e6?cr:new Cu(this.heightOracle.doc,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.state.doc,0,0,e=>{this.viewportLines.push(this.scaler.scale==1?e:At(e,this.scaler))})}update(e,t=null){this.state=e.state;let n=this.stateDeco;this.stateDeco=this.state.facet(Et).filter(c=>typeof c!="function");let s=e.changedRanges,r=Me.extendWithRanges(s,gu(n,this.stateDeco,e?e.changes:zn.empty(this.state.doc.length))),o=this.heightMap.height;this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),r),this.heightMap.height!=o&&(e.flags|=2);let l=r.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.head<l.from||t.range.head>l.to)||!this.viewportIsAppropriate(l))&&(l=this.getViewport(0,t));let a=!e.changes.empty||e.flags&2||l.from!=this.viewport.from||l.to!=this.viewport.to;this.viewport=l,this.updateForViewport(),a&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(Od)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,n=window.getComputedStyle(t),s=this.heightOracle,r=n.whiteSpace;this.defaultTextDirection=n.direction=="rtl"?X.RTL:X.LTR;let o=this.heightOracle.mustRefreshForWrapping(r),l=o||this.mustMeasureContent||this.contentDOMHeight!=t.clientHeight;this.contentDOMHeight=t.clientHeight,this.mustMeasureContent=!1;let a=0,c=0,h=parseInt(n.paddingTop)||0,u=parseInt(n.paddingBottom)||0;(this.paddingTop!=h||this.paddingBottom!=u)&&(this.paddingTop=h,this.paddingBottom=u,a|=10),this.editorWidth!=e.scrollDOM.clientWidth&&(s.lineWrapping&&(l=!0),this.editorWidth=e.scrollDOM.clientWidth,a|=8);let f=(this.printing?bu:yu)(t,this.paddingTop),p=f.top-this.pixelViewport.top,m=f.bottom-this.pixelViewport.bottom;this.pixelViewport=f;let x=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(x!=this.inView&&(this.inView=x,x&&(l=!0)),!this.inView&&!this.scrollTarget)return 0;let g=t.clientWidth;if((this.contentDOMWidth!=g||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=g,this.editorHeight=e.scrollDOM.clientHeight,a|=8),l){let S=e.docView.measureVisibleLineHeights(this.viewport);if(s.mustRefreshForHeights(S)&&(o=!0),o||s.lineWrapping&&Math.abs(g-this.contentDOMWidth)>s.charWidth){let{lineHeight:D,charWidth:C}=e.docView.measureTextSize();o=D>0&&s.refresh(r,D,C,g/C,S),o&&(e.docView.minWidth=0,a|=8)}p>0&&m>0?c=Math.max(p,m):p<0&&m<0&&(c=Math.min(p,m)),s.heightChanged=!1;for(let D of this.viewports){let C=D.from==this.viewport.from?S:e.docView.measureVisibleLineHeights(D);this.heightMap=(o?se.empty().applyChanges(this.stateDeco,ge.empty,this.heightOracle,[new Me(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(s,0,o,new fu(D.from,C))}s.heightChanged&&(a|=2)}let y=!this.viewportIsAppropriate(this.viewport,c)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return y&&(this.viewport=this.getViewport(c,this.scrollTarget)),this.updateForViewport(),(a&2||y)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),a|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),a}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let n=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),s=this.heightMap,r=this.state.doc,{visibleTop:o,visibleBottom:l}=this,a=new Kt(s.lineAt(o-n*1e3,N.ByHeight,r,0,0).from,s.lineAt(l+(1-n)*1e3,N.ByHeight,r,0,0).to);if(t){let{head:c}=t.range;if(c<a.from||c>a.to){let h=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),u=s.lineAt(c,N.ByPos,r,0,0),f;t.y=="center"?f=(u.top+u.bottom)/2-h/2:t.y=="start"||t.y=="nearest"&&c<a.from?f=u.top:f=u.bottom-h,a=new Kt(s.lineAt(f-1e3/2,N.ByHeight,r,0,0).from,s.lineAt(f+h+1e3/2,N.ByHeight,r,0,0).to)}}return a}mapViewport(e,t){let n=t.mapPos(e.from,-1),s=t.mapPos(e.to,1);return new Kt(this.heightMap.lineAt(n,N.ByPos,this.state.doc,0,0).from,this.heightMap.lineAt(s,N.ByPos,this.state.doc,0,0).to)}viewportIsAppropriate({from:e,to:t},n=0){if(!this.inView)return!0;let{top:s}=this.heightMap.lineAt(e,N.ByPos,this.state.doc,0,0),{bottom:r}=this.heightMap.lineAt(t,N.ByPos,this.state.doc,0,0),{visibleTop:o,visibleBottom:l}=this;return(e==0||s<=o-Math.max(10,Math.min(-n,250)))&&(t==this.state.doc.length||r>=l+Math.max(10,Math.min(n,250)))&&s>o-2*1e3&&r<l+2*1e3}mapLineGaps(e,t){if(!e.length||t.empty)return e;let n=[];for(let s of e)t.touchesRange(s.from,s.to)||n.push(new Ji(t.mapPos(s.from),t.mapPos(s.to),s.size));return n}ensureLineGaps(e,t){let n=this.heightOracle.lineWrapping,s=n?1e4:2e3,r=s>>1,o=s<<1;if(this.defaultTextDirection!=X.LTR&&!n)return[];let l=[],a=(c,h,u,f)=>{if(h-c<r)return;let p=this.state.selection.main,m=[p.from];p.empty||m.push(p.to);for(let g of m)if(g>c&&g<h){a(c,g-10,u,f),a(g+10,h,u,f);return}let x=wu(e,g=>g.from>=u.from&&g.to<=u.to&&Math.abs(g.from-c)<r&&Math.abs(g.to-h)<r&&!m.some(y=>g.from<y&&g.to>y));if(!x){if(h<u.to&&t&&n&&t.visibleRanges.some(g=>g.from<=h&&g.to>=h)){let g=t.moveToLineBoundary(v.cursor(h),!1,!0).head;g>c&&(h=g)}x=new Ji(c,h,this.gapSize(u,c,h,f))}l.push(x)};for(let c of this.viewportLines){if(c.length<o)continue;let h=Su(c.from,c.to,this.stateDeco);if(h.total<o)continue;let u=this.scrollTarget?this.scrollTarget.range.head:null,f,p;if(n){let m=s/this.heightOracle.lineLength*this.heightOracle.lineHeight,x,g;if(u!=null){let y=_t(h,u),S=((this.visibleBottom-this.visibleTop)/2+m)/c.height;x=y-S,g=y+S}else x=(this.visibleTop-c.top-m)/c.height,g=(this.visibleBottom-c.top+m)/c.height;f=Gt(h,x),p=Gt(h,g)}else{let m=h.total*this.heightOracle.charWidth,x=s*this.heightOracle.charWidth,g,y;if(u!=null){let S=_t(h,u),D=((this.pixelViewport.right-this.pixelViewport.left)/2+x)/m;g=S-D,y=S+D}else g=(this.pixelViewport.left-x)/m,y=(this.pixelViewport.right+x)/m;f=Gt(h,g),p=Gt(h,y)}f>c.from&&a(c.from,f,c,h),p<c.to&&a(p,c.to,c,h)}return l}gapSize(e,t,n,s){let r=_t(s,n)-_t(s,t);return this.heightOracle.lineWrapping?e.height*r:s.total*this.heightOracle.charWidth*r}updateLineGaps(e){Ji.same(e,this.lineGaps)||(this.lineGaps=e,this.lineGapDeco=Y.set(e.map(t=>t.draw(this.heightOracle.lineWrapping))))}computeVisibleRanges(){let e=this.stateDeco;this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let t=[];De.spans(e,this.viewport.from,this.viewport.to,{span(s,r){t.push({from:s,to:r})},point(){}},20);let n=t.length!=this.visibleRanges.length||this.visibleRanges.some((s,r)=>s.from!=t[r].from||s.to!=t[r].to);return this.visibleRanges=t,n?4:0}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||At(this.heightMap.lineAt(e,N.ByPos,this.state.doc,0,0),this.scaler)}lineBlockAtHeight(e){return At(this.heightMap.lineAt(this.scaler.fromDOM(e),N.ByHeight,this.state.doc,0,0),this.scaler)}elementAtHeight(e){return At(this.heightMap.blockAt(this.scaler.fromDOM(e),this.state.doc,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class Kt{constructor(e,t){this.from=e,this.to=t}}function Su(i,e,t){let n=[],s=i,r=0;return De.spans(t,i,e,{span(){},point(o,l){o>s&&(n.push({from:s,to:o}),r+=o-s),s=l}},20),s<e&&(n.push({from:s,to:e}),r+=e-s),{total:r,ranges:n}}function Gt({total:i,ranges:e},t){if(t<=0)return e[0].from;if(t>=1)return e[e.length-1].to;let n=Math.floor(i*t);for(let s=0;;s++){let{from:r,to:o}=e[s],l=o-r;if(n<=l)return r+n;n-=l}}function _t(i,e){let t=0;for(let{from:n,to:s}of i.ranges){if(e<=s){t+=e-n;break}t+=s-n}return t/i.total}function wu(i,e){for(let t of i)if(e(t))return t}const cr={toDOM(i){return i},fromDOM(i){return i},scale:1};class Cu{constructor(e,t,n){let s=0,r=0,o=0;this.viewports=n.map(({from:l,to:a})=>{let c=t.lineAt(l,N.ByPos,e,0,0).top,h=t.lineAt(a,N.ByPos,e,0,0).bottom;return s+=h-c,{from:l,to:a,top:c,bottom:h,domTop:0,domBottom:0}}),this.scale=(7e6-s)/(t.height-s);for(let l of this.viewports)l.domTop=o+(l.top-r)*this.scale,o=l.domBottom=l.domTop+(l.bottom-l.top),r=l.bottom}toDOM(e){for(let t=0,n=0,s=0;;t++){let r=t<this.viewports.length?this.viewports[t]:null;if(!r||e<r.top)return s+(e-n)*this.scale;if(e<=r.bottom)return r.domTop+(e-r.top);n=r.bottom,s=r.domBottom}}fromDOM(e){for(let t=0,n=0,s=0;;t++){let r=t<this.viewports.length?this.viewports[t]:null;if(!r||e<r.domTop)return n+(e-s)/this.scale;if(e<=r.domBottom)return r.top+(e-r.domTop);n=r.bottom,s=r.domBottom}}}function At(i,e){if(e.scale==1)return i;let t=e.toDOM(i.top),n=e.toDOM(i.bottom);return new Ne(i.from,i.length,t,n-t,Array.isArray(i.type)?i.type.map(s=>At(s,e)):i.type)}const Jt=P.define({combine:i=>i.join(" ")}),jn=P.define({combine:i=>i.indexOf(!0)>-1}),Rn=at.newName(),jl=at.newName(),Rl=at.newName(),Bl={"&light":"."+jl,"&dark":"."+Rl};function Bn(i,e,t){return new at(e,{finish(n){return/&/.test(n)?n.replace(/&\w*/,s=>{if(s=="&")return i;if(!t||!t[s])throw new RangeError(`Unsupported selector: ${s}`);return t[s]}):i+" "+n}})}const ku=Bn("."+Rn,{"&":{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},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",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":{contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused .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:"#444"},"&.cm-focused .cm-cursor":{display:"block"},"&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",left:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&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},"&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-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"},".cm-highlightSpace:before":{content:"attr(data-display)",position:"absolute",pointerEvents:"none",color:"#888"},".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"}},Bl);class Au{constructor(e,t,n,s){this.typeOver=s,this.bounds=null,this.text="";let{impreciseHead:r,impreciseAnchor:o}=e.docView;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=e.docView.domBoundsAround(t,n,0))){let l=r||o?[]:Du(e),a=new yl(l,e.state);a.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=a.text,this.newSel=Tu(l,this.bounds.from)}else{let l=e.observer.selectionRange,a=r&&r.node==l.focusNode&&r.offset==l.focusOffset||!ht(e.contentDOM,l.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(l.focusNode,l.focusOffset),c=o&&o.node==l.anchorNode&&o.offset==l.anchorOffset||!ht(e.contentDOM,l.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(l.anchorNode,l.anchorOffset);this.newSel=v.single(c,a)}}}function El(i,e){let t,{newSel:n}=e,s=i.state.selection.main;if(e.bounds){let{from:r,to:o}=e.bounds,l=s.from,a=null;(i.inputState.lastKeyCode===8&&i.inputState.lastKeyTime>Date.now()-100||A.android&&e.text.length<o-r)&&(l=s.to,a="end");let c=Mu(i.state.doc.sliceString(r,o,Ie),e.text,l-r,a);c&&(A.chrome&&i.inputState.lastKeyCode==13&&c.toB==c.from+2&&e.text.slice(c.from,c.toB)==Ie+Ie&&c.toB--,t={from:r+c.from,to:r+c.toA,insert:ge.of(e.text.slice(c.from,c.toB).split(Ie))})}else n&&(!i.hasFocus&&i.state.facet(Ii)||n.main.eq(s))&&(n=null);if(!t&&!n)return!1;if(!t&&e.typeOver&&!s.empty&&n&&n.main.empty?t={from:s.from,to:s.to,insert:i.state.doc.slice(s.from,s.to)}:t&&t.from>=s.from&&t.to<=s.to&&(t.from!=s.from||t.to!=s.to)&&s.to-s.from-(t.to-t.from)<=4?t={from:s.from,to:s.to,insert:i.state.doc.slice(s.from,t.from).append(t.insert).append(i.state.doc.slice(t.to,s.to))}:(A.mac||A.android)&&t&&t.from==t.to&&t.from==s.head-1&&/^\. ?$/.test(t.insert.toString())?(n&&t.insert.length==2&&(n=v.single(n.main.anchor-1,n.main.head-1)),t={from:s.from,to:s.to,insert:ge.of([" "])}):A.chrome&&t&&t.from==t.to&&t.from==s.head&&t.insert.toString()==`
|
|
4
4
|
`&&i.lineWrapping&&(n&&(n=v.single(n.main.anchor-1,n.main.head-1)),t={from:s.from,to:s.to,insert:ge.of([" "])}),t){let r=i.state;if(A.ios&&i.inputState.flushIOSKey(i)||A.android&&(t.from==s.from&&t.to==s.to&&t.insert.length==1&&t.insert.lines==2&&ot(i.contentDOM,"Enter",13)||t.from==s.from-1&&t.to==s.to&&t.insert.length==0&&ot(i.contentDOM,"Backspace",8)||t.from==s.from&&t.to==s.to+1&&t.insert.length==0&&ot(i.contentDOM,"Delete",46)))return!0;let o=t.insert.toString();if(i.state.facet(hl).some(c=>c(i,t.from,t.to,o)))return!0;i.inputState.composing>=0&&i.inputState.composing++;let l;if(t.from>=s.from&&t.to<=s.to&&t.to-t.from>=(s.to-s.from)/3&&(!n||n.main.empty&&n.main.from==t.from+t.insert.length)&&i.inputState.composing<0){let c=s.from<t.from?r.sliceDoc(s.from,t.from):"",h=s.to>t.to?r.sliceDoc(t.to,s.to):"";l=r.replaceSelection(i.state.toText(c+t.insert.sliceString(0,void 0,i.state.lineBreak)+h))}else{let c=r.changes(t),h=n&&!r.selection.main.eq(n.main)&&n.main.to<=c.newLength?n.main:void 0;if(r.selection.ranges.length>1&&i.inputState.composing>=0&&t.to<=s.to&&t.to>=s.to-10){let u=i.state.sliceDoc(t.from,t.to),f=bl(i)||i.state.doc.lineAt(s.head),p=s.to-t.to,m=s.to-s.from;l=r.changeByRange(x=>{if(x.from==s.from&&x.to==s.to)return{changes:c,range:h||x.map(c)};let g=x.to-p,y=g-u.length;if(x.to-x.from!=m||i.state.sliceDoc(y,g)!=u||f&&x.to>=f.from&&x.from<=f.to)return{range:x};let S=r.changes({from:y,to:g,insert:t.insert}),D=x.to-s.to;return{changes:S,range:h?v.range(Math.max(0,h.anchor+D),Math.max(0,h.head+D)):x.map(S)}})}else l={changes:c,selection:h&&r.selection.replaceRange(h)}}let a="input.type";return i.composing&&(a+=".compose",i.inputState.compositionFirstChange&&(a+=".start",i.inputState.compositionFirstChange=!1)),i.dispatch(l,{scrollIntoView:!0,userEvent:a}),!0}else if(n&&!n.main.eq(s)){let r=!1,o="select";return i.inputState.lastSelectionTime>Date.now()-50&&(i.inputState.lastSelectionOrigin=="select"&&(r=!0),o=i.inputState.lastSelectionOrigin),i.dispatch({selection:n,scrollIntoView:r,userEvent:o}),!0}else return!1}function Mu(i,e,t,n){let s=Math.min(i.length,e.length),r=0;for(;r<s&&i.charCodeAt(r)==e.charCodeAt(r);)r++;if(r==s&&i.length==e.length)return null;let o=i.length,l=e.length;for(;o>0&&l>0&&i.charCodeAt(o-1)==e.charCodeAt(l-1);)o--,l--;if(n=="end"){let a=Math.max(0,r-Math.min(o,l));t-=o+a-r}if(o<r&&i.length<e.length){let a=t<=r&&t>=o?r-t:0;r-=a,l=r+(l-o),o=r}else if(l<r){let a=t<=r&&t>=l?r-t:0;r-=a,o=r+(o-l),l=r}return{from:r,toA:o,toB:l}}function Du(i){let e=[];if(i.root.activeElement!=i.contentDOM)return e;let{anchorNode:t,anchorOffset:n,focusNode:s,focusOffset:r}=i.observer.selectionRange;return t&&(e.push(new qs(t,n)),(s!=t||r!=n)&&e.push(new qs(s,r))),e}function Tu(i,e){if(i.length==0)return null;let t=i[0].pos,n=i.length==2?i[1].pos:t;return t>-1&&n>-1?v.single(t+e,n+e):null}const Ou={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Yi=A.ie&&A.ie_version<=11;class ju{constructor(e){this.view=e,this.active=!1,this.selectionRange=new wd,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.resizeContent=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let n of t)this.queue.push(n);(A.ie&&A.ie_version<=11||A.ios&&e.composing)&&t.some(n=>n.type=="childList"&&n.removedNodes.length||n.type=="characterData"&&n.oldValue.length>n.target.nodeValue.length)?this.flushSoon():this.flush()}),Yi&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.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),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate)<Date.now()-75&&this.onResize()}),this.resizeScroll.observe(e.scrollDOM),this.resizeContent=new ResizeObserver(()=>this.view.requestMeasure()),this.resizeContent.observe(e.contentDOM)),this.addWindowListeners(this.win=e.win),this.start(),typeof IntersectionObserver=="function"&&(this.intersection=new IntersectionObserver(t=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runScrollHandlers(this.view,e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(){this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500)}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,n)=>t!=e[n]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:n}=this,s=this.selectionRange;if(n.state.facet(Ii)?n.root.activeElement!=this.dom:!ii(n.dom,s))return;let r=s.anchorNode&&n.docView.nearest(s.anchorNode);if(r&&r.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(A.ie&&A.ie_version<=11||A.android&&A.chrome)&&!n.state.selection.main.empty&&s.focusNode&&pi(s.focusNode,s.focusOffset,s.anchorNode,s.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=A.safari&&e.root.nodeType==11&&yd(this.dom.ownerDocument)==this.dom&&Ru(this.view)||fi(e.root);if(!t||this.selectionRange.eq(t))return!1;let n=ii(this.dom,t);return n&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime<Date.now()-300&&kd(this.dom,t)?(this.view.inputState.lastFocusTime=0,e.docView.updateSelection(),!1):(this.selectionRange.setRange(t),n&&(this.selectionChanged=!0),!0)}setSelectionRange(e,t){this.selectionRange.set(e.node,e.offset,t.node,t.offset),this.selectionChanged=!1}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let e=0,t=null;for(let n=this.dom;n;)if(n.nodeType==1)!t&&e<this.scrollTargets.length&&this.scrollTargets[e]==n?e++:t||(t=this.scrollTargets.slice(0,e)),t&&t.push(n),n=n.assignedSlot||n.parentNode;else if(n.nodeType==11)n=n.host;else break;if(e<this.scrollTargets.length&&!t&&(t=this.scrollTargets.slice(0,e)),t){for(let n of this.scrollTargets)n.removeEventListener("scroll",this.onScroll);for(let n of this.scrollTargets=t)n.addEventListener("scroll",this.onScroll)}}ignore(e){if(!this.active)return e();try{return this.stop(),e()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,Ou),Yi&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),Yi&&this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData))}clear(){this.processRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(e,t){var n;if(!this.delayedAndroidKey){let s=()=>{let r=this.delayedAndroidKey;r&&(this.clearDelayedAndroidKey(),!this.flush()&&r.force&&ot(this.dom,r.key,r.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(s)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange<Date.now()-50||!!(!((n=this.delayedAndroidKey)===null||n===void 0)&&n.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()}processRecords(){let e=this.queue;for(let r of this.observer.takeRecords())e.push(r);e.length&&(this.queue=[]);let t=-1,n=-1,s=!1;for(let r of e){let o=this.readMutation(r);o&&(o.typeOver&&(s=!0),t==-1?{from:t,to:n}=o:(t=Math.min(o.from,t),n=Math.max(o.to,n)))}return{from:t,to:n,typeOver:s}}readChange(){let{from:e,to:t,typeOver:n}=this.processRecords(),s=this.selectionChanged&&ii(this.dom,this.selectionRange);return e<0&&!s?null:(e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1,new Au(this.view,e,t,n))}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return!1;let n=this.view.state,s=El(this.view,t);return this.view.state==n&&this.view.update([]),s}readMutation(e){let t=this.view.docView.nearest(e.target);if(!t||t.ignoreMutation(e))return null;if(t.markDirty(e.type=="attributes"),e.type=="attributes"&&(t.dirty|=4),e.type=="childList"){let n=hr(t,e.previousSibling||e.target.previousSibling,-1),s=hr(t,e.nextSibling||e.target.nextSibling,1);return{from:n?t.posAfter(n):t.posAtStart,to:s?t.posBefore(s):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var e,t,n,s;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(n=this.resizeScroll)===null||n===void 0||n.disconnect(),(s=this.resizeContent)===null||s===void 0||s.disconnect();for(let r of this.scrollTargets)r.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey)}}function hr(i,e,t){for(;e;){let n=F.get(e);if(n&&n.parent==i)return n;let s=e.parentNode;e=s!=i.dom?s:t>0?e.nextSibling:e.previousSibling}return null}function Ru(i){let e=null;function t(a){a.preventDefault(),a.stopImmediatePropagation(),e=a.getTargetRanges()[0]}if(i.contentDOM.addEventListener("beforeinput",t,!0),i.dom.ownerDocument.execCommand("indent"),i.contentDOM.removeEventListener("beforeinput",t,!0),!e)return null;let n=e.startContainer,s=e.startOffset,r=e.endContainer,o=e.endOffset,l=i.docView.domAtPos(i.state.selection.main.anchor);return pi(l.node,l.offset,r,o)&&([n,s,r,o]=[r,o,n,s]),{anchorNode:n,anchorOffset:s,focusNode:r,focusOffset:o}}class W{constructor(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.style.cssText="position: fixed; top: -10000px",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),this._dispatch=e.dispatch||(t=>this.update([t])),this.dispatch=this.dispatch.bind(this),this._root=e.root||Cd(e.parent)||document,this.viewState=new ar(e.state||ke.create(e)),this.plugins=this.state.facet(Ct).map(t=>new Ki(t));for(let t of this.plugins)t.update(this);this.observer=new ju(this),this.inputState=new Zd(this),this.inputState.ensureHandlers(this,this.plugins),this.docView=new Us(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),e.parent&&e.parent.appendChild(this.dom)}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.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}dispatch(...e){this._dispatch(e.length==1&&e[0]instanceof ti?e[0]:this.state.update(...e))}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,n=!1,s,r=this.state;for(let c of e){if(c.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=c.state}if(this.destroyed){this.viewState.state=r;return}let o=this.observer.delayedAndroidKey,l=null;if(o?(this.observer.clearDelayedAndroidKey(),l=this.observer.readChange(),(l&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(l=null)):this.observer.clear(),r.facet(ke.phrases)!=this.state.facet(ke.phrases))return this.setState(r);s=xi.create(this,r,e);let a=this.viewState.scrollTarget;try{this.updateState=2;for(let c of e){if(a&&(a=a.map(c.changes)),c.scrollIntoView){let{main:h}=c.state.selection;a=new gi(h.empty?h:v.cursor(h.head,h.head>h.anchor?-1:1))}for(let h of c.effects)h.is(zs)&&(a=h.value)}this.viewState.update(s,a),this.bidiCache=yi.update(this.bidiCache,s.changes),s.empty||(this.updatePlugins(s),this.inputState.update(s)),t=this.docView.update(s),this.state.facet(kt)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(c=>c.isUserEvent("select.pointer")))}finally{this.updateState=0}if(s.startState.facet(Jt)!=s.state.facet(Jt)&&(this.viewState.mustMeasureContent=!0),(t||n||a||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!s.empty)for(let c of this.state.facet(kn))c(s);l&&!El(this,l)&&o.force&&ot(this.contentDOM,o.key,o.keyCode)}setState(e){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=e;return}this.updateState=2;let t=this.hasFocus;try{for(let n of this.plugins)n.destroy(this);this.viewState=new ar(e),this.plugins=e.facet(Ct).map(n=>new Ki(n)),this.pluginMap.clear();for(let n of this.plugins)n.update(this);this.docView=new Us(this),this.inputState.ensureHandlers(this,this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(Ct),n=e.state.facet(Ct);if(t!=n){let s=[];for(let r of n){let o=t.indexOf(r);if(o<0)s.push(new Ki(r));else{let l=this.plugins[o];l.mustUpdate=e,s.push(l)}}for(let r of this.plugins)r.mustUpdate!=e&&r.destroy(this);this.plugins=s,this.pluginMap.clear(),this.inputState.ensureHandlers(this,this.plugins)}else for(let s of this.plugins)s.mustUpdate=e;for(let s=0;s<this.plugins.length;s++)this.plugins[s].update(this)}measure(e=!0){if(this.destroyed)return;this.measureScheduled>-1&&cancelAnimationFrame(this.measureScheduled),this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,{scrollHeight:n,scrollTop:s,clientHeight:r}=this.scrollDOM,o=s>n-r-4?n:s;try{for(let l=0;;l++){this.updateState=1;let a=this.viewport,c=this.viewState.lineBlockAtHeight(o),h=this.viewState.measure(this);if(!h&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(l>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let u=[];h&4||([this.measureRequests,u]=[u,this.measureRequests]);let f=u.map(g=>{try{return g.read(this)}catch(y){return Ae(this.state,y),dr}}),p=xi.create(this,this.state,[]),m=!1,x=!1;p.flags|=h,t?t.flags|=h:t=p,this.updateState=2,p.empty||(this.updatePlugins(p),this.inputState.update(p),this.updateAttrs(),m=this.docView.update(p));for(let g=0;g<u.length;g++)if(f[g]!=dr)try{let y=u[g];y.write&&y.write(f[g],this)}catch(y){Ae(this.state,y)}if(this.viewState.editorHeight)if(this.viewState.scrollTarget)this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,x=!0;else{let g=this.viewState.lineBlockAt(c.from).top-c.top;(g>1||g<-1)&&(this.scrollDOM.scrollTop+=g,x=!0)}if(m&&this.docView.updateSelection(!0),this.viewport.from==a.from&&this.viewport.to==a.to&&!x&&this.measureRequests.length==0)break}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let l of this.state.facet(kn))l(t)}get themeClasses(){return Rn+" "+(this.state.facet(jn)?Rl:jl)+" "+this.state.facet(Jt)}updateAttrs(){let e=ur(this,ul,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(Ii)?"true":"false",class:"cm-content",style:`${A.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),ur(this,ls,t);let n=this.observer.ignore(()=>{let s=wn(this.contentDOM,this.contentAttrs,t),r=wn(this.dom,this.editorAttrs,e);return s||r});return this.editorAttrs=e,this.contentAttrs=t,n}showAnnouncements(e){let t=!0;for(let n of e)for(let s of n.effects)if(s.is(W.announce)){t&&(this.announceDOM.textContent=""),t=!1;let r=this.announceDOM.appendChild(document.createElement("div"));r.textContent=s.value}}mountStyles(){this.styleModules=this.state.facet(kt),at.mount(this.root,this.styleModules.concat(ku).reverse())}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(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;t<this.measureRequests.length;t++)if(this.measureRequests[t].key===e.key){this.measureRequests[t]=e;return}}this.measureRequests.push(e)}}plugin(e){let t=this.pluginMap.get(e);return(t===void 0||t&&t.spec!=e)&&this.pluginMap.set(e,t=this.plugins.find(n=>n.spec==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,n){return _i(this,e,Xs(this,e,t,n))}moveByGroup(e,t){return _i(this,e,Xs(this,e,t,n=>Xd(this,e.head,n)))}moveToLineBoundary(e,t,n=!0){return Yd(this,e,t,n)}moveVertically(e,t,n){return _i(this,e,Qd(this,e,t,n))}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){return this.readMeasured(),Sl(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let n=this.docView.coordsAt(e,t);if(!n||n.left==n.right)return n;let s=this.state.doc.lineAt(e),r=this.bidiSpans(s),o=r[lt.find(r,e-s.from,-1,t)];return ns(n,o.dir==X.LTR==t>0)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(dl)||e<this.viewport.from||e>this.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>Bu)return gl(e.length);let t=this.textDirectionAt(e.from);for(let s of this.bidiCache)if(s.from==e.from&&s.dir==t)return s.order;let n=Id(e.text,t);return this.bidiCache.push(new yi(e.from,e.to,t,n)),n}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||A.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{Go(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){return zs.of(new gi(typeof e=="number"?v.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}static domEventHandlers(e){return ft.define(()=>({}),{eventHandlers:e})}static theme(e,t){let n=at.newName(),s=[Jt.of(n),kt.of(Bn(`.${n}`,e))];return t&&t.dark&&s.push(jn.of(!0)),s}static baseTheme(e){return Di.lowest(kt.of(Bn("."+Rn,e,Bl)))}static findFromDOM(e){var t;let n=e.querySelector(".cm-content"),s=n&&F.get(n)||F.get(e);return((t=s==null?void 0:s.rootView)===null||t===void 0?void 0:t.view)||null}}W.styleModule=kt;W.inputHandler=hl;W.perLineTextDirection=dl;W.exceptionSink=cl;W.updateListener=kn;W.editable=Ii;W.mouseSelectionStyle=al;W.dragMovesSelection=ll;W.clickAddsSelectionRange=ol;W.decorations=Et;W.atomicRanges=fl;W.scrollMargins=pl;W.darkTheme=jn;W.contentAttributes=ls;W.editorAttributes=ul;W.lineWrapping=W.contentAttributes.of({class:"cm-lineWrapping"});W.announce=_.define();const Bu=4096,dr={};class yi{constructor(e,t,n,s){this.from=e,this.to=t,this.dir=n,this.order=s}static update(e,t){if(t.empty)return e;let n=[],s=e.length?e[e.length-1].dir:X.LTR;for(let r=Math.max(0,e.length-10);r<e.length;r++){let o=e[r];o.dir==s&&!t.touchesRange(o.from,o.to)&&n.push(new yi(t.mapPos(o.from,1),t.mapPos(o.to,-1),o.dir,o.order))}return n}}function ur(i,e,t){for(let n=i.state.facet(e),s=n.length-1;s>=0;s--){let r=n[s],o=typeof r=="function"?r(i):r;o&&Sn(o,t)}return t}const Eu=A.mac?"mac":A.windows?"win":A.linux?"linux":"key";function Lu(i,e){const t=i.split(/-(?!$)/);let n=t[t.length-1];n=="Space"&&(n=" ");let s,r,o,l;for(let a=0;a<t.length-1;++a){const c=t[a];if(/^(cmd|meta|m)$/i.test(c))l=!0;else if(/^a(lt)?$/i.test(c))s=!0;else if(/^(c|ctrl|control)$/i.test(c))r=!0;else if(/^s(hift)?$/i.test(c))o=!0;else if(/^mod$/i.test(c))e=="mac"?l=!0:r=!0;else throw new Error("Unrecognized modifier name: "+c)}return s&&(n="Alt-"+n),r&&(n="Ctrl-"+n),l&&(n="Meta-"+n),o&&(n="Shift-"+n),n}function Yt(i,e,t){return e.altKey&&(i="Alt-"+i),e.ctrlKey&&(i="Ctrl-"+i),e.metaKey&&(i="Meta-"+i),t!==!1&&e.shiftKey&&(i="Shift-"+i),i}const Pu=Di.default(W.domEventHandlers({keydown(i,e){return Wu(Iu(e.state),i,e,"editor")}})),Ll=P.define({enables:Pu}),fr=new WeakMap;function Iu(i){let e=i.facet(Ll),t=fr.get(e);return t||fr.set(e,t=Fu(e.reduce((n,s)=>n.concat(s),[]))),t}let Le=null;const Nu=4e3;function Fu(i,e=Eu){let t=Object.create(null),n=Object.create(null),s=(o,l)=>{let a=n[o];if(a==null)n[o]=l;else if(a!=l)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},r=(o,l,a,c)=>{var h,u;let f=t[o]||(t[o]=Object.create(null)),p=l.split(/ (?!$)/).map(g=>Lu(g,e));for(let g=1;g<p.length;g++){let y=p.slice(0,g).join(" ");s(y,!0),f[y]||(f[y]={preventDefault:!0,run:[S=>{let D=Le={view:S,prefix:y,scope:o};return setTimeout(()=>{Le==D&&(Le=null)},Nu),!0}]})}let m=p.join(" ");s(m,!1);let x=f[m]||(f[m]={preventDefault:!1,run:((u=(h=f._any)===null||h===void 0?void 0:h.run)===null||u===void 0?void 0:u.slice())||[]});a&&x.run.push(a),c&&(x.preventDefault=!0)};for(let o of i){let l=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let c of l){let h=t[c]||(t[c]=Object.create(null));h._any||(h._any={preventDefault:!1,run:[]});for(let u in h)h[u].run.push(o.any)}let a=o[e]||o.key;if(a)for(let c of l)r(c,a,o.run,o.preventDefault),o.shift&&r(c,"Shift-"+a,o.shift,o.preventDefault)}return t}function Wu(i,e,t,n){let s=lc(e),r=de(s,0),o=be(r)==s.length&&s!=" ",l="",a=!1;Le&&Le.view==t&&Le.scope==n&&(l=Le.prefix+" ",(a=Cl.indexOf(e.keyCode)<0)&&(Le=null));let c=new Set,h=m=>{if(m){for(let x of m.run)if(!c.has(x)&&(c.add(x),x(t,e)))return!0;m.preventDefault&&(a=!0)}return!1},u=i[n],f,p;if(u){if(h(u[l+Yt(s,e,!o)]))return!0;if(o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(A.windows&&e.ctrlKey&&e.altKey)&&(f=ac[e.keyCode])&&f!=s){if(h(u[l+Yt(f,e,!0)]))return!0;if(e.shiftKey&&(p=cc[e.keyCode])!=s&&p!=f&&h(u[l+Yt(p,e,!1)]))return!0}else if(o&&e.shiftKey&&h(u[l+Yt(s,e,!0)]))return!0;if(h(u._any))return!0}return a}const Vu=!A.ios,Hu={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};Vu&&(Hu[".cm-line"].caretColor="transparent !important");const Xt="-10000px";class zu{constructor(e,t,n){this.facet=t,this.createTooltipView=n,this.input=e.state.facet(t),this.tooltips=this.input.filter(s=>s),this.tooltipViews=this.tooltips.map(n)}update(e){var t;let n=e.state.facet(this.facet),s=n.filter(o=>o);if(n===this.input){for(let o of this.tooltipViews)o.update&&o.update(e);return!1}let r=[];for(let o=0;o<s.length;o++){let l=s[o],a=-1;if(l){for(let c=0;c<this.tooltips.length;c++){let h=this.tooltips[c];h&&h.create==l.create&&(a=c)}if(a<0)r[o]=this.createTooltipView(l);else{let c=r[o]=this.tooltipViews[a];c.update&&c.update(e)}}}for(let o of this.tooltipViews)r.indexOf(o)<0&&(o.dom.remove(),(t=o.destroy)===null||t===void 0||t.call(o));return this.input=n,this.tooltips=s,this.tooltipViews=r,!0}}function $u(i){let{win:e}=i;return{top:0,left:0,bottom:e.innerHeight,right:e.innerWidth}}const Xi=P.define({combine:i=>{var e,t,n;return{position:A.ios?"absolute":((e=i.find(s=>s.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((t=i.find(s=>s.parent))===null||t===void 0?void 0:t.parent)||null,tooltipSpace:((n=i.find(s=>s.tooltipSpace))===null||n===void 0?void 0:n.tooltipSpace)||$u}}}),Pl=ft.fromClass(class{constructor(i){this.view=i,this.inView=!0,this.lastTransaction=0,this.measureTimeout=-1;let e=i.state.facet(Xi);this.position=e.position,this.parent=e.parent,this.classes=i.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.manager=new zu(i,Il,t=>this.createTooltip(t)),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(t=>{Date.now()>this.lastTransaction-50&&t.length>0&&t[t.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),i.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 i of this.manager.tooltipViews)this.intersectionObserver.observe(i.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(i){i.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(i);e&&this.observeIntersection();let t=e||i.geometryChanged,n=i.state.facet(Xi);if(n.position!=this.position){this.position=n.position;for(let s of this.manager.tooltipViews)s.dom.style.position=this.position;t=!0}if(n.parent!=this.parent){this.parent&&this.container.remove(),this.parent=n.parent,this.createContainer();for(let s of this.manager.tooltipViews)this.container.appendChild(s.dom);t=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);t&&this.maybeMeasure()}createTooltip(i){let e=i.create(this.view);if(e.dom.classList.add("cm-tooltip"),i.arrow&&!e.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let t=document.createElement("div");t.className="cm-tooltip-arrow",e.dom.appendChild(t)}return e.dom.style.position=this.position,e.dom.style.top=Xt,this.container.appendChild(e.dom),e.mount&&e.mount(this.view),e}destroy(){var i,e;this.view.win.removeEventListener("resize",this.measureSoon);for(let t of this.manager.tooltipViews)t.dom.remove(),(i=t.destroy)===null||i===void 0||i.call(t);(e=this.intersectionObserver)===null||e===void 0||e.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let i=this.view.dom.getBoundingClientRect();return{editor:i,parent:this.parent?this.container.getBoundingClientRect():i,pos:this.manager.tooltips.map((e,t)=>{let n=this.manager.tooltipViews[t];return n.getCoords?n.getCoords(e.pos):this.view.coordsAtPos(e.pos)}),size:this.manager.tooltipViews.map(({dom:e})=>e.getBoundingClientRect()),space:this.view.state.facet(Xi).tooltipSpace(this.view)}}writeMeasure(i){let{editor:e,space:t}=i,n=[];for(let s=0;s<this.manager.tooltips.length;s++){let r=this.manager.tooltips[s],o=this.manager.tooltipViews[s],{dom:l}=o,a=i.pos[s],c=i.size[s];if(!a||a.bottom<=Math.max(e.top,t.top)||a.top>=Math.min(e.bottom,t.bottom)||a.right<Math.max(e.left,t.left)-.1||a.left>Math.min(e.right,t.right)+.1){l.style.top=Xt;continue}let h=r.arrow?o.dom.querySelector(".cm-tooltip-arrow"):null,u=h?7:0,f=c.right-c.left,p=c.bottom-c.top,m=o.offset||Uu,x=this.view.textDirection==X.LTR,g=c.width>t.right-t.left?x?t.left:t.right-c.width:x?Math.min(a.left-(h?14:0)+m.x,t.right-f):Math.max(t.left,a.left-f+(h?14:0)-m.x),y=!!r.above;!r.strictSide&&(y?a.top-(c.bottom-c.top)-m.y<t.top:a.bottom+(c.bottom-c.top)+m.y>t.bottom)&&y==t.bottom-a.bottom>a.top-t.top&&(y=!y);let S=(y?a.top-t.top:t.bottom-a.bottom)-u;if(S<p&&o.resize!==!1){if(S<this.view.defaultLineHeight){l.style.top=Xt;continue}l.style.height=(p=S)+"px"}else l.style.height&&(l.style.height="");let D=y?a.top-p-u-m.y:a.bottom+u+m.y,C=g+f;if(o.overlap!==!0)for(let w of n)w.left<C&&w.right>g&&w.top<D+p&&w.bottom>D&&(D=y?w.top-p-2-u:w.bottom+u+2);this.position=="absolute"?(l.style.top=D-i.parent.top+"px",l.style.left=g-i.parent.left+"px"):(l.style.top=D+"px",l.style.left=g+"px"),h&&(h.style.left=`${a.left+(x?m.x:-m.x)-(g+14-7)}px`),o.overlap!==!0&&n.push({left:g,top:D,right:C,bottom:D+p}),l.classList.toggle("cm-tooltip-above",y),l.classList.toggle("cm-tooltip-below",!y),o.positioned&&o.positioned(i.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 i of this.manager.tooltipViews)i.dom.style.top=Xt}},{eventHandlers:{scroll(){this.maybeMeasure()}}}),qu=W.baseTheme({".cm-tooltip":{zIndex:100,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"}}}),Uu={x:0,y:0},Il=P.define({enables:[Pl,qu]});function Ku(i,e){let t=i.plugin(Pl);if(!t)return null;let n=t.manager.tooltips.indexOf(e);return n<0?null:t.manager.tooltipViews[n]}class pt extends Kn{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}pt.prototype.elementClass="";pt.prototype.toDOM=void 0;pt.prototype.mapMode=st.TrackBefore;pt.prototype.startSide=pt.prototype.endSide=-1;pt.prototype.point=!0;class Nl{constructor(e,t,n){this.state=e,this.pos=t,this.explicit=n,this.abortListeners=[]}tokenBefore(e){let t=yt(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),n=Math.max(t.from,this.pos-250),s=t.text.slice(n-t.from,this.pos-t.from),r=s.search(Fl(e,!1));return r<0?null:{from:n+r,to:this.pos,text:s.slice(r)}}get aborted(){return this.abortListeners==null}addEventListener(e,t){e=="abort"&&this.abortListeners&&this.abortListeners.push(t)}}function pr(i){let e=Object.keys(i).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function Gu(i){let e=Object.create(null),t=Object.create(null);for(let{label:s}of i){e[s[0]]=!0;for(let r=1;r<s.length;r++)t[s[r]]=!0}let n=pr(e)+pr(t)+"*$";return[new RegExp("^"+n),new RegExp(n)]}function _u(i){let e=i.map(s=>typeof s=="string"?{label:s}:s),[t,n]=e.every(s=>/^\w+$/.test(s.label))?[/\w*$/,/\w+$/]:Gu(e);return s=>{let r=s.matchBefore(n);return r||s.explicit?{from:r?r.from:s.pos,options:e,validFor:t}:null}}class mr{constructor(e,t,n){this.completion=e,this.source=t,this.match=n}}function We(i){return i.selection.main.head}function Fl(i,e){var t;let{source:n}=i,s=e&&n[0]!="^",r=n[n.length-1]!="$";return!s&&!r?i:new RegExp(`${s?"^":""}(?:${n})${r?"$":""}`,(t=i.flags)!==null&&t!==void 0?t:i.ignoreCase?"i":"")}const Ju=Mi.define();function Yu(i,e,t,n){return Object.assign(Object.assign({},i.changeByRange(s=>{if(s==i.selection.main)return{changes:{from:t,to:n,insert:e},range:v.cursor(t+e.length)};let r=n-t;return!s.empty||r&&i.sliceDoc(s.from-r,s.from)!=i.sliceDoc(t,n)?{range:s}:{changes:{from:s.from-r,to:s.from,insert:e},range:v.cursor(s.from-r+e.length)}})),{userEvent:"input.complete"})}function Wl(i,e){const t=e.completion.apply||e.completion.label;let n=e.source;typeof t=="string"?i.dispatch(Object.assign(Object.assign({},Yu(i.state,t,n.from,n.to)),{annotations:Ju.of(e.completion)})):t(i,e.completion,n.from,n.to)}const gr=new WeakMap;function Xu(i){if(!Array.isArray(i))return i;let e=gr.get(i);return e||gr.set(i,e=_u(i)),e}class Qu{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[];for(let t=0;t<e.length;){let n=de(e,t),s=be(n);this.chars.push(n);let r=e.slice(t,t+s),o=r.toUpperCase();this.folded.push(de(o==r?r.toLowerCase():o,0)),t+=s}this.astral=e.length!=this.chars.length}match(e){if(this.pattern.length==0)return[0];if(e.length<this.pattern.length)return null;let{chars:t,folded:n,any:s,precise:r,byWord:o}=this;if(t.length==1){let S=de(e,0);return S==t[0]?[0,0,be(S)]:S==n[0]?[-200,0,be(S)]:null}let l=e.indexOf(this.pattern);if(l==0)return[0,0,this.pattern.length];let a=t.length,c=0;if(l<0){for(let S=0,D=Math.min(e.length,200);S<D&&c<a;){let C=de(e,S);(C==t[c]||C==n[c])&&(s[c++]=S),S+=be(C)}if(c<a)return null}let h=0,u=0,f=!1,p=0,m=-1,x=-1,g=/[a-z]/.test(e),y=!0;for(let S=0,D=Math.min(e.length,200),C=0;S<D&&u<a;){let w=de(e,S);l<0&&(h<a&&w==t[h]&&(r[h++]=S),p<a&&(w==t[p]||w==n[p]?(p==0&&(m=S),x=S+1,p++):p=0));let j,L=w<255?w>=48&&w<=57||w>=97&&w<=122?2:w>=65&&w<=90?1:0:(j=qn(w))!=j.toLowerCase()?1:j!=j.toUpperCase()?2:0;(!S||L==1&&g||C==0&&L!=0)&&(t[u]==w||n[u]==w&&(f=!0)?o[u++]=S:o.length&&(y=!1)),C=L,S+=be(w)}return u==a&&o[0]==0&&y?this.result(-100+(f?-200:0),o,e):p==a&&m==0?[-200-e.length,0,x]:l>-1?[-700-e.length,l,l+this.pattern.length]:p==a?[-900-e.length,m,x]:u==a?this.result(-100+(f?-200:0)+-700+(y?0:-1100),o,e):t.length==2?null:this.result((s[0]?-700:0)+-200+-1100,s,e)}result(e,t,n){let s=[e-n.length],r=1;for(let o of t){let l=o+(this.astral?be(de(n,o)):1);r>1&&s[r-1]==o?s[r-1]=l:(s[r++]=o,s[r++]=l)}return s}}const xe=P.define({combine(i){return Pt(i,{activateOnTyping:!0,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],compareCompletions:(e,t)=>e.label.localeCompare(t.label),interactionDelay:75},{defaultKeymap:(e,t)=>e&&t,closeOnBlur:(e,t)=>e&&t,icons:(e,t)=>e&&t,tooltipClass:(e,t)=>n=>xr(e(n),t(n)),optionClass:(e,t)=>n=>xr(e(n),t(n)),addToOptions:(e,t)=>e.concat(t)})}});function xr(i,e){return i?e?i+" "+e:i:e}function Zu(i){let e=i.addToOptions.slice();return i.icons&&e.push({render(t){let n=document.createElement("div");return n.classList.add("cm-completionIcon"),t.type&&n.classList.add(...t.type.split(/\s+/g).map(s=>"cm-completionIcon-"+s)),n.setAttribute("aria-hidden","true"),n},position:20}),e.push({render(t,n,s){let r=document.createElement("span");r.className="cm-completionLabel";let{label:o}=t,l=0;for(let a=1;a<s.length;){let c=s[a++],h=s[a++];c>l&&r.appendChild(document.createTextNode(o.slice(l,c)));let u=r.appendChild(document.createElement("span"));u.appendChild(document.createTextNode(o.slice(c,h))),u.className="cm-completionMatchedText",l=h}return l<o.length&&r.appendChild(document.createTextNode(o.slice(l))),r},position:50},{render(t){if(!t.detail)return null;let n=document.createElement("span");return n.className="cm-completionDetail",n.textContent=t.detail,n},position:80}),e.sort((t,n)=>t.position-n.position).map(t=>t.render)}function yr(i,e,t){if(i<=t)return{from:0,to:i};if(e<0&&(e=0),e<=i>>1){let s=Math.floor(e/t);return{from:s*t,to:(s+1)*t}}let n=Math.floor((i-e)/t);return{from:i-(n+1)*t,to:i-n*t}}class ef{constructor(e,t){this.view=e,this.stateField=t,this.info=null,this.placeInfo={read:()=>this.measureInfo(),write:l=>this.positionInfo(l),key:this},this.space=null,this.currentClass="";let n=e.state.field(t),{options:s,selected:r}=n.open,o=e.state.facet(xe);this.optionContent=Zu(o),this.optionClass=o.optionClass,this.tooltipClass=o.tooltipClass,this.range=yr(s.length,r,o.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",l=>{for(let a=l.target,c;a&&a!=this.dom;a=a.parentNode)if(a.nodeName=="LI"&&(c=/-(\d+)$/.exec(a.id))&&+c[1]<s.length){Wl(e,s[+c[1]]),l.preventDefault();return}}),this.list=this.dom.appendChild(this.createListBox(s,n.id,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfo)})}mount(){this.updateSel()}update(e){var t,n,s;let r=e.state.field(this.stateField),o=e.startState.field(this.stateField);this.updateTooltipClass(e.state),r!=o&&(this.updateSel(),((t=r.open)===null||t===void 0?void 0:t.disabled)!=((n=o.open)===null||n===void 0?void 0:n.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!(!((s=r.open)===null||s===void 0)&&s.disabled)))}updateTooltipClass(e){let t=this.tooltipClass(e);if(t!=this.currentClass){for(let n of this.currentClass.split(" "))n&&this.dom.classList.remove(n);for(let n of t.split(" "))n&&this.dom.classList.add(n);this.currentClass=t}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfo)}updateSel(){let e=this.view.state.field(this.stateField),t=e.open;if((t.selected>-1&&t.selected<this.range.from||t.selected>=this.range.to)&&(this.range=yr(t.options.length,t.selected,this.view.state.facet(xe).maxRenderedOptions),this.list.remove(),this.list=this.dom.appendChild(this.createListBox(t.options,e.id,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfo)})),this.updateSelectedOption(t.selected)){this.info&&(this.info.remove(),this.info=null);let{completion:n}=t.options[t.selected],{info:s}=n;if(!s)return;let r=typeof s=="string"?document.createTextNode(s):s(n);if(!r)return;"then"in r?r.then(o=>{o&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(o)}).catch(o=>Ae(this.view.state,o,"completion info")):this.addInfoPane(r)}}addInfoPane(e){let t=this.info=document.createElement("div");t.className="cm-tooltip cm-completionInfo",t.appendChild(e),this.dom.appendChild(t),this.view.requestMeasure(this.placeInfo)}updateSelectedOption(e){let t=null;for(let n=this.list.firstChild,s=this.range.from;n;n=n.nextSibling,s++)s==e?n.hasAttribute("aria-selected")||(n.setAttribute("aria-selected","true"),t=n):n.hasAttribute("aria-selected")&&n.removeAttribute("aria-selected");return t&&nf(this.list,t),t}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let t=this.dom.getBoundingClientRect(),n=this.info.getBoundingClientRect(),s=e.getBoundingClientRect(),r=this.space;if(!r){let m=this.dom.ownerDocument.defaultView||window;r={left:0,top:0,right:m.innerWidth,bottom:m.innerHeight}}if(s.top>Math.min(r.bottom,t.bottom)-10||s.bottom<Math.max(r.top,t.top)+10)return null;let o=this.view.textDirection==X.RTL,l=o,a=!1,c,h="",u="",f=t.left-r.left,p=r.right-t.right;if(l&&f<Math.min(n.width,p)?l=!1:!l&&p<Math.min(n.width,f)&&(l=!0),n.width<=(l?f:p))h=Math.max(r.top,Math.min(s.top,r.bottom-n.height))-t.top+"px",c=Math.min(400,l?f:p)+"px";else{a=!0,c=Math.min(400,(o?t.right:r.right-t.left)-30)+"px";let m=r.bottom-t.bottom;m>=n.height||m>t.top?h=s.bottom-t.top+"px":u=t.bottom-s.top+"px"}return{top:h,bottom:u,maxWidth:c,class:a?o?"left-narrow":"right-narrow":l?"left":"right"}}positionInfo(e){this.info&&(e?(this.info.style.top=e.top,this.info.style.bottom=e.bottom,this.info.style.maxWidth=e.maxWidth,this.info.className="cm-tooltip cm-completionInfo cm-completionInfo-"+e.class):this.info.style.top="-1e6px")}createListBox(e,t,n){const s=document.createElement("ul");s.id=t,s.setAttribute("role","listbox"),s.setAttribute("aria-expanded","true"),s.setAttribute("aria-label",this.view.state.phrase("Completions"));for(let r=n.from;r<n.to;r++){let{completion:o,match:l}=e[r];const a=s.appendChild(document.createElement("li"));a.id=t+"-"+r,a.setAttribute("role","option");let c=this.optionClass(o);c&&(a.className=c);for(let h of this.optionContent){let u=h(o,this.view.state,l);u&&a.appendChild(u)}}return n.from&&s.classList.add("cm-completionListIncompleteTop"),n.to<e.length&&s.classList.add("cm-completionListIncompleteBottom"),s}}function tf(i){return e=>new ef(e,i)}function nf(i,e){let t=i.getBoundingClientRect(),n=e.getBoundingClientRect();n.top<t.top?i.scrollTop-=t.top-n.top:n.bottom>t.bottom&&(i.scrollTop+=n.bottom-t.bottom)}function br(i){return(i.boost||0)*100+(i.apply?10:0)+(i.info?5:0)+(i.type?1:0)}function sf(i,e){let t=[],n=0;for(let l of i)if(l.hasResult())if(l.result.filter===!1){let a=l.result.getMatch;for(let c of l.result.options){let h=[1e9-n++];if(a)for(let u of a(c))h.push(u);t.push(new mr(c,l,h))}}else{let a=new Qu(e.sliceDoc(l.from,l.to)),c;for(let h of l.result.options)(c=a.match(h.label))&&(h.boost!=null&&(c[0]+=h.boost),t.push(new mr(h,l,c)))}let s=[],r=null,o=e.facet(xe).compareCompletions;for(let l of t.sort((a,c)=>c.match[0]-a.match[0]||o(a.completion,c.completion)))!r||r.label!=l.completion.label||r.detail!=l.completion.detail||r.type!=null&&l.completion.type!=null&&r.type!=l.completion.type||r.apply!=l.completion.apply?s.push(l):br(l.completion)>br(r)&&(s[s.length-1]=l),r=l.completion;return s}class tt{constructor(e,t,n,s,r,o){this.options=e,this.attrs=t,this.tooltip=n,this.timestamp=s,this.selected=r,this.disabled=o}setSelected(e,t){return e==this.selected||e>=this.options.length?this:new tt(this.options,vr(t,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,t,n,s,r){let o=sf(e,t);if(!o.length)return s&&e.some(a=>a.state==1)?new tt(s.options,s.attrs,s.tooltip,s.timestamp,s.selected,!0):null;let l=t.facet(xe).selectOnOpen?0:-1;if(s&&s.selected!=l&&s.selected!=-1){let a=s.options[s.selected].completion;for(let c=0;c<o.length;c++)if(o[c].completion==a){l=c;break}}return new tt(o,vr(n,l),{pos:e.reduce((a,c)=>c.hasResult()?Math.min(a,c.from):a,1e8),create:tf(pe),above:r.aboveCursor},s?s.timestamp:Date.now(),l,!1)}map(e){return new tt(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}}class bi{constructor(e,t,n){this.active=e,this.id=t,this.open=n}static start(){return new bi(lf,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:t}=e,n=t.facet(xe),r=(n.override||t.languageDataAt("autocomplete",We(t)).map(Xu)).map(l=>(this.active.find(c=>c.source==l)||new oe(l,this.active.some(c=>c.state!=0)?1:0)).update(e,n));r.length==this.active.length&&r.every((l,a)=>l==this.active[a])&&(r=this.active);let o=this.open;o&&e.docChanged&&(o=o.map(e.changes)),e.selection||r.some(l=>l.hasResult()&&e.changes.touchesRange(l.from,l.to))||!rf(r,this.active)?o=tt.build(r,t,this.id,o,n):o&&o.disabled&&!r.some(l=>l.state==1)&&(o=null),!o&&r.every(l=>l.state!=1)&&r.some(l=>l.hasResult())&&(r=r.map(l=>l.hasResult()?new oe(l.source,0):l));for(let l of e.effects)l.is(Hl)&&(o=o&&o.setSelected(l.value,this.id));return r==this.active&&o==this.open?this:new bi(r,this.id,o)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:of}}function rf(i,e){if(i==e)return!0;for(let t=0,n=0;;){for(;t<i.length&&!i[t].hasResult;)t++;for(;n<e.length&&!e[n].hasResult;)n++;let s=t==i.length,r=n==e.length;if(s||r)return s==r;if(i[t++].result!=e[n++].result)return!1}}const of={"aria-autocomplete":"list"};function vr(i,e){let t={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":i};return e>-1&&(t["aria-activedescendant"]=i+"-"+e),t}const lf=[];function En(i){return i.isUserEvent("input.type")?"input":i.isUserEvent("delete.backward")?"delete":null}class oe{constructor(e,t,n=-1){this.source=e,this.state=t,this.explicitPos=n}hasResult(){return!1}update(e,t){let n=En(e),s=this;n?s=s.handleUserEvent(e,n,t):e.docChanged?s=s.handleChange(e):e.selection&&s.state!=0&&(s=new oe(s.source,0));for(let r of e.effects)if(r.is(cs))s=new oe(s.source,1,r.value?We(e.state):-1);else if(r.is(vi))s=new oe(s.source,0);else if(r.is(Vl))for(let o of r.value)o.source==s.source&&(s=o);return s}handleUserEvent(e,t,n){return t=="delete"||!n.activateOnTyping?this.map(e.changes):new oe(this.source,1)}handleChange(e){return e.changes.touchesRange(We(e.startState))?new oe(this.source,0):this.map(e.changes)}map(e){return e.empty||this.explicitPos<0?this:new oe(this.source,this.state,e.mapPos(this.explicitPos))}}class Dt extends oe{constructor(e,t,n,s,r){super(e,2,t),this.result=n,this.from=s,this.to=r}hasResult(){return!0}handleUserEvent(e,t,n){var s;let r=e.changes.mapPos(this.from),o=e.changes.mapPos(this.to,1),l=We(e.state);if((this.explicitPos<0?l<=r:l<this.from)||l>o||t=="delete"&&We(e.startState)==this.from)return new oe(this.source,t=="input"&&n.activateOnTyping?1:0);let a=this.explicitPos<0?-1:e.changes.mapPos(this.explicitPos),c;return af(this.result.validFor,e.state,r,o)?new Dt(this.source,a,this.result,r,o):this.result.update&&(c=this.result.update(this.result,r,o,new Nl(e.state,l,a>=0)))?new Dt(this.source,a,c,c.from,(s=c.to)!==null&&s!==void 0?s:We(e.state)):new oe(this.source,1,a)}handleChange(e){return e.changes.touchesRange(this.from,this.to)?new oe(this.source,0):this.map(e.changes)}map(e){return e.empty?this:new Dt(this.source,this.explicitPos<0?-1:e.mapPos(this.explicitPos),this.result,e.mapPos(this.from),e.mapPos(this.to,1))}}function af(i,e,t,n){if(!i)return!1;let s=e.sliceDoc(t,n);return typeof i=="function"?i(s,t,n,e):Fl(i,!0).test(s)}const cs=_.define(),vi=_.define(),Vl=_.define({map(i,e){return i.map(t=>t.map(e))}}),Hl=_.define(),pe=xt.define({create(){return bi.start()},update(i,e){return i.update(e)},provide:i=>[Il.from(i,e=>e.tooltip),W.contentAttributes.from(i,e=>e.attrs)]});function Qt(i,e="option"){return t=>{let n=t.state.field(pe,!1);if(!n||!n.open||n.open.disabled||Date.now()-n.open.timestamp<t.state.facet(xe).interactionDelay)return!1;let s=1,r;e=="page"&&(r=Ku(t,n.open.tooltip))&&(s=Math.max(2,Math.floor(r.dom.offsetHeight/r.dom.querySelector("li").offsetHeight)-1));let{length:o}=n.open.options,l=n.open.selected>-1?n.open.selected+s*(i?1:-1):i?0:o-1;return l<0?l=e=="page"?0:o-1:l>=o&&(l=e=="page"?o-1:0),t.dispatch({effects:Hl.of(l)}),!0}}const cf=i=>{let e=i.state.field(pe,!1);return i.state.readOnly||!e||!e.open||e.open.selected<0||Date.now()-e.open.timestamp<i.state.facet(xe).interactionDelay?!1:(e.open.disabled||Wl(i,e.open.options[e.open.selected]),!0)},hf=i=>i.state.field(pe,!1)?(i.dispatch({effects:cs.of(!0)}),!0):!1,df=i=>{let e=i.state.field(pe,!1);return!e||!e.active.some(t=>t.state!=0)?!1:(i.dispatch({effects:vi.of(null)}),!0)};class uf{constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}}const Sr=50,ff=50,pf=1e3,mf=ft.fromClass(class{constructor(i){this.view=i,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.composing=0;for(let e of i.state.field(pe).active)e.state==1&&this.startQuery(e)}update(i){let e=i.state.field(pe);if(!i.selectionSet&&!i.docChanged&&i.startState.field(pe)==e)return;let t=i.transactions.some(n=>(n.selection||n.docChanged)&&!En(n));for(let n=0;n<this.running.length;n++){let s=this.running[n];if(t||s.updates.length+i.transactions.length>ff&&Date.now()-s.time>pf){for(let r of s.context.abortListeners)try{r()}catch(o){Ae(this.view.state,o)}s.context.abortListeners=null,this.running.splice(n--,1)}else s.updates.push(...i.transactions)}if(this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),this.debounceUpdate=e.active.some(n=>n.state==1&&!this.running.some(s=>s.active.source==n.source))?setTimeout(()=>this.startUpdate(),Sr):-1,this.composing!=0)for(let n of i.transactions)En(n)=="input"?this.composing=2:this.composing==2&&n.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1;let{state:i}=this.view,e=i.field(pe);for(let t of e.active)t.state==1&&!this.running.some(n=>n.active.source==t.source)&&this.startQuery(t)}startQuery(i){let{state:e}=this.view,t=We(e),n=new Nl(e,t,i.explicitPos==t),s=new uf(i,n);this.running.push(s),Promise.resolve(i.source(n)).then(r=>{s.context.aborted||(s.done=r||null,this.scheduleAccept())},r=>{this.view.dispatch({effects:vi.of(null)}),Ae(this.view.state,r)})}scheduleAccept(){this.running.every(i=>i.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),Sr))}accept(){var i;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],t=this.view.state.facet(xe);for(let n=0;n<this.running.length;n++){let s=this.running[n];if(s.done===void 0)continue;if(this.running.splice(n--,1),s.done){let o=new Dt(s.active.source,s.active.explicitPos,s.done,s.done.from,(i=s.done.to)!==null&&i!==void 0?i:We(s.updates.length?s.updates[0].startState:this.view.state));for(let l of s.updates)o=o.update(l,t);if(o.hasResult()){e.push(o);continue}}let r=this.view.state.field(pe).active.find(o=>o.source==s.active.source);if(r&&r.state==1)if(s.done==null){let o=new oe(s.active.source,0);for(let l of s.updates)o=o.update(l,t);o.state!=1&&e.push(o)}else this.startQuery(r)}e.length&&this.view.dispatch({effects:Vl.of(e)})}},{eventHandlers:{blur(){let i=this.view.state.field(pe,!1);i&&i.tooltip&&this.view.state.facet(xe).closeOnBlur&&this.view.dispatch({effects:vi.of(null)})},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:cs.of(!1)}),20),this.composing=0}}}),gf=W.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":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer",padding:"1px 3px",lineHeight:1.2}}},"&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:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box"},".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:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}}),Lt={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},Ke=_.define({map(i,e){let t=e.mapPos(i,-1,st.TrackAfter);return t??void 0}}),hs=_.define({map(i,e){return e.mapPos(i)}}),ds=new class extends Kn{};ds.startSide=1;ds.endSide=-1;const zl=xt.define({create(){return De.empty},update(i,e){if(e.selection){let t=e.state.doc.lineAt(e.selection.main.head).from,n=e.startState.doc.lineAt(e.startState.selection.main.head).from;t!=e.changes.mapPos(n,-1)&&(i=De.empty)}i=i.map(e.changes);for(let t of e.effects)t.is(Ke)?i=i.update({add:[ds.range(t.value,t.value+1)]}):t.is(hs)&&(i=i.update({filter:n=>n!=t.value}));return i}});function xf(){return[bf,zl]}const Qi="()[]{}<>";function $l(i){for(let e=0;e<Qi.length;e+=2)if(Qi.charCodeAt(e)==i)return Qi.charAt(e+1);return qn(i<128?i:i+1)}function ql(i,e){return i.languageDataAt("closeBrackets",e)[0]||Lt}const yf=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),bf=W.inputHandler.of((i,e,t,n)=>{if((yf?i.composing:i.compositionStarted)||i.state.readOnly)return!1;let s=i.state.selection.main;if(n.length>2||n.length==2&&be(de(n,0))==1||e!=s.from||t!=s.to)return!1;let r=wf(i.state,n);return r?(i.dispatch(r),!0):!1}),vf=({state:i,dispatch:e})=>{if(i.readOnly)return!1;let n=ql(i,i.selection.main.head).brackets||Lt.brackets,s=null,r=i.changeByRange(o=>{if(o.empty){let l=Cf(i.doc,o.head);for(let a of n)if(a==l&&Ni(i.doc,o.head)==$l(de(a,0)))return{changes:{from:o.head-a.length,to:o.head+a.length},range:v.cursor(o.head-a.length)}}return{range:s=o}});return s||e(i.update(r,{scrollIntoView:!0,userEvent:"delete.backward"})),!s},Sf=[{key:"Backspace",run:vf}];function wf(i,e){let t=ql(i,i.selection.main.head),n=t.brackets||Lt.brackets;for(let s of n){let r=$l(de(s,0));if(e==s)return r==s?Mf(i,s,n.indexOf(s+s+s)>-1,t):kf(i,s,r,t.before||Lt.before);if(e==r&&Ul(i,i.selection.main.from))return Af(i,s,r)}return null}function Ul(i,e){let t=!1;return i.field(zl).between(0,i.doc.length,n=>{n==e&&(t=!0)}),t}function Ni(i,e){let t=i.sliceString(e,e+2);return t.slice(0,be(de(t,0)))}function Cf(i,e){let t=i.sliceString(e-2,e);return be(de(t,0))==t.length?t:t.slice(1)}function kf(i,e,t,n){let s=null,r=i.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:t,from:o.to}],effects:Ke.of(o.to+e.length),range:v.range(o.anchor+e.length,o.head+e.length)};let l=Ni(i.doc,o.head);return!l||/\s/.test(l)||n.indexOf(l)>-1?{changes:{insert:e+t,from:o.head},effects:Ke.of(o.head+e.length),range:v.cursor(o.head+e.length)}:{range:s=o}});return s?null:i.update(r,{scrollIntoView:!0,userEvent:"input.type"})}function Af(i,e,t){let n=null,s=i.selection.ranges.map(r=>r.empty&&Ni(i.doc,r.head)==t?v.cursor(r.head+t.length):n=r);return n?null:i.update({selection:v.create(s,i.selection.mainIndex),scrollIntoView:!0,effects:i.selection.ranges.map(({from:r})=>hs.of(r))})}function Mf(i,e,t,n){let s=n.stringPrefixes||Lt.stringPrefixes,r=null,o=i.changeByRange(l=>{if(!l.empty)return{changes:[{insert:e,from:l.from},{insert:e,from:l.to}],effects:Ke.of(l.to+e.length),range:v.range(l.anchor+e.length,l.head+e.length)};let a=l.head,c=Ni(i.doc,a),h;if(c==e){if(wr(i,a))return{changes:{insert:e+e,from:a},effects:Ke.of(a+e.length),range:v.cursor(a+e.length)};if(Ul(i,a)){let u=t&&i.sliceDoc(a,a+e.length*3)==e+e+e;return{range:v.cursor(a+e.length*(u?3:1)),effects:hs.of(a)}}}else{if(t&&i.sliceDoc(a-2*e.length,a)==e+e&&(h=Cr(i,a-2*e.length,s))>-1&&wr(i,h))return{changes:{insert:e+e+e+e,from:a},effects:Ke.of(a+e.length),range:v.cursor(a+e.length)};if(i.charCategorizer(a)(c)!=Z.Word&&Cr(i,a,s)>-1&&!Df(i,a,e,s))return{changes:{insert:e+e,from:a},effects:Ke.of(a+e.length),range:v.cursor(a+e.length)}}return{range:r=l}});return r?null:i.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function wr(i,e){let t=yt(i).resolveInner(e+1);return t.parent&&t.from==e}function Df(i,e,t,n){let s=yt(i).resolveInner(e,-1),r=n.reduce((o,l)=>Math.max(o,l.length),0);for(let o=0;o<5;o++){let l=i.sliceDoc(s.from,Math.min(s.to,s.from+t.length+r)),a=l.indexOf(t);if(!a||a>-1&&n.indexOf(l.slice(0,a))>-1){let h=s.firstChild;for(;h&&h.from==s.from&&h.to-h.from>t.length+a;){if(i.sliceDoc(h.to-t.length,h.to)==t)return!1;h=h.firstChild}return!0}let c=s.to==e&&s.parent;if(!c)break;s=c}return!1}function Cr(i,e,t){let n=i.charCategorizer(e);if(n(i.sliceDoc(e-1,e))!=Z.Word)return e;for(let s of t){let r=e-s.length;if(i.sliceDoc(r,e)==s&&n(i.sliceDoc(r-1,r))!=Z.Word)return r}return-1}function Tf(i={}){return[pe,xe.of(i),mf,Of,gf]}const Kl=[{key:"Ctrl-Space",run:hf},{key:"Escape",run:df},{key:"ArrowDown",run:Qt(!0)},{key:"ArrowUp",run:Qt(!1)},{key:"PageDown",run:Qt(!0,"page")},{key:"PageUp",run:Qt(!1,"page")},{key:"Enter",run:cf}],Of=Di.highest(Ll.computeN([xe],i=>i.facet(xe).defaultKeymap?[Kl]:[]));class jf{constructor(e,t,n){this.from=e,this.to=t,this.diagnostic=n}}class Ue{constructor(e,t,n){this.diagnostics=e,this.panel=t,this.selected=n}static init(e,t,n){let s=e,r=n.facet(it).markerFilter;r&&(s=r(s));let o=q.set(s.map(l=>l.from==l.to||l.from==l.to-1&&n.doc.lineAt(l.from).to==l.from?q.widget({widget:new Vf(l),diagnostic:l}).range(l.from):q.mark({attributes:{class:"cm-lintRange cm-lintRange-"+l.severity},diagnostic:l}).range(l.from,l.to)),!0);return new Ue(o,t,mt(o))}}function mt(i,e=null,t=0){let n=null;return i.between(t,1e9,(s,r,{spec:o})=>{if(!(e&&o.diagnostic!=e))return n=new jf(s,r,o.diagnostic),!1}),n}function Rf(i,e){return!!(i.effects.some(t=>t.is(us))||i.changes.touchesRange(e.pos))}function Gl(i,e){return i.field(fe,!1)?e:e.concat(_.appendConfig.of([fe,z.decorations.compute([fe],t=>{let{selected:n,panel:s}=t.field(fe);return!n||!s||n.from==n.to?q.none:q.set([Ef.range(n.from,n.to)])}),hc(Lf,{hideOn:Rf}),zf]))}function Bf(i,e){return{effects:Gl(i,[us.of(e)])}}const us=_.define(),fs=_.define(),_l=_.define(),fe=xt.define({create(){return new Ue(q.none,null,null)},update(i,e){if(e.docChanged){let t=i.diagnostics.map(e.changes),n=null;if(i.selected){let s=e.changes.mapPos(i.selected.from,1);n=mt(t,i.selected.diagnostic,s)||mt(t,null,s)}i=new Ue(t,i.panel,n)}for(let t of e.effects)t.is(us)?i=Ue.init(t.value,i.panel,e.state):t.is(fs)?i=new Ue(i.diagnostics,t.value?Fi.open:null,i.selected):t.is(_l)&&(i=new Ue(i.diagnostics,i.panel,t.value));return i},provide:i=>[Un.from(i,e=>e.panel),z.decorations.from(i,e=>e.diagnostics)]}),Ef=q.mark({class:"cm-lintRange cm-lintRange-active"});function Lf(i,e,t){let{diagnostics:n}=i.state.field(fe),s=[],r=2e8,o=0;n.between(e-(t<0?1:0),e+(t>0?1:0),(a,c,{spec:h})=>{e>=a&&e<=c&&(a==c||(e>a||t>0)&&(e<c||t<0))&&(s.push(h.diagnostic),r=Math.min(a,r),o=Math.max(c,o))});let l=i.state.facet(it).tooltipFilter;return l&&(s=l(s)),s.length?{pos:r,end:o,above:i.state.doc.lineAt(r).to<o,create(){return{dom:Pf(i,s)}}}:null}function Pf(i,e){return I("ul",{class:"cm-tooltip-lint"},e.map(t=>Yl(i,t,!1)))}const If=i=>{let e=i.state.field(fe,!1);(!e||!e.panel)&&i.dispatch({effects:Gl(i.state,[fs.of(!0)])});let t=Ot(i,Fi.open);return t&&t.dom.querySelector(".cm-panel-lint ul").focus(),!0},kr=i=>{let e=i.state.field(fe,!1);return!e||!e.panel?!1:(i.dispatch({effects:fs.of(!1)}),!0)},Nf=i=>{let e=i.state.field(fe,!1);if(!e)return!1;let t=i.state.selection.main,n=e.diagnostics.iter(t.to+1);return!n.value&&(n=e.diagnostics.iter(0),!n.value||n.from==t.from&&n.to==t.to)?!1:(i.dispatch({selection:{anchor:n.from,head:n.to},scrollIntoView:!0}),!0)},Ff=[{key:"Mod-Shift-m",run:If,preventDefault:!0},{key:"F8",run:Nf}],Wf=$n.fromClass(class{constructor(i){this.view=i,this.timeout=-1,this.set=!0;let{delay:e}=i.state.facet(it);this.lintTime=Date.now()+e,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,e)}run(){let i=Date.now();if(i<this.lintTime-10)setTimeout(this.run,this.lintTime-i);else{this.set=!1;let{state:e}=this.view,{sources:t}=e.facet(it);Promise.all(t.map(n=>Promise.resolve(n(this.view)))).then(n=>{let s=n.reduce((r,o)=>r.concat(o));this.view.state.doc==e.doc&&this.view.dispatch(Bf(this.view.state,s))},n=>{uc(this.view.state,n)})}}update(i){let e=i.state.facet(it);(i.docChanged||e!=i.startState.facet(it))&&(this.lintTime=Date.now()+e.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,e.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}}),it=P.define({combine(i){return Object.assign({sources:i.map(e=>e.source)},Pt(i.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null}))},enables:Wf});function Jl(i){let e=[];if(i)e:for(let{name:t}of i){for(let n=0;n<t.length;n++){let s=t[n];if(/[a-zA-Z]/.test(s)&&!e.some(r=>r.toLowerCase()==s.toLowerCase())){e.push(s);continue e}}e.push("")}return e}function Yl(i,e,t){var n;let s=t?Jl(e.actions):[];return I("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},I("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage():e.message),(n=e.actions)===null||n===void 0?void 0:n.map((r,o)=>{let l=u=>{u.preventDefault();let f=mt(i.state.field(fe).diagnostics,e);f&&r.apply(i,f.from,f.to)},{name:a}=r,c=s[o]?a.indexOf(s[o]):-1,h=c<0?a:[a.slice(0,c),I("u",a.slice(c,c+1)),a.slice(c+1)];return I("button",{type:"button",class:"cm-diagnosticAction",onclick:l,onmousedown:l,"aria-label":` Action: ${a}${c<0?"":` (access key "${s[o]})"`}.`},h)}),e.source&&I("div",{class:"cm-diagnosticSource"},e.source))}class Vf extends dc{constructor(e){super(),this.diagnostic=e}eq(e){return e.diagnostic==this.diagnostic}toDOM(){return I("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class Ar{constructor(e,t){this.diagnostic=t,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=Yl(e,t,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class Fi{constructor(e){this.view=e,this.items=[];let t=s=>{if(s.keyCode==27)kr(this.view),this.view.focus();else if(s.keyCode==38||s.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(s.keyCode==40||s.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(s.keyCode==36)this.moveSelection(0);else if(s.keyCode==35)this.moveSelection(this.items.length-1);else if(s.keyCode==13)this.view.focus();else if(s.keyCode>=65&&s.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:r}=this.items[this.selectedIndex],o=Jl(r.actions);for(let l=0;l<o.length;l++)if(o[l].toUpperCase().charCodeAt(0)==s.keyCode){let a=mt(this.view.state.field(fe).diagnostics,r);a&&r.actions[l].apply(e,a.from,a.to)}}else return;s.preventDefault()},n=s=>{for(let r=0;r<this.items.length;r++)this.items[r].dom.contains(s.target)&&this.moveSelection(r)};this.list=I("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:t,onclick:n}),this.dom=I("div",{class:"cm-panel-lint"},this.list,I("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>kr(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(fe).selected;if(!e)return-1;for(let t=0;t<this.items.length;t++)if(this.items[t].diagnostic==e.diagnostic)return t;return-1}update(){let{diagnostics:e,selected:t}=this.view.state.field(fe),n=0,s=!1,r=null;for(e.between(0,this.view.state.doc.length,(o,l,{spec:a})=>{let c=-1,h;for(let u=n;u<this.items.length;u++)if(this.items[u].diagnostic==a.diagnostic){c=u;break}c<0?(h=new Ar(this.view,a.diagnostic),this.items.splice(n,0,h),s=!0):(h=this.items[c],c>n&&(this.items.splice(n,c-n),s=!0)),t&&h.diagnostic==t.diagnostic?h.dom.hasAttribute("aria-selected")||(h.dom.setAttribute("aria-selected","true"),r=h):h.dom.hasAttribute("aria-selected")&&h.dom.removeAttribute("aria-selected"),n++});n<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)s=!0,this.items.pop();this.items.length==0&&(this.items.push(new Ar(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),s=!0),r?(this.list.setAttribute("aria-activedescendant",r.id),this.view.requestMeasure({key:this,read:()=>({sel:r.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:o,panel:l})=>{o.top<l.top?this.list.scrollTop-=l.top-o.top:o.bottom>l.bottom&&(this.list.scrollTop+=o.bottom-l.bottom)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),s&&this.sync()}sync(){let e=this.list.firstChild;function t(){let n=e;e=n.nextSibling,n.remove()}for(let n of this.items)if(n.dom.parentNode==this.list){for(;e!=n.dom;)t();e=n.dom.nextSibling}else this.list.insertBefore(n.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=this.view.state.field(fe),n=mt(t.diagnostics,this.items[e].diagnostic);n&&this.view.dispatch({selection:{anchor:n.from,head:n.to},scrollIntoView:!0,effects:_l.of(n)})}static open(e){return new Fi(e)}}function Hf(i,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${e}>${encodeURIComponent(i)}</svg>')`}function Zi(i){return Hf(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${i}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}const zf=z.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-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:Zi("#d11")},".cm-lintRange-warning":{backgroundImage:Zi("orange")},".cm-lintRange-info":{backgroundImage:Zi("#999")},".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-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}}});var Mr=function(e){e===void 0&&(e={});var{crosshairCursor:t=!1}=e,n=[];e.closeBracketsKeymap!==!1&&(n=n.concat(Sf)),e.defaultKeymap!==!1&&(n=n.concat($h)),e.searchKeymap!==!1&&(n=n.concat(pd)),e.historyKeymap!==!1&&(n=n.concat(eh)),e.foldKeymap!==!1&&(n=n.concat(fc)),e.completionKeymap!==!1&&(n=n.concat(Kl)),e.lintKeymap!==!1&&(n=n.concat(Ff));var s=[];return e.lineNumbers!==!1&&s.push(pc()),e.highlightActiveLineGutter!==!1&&s.push(mc()),e.highlightSpecialChars!==!1&&s.push(gc()),e.history!==!1&&s.push(Uc()),e.foldGutter!==!1&&s.push(xc()),e.drawSelection!==!1&&s.push(yc()),e.dropCursor!==!1&&s.push(bc()),e.allowMultipleSelections!==!1&&s.push(ke.allowMultipleSelections.of(!0)),e.indentOnInput!==!1&&s.push(vc()),e.syntaxHighlighting!==!1&&s.push(Gn(Sc,{fallback:!0})),e.bracketMatching!==!1&&s.push(wc()),e.closeBrackets!==!1&&s.push(xf()),e.autocompletion!==!1&&s.push(Tf()),e.rectangularSelection!==!1&&s.push(Cc()),t!==!1&&s.push(kc()),e.highlightActiveLine!==!1&&s.push(Ac()),e.highlightSelectionMatches!==!1&&s.push(Jh()),e.tabSize&&typeof e.tabSize=="number"&&s.push(Zr.of(" ".repeat(e.tabSize))),s.concat([to.of(n.flat())]).filter(Boolean)};const $f="#e5c07b",Dr="#e06c75",qf="#56b6c2",Uf="#ffffff",si="#abb2bf",Ln="#7d8799",Kf="#61afef",Gf="#98c379",Tr="#d19a66",_f="#c678dd",Jf="#21252b",Or="#2c313a",jr="#282c34",en="#353a42",Yf="#3E4451",Rr="#528bff",Xf=z.theme({"&":{color:si,backgroundColor:jr},".cm-content":{caretColor:Rr},".cm-cursor, .cm-dropCursor":{borderLeftColor:Rr},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:Yf},".cm-panels":{backgroundColor:Jf,color:si},".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",outline:"1px solid #515a6b"},".cm-gutters":{backgroundColor:jr,color:Ln,border:"none"},".cm-activeLineGutter":{backgroundColor:Or},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:en},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:en,borderBottomColor:en},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:Or,color:si}}},{dark:!0}),Qf=io.define([{tag:b.keyword,color:_f},{tag:[b.name,b.deleted,b.character,b.propertyName,b.macroName],color:Dr},{tag:[b.function(b.variableName),b.labelName],color:Kf},{tag:[b.color,b.constant(b.name),b.standard(b.name)],color:Tr},{tag:[b.definition(b.name),b.separator],color:si},{tag:[b.typeName,b.className,b.number,b.changed,b.annotation,b.modifier,b.self,b.namespace],color:$f},{tag:[b.operator,b.operatorKeyword,b.url,b.escape,b.regexp,b.link,b.special(b.string)],color:qf},{tag:[b.meta,b.comment],color:Ln},{tag:b.strong,fontWeight:"bold"},{tag:b.emphasis,fontStyle:"italic"},{tag:b.strikethrough,textDecoration:"line-through"},{tag:b.link,color:Ln,textDecoration:"underline"},{tag:b.heading,fontWeight:"bold",color:Dr},{tag:[b.atom,b.bool,b.special(b.variableName)],color:Tr},{tag:[b.processingInstruction,b.string,b.inserted],color:Gf},{tag:b.invalid,color:Uf}]),Zf=[Xf,Gn(Qf)];var ep=z.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),tp=function(e){e===void 0&&(e={});var{indentWithTab:t=!0,editable:n=!0,readOnly:s=!1,theme:r="light",placeholder:o="",basicSetup:l=!0}=e,a=[];switch(t&&a.unshift(to.of([qh])),l&&(typeof l=="boolean"?a.unshift(Mr()):a.unshift(Mr(l))),o&&a.unshift(Mc(o)),r){case"light":a.push(ep);break;case"dark":a.push(Zf);break;case"none":break;default:a.push(r);break}return n===!1&&a.push(z.editable.of(!1)),s&&a.push(ke.readOnly.of(!0)),[...a]},ip=i=>({line:i.state.doc.lineAt(i.state.selection.main.from),lineCount:i.state.doc.lines,lineBreak:i.state.lineBreak,length:i.state.doc.length,readOnly:i.state.readOnly,tabSize:i.state.tabSize,selection:i.state.selection,selectionAsSingle:i.state.selection.asSingle().main,ranges:i.state.selection.ranges,selectionCode:i.state.sliceDoc(i.state.selection.main.from,i.state.selection.main.to),selections:i.state.selection.ranges.map(e=>i.state.sliceDoc(e.from,e.to)),selectedText:i.state.selection.ranges.some(e=>!e.empty)}),Br=Mi.define(),np=[];function sp(i){var{value:e,selection:t,onChange:n,onStatistics:s,onCreateEditor:r,onUpdate:o,extensions:l=np,autoFocus:a,theme:c="light",height:h=null,minHeight:u=null,maxHeight:f=null,width:p=null,minWidth:m=null,maxWidth:x=null,placeholder:g="",editable:y=!0,readOnly:S=!1,indentWithTab:D=!0,basicSetup:C=!0,root:w,initialState:j}=i,[L,$]=M.useState(),[k,B]=M.useState(),[Q,re]=M.useState(),$e=z.theme({"&":{height:h,minHeight:u,maxHeight:f,width:p,minWidth:m,maxWidth:x},"& .cm-scroller":{height:"100% !important"}}),vt=z.updateListener.of(ae=>{if(ae.docChanged&&typeof n=="function"&&!ae.transactions.some(Vi=>Vi.annotation(Br))){var Re=ae.state.doc,Ye=Re.toString();n(Ye,ae)}s&&s(ip(ae))}),Wi=tp({theme:c,editable:y,readOnly:S,placeholder:g,indentWithTab:D,basicSetup:C}),qe=[vt,$e,...Wi];return o&&typeof o=="function"&&qe.push(z.updateListener.of(o)),qe=qe.concat(l),M.useEffect(()=>{if(L&&!Q){var ae={doc:e,selection:t,extensions:qe},Re=j?ke.fromJSON(j.json,ae,j.fields):ke.create(ae);if(re(Re),!k){var Ye=new z({state:Re,parent:L,root:w});B(Ye),r&&r(Ye,Re)}}return()=>{k&&(re(void 0),B(void 0))}},[L,Q]),M.useEffect(()=>$(i.container),[i.container]),M.useEffect(()=>()=>{k&&(k.destroy(),B(void 0))},[k]),M.useEffect(()=>{a&&k&&k.focus()},[a,k]),M.useEffect(()=>{k&&k.dispatch({effects:_.reconfigure.of(qe)})},[c,l,h,u,f,p,m,x,g,y,S,D,C,n,o]),M.useEffect(()=>{if(e!==void 0){var ae=k?k.state.doc.toString():"";k&&e!==ae&&k.dispatch({changes:{from:0,to:ae.length,insert:e||""},annotations:[Br.of(!0)]})}},[e,k]),{state:Q,setState:re,view:k,setView:B,container:L,setContainer:$}}var rp=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],Xl=M.forwardRef((i,e)=>{var{className:t,value:n="",selection:s,extensions:r=[],onChange:o,onStatistics:l,onCreateEditor:a,onUpdate:c,autoFocus:h,theme:u="light",height:f,minHeight:p,maxHeight:m,width:x,minWidth:g,maxWidth:y,basicSetup:S,placeholder:D,indentWithTab:C,editable:w,readOnly:j,root:L,initialState:$}=i,k=Lc(i,rp),B=M.useRef(null),{state:Q,view:re,container:$e}=sp({container:B.current,root:L,value:n,autoFocus:h,theme:u,height:f,minHeight:p,maxHeight:m,width:x,minWidth:g,maxWidth:y,basicSetup:S,placeholder:D,indentWithTab:C,editable:w,readOnly:j,selection:s,onChange:o,onStatistics:l,onCreateEditor:a,onUpdate:c,extensions:r,initialState:$});if(M.useImperativeHandle(e,()=>({editor:B.current,state:Q,view:re}),[B,$e,Q,re]),typeof n!="string")throw new Error("value must be typeof string but got "+typeof n);var vt=typeof u=="string"?"cm-theme-"+u:"cm-theme";return d.jsx("div",Pn({ref:B,className:""+vt+(t?" "+t:"")},k))});Xl.displayName="CodeMirror";var Ql=i=>{var{theme:e,settings:t={},styles:n=[]}=i,s={".cm-gutters":{}},r={};t.background&&(r.backgroundColor=t.background),t.backgroundImage&&(r.backgroundImage=t.backgroundImage),t.foreground&&(r.color=t.foreground),t.fontSize&&(r.fontSize=t.fontSize),(t.background||t.foreground)&&(s["&"]=r),t.fontFamily&&(s["&.cm-editor .cm-scroller"]={fontFamily:t.fontFamily}),t.gutterBackground&&(s[".cm-gutters"].backgroundColor=t.gutterBackground),t.gutterForeground&&(s[".cm-gutters"].color=t.gutterForeground),t.gutterBorder&&(s[".cm-gutters"].borderRightColor=t.gutterBorder),t.caret&&(s[".cm-content"]={caretColor:t.caret},s[".cm-cursor, .cm-dropCursor"]={borderLeftColor:t.caret});var o={};t.gutterActiveForeground&&(o.color=t.gutterActiveForeground),t.lineHighlight&&(s[".cm-activeLine"]={backgroundColor:t.lineHighlight},o.backgroundColor=t.lineHighlight),s[".cm-activeLineGutter"]=o,t.selection&&(s["&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection"]={background:t.selection+" !important"}),t.selectionMatch&&(s["& .cm-selectionMatch"]={backgroundColor:t.selectionMatch});var l=z.theme(s,{dark:e==="dark"}),a=io.define(n),c=[l,Gn(a)];return c},op={background:"#faf8f5",foreground:"#b29762",caret:"#93abdc",selection:"#e3dcce",selectionMatch:"#e3dcce",gutterBackground:"#faf8f5",gutterForeground:"#cdc4b1",gutterBorder:"transparent",lineHighlight:"#ddceb154"},lp=i=>{var{theme:e="light",settings:t={},styles:n=[]}=i||{};return Ql({theme:e,settings:Pn({},op,t),styles:[{tag:[b.comment,b.bracket],color:"#b6ad9a"},{tag:[b.atom,b.number,b.keyword,b.link,b.attributeName,b.quote],color:"#063289"},{tag:[b.emphasis,b.heading,b.tagName,b.propertyName,b.variableName],color:"#2d2006"},{tag:[b.typeName,b.url,b.string],color:"#896724"},{tag:[b.operator,b.string],color:"#1659df"},{tag:[b.propertyName],color:"#b29762"},{tag:[b.unit,b.punctuation],color:"#063289"},...n]})},ap=lp(),cp={background:"#2a2734",foreground:"#6c6783",caret:"#ffad5c",selection:"#91ff6c26",selectionMatch:"#91ff6c26",gutterBackground:"#2a2734",gutterForeground:"#545167",lineHighlight:"#36334280"},hp=i=>{var{theme:e="dark",settings:t={},styles:n=[]}=i||{};return Ql({theme:e,settings:Pn({},cp,t),styles:[{tag:[b.comment,b.bracket],color:"#6c6783"},{tag:[b.atom,b.number,b.keyword,b.link,b.attributeName,b.quote],color:"#ffcc99"},{tag:[b.emphasis,b.heading,b.tagName,b.propertyName,b.className,b.variableName],color:"#eeebff"},{tag:[b.typeName,b.url],color:"#7a63ee"},{tag:b.operator,color:"#ffad5c"},{tag:b.string,color:"#ffb870"},{tag:[b.propertyName],color:"#9a86fd"},{tag:[b.unit,b.punctuation],color:"#e09142"},...n]})},dp=hp();const up=O("aside")(({theme:i})=>({height:"50px",backgroundColor:i.palette.background.paper,borderTopRightRadius:i.shape.borderRadiusMedium,borderTopLeftRadius:i.shape.borderRadiusMedium,padding:i.spacing(1,2),color:i.palette.text.primary,display:"flex",justifyContent:"space-between",alignItems:"center",border:`1px solid ${i.palette.divider}`})),Zl=O("div")(({theme:i,style:e})=>({width:i.spacing(3),height:i.spacing(3),display:"flex",alignItems:"center",color:i.palette.background.paper,justifyContent:"center",transition:"background-color 0.5s ease-in-out",borderRadius:"50%",...e})),fp=O("div")(({theme:i})=>({fontSize:i.fontSizes.smallBody,color:i.palette.error.dark,marginRight:i.spacing(1)})),pp=()=>{const i=G();return d.jsx(Zl,{style:{backgroundColor:i.palette.success.main},children:d.jsx(ba,{sx:e=>({width:e.spacing(2),height:e.spacing(2)})})})},mp=()=>{const i=G();return d.jsx(Zl,{style:{backgroundColor:i.palette.error.main},children:d.jsx(va,{})})},gp=({context:i,setContext:e,error:t})=>{const{themeMode:n}=M.useContext(ya),s=G(),r=M.useCallback(o=>{e(o)},[e]);return d.jsxs(R,{sx:{width:"100%"},children:[d.jsxs(up,{children:["JSON",d.jsx(T,{condition:!!t,show:d.jsxs(R,{sx:o=>({display:"flex",alignItems:"center"}),children:[d.jsx(fp,{children:t}),d.jsx(mp,{})]}),elseShow:d.jsx(pp,{})})]}),d.jsx(Xl,{value:i,height:"150px",theme:n==="dark"?dp:ap,extensions:[Dc()],onChange:r,style:{border:`1px solid ${s.palette.divider}`,borderTop:"none"},placeholder:JSON.stringify({currentTime:"2022-07-04T14:13:03.929Z",appName:"playground",userId:"test",remoteAddress:"127.0.0.1"},null,2)})]})};function ea(i){return Array.isArray(i)?i:[i]}const xp=i=>!i||i.length===0||i.length===1&&i[0]==="*"?"*":ea(i),yp=i=>ea(i),bp=i=>{const e=vp(i);return e.length>0?e[0]:""},vp=i=>i.filter(({enabled:e})=>!!e).sort((e,t)=>e.sortOrder-t.sortOrder).map(({name:e})=>e),Sp=(i,e)=>i?"100%":e&&!i?"60%":"50%",wp=i=>typeof i=="string"?!0:Array.isArray(i)?i.every(e=>typeof e=="string"):!1,Cp=i=>{const e=new Set(["appName","environment","userId","sessionId","remoteAddress","currentTime","properties"]),t={...i};let n=!1;for(const s in i)e.has(s)||(t.properties||(t.properties={}),t.properties[s]=i[s],delete t[s],n=!0);return!n&&!i.properties&&delete t.properties,t},kp=i=>{const[e]=i.split("."),[t,n]=e.split(":");if(!t||!n)throw new Error("Invalid token format");if(n==="*")throw new Error("Admin tokens are not supported in the playground")},Ap=i=>{const[e]=i.split(".");return e.split(":")},Mp=({context:i,setContext:e})=>{const t=G(),{setToastData:n}=Fr(),{context:s}=Sa(),r=s.sort((C,w)=>C.sortOrder-w.sortOrder).map(({name:C})=>C),[o,l]=M.useState(),[a,c]=M.useState(!1),[h,u]=M.useState(""),[f,p]=M.useState(""),m=M.useMemo(()=>Ec(C=>{var w;if(!C)return l(void 0);try{const j=JSON.parse(C);c(j[h]!==void 0||((w=j==null?void 0:j.properties)==null?void 0:w[h])!==void 0)}catch(j){return l(Mt(j))}return l(void 0)},250),[l,h,c]);M.useEffect(()=>{m(i)},[m,i]);const x=()=>{try{const C=JSON.parse(i||"{}");e(JSON.stringify(Cp({...C,[h]:f}),null,2));const w=s.find(j=>j.name===h);if(w!=null&&w.legalValues&&w.legalValues.length>0||h==="currentTime")return p("")}catch(C){n({type:"error",title:`Error parsing context: ${Mt(C)}`})}},g=(C,w)=>{if(wp(w)){if(Array.isArray(w)){const j=(w||[]).length>1?w.join(","):w[0];return p(j)}p(w)}},y=()=>{if(!f||f==="")return[];const C=s.find(j=>j.name===h),w=((C==null?void 0:C.legalValues)||[]).length>1;return f.includes(",")&&w?f.split(","):[f]},S=()=>{if(h==="currentTime"){const w=bs(f),L=w?vs(w.toISOString()):vs(new Date().toISOString());return d.jsx(Zt,{id:"date",label:"Date",size:"small",type:"datetime-local",value:L,sx:{width:200,maxWidth:"100%"},onChange:$=>{const k=bs($.target.value),B=k==null?void 0:k.toISOString();B&&p(B)},InputLabelProps:{shrink:!0},required:!0})}const C=s.find(w=>w.name===h);if(C!=null&&C.legalValues&&C.legalValues.length>0){const w=C.legalValues.map(({value:j})=>j);return d.jsx(Wr,{disablePortal:!0,limitTags:3,id:"context-legal-values",freeSolo:!0,filterSelectedOptions:!0,size:"small",value:y(),onChange:g,options:w,multiple:!0,sx:{width:370,maxWidth:"100%"},renderInput:j=>d.jsx(Zt,{...j,label:"Value"}),disableCloseOnSelect:!1})}return d.jsx(Zt,{label:"Value",id:"context-value",sx:{width:370,maxWidth:"100%"},placeholder:"value1,value2,value3",size:"small",value:f,onChange:w=>p(w.target.value||"")})},D=C=>{if(u(C.target.value||""),C.target.value==="currentTime")return p(new Date().toISOString());p("")};return d.jsxs(R,{children:[d.jsx(R,{sx:{display:"flex",alignItems:"center",mb:2},children:d.jsx(V,{variant:"body2",color:t.palette.text.primary,sx:{ml:1},children:"Unleash context"})}),d.jsxs(R,{sx:{display:"flex",gap:2,flexWrap:"wrap",mb:2},children:[d.jsxs(wa,{children:[d.jsx(Ca,{id:"context-field-label",size:"small",children:"Context field"}),d.jsx(ka,{label:"Context field",labelId:"context-field-label",id:"context-field",value:h,onChange:D,variant:"outlined",size:"small",sx:{width:200,maxWidth:"100%"},children:r.map(C=>d.jsx(Aa,{value:C,children:C},C))})]}),S(),d.jsx(In,{variant:"outlined",disabled:!h||!!o,onClick:x,sx:{width:"95px",maxHeight:"40px"},children:`${a?"Replace":"Add"} `})]}),d.jsx(gp,{context:i,setContext:e,error:o})]})},tn={label:"ALL",id:"*"},Dp=O(Ma)({fontSize:"1.25rem"}),Tp=({environments:i,projects:e,token:t,setProjects:n,setEnvironments:s,setToken:r,availableEnvironments:o})=>{const l=G(),{tokens:a}=Tc(),[c,h]=M.useState(),{projects:u}=Da(),f=[tn,...u.map(({name:k,id:B})=>({label:k,id:B}))],p=[...o.map(k=>({label:k,id:k}))],m=(k,B,Q)=>{const re=B;return Q==="clear"||re===null?s([]):Array.isArray(re)?re.length===0?s([]):s(re.map(({id:$e})=>$e)):s([re.id])},x=p.filter(({id:k})=>i.includes(k)),g=async k=>{const B=k.target.value;if(r==null||r(B),B===""){j();return}try{kp(B),h(void 0),y(B)}catch(Q){h(Q.message)}},y=k=>{const[B,Q]=Ap(k);switch(s([Q]),B){case"[]":D(k);break;case"*":C();break;default:w(B)}},S=k=>{!k.projects||k.projects==="*"?n([tn.id]):typeof k.projects=="string"?n([k.projects]):Array.isArray(k.projects)&&n(k.projects)},D=k=>{const B=a.find(({secret:Q})=>Q===k);B?S(B):h("Invalid token. Ensure you use a valid token from this Unleash instance.")},C=()=>{n([tn.id])},w=k=>{f.map(B=>B.id).includes(k)?n([k]):h(`Invalid token. Project ${k} does not exist.`)},j=()=>{h(void 0)},L=()=>{r==null||r(""),j()},$=()=>d.jsx(Ra,{position:"end","data-testid":"TOKEN_INPUT_CLEAR_BTN",children:d.jsx(_e,{"aria-label":"toggle password visibility",onClick:L,edge:"end",children:d.jsx(Dp,{})})});return d.jsxs(R,{sx:{pb:2},children:[d.jsx(R,{sx:{display:"flex",alignItems:"center",mb:2},children:d.jsx(V,{variant:"body2",color:l.palette.text.primary,sx:{ml:1},children:"Access configuration"})}),d.jsxs(R,{sx:{display:"flex",gap:2,flexWrap:"wrap"},children:[d.jsx(R,{flex:1,children:d.jsx(Ss,{arrow:!0,title:t?"Environment is automatically selected because you are using a token":"Select environments to use in the playground",children:d.jsx(Wr,{disablePortal:!0,limitTags:3,id:"environment",multiple:!0,options:p,sx:{flex:1},renderInput:k=>d.jsx(Zt,{...k,label:"Environments"}),renderOption:Ta,getOptionLabel:({label:k})=>k,disableCloseOnSelect:!1,size:"small",value:x,onChange:m,disabled:!!t,"data-testid":"PLAYGROUND_ENVIRONMENT_SELECT"})})}),d.jsx(R,{flex:1,children:d.jsx(Ss,{arrow:!0,title:t?"Project is automatically selected because you are using a token":"Select projects to use in the playground",children:d.jsx(Oa,{selectedProjects:e,onChange:n,dataTestId:"PLAYGROUND_PROJECT_SELECT",disabled:!!t,limitTags:3})})})]}),d.jsx(ja,{sx:{mt:2,width:"50%",pr:1},label:"API token",value:t||"",onChange:g,type:"text",error:!!c,errorText:c,placeholder:"Enter your API token","data-testid":"PLAYGROUND_TOKEN_INPUT",InputProps:{endAdornment:t?$():null}})]})},Op=({availableEnvironments:i,environments:e,onSubmit:t,projects:n,token:s,setToken:r,setProjects:o,setEnvironments:l,context:a,setContext:c})=>d.jsxs(R,{component:"form",onSubmit:t,sx:{display:"flex",flexDirection:"column"},children:[d.jsx(Tp,{environments:Array.isArray(e)?e:[e],projects:n,token:s,setToken:r,setEnvironments:l,setProjects:o,availableEnvironments:i.map(({name:h})=>h)}),d.jsx(Mp,{context:a,setContext:c}),d.jsx(R,{sx:{mt:2,display:"flex",alignItems:"center",justifyContent:"space-between"},children:d.jsx(In,{variant:"contained",size:"large",type:"submit",sx:{marginLeft:"auto"},children:"Try configuration"})})]}),jp=O("div")(({style:i,theme:e})=>({width:"25px",height:"25px",borderRadius:"50%",color:e.palette.common.white,display:"flex",alignItems:"center",justifyContent:"center",fontWeight:"bold",...i})),Rp=({style:i,children:e,type:t})=>{const n=G(),s={backgroundColor:n.palette.background.alternative,color:n.palette.common.white};return t==="secondary"&&(s.backgroundColor=n.palette.background.paper,s.color=n.palette.text.secondary),d.jsx(jp,{style:{...s,...i},children:e})},nn=({headerText:i,bodyText:e,sectionNumber:t})=>d.jsx(R,{sx:{display:"flex",alignItems:"flex-start",mt:2,flexDirection:"column"},children:d.jsxs(R,{sx:{display:"flex"},children:[d.jsx(R,{children:d.jsx(Rp,{children:t})}),d.jsxs(R,{sx:{ml:2,display:"flex",flexDirection:"column"},children:[d.jsx(V,{variant:"body1",sx:{fontWeight:"bold"},children:i}),d.jsx(T,{condition:!!e,show:d.jsx(V,{variant:"body1",sx:{mt:1},children:e})})]})]})}),ta=()=>d.jsxs(R,{sx:{ml:4},children:[d.jsx(V,{variant:"body1",children:"Unleash playground is for helping you to understand how Unleash works, how feature flags are evaluated and for you to easily debug your feature flags."}),d.jsx(Ba,{sx:{mt:2,mb:2}}),d.jsx(V,{variant:"body1",sx:{mb:1},children:"What you need to do is:"}),d.jsx(nn,{headerText:`Select in which environment you want to test your
|