From 5fe4ab8d58697d2a2f1211c4c554d775f6ecf0cd Mon Sep 17 00:00:00 2001 From: MusikAnimal Date: Fri, 19 Jan 2024 16:36:11 -0500 Subject: [PATCH] CodeMirror: load colorblind theme when preference is set This is only done for wikitext, as the stylesheet only references .cm-mw-* classes. Change-Id: I15a82c7680a12fb10baff4a2e78626677536c291 --- resources/dist/main.js | 2 +- resources/dist/main.js.map.json | 2 +- src/codemirror.js | 9 +++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/resources/dist/main.js b/resources/dist/main.js index d6976f7d..48e76860 100644 --- a/resources/dist/main.js +++ b/resources/dist/main.js @@ -1,2 +1,2 @@ -(()=>{"use strict";class t{lineAt(t){if(t<0||t>this.length)throw new RangeError(`Invalid position ${t} in document of length ${this.length}`);return this.lineInner(t,!1,1,0)}line(t){if(t<1||t>this.lines)throw new RangeError(`Invalid line number ${t} in ${this.lines}-line document`);return this.lineInner(t,!0,1,0)}replace(t,e,n){let r=[];return this.decompose(0,t,r,2),n.length&&n.decompose(0,n.length,r,3),this.decompose(e,this.length,r,1),i.from(r,this.length-(e-t)+n.length)}append(t){return this.replace(this.length,this.length,t)}slice(t,e=this.length){let n=[];return this.decompose(t,e,n,0),i.from(n,e-t)}eq(t){if(t==this)return!0;if(t.length!=this.length||t.lines!=this.lines)return!1;let e=this.scanIdentical(t,1),i=this.length-this.scanIdentical(t,-1),n=new s(this),r=new s(t);for(let t=e,s=e;;){if(n.next(t),r.next(t),t=0,n.lineBreak!=r.lineBreak||n.done!=r.done||n.value!=r.value)return!1;if(s+=n.value.length,n.done||s>=i)return!0}}iter(t=1){return new s(this,t)}iterRange(t,e=this.length){return new o(this,t,e)}iterLines(t,e){let i;if(null==t)i=this.iter();else{null==e&&(e=this.lines+1);let n=this.line(t).from;i=this.iterRange(n,Math.max(n,e==this.lines+1?this.length:e<=1?0:this.line(e-1).to))}return new a(i)}toString(){return this.sliceString(0)}toJSON(){let t=[];return this.flatten(t),t}constructor(){}static of(n){if(0==n.length)throw new RangeError("A document must have at least one line");return 1!=n.length||n[0]?n.length<=32?new e(n):i.from(e.split(n,[])):t.empty}}class e extends t{constructor(t,e=function(t){let e=-1;for(let i of t)e+=i.length+1;return e}(t)){super(),this.text=t,this.length=e}get lines(){return this.text.length}get children(){return null}lineInner(t,e,i,n){for(let r=0;;r++){let s=this.text[r],o=n+s.length;if((e?i:o)>=t)return new l(n,o,i,s);n=o+1,i++}}decompose(t,i,s,o){let a=t<=0&&i>=this.length?this:new e(r(this.text,t,i),Math.min(i,this.length)-Math.max(0,t));if(1&o){let t=s.pop(),i=n(a.text,t.text.slice(),0,a.length);if(i.length<=32)s.push(new e(i,t.length+a.length));else{let t=i.length>>1;s.push(new e(i.slice(0,t)),new e(i.slice(t)))}}else s.push(a)}replace(t,s,o){if(!(o instanceof e))return super.replace(t,s,o);let a=n(this.text,n(o.text,r(this.text,0,t)),s),l=this.length+o.length-(s-t);return a.length<=32?new e(a,l):i.from(e.split(a,[]),l)}sliceString(t,e=this.length,i="\n"){let n="";for(let r=0,s=0;r<=e&&st&&s&&(n+=i),tr&&(n+=o.slice(Math.max(0,t-r),e-r)),r=a+1}return n}flatten(t){for(let e of this.text)t.push(e)}scanIdentical(){return 0}static split(t,i){let n=[],r=-1;for(let s of t)n.push(s),r+=s.length+1,32==n.length&&(i.push(new e(n,r)),n=[],r=-1);return r>-1&&i.push(new e(n,r)),i}}class i extends t{constructor(t,e){super(),this.children=t,this.length=e,this.lines=0;for(let e of t)this.lines+=e.lines}lineInner(t,e,i,n){for(let r=0;;r++){let s=this.children[r],o=n+s.length,a=i+s.lines-1;if((e?a:o)>=t)return s.lineInner(t,e,i,n);n=o+1,i=a+1}}decompose(t,e,i,n){for(let r=0,s=0;s<=e&&r=s){let r=n&((s<=t?1:0)|(a>=e?2:0));s>=t&&a<=e&&!r?i.push(o):o.decompose(t-s,e-s,i,r)}s=a+1}}replace(t,e,n){if(n.lines=s&&e<=a){let l=o.replace(t-s,e-s,n),h=this.lines-o.lines+l.lines;if(l.lines>4&&l.lines>h>>6){let s=this.children.slice();return s[r]=l,new i(s,this.length-(e-t)+n.length)}return super.replace(s,a,l)}s=a+1}return super.replace(t,e,n)}sliceString(t,e=this.length,i="\n"){let n="";for(let r=0,s=0;rt&&r&&(n+=i),ts&&(n+=o.sliceString(t-s,e-s,i)),s=a+1}return n}flatten(t){for(let e of this.children)e.flatten(t)}scanIdentical(t,e){if(!(t instanceof i))return 0;let n=0,[r,s,o,a]=e>0?[0,0,this.children.length,t.children.length]:[this.children.length-1,t.children.length-1,-1,-1];for(;;r+=e,s+=e){if(r==o||s==a)return n;let i=this.children[r],l=t.children[s];if(i!=l)return n+i.scanIdentical(l,e);n+=i.length+1}}static from(t,n=t.reduce(((t,e)=>t+e.length+1),-1)){let r=0;for(let e of t)r+=e.lines;if(r<32){let i=[];for(let e of t)e.flatten(i);return new e(i,n)}let s=Math.max(32,r>>5),o=s<<1,a=s>>1,l=[],h=0,c=-1,u=[];function f(t){let n;if(t.lines>o&&t instanceof i)for(let e of t.children)f(e);else t.lines>a&&(h>a||!h)?(d(),l.push(t)):t instanceof e&&h&&(n=u[u.length-1])instanceof e&&t.lines+n.lines<=32?(h+=t.lines,c+=t.length+1,u[u.length-1]=new e(n.text.concat(t.text),n.length+1+t.length)):(h+t.lines>s&&d(),h+=t.lines,c+=t.length+1,u.push(t))}function d(){0!=h&&(l.push(1==u.length?u[0]:i.from(u,c)),c=-1,h=u.length=0)}for(let e of t)f(e);return d(),1==l.length?l[0]:new i(l,n)}}function n(t,e,i=0,n=1e9){for(let r=0,s=0,o=!0;s=i&&(l>n&&(a=a.slice(0,n-r)),r0?1:(t instanceof e?t.text.length:t.children.length)<<1]}nextInner(t,i){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,r=this.nodes[n],s=this.offsets[n],o=s>>1,a=r instanceof e?r.text.length:r.children.length;if(o==(i>0?a:0)){if(0==n)return this.done=!0,this.value="",this;i>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((1&s)==(i>0?0:1)){if(this.offsets[n]+=i,0==t)return this.lineBreak=!0,this.value="\n",this;t--}else if(r instanceof e){let e=r.text[o+(i<0?-1:0)];if(this.offsets[n]+=i,e.length>Math.max(0,t))return this.value=0==t?e:i>0?e.slice(t):e.slice(0,e.length-t),this;t-=e.length}else{let s=r.children[o+(i<0?-1:0)];t>s.length?(t-=s.length,this.offsets[n]+=i):(i<0&&this.offsets[n]--,this.nodes.push(s),this.offsets.push(i>0?1:(s instanceof e?s.text.length:s.children.length)<<1))}}}next(t=0){return t<0&&(this.nextInner(-t,-this.dir),t=this.value.length),this.nextInner(t,this.dir)}}class o{constructor(t,e,i){this.value="",this.done=!1,this.cursor=new s(t,e>i?-1:1),this.pos=e>i?t.length:0,this.from=Math.min(e,i),this.to=Math.max(e,i)}nextInner(t,e){if(e<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;t+=Math.max(0,e<0?this.pos-this.to:this.from-this.pos);let i=e<0?this.pos-this.from:this.to-this.pos;t>i&&(t=i),i-=t;let{value:n}=this.cursor.next(t);return this.pos+=(n.length+t)*e,this.value=n.length<=i?n:e<0?n.slice(n.length-i):n.slice(0,i),this.done=!this.value,this}next(t=0){return t<0?t=Math.max(t,this.from-this.pos):t>0&&(t=Math.min(t,this.to-this.pos)),this.nextInner(t,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&""!=this.value}}class a{constructor(t){this.inner=t,this.afterBreak=!0,this.value="",this.done=!1}next(t=0){let{done:e,lineBreak:i,value:n}=this.inner.next(t);return e?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=n,this.afterBreak=!1),this}get lineBreak(){return!1}}"undefined"!=typeof Symbol&&(t.prototype[Symbol.iterator]=function(){return this.iter()},s.prototype[Symbol.iterator]=o.prototype[Symbol.iterator]=a.prototype[Symbol.iterator]=function(){return this});class l{constructor(t,e,i,n){this.from=t,this.to=e,this.number=i,this.text=n}get length(){return this.to-this.from}}let h="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map((t=>t?parseInt(t,36):1));for(let t=1;tt)return h[e-1]<=t;return!1}function u(t){return t>=127462&&t<=127487}const f=8205;function d(t,e,i=!0,n=!0){return(i?p:g)(t,e,n)}function p(t,e,i){if(e==t.length)return e;e&&m(t.charCodeAt(e))&&w(t.charCodeAt(e-1))&&e--;let n=v(t,e);for(e+=k(n);e=0&&u(v(t,n));)i++,n-=2;if(i%2==0)break;e+=2}}}return e}function g(t,e,i){for(;e>0;){let n=p(t,e-2,i);if(n=56320&&t<57344}function w(t){return t>=55296&&t<56320}function v(t,e){let i=t.charCodeAt(e);if(!w(i)||e+1==t.length)return i;let n=t.charCodeAt(e+1);return m(n)?n-56320+(i-55296<<10)+65536:i}function y(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10),56320+(1023&t)))}function k(t){return t<65536?1:2}const b=/\r\n?|\n/;var x=function(t){return t[t.Simple=0]="Simple",t[t.TrackDel=1]="TrackDel",t[t.TrackBefore=2]="TrackBefore",t[t.TrackAfter=3]="TrackAfter",t}(x||(x={}));class S{constructor(t){this.sections=t}get length(){let t=0;for(let e=0;et)return r+(t-n);r+=o}else{if(i!=x.Simple&&l>=t&&(i==x.TrackDel&&nt||i==x.TrackBefore&&nt))return null;if(l>t||l==t&&e<0&&!o)return t==n||e<0?r:r+a;r+=a}n=l}if(t>n)throw new RangeError(`Position ${t} is out of range for changeset of length ${n}`);return r}touchesRange(t,e=t){for(let i=0,n=0;i=0&&n<=e&&r>=t)return!(ne)||"cover";n=r}return!1}toString(){let t="";for(let e=0;e=0?":"+n:"")}return t}toJSON(){return this.sections}static fromJSON(t){if(!Array.isArray(t)||t.length%2||t.some((t=>"number"!=typeof t)))throw new RangeError("Invalid JSON representation of ChangeDesc");return new S(t)}static create(t){return new S(t)}}class A extends S{constructor(t,e){super(t),this.inserted=e}apply(t){if(this.length!=t.length)throw new RangeError("Applying change set to a document with the wrong length");return T(this,((e,i,n,r,s)=>t=t.replace(n,n+(i-e),s)),!1),t}mapDesc(t,e=!1){return D(this,t,e,!0)}invert(e){let i=this.sections.slice(),n=[];for(let r=0,s=0;r=0){i[r]=a,i[r+1]=o;let l=r>>1;for(;n.length0&&C(i,e,r.text),r.forward(t),o+=t}let l=t[s++];for(;o>1].toJSON()))}return t}static of(e,i,n){let r=[],s=[],o=0,a=null;function l(t=!1){if(!t&&!r.length)return;oa||e<0||a>i)throw new RangeError(`Invalid change range ${e} to ${a} (in doc of length ${i})`);let u=c?"string"==typeof c?t.of(c.split(n||b)):c:t.empty,f=u.length;if(e==a&&0==f)return;eo&&M(r,e-o,-1),M(r,a-e,f),C(s,r,u),o=a}}(e),l(!a),a}static empty(t){return new A(t?[t,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let i=[],n=[];for(let r=0;re&&"string"!=typeof t)))throw new RangeError("Invalid JSON representation of ChangeSet");if(1==s.length)i.push(s[0],0);else{for(;n.length=0&&i<=0&&i==t[r+1]?t[r]+=e:0==e&&0==t[r]?t[r+1]+=i:n?(t[r]+=e,t[r+1]+=i):t.push(e,i)}function C(e,i,n){if(0==n.length)return;let r=i.length-2>>1;if(r>1])),!(n||a==e.sections.length||e.sections[a+1]<0);)l=e.sections[a++],h=e.sections[a++];i(s,c,o,u,f),s=c,o=u}}}function D(t,e,i,n=!1){let r=[],s=n?[]:null,o=new E(t),a=new E(e);for(let t=-1;;)if(-1==o.ins&&-1==a.ins){let t=Math.min(o.len,a.len);M(r,t,-1),o.forward(t),a.forward(t)}else if(a.ins>=0&&(o.ins<0||t==o.i||0==o.off&&(a.len=0&&t=0)){if(o.done&&a.done)return s?A.createSet(r,s):S.create(r);throw new Error("Mismatched change set lengths")}{let e=0,i=o.len;for(;i;)if(-1==a.ins){let t=Math.min(i,a.len);e+=t,i-=t,a.forward(t)}else{if(!(0==a.ins&&a.lene||o.ins>=0&&o.len>e)&&(t||n.length>i),s.forward2(e),o.forward(e)}}else M(n,0,o.ins,t),r&&C(r,n,o.text),o.next()}}class E{constructor(t){this.set=t,this.i=0,this.next()}next(){let{sections:t}=this.set;this.i>1;return i>=e.length?t.empty:e[i]}textBit(e){let{inserted:i}=this.set,n=this.i-2>>1;return n>=i.length&&!e?t.empty:i[n].slice(this.off,null==e?void 0:this.off+e)}forward(t){t==this.len?this.next():(this.len-=t,this.off+=t)}forward2(t){-1==this.ins?this.forward(t):t==this.ins?this.next():(this.ins-=t,this.off+=t)}}class L{constructor(t,e,i){this.from=t,this.to=e,this.flags=i}get anchor(){return 16&this.flags?this.to:this.from}get head(){return 16&this.flags?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return 4&this.flags?-1:8&this.flags?1:0}get bidiLevel(){let t=3&this.flags;return 3==t?null:t}get goalColumn(){let t=this.flags>>5;return 33554431==t?void 0:t}map(t,e=-1){let i,n;return this.empty?i=n=t.mapPos(this.from,e):(i=t.mapPos(this.from,1),n=t.mapPos(this.to,-1)),i==this.from&&n==this.to?this:new L(i,n,this.flags)}extend(t,e=t){if(t<=this.anchor&&e>=this.anchor)return B.range(t,e);let i=Math.abs(t-this.anchor)>Math.abs(e-this.anchor)?t:e;return B.range(this.anchor,i)}eq(t){return this.anchor==t.anchor&&this.head==t.head}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(t){if(!t||"number"!=typeof t.anchor||"number"!=typeof t.head)throw new RangeError("Invalid JSON representation for SelectionRange");return B.range(t.anchor,t.head)}static create(t,e,i){return new L(t,e,i)}}class B{constructor(t,e){this.ranges=t,this.mainIndex=e}map(t,e=-1){return t.empty?this:B.create(this.ranges.map((i=>i.map(t,e))),this.mainIndex)}eq(t){if(this.ranges.length!=t.ranges.length||this.mainIndex!=t.mainIndex)return!1;for(let e=0;et.toJSON())),main:this.mainIndex}}static fromJSON(t){if(!t||!Array.isArray(t.ranges)||"number"!=typeof t.main||t.main>=t.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new B(t.ranges.map((t=>L.fromJSON(t))),t.main)}static single(t,e=t){return new B([B.range(t,e)],0)}static create(t,e=0){if(0==t.length)throw new RangeError("A selection needs at least one range");for(let i=0,n=0;nt?4:0)|r)}static normalized(t,e=0){let i=t[e];t.sort(((t,e)=>t.from-e.from)),e=t.indexOf(i);for(let i=1;in.head?B.range(o,s):B.range(s,o))}}return new B(t,e)}}function P(t,e){for(let i of t.ranges)if(i.to>e)throw new RangeError("Selection points outside of document")}let N=0;class R{constructor(t,e,i,n,r){this.combine=t,this.compareInput=e,this.compare=i,this.isStatic=n,this.id=N++,this.default=t([]),this.extensions="function"==typeof r?r(this):r}static define(t={}){return new R(t.combine||(t=>t),t.compareInput||((t,e)=>t===e),t.compare||(t.combine?(t,e)=>t===e:I),!!t.static,t.enables)}of(t){return new z([],this,0,t)}compute(t,e){if(this.isStatic)throw new Error("Can't compute a static facet");return new z(t,this,1,e)}computeN(t,e){if(this.isStatic)throw new Error("Can't compute a static facet");return new z(t,this,2,e)}from(t,e){return e||(e=t=>t),this.compute([t],(i=>e(i.field(t))))}}function I(t,e){return t==e||t.length==e.length&&t.every(((t,i)=>t===e[i]))}class z{constructor(t,e,i,n){this.dependencies=t,this.facet=e,this.type=i,this.value=n,this.id=N++}dynamicSlot(t){var e;let i=this.value,n=this.facet.compareInput,r=this.id,s=t[r]>>1,o=2==this.type,a=!1,l=!1,h=[];for(let i of this.dependencies)"doc"==i?a=!0:"selection"==i?l=!0:0==(1&(null!==(e=t[i.id])&&void 0!==e?e:1))&&h.push(t[i.id]);return{create:t=>(t.values[s]=i(t),1),update(t,e){if(a&&e.docChanged||l&&(e.docChanged||e.selection)||W(t,h)){let e=i(t);if(o?!H(e,t.values[s],n):!n(e,t.values[s]))return t.values[s]=e,1}return 0},reconfigure:(t,e)=>{let a,l=e.config.address[r];if(null!=l){let r=X(e,l);if(this.dependencies.every((i=>i instanceof R?e.facet(i)===t.facet(i):!(i instanceof _)||e.field(i,!1)==t.field(i,!1)))||(o?H(a=i(t),r,n):n(a=i(t),r)))return t.values[s]=r,0}else a=i(t);return t.values[s]=a,1}}}}function H(t,e,i){if(t.length!=e.length)return!1;for(let n=0;nt[e.id])),r=i.map((t=>t.type)),s=n.filter((t=>!(1&t))),o=t[e.id]>>1;function a(t){let i=[];for(let e=0;et===e),t);return t.provide&&(e.provides=t.provide(e)),e}create(t){let e=t.facet(F).find((t=>t.field==this));return((null==e?void 0:e.create)||this.createF)(t)}slot(t){let e=t[this.id]>>1;return{create:t=>(t.values[e]=this.create(t),1),update:(t,i)=>{let n=t.values[e],r=this.updateF(n,i);return this.compareF(n,r)?0:(t.values[e]=r,1)},reconfigure:(t,i)=>null!=i.config.address[this.id]?(t.values[e]=i.field(this),0):(t.values[e]=this.create(t),1)}}init(t){return[this,F.of({field:this,create:t})]}get extension(){return this}}function j(t){return e=>new K(e,t)}const q={highest:j(0),high:j(1),default:j(2),low:j(3),lowest:j(4)};class K{constructor(t,e){this.inner=t,this.prec=e}}class G{of(t){return new U(this,t)}reconfigure(t){return G.reconfigure.of({compartment:this,extension:t})}get(t){return t.config.compartments.get(this)}}class U{constructor(t,e){this.compartment=t,this.inner=e}}class J{constructor(t,e,i,n,r,s){for(this.base=t,this.compartments=e,this.dynamicSlots=i,this.address=n,this.staticValues=r,this.facets=s,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(t,e,i){let n=[],r=Object.create(null),s=new Map;for(let i of function(t,e,i){let n=[[],[],[],[],[]],r=new Map;return function t(s,o){let a=r.get(s);if(null!=a){if(a<=o)return;let t=n[a].indexOf(s);t>-1&&n[a].splice(t,1),s instanceof U&&i.delete(s.compartment)}if(r.set(s,o),Array.isArray(s))for(let e of s)t(e,o);else if(s instanceof U){if(i.has(s.compartment))throw new RangeError("Duplicate use of compartment in extensions");let n=e.get(s.compartment)||s.inner;i.set(s.compartment,n),t(n,o)}else if(s instanceof K)t(s.inner,s.prec);else if(s instanceof _)n[o].push(s),s.provides&&t(s.provides,o);else if(s instanceof z)n[o].push(s),s.facet.extensions&&t(s.facet.extensions,2);else{let e=s.extension;if(!e)throw new Error(`Unrecognized extension value in extension set (${s}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);t(e,o)}}(t,2),n.reduce(((t,e)=>t.concat(e)))}(t,e,s))i instanceof _?n.push(i):(r[i.facet.id]||(r[i.facet.id]=[])).push(i);let o=Object.create(null),a=[],l=[];for(let t of n)o[t.id]=l.length<<1,l.push((e=>t.slot(e)));let h=null==i?void 0:i.config.facets;for(let t in r){let e=r[t],n=e[0].facet,s=h&&h[t]||[];if(e.every((t=>0==t.type)))if(o[n.id]=a.length<<1|1,I(s,e))a.push(i.facet(n));else{let t=n.combine(e.map((t=>t.value)));a.push(i&&n.compare(t,i.facet(n))?i.facet(n):t)}else{for(let t of e)0==t.type?(o[t.id]=a.length<<1|1,a.push(t.value)):(o[t.id]=l.length<<1,l.push((e=>t.dynamicSlot(e))));o[n.id]=l.length<<1,l.push((t=>V(t,n,e)))}}let c=l.map((t=>t(o)));return new J(t,s,c,o,a,r)}}function Y(t,e){if(1&e)return 2;let i=e>>1,n=t.status[i];if(4==n)throw new Error("Cyclic dependency between fields and/or facets");if(2&n)return n;t.status[i]=4;let r=t.computeSlot(t,t.config.dynamicSlots[i]);return t.status[i]=2|r}function X(t,e){return 1&e?t.config.staticValues[e>>1]:t.values[e>>1]}const Q=R.define(),Z=R.define({combine:t=>t.some((t=>t)),static:!0}),tt=R.define({combine:t=>t.length?t[0]:void 0,static:!0}),et=R.define(),it=R.define(),nt=R.define(),rt=R.define({combine:t=>!!t.length&&t[0]});class st{constructor(t,e){this.type=t,this.value=e}static define(){return new ot}}class ot{of(t){return new st(this,t)}}class at{constructor(t){this.map=t}of(t){return new lt(this,t)}}class lt{constructor(t,e){this.type=t,this.value=e}map(t){let e=this.type.map(this.value,t);return void 0===e?void 0:e==this.value?this:new lt(this.type,e)}is(t){return this.type==t}static define(t={}){return new at(t.map||(t=>t))}static mapEffects(t,e){if(!t.length)return t;let i=[];for(let n of t){let t=n.map(e);t&&i.push(t)}return i}}lt.reconfigure=lt.define(),lt.appendConfig=lt.define();class ht{constructor(t,e,i,n,r,s){this.startState=t,this.changes=e,this.selection=i,this.effects=n,this.annotations=r,this.scrollIntoView=s,this._doc=null,this._state=null,i&&P(i,e.newLength),r.some((t=>t.type==ht.time))||(this.annotations=r.concat(ht.time.of(Date.now())))}static create(t,e,i,n,r,s){return new ht(t,e,i,n,r,s)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(t){for(let e of this.annotations)if(e.type==t)return e.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(t){let e=this.annotation(ht.userEvent);return!(!e||!(e==t||e.length>t.length&&e.slice(0,t.length)==t&&"."==e[t.length]))}}function ct(t,e){let i=[];for(let n=0,r=0;;){let s,o;if(n=t[n]))s=t[n++],o=t[n++];else{if(!(r=0;r--){let s=i[r](t);s&&Object.keys(s).length&&(n=ut(n,ft(e,s,t.changes.newLength),!0))}return n==t?t:ht.create(e,t.changes,t.selection,n.effects,n.annotations,n.scrollIntoView)}(i?function(t){let e=t.startState,i=!0;for(let n of e.facet(et)){let e=n(t);if(!1===e){i=!1;break}Array.isArray(e)&&(i=!0===i?e:ct(i,e))}if(!0!==i){let n,r;if(!1===i)r=t.changes.invertedDesc,n=A.empty(e.doc.length);else{let e=t.changes.filter(i);n=e.changes,r=e.filtered.mapDesc(e.changes).invertedDesc}t=ht.create(e,n,t.selection&&t.selection.map(r),lt.mapEffects(t.effects,r),t.annotations,t.scrollIntoView)}let n=e.facet(it);for(let i=n.length-1;i>=0;i--){let r=n[i](t);t=r instanceof ht?r:Array.isArray(r)&&1==r.length&&r[0]instanceof ht?r[0]:dt(e,gt(r),!1)}return t}(r):r)}ht.time=st.define(),ht.userEvent=st.define(),ht.addToHistory=st.define(),ht.remote=st.define();const pt=[];function gt(t){return null==t?pt:Array.isArray(t)?t:[t]}var mt=function(t){return t[t.Word=0]="Word",t[t.Space=1]="Space",t[t.Other=2]="Other",t}(mt||(mt={}));const wt=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let vt;try{vt=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(t){}class yt{constructor(t,e,i,n,r,s){this.config=t,this.doc=e,this.selection=i,this.values=n,this.status=t.statusTemplate.slice(),this.computeSlot=r,s&&(s._state=this);for(let t=0;tr.set(e,t))),i=null),r.set(e.value.compartment,e.value.extension)):e.is(lt.reconfigure)?(i=null,n=e.value):e.is(lt.appendConfig)&&(i=null,n=gt(n).concat(e.value));i?e=t.startState.values.slice():(i=J.resolve(n,r,this),e=new yt(i,this.doc,this.selection,i.dynamicSlots.map((()=>null)),((t,e)=>e.reconfigure(t,this)),null).values),new yt(i,t.newDoc,t.newSelection,e,((e,i)=>i.update(e,t)),t)}replaceSelection(t){return"string"==typeof t&&(t=this.toText(t)),this.changeByRange((e=>({changes:{from:e.from,to:e.to,insert:t},range:B.cursor(e.from+t.length)})))}changeByRange(t){let e=this.selection,i=t(e.ranges[0]),n=this.changes(i.changes),r=[i.range],s=gt(i.effects);for(let i=1;ir.spec.fromJSON(s,t))))}return yt.create({doc:t.doc,selection:B.fromJSON(t.selection),extensions:e.extensions?n.concat([e.extensions]):n})}static create(e={}){let i=J.resolve(e.extensions||[],new Map),n=e.doc instanceof t?e.doc:t.of((e.doc||"").split(i.staticFacet(yt.lineSeparator)||b)),r=e.selection?e.selection instanceof B?e.selection:B.single(e.selection.anchor,e.selection.head):B.single(0);return P(r,n.length),i.staticFacet(Z)||(r=r.asSingle()),new yt(i,n,r,i.dynamicSlots.map((()=>null)),((t,e)=>e.create(t)),null)}get tabSize(){return this.facet(yt.tabSize)}get lineBreak(){return this.facet(yt.lineSeparator)||"\n"}get readOnly(){return this.facet(rt)}phrase(t,...e){for(let e of this.facet(yt.phrases))if(Object.prototype.hasOwnProperty.call(e,t)){t=e[t];break}return e.length&&(t=t.replace(/\$(\$|\d*)/g,((t,i)=>{if("$"==i)return"$";let n=+(i||1);return!n||n>e.length?t:e[n-1]}))),t}languageDataAt(t,e,i=-1){let n=[];for(let r of this.facet(Q))for(let s of r(this,e,i))Object.prototype.hasOwnProperty.call(s,t)&&n.push(s[t]);return n}charCategorizer(t){return e=this.languageDataAt("wordChars",t).join(""),t=>{if(!/\S/.test(t))return mt.Space;if(function(t){if(vt)return vt.test(t);for(let e=0;e"€"&&(i.toUpperCase()!=i.toLowerCase()||wt.test(i)))return!0}return!1}(t))return mt.Word;for(let i=0;i-1)return mt.Word;return mt.Other};var e}wordAt(t){let{text:e,from:i,length:n}=this.doc.lineAt(t),r=this.charCategorizer(t),s=t-i,o=t-i;for(;s>0;){let t=d(e,s,!1);if(r(e.slice(t,s))!=mt.Word)break;s=t}for(;ot.length?t[0]:4}),yt.lineSeparator=tt,yt.readOnly=rt,yt.phrases=R.define({compare(t,e){let i=Object.keys(t),n=Object.keys(e);return i.length==n.length&&i.every((i=>t[i]==e[i]))}}),yt.languageData=Q,yt.changeFilter=et,yt.transactionFilter=it,yt.transactionExtender=nt,G.reconfigure=lt.define();class bt{eq(t){return this==t}range(t,e=t){return xt.create(t,e,this)}}bt.prototype.startSide=bt.prototype.endSide=0,bt.prototype.point=!1,bt.prototype.mapMode=x.TrackDel;class xt{constructor(t,e,i){this.from=t,this.to=e,this.value=i}static create(t,e,i){return new xt(t,e,i)}}function St(t,e){return t.from-e.from||t.value.startSide-e.value.startSide}class At{constructor(t,e,i,n){this.from=t,this.to=e,this.value=i,this.maxPoint=n}get length(){return this.to[this.to.length-1]}findIndex(t,e,i,n=0){let r=i?this.to:this.from;for(let s=n,o=r.length;;){if(s==o)return s;let n=s+o>>1,a=r[n]-t||(i?this.value[n].endSide:this.value[n].startSide)-e;if(n==s)return a>=0?s:o;a>=0?o=n:s=n+1}}between(t,e,i,n){for(let r=this.findIndex(e,-1e9,!0),s=this.findIndex(i,1e9,!1,r);rh||l==h&&c.startSide>0&&c.endSide<=0)continue;(h-l||c.endSide-c.startSide)<0||(s<0&&(s=l),c.point&&(o=Math.max(o,h-l)),i.push(c),n.push(l-s),r.push(h-s))}return{mapped:i.length?new At(n,r,i,o):null,pos:s}}}class Mt{constructor(t,e,i,n){this.chunkPos=t,this.chunk=e,this.nextLayer=i,this.maxPoint=n}static create(t,e,i,n){return new Mt(t,e,i,n)}get length(){let t=this.chunk.length-1;return t<0?0:Math.max(this.chunkEnd(t),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let t=this.nextLayer.size;for(let e of this.chunk)t+=e.value.length;return t}chunkEnd(t){return this.chunkPos[t]+this.chunk[t].length}update(t){let{add:e=[],sort:i=!1,filterFrom:n=0,filterTo:r=this.length}=t,s=t.filter;if(0==e.length&&!s)return this;if(i&&(e=e.slice().sort(St)),this.isEmpty)return e.length?Mt.of(e):this;let o=new Dt(this,null,-1).goto(0),a=0,l=[],h=new Ct;for(;o.value||a=0){let t=e[a++];h.addInner(t.from,t.to,t.value)||l.push(t)}else 1==o.rangeIndex&&o.chunkIndexthis.chunkEnd(o.chunkIndex)||ro.to||r=r&&t<=r+s.length&&!1===s.between(r,t-r,e-r,i))return}this.nextLayer.between(t,e,i)}}iter(t=0){return Ot.from([this]).goto(t)}get isEmpty(){return this.nextLayer==this}static iter(t,e=0){return Ot.from(t).goto(e)}static compare(t,e,i,n,r=-1){let s=t.filter((t=>t.maxPoint>0||!t.isEmpty&&t.maxPoint>=r)),o=e.filter((t=>t.maxPoint>0||!t.isEmpty&&t.maxPoint>=r)),a=Tt(s,o,i),l=new Lt(s,a,r),h=new Lt(o,a,r);i.iterGaps(((t,e,i)=>Bt(l,t,h,e,i,n))),i.empty&&0==i.length&&Bt(l,0,h,0,0,n)}static eq(t,e,i=0,n){null==n&&(n=999999999);let r=t.filter((t=>!t.isEmpty&&e.indexOf(t)<0)),s=e.filter((e=>!e.isEmpty&&t.indexOf(e)<0));if(r.length!=s.length)return!1;if(!r.length)return!0;let o=Tt(r,s),a=new Lt(r,o,0).goto(i),l=new Lt(s,o,0).goto(i);for(;;){if(a.to!=l.to||!Pt(a.active,l.active)||a.point&&(!l.point||!a.point.eq(l.point)))return!1;if(a.to>n)return!0;a.next(),l.next()}}static spans(t,e,i,n,r=-1){let s=new Lt(t,null,r).goto(e),o=e,a=s.openStart;for(;;){let t=Math.min(s.to,i);if(s.point){let i=s.activeForPoint(s.to),r=s.pointFromo&&(n.span(o,t,s.active,a),a=s.openEnd(t));if(s.to>i)return a+(s.point&&s.to>i?1:0);o=s.to,s.next()}}static of(t,e=!1){let i=new Ct;for(let n of t instanceof xt?[t]:e?function(t){if(t.length>1)for(let e=t[0],i=1;i0)return t.slice().sort(St);e=n}return t}(t):t)i.add(n.from,n.to,n.value);return i.finish()}}Mt.empty=new Mt([],[],null,-1),Mt.empty.nextLayer=Mt.empty;class Ct{finishChunk(t){this.chunks.push(new At(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,t&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(t,e,i){this.addInner(t,e,i)||(this.nextLayer||(this.nextLayer=new Ct)).add(t,e,i)}addInner(t,e,i){let n=t-this.lastTo||i.startSide-this.last.endSide;if(n<=0&&(t-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return!(n<0||(250==this.from.length&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=t),this.from.push(t-this.chunkStart),this.to.push(e-this.chunkStart),this.last=i,this.lastFrom=t,this.lastTo=e,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,e-t)),0))}addChunk(t,e){if((t-this.lastTo||e.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,e.maxPoint),this.chunks.push(e),this.chunkPos.push(t);let i=e.value.length-1;return this.last=e.value[i],this.lastFrom=e.from[i]+t,this.lastTo=e.to[i]+t,!0}finish(){return this.finishInner(Mt.empty)}finishInner(t){if(this.from.length&&this.finishChunk(!1),0==this.chunks.length)return t;let e=Mt.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(t):t,this.setMaxPoint);return this.from=null,e}}function Tt(t,e,i){let n=new Map;for(let e of t)for(let t=0;t=this.minPoint)break}}}setRangeIndex(t){if(t==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=i&&n.push(new Dt(s,e,i,r));return 1==n.length?n[0]:new Ot(n)}get startSide(){return this.value?this.value.startSide:0}goto(t,e=-1e9){for(let i of this.heap)i.goto(t,e);for(let t=this.heap.length>>1;t>=0;t--)Et(this.heap,t);return this.next(),this}forward(t,e){for(let i of this.heap)i.forward(t,e);for(let t=this.heap.length>>1;t>=0;t--)Et(this.heap,t);(this.to-t||this.value.endSide-e)<0&&this.next()}next(){if(0==this.heap.length)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let t=this.heap[0];this.from=t.from,this.to=t.to,this.value=t.value,this.rank=t.rank,t.value&&t.next(),Et(this.heap,0)}}}function Et(t,e){for(let i=t[e];;){let n=1+(e<<1);if(n>=t.length)break;let r=t[n];if(n+1=0&&(r=t[n+1],n++),i.compare(r)<0)break;t[n]=i,t[e]=r,e=n}}class Lt{constructor(t,e,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=Ot.from(t,e,i)}goto(t,e=-1e9){return this.cursor.goto(t,e),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=t,this.endSide=e,this.openStart=-1,this.next(),this}forward(t,e){for(;this.minActive>-1&&(this.activeTo[this.minActive]-t||this.active[this.minActive].endSide-e)<0;)this.removeActive(this.minActive);this.cursor.forward(t,e)}removeActive(t){Nt(this.active,t),Nt(this.activeTo,t),Nt(this.activeRank,t),this.minActive=It(this.active,this.activeTo)}addActive(t){let e=0,{value:i,to:n,rank:r}=this.cursor;for(;e-1&&(this.activeTo[n]-this.cursor.from||this.active[n].endSide-this.cursor.startSide)<0){if(this.activeTo[n]>t){this.to=this.activeTo[n],this.endSide=this.active[n].endSide;break}this.removeActive(n),i&&Nt(i,n)}else{if(!this.cursor.value){this.to=this.endSide=1e9;break}if(this.cursor.from>t){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}{let t=this.cursor.value;if(t.point){if(!(e&&this.cursor.to==this.to&&this.cursor.from=0&&i[e]=0&&!(this.activeRank[i]t||this.activeTo[i]==t&&this.active[i].endSide>=this.point.endSide)&&e.push(this.active[i]);return e.reverse()}openEnd(t){let e=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>t;i--)e++;return e}}function Bt(t,e,i,n,r,s){t.goto(e),i.goto(n);let o=n+r,a=n,l=n-e;for(;;){let e=t.to+l-i.to||t.endSide-i.endSide,n=e<0?t.to+l:i.to,r=Math.min(n,o);if(t.point||i.point?t.point&&i.point&&(t.point==i.point||t.point.eq(i.point))&&Pt(t.activeForPoint(t.to),i.activeForPoint(i.to))||s.comparePoint(a,r,t.point,i.point):r>a&&!Pt(t.active,i.active)&&s.compareRange(a,r,t.active,i.active),n>o)break;a=n,e<=0&&t.next(),e>=0&&i.next()}}function Pt(t,e){if(t.length!=e.length)return!1;for(let i=0;i=e;i--)t[i+1]=t[i];t[e]=i}function It(t,e){let i=-1,n=1e9;for(let r=0;rt.map((t=>e.replace(/&/,t))))).reduce(((t,e)=>t.concat(e))),o,s);else if(o&&"object"==typeof o){if(!l)throw new RangeError("The value of a property ("+i+") should be a primitive value.");r(n(i),o,a,h)}else null!=o&&a.push(i.replace(/_.*/,"").replace(/[A-Z]/g,(t=>"-"+t.toLowerCase()))+": "+o+";")}(a.length||h)&&s.push((!i||l||o?t:t.map(i)).join(", ")+" {"+a.join(" ")+"}")}for(let e in t)r(n(e),t[e],this.rules)}getRules(){return this.rules.join("\n")}static newName(){let t=Vt[Ht]||1;return Vt[Ht]=t+1,"ͼ"+t.toString(36)}static mount(t,e,i){let n=t[Wt],r=i&&i.nonce;n?r&&n.setNonce(r):n=new jt(t,r),n.mount(Array.isArray(e)?e:[e])}}let _t=new Map;class jt{constructor(t,e){let i=t.ownerDocument||t,n=i.defaultView;if(!t.head&&t.adoptedStyleSheets&&n.CSSStyleSheet){let e=_t.get(i);if(e)return t.adoptedStyleSheets=[e.sheet,...t.adoptedStyleSheets],t[Wt]=e;this.sheet=new n.CSSStyleSheet,t.adoptedStyleSheets=[this.sheet,...t.adoptedStyleSheets],_t.set(i,this)}else{this.styleTag=i.createElement("style"),e&&this.styleTag.setAttribute("nonce",e);let n=t.head||t;n.insertBefore(this.styleTag,n.firstChild)}this.modules=[],t[Wt]=this}mount(t){let e=this.sheet,i=0,n=0;for(let r=0;r-1&&(this.modules.splice(o,1),n--,o=-1),-1==o){if(this.modules.splice(n++,0,s),e)for(let t=0;t",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},Kt="undefined"!=typeof navigator&&/Mac/.test(navigator.platform),Gt="undefined"!=typeof navigator&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),Ut=0;Ut<10;Ut++)qt[48+Ut]=qt[96+Ut]=String(Ut);for(Ut=1;Ut<=24;Ut++)qt[Ut+111]="F"+Ut;for(Ut=65;Ut<=90;Ut++)qt[Ut]=String.fromCharCode(Ut+32),$t[Ut]=String.fromCharCode(Ut);for(var Jt in qt)$t.hasOwnProperty(Jt)||($t[Jt]=qt[Jt]);function Yt(t){let e;return e=11==t.nodeType?t.getSelection?t:t.ownerDocument:t,e.getSelection()}function Xt(t,e){return!!e&&(t==e||t.contains(1!=e.nodeType?e.parentNode:e))}function Qt(t,e){if(!e.anchorNode)return!1;try{return Xt(t,e.anchorNode)}catch(t){return!1}}function Zt(t){return 3==t.nodeType?ce(t,0,t.nodeValue.length).getClientRects():1==t.nodeType?t.getClientRects():[]}function te(t,e,i,n){return!!i&&(ie(t,e,i,n,-1)||ie(t,e,i,n,1))}function ee(t){for(var e=0;;e++)if(!(t=t.previousSibling))return e}function ie(t,e,i,n,r){for(;;){if(t==i&&e==n)return!0;if(e==(r<0?0:ne(t))){if("DIV"==t.nodeName)return!1;let i=t.parentNode;if(!i||1!=i.nodeType)return!1;e=ee(t)+(r<0?0:1),t=i}else{if(1!=t.nodeType)return!1;if(1==(t=t.childNodes[e+(r<0?-1:0)]).nodeType&&"false"==t.contentEditable)return!1;e=r<0?ne(t):0}}}function ne(t){return 3==t.nodeType?t.nodeValue.length:t.childNodes.length}function re(t,e){let i=e?t.left:t.right;return{left:i,right:i,top:t.top,bottom:t.bottom}}function se(t){return{left:0,right:t.innerWidth,top:0,bottom:t.innerHeight}}class oe{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(t){return this.anchorNode==t.anchorNode&&this.anchorOffset==t.anchorOffset&&this.focusNode==t.focusNode&&this.focusOffset==t.focusOffset}setRange(t){let{anchorNode:e,focusNode:i}=t;this.set(e,Math.min(t.anchorOffset,e?ne(e):0),i,Math.min(t.focusOffset,i?ne(i):0))}set(t,e,i,n){this.anchorNode=t,this.anchorOffset=e,this.focusNode=i,this.focusOffset=n}}let ae,le=null;function he(t){if(t.setActive)return t.setActive();if(le)return t.focus(le);let e=[];for(let i=t;i&&(e.push(i,i.scrollTop,i.scrollLeft),i!=i.ownerDocument);i=i.parentNode);if(t.focus(null==le?{get preventScroll(){return le={preventScroll:!0},!0}}:void 0),!le){le=!1;for(let t=0;tMath.max(1,t.scrollHeight-t.clientHeight-4)}class pe{constructor(t,e,i=!0){this.node=t,this.offset=e,this.precise=i}static before(t,e){return new pe(t.parentNode,ee(t),e)}static after(t,e){return new pe(t.parentNode,ee(t)+1,e)}}const ge=[];class me{constructor(){this.parent=null,this.dom=null,this.flags=2}get overrideDOMText(){return null}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(t){let e=this.posAtStart;for(let i of this.children){if(i==t)return e;e+=i.length+i.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(t){return this.posBefore(t)+t.length}sync(t,e){if(2&this.flags){let i,n=this.dom,r=null;for(let s of this.children){if(7&s.flags){if(!s.dom&&(i=r?r.nextSibling:n.firstChild)){let t=me.get(i);(!t||!t.parent&&t.canReuseDOM(s))&&s.reuseDOM(i)}s.sync(t,e),s.flags&=-8}if(i=r?r.nextSibling:n.firstChild,e&&!e.written&&e.node==n&&i!=s.dom&&(e.written=!0),s.dom.parentNode==n)for(;i&&i!=s.dom;)i=we(i);else n.insertBefore(s.dom,i);r=s.dom}for(i=r?r.nextSibling:n.firstChild,i&&e&&e.node==n&&(e.written=!0);i;)i=we(i)}else if(1&this.flags)for(let i of this.children)7&i.flags&&(i.sync(t,e),i.flags&=-8)}reuseDOM(t){}localPosFromDOM(t,e){let i;if(t==this.dom)i=this.dom.childNodes[e];else{let n=0==ne(t)?0:0==e?-1:1;for(;;){let e=t.parentNode;if(e==this.dom)break;0==n&&e.firstChild!=e.lastChild&&(n=t==e.firstChild?-1:1),t=e}i=n<0?t:t.nextSibling}if(i==this.dom.firstChild)return 0;for(;i&&!me.get(i);)i=i.nextSibling;if(!i)return this.length;for(let t=0,e=0;;t++){let n=this.children[t];if(n.dom==i)return e;e+=n.length+n.breakAfter}}domBoundsAround(t,e,i=0){let n=-1,r=-1,s=-1,o=-1;for(let a=0,l=i,h=i;ae)return i.domBoundsAround(t,e,l);if(c>=t&&-1==n&&(n=a,r=l),l>e&&i.dom.parentNode==this.dom){s=a,o=h;break}h=c,l=c+i.breakAfter}return{from:r,to:o<0?i+this.length:o,startDOM:(n?this.children[n-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:s=0?this.children[s].dom:null}}markDirty(t=!1){this.flags|=2,this.markParentsDirty(t)}markParentsDirty(t){for(let e=this.parent;e;e=e.parent){if(t&&(e.flags|=2),1&e.flags)return;e.flags|=1,t=!1}}setParent(t){this.parent!=t&&(this.parent=t,7&this.flags&&this.markParentsDirty(!0))}setDOM(t){this.dom!=t&&(this.dom&&(this.dom.cmView=null),this.dom=t,t.cmView=this)}get rootView(){for(let t=this;;){let e=t.parent;if(!e)return t;t=e}}replaceChildren(t,e,i=ge){this.markDirty();for(let i=t;ithis.pos||t==this.pos&&(e>0||0==this.i||this.children[this.i-1].breakAfter))return this.off=t-this.pos,this;let i=this.children[--this.i];this.pos-=i.length+i.breakAfter}}}function ye(t,e,i,n,r,s,o,a,l){let{children:h}=t,c=h.length?h[e]:null,u=s.length?s[s.length-1]:null,f=u?u.breakAfter:o;if(!(e==n&&c&&!o&&!f&&s.length<2&&c.merge(i,r,s.length?u:null,0==i,a,l))){if(n0&&(!o&&s.length&&c.merge(i,c.length,s[0],!1,a,0)?c.breakAfter=s.shift().breakAfter:(i2);var Be={mac:Le||/Mac/.test(be.platform),windows:/Win/.test(be.platform),linux:/Linux|X11/.test(be.platform),ie:Ce,ie_version:Ae?xe.documentMode||6:Me?+Me[1]:Se?+Se[1]:0,gecko:Te,gecko_version:Te?+(/Firefox\/(\d+)/.exec(be.userAgent)||[0,0])[1]:0,chrome:!!De,chrome_version:De?+De[1]:0,ios:Le,android:/Android\b/.test(be.userAgent),webkit:Oe,safari:Ee,webkit_version:Oe?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:null!=xe.documentElement.style.tabSize?"tab-size":"-moz-tab-size"};class Pe extends me{constructor(t){super(),this.text=t}get length(){return this.text.length}createDOM(t){this.setDOM(t||document.createTextNode(this.text))}sync(t,e){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(e&&e.node==this.dom&&(e.written=!0),this.dom.nodeValue=this.text)}reuseDOM(t){3==t.nodeType&&this.createDOM(t)}merge(t,e,i){return!(8&this.flags||i&&(!(i instanceof Pe)||this.length-(e-t)+i.length>256||8&i.flags)||(this.text=this.text.slice(0,t)+(i?i.text:"")+this.text.slice(e),this.markDirty(),0))}split(t){let e=new Pe(this.text.slice(t));return this.text=this.text.slice(0,t),this.markDirty(),e.flags|=8&this.flags,e}localPosFromDOM(t,e){return t==this.dom?e:e?this.text.length:0}domAtPos(t){return new pe(this.dom,t)}domBoundsAround(t,e,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(t,e){return function(t,e,i){let n=t.nodeValue.length;e>n&&(e=n);let r=e,s=e,o=0;0==e&&i<0||e==n&&i>=0?Be.chrome||Be.gecko||(e?(r--,o=1):s=0)?0:a.length-1];return Be.safari&&!o&&0==l.width&&(l=Array.prototype.find.call(a,(t=>t.width))||l),o?re(l,o<0):l||null}(this.dom,t,e)}}class Ne extends me{constructor(t,e=[],i=0){super(),this.mark=t,this.children=e,this.length=i;for(let t of e)t.setParent(this)}setAttrs(t){if(fe(t),this.mark.class&&(t.className=this.mark.class),this.mark.attrs)for(let e in this.mark.attrs)t.setAttribute(e,this.mark.attrs[e]);return t}canReuseDOM(t){return super.canReuseDOM(t)&&!(8&(this.flags|t.flags))}reuseDOM(t){t.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(t),this.flags|=6)}sync(t,e){this.dom?4&this.flags&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(t,e)}merge(t,e,i,n,r,s){return!(i&&(!(i instanceof Ne&&i.mark.eq(this.mark))||t&&r<=0||et&&e.push(i=t&&(n=r),i=o,r++}let s=this.length-t;return this.length=t,n>-1&&(this.children.length=n,this.markDirty()),new Ne(this.mark,e,s)}domAtPos(t){return ze(this,t)}coordsAt(t,e){return We(this,t,e)}}class Re extends me{static create(t,e,i){return new Re(t,e,i)}constructor(t,e,i){super(),this.widget=t,this.length=e,this.side=i,this.prevWidget=null}split(t){let e=Re.create(this.widget,this.length-t,this.side);return this.length-=t,e}sync(t){this.dom&&this.widget.updateDOM(this.dom,t)||(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(t)),this.dom.contentEditable="false")}getSide(){return this.side}merge(t,e,i,n,r,s){return!(i&&(!(i instanceof Re&&this.widget.compare(i.widget))||t>0&&r<=0||e0)?pe.before(this.dom):pe.after(this.dom,t==this.length)}domBoundsAround(){return null}coordsAt(t,e){let i=this.widget.coordsAt(this.dom,t,e);if(i)return i;let n=this.dom.getClientRects(),r=null;if(!n.length)return null;let s=this.side?this.side<0:t>0;for(let e=s?n.length-1:0;r=n[e],!(t>0?0==e:e==n.length-1||r.top0?pe.before(this.dom):pe.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(t){return this.dom.getBoundingClientRect()}get overrideDOMText(){return t.empty}get isHidden(){return!0}}function ze(t,e){let i=t.dom,{children:n}=t,r=0;for(let t=0;rt&&e0;t--){let e=n[t-1];if(e.dom.parentNode==i)return e.domAtPos(e.length)}for(let t=r;t0&&e instanceof Ne&&r.length&&(n=r[r.length-1])instanceof Ne&&n.mark.eq(e.mark)?He(n,e.children[0],i-1):(r.push(e),e.setParent(t)),t.length+=e.length}function We(t,e,i){let n=null,r=-1,s=null,o=-1;!function t(e,a){for(let l=0,h=0;l=a&&(c.children.length?t(c,a-h):(!s||s.isHidden&&i>0)&&(u>a||h==u&&c.getSide()>0)?(s=c,o=a-h):(h-1?1:0)!=r.length-(i&&r.indexOf(i)>-1?1:0))return!1;for(let s of n)if(s!=i&&(-1==r.indexOf(s)||t[s]!==e[s]))return!1;return!0}function je(t,e,i){let n=!1;if(e)for(let r in e)i&&r in i||(n=!0,"style"==r?t.style.cssText="":t.removeAttribute(r));if(i)for(let r in i)e&&e[r]==i[r]||(n=!0,"style"==r?t.style.cssText=i[r]:t.setAttribute(r,i[r]));return n}function qe(t){let e=Object.create(null);for(let i=0;i0?3e8:-4e8:e>0?1e8:-1e8,new Ye(t,e,e,i,t.widget||null,!1)}static replace(t){let e,i,n=!!t.block;if(t.isBlockGap)e=-5e8,i=4e8;else{let{start:r,end:s}=Xe(t,n);e=(r?n?-3e8:-1:5e8)-1,i=1+(s?n?2e8:1:-6e8)}return new Ye(t,e,i,n,t.widget||null,!0)}static line(t){return new Je(t)}static set(t,e=!1){return Mt.of(t,e)}hasHeight(){return!!this.widget&&this.widget.estimatedHeight>-1}}Ge.none=Mt.empty;class Ue extends Ge{constructor(t){let{start:e,end:i}=Xe(t);super(e?-1:5e8,i?1:-6e8,null,t),this.tagName=t.tagName||"span",this.class=t.class||"",this.attrs=t.attributes||null}eq(t){var e,i;return this==t||t instanceof Ue&&this.tagName==t.tagName&&(this.class||(null===(e=this.attrs)||void 0===e?void 0:e.class))==(t.class||(null===(i=t.attrs)||void 0===i?void 0:i.class))&&_e(this.attrs,t.attrs,"class")}range(t,e=t){if(t>=e)throw new RangeError("Mark decorations may not be empty");return super.range(t,e)}}Ue.prototype.point=!1;class Je extends Ge{constructor(t){super(-2e8,-2e8,null,t)}eq(t){return t instanceof Je&&this.spec.class==t.spec.class&&_e(this.spec.attributes,t.spec.attributes)}range(t,e=t){if(e!=t)throw new RangeError("Line decoration ranges must be zero-length");return super.range(t,e)}}Je.prototype.mapMode=x.TrackBefore,Je.prototype.point=!0;class Ye extends Ge{constructor(t,e,i,n,r,s){super(e,i,r,t),this.block=n,this.isReplace=s,this.mapMode=n?e<=0?x.TrackBefore:x.TrackAfter:x.TrackDel}get type(){return this.startSide=5||this.widget.lineBreaks>0)}eq(t){return t instanceof Ye&&((e=this.widget)==(i=t.widget)||!!(e&&i&&e.compare(i)))&&this.block==t.block&&this.startSide==t.startSide&&this.endSide==t.endSide;var e,i}range(t,e=t){if(this.isReplace&&(t>e||t==e&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&e!=t)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(t,e)}}function Xe(t,e=!1){let{inclusiveStart:i,inclusiveEnd:n}=t;return null==i&&(i=t.inclusive),null==n&&(n=t.inclusive),{start:null!=i?i:e,end:null!=n?n:e}}function Qe(t,e,i,n=0){let r=i.length-1;r>=0&&i[r]+n>=t?i[r]=Math.max(i[r],e):i.push(t,e)}Ye.prototype.point=!0;class Ze extends me{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(t,e,i,n,r,s){if(i){if(!(i instanceof Ze))return!1;this.dom||i.transferDOM(this)}return n&&this.setDeco(i?i.attrs:null),ke(this,t,e,i?i.children:[],r,s),!0}split(t){let e=new Ze;if(e.breakAfter=this.breakAfter,0==this.length)return e;let{i,off:n}=this.childPos(t);n&&(e.append(this.children[i].split(n),0),this.children[i].merge(n,this.children[i].length,null,!1,0,0),i++);for(let t=i;t0&&0==this.children[i-1].length;)this.children[--i].destroy();return this.children.length=i,this.markDirty(),this.length=t,e}transferDOM(t){this.dom&&(this.markDirty(),t.setDOM(this.dom),t.prevAttrs=void 0===this.prevAttrs?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(t){_e(this.attrs,t)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=t)}append(t,e){He(this,t,e)}addLineDeco(t){let e=t.spec.attributes,i=t.spec.class;e&&(this.attrs=Ve(e,this.attrs||{})),i&&(this.attrs=Ve({class:i},this.attrs||{}))}domAtPos(t){return ze(this,t)}reuseDOM(t){"DIV"==t.nodeName&&(this.setDOM(t),this.flags|=6)}sync(t,e){var i;this.dom?4&this.flags&&(fe(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),void 0!==this.prevAttrs&&(je(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(t,e);let n=this.dom.lastChild;for(;n&&me.get(n)instanceof Ne;)n=n.lastChild;if(!(n&&this.length&&("BR"==n.nodeName||0!=(null===(i=me.get(n))||void 0===i?void 0:i.isEditable)||Be.ios&&this.children.some((t=>t instanceof Pe))))){let t=document.createElement("BR");t.cmIgnore=!0,this.dom.appendChild(t)}}measureTextSize(){if(0==this.children.length||this.length>20)return null;let t,e=0;for(let i of this.children){if(!(i instanceof Pe)||/[^ -~]/.test(i.text))return null;let n=Zt(i.dom);if(1!=n.length)return null;e+=n[0].width,t=n[0].height}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length,textHeight:t}:null}coordsAt(t,e){let i=We(this,t,e);if(!this.children.length&&i&&this.parent){let{heightOracle:t}=this.parent.view.viewState,e=i.bottom-i.top;if(Math.abs(e-t.lineHeight)<2&&t.textHeight=e){if(r instanceof Ze)return r;if(s>e)break}n=s+r.breakAfter}return null}}class ti extends me{constructor(t,e,i){super(),this.widget=t,this.length=e,this.type=i,this.breakAfter=0,this.prevWidget=null}merge(t,e,i,n,r,s){return!(i&&(!(i instanceof ti&&this.widget.compare(i.widget))||t>0&&r<=0||e0;){if(this.textOff==this.text.length){let{value:e,lineBreak:i,done:n}=this.cursor.next(this.skip);if(this.skip=0,n)throw new Error("Ran out of text content when drawing inline views");if(i){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,t--;continue}this.text=e,this.textOff=0}let n=Math.min(this.text.length-this.textOff,t,512);this.flushBuffer(e.slice(e.length-i)),this.getLine().append(ii(new Pe(this.text.slice(this.textOff,this.textOff+n)),e),i),this.atCursorPos=!0,this.textOff+=n,t-=n,i=0}}span(t,e,i,n){this.buildText(e-t,i,n),this.pos=e,this.openStart<0&&(this.openStart=n)}point(t,e,i,n,r,s){if(this.disallowBlockEffectsFor[s]&&i instanceof Ye){if(i.block)throw new RangeError("Block decorations may not be specified via plugins");if(e>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let o=e-t;if(i instanceof Ye)if(i.block){let{type:t}=i;t!=Ke.WidgetAfter||this.posCovered()||this.getLine(),this.addBlockWidget(new ti(i.widget||new ni("div"),o,t))}else{let s=Re.create(i.widget||new ni("span"),o,o?0:i.startSide),a=this.atCursorPos&&!s.isEditable&&r<=n.length&&(t0),l=!s.isEditable&&(tn.length||i.startSide<=0),h=this.getLine();2!=this.pendingBuffer||a||s.isEditable||(this.pendingBuffer=0),this.flushBuffer(n),a&&(h.append(ii(new Ie(1),n),r),r=n.length+Math.max(0,r-n.length)),h.append(ii(s,n),r),this.atCursorPos=l,this.pendingBuffer=l?tn.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=n.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(i);o&&(this.textOff+o<=this.text.length?this.textOff+=o:(this.skip+=o-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=e),this.openStart<0&&(this.openStart=r)}static build(t,e,i,n,r){let s=new ei(t,e,i,r);return s.openEnd=Mt.spans(n,e,i,s),s.openStart<0&&(s.openStart=s.openEnd),s.finish(s.openEnd),s}}function ii(t,e){for(let i of e)t=new Ne(i,[t],t.length);return t}class ni extends $e{constructor(t){super(),this.tag=t}eq(t){return t.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(t){return t.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}const ri=R.define(),si=R.define(),oi=R.define(),ai=R.define(),li=R.define(),hi=R.define(),ci=R.define(),ui=R.define({combine:t=>t.some((t=>t))}),fi=R.define({combine:t=>t.some((t=>t))});class di{constructor(t,e="nearest",i="nearest",n=5,r=5){this.range=t,this.y=e,this.x=i,this.yMargin=n,this.xMargin=r}map(t){return t.empty?this:new di(this.range.map(t),this.y,this.x,this.yMargin,this.xMargin)}}const pi=lt.define({map:(t,e)=>t.map(e)});function gi(t,e,i){let n=t.facet(ai);n.length?n[0](e):window.onerror?window.onerror(String(e),i,void 0,void 0,e):i?console.error(i+":",e):console.error(e)}const mi=R.define({combine:t=>!t.length||t[0]});let wi=0;const vi=R.define();class yi{constructor(t,e,i,n){this.id=t,this.create=e,this.domEventHandlers=i,this.extension=n(this)}static define(t,e){const{eventHandlers:i,provide:n,decorations:r}=e||{};return new yi(wi++,t,i,(t=>{let e=[vi.of(t)];return r&&e.push(Si.of((e=>{let i=e.plugin(t);return i?r(i):Ge.none}))),n&&e.push(n(t)),e}))}static fromClass(t,e){return yi.define((e=>new t(e)),e)}}class ki{constructor(t){this.spec=t,this.mustUpdate=null,this.value=null}update(t){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(e){if(gi(t.state,e,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(t){}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(t)}catch(e){gi(t.state,e,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(t){var e;if(null===(e=this.value)||void 0===e?void 0:e.destroy)try{this.value.destroy()}catch(e){gi(t.state,e,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const bi=R.define(),xi=R.define(),Si=R.define(),Ai=R.define(),Mi=R.define();function Ci(t,e,i){let n=t.state.facet(Mi);if(!n.length)return n;let r=n.map((e=>e instanceof Function?e(t):e)),s=[];return Mt.spans(r,e,i,{point(){},span(t,e,i,n){let r=s;for(let s=i.length-1;s>=0;s--,n--){let o,a=i[s].spec.bidiIsolate;if(null!=a)if(n>0&&r.length&&(o=r[r.length-1]).to==t&&o.direction==a)o.to=e,r=o.inner;else{let i={from:t,to:e,direction:a,inner:[]};r.push(i),r=i.inner}}}}),s}const Ti=R.define();function Di(t){let e=0,i=0,n=0,r=0;for(let s of t.state.facet(Ti)){let o=s(t);o&&(null!=o.left&&(e=Math.max(e,o.left)),null!=o.right&&(i=Math.max(i,o.right)),null!=o.top&&(n=Math.max(n,o.top)),null!=o.bottom&&(r=Math.max(r,o.bottom)))}return{left:e,right:i,top:n,bottom:r}}const Oi=R.define();class Ei{constructor(t,e,i,n){this.fromA=t,this.toA=e,this.fromB=i,this.toB=n}join(t){return new Ei(Math.min(this.fromA,t.fromA),Math.max(this.toA,t.toA),Math.min(this.fromB,t.fromB),Math.max(this.toB,t.toB))}addToSet(t){let e=t.length,i=this;for(;e>0;e--){let n=t[e-1];if(!(n.fromA>i.toA)){if(n.toAh)break;r+=2}if(!a)return i;new Ei(a.fromA,a.toA,a.fromB,a.toB).addToSet(i),s=a.toA,o=a.toB}}}class Li{constructor(t,e,i){this.view=t,this.state=e,this.transactions=i,this.flags=0,this.startState=t.state,this.changes=A.empty(this.startState.doc.length);for(let t of i)this.changes=this.changes.compose(t.changes);let n=[];this.changes.iterChangedRanges(((t,e,i,r)=>n.push(new Ei(t,e,i,r)))),this.changedRanges=n}static create(t,e,i){return new Li(t,e,i)}get viewportChanged(){return(4&this.flags)>0}get heightChanged(){return(2&this.flags)>0}get geometryChanged(){return this.docChanged||(10&this.flags)>0}get focusChanged(){return(1&this.flags)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some((t=>t.selection))}get empty(){return 0==this.flags&&0==this.transactions.length}}var Bi=function(t){return t[t.LTR=0]="LTR",t[t.RTL=1]="RTL",t}(Bi||(Bi={}));const Pi=Bi.LTR,Ni=Bi.RTL;function Ri(t){let e=[];for(let i=0;i=e){if(o.level==i)return s;(r<0||(0!=n?n<0?o.frome:t[r].level>o.level))&&(r=s)}}if(r<0)throw new RangeError("Index out of range");return r}}function _i(t,e){if(t.length!=e.length)return!1;for(let i=0;il&&o.push(new Fi(l,p.from,f)),$i(t,p.direction==Pi!=!(f%2)?n+1:n,r,p.inner,p.from,p.to,o),l=p.to),d=p.to}else{if(d==i||(e?ji[d]!=a:ji[d]==a))break;d++}u?qi(t,l,d,n+1,r,u,o):le;){let i=!0,c=!1;if(!h||l>s[h-1].to){let t=ji[l-1];t!=a&&(i=!1,c=16==t)}let u=i||1!=a?null:[],f=i?n:n+1,d=l;t:for(;;)if(h&&d==s[h-1].to){if(c)break t;let p=s[--h];if(!i)for(let t=p.from,i=h;;){if(t==e)break t;if(!i||s[i-1].to!=t){if(ji[t-1]==a)break t;break}t=s[--i].from}u?u.push(p):(p.to=0;t-=3)if(Wi[t+1]==-i){let e=Wi[t+2],i=2&e?r:4&e?1&e?s:r:0;i&&(ji[o]=ji[Wi[t]]=i),a=t;break}}else{if(189==Wi.length)break;Wi[a++]=o,Wi[a++]=e,Wi[a++]=l}else if(2==(n=ji[o])||1==n){let t=n==r;l=t?0:1;for(let e=a-3;e>=0;e-=3){let i=Wi[e+2];if(2&i)break;if(t)Wi[e+2]|=2;else{if(4&i)break;Wi[e+2]|=4}}}}}(t,r,s,n,a),function(t,e,i,n){for(let r=0,s=n;r<=i.length;r++){let o=r?i[r-1].to:t,a=rl;)e==s&&(e=i[--n].from,s=n?i[n-1].to:t),ji[--e]=c;l=o}else s=o,l++}}}(r,s,n,a),qi(t,r,s,e,i,n,o)}function Ki(t){return[new Fi(0,t,0)]}let Gi="";function Ui(t,e,i,n,r){var s;let o=n.head-t.from,a=-1;if(0==o){if(!r||!t.length)return null;e[0].level!=i&&(o=e[0].side(!1,i),a=0)}else if(o==t.length){if(r)return null;let t=e[e.length-1];t.level!=i&&(o=t.side(!0,i),a=e.length-1)}a<0&&(a=Fi.find(e,o,null!==(s=n.bidiLevel)&&void 0!==s?s:-1,n.assoc));let l=e[a];o==l.side(r,i)&&(l=e[a+=r?1:-1],o=l.side(!r,i));let h=r==(l.dir==i),c=d(t.text,o,h);if(Gi=t.text.slice(Math.min(o,c),Math.max(o,c)),c!=l.side(r,i))return B.cursor(c+t.from,h?-1:1,l.level);let u=a==(r?e.length-1:0)?null:e[a+(r?1:-1)];return u||l.level==i?u&&u.level0&&i.length&&(i.every((({fromA:t,toA:e})=>ethis.minWidthTo))?(this.minWidthFrom=t.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=t.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0);let n=-1;this.view.inputState.composing>=0&&((null===(e=this.domChanged)||void 0===e?void 0:e.newSel)?n=this.domChanged.newSel.head:function(t,e){let i=!1;return e&&t.iterChangedRanges(((t,n)=>{te.from&&(i=!0)})),i}(t.changes,this.hasComposition)||t.selectionSet||(n=t.state.selection.main.head));let r=n>-1?function(t,e,i){let n=Xi(t,i);if(!n)return null;let{node:r,from:s,to:o}=n,a=r.nodeValue;if(/[\n\r]/.test(a))return null;if(t.state.doc.sliceString(n.from,n.to)!=a)return null;let l=e.invertedDesc,h=new Ei(l.mapPos(s),l.mapPos(o),s,o),c=[];for(let e=r.parentNode;;e=e.parentNode){let i=me.get(e);if(i instanceof Ne)c.push({node:e,deco:i.mark});else{if(i instanceof Ze||"DIV"==e.nodeName&&e.parentNode==t.contentDOM)return{range:h,text:r,marks:c,line:e};if(e==t.contentDOM)return null;c.push({node:e,deco:new Ue({inclusive:!0,attributes:qe(e),tagName:e.tagName.toLowerCase()})})}}}(this.view,t.changes,n):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:e,to:n}=this.hasComposition;i=new Ei(e,n,t.changes.mapPos(e,-1),t.changes.mapPos(n,1)).addToSet(i.slice())}this.hasComposition=r?{from:r.range.fromB,to:r.range.toB}:null,(Be.ie||Be.chrome)&&!r&&t&&t.state.doc.lines!=t.startState.doc.lines&&(this.forceSelection=!0);let s=function(t,e,i){let n=new Zi;return Mt.compare(t,e,i,n),n.changes}(this.decorations,this.updateDeco(),t.changes);return i=Ei.extendWithRanges(i,s),!!(7&this.flags||0!=i.length)&&(this.updateInner(i,t.startState.doc.length,r),t.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(t,e,i){this.view.viewState.mustMeasureContent=!0,this.updateChildren(t,e,i);let{observer:n}=this.view;n.ignore((()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let t=Be.chrome||Be.ios?{node:n.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,t),this.flags&=-8,t&&(t.written||n.selectionRange.focusNode!=t.node)&&(this.forceSelection=!0),this.dom.style.height=""})),this.markedForComposition.forEach((t=>t.flags&=-9));let r=[];if(this.view.viewport.from||this.view.viewport.to=0?n[t]:null;if(!e)break;let s,o,a,l,{fromA:h,toA:c,fromB:u,toB:f}=e;if(i&&i.range.fromBu){let t=ei.build(this.view.state.doc,u,i.range.fromB,this.decorations,this.dynamicDecorationMap),e=ei.build(this.view.state.doc,i.range.toB,f,this.decorations,this.dynamicDecorationMap);o=t.breakAtStart,a=t.openStart,l=e.openEnd;let n=this.compositionView(i);e.breakAtStart?n.breakAfter=1:e.content.length&&n.merge(n.length,n.length,e.content[0],!1,e.openStart,0)&&(n.breakAfter=e.content[0].breakAfter,e.content.shift()),t.content.length&&n.merge(0,0,t.content[t.content.length-1],!0,0,t.openEnd)&&t.content.pop(),s=t.content.concat(n).concat(e.content)}else({content:s,breakAtStart:o,openStart:a,openEnd:l}=ei.build(this.view.state.doc,u,f,this.decorations,this.dynamicDecorationMap));let{i:d,off:p}=r.findPos(c,1),{i:g,off:m}=r.findPos(h,-1);ye(this,g,m,d,p,s,o,a,l)}i&&this.fixCompositionDOM(i)}compositionView(t){let e=new Pe(t.text.nodeValue);e.flags|=8;for(let{deco:i}of t.marks)e=new Ne(i,[e],e.length);let i=new Ze;return i.append(e,0),i}fixCompositionDOM(t){let e=(t,e)=>{e.flags|=8|(e.children.some((t=>7&t.flags))?1:0),this.markedForComposition.add(e);let i=me.get(t);i&&i!=e&&(i.dom=null),e.setDOM(t)},i=this.childPos(t.range.fromB,1),n=this.children[i.i];e(t.line,n);for(let r=t.marks.length-1;r>=-1;r--)i=n.childPos(i.off,1),n=n.children[i.i],e(r>=0?t.marks[r].node:t.text,n)}updateSelection(t=!1,e=!1){!t&&this.view.observer.selectionRange.focusNode||this.view.observer.readSelectionRange();let i=this.view.root.activeElement,n=i==this.dom,r=!n&&Qt(this.dom,this.view.observer.selectionRange)&&!(i&&this.dom.contains(i));if(!(n||e||r))return;let s=this.forceSelection;this.forceSelection=!1;let o=this.view.state.selection.main,a=this.moveToLine(this.domAtPos(o.anchor)),l=o.empty?a:this.moveToLine(this.domAtPos(o.head));if(Be.gecko&&o.empty&&!this.hasComposition&&1==(h=a).node.nodeType&&h.node.firstChild&&(0==h.offset||"false"==h.node.childNodes[h.offset-1].contentEditable)&&(h.offset==h.node.childNodes.length||"false"==h.node.childNodes[h.offset].contentEditable)){let t=document.createTextNode("");this.view.observer.ignore((()=>a.node.insertBefore(t,a.node.childNodes[a.offset]||null))),a=l=new pe(t,0),s=!0}var h;let c=this.view.observer.selectionRange;!s&&c.focusNode&&te(a.node,a.offset,c.anchorNode,c.anchorOffset)&&te(l.node,l.offset,c.focusNode,c.focusOffset)||(this.view.observer.ignore((()=>{Be.android&&Be.chrome&&this.dom.contains(c.focusNode)&&function(t,e){for(let i=t;i&&i!=e;i=i.assignedSlot||i.parentNode)if(1==i.nodeType&&"false"==i.contentEditable)return!0;return!1}(c.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let t=Yt(this.view.root);if(t)if(o.empty){if(Be.gecko){let t=(e=a.node,n=a.offset,1!=e.nodeType?0:(n&&"false"==e.childNodes[n-1].contentEditable?1:0)|(no.head&&([a,l]=[l,a]),e.setEnd(l.node,l.offset),e.setStart(a.node,a.offset),t.removeAllRanges(),t.addRange(e)}var e,n;r&&this.view.root.activeElement==this.dom&&(this.dom.blur(),i&&i.focus())})),this.view.observer.setSelectionRange(a,l)),this.impreciseAnchor=a.precise?null:new pe(c.anchorNode,c.anchorOffset),this.impreciseHead=l.precise?null:new pe(c.focusNode,c.focusOffset)}enforceCursorAssoc(){if(this.hasComposition)return;let{view:t}=this,e=t.state.selection.main,i=Yt(t.root),{anchorNode:n,anchorOffset:r}=t.observer.selectionRange;if(!(i&&e.empty&&e.assoc&&i.modify))return;let s=Ze.find(this,e.head);if(!s)return;let o=s.posAtStart;if(e.head==o||e.head==o+s.length)return;let a=this.coordsAt(e.head,-1),l=this.coordsAt(e.head,1);if(!a||!l||a.bottom>l.top)return;let h=this.domAtPos(e.head+e.assoc);i.collapse(h.node,h.offset),i.modify("move",e.assoc<0?"forward":"backward","lineboundary"),t.observer.readSelectionRange();let c=t.observer.selectionRange;t.docView.posFromDOM(c.anchorNode,c.anchorOffset)!=e.from&&i.collapse(n,r)}moveToLine(t){let e,i=this.dom;if(t.node!=i)return t;for(let n=t.offset;!e&&n=0;n--){let t=me.get(i.childNodes[n]);t instanceof Ze&&(e=t.domAtPos(t.length))}return e?new pe(e.node,e.offset,!0):t}nearest(t){for(let e=t;e;){let t=me.get(e);if(t&&t.rootView==this)return t;e=e.parentNode}return null}posFromDOM(t,e){let i=this.nearest(t);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(t,e)+i.posAtStart}domAtPos(t){let{i:e,off:i}=this.childCursor().findPos(t,-1);for(;es||t==s&&r.type!=Ke.WidgetBefore&&r.type!=Ke.WidgetAfter&&(!n||2==e||this.children[n-1].breakAfter||this.children[n-1].type==Ke.WidgetBefore&&e>-2))return r.coordsAt(t-s,e);i=s}}coordsForChar(t){let{i:e,off:i}=this.childPos(t,1),n=this.children[e];if(!(n instanceof Ze))return null;for(;n.children.length;){let{i:t,off:e}=n.childPos(i,1);for(;;t++){if(t==n.children.length)return null;if((n=n.children[t]).length)break}i=e}if(!(n instanceof Pe))return null;let r=d(n.text,i);if(r==i)return null;let s=ce(n.dom,i,r).getClientRects();return!s.length||s[0].top>=s[0].bottom?null:s[0]}measureVisibleLineHeights(t){let e=[],{from:i,to:n}=t,r=this.view.contentDOM.clientWidth,s=r>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,o=-1,a=this.view.textDirection==Bi.LTR;for(let t=0,l=0;ln)break;if(t>=i){let i=h.dom.getBoundingClientRect();if(e.push(i.height),s){let e=h.dom.lastChild,n=e?Zt(e):[];if(n.length){let e=n[n.length-1],s=a?e.right-i.left:i.right-e.left;s>o&&(o=s,this.minWidth=r,this.minWidthFrom=t,this.minWidthTo=c)}}}t=c+h.breakAfter}return e}textDirectionAt(t){let{i:e}=this.childPos(t,1);return"rtl"==getComputedStyle(this.children[e].dom).direction?Bi.RTL:Bi.LTR}measureTextSize(){for(let t of this.children)if(t instanceof Ze){let e=t.measureTextSize();if(e)return e}let t,e,i,n=document.createElement("div");return n.className="cm-line",n.style.width="99999px",n.style.position="absolute",n.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore((()=>{this.dom.appendChild(n);let r=Zt(n.firstChild)[0];t=n.getBoundingClientRect().height,e=r?r.width/27:7,i=r?r.height:t,n.remove()})),{lineHeight:t,charWidth:e,textHeight:i}}childCursor(t=this.length){let e=this.children.length;return e&&(t-=this.children[--e].length),new ve(this.children,t,e)}computeBlockGapDeco(){let t=[],e=this.view.viewState;for(let i=0,n=0;;n++){let r=n==e.viewports.length?null:e.viewports[n],s=r?r.from-1:this.length;if(s>i){let n=(e.lineBlockAt(s).bottom-e.lineBlockAt(i).top)/this.view.scaleY;t.push(Ge.replace({widget:new Yi(n),block:!0,inclusive:!0,isBlockGap:!0}).range(i,s))}if(!r)break;i=r.to+1}return Ge.set(t)}updateDeco(){let t=this.view.state.facet(Si).map(((t,e)=>(this.dynamicDecorationMap[e]="function"==typeof t)?t(this.view):t));for(let e=t.length;ei.anchor?-1:1);if(!n)return;!i.empty&&(e=this.coordsAt(i.anchor,i.anchor>i.head?-1:1))&&(n={left:Math.min(n.left,e.left),top:Math.min(n.top,e.top),right:Math.max(n.right,e.right),bottom:Math.max(n.bottom,e.bottom)});let r=Di(this.view),s={left:n.left-r.left,top:n.top-r.top,right:n.right+r.right,bottom:n.bottom+r.bottom};!function(t,e,i,n,r,s,o,a){let l=t.ownerDocument,h=l.defaultView||window;for(let c=t,u=!1;c&&!u;)if(1==c.nodeType){let t,f=c==l.body,d=1,p=1;if(f)t=se(h);else{if(/^(fixed|sticky)$/.test(getComputedStyle(c).position)&&(u=!0),c.scrollHeight<=c.clientHeight&&c.scrollWidth<=c.clientWidth){c=c.assignedSlot||c.parentNode;continue}let e=c.getBoundingClientRect();d=e.width/c.offsetWidth,p=e.height/c.offsetHeight,t={left:e.left,right:e.left+c.clientWidth*d,top:e.top,bottom:e.top+c.clientHeight*p}}let g=0,m=0;if("nearest"==r)e.top0&&e.bottom>t.bottom+m&&(m=e.bottom-t.bottom+m+o)):e.bottom>t.bottom&&(m=e.bottom-t.bottom+o,i<0&&e.top-m0&&e.right>t.right+g&&(g=e.right-t.right+g+s)):e.right>t.right&&(g=e.right-t.right+s,i<0&&e.left0))break;i=i.childNodes[n-1],n=ne(i)}if(i>=0)for(let n=t,r=e;;){if(3==n.nodeType)return{node:n,offset:r};if(!(1==n.nodeType&&r=0))break;n=n.childNodes[r],r=0}return null}let Zi=class{constructor(){this.changes=[]}compareRange(t,e){Qe(t,e,this.changes)}comparePoint(t,e){Qe(t,e,this.changes)}};function tn(t,e){return e.left>t?e.left-t:Math.max(0,t-e.right)}function en(t,e){return e.top>t?e.top-t:Math.max(0,t-e.bottom)}function nn(t,e){return t.tope.top+1}function rn(t,e){return et.bottom?{top:t.top,left:t.left,right:t.right,bottom:e}:t}function on(t,e,i){let n,r,s,o,a,l,h,c,u=!1;for(let f=t.firstChild;f;f=f.nextSibling){let t=Zt(f);for(let d=0;dm||o==m&&s>g){n=f,r=p,s=g,o=m;let a=m?i0?d0)}0==g?i>p.bottom&&(!h||h.bottomp.top)&&(l=f,c=p):h&&nn(h,p)?h=sn(h,p.bottom):c&&nn(c,p)&&(c=rn(c,p.top))}}if(h&&h.bottom>=i?(n=a,r=h):c&&c.top<=i&&(n=l,r=c),!n)return{node:t,offset:0};let f=Math.max(r.left,Math.min(r.right,e));return 3==n.nodeType?an(n,f,i):u&&"false"!=n.contentEditable?on(n,f,i):{node:t,offset:Array.prototype.indexOf.call(t.childNodes,n)+(e>=(r.left+r.right)/2?1:0)}}function an(t,e,i){let n=t.nodeValue.length,r=-1,s=1e9,o=0;for(let a=0;ai?h.top-i:i-h.bottom)-1;if(h.left-1<=e&&h.right+1>=e&&c=(h.left+h.right)/2,n=i;if((Be.chrome||Be.gecko)&&ce(t,a).getBoundingClientRect().left==h.right&&(n=!i),c<=0)return{node:t,offset:a+(n?1:0)};r=a+(n?1:0),s=c}}}return{node:t,offset:r>-1?r:o>0?t.nodeValue.length:0}}function ln(t,e,i,n=-1){var r,s;let o,a=t.contentDOM.getBoundingClientRect(),l=a.top+t.viewState.paddingTop,{docHeight:h}=t.viewState,{x:c,y:u}=e,f=u-l;if(f<0)return 0;if(f>h)return t.state.doc.length;for(let e=t.viewState.heightOracle.textHeight/2,r=!1;o=t.elementAtHeight(f),o.type!=Ke.Text;)for(;f=n>0?o.bottom+e:o.top-e,!(f>=0&&f<=h);){if(r)return i?null:0;r=!0,n=-n}u=l+f;let d=o.from;if(dt.viewport.to)return t.viewport.to==t.state.doc.length?t.state.doc.length:i?null:hn(t,a,o,c,u);let p=t.dom.ownerDocument,g=t.root.elementFromPoint?t.root:p,m=g.elementFromPoint(c,u);m&&!t.contentDOM.contains(m)&&(m=null),m||(c=Math.max(a.left+1,Math.min(a.right-1,c)),m=g.elementFromPoint(c,u),m&&!t.contentDOM.contains(m)&&(m=null));let w,v=-1;if(m&&0!=(null===(r=t.docView.nearest(m))||void 0===r?void 0:r.isEditable))if(p.caretPositionFromPoint){let t=p.caretPositionFromPoint(c,u);t&&({offsetNode:w,offset:v}=t)}else if(p.caretRangeFromPoint){let e=p.caretRangeFromPoint(c,u);e&&(({startContainer:w,startOffset:v}=e),(!t.contentDOM.contains(w)||Be.safari&&function(t,e,i){let n;if(3!=t.nodeType||e!=(n=t.nodeValue.length))return!1;for(let e=t.nextSibling;e;e=e.nextSibling)if(1!=e.nodeType||"BR"!=e.nodeName)return!1;return ce(t,n-1,n).getBoundingClientRect().left>i}(w,v,c)||Be.chrome&&function(t,e,i){if(0!=e)return!1;for(let e=t;;){let t=e.parentNode;if(!t||1!=t.nodeType||t.firstChild!=e)return!1;if(t.classList.contains("cm-line"))break;e=t}return i-(1==t.nodeType?t.getBoundingClientRect():ce(t,0,Math.max(t.nodeValue.length,1)).getBoundingClientRect()).left>5}(w,v,c))&&(w=void 0))}if(!w||!t.docView.dom.contains(w)){let e=Ze.find(t.docView,d);if(!e)return f>o.top+o.height/2?o.to:o.from;({node:w,offset:v}=on(e.dom,c,u))}let y=t.docView.nearest(w);if(!y)return null;if(y.isWidget&&1==(null===(s=y.dom)||void 0===s?void 0:s.nodeType)){let t=y.dom.getBoundingClientRect();return e.y1.5*t.defaultLineHeight){let e=t.viewState.heightOracle.textHeight;s+=Math.floor((r-i.top-.5*(t.defaultLineHeight-e))/e)*t.viewState.heightOracle.lineLength}let o=t.state.sliceDoc(i.from,i.to);return i.from+function(t,e,i,n){for(let n=0,r=0;;){if(r>=e)return n;if(n==t.length)break;r+=9==t.charCodeAt(n)?i-r%i:1,n=d(t,n)}return t.length}(o,s,t.state.tabSize)}function cn(t,e,i,n){let r=t.state.doc.lineAt(e.head),s=t.bidiSpans(r),o=t.textDirectionAt(r.from);for(let a=e,l=null;;){let e=Ui(r,s,o,a,i),h=Gi;if(!e){if(r.number==(i?t.state.doc.lines:1))return a;h="\n",r=t.state.doc.line(r.number+(i?1:-1)),s=t.bidiSpans(r),e=B.cursor(i?r.from:r.to)}if(l){if(!l(h))return a}else{if(!n)return e;l=n(h)}a=e}}function un(t,e,i){for(;;){let n=0;for(let r of t)r.between(e-1,e+1,((t,r,s)=>{if(e>t&&ee(t))),i.from,e.head>i.from?-1:1);return n==i.from?i:B.cursor(n,n{this.ignoreDuringComposition(i)||"keydown"==i.type&&this.keydown(t,i)||(this.mustFlushObserver(i)&&t.observer.forceFlush(),this.runCustomHandlers(i.type,t,i)?i.preventDefault():e(t,i))};for(let i in kn){let n=kn[i];t.contentDOM.addEventListener(i,(i=>{yn(t,i)&&e(n,i)}),bn[i]),this.registeredEvents.push(i)}t.scrollDOM.addEventListener("mousedown",(i=>{if(i.target==t.scrollDOM&&i.clientY>t.contentDOM.getBoundingClientRect().bottom&&(e(kn.mousedown,i),!i.defaultPrevented&&2==i.button)){let e=t.contentDOM.style.minHeight;t.contentDOM.style.minHeight="100%",setTimeout((()=>t.contentDOM.style.minHeight=e),200)}})),t.scrollDOM.addEventListener("drop",(i=>{i.target==t.scrollDOM&&i.clientY>t.contentDOM.getBoundingClientRect().bottom&&e(kn.drop,i)})),Be.chrome&&102==Be.chrome_version&&t.scrollDOM.addEventListener("wheel",(()=>{this.chromeScrollHack<0?t.contentDOM.style.pointerEvents="none":window.clearTimeout(this.chromeScrollHack),this.chromeScrollHack=setTimeout((()=>{this.chromeScrollHack=-1,t.contentDOM.style.pointerEvents=""}),100)}),{passive:!0}),this.notifiedFocused=t.hasFocus,Be.safari&&t.contentDOM.addEventListener("input",(()=>null)),Be.gecko&&function(t){Wn.has(t)||(Wn.add(t),t.addEventListener("copy",(()=>{})),t.addEventListener("cut",(()=>{})))}(t.contentDOM.ownerDocument)}ensureHandlers(t,e){var i;let n;this.customHandlers=[];for(let r of e)if(n=null===(i=r.update(t).spec)||void 0===i?void 0:i.domEventHandlers){this.customHandlers.push({plugin:r.value,handlers:n});for(let e in n)this.registeredEvents.indexOf(e)<0&&"scroll"!=e&&(this.registeredEvents.push(e),t.contentDOM.addEventListener(e,(i=>{yn(t,i)&&this.runCustomHandlers(e,t,i)&&i.preventDefault()})))}}runCustomHandlers(t,e,i){for(let n of this.customHandlers){let r=n.handlers[t];if(r)try{if(r.call(n.plugin,i,e)||i.defaultPrevented)return!0}catch(t){gi(e.state,t)}}return!1}runScrollHandlers(t,e){this.lastScrollTop=t.scrollDOM.scrollTop,this.lastScrollLeft=t.scrollDOM.scrollLeft;for(let i of this.customHandlers){let n=i.handlers.scroll;if(n)try{n.call(i.plugin,e,t)}catch(e){gi(t.state,e)}}}keydown(t,e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),9==e.keyCode&&Date.now()t.keyCode==e.keyCode)))&&!e.ctrlKey||gn.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)||(this.pendingIOSKey=i||e,setTimeout((()=>this.flushIOSKey(t)),250),0))}flushIOSKey(t){let e=this.pendingIOSKey;return!!e&&(this.pendingIOSKey=void 0,ue(t.contentDOM,e.key,e.keyCode))}ignoreDuringComposition(t){return!!/^key/.test(t.type)&&(this.composing>0||!!(Be.safari&&!Be.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100)&&(this.compositionPendingKey=!1,!0))}mustFlushObserver(t){return"keydown"==t.type&&229!=t.keyCode}startMouseSelection(t){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=t}update(t){this.mouseSelection&&this.mouseSelection.update(t),t.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}const pn=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],gn="dthko",mn=[16,17,18,20,91,92,224,225];function wn(t){return.7*Math.max(0,t)+8}class vn{constructor(t,e,i,n){this.view=t,this.startEvent=e,this.style=i,this.mustSelect=n,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=e,this.scrollParent=function(t){let e=t.ownerDocument;for(let i=t.parentNode;i&&i!=e.body;)if(1==i.nodeType){if(i.scrollHeight>i.clientHeight||i.scrollWidth>i.clientWidth)return i;i=i.assignedSlot||i.parentNode}else{if(11!=i.nodeType)break;i=i.host}return null}(t.contentDOM),this.atoms=t.state.facet(Ai).map((e=>e(t)));let r=t.contentDOM.ownerDocument;r.addEventListener("mousemove",this.move=this.move.bind(this)),r.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=e.shiftKey,this.multiple=t.state.facet(yt.allowMultipleSelections)&&function(t,e){let i=t.state.facet(ri);return i.length?i[0](e):Be.mac?e.metaKey:e.ctrlKey}(t,e),this.dragging=!(!function(t,e){let{main:i}=t.state.selection;if(i.empty)return!1;let n=Yt(t.root);if(!n||0==n.rangeCount)return!0;let r=n.getRangeAt(0).getClientRects();for(let t=0;t=e.clientX&&i.top<=e.clientY&&i.bottom>=e.clientY)return!0}return!1}(t,e)||1!=Pn(e))&&null}start(t){!1===this.dragging&&(t.preventDefault(),this.select(t))}move(t){var e,i,n;if(0==t.buttons)return this.destroy();if(this.dragging||null==this.dragging&&(i=this.startEvent,n=t,Math.max(Math.abs(i.clientX-n.clientX),Math.abs(i.clientY-n.clientY))<10))return;this.select(this.lastEvent=t);let r=0,s=0,o=(null===(e=this.scrollParent)||void 0===e?void 0:e.getBoundingClientRect())||{left:0,top:0,right:this.view.win.innerWidth,bottom:this.view.win.innerHeight},a=Di(this.view);t.clientX-a.left<=o.left+6?r=-wn(o.left-t.clientX):t.clientX+a.right>=o.right-6&&(r=wn(t.clientX-o.right)),t.clientY-a.top<=o.top+6?s=-wn(o.top-t.clientY):t.clientY+a.bottom>=o.bottom-6&&(s=wn(t.clientY-o.bottom)),this.setScrollSpeed(r,s)}up(t){null==this.dragging&&this.select(this.lastEvent),this.dragging||t.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let t=this.view.contentDOM.ownerDocument;t.removeEventListener("mousemove",this.move),t.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=null}setScrollSpeed(t,e){this.scrollSpeed={x:t,y:e},t||e?this.scrolling<0&&(this.scrolling=setInterval((()=>this.scroll()),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){this.scrollParent?(this.scrollParent.scrollLeft+=this.scrollSpeed.x,this.scrollParent.scrollTop+=this.scrollSpeed.y):this.view.win.scrollBy(this.scrollSpeed.x,this.scrollSpeed.y),!1===this.dragging&&this.select(this.lastEvent)}skipAtoms(t){let e=null;for(let i=0;ithis.select(this.lastEvent)),20)}}function yn(t,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let i,n=e.target;n!=t.contentDOM;n=n.parentNode)if(!n||11==n.nodeType||(i=me.get(n))&&i.ignoreEvent(e))return!1;return!0}const kn=Object.create(null),bn=Object.create(null),xn=Be.ie&&Be.ie_version<15||Be.ios&&Be.webkit_version<604;function Sn(t,e){let i,{state:n}=t,r=1,s=n.toText(e),o=s.lines==n.selection.ranges.length;if(null!=Rn&&n.selection.ranges.every((t=>t.empty))&&Rn==s.toString()){let t=-1;i=n.changeByRange((i=>{let a=n.doc.lineAt(i.from);if(a.from==t)return{range:i};t=a.from;let l=n.toText((o?s.line(r++).text:e)+n.lineBreak);return{changes:{from:a.from,insert:l},range:B.cursor(i.from+l.length)}}))}else i=o?n.changeByRange((t=>{let e=s.line(r++);return{changes:{from:t.from,to:t.to,insert:e.text},range:B.cursor(t.from+e.length)}})):n.replaceSelection(s);t.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}function An(t,e,i,n){if(1==n)return B.cursor(e,i);if(2==n)return function(t,e,i=1){let n=t.charCategorizer(e),r=t.doc.lineAt(e),s=e-r.from;if(0==r.length)return B.cursor(e);0==s?i=1:s==r.length&&(i=-1);let o=s,a=s;i<0?o=d(r.text,s,!1):a=d(r.text,s);let l=n(r.text.slice(o,a));for(;o>0;){let t=d(r.text,o,!1);if(n(r.text.slice(t,o))!=l)break;o=t}for(;a{t.inputState.setSelectionOrigin("select"),27==e.keyCode&&(t.inputState.lastEscPress=Date.now())},kn.touchstart=(t,e)=>{t.inputState.lastTouchTime=Date.now(),t.inputState.setSelectionOrigin("select.pointer")},kn.touchmove=t=>{t.inputState.setSelectionOrigin("select.pointer")},bn.touchstart=bn.touchmove={passive:!0},kn.mousedown=(t,e)=>{if(t.observer.flush(),t.inputState.lastTouchTime>Date.now()-2e3)return;let i=null;for(let n of t.state.facet(oi))if(i=n(t,e),i)break;if(i||0!=e.button||(i=function(t,e){let i=Dn(t,e),n=Pn(e),r=t.state.selection;return{update(t){t.docChanged&&(i.pos=t.changes.mapPos(i.pos),r=r.map(t.changes))},get(e,s,o){let a,l=Dn(t,e),h=An(t,l.pos,l.bias,n);if(i.pos!=l.pos&&!s){let e=An(t,i.pos,i.bias,n),r=Math.min(e.from,h.from),s=Math.max(e.to,h.to);h=r1&&(a=function(t,e){for(let i=0;i=e)return B.create(t.ranges.slice(0,i).concat(t.ranges.slice(i+1)),t.mainIndex==i?0:t.mainIndex-(t.mainIndex>i?1:0))}return null}(r,l.pos))?a:o?r.addRange(h):B.create([h])}}}(t,e)),i){let n=!t.hasFocus;t.inputState.startMouseSelection(new vn(t,e,i,n)),n&&t.observer.ignore((()=>he(t.contentDOM))),t.inputState.mouseSelection&&t.inputState.mouseSelection.start(e)}};let Mn=(t,e)=>t>=e.top&&t<=e.bottom,Cn=(t,e,i)=>Mn(e,i)&&t>=i.left&&t<=i.right;function Tn(t,e,i,n){let r=Ze.find(t.docView,e);if(!r)return 1;let s=e-r.posAtStart;if(0==s)return 1;if(s==r.length)return-1;let o=r.coordsAt(s,-1);if(o&&Cn(i,n,o))return-1;let a=r.coordsAt(s,1);return a&&Cn(i,n,a)?1:o&&Mn(n,o)?-1:1}function Dn(t,e){let i=t.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:i,bias:Tn(t,i,e.clientX,e.clientY)}}const On=Be.ie&&Be.ie_version<=11;let En=null,Ln=0,Bn=0;function Pn(t){if(!On)return t.detail;let e=En,i=Bn;return En=t,Bn=Date.now(),Ln=!e||i>Date.now()-400&&Math.abs(e.clientX-t.clientX)<2&&Math.abs(e.clientY-t.clientY)<2?(Ln+1)%3:1}function Nn(t,e,i,n){if(!i)return;let r=t.posAtCoords({x:e.clientX,y:e.clientY},!1);e.preventDefault();let{mouseSelection:s}=t.inputState,o=n&&s&&s.dragging&&function(t,e){let i=t.state.facet(si);return i.length?i[0](e):Be.mac?!e.altKey:!e.ctrlKey}(t,e)?{from:s.dragging.from,to:s.dragging.to}:null,a={from:r,insert:i},l=t.state.changes(o?[o,a]:a);t.focus(),t.dispatch({changes:l,selection:{anchor:l.mapPos(r,-1),head:l.mapPos(r,1)},userEvent:o?"move.drop":"input.drop"})}kn.dragstart=(t,e)=>{let{selection:{main:i}}=t.state,{mouseSelection:n}=t.inputState;n&&(n.dragging=i),e.dataTransfer&&(e.dataTransfer.setData("Text",t.state.sliceDoc(i.from,i.to)),e.dataTransfer.effectAllowed="copyMove")},kn.drop=(t,e)=>{if(!e.dataTransfer)return;if(t.state.readOnly)return e.preventDefault();let i=e.dataTransfer.files;if(i&&i.length){e.preventDefault();let n=Array(i.length),r=0,s=()=>{++r==i.length&&Nn(t,e,n.filter((t=>null!=t)).join(t.state.lineBreak),!1)};for(let t=0;t{/[\x00-\x08\x0e-\x1f]{2}/.test(e.result)||(n[t]=e.result),s()},e.readAsText(i[t])}}else Nn(t,e,e.dataTransfer.getData("Text"),!0)},kn.paste=(t,e)=>{if(t.state.readOnly)return e.preventDefault();t.observer.flush();let i=xn?null:e.clipboardData;i?(Sn(t,i.getData("text/plain")||i.getData("text/uri-text")),e.preventDefault()):function(t){let e=t.dom.parentNode;if(!e)return;let i=e.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.focus(),setTimeout((()=>{t.focus(),i.remove(),Sn(t,i.value)}),50)}(t)};let Rn=null;kn.copy=kn.cut=(t,e)=>{let{text:i,ranges:n,linewise:r}=function(t){let e=[],i=[],n=!1;for(let n of t.selection.ranges)n.empty||(e.push(t.sliceDoc(n.from,n.to)),i.push(n));if(!e.length){let r=-1;for(let{from:n}of t.selection.ranges){let s=t.doc.lineAt(n);s.number>r&&(e.push(s.text),i.push({from:s.from,to:Math.min(t.doc.length,s.to+1)})),r=s.number}n=!0}return{text:e.join(t.lineBreak),ranges:i,linewise:n}}(t.state);if(!i&&!r)return;Rn=r?i:null;let s=xn?null:e.clipboardData;s?(e.preventDefault(),s.clearData(),s.setData("text/plain",i)):function(t,e){let i=t.dom.parentNode;if(!i)return;let n=i.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(),t.focus()}),50)}(t,i),"cut"!=e.type||t.state.readOnly||t.dispatch({changes:n,scrollIntoView:!0,userEvent:"delete.cut"})};const In=st.define();function zn(t,e){let i=[];for(let n of t.facet(ci)){let r=n(t,e);r&&i.push(r)}return i?t.update({effects:i,annotations:In.of(!0)}):null}function Hn(t){setTimeout((()=>{let e=t.hasFocus;if(e!=t.inputState.notifiedFocused){let i=zn(t.state,e);i?t.dispatch(i):t.update([])}}),10)}kn.focus=t=>{t.inputState.lastFocusTime=Date.now(),t.scrollDOM.scrollTop||!t.inputState.lastScrollTop&&!t.inputState.lastScrollLeft||(t.scrollDOM.scrollTop=t.inputState.lastScrollTop,t.scrollDOM.scrollLeft=t.inputState.lastScrollLeft),Hn(t)},kn.blur=t=>{t.observer.clearSelectionRange(),Hn(t)},kn.compositionstart=kn.compositionupdate=t=>{null==t.inputState.compositionFirstChange&&(t.inputState.compositionFirstChange=!0),t.inputState.composing<0&&(t.inputState.composing=0)},kn.compositionend=t=>{t.inputState.composing=-1,t.inputState.compositionEndedAt=Date.now(),t.inputState.compositionPendingKey=!0,t.inputState.compositionPendingChange=t.observer.pendingRecords().length>0,t.inputState.compositionFirstChange=null,Be.chrome&&Be.android?t.observer.flushSoon():t.inputState.compositionPendingChange?Promise.resolve().then((()=>t.observer.flush())):setTimeout((()=>{t.inputState.composing<0&&t.docView.hasComposition&&t.update([])}),50)},kn.contextmenu=t=>{t.inputState.lastContextMenu=Date.now()},kn.beforeinput=(t,e)=>{var i;let n;if(Be.chrome&&Be.android&&(n=pn.find((t=>t.inputType==e.inputType)))&&(t.observer.delayAndroidKey(n.key,n.keyCode),"Backspace"==n.key||"Delete"==n.key)){let e=(null===(i=window.visualViewport)||void 0===i?void 0:i.height)||0;setTimeout((()=>{var i;((null===(i=window.visualViewport)||void 0===i?void 0:i.height)||0)>e+10&&t.hasFocus&&(t.contentDOM.blur(),t.focus())}),100)}};const Wn=new Set,Vn=["pre-wrap","normal","pre-line","break-spaces"];class Fn{constructor(e){this.lineWrapping=e,this.doc=t.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30,this.heightChanged=!1}heightForGap(t,e){let i=this.doc.lineAt(e).number-this.doc.lineAt(t).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((e-t-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(t){return this.lineWrapping?(1+Math.max(0,Math.ceil((t-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(t){return this.doc=t,this}mustRefreshForWrapping(t){return Vn.indexOf(t)>-1!=this.lineWrapping}mustRefreshForHeights(t){let e=!1;for(let i=0;i-1,a=Math.round(e)!=Math.round(this.lineHeight)||this.lineWrapping!=o;if(this.lineWrapping=o,this.lineHeight=e,this.charWidth=i,this.textHeight=n,this.lineLength=r,a){this.heightSamples={};for(let t=0;t0}set outdated(t){this.flags=(t?2:0)|-3&this.flags}setHeight(t,e){this.height!=e&&(Math.abs(this.height-e)>$n&&(t.heightChanged=!0),this.height=e)}replace(t,e,i){return Kn.of(i)}decomposeLeft(t,e){e.push(this)}decomposeRight(t,e){e.push(this)}applyChanges(t,e,i,n){let r=this,s=i.doc;for(let o=n.length-1;o>=0;o--){let{fromA:a,toA:l,fromB:h,toB:c}=n[o],u=r.lineAt(a,qn.ByPosNoHeight,i.setDoc(e),0,0),f=u.to>=l?u:r.lineAt(l,qn.ByPosNoHeight,i,0,0);for(c+=f.to-l,l=f.to;o>0&&u.from<=n[o-1].toA;)a=n[o-1].fromA,h=n[o-1].fromB,o--,a2*r){let r=t[e-1];r.break?t.splice(--e,1,r.left,null,r.right):t.splice(--e,1,r.left,r.right),i+=1+r.break,n-=r.size}else{if(!(r>2*n))break;{let e=t[i];e.break?t.splice(i,1,e.left,null,e.right):t.splice(i,1,e.left,e.right),i+=2+e.break,r-=e.size}}else if(n=r&&s(this.blockAt(0,i,n,r))}updateHeight(t,e=0,i=!1,n){return n&&n.from<=e&&n.more&&this.setHeight(t,n.heights[n.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class Un extends Gn{constructor(t,e){super(t,e,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(t,e,i,n){return new jn(n,this.length,i,this.height,this.breaks)}replace(t,e,i){let n=i[0];return 1==i.length&&(n instanceof Un||n instanceof Jn&&4&n.flags)&&Math.abs(this.length-n.length)<10?(n instanceof Jn?n=new Un(n.length,this.height):n.height=this.height,this.outdated||(n.outdated=!1),n):Kn.of(i)}updateHeight(t,e=0,i=!1,n){return n&&n.from<=e&&n.more?this.setHeight(t,n.heights[n.index++]):(i||this.outdated)&&this.setHeight(t,Math.max(this.widgetHeight,t.heightForLine(this.length-this.collapsed))+this.breaks*t.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class Jn extends Kn{constructor(t){super(t,0)}heightMetrics(t,e){let i,n=t.doc.lineAt(e).number,r=t.doc.lineAt(e+this.length).number,s=r-n+1,o=0;if(t.lineWrapping){let e=Math.min(this.height,t.lineHeight*s);i=e/s,this.length>s+1&&(o=(this.height-e)/(this.length-s-1))}else i=this.height/s;return{firstLine:n,lastLine:r,perLine:i,perChar:o}}blockAt(t,e,i,n){let{firstLine:r,lastLine:s,perLine:o,perChar:a}=this.heightMetrics(e,n);if(e.lineWrapping){let r=n+Math.round(Math.max(0,Math.min(1,(t-i)/this.height))*this.length),s=e.doc.lineAt(r),l=o+s.length*a,h=Math.max(i,t-l/2);return new jn(s.from,s.length,h,l,0)}{let n=Math.max(0,Math.min(s-r,Math.floor((t-i)/o))),{from:a,length:l}=e.doc.line(r+n);return new jn(a,l,i+o*n,o,0)}}lineAt(t,e,i,n,r){if(e==qn.ByHeight)return this.blockAt(t,i,n,r);if(e==qn.ByPosNoHeight){let{from:e,to:n}=i.doc.lineAt(t);return new jn(e,n-e,0,0,0)}let{firstLine:s,perLine:o,perChar:a}=this.heightMetrics(i,r),l=i.doc.lineAt(t),h=o+l.length*a,c=l.number-s,u=n+o*c+a*(l.from-r-c);return new jn(l.from,l.length,Math.max(n,Math.min(u,n+this.height-h)),h,0)}forEachLine(t,e,i,n,r,s){t=Math.max(t,r),e=Math.min(e,r+this.length);let{firstLine:o,perLine:a,perChar:l}=this.heightMetrics(i,r);for(let h=t,c=n;h<=e;){let e=i.doc.lineAt(h);if(h==t){let i=e.number-o;c+=a*i+l*(t-r-i)}let n=a+l*e.length;s(new jn(e.from,e.length,c,n,0)),c+=n,h=e.to+1}}replace(t,e,i){let n=this.length-e;if(n>0){let t=i[i.length-1];t instanceof Jn?i[i.length-1]=new Jn(t.length+n):i.push(null,new Jn(n-1))}if(t>0){let e=i[0];e instanceof Jn?i[0]=new Jn(t+e.length):i.unshift(new Jn(t-1),null)}return Kn.of(i)}decomposeLeft(t,e){e.push(new Jn(t-1),null)}decomposeRight(t,e){e.push(null,new Jn(this.length-t-1))}updateHeight(t,e=0,i=!1,n){let r=e+this.length;if(n&&n.from<=e+this.length&&n.more){let i=[],s=Math.max(e,n.from),o=-1;for(n.from>e&&i.push(new Jn(n.from-e-1).updateHeight(t,e));s<=r&&n.more;){let e=t.doc.lineAt(s).length;i.length&&i.push(null);let r=n.heights[n.index++];-1==o?o=r:Math.abs(r-o)>=$n&&(o=-2);let a=new Un(e,r);a.outdated=!1,i.push(a),s+=e+1}s<=r&&i.push(null,new Jn(r-s).updateHeight(t,s));let a=Kn.of(i);return(o<0||Math.abs(a.height-this.height)>=$n||Math.abs(o-this.heightMetrics(t,e).perLine)>=$n)&&(t.heightChanged=!0),a}return(i||this.outdated)&&(this.setHeight(t,t.heightForGap(e,e+this.length)),this.outdated=!1),this}toString(){return`gap(${this.length})`}}class Yn extends Kn{constructor(t,e,i){super(t.length+e+i.length,t.height+i.height,e|(t.outdated||i.outdated?2:0)),this.left=t,this.right=i,this.size=t.size+i.size}get break(){return 1&this.flags}blockAt(t,e,i,n){let r=i+this.left.height;return to))return l;let h=e==qn.ByPosNoHeight?qn.ByPosNoHeight:qn.ByPos;return a?l.join(this.right.lineAt(o,h,i,s,o)):this.left.lineAt(o,h,i,n,r).join(l)}forEachLine(t,e,i,n,r,s){let o=n+this.left.height,a=r+this.left.length+this.break;if(this.break)t=a&&this.right.forEachLine(t,e,i,o,a,s);else{let l=this.lineAt(a,qn.ByPos,i,n,r);t=t&&l.from<=e&&s(l),e>l.to&&this.right.forEachLine(l.to+1,e,i,o,a,s)}}replace(t,e,i){let n=this.left.length+this.break;if(ethis.left.length)return this.balanced(this.left,this.right.replace(t-n,e-n,i));let r=[];t>0&&this.decomposeLeft(t,r);let s=r.length;for(let t of i)r.push(t);if(t>0&&Xn(r,s-1),e=i&&e.push(null)),t>i&&this.right.decomposeLeft(t-i,e)}decomposeRight(t,e){let i=this.left.length,n=i+this.break;if(t>=n)return this.right.decomposeRight(t-n,e);t2*e.size||e.size>2*t.size?Kn.of(this.break?[t,null,e]:[t,e]):(this.left=t,this.right=e,this.height=t.height+e.height,this.outdated=t.outdated||e.outdated,this.size=t.size+e.size,this.length=t.length+this.break+e.length,this)}updateHeight(t,e=0,i=!1,n){let{left:r,right:s}=this,o=e+r.length+this.break,a=null;return n&&n.from<=e+r.length&&n.more?a=r=r.updateHeight(t,e,i,n):r.updateHeight(t,e,i),n&&n.from<=o+s.length&&n.more?a=s=s.updateHeight(t,o,i,n):s.updateHeight(t,o,i),a?this.balanced(r,s):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function Xn(t,e){let i,n;null==t[e]&&(i=t[e-1])instanceof Jn&&(n=t[e+1])instanceof Jn&&t.splice(e-1,3,new Jn(i.length+1+n.length))}class Qn{constructor(t,e){this.pos=t,this.oracle=e,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=t}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(t,e){if(this.lineStart>-1){let t=Math.min(e,this.lineEnd),i=this.nodes[this.nodes.length-1];i instanceof Un?i.length+=t-this.pos:(t>this.pos||!this.isCovered)&&this.nodes.push(new Un(t-this.pos,-1)),this.writtenTo=t,e>t&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=e}point(t,e,i){if(t=5)&&this.addLineDeco(n,r,s)}else e>t&&this.span(t,e);this.lineEnd>-1&&this.lineEnd-1)return;let{from:t,to:e}=this.oracle.doc.lineAt(this.pos);this.lineStart=t,this.lineEnd=e,this.writtenTot&&this.nodes.push(new Un(this.pos-t,-1)),this.writtenTo=this.pos}blankContent(t,e){let i=new Jn(e-t);return this.oracle.doc.lineAt(t).to==e&&(i.flags|=4),i}ensureLine(){this.enterLine();let t=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(t instanceof Un)return t;let e=new Un(0,-1);return this.nodes.push(e),e}addBlock(t){var e;this.enterLine();let i=null===(e=t.deco)||void 0===e?void 0:e.type;i!=Ke.WidgetAfter||this.isCovered||this.ensureLine(),this.nodes.push(t),this.writtenTo=this.pos=this.pos+t.length,i!=Ke.WidgetBefore&&(this.covering=t)}addLineDeco(t,e,i){let n=this.ensureLine();n.length+=i,n.collapsed+=i,n.widgetHeight=Math.max(n.widgetHeight,t),n.breaks+=e,this.writtenTo=this.pos=this.pos+i}finish(t){let e=0==this.nodes.length?null:this.nodes[this.nodes.length-1];!(this.lineStart>-1)||e instanceof Un||this.isCovered?(this.writtenToi.clientHeight||i.scrollWidth>i.clientWidth)&&"visible"!=n.overflow){let n=i.getBoundingClientRect();s=Math.max(s,n.left),o=Math.min(o,n.right),a=Math.max(a,n.top),l=e==t.parentNode?n.bottom:Math.min(l,n.bottom)}e="absolute"==n.position||"fixed"==n.position?i.offsetParent:i.parentNode}else{if(11!=e.nodeType)break;e=e.host}return{left:s-i.left,right:Math.max(s,o)-i.left,top:a-(i.top+e),bottom:Math.max(a,l)-(i.top+e)}}function er(t,e){let i=t.getBoundingClientRect();return{left:0,right:i.right-i.left,top:e,bottom:i.bottom-(i.top+e)}}class ir{constructor(t,e,i){this.from=t,this.to=e,this.size=i}static same(t,e){if(t.length!=e.length)return!1;for(let i=0;i"function"!=typeof t&&"cm-lineWrapping"==t.class));this.heightOracle=new Fn(i),this.stateDeco=e.facet(Si).filter((t=>"function"!=typeof t)),this.heightMap=Kn.empty().applyChanges(this.stateDeco,t.empty,this.heightOracle.setDoc(e.doc),[new Ei(0,0,0,e.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Ge.set(this.lineGaps.map((t=>t.draw(this,!1)))),this.computeVisibleRanges()}updateForViewport(){let t=[this.viewport],{main:e}=this.state.selection;for(let i=0;i<=1;i++){let n=i?e.head:e.anchor;if(!t.some((({from:t,to:e})=>n>=t&&n<=e))){let{from:e,to:i}=this.lineBlockAt(n);t.push(new sr(e,i))}}this.viewports=t.sort(((t,e)=>t.from-e.from)),this.scaler=this.heightMap.height<=7e6?hr:new cr(this.heightOracle,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,(t=>{this.viewportLines.push(1==this.scaler.scale?t:ur(t,this.scaler))}))}update(t,e=null){this.state=t.state;let i=this.stateDeco;this.stateDeco=this.state.facet(Si).filter((t=>"function"!=typeof t));let n=t.changedRanges,r=Ei.extendWithRanges(n,function(t,e,i){let n=new Zn;return Mt.compare(t,e,i,n,0),n.changes}(i,this.stateDeco,t?t.changes:A.empty(this.state.doc.length))),s=this.heightMap.height,o=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);this.heightMap=this.heightMap.applyChanges(this.stateDeco,t.startState.doc,this.heightOracle.setDoc(this.state.doc),r),this.heightMap.height!=s&&(t.flags|=2),o?(this.scrollAnchorPos=t.changes.mapPos(o.from,-1),this.scrollAnchorHeight=o.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=this.heightMap.height);let a=r.length?this.mapViewport(this.viewport,t.changes):this.viewport;(e&&(e.range.heada.to)||!this.viewportIsAppropriate(a))&&(a=this.getViewport(0,e));let l=!t.changes.empty||2&t.flags||a.from!=this.viewport.from||a.to!=this.viewport.to;this.viewport=a,this.updateForViewport(),l&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,t.changes))),t.flags|=this.computeVisibleRanges(),e&&(this.scrollTarget=e),!this.mustEnforceCursorAssoc&&t.selectionSet&&t.view.lineWrapping&&t.state.selection.main.empty&&t.state.selection.main.assoc&&!t.state.facet(fi)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let i=e.contentDOM,n=window.getComputedStyle(i),r=this.heightOracle,s=n.whiteSpace;this.defaultTextDirection="rtl"==n.direction?Bi.RTL:Bi.LTR;let o=this.heightOracle.mustRefreshForWrapping(s),a=i.getBoundingClientRect(),l=o||this.mustMeasureContent||this.contentDOMHeight!=a.height;this.contentDOMHeight=a.height,this.mustMeasureContent=!1;let h=0,c=0;if(a.width&&a.height){let t=a.width/i.offsetWidth,e=a.height/i.offsetHeight;t>.995&&t<1.005&&(t=1),e>.995&&e<1.005&&(e=1),this.scaleX==t&&this.scaleY==e||(this.scaleX=t,this.scaleY=e,h|=8,o=l=!0)}let u=(parseInt(n.paddingTop)||0)*this.scaleY,f=(parseInt(n.paddingBottom)||0)*this.scaleY;this.paddingTop==u&&this.paddingBottom==f||(this.paddingTop=u,this.paddingBottom=f,h|=10),this.editorWidth!=e.scrollDOM.clientWidth&&(r.lineWrapping&&(l=!0),this.editorWidth=e.scrollDOM.clientWidth,h|=8);let d=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=d&&(this.scrollAnchorHeight=-1,this.scrollTop=d),this.scrolledToBottom=de(e.scrollDOM);let p=(this.printing?er:tr)(i,this.paddingTop),g=p.top-this.pixelViewport.top,m=p.bottom-this.pixelViewport.bottom;this.pixelViewport=p;let w=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(w!=this.inView&&(this.inView=w,w&&(l=!0)),!this.inView&&!this.scrollTarget)return 0;let v=a.width;if(this.contentDOMWidth==v&&this.editorHeight==e.scrollDOM.clientHeight||(this.contentDOMWidth=a.width,this.editorHeight=e.scrollDOM.clientHeight,h|=8),l){let i=e.docView.measureVisibleLineHeights(this.viewport);if(r.mustRefreshForHeights(i)&&(o=!0),o||r.lineWrapping&&Math.abs(v-this.contentDOMWidth)>r.charWidth){let{lineHeight:t,charWidth:n,textHeight:a}=e.docView.measureTextSize();o=t>0&&r.refresh(s,t,n,a,v/n,i),o&&(e.docView.minWidth=0,h|=8)}g>0&&m>0?c=Math.max(g,m):g<0&&m<0&&(c=Math.min(g,m)),r.heightChanged=!1;for(let n of this.viewports){let s=n.from==this.viewport.from?i:e.docView.measureVisibleLineHeights(n);this.heightMap=(o?Kn.empty().applyChanges(this.stateDeco,t.empty,this.heightOracle,[new Ei(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(r,0,o,new _n(n.from,s))}r.heightChanged&&(h|=2)}let y=!this.viewportIsAppropriate(this.viewport,c)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return y&&(this.viewport=this.getViewport(c,this.scrollTarget)),this.updateForViewport(),(2&h||y)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),h|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),h}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(t,e){let i=.5-Math.max(-.5,Math.min(.5,t/1e3/2)),n=this.heightMap,r=this.heightOracle,{visibleTop:s,visibleBottom:o}=this,a=new sr(n.lineAt(s-1e3*i,qn.ByHeight,r,0,0).from,n.lineAt(o+1e3*(1-i),qn.ByHeight,r,0,0).to);if(e){let{head:t}=e.range;if(ta.to){let i,s=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),o=n.lineAt(t,qn.ByPos,r,0,0);i="center"==e.y?(o.top+o.bottom)/2-s/2:"start"==e.y||"nearest"==e.y&&t=o+Math.max(10,Math.min(i,250)))&&n>s-2e3&&r>1,s=n<<1;if(this.defaultTextDirection!=Bi.LTR&&!i)return[];let o=[],a=(n,s,l,h)=>{if(s-nn&&tt.from>=l.from&&t.to<=l.to&&Math.abs(t.from-n)t.frome))));if(!f){if(st.from<=s&&t.to>=s))){let t=e.moveToLineBoundary(B.cursor(s),!1,!0).head;t>n&&(s=t)}f=new ir(n,s,this.gapSize(l,n,s,h))}o.push(f)};for(let t of this.viewportLines){if(t.lengtht.from&&a(t.from,r,t,e),ot.draw(this,this.heightOracle.lineWrapping)))))}computeVisibleRanges(){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let e=[];Mt.spans(t,this.viewport.from,this.viewport.to,{span(t,i){e.push({from:t,to:i})},point(){}},20);let i=e.length!=this.visibleRanges.length||this.visibleRanges.some(((t,i)=>t.from!=e[i].from||t.to!=e[i].to));return this.visibleRanges=e,i?4:0}lineBlockAt(t){return t>=this.viewport.from&&t<=this.viewport.to&&this.viewportLines.find((e=>e.from<=t&&e.to>=t))||ur(this.heightMap.lineAt(t,qn.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(t){return ur(this.heightMap.lineAt(this.scaler.fromDOM(t),qn.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(t){let e=this.lineBlockAtHeight(t+8);return e.from>=this.viewport.from||this.viewportLines[0].top-t>200?e:this.viewportLines[0]}elementAtHeight(t){return ur(this.heightMap.blockAt(this.scaler.fromDOM(t),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class sr{constructor(t,e){this.from=t,this.to=e}}function or(t,e,i){let n=[],r=t,s=0;return Mt.spans(i,t,e,{span(){},point(t,e){t>r&&(n.push({from:r,to:t}),s+=t-r),r=e}},20),r=1)return e[e.length-1].to;let n=Math.floor(t*i);for(let t=0;;t++){let{from:i,to:r}=e[t],s=r-i;if(n<=s)return i+n;n-=s}}function lr(t,e){let i=0;for(let{from:n,to:r}of t.ranges){if(e<=r){i+=e-n;break}i+=r-n}return i/t.total}const hr={toDOM:t=>t,fromDOM:t=>t,scale:1};class cr{constructor(t,e,i){let n=0,r=0,s=0;this.viewports=i.map((({from:i,to:r})=>{let s=e.lineAt(i,qn.ByPos,t,0,0).top,o=e.lineAt(r,qn.ByPos,t,0,0).bottom;return n+=o-s,{from:i,to:r,top:s,bottom:o,domTop:0,domBottom:0}})),this.scale=(7e6-n)/(e.height-n);for(let t of this.viewports)t.domTop=s+(t.top-r)*this.scale,s=t.domBottom=t.domTop+(t.bottom-t.top),r=t.bottom}toDOM(t){for(let e=0,i=0,n=0;;e++){let r=eur(t,e))):t._content)}const fr=R.define({combine:t=>t.join(" ")}),dr=R.define({combine:t=>t.indexOf(!0)>-1}),pr=Ft.newName(),gr=Ft.newName(),mr=Ft.newName(),wr={"&light":"."+gr,"&dark":"."+mr};function vr(t,e,i){return new Ft(e,{finish:e=>/&/.test(e)?e.replace(/&\w*/,(e=>{if("&"==e)return t;if(!i||!i[e])throw new RangeError(`Unsupported selector: ${e}`);return i[e]})):t+" "+e})}const yr=vr("."+pr,{"&":{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":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .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",insetInlineStart: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,\')',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"}},wr),kr="￿";class br{constructor(t,e){this.points=t,this.text="",this.lineSeparator=e.facet(yt.lineSeparator)}append(t){this.text+=t}lineBreak(){this.text+=kr}readRange(t,e){if(!t)return this;let i=t.parentNode;for(let n=t;;){this.findPointBefore(i,n);let t=this.text.length;this.readNode(n);let r=n.nextSibling;if(r==e)break;let s=me.get(n),o=me.get(r);(s&&o?s.breakAfter:(s?s.breakAfter:xr(n))||xr(r)&&("BR"!=n.nodeName||n.cmIgnore)&&this.text.length>t)&&this.lineBreak(),n=r}return this.findPointBefore(i,e),this}readTextNode(t){let e=t.nodeValue;for(let i of this.points)i.node==t&&(i.pos=this.text.length+Math.min(i.offset,e.length));for(let i=0,n=this.lineSeparator?null:/\r\n?|\n/g;;){let r,s=-1,o=1;if(this.lineSeparator?(s=e.indexOf(this.lineSeparator,i),o=this.lineSeparator.length):(r=n.exec(e))&&(s=r.index,o=r[0].length),this.append(e.slice(i,s<0?e.length:s)),s<0)break;if(this.lineBreak(),o>1)for(let e of this.points)e.node==t&&e.pos>this.text.length&&(e.pos-=o-1);i=s+o}}readNode(t){if(t.cmIgnore)return;let e=me.get(t),i=e&&e.overrideDOMText;if(null!=i){this.findPointInside(t,i.length);for(let t=i.iter();!t.next().done;)t.lineBreak?this.lineBreak():this.append(t.value)}else 3==t.nodeType?this.readTextNode(t):"BR"==t.nodeName?t.nextSibling&&this.lineBreak():1==t.nodeType&&this.readRange(t.firstChild,null)}findPointBefore(t,e){for(let i of this.points)i.node==t&&t.childNodes[i.offset]==e&&(i.pos=this.text.length)}findPointInside(t,e){for(let i of this.points)(3==t.nodeType?i.node==t:t.contains(i.node))&&(i.pos=this.text.length+Math.min(e,i.offset))}}function xr(t){return 1==t.nodeType&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(t.nodeName)}class Sr{constructor(t,e){this.node=t,this.offset=e,this.pos=-1}}class Ar{constructor(t,e,i,n){this.typeOver=n,this.bounds=null,this.text="";let{impreciseHead:r,impreciseAnchor:s}=t.docView;if(t.state.readOnly&&e>-1)this.newSel=null;else if(e>-1&&(this.bounds=t.docView.domBoundsAround(e,i,0))){let e=r||s?[]:function(t){let e=[];if(t.root.activeElement!=t.contentDOM)return e;let{anchorNode:i,anchorOffset:n,focusNode:r,focusOffset:s}=t.observer.selectionRange;return i&&(e.push(new Sr(i,n)),r==i&&s==n||e.push(new Sr(r,s))),e}(t),i=new br(e,t.state);i.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=i.text,this.newSel=function(t,e){if(0==t.length)return null;let i=t[0].pos,n=2==t.length?t[1].pos:i;return i>-1&&n>-1?B.single(i+e,n+e):null}(e,this.bounds.from)}else{let e=t.observer.selectionRange,i=r&&r.node==e.focusNode&&r.offset==e.focusOffset||!Xt(t.contentDOM,e.focusNode)?t.state.selection.main.head:t.docView.posFromDOM(e.focusNode,e.focusOffset),n=s&&s.node==e.anchorNode&&s.offset==e.anchorOffset||!Xt(t.contentDOM,e.anchorNode)?t.state.selection.main.anchor:t.docView.posFromDOM(e.anchorNode,e.anchorOffset);this.newSel=B.single(n,i)}}}function Mr(e,i){let n,{newSel:r}=i,s=e.state.selection.main,o=e.inputState.lastKeyTime>Date.now()-100?e.inputState.lastKeyCode:-1;if(i.bounds){let{from:r,to:a}=i.bounds,l=s.from,h=null;(8===o||Be.android&&i.text.length0&&a>0&&t.charCodeAt(o-1)==e.charCodeAt(a-1);)o--,a--;return"end"==n&&(i-=o+Math.max(0,s-Math.min(o,a))-s),o=o?s-i:0,a=s+(a-o),o=s):a=a?s-i:0,o=s+(o-a),a=s),{from:s,toA:o,toB:a}}(e.state.doc.sliceString(r,a,kr),i.text,l-r,h);c&&(Be.chrome&&13==o&&c.toB==c.from+2&&i.text.slice(c.from,c.toB)==kr+kr&&c.toB--,n={from:r+c.from,to:r+c.toA,insert:t.of(i.text.slice(c.from,c.toB).split(kr))})}else r&&(!e.hasFocus&&e.state.facet(mi)||r.main.eq(s))&&(r=null);if(!n&&!r)return!1;if(!n&&i.typeOver&&!s.empty&&r&&r.main.empty?n={from:s.from,to:s.to,insert:e.state.doc.slice(s.from,s.to)}:n&&n.from>=s.from&&n.to<=s.to&&(n.from!=s.from||n.to!=s.to)&&s.to-s.from-(n.to-n.from)<=4?n={from:s.from,to:s.to,insert:e.state.doc.slice(s.from,n.from).append(n.insert).append(e.state.doc.slice(n.to,s.to))}:(Be.mac||Be.android)&&n&&n.from==n.to&&n.from==s.head-1&&/^\. ?$/.test(n.insert.toString())&&"off"==e.contentDOM.getAttribute("autocorrect")?(r&&2==n.insert.length&&(r=B.single(r.main.anchor-1,r.main.head-1)),n={from:s.from,to:s.to,insert:t.of([" "])}):Be.chrome&&n&&n.from==n.to&&n.from==s.head&&"\n "==n.insert.toString()&&e.lineWrapping&&(r&&(r=B.single(r.main.anchor-1,r.main.head-1)),n={from:s.from,to:s.to,insert:t.of([" "])}),n){if(Be.ios&&e.inputState.flushIOSKey(e))return!0;if(Be.android&&(n.from==s.from&&n.to==s.to&&1==n.insert.length&&2==n.insert.lines&&ue(e.contentDOM,"Enter",13)||(n.from==s.from-1&&n.to==s.to&&0==n.insert.length||8==o&&n.insert.lengths.head)&&ue(e.contentDOM,"Backspace",8)||n.from==s.from&&n.to==s.to+1&&0==n.insert.length&&ue(e.contentDOM,"Delete",46)))return!0;let t,i=n.insert.toString();e.inputState.composing>=0&&e.inputState.composing++;let a=()=>t||(t=function(t,e,i){let n,r=t.state,s=r.selection.main;if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!i||i.main.empty&&i.main.from==e.from+e.insert.length)&&t.inputState.composing<0){let i=s.frome.to?r.sliceDoc(e.to,s.to):"";n=r.replaceSelection(t.state.toText(i+e.insert.sliceString(0,void 0,t.state.lineBreak)+o))}else{let o=r.changes(e),a=i&&i.main.to<=o.newLength?i.main:void 0;if(r.selection.ranges.length>1&&t.inputState.composing>=0&&e.to<=s.to&&e.to>=s.to-10){let l,h=t.state.sliceDoc(e.from,e.to),c=i&&Xi(t,i.main.head);if(c){let t=e.insert.length-(e.to-e.from);l={from:c.from,to:c.to-t}}else l=t.state.doc.lineAt(s.head);let u=s.to-e.to,f=s.to-s.from;n=r.changeByRange((i=>{if(i.from==s.from&&i.to==s.to)return{changes:o,range:a||i.map(o)};let n=i.to-u,c=n-h.length;if(i.to-i.from!=f||t.state.sliceDoc(c,n)!=h||i.to>=l.from&&i.from<=l.to)return{range:i};let d=r.changes({from:c,to:n,insert:e.insert}),p=i.to-s.to;return{changes:d,range:a?B.range(Math.max(0,a.anchor+p),Math.max(0,a.head+p)):i.map(d)}}))}else n={changes:o,selection:a&&r.selection.replaceRange(a)}}let o="input.type";return(t.composing||t.inputState.compositionPendingChange&&t.inputState.compositionEndedAt>Date.now()-50)&&(t.inputState.compositionPendingChange=!1,o+=".compose",t.inputState.compositionFirstChange&&(o+=".start",t.inputState.compositionFirstChange=!1)),r.update(n,{userEvent:o,scrollIntoView:!0})}(e,n,r));return e.state.facet(hi).some((t=>t(e,n.from,n.to,i,a)))||e.dispatch(a()),!0}if(r&&!r.main.eq(s)){let t=!1,i="select";return e.inputState.lastSelectionTime>Date.now()-50&&("select"==e.inputState.lastSelectionOrigin&&(t=!0),i=e.inputState.lastSelectionOrigin),e.dispatch({selection:r,scrollIntoView:t,userEvent:i}),!0}return!1}const Cr={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Tr=Be.ie&&Be.ie_version<=11;class Dr{constructor(t){this.view=t,this.active=!1,this.selectionRange=new oe,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=t.contentDOM,this.observer=new MutationObserver((e=>{for(let t of e)this.queue.push(t);(Be.ie&&Be.ie_version<=11||Be.ios&&t.composing)&&e.some((t=>"childList"==t.type&&t.removedNodes.length||"characterData"==t.type&&t.oldValue.length>t.target.nodeValue.length))?this.flushSoon():this.flush()})),Tr&&(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),"function"==typeof ResizeObserver&&(this.resizeScroll=new ResizeObserver((()=>{var t;(null===(t=this.view.docView)||void 0===t?void 0:t.lastUpdate)this.view.requestMeasure())),this.resizeContent.observe(t.contentDOM)),this.addWindowListeners(this.win=t.win),this.start(),"function"==typeof IntersectionObserver&&(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")))}),{threshold:[0,.001]}),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(t){this.view.inputState.runScrollHandlers(this.view,t),this.intersecting&&this.view.measure()}onScroll(t){this.intersecting&&this.flush(!1),this.onScrollChanged(t)}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(t){if(this.gapIntersection&&(t.length!=this.gaps.length||this.gaps.some(((e,i)=>e!=t[i])))){this.gapIntersection.disconnect();for(let e of t)this.gapIntersection.observe(e);this.gaps=t}}onSelectionChange(t){let e=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,n=this.selectionRange;if(i.state.facet(mi)?i.root.activeElement!=this.dom:!Qt(i.dom,n))return;let r=n.anchorNode&&i.docView.nearest(n.anchorNode);r&&r.ignoreEvent(t)?e||(this.selectionChanged=!1):(Be.ie&&Be.ie_version<=11||Be.android&&Be.chrome)&&!i.state.selection.main.empty&&n.focusNode&&te(n.focusNode,n.focusOffset,n.anchorNode,n.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:t}=this,e=Be.safari&&11==t.root.nodeType&&function(t){let e=t.activeElement;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}(this.dom.ownerDocument)==this.dom&&function(t){let e=null;function i(t){t.preventDefault(),t.stopImmediatePropagation(),e=t.getTargetRanges()[0]}if(t.contentDOM.addEventListener("beforeinput",i,!0),t.dom.ownerDocument.execCommand("indent"),t.contentDOM.removeEventListener("beforeinput",i,!0),!e)return null;let n=e.startContainer,r=e.startOffset,s=e.endContainer,o=e.endOffset,a=t.docView.domAtPos(t.state.selection.main.anchor);return te(a.node,a.offset,s,o)&&([n,r,s,o]=[s,o,n,r]),{anchorNode:n,anchorOffset:r,focusNode:s,focusOffset:o}}(this.view)||Yt(t.root);if(!e||this.selectionRange.eq(e))return!1;let i=Qt(this.dom,e);return i&&!this.selectionChanged&&t.inputState.lastFocusTime>Date.now()-200&&t.inputState.lastTouchTime{let t=this.delayedAndroidKey;t&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=t.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&t.force&&ue(this.dom,t.key,t.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(t)}this.delayedAndroidKey&&"Enter"!=t||(this.delayedAndroidKey={key:t,keyCode:e,force:this.lastChange{this.delayedFlush=-1,this.flush()})))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let t of this.observer.takeRecords())this.queue.push(t);return this.queue}processRecords(){let t=this.pendingRecords();t.length&&(this.queue=[]);let e=-1,i=-1,n=!1;for(let r of t){let t=this.readMutation(r);t&&(t.typeOver&&(n=!0),-1==e?({from:e,to:i}=t):(e=Math.min(t.from,e),i=Math.max(t.to,i)))}return{from:e,to:i,typeOver:n}}readChange(){let{from:t,to:e,typeOver:i}=this.processRecords(),n=this.selectionChanged&&Qt(this.dom,this.selectionRange);if(t<0&&!n)return null;t>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let r=new Ar(this.view,t,e,i);return this.view.docView.domChanged={newSel:r.newSel?r.newSel.main:null},r}flush(t=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;t&&this.readSelectionRange();let e=this.readChange();if(!e)return!1;let i=this.view.state,n=Mr(this.view,e);return this.view.state==i&&this.view.update([]),n}readMutation(t){let e=this.view.docView.nearest(t.target);if(!e||e.ignoreMutation(t))return null;if(e.markDirty("attributes"==t.type),"attributes"==t.type&&(e.flags|=4),"childList"==t.type){let i=Or(e,t.previousSibling||t.target.previousSibling,-1),n=Or(e,t.nextSibling||t.target.nextSibling,1);return{from:i?e.posAfter(i):e.posAtStart,to:n?e.posBefore(n):e.posAtEnd,typeOver:!1}}return"characterData"==t.type?{from:e.posAtStart,to:e.posAtEnd,typeOver:t.target.nodeValue==t.oldValue}:null}setWindow(t){t!=this.win&&(this.removeWindowListeners(this.win),this.win=t,this.addWindowListeners(this.win))}addWindowListeners(t){t.addEventListener("resize",this.onResize),t.addEventListener("beforeprint",this.onPrint),t.addEventListener("scroll",this.onScroll),t.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(t){t.removeEventListener("scroll",this.onScroll),t.removeEventListener("resize",this.onResize),t.removeEventListener("beforeprint",this.onPrint),t.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var t,e,i,n;this.stop(),null===(t=this.intersection)||void 0===t||t.disconnect(),null===(e=this.gapIntersection)||void 0===e||e.disconnect(),null===(i=this.resizeScroll)||void 0===i||i.disconnect(),null===(n=this.resizeContent)||void 0===n||n.disconnect();for(let t of this.scrollTargets)t.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 Or(t,e,i){for(;e;){let n=me.get(e);if(n&&n.parent==t)return n;let r=e.parentNode;e=r!=t.dom?r:i>0?e.nextSibling:e.previousSibling}return null}class Er{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}constructor(t={}){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);let{dispatch:e}=t;this.dispatchTransactions=t.dispatchTransactions||e&&(t=>t.forEach((t=>e(t,this))))||(t=>this.update(t)),this.dispatch=this.dispatch.bind(this),this._root=t.root||function(t){for(;t;){if(t&&(9==t.nodeType||11==t.nodeType&&t.host))return t;t=t.assignedSlot||t.parentNode}return null}(t.parent)||document,this.viewState=new rr(t.state||yt.create(t)),this.plugins=this.state.facet(vi).map((t=>new ki(t)));for(let t of this.plugins)t.update(this);this.observer=new Dr(this),this.inputState=new dn(this),this.inputState.ensureHandlers(this,this.plugins),this.docView=new Ji(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),t.parent&&t.parent.appendChild(this.dom)}dispatch(...t){let e=1==t.length&&t[0]instanceof ht?t:1==t.length&&Array.isArray(t[0])?t[0]:[this.state.update(...t)];this.dispatchTransactions(e,this)}update(t){if(0!=this.updateState)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let e,i=!1,n=!1,r=this.state;for(let e of t){if(e.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=e.state}if(this.destroyed)return void(this.viewState.state=r);let s=this.hasFocus,o=0,a=null;t.some((t=>t.annotation(In)))?(this.inputState.notifiedFocused=s,o=1):s!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=s,a=zn(r,s),a||(o=1));let l=this.observer.delayedAndroidKey,h=null;if(l?(this.observer.clearDelayedAndroidKey(),h=this.observer.readChange(),(h&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(h=null)):this.observer.clear(),r.facet(yt.phrases)!=this.state.facet(yt.phrases))return this.setState(r);e=Li.create(this,r,t),e.flags|=o;let c=this.viewState.scrollTarget;try{this.updateState=2;for(let e of t){if(c&&(c=c.map(e.changes)),e.scrollIntoView){let{main:t}=e.state.selection;c=new di(t.empty?t:B.cursor(t.head,t.head>t.anchor?-1:1))}for(let t of e.effects)t.is(pi)&&(c=t.value)}this.viewState.update(e,c),this.bidiCache=Pr.update(this.bidiCache,e.changes),e.empty||(this.updatePlugins(e),this.inputState.update(e)),i=this.docView.update(e),this.state.facet(Oi)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(t),this.docView.updateSelection(i,t.some((t=>t.isUserEvent("select.pointer"))))}finally{this.updateState=0}if(e.startState.facet(fr)!=e.state.facet(fr)&&(this.viewState.mustMeasureContent=!0),(i||n||c||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!e.empty)for(let t of this.state.facet(li))t(e);(a||h)&&Promise.resolve().then((()=>{a&&this.state==a.startState&&this.dispatch(a),h&&!Mr(this,h)&&l.force&&ue(this.contentDOM,l.key,l.keyCode)}))}setState(t){if(0!=this.updateState)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed)return void(this.viewState.state=t);this.updateState=2;let e=this.hasFocus;try{for(let t of this.plugins)t.destroy(this);this.viewState=new rr(t),this.plugins=t.facet(vi).map((t=>new ki(t))),this.pluginMap.clear();for(let t of this.plugins)t.update(this);this.docView=new Ji(this),this.inputState.ensureHandlers(this,this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}e&&this.focus(),this.requestMeasure()}updatePlugins(t){let e=t.startState.facet(vi),i=t.state.facet(vi);if(e!=i){let n=[];for(let r of i){let i=e.indexOf(r);if(i<0)n.push(new ki(r));else{let e=this.plugins[i];e.mustUpdate=t,n.push(e)}}for(let e of this.plugins)e.mustUpdate!=t&&e.destroy(this);this.plugins=n,this.pluginMap.clear(),this.inputState.ensureHandlers(this,this.plugins)}else for(let e of this.plugins)e.mustUpdate=t;for(let t=0;t-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey)return this.measureScheduled=-1,void this.requestMeasure();this.measureScheduled=0,t&&this.observer.forceFlush();let e=null,i=this.scrollDOM,n=i.scrollTop*this.scaleY,{scrollAnchorPos:r,scrollAnchorHeight:s}=this.viewState;Math.abs(n-this.viewState.scrollTop)>1&&(s=-1),this.viewState.scrollAnchorHeight=-1;try{for(let t=0;;t++){if(s<0)if(de(i))r=-1,s=this.viewState.heightMap.height;else{let t=this.viewState.scrollAnchorAt(n);r=t.from,s=t.top}this.updateState=1;let o=this.viewState.measure(this);if(!o&&!this.measureRequests.length&&null==this.viewState.scrollTarget)break;if(t>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let a=[];4&o||([this.measureRequests,a]=[a,this.measureRequests]);let l=a.map((t=>{try{return t.read(this)}catch(t){return gi(this.state,t),Br}})),h=Li.create(this,this.state,[]),c=!1;h.flags|=o,e?e.flags|=o:e=h,this.updateState=2,h.empty||(this.updatePlugins(h),this.inputState.update(h),this.updateAttrs(),c=this.docView.update(h));for(let t=0;t1||t<-1){n+=t,i.scrollTop=n/this.scaleY,s=-1;continue}}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(e&&!e.empty)for(let t of this.state.facet(li))t(e)}get themeClasses(){return pr+" "+(this.state.facet(dr)?mr:gr)+" "+this.state.facet(fr)}updateAttrs(){let t=Nr(this,bi,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),e={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(mi)?"true":"false",class:"cm-content",style:`${Be.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(e["aria-readonly"]="true"),Nr(this,xi,e);let i=this.observer.ignore((()=>{let i=je(this.contentDOM,this.contentAttrs,e),n=je(this.dom,this.editorAttrs,t);return i||n}));return this.editorAttrs=t,this.contentAttrs=e,i}showAnnouncements(t){let e=!0;for(let i of t)for(let t of i.effects)t.is(Er.announce)&&(e&&(this.announceDOM.textContent=""),e=!1,this.announceDOM.appendChild(document.createElement("div")).textContent=t.value)}mountStyles(){this.styleModules=this.state.facet(Oi);let t=this.state.facet(Er.cspNonce);Ft.mount(this.root,this.styleModules.concat(yr).reverse(),t?{nonce:t}:void 0)}readMeasured(){if(2==this.updateState)throw new Error("Reading the editor layout isn't allowed during an update");0==this.updateState&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(t){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame((()=>this.measure()))),t){if(this.measureRequests.indexOf(t)>-1)return;if(null!=t.key)for(let e=0;ee.spec==t))||null),e&&e.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(t){return this.readMeasured(),this.viewState.elementAtHeight(t)}lineBlockAtHeight(t){return this.readMeasured(),this.viewState.lineBlockAtHeight(t)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(t){return this.viewState.lineBlockAt(t)}get contentHeight(){return this.viewState.contentHeight}moveByChar(t,e,i){return fn(this,t,cn(this,t,e,i))}moveByGroup(t,e){return fn(this,t,cn(this,t,e,(e=>function(t,e,i){let n=t.state.charCategorizer(e),r=n(i);return t=>{let e=n(t);return r==mt.Space&&(r=e),r==e}}(this,t.head,e))))}moveToLineBoundary(t,e,i=!0){return function(t,e,i,n){let r=function(t,e){let i=t.lineBlockAt(e);if(Array.isArray(i.type))for(let t of i.type)if(t.to>e||t.to==e&&(t.to==i.to||t.type==Ke.Text))return t;return i}(t,e.head),s=n&&r.type==Ke.Text&&(t.lineWrapping||r.widgetLineBreaks)?t.coordsAtPos(e.assoc<0&&e.head>r.from?e.head-1:e.head):null;if(s){let e=t.dom.getBoundingClientRect(),n=t.textDirectionAt(r.from),o=t.posAtCoords({x:i==(n==Bi.LTR)?e.right-1:e.left+1,y:(s.top+s.bottom)/2});if(null!=o)return B.cursor(o,i?-1:1)}return B.cursor(i?r.to:r.from,i?-1:1)}(this,t,e,i)}moveVertically(t,e,i){return fn(this,t,function(t,e,i,n){let r=e.head,s=i?1:-1;if(r==(i?t.state.doc.length:0))return B.cursor(r,e.assoc);let o,a=e.goalColumn,l=t.contentDOM.getBoundingClientRect(),h=t.coordsAtPos(r),c=t.documentTop;if(h)null==a&&(a=h.left-l.left),o=s<0?h.top:h.bottom;else{let e=t.viewState.lineBlockAt(r);null==a&&(a=Math.min(l.right-l.left,t.defaultCharacterWidth*(r-e.from))),o=(s<0?e.top:e.bottom)+c}let u=l.left+a,f=null!=n?n:t.viewState.heightOracle.textHeight>>1;for(let i=0;;i+=10){let n=o+(f+i)*s,h=ln(t,{x:u,y:n},!1,s);if(nl.bottom||(s<0?hr))return B.cursor(h,e.assoc,void 0,a)}}(this,t,e,i))}domAtPos(t){return this.docView.domAtPos(t)}posAtDOM(t,e=0){return this.docView.posFromDOM(t,e)}posAtCoords(t,e=!0){return this.readMeasured(),ln(this,t,e)}coordsAtPos(t,e=1){this.readMeasured();let i=this.docView.coordsAt(t,e);if(!i||i.left==i.right)return i;let n=this.state.doc.lineAt(t),r=this.bidiSpans(n);return re(i,r[Fi.find(r,t-n.from,-1,e)].dir==Bi.LTR==e>0)}coordsForChar(t){return this.readMeasured(),this.docView.coordsForChar(t)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(t){return!this.state.facet(ui)||tthis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(t))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(t){if(t.length>Lr)return Ki(t.length);let e,i=this.textDirectionAt(t.from);for(let n of this.bidiCache)if(n.from==t.from&&n.dir==i&&(n.fresh||_i(n.isolates,e=Ci(this,t.from,t.to))))return n.order;e||(e=Ci(this,t.from,t.to));let n=function(t,e,i){if(!t)return[new Fi(0,0,e==Ni?1:0)];if(e==Pi&&!i.length&&!Vi.test(t))return Ki(t.length);if(i.length)for(;t.length>ji.length;)ji[ji.length]=256;let n=[],r=e==Pi?0:1;return $i(t,r,r,i,0,t.length,n),n}(t.text,i,e);return this.bidiCache.push(new Pr(t.from,t.to,i,e,!0,n)),n}get hasFocus(){var t;return(this.dom.ownerDocument.hasFocus()||Be.safari&&(null===(t=this.inputState)||void 0===t?void 0:t.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore((()=>{he(this.contentDOM),this.docView.updateSelection()}))}setRoot(t){this._root!=t&&(this._root=t,this.observer.setWindow((9==t.nodeType?t:t.ownerDocument).defaultView||window),this.mountStyles())}destroy(){for(let t of this.plugins)t.destroy(this);this.plugins=[],this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(t,e={}){return pi.of(new di("number"==typeof t?B.cursor(t):t,e.y,e.x,e.yMargin,e.xMargin))}static domEventHandlers(t){return yi.define((()=>({})),{eventHandlers:t})}static theme(t,e){let i=Ft.newName(),n=[fr.of(i),Oi.of(vr(`.${i}`,t))];return e&&e.dark&&n.push(dr.of(!0)),n}static baseTheme(t){return q.lowest(Oi.of(vr("."+pr,t,wr)))}static findFromDOM(t){var e;let i=t.querySelector(".cm-content"),n=i&&me.get(i)||me.get(t);return(null===(e=null==n?void 0:n.rootView)||void 0===e?void 0:e.view)||null}}Er.styleModule=Oi,Er.inputHandler=hi,Er.focusChangeEffect=ci,Er.perLineTextDirection=ui,Er.exceptionSink=ai,Er.updateListener=li,Er.editable=mi,Er.mouseSelectionStyle=oi,Er.dragMovesSelection=si,Er.clickAddsSelectionRange=ri,Er.decorations=Si,Er.atomicRanges=Ai,Er.bidiIsolatedRanges=Mi,Er.scrollMargins=Ti,Er.darkTheme=dr,Er.cspNonce=R.define({combine:t=>t.length?t[0]:""}),Er.contentAttributes=xi,Er.editorAttributes=bi,Er.lineWrapping=Er.contentAttributes.of({class:"cm-lineWrapping"}),Er.announce=lt.define();const Lr=4096,Br={};class Pr{constructor(t,e,i,n,r,s){this.from=t,this.to=e,this.dir=i,this.isolates=n,this.fresh=r,this.order=s}static update(t,e){if(e.empty&&!t.some((t=>t.fresh)))return t;let i=[],n=t.length?t[t.length-1].dir:Bi.LTR;for(let r=Math.max(0,t.length-10);r=0;r--){let e=n[r],s="function"==typeof e?e(t):e;s&&Ve(s,i)}return i}const Rr=Be.mac?"mac":Be.windows?"win":Be.linux?"linux":"key";function Ir(t,e,i){return e.altKey&&(t="Alt-"+t),e.ctrlKey&&(t="Ctrl-"+t),e.metaKey&&(t="Meta-"+t),!1!==i&&e.shiftKey&&(t="Shift-"+t),t}const zr=q.default(Er.domEventHandlers({keydown:(t,e)=>jr(Vr(e.state),t,e,"editor")})),Hr=R.define({enables:zr}),Wr=new WeakMap;function Vr(t){let e=t.facet(Hr),i=Wr.get(e);return i||Wr.set(e,i=function(t,e=Rr){let i=Object.create(null),n=Object.create(null),r=(t,e)=>{let i=n[t];if(null==i)n[t]=e;else if(i!=e)throw new Error("Key binding "+t+" is used both as a regular binding and as a multi-stroke prefix")},s=(t,n,s,o,a)=>{var l,h;let c=i[t]||(i[t]=Object.create(null)),u=n.split(/ (?!$)/).map((t=>function(t,e){const i=t.split(/-(?!$)/);let n,r,s,o,a=i[i.length-1];"Space"==a&&(a=" ");for(let t=0;t{let n=Fr={view:e,prefix:i,scope:t};return setTimeout((()=>{Fr==n&&(Fr=null)}),_r),!0}]})}let f=u.join(" ");r(f,!1);let d=c[f]||(c[f]={preventDefault:!1,stopPropagation:!1,run:(null===(h=null===(l=c._any)||void 0===l?void 0:l.run)||void 0===h?void 0:h.slice())||[]});s&&d.run.push(s),o&&(d.preventDefault=!0),a&&(d.stopPropagation=!0)};for(let n of t){let t=n.scope?n.scope.split(" "):["editor"];if(n.any)for(let e of t){let t=i[e]||(i[e]=Object.create(null));t._any||(t._any={preventDefault:!1,stopPropagation:!1,run:[]});for(let e in t)t[e].run.push(n.any)}let r=n[e]||n.key;if(r)for(let e of t)s(e,r,n.run,n.preventDefault,n.stopPropagation),n.shift&&s(e,"Shift-"+r,n.shift,n.preventDefault,n.stopPropagation)}return i}(e.reduce(((t,e)=>t.concat(e)),[]))),i}let Fr=null;const _r=4e3;function jr(t,e,i,n){let r=function(t){var e=!(Kt&&t.metaKey&&t.shiftKey&&!t.ctrlKey&&!t.altKey||Gt&&t.shiftKey&&t.key&&1==t.key.length||"Unidentified"==t.key)&&t.key||(t.shiftKey?$t:qt)[t.keyCode]||t.key||"Unidentified";return"Esc"==e&&(e="Escape"),"Del"==e&&(e="Delete"),"Left"==e&&(e="ArrowLeft"),"Up"==e&&(e="ArrowUp"),"Right"==e&&(e="ArrowRight"),"Down"==e&&(e="ArrowDown"),e}(e),s=k(v(r,0))==r.length&&" "!=r,o="",a=!1,l=!1,h=!1;Fr&&Fr.view==i&&Fr.scope==n&&(o=Fr.prefix+" ",mn.indexOf(e.keyCode)<0&&(l=!0,Fr=null));let c,u,f=new Set,d=t=>{if(t){for(let n of t.run)if(!f.has(n)&&(f.add(n),n(i,e)))return t.stopPropagation&&(h=!0),!0;t.preventDefault&&(t.stopPropagation&&(h=!0),l=!0)}return!1},p=t[n];return p&&(d(p[o+Ir(r,e,!s)])?a=!0:s&&(e.altKey||e.metaKey||e.ctrlKey)&&!(Be.windows&&e.ctrlKey&&e.altKey)&&(c=qt[e.keyCode])&&c!=r?(d(p[o+Ir(c,e,!0)])||e.shiftKey&&(u=$t[e.keyCode])!=r&&u!=c&&d(p[o+Ir(u,e,!1)]))&&(a=!0):s&&e.shiftKey&&d(p[o+Ir(r,e,!0)])&&(a=!0),!a&&d(p._any)&&(a=!0)),l&&(a=!0),a&&h&&e.stopPropagation(),a}Be.ios;function qr(t,e,i,n,r){e.lastIndex=0;for(let s,o=t.iterRange(i,n),a=i;!o.next().done;a+=o.value.length)if(!o.lineBreak)for(;s=e.exec(o.value);)r(a+s.index,s)}class $r{constructor(t){const{regexp:e,decoration:i,decorate:n,boundary:r,maxLength:s=1e3}=t;if(!e.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=e,n)this.addMatch=(t,e,i,r)=>n(r,i,i+t[0].length,t,e);else if("function"==typeof i)this.addMatch=(t,e,n,r)=>{let s=i(t,e,n);s&&r(n,n+t[0].length,s)};else{if(!i)throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.addMatch=(t,e,n,r)=>r(n,n+t[0].length,i)}this.boundary=r,this.maxLength=s}createDeco(t){let e=new Ct,i=e.add.bind(e);for(let{from:e,to:n}of function(t,e){let i=t.visibleRanges;if(1==i.length&&i[0].from==t.viewport.from&&i[0].to==t.viewport.to)return i;let n=[];for(let{from:r,to:s}of i)r=Math.max(t.state.doc.lineAt(r).from,r-e),s=Math.min(t.state.doc.lineAt(s).to,s+e),n.length&&n[n.length-1].to>=r?n[n.length-1].to=s:n.push({from:r,to:s});return n}(t,this.maxLength))qr(t.state.doc,this.regexp,e,n,((e,n)=>this.addMatch(n,t,e,i)));return e.finish()}updateDeco(t,e){let i=1e9,n=-1;return t.docChanged&&t.changes.iterChanges(((e,r,s,o)=>{o>t.view.viewport.from&&s1e3?this.createDeco(t.view):n>-1?this.updateRange(t.view,e.map(t.changes),i,n):e}updateRange(t,e,i,n){for(let r of t.visibleRanges){let s=Math.max(r.from,i),o=Math.min(r.to,n);if(o>s){let i=t.state.doc.lineAt(s),n=i.toi.from;s--)if(this.boundary.test(i.text[s-1-i.from])){a=s;break}for(;oc.push(i.range(t,e));if(i==n)for(this.regexp.lastIndex=a-i.from;(h=this.regexp.exec(i.text))&&h.indexthis.addMatch(i,t,e,u)));e=e.update({filterFrom:a,filterTo:l,filter:(t,e)=>tl,add:c})}}return e}}const Kr=null!=/x/.unicode?"gu":"g",Gr=new RegExp("[\0-\b\n--Ÿ­؜​‎‏\u2028\u2029‭‮⁦⁧⁩\ufeff-]",Kr),Ur={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let Jr=null;const Yr=R.define({combine(t){let e=kt(t,{render:null,specialChars:Gr,addSpecialChars:null});return(e.replaceTabs=!function(){var t;if(null==Jr&&"undefined"!=typeof document&&document.body){let e=document.body.style;Jr=null!=(null!==(t=e.tabSize)&&void 0!==t?t:e.MozTabSize)}return Jr||!1}())&&(e.specialChars=new RegExp("\t|"+e.specialChars.source,Kr)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,Kr)),e}});let Xr=null;class Qr extends $e{constructor(t,e){super(),this.options=t,this.code=e}eq(t){return t.code==this.code}toDOM(t){let e=function(t){return t>=32?"•":10==t?"␤":String.fromCharCode(9216+t)}(this.code),i=t.state.phrase("Control character")+" "+(Ur[this.code]||"0x"+this.code.toString(16)),n=this.options.render&&this.options.render(this.code,i,e);if(n)return n;let r=document.createElement("span");return r.textContent=e,r.title=i,r.setAttribute("aria-label",i),r.className="cm-specialChar",r}ignoreEvent(){return!1}}class Zr extends $e{constructor(t){super(),this.width=t}eq(t){return t.width==this.width}toDOM(){let t=document.createElement("span");return t.textContent="\t",t.className="cm-tab",t.style.width=this.width+"px",t}ignoreEvent(){return!1}}const ts=R.define({combine(t){let e,i;for(let n of t)e=e||n.topContainer,i=i||n.bottomContainer;return{topContainer:e,bottomContainer:i}}});function es(t,e){let i=t.plugin(is),n=i?i.specs.indexOf(e):-1;return n>-1?i.panels[n]:null}const is=yi.fromClass(class{constructor(t){this.input=t.state.facet(ss),this.specs=this.input.filter((t=>t)),this.panels=this.specs.map((e=>e(t)));let e=t.state.facet(ts);this.top=new ns(t,!0,e.topContainer),this.bottom=new ns(t,!1,e.bottomContainer),this.top.sync(this.panels.filter((t=>t.top))),this.bottom.sync(this.panels.filter((t=>!t.top)));for(let t of this.panels)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}update(t){let e=t.state.facet(ts);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new ns(t.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new ns(t.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let i=t.state.facet(ss);if(i!=this.input){let e=i.filter((t=>t)),n=[],r=[],s=[],o=[];for(let i of e){let e,a=this.specs.indexOf(i);a<0?(e=i(t.view),o.push(e)):(e=this.panels[a],e.update&&e.update(t)),n.push(e),(e.top?r:s).push(e)}this.specs=e,this.panels=n,this.top.sync(r),this.bottom.sync(s);for(let t of o)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}else for(let e of this.panels)e.update&&e.update(t)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:t=>Er.scrollMargins.of((e=>{let i=e.plugin(t);return i&&{top:i.top.scrollMargin(),bottom:i.bottom.scrollMargin()}}))});class ns{constructor(t,e,i){this.view=t,this.top=e,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(t){for(let e of this.panels)e.destroy&&t.indexOf(e)<0&&e.destroy();this.panels=t,this.syncDOM()}syncDOM(){if(0==this.panels.length)return void(this.dom&&(this.dom.remove(),this.dom=void 0));if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let t=this.dom.firstChild;for(let e of this.panels)if(e.dom.parentNode==this.dom){for(;t!=e.dom;)t=rs(t);t=t.nextSibling}else this.dom.insertBefore(e.dom,t);for(;t;)t=rs(t)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(this.container&&this.classes!=this.view.themeClasses){for(let t of this.classes.split(" "))t&&this.container.classList.remove(t);for(let t of(this.classes=this.view.themeClasses).split(" "))t&&this.container.classList.add(t)}}}function rs(t){let e=t.nextSibling;return t.remove(),e}const ss=R.define({enables:is});class os extends bt{compare(t){return this==t||this.constructor==t.constructor&&this.eq(t)}eq(t){return!1}destroy(t){}}os.prototype.elementClass="",os.prototype.toDOM=void 0,os.prototype.mapMode=x.TrackBefore,os.prototype.startSide=os.prototype.endSide=-1,os.prototype.point=!0;const as=R.define(),ls=R.define(),hs=R.define({combine:t=>t.some((t=>t))});function cs(t){let e=[us];return t&&!1===t.fixed&&e.push(hs.of(!0)),e}const us=yi.fromClass(class{constructor(t){this.view=t,this.prevViewport=t.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=t.state.facet(ls).map((e=>new gs(t,e)));for(let t of this.gutters)this.dom.appendChild(t.dom);this.fixed=!t.state.facet(hs),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),t.scrollDOM.insertBefore(this.dom,t.contentDOM)}update(t){if(this.updateGutters(t)){let e=this.prevViewport,i=t.view.viewport,n=Math.min(e.to,i.to)-Math.max(e.from,i.from);this.syncGutters(n<.8*(i.to-i.from))}t.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight+"px"),this.view.state.facet(hs)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=t.view.viewport}syncGutters(t){let e=this.dom.nextSibling;t&&this.dom.remove();let i=Mt.iter(this.view.state.facet(as),this.view.viewport.from),n=[],r=this.gutters.map((t=>new ps(t,this.view.viewport,-this.view.documentPadding.top)));for(let t of this.view.viewportLineBlocks)if(n.length&&(n=[]),Array.isArray(t.type)){let e=!0;for(let s of t.type)if(s.type==Ke.Text&&e){ds(i,n,s.from);for(let t of r)t.line(this.view,s,n);e=!1}else if(s.widget)for(let t of r)t.widget(this.view,s)}else if(t.type==Ke.Text){ds(i,n,t.from);for(let e of r)e.line(this.view,t,n)}else if(t.widget)for(let e of r)e.widget(this.view,t);for(let t of r)t.finish();t&&this.view.scrollDOM.insertBefore(this.dom,e)}updateGutters(t){let e=t.startState.facet(ls),i=t.state.facet(ls),n=t.docChanged||t.heightChanged||t.viewportChanged||!Mt.eq(t.startState.facet(as),t.state.facet(as),t.view.viewport.from,t.view.viewport.to);if(e==i)for(let e of this.gutters)e.update(t)&&(n=!0);else{n=!0;let r=[];for(let n of i){let i=e.indexOf(n);i<0?r.push(new gs(this.view,n)):(this.gutters[i].update(t),r.push(this.gutters[i]))}for(let t of this.gutters)t.dom.remove(),r.indexOf(t)<0&&t.destroy();for(let t of r)this.dom.appendChild(t.dom);this.gutters=r}return n}destroy(){for(let t of this.gutters)t.destroy();this.dom.remove()}},{provide:t=>Er.scrollMargins.of((e=>{let i=e.plugin(t);return i&&0!=i.gutters.length&&i.fixed?e.textDirection==Bi.LTR?{left:i.dom.offsetWidth*e.scaleX}:{right:i.dom.offsetWidth*e.scaleX}:null}))});function fs(t){return Array.isArray(t)?t:[t]}function ds(t,e,i){for(;t.value&&t.from<=i;)t.from==i&&e.push(t.value),t.next()}class ps{constructor(t,e,i){this.gutter=t,this.height=i,this.i=0,this.cursor=Mt.iter(t.markers,e.from)}addElement(t,e,i){let{gutter:n}=this,r=e.top-this.height;if(this.i==n.elements.length){let s=new ms(t,e.height,r,i);n.elements.push(s),n.dom.appendChild(s.dom)}else n.elements[this.i].update(t,e.height,r,i);this.height=e.bottom,this.i++}line(t,e,i){let n=[];ds(this.cursor,n,e.from),i.length&&(n=n.concat(i));let r=this.gutter.config.lineMarker(t,e,n);r&&n.unshift(r);let s=this.gutter;(0!=n.length||s.config.renderEmptyElements)&&this.addElement(t,e,n)}widget(t,e){let i=this.gutter.config.widgetMarker(t,e.widget,e);i&&this.addElement(t,e,[i])}finish(){let t=this.gutter;for(;t.elements.length>this.i;){let e=t.elements.pop();t.dom.removeChild(e.dom),e.destroy()}}}class gs{constructor(t,e){this.view=t,this.config=e,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in e.domEventHandlers)this.dom.addEventListener(i,(n=>{let r,s=n.target;if(s!=this.dom&&this.dom.contains(s)){for(;s.parentNode!=this.dom;)s=s.parentNode;let t=s.getBoundingClientRect();r=(t.top+t.bottom)/2}else r=n.clientY;let o=t.lineBlockAtHeight(r-t.documentTop);e.domEventHandlers[i](t,o,n)&&n.preventDefault()}));this.markers=fs(e.markers(t)),e.initialSpacer&&(this.spacer=new ms(t,0,0,[e.initialSpacer(t)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(t){let e=this.markers;if(this.markers=fs(this.config.markers(t.view)),this.spacer&&this.config.updateSpacer){let e=this.config.updateSpacer(this.spacer.markers[0],t);e!=this.spacer.markers[0]&&this.spacer.update(t.view,0,0,[e])}let i=t.view.viewport;return!Mt.eq(this.markers,e,i.from,i.to)||!!this.config.lineMarkerChange&&this.config.lineMarkerChange(t)}destroy(){for(let t of this.elements)t.destroy()}}class ms{constructor(t,e,i,n){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(t,e,i,n)}update(t,e,i,n){this.height!=e&&(this.height=e,this.dom.style.height=e/t.scaleY+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i/t.scaleY+"px":""),function(t,e){if(t.length!=e.length)return!1;for(let i=0;ikt(t,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(t,e){let i=Object.assign({},t);for(let t in e){let n=i[t],r=e[t];i[t]=n?(t,e,i)=>n(t,e,i)||r(t,e,i):r}return i}})});class ys extends os{constructor(t){super(),this.number=t}eq(t){return this.number==t.number}toDOM(){return document.createTextNode(this.number)}}function ks(t,e){return t.state.facet(vs).formatNumber(e,t.state)}const bs=ls.compute([vs],(t=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers:t=>t.state.facet(ws),lineMarker:(t,e,i)=>i.some((t=>t.toDOM))?null:new ys(ks(t,t.state.doc.lineAt(e.from).number)),widgetMarker:()=>null,lineMarkerChange:t=>t.startState.facet(vs)!=t.state.facet(vs),initialSpacer:t=>new ys(ks(t,xs(t.state.doc.lines))),updateSpacer(t,e){let i=ks(e.view,xs(e.view.state.doc.lines));return i==t.number?t:new ys(i)},domEventHandlers:t.facet(vs).domEventHandlers})));function xs(t){let e=9;for(;e{let{doc:r}=i.state,s=v(e[0],0);if(9==s){let t=r.lineAt(n),e=i.state.tabSize,s=zt(t.text,e,n-t.from);return Ge.replace({widget:new Zr((e-s%e)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=Ge.replace({widget:new Qr(t,s)}))},boundary:t.replaceTabs?void 0:/[^]/})}update(t){let e=t.state.facet(Yr);t.startState.facet(Yr)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(t.view)):this.decorations=this.decorator.updateDeco(t,this.decorations)}},{decorations:t=>t.decorations}))]}({render:function(e,i,n){i=t[e]||mw.msg("codemirror-control-character",e);var r=document.createElement("span");return r.className="cm-specialChar",160!==e&&8239!==e||(n="·",r.className="cm-special-char-nbsp"),r.textContent=n,r.title=i,r.setAttribute("aria-label",i),r},addSpecialChars:/\u00a0|\u202f/g})}},{key:"initialize",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.defaultExtensions;this.state=yt.create({doc:this.$textarea.textSelection("getContents"),extensions:e}),this.view=new Er({state:this.state,parent:this.$textarea.parent()[0]}),this.$textarea.hide(),this.$textarea[0].form&&this.$textarea[0].form.addEventListener("submit",(function(){t.$textarea.val(t.view.state.doc.toString())})),$(this.view.dom).textSelection("register",this.cmTextSelection),this.$textarea.textSelection("register",this.cmTextSelection),mw.hook("ext.CodeMirror.switch").fire(!0,$(this.view.dom))}},{key:"logUsage",value:function(t){var e=Object.assign({session_token:mw.user.sessionId(),user_id:mw.user.getId()},t),i=mw.config.get("wgUserEditCountBucket");null!==i&&(e.user_edit_count_bucket=i),mw.track("event.CodeMirrorUsage",e)}},{key:"setCodeMirrorPreference",value:function(t){mw.user.isNamed()&&((new mw.Api).saveOption("usecodemirror",t?1:0),mw.user.options.set("usecodemirror",t?1:0))}},{key:"cmTextSelection",get:function(){var t=this,e=$(this.view.dom);return{getContents:function(){return t.view.state.doc.toString()},setContents:function(i){return t.view.dispatch({changes:{from:0,to:t.view.state.doc.length,insert:i}}),e},getSelection:function(){return t.view.state.sliceDoc(t.view.state.selection.main.from,t.view.state.selection.main.to)},setSelection:function(){var i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{start:0,end:0};return t.view.dispatch({selection:{anchor:i.start,head:i.end||i.start}}),t.view.focus(),e},replaceSelection:function(i){return t.view.dispatch(t.view.state.replaceSelection(i)),e},getCaretPosition:function(e){return e.startAndEnd?[t.view.state.selection.main.from,t.view.state.selection.main.to]:t.view.state.selection.main.head},scrollToCaretPosition:function(){return t.view.dispatch({effects:Er.scrollIntoView(t.view.state.selection.main.head)}),e}}}}],i&&As(e.prototype,i),Object.defineProperty(e,"prototype",{writable:!1}),t}();const Ts=1024;let Ds=0;class Os{constructor(t,e){this.from=t,this.to=e}}class Es{constructor(t={}){this.id=Ds++,this.perNode=!!t.perNode,this.deserialize=t.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(t){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return"function"!=typeof t&&(t=Ps.match(t)),e=>{let i=t(e);return void 0===i?null:[this,i]}}}Es.closedBy=new Es({deserialize:t=>t.split(" ")}),Es.openedBy=new Es({deserialize:t=>t.split(" ")}),Es.group=new Es({deserialize:t=>t.split(" ")}),Es.isolate=new Es({deserialize:t=>{if(t&&"rtl"!=t&&"ltr"!=t&&"auto"!=t)throw new RangeError("Invalid value for isolate: "+t);return t||"auto"}}),Es.contextHash=new Es({perNode:!0}),Es.lookAhead=new Es({perNode:!0}),Es.mounted=new Es({perNode:!0});class Ls{constructor(t,e,i){this.tree=t,this.overlay=e,this.parser=i}static get(t){return t&&t.props&&t.props[Es.mounted.id]}}const Bs=Object.create(null);class Ps{constructor(t,e,i,n=0){this.name=t,this.props=e,this.id=i,this.flags=n}static define(t){let e=t.props&&t.props.length?Object.create(null):Bs,i=(t.top?1:0)|(t.skipped?2:0)|(t.error?4:0)|(null==t.name?8:0),n=new Ps(t.name||"",e,t.id,i);if(t.props)for(let i of t.props)if(Array.isArray(i)||(i=i(n)),i){if(i[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");e[i[0].id]=i[1]}return n}prop(t){return this.props[t.id]}get isTop(){return(1&this.flags)>0}get isSkipped(){return(2&this.flags)>0}get isError(){return(4&this.flags)>0}get isAnonymous(){return(8&this.flags)>0}is(t){if("string"==typeof t){if(this.name==t)return!0;let e=this.prop(Es.group);return!!e&&e.indexOf(t)>-1}return this.id==t}static match(t){let e=Object.create(null);for(let i in t)for(let n of i.split(" "))e[n]=t[i];return t=>{for(let i=t.prop(Es.group),n=-1;n<(i?i.length:0);n++){let r=e[n<0?t.name:i[n]];if(r)return r}}}}Ps.none=new Ps("",Object.create(null),0,8);class Ns{constructor(t){this.types=t;for(let e=0;e=e){let o=new qs(s.tree,s.overlay[0].from+t.from,-1,t);(r||(r=[n])).push(_s(o,e,i,!1))}}return r?Js(r):n}(this,t,e)}iterate(t){let{enter:e,leave:i,from:n=0,to:r=this.length}=t,s=t.mode||0,o=(s&zs.IncludeAnonymous)>0;for(let t=this.cursor(s|zs.IncludeAnonymous);;){let s=!1;if(t.from<=r&&t.to>=n&&(!o&&t.type.isAnonymous||!1!==e(t))){if(t.firstChild())continue;s=!0}for(;s&&i&&(o||!t.type.isAnonymous)&&i(t),!t.nextSibling();){if(!t.parent())return;s=!0}}}prop(t){return t.perNode?this.props?this.props[t.id]:void 0:this.type.prop(t)}get propValues(){let t=[];if(this.props)for(let e in this.props)t.push([+e,this.props[e]]);return t}balance(t={}){return this.children.length<=8?this:eo(Ps.none,this.children,this.positions,0,this.children.length,0,this.length,((t,e,i)=>new Hs(this.type,t,e,i,this.propValues)),t.makeTree||((t,e,i)=>new Hs(Ps.none,t,e,i)))}static build(t){return function(t){var e;let{buffer:i,nodeSet:n,maxBufferLength:r=Ts,reused:s=[],minRepeatType:o=n.types.length}=t,a=Array.isArray(i)?new Ws(i,i.length):i,l=n.types,h=0,c=0;function u(t,e,i,m,w,v){let{id:y,start:k,end:b,size:x}=a,S=c;for(;x<0;){if(a.next(),-1==x){let e=s[y];return i.push(e),void m.push(k-t)}if(-3==x)return void(h=y);if(-4==x)return void(c=y);throw new RangeError(`Unrecognized record size: ${x}`)}let A,M,C=l[y],T=k-t;if(b-k<=r&&(M=function(t,e){let i=a.fork(),n=0,s=0,l=0,h=i.end-r,c={size:0,start:0,skip:0};t:for(let r=i.pos-t;i.pos>r;){let t=i.size;if(i.id==e&&t>=0){c.size=n,c.start=s,c.skip=l,l+=4,n+=4,i.next();continue}let a=i.pos-t;if(t<0||a=o?4:0,f=i.start;for(i.next();i.pos>a;){if(i.size<0){if(-3!=i.size)break t;u+=4}else i.id>=o&&(u+=4);i.next()}s=f,n+=t,l+=u}return(e<0||n==t)&&(c.size=n,c.start=s,c.skip=l),c.size>4?c:void 0}(a.pos-e,w))){let e=new Uint16Array(M.size-M.skip),i=a.pos-M.size,r=e.length;for(;a.pos>i;)r=g(M.start,e,r);A=new Vs(e,b-M.start,n),T=M.start-t}else{let t=a.pos-x;a.next();let e=[],i=[],n=y>=o?y:-1,s=0,l=b;for(;a.pos>t;)n>=0&&a.id==n&&a.size>=0?(a.end<=l-r&&(d(e,i,k,s,a.end,l,n,S),s=e.length,l=a.end),a.next()):v>2500?f(k,t,e,i):u(k,t,e,i,n,v+1);if(n>=0&&s>0&&s-1&&s>0){let t=function(t){return(e,i,n)=>{let r,s,o=0,a=e.length-1;if(a>=0&&(r=e[a])instanceof Hs){if(!a&&r.type==t&&r.length==n)return r;(s=r.prop(Es.lookAhead))&&(o=i[a]+r.length+s)}return p(t,e,i,n,o)}}(C);A=eo(C,e,i,0,e.length,0,b-k,t,t)}else A=p(C,e,i,b-k,S-b)}i.push(A),m.push(T)}function f(t,e,i,s){let o=[],l=0,h=-1;for(;a.pos>e;){let{id:t,start:e,end:i,size:n}=a;if(n>4)a.next();else{if(h>-1&&e=0;t-=3)e[i++]=o[t],e[i++]=o[t+1]-r,e[i++]=o[t+2]-r,e[i++]=i;i.push(new Vs(e,o[2]-r,n)),s.push(r-t)}}function d(t,e,i,r,s,o,a,l){let h=[],c=[];for(;t.length>r;)h.push(t.pop()),c.push(e.pop()+i-s);t.push(p(n.types[a],h,c,o-s,l-o)),e.push(s-i)}function p(t,e,i,n,r=0,s){if(h){let t=[Es.contextHash,h];s=s?[t].concat(s):[t]}if(r>25){let t=[Es.lookAhead,r];s=s?[t].concat(s):[t]}return new Hs(t,e,i,n,s)}function g(t,e,i){let{id:n,start:r,end:s,size:l}=a;if(a.next(),l>=0&&n4){let n=a.pos-(l-4);for(;a.pos>n;)i=g(t,e,i)}e[--i]=o,e[--i]=s-t,e[--i]=r-t,e[--i]=n}else-3==l?h=n:-4==l&&(c=n);return i}let m=[],w=[];for(;a.pos>0;)u(t.start||0,t.bufferStart||0,m,w,-1,0);let v=null!==(e=t.length)&&void 0!==e?e:m.length?w[0]+m[0].length:0;return new Hs(l[t.topID],m.reverse(),w.reverse(),v)}(t)}}Hs.empty=new Hs(Ps.none,[],[],0);class Ws{constructor(t,e){this.buffer=t,this.index=e}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new Ws(this.buffer,this.index)}}class Vs{constructor(t,e,i){this.buffer=t,this.length=e,this.set=i}get type(){return Ps.none}toString(){let t=[];for(let e=0;e0));a=s[a+3]);return o}slice(t,e,i){let n=this.buffer,r=new Uint16Array(e-t),s=0;for(let o=t,a=0;o=e&&ie;case 1:return i<=e&&n>e;case 2:return n>e;case 4:return!0}}function _s(t,e,i,n){for(var r;t.from==t.to||(i<1?t.from>=e:t.from>e)||(i>-1?t.to<=e:t.to0?o.length:-1;t!=l;t+=e){let l=o[t],h=a[t]+s.from;if(Fs(n,i,h,h+l.length))if(l instanceof Vs){if(r&zs.ExcludeBuffers)continue;let o=l.findChild(0,l.buffer.length,e,i-h,n);if(o>-1)return new Us(new Gs(s,l,t,h),null,o)}else if(r&zs.IncludeAnonymous||!l.type.isAnonymous||Qs(l)){let o;if(!(r&zs.IgnoreMounts)&&(o=Ls.get(l))&&!o.overlay)return new qs(o.tree,h,t,s);let a=new qs(l,h,t,s);return r&zs.IncludeAnonymous||!a.type.isAnonymous?a:a.nextChild(e<0?l.children.length-1:0,e,i,n)}}if(r&zs.IncludeAnonymous||!s.type.isAnonymous)return null;if(t=s.index>=0?s.index+e:e<0?-1:s._parent._tree.children.length,s=s._parent,!s)return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(t){return this.nextChild(0,1,t,2)}childBefore(t){return this.nextChild(this._tree.children.length-1,-1,t,-2)}enter(t,e,i=0){let n;if(!(i&zs.IgnoreOverlays)&&(n=Ls.get(this._tree))&&n.overlay){let i=t-this.from;for(let{from:t,to:r}of n.overlay)if((e>0?t<=i:t=i:r>i))return new qs(n.tree,n.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,t,e,i)}nextSignificantParent(){let t=this;for(;t.type.isAnonymous&&t._parent;)t=t._parent;return t}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function $s(t,e,i,n){let r=t.cursor(),s=[];if(!r.firstChild())return s;if(null!=i)for(;!r.type.is(i);)if(!r.nextSibling())return s;for(;;){if(null!=n&&r.type.is(n))return s;if(r.type.is(e)&&s.push(r.node),!r.nextSibling())return null==n?s:[]}}function Ks(t,e,i=e.length-1){for(let n=t.parent;i>=0;n=n.parent){if(!n)return!1;if(!n.type.isAnonymous){if(e[i]&&e[i]!=n.name)return!1;i--}}return!0}class Gs{constructor(t,e,i,n){this.parent=t,this.buffer=e,this.index=i,this.start=n}}class Us extends js{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(t,e,i){super(),this.context=t,this._parent=e,this.index=i,this.type=t.buffer.set.types[t.buffer.buffer[i]]}child(t,e,i){let{buffer:n}=this.context,r=n.findChild(this.index+4,n.buffer[this.index+3],t,e-this.context.start,i);return r<0?null:new Us(this.context,this,r)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(t){return this.child(1,t,2)}childBefore(t){return this.child(-1,t,-2)}enter(t,e,i=0){if(i&zs.ExcludeBuffers)return null;let{buffer:n}=this.context,r=n.findChild(this.index+4,n.buffer[this.index+3],e>0?1:-1,t-this.context.start,e);return r<0?null:new Us(this.context,this,r)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(t){return this._parent?null:this.context.parent.nextChild(this.context.index+t,t,0,4)}get nextSibling(){let{buffer:t}=this.context,e=t.buffer[this.index+3];return e<(this._parent?t.buffer[this._parent.index+3]:t.buffer.length)?new Us(this.context,this._parent,e):this.externalSibling(1)}get prevSibling(){let{buffer:t}=this.context,e=this._parent?this._parent.index+4:0;return this.index==e?this.externalSibling(-1):new Us(this.context,this._parent,t.findChild(e,this.index,-1,0,4))}get tree(){return null}toTree(){let t=[],e=[],{buffer:i}=this.context,n=this.index+4,r=i.buffer[this.index+3];if(r>n){let s=i.buffer[this.index+1];t.push(i.slice(n,r,s)),e.push(0)}return new Hs(this.type,t,e,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function Js(t){if(!t.length)return null;let e=0,i=t[0];for(let n=1;ni.from||r.to0){if(this.index-1)for(let n=e+t,r=t<0?-1:i._tree.children.length;n!=r;n+=t){let t=i._tree.children[n];if(this.mode&zs.IncludeAnonymous||t instanceof Vs||!t.type.isAnonymous||Qs(t))return!1}return!0}move(t,e){if(e&&this.enterChild(t,0,4))return!0;for(;;){if(this.sibling(t))return!0;if(this.atLastNode(t)||!this.parent())return!1}}next(t=!0){return this.move(1,t)}prev(t=!0){return this.move(-1,t)}moveTo(t,e=0){for(;(this.from==this.to||(e<1?this.from>=t:this.from>t)||(e>-1?this.to<=t:this.to=0;){for(let s=t;s;s=s._parent)if(s.index==n){if(n==this.index)return s;e=s,i=r+1;break t}n=this.stack[--r]}for(let t=i;t=0;r--){if(r<0)return Ks(this.node,t,n);let s=i[e.buffer[this.stack[r]]];if(!s.isAnonymous){if(t[n]&&t[n]!=s.name)return!1;n--}}return!0}}function Qs(t){return t.children.some((t=>t instanceof Vs||!t.type.isAnonymous||Qs(t)))}const Zs=new WeakMap;function to(t,e){if(!t.isAnonymous||e instanceof Vs||e.type!=t)return 1;let i=Zs.get(e);if(null==i){i=1;for(let n of e.children){if(n.type!=t||!(n instanceof Hs)){i=1;break}i+=to(t,n)}Zs.set(e,i)}return i}function eo(t,e,i,n,r,s,o,a,l){let h=0;for(let i=n;i=c)break;p+=e}if(h==r+1){if(p>c){let t=i[r];e(t.children,t.positions,0,t.children.length,n[r]+a);continue}u.push(i[r])}else{let e=n[h-1]+i[h-1].length-d;u.push(eo(t,i,n,r,h,d,e,null,l))}f.push(d+a-s)}}(e,i,n,r,0),(a||l)(u,f,o)}class io{constructor(t,e,i,n,r=!1,s=!1){this.from=t,this.to=e,this.tree=i,this.offset=n,this.open=(r?1:0)|(s?2:0)}get openStart(){return(1&this.open)>0}get openEnd(){return(2&this.open)>0}static addTree(t,e=[],i=!1){let n=[new io(0,t.length,t,0,!1,i)];for(let i of e)i.to>t.length&&n.push(i);return n}static applyChanges(t,e,i=128){if(!e.length)return t;let n=[],r=1,s=t.length?t[0]:null;for(let o=0,a=0,l=0;;o++){let h=o=i)for(;s&&s.from=e.from||c<=e.to||l){let t=Math.max(e.from,a)-l,i=Math.min(e.to,c)-l;e=t>=i?null:new io(t,i,e.tree,e.offset+l,o>0,!!h)}if(e&&n.push(e),s.to>c)break;s=rnew Os(t.from,t.to))):[new Os(0,0)]:[new Os(0,t.length)],this.createParse(t,e||[],i)}parse(t,e,i){let n=this.startParse(t,e,i);for(;;){let t=n.advance();if(t)return t}}}class ro{constructor(t){this.string=t}get length(){return this.string.length}chunk(t){return this.string.slice(t)}get lineChunks(){return!1}read(t,e){return this.string.slice(t,e)}}new Es({perNode:!0});let so=0;class oo{constructor(t,e,i){this.set=t,this.base=e,this.modified=i,this.id=so++}static define(t){if(null==t?void 0:t.base)throw new Error("Can not derive from a modified tag");let e=new oo([],null,[]);if(e.set.push(e),t)for(let i of t.set)e.set.push(i);return e}static defineModifier(){let t=new lo;return e=>e.modified.indexOf(t)>-1?e:lo.get(e.base||e,e.modified.concat(t).sort(((t,e)=>t.id-e.id)))}}let ao=0;class lo{constructor(){this.instances=[],this.id=ao++}static get(t,e){if(!e.length)return t;let i=e[0].instances.find((i=>{return i.base==t&&(n=e,r=i.modified,n.length==r.length&&n.every(((t,e)=>t==r[e])));var n,r}));if(i)return i;let n=[],r=new oo(n,t,e);for(let t of e)t.instances.push(r);let s=function(t){let e=[[]];for(let i=0;ie.length-t.length))}(e);for(let e of t.set)if(!e.modified.length)for(let t of s)n.push(lo.get(e,t));return r}}function ho(t){let e=Object.create(null);for(let i in t){let n=t[i];Array.isArray(n)||(n=[n]);for(let t of i.split(" "))if(t){let i=[],r=2,s=t;for(let e=0;;){if("..."==s&&e>0&&e+3==t.length){r=1;break}let n=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(s);if(!n)throw new RangeError("Invalid path: "+t);if(i.push("*"==n[0]?"":'"'==n[0][0]?JSON.parse(n[0]):n[0]),e+=n[0].length,e==t.length)break;let o=t[e++];if(e==t.length&&"!"==o){r=0;break}if("/"!=o)throw new RangeError("Invalid path: "+t);s=t.slice(e)}let o=i.length-1,a=i[o];if(!a)throw new RangeError("Invalid path: "+t);let l=new uo(n,r,o>0?i.slice(0,o):null);e[a]=l.sort(e[a])}}return co.add(e)}const co=new Es;class uo{constructor(t,e,i,n){this.tags=t,this.mode=e,this.context=i,this.next=n}get opaque(){return 0==this.mode}get inherit(){return 1==this.mode}sort(t){return!t||t.depth{let e=r;for(let n of t)for(let t of n.set){let n=i[t.id];if(n){e=e?e+" "+n:n;break}}return e},scope:n}}function po(t,e,i,n=0,r=t.length){let s=new go(n,Array.isArray(e)?e:[e],i);s.highlightRange(t.cursor(),n,r,"",s.highlighters),s.flush(r)}uo.empty=new uo([],2,null);class go{constructor(t,e,i){this.at=t,this.highlighters=e,this.span=i,this.class=""}startSpan(t,e){e!=this.class&&(this.flush(t),t>this.at&&(this.at=t),this.class=e)}flush(t){t>this.at&&this.class&&this.span(this.at,t,this.class)}highlightRange(t,e,i,n,r){let{type:s,from:o,to:a}=t;if(o>=i||a<=e)return;s.isTop&&(r=this.highlighters.filter((t=>!t.scope||t.scope(s))));let l=n,h=function(t){let e=t.type.prop(co);for(;e&&e.context&&!t.matchContext(e.context);)e=e.next;return e||null}(t)||uo.empty,c=function(t,e){let i=null;for(let n of t){let t=n.style(e);t&&(i=i?i+" "+t:t)}return i}(r,h.tags);if(c&&(l&&(l+=" "),l+=c,1==h.mode&&(n+=(n?" ":"")+c)),this.startSpan(Math.max(e,o),l),h.opaque)return;let u=t.tree&&t.tree.prop(Es.mounted);if(u&&u.overlay){let s=t.node.enter(u.overlay[0].from+o,1),h=this.highlighters.filter((t=>!t.scope||t.scope(u.tree.type))),c=t.firstChild();for(let f=0,d=o;;f++){let p=f=g)&&t.nextSibling()););if(!p||g>i)break;d=p.to+o,d>e&&(this.highlightRange(s.cursor(),Math.max(e,p.from+o),Math.min(i,d),"",h),this.startSpan(Math.min(i,d),l))}c&&t.parent()}else if(t.firstChild()){u&&(n="");do{if(!(t.to<=e)){if(t.from>=i)break;this.highlightRange(t,e,i,n,r),this.startSpan(Math.min(i,t.to),l)}}while(t.nextSibling());t.parent()}}}const mo=oo.define,wo=mo(),vo=mo(),yo=mo(vo),ko=mo(vo),bo=mo(),xo=mo(bo),So=mo(bo),Ao=mo(),Mo=mo(Ao),Co=mo(),To=mo(),Do=mo(),Oo=mo(Do),Eo=mo(),Lo={comment:wo,lineComment:mo(wo),blockComment:mo(wo),docComment:mo(wo),name:vo,variableName:mo(vo),typeName:yo,tagName:mo(yo),propertyName:ko,attributeName:mo(ko),className:mo(vo),labelName:mo(vo),namespace:mo(vo),macroName:mo(vo),literal:bo,string:xo,docString:mo(xo),character:mo(xo),attributeValue:mo(xo),number:So,integer:mo(So),float:mo(So),bool:mo(bo),regexp:mo(bo),escape:mo(bo),color:mo(bo),url:mo(bo),keyword:Co,self:mo(Co),null:mo(Co),atom:mo(Co),unit:mo(Co),modifier:mo(Co),operatorKeyword:mo(Co),controlKeyword:mo(Co),definitionKeyword:mo(Co),moduleKeyword:mo(Co),operator:To,derefOperator:mo(To),arithmeticOperator:mo(To),logicOperator:mo(To),bitwiseOperator:mo(To),compareOperator:mo(To),updateOperator:mo(To),definitionOperator:mo(To),typeOperator:mo(To),controlOperator:mo(To),punctuation:Do,separator:mo(Do),bracket:Oo,angleBracket:mo(Oo),squareBracket:mo(Oo),paren:mo(Oo),brace:mo(Oo),content:Ao,heading:Mo,heading1:mo(Mo),heading2:mo(Mo),heading3:mo(Mo),heading4:mo(Mo),heading5:mo(Mo),heading6:mo(Mo),contentSeparator:mo(Ao),list:mo(Ao),quote:mo(Ao),emphasis:mo(Ao),strong:mo(Ao),link:mo(Ao),monospace:mo(Ao),strikethrough:mo(Ao),inserted:mo(),deleted:mo(),changed:mo(),invalid:mo(),meta:Eo,documentMeta:mo(Eo),annotation:mo(Eo),processingInstruction:mo(Eo),definition:oo.defineModifier(),constant:oo.defineModifier(),function:oo.defineModifier(),standard:oo.defineModifier(),local:oo.defineModifier(),special:oo.defineModifier()};var Bo;fo([{tag:Lo.link,class:"tok-link"},{tag:Lo.heading,class:"tok-heading"},{tag:Lo.emphasis,class:"tok-emphasis"},{tag:Lo.strong,class:"tok-strong"},{tag:Lo.keyword,class:"tok-keyword"},{tag:Lo.atom,class:"tok-atom"},{tag:Lo.bool,class:"tok-bool"},{tag:Lo.url,class:"tok-url"},{tag:Lo.labelName,class:"tok-labelName"},{tag:Lo.inserted,class:"tok-inserted"},{tag:Lo.deleted,class:"tok-deleted"},{tag:Lo.literal,class:"tok-literal"},{tag:Lo.string,class:"tok-string"},{tag:Lo.number,class:"tok-number"},{tag:[Lo.regexp,Lo.escape,Lo.special(Lo.string)],class:"tok-string2"},{tag:Lo.variableName,class:"tok-variableName"},{tag:Lo.local(Lo.variableName),class:"tok-variableName tok-local"},{tag:Lo.definition(Lo.variableName),class:"tok-variableName tok-definition"},{tag:Lo.special(Lo.variableName),class:"tok-variableName2"},{tag:Lo.definition(Lo.propertyName),class:"tok-propertyName tok-definition"},{tag:Lo.typeName,class:"tok-typeName"},{tag:Lo.namespace,class:"tok-namespace"},{tag:Lo.className,class:"tok-className"},{tag:Lo.macroName,class:"tok-macroName"},{tag:Lo.propertyName,class:"tok-propertyName"},{tag:Lo.operator,class:"tok-operator"},{tag:Lo.comment,class:"tok-comment"},{tag:Lo.meta,class:"tok-meta"},{tag:Lo.invalid,class:"tok-invalid"},{tag:Lo.punctuation,class:"tok-punctuation"}]);const Po=new Es;const No=new Es;class Ro{constructor(t,e,i=[],n=""){this.data=t,this.name=n,yt.prototype.hasOwnProperty("tree")||Object.defineProperty(yt.prototype,"tree",{get(){return zo(this)}}),this.parser=e,this.extension=[Ko.of(this),yt.languageData.of(((t,e,i)=>{let n=Io(t,e,i),r=n.type.prop(Po);if(!r)return[];let s=t.facet(r),o=n.type.prop(No);if(o){let r=n.resolve(e-n.from,i);for(let e of o)if(e.test(r,t)){let i=t.facet(e.facet);return"replace"==e.type?i:i.concat(s)}}return s}))].concat(i)}isActiveAt(t,e,i=-1){return Io(t,e,i).type.prop(Po)==this.data}findRegions(t){let e=t.facet(Ko);if((null==e?void 0:e.data)==this.data)return[{from:0,to:t.doc.length}];if(!e||!e.allowsNesting)return[];let i=[],n=(t,e)=>{if(t.prop(Po)==this.data)return void i.push({from:e,to:e+t.length});let r=t.prop(Es.mounted);if(r){if(r.tree.prop(Po)==this.data){if(r.overlay)for(let t of r.overlay)i.push({from:t.from+e,to:t.to+e});else i.push({from:e,to:e+t.length});return}if(r.overlay){let t=i.length;if(n(r.tree,r.overlay[0].from+e),i.length>t)return}}for(let i=0;i=this.cursorPos?this.doc.sliceString(t,e):this.string.slice(t-i,e-i)}}let Wo=null;class Vo{constructor(t,e,i=[],n,r,s,o,a){this.parser=t,this.state=e,this.fragments=i,this.tree=n,this.treeLen=r,this.viewport=s,this.skipped=o,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(t,e,i){return new Vo(t,e,[],Hs.empty,0,i,[],null)}startParse(){return this.parser.startParse(new Ho(this.state.doc),this.fragments)}work(t,e){return null!=e&&e>=this.state.doc.length&&(e=void 0),this.tree!=Hs.empty&&this.isDone(null!=e?e:this.state.doc.length)?(this.takeTree(),!0):this.withContext((()=>{var i;if("number"==typeof t){let e=Date.now()+t;t=()=>Date.now()>e}for(this.parse||(this.parse=this.startParse()),null!=e&&(null==this.parse.stoppedAt||this.parse.stoppedAt>e)&&e=this.treeLen&&((null==this.parse.stoppedAt||this.parse.stoppedAt>t)&&this.parse.stopAt(t),this.withContext((()=>{for(;!(e=this.parse.advance()););})),this.treeLen=t,this.tree=e,this.fragments=this.withoutTempSkipped(io.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(t){let e=Wo;Wo=this;try{return t()}finally{Wo=e}}withoutTempSkipped(t){for(let e;e=this.tempSkipped.pop();)t=Fo(t,e.from,e.to);return t}changes(t,e){let{fragments:i,tree:n,treeLen:r,viewport:s,skipped:o}=this;if(this.takeTree(),!t.empty){let e=[];if(t.iterChangedRanges(((t,i,n,r)=>e.push({fromA:t,toA:i,fromB:n,toB:r}))),i=io.applyChanges(i,e),n=Hs.empty,r=0,s={from:t.mapPos(s.from,-1),to:t.mapPos(s.to,1)},this.skipped.length){o=[];for(let e of this.skipped){let i=t.mapPos(e.from,1),n=t.mapPos(e.to,-1);it.from&&(this.fragments=Fo(this.fragments,i,n),this.skipped.splice(e--,1))}return!(this.skipped.length>=e||(this.reset(),0))}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(t,e){this.skipped.push({from:t,to:e})}static getSkippingParser(t){return new class extends no{createParse(e,i,n){let r=n[0].from,s=n[n.length-1].to;return{parsedPos:r,advance(){let e=Wo;if(e){for(let t of n)e.tempSkipped.push(t);t&&(e.scheduleOn=e.scheduleOn?Promise.all([e.scheduleOn,t]):t)}return this.parsedPos=s,new Hs(Ps.none,[],[],s-r)},stoppedAt:null,stopAt(){}}}}}isDone(t){t=Math.min(t,this.state.doc.length);let e=this.fragments;return this.treeLen>=t&&e.length&&0==e[0].from&&e[0].to>=t}static get(){return Wo}}function Fo(t,e,i){return io.applyChanges(t,[{fromA:e,toA:i,fromB:e,toB:i}])}class _o{constructor(t){this.context=t,this.tree=t.tree}apply(t){if(!t.docChanged&&this.tree==this.context.tree)return this;let e=this.context.changes(t.changes,t.state),i=this.context.treeLen==t.startState.doc.length?void 0:Math.max(t.changes.mapPos(this.context.treeLen),e.viewport.to);return e.work(20,i)||e.takeTree(),new _o(e)}static init(t){let e=Math.min(3e3,t.doc.length),i=Vo.create(t.facet(Ko).parser,t,{from:0,to:e});return i.work(20,e)||i.takeTree(),new _o(i)}}Ro.state=_.define({create:_o.init,update(t,e){for(let t of e.effects)if(t.is(Ro.setState))return t.value;return e.startState.facet(Ko)!=e.state.facet(Ko)?_o.init(e.state):t.apply(e)}});let jo=t=>{let e=setTimeout((()=>t()),500);return()=>clearTimeout(e)};"undefined"!=typeof requestIdleCallback&&(jo=t=>{let e=-1,i=setTimeout((()=>{e=requestIdleCallback(t,{timeout:400})}),100);return()=>e<0?clearTimeout(i):cancelIdleCallback(e)});const qo="undefined"!=typeof navigator&&(null===(Bo=navigator.scheduling)||void 0===Bo?void 0:Bo.isInputPending)?()=>navigator.scheduling.isInputPending():null,$o=yi.fromClass(class{constructor(t){this.view=t,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(t){let e=this.view.state.field(Ro.state).context;(e.updateViewport(t.view.viewport)||this.view.viewport.to>e.treeLen)&&this.scheduleWork(),(t.docChanged||t.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(e)}scheduleWork(){if(this.working)return;let{state:t}=this.view,e=t.field(Ro.state);e.tree==e.context.tree&&e.context.isDone(t.doc.length)||(this.working=jo(this.work))}work(t){this.working=null;let e=Date.now();if(this.chunkEndn+1e3,a=r.context.work((()=>qo&&qo()||Date.now()>s),n+(o?0:1e5));this.chunkBudget-=Date.now()-e,(a||this.chunkBudget<=0)&&(r.context.takeTree(),this.view.dispatch({effects:Ro.setState.of(new _o(r.context))})),this.chunkBudget>0&&(!a||o)&&this.scheduleWork(),this.checkAsyncSchedule(r.context)}checkAsyncSchedule(t){t.scheduleOn&&(this.workScheduled++,t.scheduleOn.then((()=>this.scheduleWork())).catch((t=>gi(this.view.state,t))).then((()=>this.workScheduled--)),t.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),Ko=R.define({combine:t=>t.length?t[0]:null,enables:t=>[Ro.state,$o,Er.contentAttributes.compute([t],(e=>{let i=e.facet(t);return i&&i.name?{"data-language":i.name}:{}}))]});class Go{constructor(t,e=[]){this.language=t,this.support=e,this.extension=[t,e]}}const Uo=R.define(),Jo=R.define({combine:t=>{if(!t.length)return" ";let e=t[0];if(!e||/\S/.test(e)||Array.from(e).some((t=>t!=e[0])))throw new Error("Invalid indent unit: "+JSON.stringify(t[0]));return e}});function Yo(t){let e=t.facet(Jo);return 9==e.charCodeAt(0)?t.tabSize*e.length:e.length}function Xo(t,e){let i="",n=t.tabSize,r=t.facet(Jo)[0];if("\t"==r){for(;e>=n;)i+="\t",e-=n;r=" "}for(let t=0;t=e?function(t,e,i){let n=e.resolveStack(i),r=n.node.enterUnfinishedNodesBefore(i);if(r!=n.node){let t=[];for(let e=r;e!=n.node;e=e.parent)t.push(e);for(let e=t.length-1;e>=0;e--)n={node:t[e],next:n}}return ea(n,t,i)}(t,i,e):null}class Zo{constructor(t,e={}){this.state=t,this.options=e,this.unit=Yo(t)}lineAt(t,e=1){let i=this.state.doc.lineAt(t),{simulateBreak:n,simulateDoubleBreak:r}=this.options;return null!=n&&n>=i.from&&n<=i.to?r&&n==t?{text:"",from:t}:(e<0?n-1&&(r+=s-this.countColumn(i,i.search(/\S|$/))),r}countColumn(t,e=t.length){return zt(t,this.state.tabSize,e)}lineIndent(t,e=1){let{text:i,from:n}=this.lineAt(t,e),r=this.options.overrideIndentation;if(r){let t=r(n);if(t>-1)return t}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const ta=new Es;function ea(t,e,i){for(let n=t;n;n=n.next){let t=ia(n.node);if(t)return t(ra.create(e,i,n))}return 0}function ia(t){let e=t.type.prop(ta);if(e)return e;let i,n=t.firstChild;if(n&&(i=n.type.prop(Es.closedBy))){let e=t.lastChild,n=e&&i.indexOf(e.name)>-1;return t=>function(t,e,i,n,r){let s=t.textAfter,o=s.match(/^\s*/)[0].length,a=n&&s.slice(o,o+n.length)==n||r==t.pos+o,l=e?function(t){let e=t.node,i=e.childAfter(e.from),n=e.lastChild;if(!i)return null;let r=t.options.simulateBreak,s=t.state.doc.lineAt(i.from),o=null==r||r<=s.from?s.to:Math.min(s.to,r);for(let t=i.to;;){let r=e.childAfter(t);if(!r||r==n)return null;if(!r.type.isSkipped)return r.fromt.prop(Po)==s.data:s?t=>t==s:void 0,this.style=fo(t.map((t=>({tag:t.tag,class:t.class||n(Object.assign({},t,{tag:null}))}))),{all:r}).style,this.module=i?new Ft(i):null,this.themeType=e.themeType}static define(t,e){return new oa(t,e||{})}}const aa=R.define(),la=R.define({combine:t=>t.length?[t[0]]:null});function ha(t){let e=t.facet(aa);return e.length?e:t.facet(la)}class ca{constructor(t){this.markCache=Object.create(null),this.tree=zo(t.state),this.decorations=this.buildDeco(t,ha(t.state))}update(t){let e=zo(t.state),i=ha(t.state),n=i!=ha(t.startState);e.length{i.add(t,e,this.markCache[n]||(this.markCache[n]=Ge.mark({class:n})))}),n,r);return i.finish()}}const ua=q.high(yi.fromClass(ca,{decorations:t=>t.decorations})),fa=(Lo.meta,Lo.link,Lo.heading,Lo.emphasis,Lo.strong,Lo.strikethrough,Lo.keyword,Lo.atom,Lo.bool,Lo.url,Lo.contentSeparator,Lo.labelName,Lo.literal,Lo.inserted,Lo.string,Lo.deleted,Lo.regexp,Lo.escape,Lo.string,Lo.variableName,Lo.variableName,Lo.typeName,Lo.namespace,Lo.className,Lo.variableName,Lo.macroName,Lo.propertyName,Lo.comment,Lo.invalid,Er.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}})),da=1e4,pa="()[]{}",ga=R.define({combine:t=>kt(t,{afterCursor:!0,brackets:pa,maxScanDistance:da,renderMatch:va})}),ma=Ge.mark({class:"cm-matchingBracket"}),wa=Ge.mark({class:"cm-nonmatchingBracket"});function va(t){let e=[],i=t.matched?ma:wa;return e.push(i.range(t.start.from,t.start.to)),t.end&&e.push(i.range(t.end.from,t.end.to)),e}const ya=_.define({create:()=>Ge.none,update(t,e){if(!e.docChanged&&!e.selection)return t;let i=[],n=e.state.facet(ga);for(let t of e.state.selection.ranges){if(!t.empty)continue;let r=Ma(e.state,t.head,-1,n)||t.head>0&&Ma(e.state,t.head-1,1,n)||n.afterCursor&&(Ma(e.state,t.head,1,n)||t.headEr.decorations.from(t)}),ka=[ya,fa];function ba(t={}){return[ga.of(t),ka]}const xa=new Es;function Sa(t,e,i){let n=t.prop(e<0?Es.openedBy:Es.closedBy);if(n)return n;if(1==t.name.length){let n=i.indexOf(t.name);if(n>-1&&n%2==(e<0?1:0))return[i[n+e]]}return null}function Aa(t){let e=t.type.prop(xa);return e?e(t.node):t}function Ma(t,e,i,n={}){let r=n.maxScanDistance||da,s=n.brackets||pa,o=zo(t),a=o.resolveInner(e,i);for(let t=a;t;t=t.parent){let n=Sa(t.type,i,s);if(n&&t.from0?e>=r.from&&er.from&&e<=r.to))return Ca(0,0,i,t,r,n,s)}}return function(t,e,i,n,r,s,o){let a=i<0?t.sliceDoc(e-1,e):t.sliceDoc(e,e+1),l=o.indexOf(a);if(l<0||l%2==0!=i>0)return null;let h={from:i<0?e-1:e,to:i>0?e+1:e},c=t.doc.iterRange(e,i>0?t.doc.length:0),u=0;for(let t=0;!c.next().done&&t<=s;){let s=c.value;i<0&&(t+=s.length);let a=e+t*i;for(let t=i>0?0:s.length-1,e=i>0?s.length:-1;t!=e;t+=i){let e=o.indexOf(s[t]);if(!(e<0||n.resolveInner(a+t,1).type!=r))if(e%2==0==i>0)u++;else{if(1==u)return{start:h,end:{from:a+t,to:a+t+1},matched:e>>1==l>>1};u--}}i>0&&(t+=s.length)}return c.done?{start:h,matched:!1}:null}(t,e,i,o,a.type,r,s)}function Ca(t,e,i,n,r,s,o){let a=n.parent,l={from:r.from,to:r.to},h=0,c=null==a?void 0:a.cursor();if(c&&(i<0?c.childBefore(n.from):c.childAfter(n.to)))do{if(i<0?c.to<=n.from:c.from>=n.to){if(0==h&&s.indexOf(c.type.name)>-1&&c.from=this.string.length}sol(){return 0==this.pos}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.pose}eatSpace(){let t=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>t}skipToEnd(){this.pos=this.string.length}skipTo(t){let e=this.string.indexOf(t,this.pos);if(e>-1)return this.pos=e,!0}backUp(t){this.pos-=t}column(){return this.lastColumnPosi?t.toLowerCase():t;return n(this.string.substr(this.pos,t.length))==n(t)?(!1!==e&&(this.pos+=t.length),!0):null}{let i=this.string.slice(this.pos).match(t);return i&&i.index>0?null:(i&&!1!==e&&(this.pos+=i[0].length),i)}}current(){return this.string.slice(this.start,this.pos)}}function Oa(t){if("object"!=typeof t)return t;let e={};for(let i in t){let n=t[i];e[i]=n instanceof Array?n.slice():n}return e}const Ea=new WeakMap;class La extends Ro{constructor(t){let e,i=(r=t.languageData,R.define({combine:r?t=>t.concat(r):void 0})),n={name:(s=t).name||"",token:s.token,blankLine:s.blankLine||(()=>{}),startState:s.startState||(()=>!0),copyState:s.copyState||Oa,indent:s.indent||(()=>null),languageData:s.languageData||{},tokenTable:s.tokenTable||Ia};var r,s;super(i,new class extends no{createParse(t,i,n){return new Na(e,t,i,n)}},[Uo.of(((t,e)=>this.getIndent(t,e)))],t.name),this.topNode=function(t){let e=Ps.define({id:za.length,name:"Document",props:[Po.add((()=>t))],top:!0});return za.push(e),e}(i),e=this,this.streamParser=n,this.stateAfter=new Es({perNode:!0}),this.tokenTable=t.tokenTable?new _a(n.tokenTable):ja}static define(t){return new La(t)}getIndent(t,e){let i,n=zo(t.state),r=n.resolve(e);for(;r&&r.type!=this.topNode;)r=r.parent;if(!r)return null;let{overrideIndentation:s}=t.options;s&&(i=Ea.get(t.state),null!=i&&i1e4)return null;for(;o=n&&i+e.length<=r&&e.prop(t.stateAfter);if(s)return{state:t.streamParser.copyState(s),pos:i+e.length};for(let s=e.children.length-1;s>=0;s--){let o=e.children[s],a=i+e.positions[s],l=o instanceof Hs&&a=e.length)return e;r||e.type!=t.topNode||(r=!0);for(let s=e.children.length-1;s>=0;s--){let o,a=e.positions[s],l=e.children[s];if(ai&&Ba(t,n.tree,0-n.offset,i,s);if(o&&(e=Pa(t,n.tree,i+n.offset,o.pos+n.offset,!1)))return{state:o.state,tree:e}}return{state:t.streamParser.startState(n?Yo(n):4),tree:Hs.empty}}(t,i,s,null==r?void 0:r.state);this.state=o,this.parsedPos=this.chunkStart=s+a.length;for(let t=0;t=e?this.finish():t&&this.parsedPos>=t.viewport.to?(t.skipUntilInView(this.parsedPos,e),this.finish()):null}stopAt(t){this.stoppedAt=t}lineAfter(t){let e=this.input.chunk(t);if(this.input.lineChunks)"\n"==e&&(e="");else{let t=e.indexOf("\n");t>-1&&(e=e.slice(0,t))}return t+e.length<=this.to?e:e.slice(0,this.to-t)}nextLine(){let t=this.parsedPos,e=this.lineAfter(t),i=t+e.length;for(let t=this.rangeIndex;;){let n=this.ranges[t].to;if(n>=i)break;if(e=e.slice(0,n-(i-e.length)),t++,t==this.ranges.length)break;let r=this.ranges[t].from,s=this.lineAfter(r);e+=s,i=r+s.length}return{line:e,end:i}}skipGapsTo(t,e,i){for(;;){let n=this.ranges[this.rangeIndex].to,r=t+e;if(i>0?n>r:n>=r)break;e+=this.ranges[++this.rangeIndex].from-n}return e}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to1){e+=r=this.skipGapsTo(e,r,1);let t=this.chunk.length;i+=r=this.skipGapsTo(i,r,-1),n+=this.chunk.length-t}return this.chunk.push(t,e,i,n),r}parseLine(t){let{line:e,end:i}=this.nextLine(),n=0,{streamParser:r}=this.lang,s=new Da(e,t?t.state.tabSize:4,t?Yo(t.state):2);if(s.eol())r.blankLine(this.state,s.indentUnit);else for(;!s.eol();){let t=Ra(r.token,s,this.state);if(t&&(n=this.emitToken(this.lang.tokenTable.resolve(t),this.parsedPos+s.start,this.parsedPos+s.pos,4,n)),s.start>1e4)break}this.parsedPos=i,this.moveRangeIndex(),this.parsedPose.start)return n}throw new Error("Stream parser failed to advance stream.")}const Ia=Object.create(null),za=[Ps.none],Ha=new Ns(za),Wa=[],Va=Object.create(null),Fa=Object.create(null);for(let[t,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])Fa[t]=$a(Ia,e);class _a{constructor(t){this.extra=t,this.table=Object.assign(Object.create(null),Fa)}resolve(t){return t?this.table[t]||(this.table[t]=$a(this.extra,t)):0}}const ja=new _a(Ia);function qa(t,e){Wa.indexOf(t)>-1||(Wa.push(t),console.warn(e))}function $a(t,e){let i=[];for(let n of e.split(" ")){let e=[];for(let i of n.split(".")){let n=t[i]||Lo[i];n?"function"==typeof n?e.length?e=e.map(n):qa(i,`Modifier ${i} used at start of tag`):e.length?qa(i,`Tag ${i} used as modifier`):e=Array.isArray(n)?n:[n]:qa(i,`Unknown highlighting tag ${i}`)}for(let t of e)i.push(t)}if(!i.length)return 0;let n=e.replace(/ /g,"_"),r=n+" "+i.map((t=>t.id)),s=Va[r];if(s)return s.id;let o=Va[r]=Ps.define({id:za.length,name:n,props:[ho({[n]:i})]});return za.push(o),o.id}function Ka(t,e){return({state:i,dispatch:n})=>{if(i.readOnly)return!1;let r=t(e,i);return!!r&&(n(i.update(r)),!0)}}const Ga=Ka(Za,0),Ua=Ka(Qa,0),Ja=Ka(((t,e)=>Qa(t,e,function(t){let e=[];for(let i of t.selection.ranges){let n=t.doc.lineAt(i.from),r=i.to<=n.to?n:t.doc.lineAt(i.to),s=e.length-1;s>=0&&e[s].to>n.from?e[s].to=r.to:e.push({from:n.from+/^\s*/.exec(n.text)[0].length,to:r.to})}return e}(e))),0);function Ya(t,e){let i=t.languageDataAt("commentTokens",e);return i.length?i[0]:{}}const Xa=50;function Qa(t,e,i=e.selection.ranges){let n=i.map((t=>Ya(e,t.from).block));if(!n.every((t=>t)))return null;let r=i.map(((t,i)=>function(t,{open:e,close:i},n,r){let s,o,a=t.sliceDoc(n-Xa,n),l=t.sliceDoc(r,r+Xa),h=/\s*$/.exec(a)[0].length,c=/^\s*/.exec(l)[0].length,u=a.length-h;if(a.slice(u-e.length,u)==e&&l.slice(c,c+i.length)==i)return{open:{pos:n-h,margin:h&&1},close:{pos:r+c,margin:c&&1}};r-n<=2*Xa?s=o=t.sliceDoc(n,r):(s=t.sliceDoc(n,n+Xa),o=t.sliceDoc(r-Xa,r));let f=/^\s*/.exec(s)[0].length,d=/\s*$/.exec(o)[0].length,p=o.length-d-i.length;return s.slice(f,f+e.length)==e&&o.slice(p,p+i.length)==i?{open:{pos:n+f+e.length,margin:/\s/.test(s.charAt(f+e.length))?1:0},close:{pos:r-d-i.length,margin:/\s/.test(o.charAt(p-1))?1:0}}:null}(e,n[i],t.from,t.to)));if(2!=t&&!r.every((t=>t)))return{changes:e.changes(i.map(((t,e)=>r[e]?[]:[{from:t.from,insert:n[e].open+" "},{from:t.to,insert:" "+n[e].close}])))};if(1!=t&&r.some((t=>t))){let t=[];for(let e,i=0;ir&&(t==s||s>l.from)){r=l.from;let t=/^\s*/.exec(l.text)[0].length,e=t==l.length,i=l.text.slice(t,t+a.length)==a?t:-1;tt.comment<0&&(!t.empty||t.single)))){let t=[];for(let{line:e,token:i,indent:r,empty:s,single:o}of n)!o&&s||t.push({from:e.from+r,insert:i+" "});let i=e.changes(t);return{changes:i,selection:e.selection.map(i,1)}}if(1!=t&&n.some((t=>t.comment>=0))){let t=[];for(let{line:e,comment:i,token:r}of n)if(i>=0){let n=e.from+i,s=n+r.length;" "==e.text[s-e.from]&&s++,t.push({from:n,to:s})}return{changes:t}}return null}const tl=st.define(),el=st.define(),il=R.define(),nl=R.define({combine:t=>kt(t,{minDepth:100,newGroupDelay:500,joinToEvent:(t,e)=>e},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(t,e)=>(i,n)=>t(i,n)||e(i,n)})}),rl=_.define({create:()=>bl.empty,update(t,e){let i=e.state.facet(nl),n=e.annotation(tl);if(n){let r=e.docChanged?B.single(function(t){let e=0;return t.iterChangedRanges(((t,i)=>e=i)),e}(e.changes)):void 0,s=ul.fromTransaction(e,r),o=n.side,a=0==o?t.undone:t.done;return a=s?fl(a,a.length,i.minDepth,s):ml(a,e.startState.selection),new bl(0==o?n.rest:a,0==o?a:n.rest)}let r=e.annotation(el);if("full"!=r&&"before"!=r||(t=t.isolate()),!1===e.annotation(ht.addToHistory))return e.changes.empty?t:t.addMapping(e.changes.desc);let s=ul.fromTransaction(e),o=e.annotation(ht.time),a=e.annotation(ht.userEvent);return s?t=t.addChanges(s,o,a,i,e):e.selection&&(t=t.addSelection(e.startState.selection,o,a,i.newGroupDelay)),"full"!=r&&"after"!=r||(t=t.isolate()),t},toJSON:t=>({done:t.done.map((t=>t.toJSON())),undone:t.undone.map((t=>t.toJSON()))}),fromJSON:t=>new bl(t.done.map(ul.fromJSON),t.undone.map(ul.fromJSON))});function sl(t={}){return[rl,nl.of(t),Er.domEventHandlers({beforeinput(t,e){let i="historyUndo"==t.inputType?al:"historyRedo"==t.inputType?ll:null;return!!i&&(t.preventDefault(),i(e))}})]}function ol(t,e){return function({state:i,dispatch:n}){if(!e&&i.readOnly)return!1;let r=i.field(rl,!1);if(!r)return!1;let s=r.pop(t,i,e);return!!s&&(n(s),!0)}}const al=ol(0,!1),ll=ol(1,!1),hl=ol(0,!0),cl=ol(1,!0);class ul{constructor(t,e,i,n,r){this.changes=t,this.effects=e,this.mapped=i,this.startSelection=n,this.selectionsAfter=r}setSelAfter(t){return new ul(this.changes,this.effects,this.mapped,this.startSelection,t)}toJSON(){var t,e,i;return{changes:null===(t=this.changes)||void 0===t?void 0:t.toJSON(),mapped:null===(e=this.mapped)||void 0===e?void 0:e.toJSON(),startSelection:null===(i=this.startSelection)||void 0===i?void 0:i.toJSON(),selectionsAfter:this.selectionsAfter.map((t=>t.toJSON()))}}static fromJSON(t){return new ul(t.changes&&A.fromJSON(t.changes),[],t.mapped&&S.fromJSON(t.mapped),t.startSelection&&B.fromJSON(t.startSelection),t.selectionsAfter.map(B.fromJSON))}static fromTransaction(t,e){let i=pl;for(let e of t.startState.facet(il)){let n=e(t);n.length&&(i=i.concat(n))}return!i.length&&t.changes.empty?null:new ul(t.changes.invert(t.startState.doc),i,void 0,e||t.startState.selection,pl)}static selection(t){return new ul(void 0,pl,void 0,void 0,t)}}function fl(t,e,i,n){let r=e+1>i+20?e-i-1:0,s=t.slice(r,e);return s.push(n),s}function dl(t,e){return t.length?e.length?t.concat(e):t:e}const pl=[],gl=200;function ml(t,e){if(t.length){let i=t[t.length-1],n=i.selectionsAfter.slice(Math.max(0,i.selectionsAfter.length-gl));return n.length&&n[n.length-1].eq(e)?t:(n.push(e),fl(t,t.length-1,1e9,i.setSelAfter(n)))}return[ul.selection([e])]}function wl(t){let e=t[t.length-1],i=t.slice();return i[t.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),i}function vl(t,e){if(!t.length)return t;let i=t.length,n=pl;for(;i;){let r=yl(t[i-1],e,n);if(r.changes&&!r.changes.empty||r.effects.length){let e=t.slice(0,i);return e[i-1]=r,e}e=r.mapped,i--,n=r.selectionsAfter}return n.length?[ul.selection(n)]:pl}function yl(t,e,i){let n=dl(t.selectionsAfter.length?t.selectionsAfter.map((t=>t.map(e))):pl,i);if(!t.changes)return ul.selection(n);let r=t.changes.map(e),s=e.mapDesc(t.changes,!0),o=t.mapped?t.mapped.composeDesc(s):s;return new ul(r,lt.mapEffects(t.effects,e),o,t.startSelection.map(s),n)}const kl=/^(input\.type|delete)($|\.)/;class bl{constructor(t,e,i=0,n=void 0){this.done=t,this.undone=e,this.prevTime=i,this.prevUserEvent=n}isolate(){return this.prevTime?new bl(this.done,this.undone):this}addChanges(t,e,i,n,r){let s=this.done,o=s[s.length-1];return s=o&&o.changes&&!o.changes.empty&&t.changes&&(!i||kl.test(i))&&(!o.selectionsAfter.length&&e-this.prevTimei.push(t,e))),e.iterChangedRanges(((t,e,r,s)=>{for(let t=0;t=e&&r<=o&&(n=!0)}})),n}(o.changes,t.changes))||"input.type.compose"==i)?fl(s,s.length-1,n.minDepth,new ul(t.changes.compose(o.changes),dl(t.effects,o.effects),o.mapped,o.startSelection,pl)):fl(s,s.length,n.minDepth,t),new bl(s,pl,e,i)}addSelection(t,e,i,n){let r=this.done.length?this.done[this.done.length-1].selectionsAfter:pl;return r.length>0&&e-this.prevTimet.empty!=o.ranges[e].empty)).length)?this:new bl(ml(this.done,t),this.undone,e,i);var s,o}addMapping(t){return new bl(vl(this.done,t),vl(this.undone,t),this.prevTime,this.prevUserEvent)}pop(t,e,i){let n=0==t?this.done:this.undone;if(0==n.length)return null;let r=n[n.length-1];if(i&&r.selectionsAfter.length)return e.update({selection:r.selectionsAfter[r.selectionsAfter.length-1],annotations:tl.of({side:t,rest:wl(n)}),userEvent:0==t?"select.undo":"select.redo",scrollIntoView:!0});if(r.changes){let i=1==n.length?pl:n.slice(0,n.length-1);return r.mapped&&(i=vl(i,r.mapped)),e.update({changes:r.changes,selection:r.startSelection,effects:r.effects,annotations:tl.of({side:t,rest:i}),filter:!1,userEvent:0==t?"undo":"redo",scrollIntoView:!0})}return null}}bl.empty=new bl(pl,pl);const xl=[{key:"Mod-z",run:al,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:ll,preventDefault:!0},{linux:"Ctrl-Shift-z",run:ll,preventDefault:!0},{key:"Mod-u",run:hl,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:cl,preventDefault:!0}];function Sl(t,e){return B.create(t.ranges.map(e),t.mainIndex)}function Al(t,e){return t.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function Ml({state:t,dispatch:e},i){let n=Sl(t.selection,i);return!n.eq(t.selection)&&(e(Al(t,n)),!0)}function Cl(t,e){return B.cursor(e?t.to:t.from)}function Tl(t,e){return Ml(t,(i=>i.empty?t.moveByChar(i,e):Cl(i,e)))}function Dl(t){return t.textDirectionAt(t.state.selection.main.head)==Bi.LTR}const Ol=t=>Tl(t,!Dl(t)),El=t=>Tl(t,Dl(t));function Ll(t,e){return Ml(t,(i=>i.empty?t.moveByGroup(i,e):Cl(i,e)))}function Bl(t,e,i){if(e.type.prop(i))return!0;let n=e.to-e.from;return n&&(n>2||/[^\s,.;:]/.test(t.sliceDoc(e.from,e.to)))||e.firstChild}function Pl(t,e,i){let n,r,s=zo(t).resolveInner(e.head),o=i?Es.closedBy:Es.openedBy;for(let n=e.head;;){let e=i?s.childAfter(n):s.childBefore(n);if(!e)break;Bl(t,e,o)?s=e:n=i?e.to:e.from}return r=s.type.prop(o)&&(n=i?Ma(t,s.from,1):Ma(t,s.to,-1))&&n.matched?i?n.end.to:n.end.from:i?s.to:s.from,B.cursor(r,i?-1:1)}function Nl(t,e){return Ml(t,(i=>{if(!i.empty)return Cl(i,e);let n=t.moveVertically(i,e);return n.head!=i.head?n:t.moveToLineBoundary(i,e)}))}"undefined"!=typeof Intl&&Intl.Segmenter;const Rl=t=>Nl(t,!1),Il=t=>Nl(t,!0);function zl(t){let e,i=t.scrollDOM.clientHeighti.empty?t.moveVertically(i,e,n.height):Cl(i,e)));if(s.eq(r.selection))return!1;if(n.selfScroll){let e=t.coordsAtPos(r.selection.main.head),o=t.scrollDOM.getBoundingClientRect(),a=o.top+n.marginTop,l=o.bottom-n.marginBottom;e&&e.top>a&&e.bottomHl(t,!1),Vl=t=>Hl(t,!0);function Fl(t,e,i){let n=t.lineBlockAt(e.head),r=t.moveToLineBoundary(e,i);if(r.head==e.head&&r.head!=(i?n.to:n.from)&&(r=t.moveToLineBoundary(e,i,!1)),!i&&r.head==n.from&&n.length){let i=/^\s*/.exec(t.state.sliceDoc(n.from,Math.min(n.from+100,n.to)))[0].length;i&&e.head!=n.from+i&&(r=B.cursor(n.from+i))}return r}function _l(t,e){let i=Sl(t.state.selection,(t=>{let i=e(t);return B.range(t.anchor,i.head,i.goalColumn,i.bidiLevel||void 0)}));return!i.eq(t.state.selection)&&(t.dispatch(Al(t.state,i)),!0)}function jl(t,e){return _l(t,(i=>t.moveByChar(i,e)))}const ql=t=>jl(t,!Dl(t)),$l=t=>jl(t,Dl(t));function Kl(t,e){return _l(t,(i=>t.moveByGroup(i,e)))}function Gl(t,e){return _l(t,(i=>t.moveVertically(i,e)))}const Ul=t=>Gl(t,!1),Jl=t=>Gl(t,!0);function Yl(t,e){return _l(t,(i=>t.moveVertically(i,e,zl(t).height)))}const Xl=t=>Yl(t,!1),Ql=t=>Yl(t,!0),Zl=({state:t,dispatch:e})=>(e(Al(t,{anchor:0})),!0),th=({state:t,dispatch:e})=>(e(Al(t,{anchor:t.doc.length})),!0),eh=({state:t,dispatch:e})=>(e(Al(t,{anchor:t.selection.main.anchor,head:0})),!0),ih=({state:t,dispatch:e})=>(e(Al(t,{anchor:t.selection.main.anchor,head:t.doc.length})),!0);function nh(t,e){if(t.state.readOnly)return!1;let i="delete.selection",{state:n}=t,r=n.changeByRange((n=>{let{from:r,to:s}=n;if(r==s){let n=e(r);nr&&(i="delete.forward",n=rh(t,n,!0)),r=Math.min(r,n),s=Math.max(s,n)}else r=rh(t,r,!1),s=rh(t,s,!0);return r==s?{range:n}:{changes:{from:r,to:s},range:B.cursor(r)}}));return!r.changes.empty&&(t.dispatch(n.update(r,{scrollIntoView:!0,userEvent:i,effects:"delete.selection"==i?Er.announce.of(n.phrase("Selection deleted")):void 0})),!0)}function rh(t,e,i){if(t instanceof Er)for(let n of t.state.facet(Er.atomicRanges).map((e=>e(t))))n.between(e,e,((t,n)=>{te&&(e=i?n:t)}));return e}const sh=(t,e)=>nh(t,(i=>{let n,r,{state:s}=t,o=s.doc.lineAt(i);if(!e&&i>o.from&&ish(t,!1),ah=t=>sh(t,!0),lh=(t,e)=>nh(t,(i=>{let n=i,{state:r}=t,s=r.doc.lineAt(n),o=r.charCategorizer(n);for(let t=null;;){if(n==(e?s.to:s.from)){n==i&&s.number!=(e?r.doc.lines:1)&&(n+=e?1:-1);break}let a=d(s.text,n-s.from,e)+s.from,l=s.text.slice(Math.min(n,a)-s.from,Math.max(n,a)-s.from),h=o(l);if(null!=t&&h!=t)break;" "==l&&n==i||(t=h),n=a}return n})),hh=t=>lh(t,!1),ch=t=>nh(t,(e=>{let i=t.lineBlockAt(e).to;return e=r.number){let t=e[e.length-1];t.to=s.to,t.ranges.push(n)}else e.push({from:r.from,to:s.to,ranges:[n]});i=s.number+1}return e}function fh(t,e,i){if(t.readOnly)return!1;let n=[],r=[];for(let e of uh(t)){if(i?e.to==t.doc.length:0==e.from)continue;let s=t.doc.lineAt(i?e.to+1:e.from-1),o=s.length+1;if(i){n.push({from:e.to,to:s.to},{from:e.from,insert:s.text+t.lineBreak});for(let i of e.ranges)r.push(B.range(Math.min(t.doc.length,i.anchor+o),Math.min(t.doc.length,i.head+o)))}else{n.push({from:s.from,to:e.from},{from:e.to,insert:t.lineBreak+s.text});for(let t of e.ranges)r.push(B.range(t.anchor-o,t.head-o))}}return!!n.length&&(e(t.update({changes:n,scrollIntoView:!0,selection:B.create(r,t.selection.mainIndex),userEvent:"move.line"})),!0)}function dh(t,e,i){if(t.readOnly)return!1;let n=[];for(let e of uh(t))i?n.push({from:e.from,insert:t.doc.slice(e.from,e.to)+t.lineBreak}):n.push({from:e.to,insert:t.lineBreak+t.doc.slice(e.from,e.to)});return e(t.update({changes:n,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const ph=gh(!1);function gh(e){return({state:i,dispatch:n})=>{if(i.readOnly)return!1;let r=i.changeByRange((n=>{let{from:r,to:s}=n,o=i.doc.lineAt(r),a=!e&&r==s&&function(t,e){if(/\(\)|\[\]|\{\}/.test(t.sliceDoc(e-1,e+1)))return{from:e,to:e};let i,n=zo(t).resolveInner(e),r=n.childBefore(e),s=n.childAfter(e);return r&&s&&r.to<=e&&s.from>=e&&(i=r.type.prop(Es.closedBy))&&i.indexOf(s.name)>-1&&t.doc.lineAt(r.to).from==t.doc.lineAt(s.from).from&&!/\S/.test(t.sliceDoc(r.to,s.from))?{from:r.to,to:s.from}:null}(i,r);e&&(r=s=(s<=o.to?o:i.doc.lineAt(s)).to);let l=new Zo(i,{simulateBreak:r,simulateDoubleBreak:!!a}),h=Qo(l,r);for(null==h&&(h=zt(/^\s*/.exec(i.doc.lineAt(r).text)[0],i.tabSize));so.from&&r{let r=[];for(let s=n.from;s<=n.to;){let o=t.doc.lineAt(s);o.number>i&&(n.empty||n.to>o.from)&&(e(o,r,n),i=o.number),s=o.to+1}let s=t.changes(r);return{changes:r,range:B.range(s.mapPos(n.anchor,1),s.mapPos(n.head,1))}}))}const wh=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:t=>Ml(t,(e=>Pl(t.state,e,!Dl(t)))),shift:t=>_l(t,(e=>Pl(t.state,e,!Dl(t))))},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:t=>Ml(t,(e=>Pl(t.state,e,Dl(t)))),shift:t=>_l(t,(e=>Pl(t.state,e,Dl(t))))},{key:"Alt-ArrowUp",run:({state:t,dispatch:e})=>fh(t,e,!1)},{key:"Shift-Alt-ArrowUp",run:({state:t,dispatch:e})=>dh(t,e,!1)},{key:"Alt-ArrowDown",run:({state:t,dispatch:e})=>fh(t,e,!0)},{key:"Shift-Alt-ArrowDown",run:({state:t,dispatch:e})=>dh(t,e,!0)},{key:"Escape",run:({state:t,dispatch:e})=>{let i=t.selection,n=null;return i.ranges.length>1?n=B.create([i.main]):i.main.empty||(n=B.create([B.cursor(i.main.head)])),!!n&&(e(Al(t,n)),!0)}},{key:"Mod-Enter",run:gh(!0)},{key:"Alt-l",mac:"Ctrl-l",run:({state:t,dispatch:e})=>{let i=uh(t).map((({from:e,to:i})=>B.range(e,Math.min(i+1,t.doc.length))));return e(t.update({selection:B.create(i),userEvent:"select"})),!0}},{key:"Mod-i",run:({state:t,dispatch:e})=>{let i=Sl(t.selection,(e=>{var i;let n=zo(t).resolveInner(e.head,1);for(;!(n.from=e.to||n.to>e.to&&n.from<=e.from)&&(null===(i=n.parent)||void 0===i?void 0:i.parent);)n=n.parent;return B.range(n.to,n.from)}));return e(Al(t,i)),!0},preventDefault:!0},{key:"Mod-[",run:({state:t,dispatch:e})=>!t.readOnly&&(e(t.update(mh(t,((e,i)=>{let n=/^\s*/.exec(e.text)[0];if(!n)return;let r=zt(n,t.tabSize),s=0,o=Xo(t,Math.max(0,r-Yo(t)));for(;s!t.readOnly&&(e(t.update(mh(t,((e,i)=>{i.push({from:e.from,insert:t.facet(Jo)})})),{userEvent:"input.indent"})),!0)},{key:"Mod-Alt-\\",run:({state:t,dispatch:e})=>{if(t.readOnly)return!1;let i=Object.create(null),n=new Zo(t,{overrideIndentation:t=>{let e=i[t];return null==e?-1:e}}),r=mh(t,((e,r,s)=>{let o=Qo(n,e.from);if(null==o)return;/\S/.test(e.text)||(o=0);let a=/^\s*/.exec(e.text)[0],l=Xo(t,o);(a!=l||s.from{if(t.state.readOnly)return!1;let{state:e}=t,i=e.changes(uh(e).map((({from:t,to:i})=>(t>0?t--:it.moveVertically(e,!0))).map(i);return t.dispatch({changes:i,selection:n,scrollIntoView:!0,userEvent:"delete.line"}),!0}},{key:"Shift-Mod-\\",run:({state:t,dispatch:e})=>function(t,e,i){let n=!1,r=Sl(t.selection,(e=>{let r=Ma(t,e.head,-1)||Ma(t,e.head,1)||e.head>0&&Ma(t,e.head-1,1)||e.head{let{state:e}=t,i=e.doc.lineAt(e.selection.main.from),n=Ya(t.state,i.from);return n.line?Ga(t):!!n.block&&Ja(t)}},{key:"Alt-A",run:Ua}].concat([{key:"ArrowLeft",run:Ol,shift:ql,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:t=>Ll(t,!Dl(t)),shift:t=>Kl(t,!Dl(t)),preventDefault:!0},{mac:"Cmd-ArrowLeft",run:t=>Ml(t,(e=>Fl(t,e,!Dl(t)))),shift:t=>_l(t,(e=>Fl(t,e,!Dl(t)))),preventDefault:!0},{key:"ArrowRight",run:El,shift:$l,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:t=>Ll(t,Dl(t)),shift:t=>Kl(t,Dl(t)),preventDefault:!0},{mac:"Cmd-ArrowRight",run:t=>Ml(t,(e=>Fl(t,e,Dl(t)))),shift:t=>_l(t,(e=>Fl(t,e,Dl(t)))),preventDefault:!0},{key:"ArrowUp",run:Rl,shift:Ul,preventDefault:!0},{mac:"Cmd-ArrowUp",run:Zl,shift:eh},{mac:"Ctrl-ArrowUp",run:Wl,shift:Xl},{key:"ArrowDown",run:Il,shift:Jl,preventDefault:!0},{mac:"Cmd-ArrowDown",run:th,shift:ih},{mac:"Ctrl-ArrowDown",run:Vl,shift:Ql},{key:"PageUp",run:Wl,shift:Xl},{key:"PageDown",run:Vl,shift:Ql},{key:"Home",run:t=>Ml(t,(e=>Fl(t,e,!1))),shift:t=>_l(t,(e=>Fl(t,e,!1))),preventDefault:!0},{key:"Mod-Home",run:Zl,shift:eh},{key:"End",run:t=>Ml(t,(e=>Fl(t,e,!0))),shift:t=>_l(t,(e=>Fl(t,e,!0))),preventDefault:!0},{key:"Mod-End",run:th,shift:ih},{key:"Enter",run:ph},{key:"Mod-a",run:({state:t,dispatch:e})=>(e(t.update({selection:{anchor:0,head:t.doc.length},userEvent:"select"})),!0)},{key:"Backspace",run:oh,shift:oh},{key:"Delete",run:ah},{key:"Mod-Backspace",mac:"Alt-Backspace",run:hh},{key:"Mod-Delete",mac:"Alt-Delete",run:t=>lh(t,!0)},{mac:"Mod-Backspace",run:t=>nh(t,(e=>{let i=t.lineBlockAt(e).from;return e>i?i:Math.max(0,e-1)}))},{mac:"Mod-Delete",run:ch}].concat([{key:"Ctrl-b",run:Ol,shift:ql,preventDefault:!0},{key:"Ctrl-f",run:El,shift:$l},{key:"Ctrl-p",run:Rl,shift:Ul},{key:"Ctrl-n",run:Il,shift:Jl},{key:"Ctrl-a",run:t=>Ml(t,(e=>B.cursor(t.lineBlockAt(e.head).from,1))),shift:t=>_l(t,(e=>B.cursor(t.lineBlockAt(e.head).from)))},{key:"Ctrl-e",run:t=>Ml(t,(e=>B.cursor(t.lineBlockAt(e.head).to,-1))),shift:t=>_l(t,(e=>B.cursor(t.lineBlockAt(e.head).to)))},{key:"Ctrl-d",run:ah},{key:"Ctrl-h",run:oh},{key:"Ctrl-k",run:ch},{key:"Ctrl-Alt-h",run:hh},{key:"Ctrl-o",run:({state:e,dispatch:i})=>{if(e.readOnly)return!1;let n=e.changeByRange((e=>({changes:{from:e.from,to:e.to,insert:t.of(["",""])},range:B.cursor(e.from)})));return i(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0}},{key:"Ctrl-t",run:({state:t,dispatch:e})=>{if(t.readOnly)return!1;let i=t.changeByRange((e=>{if(!e.empty||0==e.from||e.from==t.doc.length)return{range:e};let i=e.from,n=t.doc.lineAt(i),r=i==n.from?i-1:d(n.text,i-n.from,!1)+n.from,s=i==n.to?i+1:d(n.text,i-n.from,!0)+n.from;return{changes:{from:r,to:s,insert:t.doc.slice(i,s).append(t.doc.slice(r,i))},range:B.cursor(s)}}));return!i.changes.empty&&(e(t.update(i,{scrollIntoView:!0,userEvent:"move.character"})),!0)}},{key:"Ctrl-v",run:Vl}].map((t=>({mac:t.key,run:t.run,shift:t.shift})))));function vh(){var t=arguments[0];"string"==typeof t&&(t=document.createElement(t));var e=1,i=arguments[1];if(i&&"object"==typeof i&&null==i.nodeType&&!Array.isArray(i)){for(var n in i)if(Object.prototype.hasOwnProperty.call(i,n)){var r=i[n];"string"==typeof r?t.setAttribute(n,r):null!=r&&(t[n]=r)}e++}for(;et.normalize("NFKD"):t=>t;class bh{constructor(t,e,i=0,n=t.length,r,s){this.test=s,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=t.iterRange(i,n),this.bufferStart=i,this.normalize=r?t=>r(kh(t)):kh,this.query=this.normalize(e)}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 v(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let t=this.peek();if(t<0)return this.done=!0,this;let e=y(t),i=this.bufferStart+this.bufferPos;this.bufferPos+=k(t);let n=this.normalize(e);for(let t=0,r=i;;t++){let s=n.charCodeAt(t),o=this.match(s,r);if(t==n.length-1){if(o)return this.value=o,this;break}r==i&&tthis.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 t=this.matchPos-this.curLineStart;;){this.re.lastIndex=t;let e=this.matchPos<=this.to&&this.re.exec(this.curLine);if(e){let i=this.curLineStart+e.index,n=i+e[0].length;if(this.matchPos=Dh(this.text,n+(i==n?1:0)),i==this.curLineStart+this.curLine.length&&this.nextLine(),(ithis.value.to)&&(!this.test||this.test(i,n,e)))return this.value={from:i,to:n,match:e},this;t=this.matchPos-this.curLineStart}else{if(!(this.curLineStart+this.curLine.length=i||n.to<=e){let n=new Ch(e,t.sliceString(e,i));return Mh.set(t,n),n}if(n.from==e&&n.to==i)return n;let{text:r,from:s}=n;return s>e&&(r=t.sliceString(e,s)+r,s=e),n.to=this.to?this.to:this.text.lineAt(t).to}next(){for(;;){let t=this.re.lastIndex=this.matchPos-this.flat.from,e=this.re.exec(this.flat.text);if(e&&!e[0]&&e.index==t&&(this.re.lastIndex=t+1,e=this.re.exec(this.flat.text)),e){let t=this.flat.from+e.index,i=t+e[0].length;if((this.flat.to>=this.to||e.index+e[0].length<=this.flat.text.length-10)&&(!this.test||this.test(t,i,e)))return this.value={from:t,to:i,match:e},this.matchPos=Dh(this.text,i+(t==i?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Ch.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+2*this.flat.text.length))}}}function Dh(t,e){if(e>=t.length)return e;let i,n=t.lineAt(e);for(;e=56320&&i<57344;)e++;return e}function Oh(t){let e=vh("input",{class:"cm-textfield",name:"line",value:String(t.state.doc.lineAt(t.state.selection.main.head).number)});function i(){let i=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(e.value);if(!i)return;let{state:n}=t,r=n.doc.lineAt(n.selection.main.head),[,s,o,a,l]=i,h=a?+a.slice(1):0,c=o?+o:r.number;if(o&&l){let t=c/100;s&&(t=t*("-"==s?-1:1)+r.number/n.doc.lines),c=Math.round(n.doc.lines*t)}else o&&s&&(c=c*("-"==s?-1:1)+r.number);let u=n.doc.line(Math.max(1,Math.min(n.doc.lines,c))),f=B.cursor(u.from+Math.max(0,Math.min(h,u.length)));t.dispatch({effects:[Eh.of(!1),Er.scrollIntoView(f.from,{y:"center"})],selection:f}),t.focus()}return{dom:vh("form",{class:"cm-gotoLine",onkeydown:e=>{27==e.keyCode?(e.preventDefault(),t.dispatch({effects:Eh.of(!1)}),t.focus()):13==e.keyCode&&(e.preventDefault(),i())},onsubmit:t=>{t.preventDefault(),i()}},vh("label",t.state.phrase("Go to line"),": ",e)," ",vh("button",{class:"cm-button",type:"submit"},t.state.phrase("go")))}}"undefined"!=typeof Symbol&&(Ah.prototype[Symbol.iterator]=Th.prototype[Symbol.iterator]=function(){return this});const Eh=lt.define(),Lh=_.define({create:()=>!0,update(t,e){for(let i of e.effects)i.is(Eh)&&(t=i.value);return t},provide:t=>ss.from(t,(t=>t?Oh:null))}),Bh=Er.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),Ph=R.define({combine:t=>kt(t,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:t=>new lc(t),scrollToMatch:t=>Er.scrollIntoView(t)})});class Nh{constructor(t){this.search=t.search,this.caseSensitive=!!t.caseSensitive,this.literal=!!t.literal,this.regexp=!!t.regexp,this.replace=t.replace||"",this.valid=!!this.search&&(!this.regexp||function(t){try{return new RegExp(t,Sh),!0}catch(t){return!1}}(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!t.wholeWord}unquote(t){return this.literal?t:t.replace(/\\([nrt\\])/g,((t,e)=>"n"==e?"\n":"r"==e?"\r":"t"==e?"\t":"\\"))}eq(t){return this.search==t.search&&this.replace==t.replace&&this.caseSensitive==t.caseSensitive&&this.regexp==t.regexp&&this.wholeWord==t.wholeWord}create(){return this.regexp?new Fh(this):new zh(this)}getCursor(t,e=0,i){let n=t.doc?t:yt.create({doc:t});return null==i&&(i=n.doc.length),this.regexp?Hh(this,n,e,i):Ih(this,n,e,i)}}class Rh{constructor(t){this.spec=t}}function Ih(t,e,i,n){return new bh(e.doc,t.unquoted,i,n,t.caseSensitive?void 0:t=>t.toLowerCase(),t.wholeWord?function(t,e){return(i,n,r,s)=>((s>i||s+r.length=e)return null;n.push(i.value)}return n}highlight(t,e,i,n){let r=Ih(this.spec,t,Math.max(0,e-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,t.doc.length));for(;!r.next().done;)n(r.value.from,r.value.to)}}function Hh(t,e,i,n){return new Ah(e.doc,t.search,{ignoreCase:!t.caseSensitive,test:t.wholeWord?(r=e.charCategorizer(e.selection.main.head),(t,e,i)=>!i[0].length||(r(Wh(i.input,i.index))!=mt.Word||r(Vh(i.input,i.index))!=mt.Word)&&(r(Vh(i.input,i.index+i[0].length))!=mt.Word||r(Wh(i.input,i.index+i[0].length))!=mt.Word)):void 0},i,n);var r}function Wh(t,e){return t.slice(d(t,e,!1),e)}function Vh(t,e){return t.slice(e,d(t,e))}class Fh extends Rh{nextMatch(t,e,i){let n=Hh(this.spec,t,i,t.doc.length).next();return n.done&&(n=Hh(this.spec,t,0,e).next()),n.done?null:n.value}prevMatchInRange(t,e,i){for(let n=1;;n++){let r=Math.max(e,i-1e4*n),s=Hh(this.spec,t,r,i),o=null;for(;!s.next().done;)o=s.value;if(o&&(r==e||o.from>r+10))return o;if(r==e)return null}}prevMatch(t,e,i){return this.prevMatchInRange(t,0,e)||this.prevMatchInRange(t,i,t.doc.length)}getReplacement(t){return this.spec.unquote(this.spec.replace.replace(/\$([$&\d+])/g,((e,i)=>"$"==i?"$":"&"==i?t.match[0]:"0"!=i&&+i=e)return null;n.push(i.value)}return n}highlight(t,e,i,n){let r=Hh(this.spec,t,Math.max(0,e-250),Math.min(i+250,t.doc.length));for(;!r.next().done;)n(r.value.from,r.value.to)}}const _h=lt.define(),jh=lt.define(),qh=_.define({create:t=>new $h(ic(t).create(),null),update(t,e){for(let i of e.effects)i.is(_h)?t=new $h(i.value.create(),t.panel):i.is(jh)&&(t=new $h(t.query,i.value?ec:null));return t},provide:t=>ss.from(t,(t=>t.panel))});class $h{constructor(t,e){this.query=t,this.panel=e}}const Kh=Ge.mark({class:"cm-searchMatch"}),Gh=Ge.mark({class:"cm-searchMatch cm-searchMatch-selected"}),Uh=yi.fromClass(class{constructor(t){this.view=t,this.decorations=this.highlight(t.state.field(qh))}update(t){let e=t.state.field(qh);(e!=t.startState.field(qh)||t.docChanged||t.selectionSet||t.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:t,panel:e}){if(!e||!t.spec.valid)return Ge.none;let{view:i}=this,n=new Ct;for(let e=0,r=i.visibleRanges,s=r.length;er[e+1].from-500;)a=r[++e].to;t.highlight(i.state,o,a,((t,e)=>{let r=i.state.selection.ranges.some((i=>i.from==t&&i.to==e));n.add(t,e,r?Gh:Kh)}))}return n.finish()}},{decorations:t=>t.decorations});function Jh(t){return e=>{let i=e.state.field(qh,!1);return i&&i.query.spec.valid?t(e,i):sc(e)}}const Yh=Jh(((t,{query:e})=>{let{to:i}=t.state.selection.main,n=e.nextMatch(t.state,i,i);if(!n)return!1;let r=B.single(n.from,n.to),s=t.state.facet(Ph);return t.dispatch({selection:r,effects:[fc(t,n),s.scrollToMatch(r.main,t)],userEvent:"select.search"}),rc(t),!0})),Xh=Jh(((t,{query:e})=>{let{state:i}=t,{from:n}=i.selection.main,r=e.prevMatch(i,n,n);if(!r)return!1;let s=B.single(r.from,r.to),o=t.state.facet(Ph);return t.dispatch({selection:s,effects:[fc(t,r),o.scrollToMatch(s.main,t)],userEvent:"select.search"}),rc(t),!0})),Qh=Jh(((t,{query:e})=>{let i=e.matchAll(t.state,1e3);return!(!i||!i.length||(t.dispatch({selection:B.create(i.map((t=>B.range(t.from,t.to)))),userEvent:"select.search.matches"}),0))})),Zh=Jh(((t,{query:e})=>{let{state:i}=t,{from:n,to:r}=i.selection.main;if(i.readOnly)return!1;let s=e.nextMatch(i,n,n);if(!s)return!1;let o,a,l=[],h=[];if(s.from==n&&s.to==r&&(a=i.toText(e.getReplacement(s)),l.push({from:s.from,to:s.to,insert:a}),s=e.nextMatch(i,s.from,s.to),h.push(Er.announce.of(i.phrase("replaced match on line $",i.doc.lineAt(n).number)+"."))),s){let e=0==l.length||l[0].from>=s.to?0:s.to-s.from-a.length;o=B.single(s.from-e,s.to-e),h.push(fc(t,s)),h.push(i.facet(Ph).scrollToMatch(o.main,t))}return t.dispatch({changes:l,selection:o,effects:h,userEvent:"input.replace"}),!0})),tc=Jh(((t,{query:e})=>{if(t.state.readOnly)return!1;let i=e.matchAll(t.state,1e9).map((t=>{let{from:i,to:n}=t;return{from:i,to:n,insert:e.getReplacement(t)}}));if(!i.length)return!1;let n=t.state.phrase("replaced $ matches",i.length)+".";return t.dispatch({changes:i,effects:Er.announce.of(n),userEvent:"input.replace.all"}),!0}));function ec(t){return t.state.facet(Ph).createPanel(t)}function ic(t,e){var i,n,r,s,o;let a=t.selection.main,l=a.empty||a.to>a.from+100?"":t.sliceDoc(a.from,a.to);if(e&&!l)return e;let h=t.facet(Ph);return new Nh({search:(null!==(i=null==e?void 0:e.literal)&&void 0!==i?i:h.literal)?l:l.replace(/\n/g,"\\n"),caseSensitive:null!==(n=null==e?void 0:e.caseSensitive)&&void 0!==n?n:h.caseSensitive,literal:null!==(r=null==e?void 0:e.literal)&&void 0!==r?r:h.literal,regexp:null!==(s=null==e?void 0:e.regexp)&&void 0!==s?s:h.regexp,wholeWord:null!==(o=null==e?void 0:e.wholeWord)&&void 0!==o?o:h.wholeWord})}function nc(t){let e=es(t,ec);return e&&e.dom.querySelector("[main-field]")}function rc(t){let e=nc(t);e&&e==t.root.activeElement&&e.select()}const sc=t=>{let e=t.state.field(qh,!1);if(e&&e.panel){let i=nc(t);if(i&&i!=t.root.activeElement){let n=ic(t.state,e.query.spec);n.valid&&t.dispatch({effects:_h.of(n)}),i.focus(),i.select()}}else t.dispatch({effects:[jh.of(!0),e?_h.of(ic(t.state,e.query.spec)):lt.appendConfig.of(pc)]});return!0},oc=t=>{let e=t.state.field(qh,!1);if(!e||!e.panel)return!1;let i=es(t,ec);return i&&i.dom.contains(t.root.activeElement)&&t.focus(),t.dispatch({effects:jh.of(!1)}),!0},ac=[{key:"Mod-f",run:sc,scope:"editor search-panel"},{key:"F3",run:Yh,shift:Xh,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:Yh,shift:Xh,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:oc,scope:"editor search-panel"},{key:"Mod-Shift-l",run:({state:t,dispatch:e})=>{let i=t.selection;if(i.ranges.length>1||i.main.empty)return!1;let{from:n,to:r}=i.main,s=[],o=0;for(let e=new bh(t.doc,t.sliceDoc(n,r));!e.next().done;){if(s.length>1e3)return!1;e.value.from==n&&(o=s.length),s.push(B.range(e.value.from,e.value.to))}return e(t.update({selection:B.create(s,o),userEvent:"select.search.matches"})),!0}},{key:"Alt-g",run:t=>{let e=es(t,Oh);if(!e){let i=[Eh.of(!0)];null==t.state.field(Lh,!1)&&i.push(lt.appendConfig.of([Lh,Bh])),t.dispatch({effects:i}),e=es(t,Oh)}return e&&e.dom.querySelector("input").select(),!0}},{key:"Mod-d",run:({state:t,dispatch:e})=>{let{ranges:i}=t.selection;if(i.some((t=>t.from===t.to)))return(({state:t,dispatch:e})=>{let{selection:i}=t,n=B.create(i.ranges.map((e=>t.wordAt(e.head)||B.cursor(e.head))),i.mainIndex);return!n.eq(i)&&(e(t.update({selection:n})),!0)})({state:t,dispatch:e});let n=t.sliceDoc(i[0].from,i[0].to);if(t.selection.ranges.some((e=>t.sliceDoc(e.from,e.to)!=n)))return!1;let r=function(t,e){let{main:i,ranges:n}=t.selection,r=t.wordAt(i.head),s=r&&r.from==i.from&&r.to==i.to;for(let i=!1,r=new bh(t.doc,e,n[n.length-1].to);;){if(r.next(),!r.done){if(i&&n.some((t=>t.from==r.value.from)))continue;if(s){let e=t.wordAt(r.value.from);if(!e||e.from!=r.value.from||e.to!=r.value.to)continue}return r.value}if(i)return null;r=new bh(t.doc,e,0,Math.max(0,n[n.length-1].from-1)),i=!0}}(t,n);return!!r&&(e(t.update({selection:t.selection.addRange(B.range(r.from,r.to),!1),effects:Er.scrollIntoView(r.to)})),!0)},preventDefault:!0}];class lc{constructor(t){this.view=t;let e=this.query=t.state.field(qh).query.spec;function i(t,e,i){return vh("button",{class:"cm-button",name:t,onclick:e,type:"button"},i)}this.commit=this.commit.bind(this),this.searchField=vh("input",{value:e.search,placeholder:hc(t,"Find"),"aria-label":hc(t,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=vh("input",{value:e.replace,placeholder:hc(t,"Replace"),"aria-label":hc(t,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=vh("input",{type:"checkbox",name:"case",form:"",checked:e.caseSensitive,onchange:this.commit}),this.reField=vh("input",{type:"checkbox",name:"re",form:"",checked:e.regexp,onchange:this.commit}),this.wordField=vh("input",{type:"checkbox",name:"word",form:"",checked:e.wholeWord,onchange:this.commit}),this.dom=vh("div",{onkeydown:t=>this.keydown(t),class:"cm-search"},[this.searchField,i("next",(()=>Yh(t)),[hc(t,"next")]),i("prev",(()=>Xh(t)),[hc(t,"previous")]),i("select",(()=>Qh(t)),[hc(t,"all")]),vh("label",null,[this.caseField,hc(t,"match case")]),vh("label",null,[this.reField,hc(t,"regexp")]),vh("label",null,[this.wordField,hc(t,"by word")]),...t.state.readOnly?[]:[vh("br"),this.replaceField,i("replace",(()=>Zh(t)),[hc(t,"replace")]),i("replaceAll",(()=>tc(t)),[hc(t,"replace all")])],vh("button",{name:"close",onclick:()=>oc(t),"aria-label":hc(t,"close"),type:"button"},["×"])])}commit(){let t=new Nh({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});t.eq(this.query)||(this.query=t,this.view.dispatch({effects:_h.of(t)}))}keydown(t){var e,i;i=t,jr(Vr((e=this.view).state),i,e,"search-panel")?t.preventDefault():13==t.keyCode&&t.target==this.searchField?(t.preventDefault(),(t.shiftKey?Xh:Yh)(this.view)):13==t.keyCode&&t.target==this.replaceField&&(t.preventDefault(),Zh(this.view))}update(t){for(let e of t.transactions)for(let t of e.effects)t.is(_h)&&!t.value.eq(this.query)&&this.setQuery(t.value)}setQuery(t){this.query=t,this.searchField.value=t.search,this.replaceField.value=t.replace,this.caseField.checked=t.caseSensitive,this.reField.checked=t.regexp,this.wordField.checked=t.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(Ph).top}}function hc(t,e){return t.state.phrase(e)}const cc=30,uc=/[\s\.,:;?!]/;function fc(t,{from:e,to:i}){let n=t.state.doc.lineAt(e),r=t.state.doc.lineAt(i).to,s=Math.max(n.from,e-cc),o=Math.min(r,i+cc),a=t.state.sliceDoc(s,o);if(s!=n.from)for(let t=0;ta.length-cc;t--)if(!uc.test(a[t-1])&&uc.test(a[t])){a=a.slice(0,t);break}return Er.announce.of(`${t.state.phrase("current match")}. ${a} ${t.state.phrase("on line")} ${n.number}.`)}const dc=Er.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"}}),pc=[qh,q.low(Uh),dc];function gc(t){return gc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},gc(t)}function mc(t){return function(t){if(Array.isArray(t))return wc(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return wc(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?wc(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function wc(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i0,n}var i,n;return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Ac(t,e)}(e,t),i=e,(n=[{key:"setCodeMirrorPreference",value:function(t){this.useCodeMirror=t,xc(Sc(e.prototype),"setCodeMirrorPreference",this).call(this,t)}},{key:"enableCodeMirror",value:function(){var t=this;if(!this.view){var e=this.$textarea.prop("selectionStart"),i=this.$textarea.prop("selectionEnd"),n=this.$textarea.scrollTop(),r=this.$textarea.is(":focus"),s=[].concat(mc(this.defaultExtensions),[this.langExtension,ba(),sl(),Er.contentAttributes.of({spellcheck:"true"}),Er.domEventHandlers({blur:function(){return t.$textarea.triggerHandler("blur")},focus:function(){return t.$textarea.triggerHandler("focus")}}),Er.updateListener.of((function(e){e.docChanged&&"function"==typeof t.editRecoveryHandler&&t.editRecoveryHandler()})),Er.lineWrapping,Hr.of([].concat(mc(wh),mc(ac),mc(xl)))]);mw.hook("editRecovery.loadEnd").add((function(e){t.editRecoveryHandler=e.fieldChangeHandler})),this.initialize(s),this.view.scrollDOM.scrollTop=n,this.view.dispatch({selection:B.create([B.range(e,i)]),scrollIntoView:!0}),r&&this.view.focus(),mw.hook("ext.CodeMirror.switch").fire(!0,$(this.view.dom))}}},{key:"addCodeMirrorToWikiEditor",value:function(){var t=this,e=this.$textarea.data("wikiEditor-context"),i=e&&e.modules&&e.modules.toolbar;i&&(this.$textarea.wikiEditor("addToToolbar",{section:"main",groups:{codemirror:{tools:{CodeMirror:{label:mw.msg("codemirror-toggle-label"),type:"toggle",oouiIcon:"highlight",action:{type:"callback",execute:function(){return t.switchCodeMirror()}}}}}}}),i.$toolbar.find(".tool[rel=CodeMirror]").attr("id","mw-editbutton-codemirror"),this.useCodeMirror&&this.enableCodeMirror(),this.updateToolbarButton(),this.logUsage({editor:"wikitext",enabled:this.useCodeMirror,toggled:!1,edit_start_ts_ms:1e3*parseInt($('input[name="wpStarttime"]').val(),10)||0}))}},{key:"updateToolbarButton",value:function(){var t=$("#mw-editbutton-codemirror");t.toggleClass("mw-editbutton-codemirror-active",this.useCodeMirror),t.data("setActive")&&t.data("setActive")(this.useCodeMirror)}},{key:"switchCodeMirror",value:function(){if(this.view){this.setCodeMirrorPreference(!1);var t=this.view.scrollDOM.scrollTop,e=this.view.hasFocus,i=this.view.state.selection.ranges[0],n=i.from,r=i.to;$(this.view.dom).textSelection("unregister"),this.$textarea.textSelection("unregister"),this.$textarea.val(this.view.state.doc.toString()),this.view.destroy(),this.view=null,this.$textarea.show(),e&&this.$textarea.trigger("focus"),this.$textarea.prop("selectionStart",Math.min(n,r)).prop("selectionEnd",Math.max(r,n)),this.$textarea.scrollTop(t),mw.hook("ext.CodeMirror.switch").fire(!1,this.$textarea)}else this.enableCodeMirror(),this.setCodeMirrorPreference(!0);this.updateToolbarButton(),this.logUsage({editor:"wikitext",enabled:this.useCodeMirror,toggled:!0,edit_start_ts_ms:1e3*parseInt($('input[name="wpStarttime"]').val(),10)||0})}}])&&vc(i.prototype,n),Object.defineProperty(i,"prototype",{writable:!1}),e}(Cs);function Cc(t){return Cc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Cc(t)}function Tc(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i~).,'])"),"i"),this.isBold=!1,this.wasBold=!1,this.isItalic=!1,this.wasItalic=!1,this.firstSingleLetterWord=null,this.firstMultiLetterWord=null,this.firstSpace=null,this.oldStyle=null,this.tokens=[],this.oldTokens=[],this.tokenTable=Rc.tokenTable,Object.keys(this.config.tags).forEach((function(t){return Rc.addTag(t)}))}var e,i;return e=t,i=[{key:"eatHtmlEntity",value:function(t,e){return(t.eat("#")?t.eat("x")?t.eatWhile(/[a-fA-F\d]/)&&t.eat(";"):t.eatWhile(/[\d]/)&&t.eat(";"):t.eatWhile(/[\w.\-:]/)&&t.eat(";"))?Rc.tags.htmlEntity:e}},{key:"makeStyle",value:function(t,e,i){return this.isBold&&(t+=" "+Rc.tags.strong),this.isItalic&&(t+=" "+Rc.tags.em),this.makeLocalStyle(t,e,i)}},{key:"makeLocalStyle",value:function(t,e,i){var n="";switch(e.nTemplate){case 0:break;case 1:n+="-template";break;case 2:n+="-template2";break;default:n+="-template3"}switch(e.nExt){case 0:break;case 1:n+="-ext";break;case 2:n+="-ext2";break;default:n+="-ext3"}return e.nLink>0&&(n+="-link"),""!==n&&(t="mw".concat(n,"-ground ").concat(t)),i&&e[i]--,t.trim()}},{key:"eatBlock",value:function(t,e,i){var n=this;return function(r,s){return r.skipTo(e)?(!1!==i&&r.match(e),s.tokenize=s.stack.pop()):r.skipToEnd(),n.makeLocalStyle(t,s)}}},{key:"eatEnd",value:function(t){var e=this;return function(i,n){return i.skipToEnd(),n.tokenize=n.stack.pop(),e.makeLocalStyle(t,n)}}},{key:"eatChar",value:function(t,e){var i=this;return function(n,r){return r.tokenize=r.stack.pop(),n.eat(t)?i.makeLocalStyle(e,r):i.makeLocalStyle(Rc.tags.error,r)}}},{key:"eatSectionHeader",value:function(t){var e=this;return function(i,n){return i.match(/^[^&<[{~]+/)?(i.eol()?(i.backUp(t),n.tokenize=e.eatEnd(Rc.tags.sectionHeader)):i.match(/^.*?=)/,!1)&&(i.backUp(t),n.tokenize=e.eatBlock(Rc.tags.sectionHeader,"\x3c!--",!1)),Rc.tags.section):e.eatWikiText(Rc.tags.section)(i,n)}}},{key:"inVariable",value:function(t,e){return t.match(/^[^{}|]+/)?this.makeLocalStyle(Rc.tags.templateVariableName,e):t.eat("|")?(e.tokenize=this.inVariableDefault.bind(this),this.makeLocalStyle(Rc.tags.templateVariableDelimiter,e)):t.match("}}}")?(e.tokenize=e.stack.pop(),this.makeLocalStyle(Rc.tags.templateVariableBracket,e)):t.match("{{{")?(e.stack.push(e.tokenize),this.makeLocalStyle(Rc.tags.templateVariableBracket,e)):(t.next(),this.makeLocalStyle(Rc.tags.templateVariableName,e))}},{key:"inVariableDefault",value:function(t,e){return t.match(/^[^{}[<&~]+/)?this.makeLocalStyle(Rc.tags.templateVariable,e):t.match("}}}")?(e.tokenize=e.stack.pop(),this.makeLocalStyle(Rc.tags.templateVariableBracket,e)):this.eatWikiText(Rc.tags.templateVariable)(t,e)}},{key:"inParserFunctionName",value:function(t,e){return t.match(/^#?[^:}{~]+/)?this.makeLocalStyle(Rc.tags.parserFunctionName,e):t.eat(":")?(e.tokenize=this.inParserFunctionArguments.bind(this),this.makeLocalStyle(Rc.tags.parserFunctionDelimiter,e)):t.match("}}")?(e.tokenize=e.stack.pop(),this.makeLocalStyle(Rc.tags.parserFunctionBracket,e,"nExt")):this.eatWikiText(Rc.tags.parserFunction)(t,e)}},{key:"inParserFunctionArguments",value:function(t,e){return t.match(/^[^|}{[<&~]+/)?this.makeLocalStyle(Rc.tags.parserFunction,e):t.eat("|")?this.makeLocalStyle(Rc.tags.parserFunctionDelimiter,e):t.match("}}")?(e.tokenize=e.stack.pop(),this.makeLocalStyle(Rc.tags.parserFunctionBracket,e,"nExt")):this.eatWikiText(Rc.tags.parserFunction)(t,e)}},{key:"eatTemplatePageName",value:function(t){var e=this;return function(i,n){return i.match(/^[\s\u00a0]*\|[\s\u00a0]*/)?(n.tokenize=e.eatTemplateArgument(!0),e.makeLocalStyle(Rc.tags.templateDelimiter,n)):i.match(/^[\s\u00a0]*\}\}/)?(n.tokenize=n.stack.pop(),e.makeLocalStyle(Rc.tags.templateBracket,n,"nTemplate")):i.match(/^[\s\u00a0]*/)?e.makeLocalStyle(Rc.tags.comment,n):t&&i.sol()?(n.nTemplate--,void(n.tokenize=n.stack.pop())):i.match(/^[\s\u00a0]*[^\s\u00a0|}<{&~]+/)?(n.tokenize=e.eatTemplatePageName(!0),e.makeLocalStyle(Rc.tags.templateName,n)):i.eatSpace()?(i.eol(),e.makeLocalStyle(Rc.tags.templateName,n)):e.eatWikiText(Rc.tags.templateName)(i,n)}}},{key:"eatTemplateArgument",value:function(t){var e=this;return function(i,n){return t&&i.eatWhile(/[^=|}{[<&~]/)?i.eat("=")?(n.tokenize=e.eatTemplateArgument(!1),e.makeLocalStyle(Rc.tags.templateArgumentName,n)):e.makeLocalStyle(Rc.tags.template,n):i.eatWhile(/[^|}{[<&~]/)?e.makeLocalStyle(Rc.tags.template,n):i.eat("|")?(n.tokenize=e.eatTemplateArgument(!0),e.makeLocalStyle(Rc.tags.templateDelimiter,n)):i.match("}}")?(n.tokenize=n.stack.pop(),e.makeLocalStyle(Rc.tags.templateBracket,n,"nTemplate")):e.eatWikiText(Rc.tags.template)(i,n)}}},{key:"eatExternalLinkProtocol",value:function(t){var e=this;return function(i,n){for(;t>0;)t--,i.next();return i.eol()?(n.nLink--,n.tokenize=n.stack.pop()):n.tokenize=e.inExternalLink.bind(e),e.makeLocalStyle(Rc.tags.extLinkProtocol,n)}}},{key:"inExternalLink",value:function(t,e){return t.sol()?(e.nLink--,void(e.tokenize=e.stack.pop())):t.match(/^[\s\u00a0]*\]/)?(e.tokenize=e.stack.pop(),this.makeLocalStyle(Rc.tags.extLinkBracket,e,"nLink")):t.eatSpace()?(e.tokenize=this.inExternalLinkText.bind(this),this.makeStyle("",e)):t.match(/^[^\s\u00a0\]{&~']+/)||t.eatSpace()?("'"===t.peek()&&(t.match("''",!1)?e.tokenize=this.inExternalLinkText.bind(this):t.next()),this.makeStyle(Rc.tags.extLink,e)):this.eatWikiText(Rc.tags.extLink)(t,e)}},{key:"inExternalLinkText",value:function(t,e){return t.sol()?(e.nLink--,void(e.tokenize=e.stack.pop())):t.eat("]")?(e.tokenize=e.stack.pop(),this.makeLocalStyle(Rc.tags.extLinkBracket,e,"nLink")):t.match(/^[^'\]{&~<]+/)?this.makeStyle(Rc.tags.extLinkText,e):this.eatWikiText(Rc.tags.extLinkText)(t,e)}},{key:"inLink",value:function(t,e){return t.sol()?(e.nLink--,void(e.tokenize=e.stack.pop())):t.match(/^[\s\u00a0]*#[\s\u00a0]*/)?(e.tokenize=this.inLinkToSection.bind(this),this.makeLocalStyle(Rc.tags.link,e)):t.match(/^[\s\u00a0]*\|[\s\u00a0]*/)?(e.tokenize=this.eatLinkText(),this.makeLocalStyle(Rc.tags.linkDelimiter,e)):t.match(/^[\s\u00a0]*\]\]/)?(e.tokenize=e.stack.pop(),this.makeLocalStyle(Rc.tags.linkBracket,e,"nLink")):t.match(/^[\s\u00a0]*[^\s\u00a0#|\]&~{]+/)||t.eatSpace()?this.makeStyle("".concat(Rc.tags.linkPageName," ").concat(Rc.tags.pageName),e):this.eatWikiText("".concat(Rc.tags.linkPageName," ").concat(Rc.tags.pageName))(t,e)}},{key:"inLinkToSection",value:function(t,e){return t.sol()?(e.nLink--,void(e.tokenize=e.stack.pop())):t.match(/^[^|\]&~{}]+/)?this.makeLocalStyle(Rc.tags.linkToSection,e):t.eat("|")?(e.tokenize=this.eatLinkText(),this.makeLocalStyle(Rc.tags.linkDelimiter,e)):t.match("]]")?(e.tokenize=e.stack.pop(),this.makeLocalStyle(Rc.tags.linkBracket,e,"nLink")):this.eatWikiText(Rc.tags.linkToSection)(t,e)}},{key:"eatLinkText",value:function(){var t,e,i=this;return function(n,r){var s;return n.match("]]")?(r.tokenize=r.stack.pop(),i.makeLocalStyle(Rc.tags.linkBracket,r,"nLink")):n.match("'''")?(t=!t,i.makeLocalStyle("".concat(Rc.tags.linkText," ").concat(Rc.tags.apostrophes),r)):n.match("''")?(e=!e,i.makeLocalStyle("".concat(Rc.tags.linkText," ").concat(Rc.tags.apostrophes),r)):(s=Rc.tags.linkText,t&&(s+=" "+Rc.tags.strong),e&&(s+=" "+Rc.tags.em),n.match(/^[^'\]{&~<]+/)?i.makeStyle(s,r):i.eatWikiText(s)(n,r))}}},{key:"eatTagName",value:function(t,e,i){var n=this;return function(r,s){for(var o="";t>0;)t--,o+=r.next();return r.eatSpace(),o=o.toLowerCase(),i?(e&&!Rc.implicitlyClosedHtmlTags[o]?s.tokenize=n.eatChar(">",Rc.tags.htmlTagBracket):s.tokenize=n.eatHtmlTagAttribute(o),n.makeLocalStyle(Rc.tags.htmlTagName,s)):(s.tokenize=e?n.eatChar(">","".concat(Rc.tags.extTagBracket," mw-ext-").concat(o)):n.eatExtTagAttribute(o),n.makeLocalStyle("".concat(Rc.tags.extTagName," mw-ext-").concat(o),s))}}},{key:"eatHtmlTagAttribute",value:function(t){var e=this;return function(i,n){return i.match(/^(?:"[^<">]*"|'[^<'>]*'|[^>/<{&~])+/)?e.makeLocalStyle(Rc.tags.htmlTagAttribute,n):i.eat(">")?(t in Rc.implicitlyClosedHtmlTags||n.inHtmlTag.push(t),n.tokenize=n.stack.pop(),e.makeLocalStyle(Rc.tags.htmlTagBracket,n)):i.match("/>")?(n.tokenize=n.stack.pop(),e.makeLocalStyle(Rc.tags.htmlTagBracket,n)):e.eatWikiText(Rc.tags.htmlTagAttribute)(i,n)}}},{key:"eatNowiki",value:function(){var t=this;return function(e){return e.match(/^[^&]+/)?"":(e.next(),t.eatHtmlEntity(e,""))}}},{key:"eatExtTagAttribute",value:function(t){var e=this;return function(i,n){if(i.match(/^(?:"[^">]*"|'[^'>]*'|[^>/<{&~])+/))return e.makeLocalStyle("".concat(Rc.tags.extTagAttribute," mw-ext-").concat(t),n);if(i.eat(">")){if(n.extName=t,"nowiki"===t||"pre"===t)n.extMode={startState:function(){},copyState:function(){},token:e.eatNowiki()};else if(t in e.config.tagModes){var r=e.config.tagModes[t];"mediawiki"!==r&&"text/mediawiki"!==r||(n.extMode=e.mediawiki,n.extState=n.extMode.startState())}return n.tokenize=e.eatExtTagArea(t),e.makeLocalStyle("".concat(Rc.tags.extTagBracket," mw-ext-").concat(t),n)}return i.match("/>")?(n.tokenize=n.stack.pop(),e.makeLocalStyle("".concat(Rc.tags.extTagBracket," mw-ext-").concat(t),n)):e.eatWikiText("".concat(Rc.tags.extTagAttribute," mw-ext-").concat(t))(i,n)}}},{key:"eatExtTagArea",value:function(t){var e=this;return function(i,n){var r,s=i.pos,o=new RegExp(""),"i").exec(s?i.string.slice(s):i.string),a=!1;if(o){if(0===o.index)return n.tokenize=e.eatExtCloseTag(t),n.extName=!1,!1!==n.extMode&&(n.extMode=!1,n.extState=!1),n.tokenize(i,n);r=o.index+s,a=i.string,i.string=a.slice(0,r)}return n.stack.push(n.tokenize),n.tokenize=e.eatExtTokens(a),n.tokenize(i,n)}}},{key:"eatExtCloseTag",value:function(t){var e=this;return function(i,n){return i.next(),i.next(),n.tokenize=e.eatTagName(t.length,!0,!1),e.makeLocalStyle("".concat(Rc.tags.extTagBracket," mw-ext-").concat(t),n)}}},{key:"eatExtTokens",value:function(t){var e=this;return function(i,n){var r;return!1===n.extMode?(r=Rc.tags.extTag,i.skipToEnd()):r="mw-tag-".concat(n.extName," ")+n.extMode.token(i,n.extState,!1===t),i.eol()&&(!1!==t&&(i.string=t),n.tokenize=n.stack.pop()),e.makeLocalStyle(r,n)}}},{key:"eatStartTable",value:function(t,e){return t.match("{|"),t.eatSpace(),e.tokenize=this.inTableDefinition.bind(this),Rc.tags.tableBracket}},{key:"inTableDefinition",value:function(t,e){return t.sol()?(e.tokenize=this.inTable.bind(this),this.inTable(t,e)):this.eatWikiText(Rc.tags.tableDefinition)(t,e)}},{key:"inTable",value:function(t,e){if(t.sol()){if(t.eatSpace(),t.eat("|"))return t.eat("-")?(t.eatSpace(),e.tokenize=this.inTableDefinition.bind(this),this.makeLocalStyle(Rc.tags.tableDelimiter,e)):t.eat("+")?(t.eatSpace(),e.tokenize=this.eatTableRow(!0,!1,!0),this.makeLocalStyle(Rc.tags.tableDelimiter,e)):t.eat("}")?(e.tokenize=e.stack.pop(),this.makeLocalStyle(Rc.tags.tableBracket,e)):(t.eatSpace(),e.tokenize=this.eatTableRow(!0,!1),this.makeLocalStyle(Rc.tags.tableDelimiter,e));if(t.eat("!"))return t.eatSpace(),e.tokenize=this.eatTableRow(!0,!0),this.makeLocalStyle(Rc.tags.tableDelimiter,e)}return this.eatWikiText("")(t,e)}},{key:"eatTableRow",value:function(t,e,i){var n=this,r="";return i?r=Rc.tags.tableCaption:e&&(r=Rc.tags.strong),function(s,o){if(s.sol()){if(s.match(/^[\s\u00a0]*[|!]/,!1))return o.tokenize=n.inTable.bind(n),n.inTable(s,o)}else{if(s.match(/^[^'|{[<&~!]+/))return n.makeStyle(r,o);if(s.match("||")||e&&s.match("!!"))return n.isBold=!1,n.isItalic=!1,o.tokenize=n.eatTableRow(!0,e,i),n.makeLocalStyle(Rc.tags.tableDelimiter,o);if(t&&s.eat("|"))return o.tokenize=n.eatTableRow(!1,e,i),n.makeLocalStyle(Rc.tags.tableDelimiter,o)}return n.eatWikiText(r)(s,o)}}},{key:"eatFreeExternalLinkProtocol",value:function(t,e){return t.match(this.urlProtocols),e.tokenize=this.eatFreeExternalLink.bind(this),this.makeLocalStyle(Rc.tags.freeExtLinkProtocol,e)}},{key:"eatFreeExternalLink",value:function(t,e){if(t.eol());else if(t.match(/^[^\s\u00a0{[\]<>~).,']*/))if("~"===t.peek()){if(!t.match(/^~~~+/,!1))return t.match(/^~*/),this.makeLocalStyle(Rc.tags.freeExtLink,e)}else if("{"===t.peek()){if(!t.match("{{",!1))return t.next(),this.makeLocalStyle(Rc.tags.freeExtLink,e)}else if("'"===t.peek()){if(!t.match("''",!1))return t.next(),this.makeLocalStyle(Rc.tags.freeExtLink,e)}else if(t.match(/^[).,]+(?=[^\s\u00a0{[\]<>~).,])/))return this.makeLocalStyle(Rc.tags.freeExtLink,e);return e.tokenize=e.stack.pop(),this.makeLocalStyle(Rc.tags.freeExtLink,e)}},{key:"eatWikiText",value:function(t){var e=this;return function(i,n){var r,s,o,a,l,h,c;if(i.sol()){if(!i.match("//",!1)&&i.match(e.urlProtocols))return n.stack.push(n.tokenize),n.tokenize=e.eatFreeExternalLink.bind(e),e.makeLocalStyle(Rc.tags.freeExtLinkProtocol,n);switch(r=i.next()){case"-":if(i.match(/^---+/))return Rc.tags.hr;break;case"=":if(s=i.match(/^(={0,5})(.+?(=\1\s*)(.*\S).*?)?)$/))return i.backUp(s[2].length),n.stack.push(n.tokenize),n.tokenize=e.eatSectionHeader(s[3].length),Rc.tags.sectionHeader+" "+Rc.tags["sectionHeader".concat(s[1].length+1)];break;case"*":case"#":case";":return i.match(/^[*#;:]*/),Rc.tags.list;case":":return i.match(/^:*{\|/,!1)&&(n.stack.push(n.tokenize),n.tokenize=e.eatStartTable.bind(e)),i.match(/^[*#;:]*/),Rc.tags.indenting;case" ":if(!i.match(/^[\s\u00a0]*:*{\|/,!1))return Rc.tags.skipFormatting;if(i.eatSpace(),i.match(/^:+/))return n.stack.push(n.tokenize),n.tokenize=e.eatStartTable.bind(e),Rc.tags.indenting;i.eat("{");case"{":if(i.eat("|"))return i.eatSpace(),n.stack.push(n.tokenize),n.tokenize=e.inTableDefinition.bind(e),Rc.tags.tableBracket}}else r=i.next();switch(r){case"&":return e.makeStyle(e.eatHtmlEntity(i,t),n);case"'":if(i.match(/^'*(?=''''')/)||i.match(/^'''(?!')/,!1))break;if(i.match("''"))return e.firstSingleLetterWord||i.match("''",!1)||e.prepareItalicForCorrection(i),e.isBold=!e.isBold,e.makeLocalStyle(Rc.tags.apostrophesBold,n);if(i.eat("'"))return e.isItalic=!e.isItalic,e.makeLocalStyle(Rc.tags.apostrophesItalic,n);break;case"[":if(i.eat("[")){if(i.eatSpace(),/[^\]|[]/.test(i.peek()))return n.nLink++,n.stack.push(n.tokenize),n.tokenize=e.inLink.bind(e),e.makeLocalStyle(Rc.tags.linkBracket,n)}else if(o=i.match(e.urlProtocols))return n.nLink++,i.backUp(o[0].length),n.stack.push(n.tokenize),n.tokenize=e.eatExternalLinkProtocol(o[0].length),e.makeLocalStyle(Rc.tags.extLinkBracket,n);break;case"{":if(i.match(/^{{(?!{|[^{}]*}}(?!}))/))return i.eatSpace(),n.stack.push(n.tokenize),n.tokenize=e.inVariable.bind(e),e.makeLocalStyle(Rc.tags.templateVariableBracket,n);if(i.match(/^{(?!{(?!{))[\s\u00a0]*/))return"#"===i.peek()?(n.nExt++,n.stack.push(n.tokenize),n.tokenize=e.inParserFunctionName.bind(e),e.makeLocalStyle(Rc.tags.parserFunctionBracket,n)):!(a=i.match(/^([^\s\u00a0}[\]<{'|&:]+)(:|[\s\u00a0]*)(\}\}?)?(.)?/))||(i.backUp(a[0].length),":"!==a[2]&&void 0!==a[4]&&"}}"!==a[3]||!(a[1].toLowerCase()in e.config.functionSynonyms[0])&&!(a[1]in e.config.functionSynonyms[1]))?(n.nTemplate++,n.stack.push(n.tokenize),n.tokenize=e.eatTemplatePageName(!1),e.makeLocalStyle(Rc.tags.templateBracket,n)):(n.nExt++,n.stack.push(n.tokenize),n.tokenize=e.inParserFunctionName.bind(e),e.makeLocalStyle(Rc.tags.parserFunctionBracket,n));break;case"<":if(l=!!i.eat("/"),h=i.match(/^[^>/\s\u00a0.*,[\]{}$^+?|/\\'`~<=!@#%&()-]+/),i.match("!--"))return c=e.eatBlock(Rc.tags.comment,"--\x3e"),n.stack.push(n.tokenize),n.tokenize=c,c(i,n);if(h){if((h=h[0].toLowerCase())in e.config.tags)return!0===l?Rc.tags.error:(i.backUp(h.length),n.stack.push(n.tokenize),n.tokenize=e.eatTagName(h.length,l,!1),e.makeLocalStyle("".concat(Rc.tags.extTagBracket," mw-ext-").concat(h),n));if(h in Rc.permittedHtmlTags)return!0===l&&h!==n.inHtmlTag.pop()?(i.pos++,Rc.tags.error):!0===l&&h in Rc.implicitlyClosedHtmlTags?Rc.tags.error:(i.backUp(h.length),n.stack.push(n.tokenize),n.tokenize=e.eatTagName(h.length,l||h in Rc.implicitlyClosedHtmlTags,!0),e.makeLocalStyle(Rc.tags.htmlTagBracket,n));i.backUp(h.length)}break;case"~":if(i.match(/^~{2,4}/))return Rc.tags.signature;break;case"_":for(s=1;i.eat("_");)s++;if(s>2)return i.eol()||i.backUp(2),e.makeStyle(t,n);if(2===s&&(a=i.match(/^([^\s\u00a0>}[\]<{'|&:~]+?)__/))&&a[0])return"__"+a[0].toLowerCase()in e.config.doubleUnderscore[0]||"__"+a[0]in e.config.doubleUnderscore[1]?Rc.tags.doubleUnderscore:(i.eol()||i.backUp(2),e.makeStyle(t,n));break;default:if(/[\s\u00a0]/.test(r)&&(i.eatSpace(),i.match(e.urlProtocols,!1)&&!i.match("//")))return n.stack.push(n.tokenize),n.tokenize=e.eatFreeExternalLinkProtocol.bind(e),e.makeStyle(t,n)}return i.match(/^[^\s\u00a0_>}[\]<{'|&:~=]+/),e.makeStyle(t,n)}}},{key:"prepareItalicForCorrection",value:function(t){var e=t.pos,i=t.string.slice(0,e-3),n=i.slice(-1),r=i.slice(-2,-1);if(" "===n){if(this.firstMultiLetterWord||this.firstSpace)return;this.firstSpace=e}else if(" "===r)this.firstSingleLetterWord=e;else{if(this.firstMultiLetterWord)return;this.firstMultiLetterWord=e}this.wasBold=this.isBold,this.wasItalic=this.isItalic}},{key:"mediawiki",get:function(){var t=this;return{name:"mediawiki",startState:function(){return{tokenize:t.eatWikiText(""),stack:[],inHtmlTag:[],extName:!1,extMode:!1,extState:!1,nTemplate:0,nLink:0,nExt:0}},copyState:function(t){return{tokenize:t.tokenize,stack:t.stack.concat([]),inHtmlTag:t.inHtmlTag.concat([]),extName:t.extName,extMode:t.extMode,extState:!1!==t.extMode&&t.extMode.copyState(t.extState),nTemplate:t.nTemplate,nLink:t.nLink,nExt:t.nExt}},token:function(e,i){var n,r,s,o,a=[],l=[];if(t.oldTokens.length>0)return s=t.oldTokens.shift(),e.pos=s.pos,i=s.state,s.style;e.sol()&&(t.isBold=!1,t.isItalic=!1,t.firstSingleLetterWord=null,t.firstMultiLetterWord=null,t.firstSpace=null);do{if(n=i.tokenize(e,i),!(o=t.firstSingleLetterWord||t.firstMultiLetterWord||t.firstSpace))return t.oldStyle=n,n;o!==r&&(r=o,l.length>0&&(a=a.concat(l),l=[])),l.push({pos:e.pos,style:n,state:(i.extMode||t.mediawiki).copyState(i)})}while(!e.eol());if(t.isBold&&t.isItalic){if(t.isItalic=t.wasItalic,t.isBold=t.wasBold,t.firstSingleLetterWord=null,t.firstMultiLetterWord=null,t.firstSpace=null,!(a.length>0))return e.pos=l[0].pos-2,t.oldStyle;a[a.length-1].pos++,t.oldTokens=a}else t.oldTokens=a.concat(l);return s=t.oldTokens.shift(),e.pos=s.pos,i=s.state,s.style},blankLine:function(t){t.extMode&&t.extMode.blankLine&&t.extMode.blankLine(t.extState)},tokenTable:this.tokenTable}}}],i&&zc(e.prototype,i),Object.defineProperty(e,"prototype",{writable:!1}),t}();mw.loader.getState("ext.wikiEditor")&&mw.hook("wikiEditor.toolbarReady").add((function(t){new Mc(t,function(){var t=new Wc((arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||mw.config.get("extCodeMirrorConfig")).mediawiki,e=La.define(t),i=function(t,e){let i,n=[ua];return t instanceof oa&&(t.module&&n.push(Er.styleModule.of(t.module)),i=t.themeType),i?n.push(aa.computeN([Er.darkTheme],(e=>e.facet(Er.darkTheme)==("dark"==i)?[t]:[]))):n.push(aa.of(t)),n}(oa.define(Rc.getTagStyles(t)));return new Go(e,i)}()).addCodeMirrorToWikiEditor()}))})(); +(()=>{"use strict";class t{lineAt(t){if(t<0||t>this.length)throw new RangeError(`Invalid position ${t} in document of length ${this.length}`);return this.lineInner(t,!1,1,0)}line(t){if(t<1||t>this.lines)throw new RangeError(`Invalid line number ${t} in ${this.lines}-line document`);return this.lineInner(t,!0,1,0)}replace(t,e,n){let r=[];return this.decompose(0,t,r,2),n.length&&n.decompose(0,n.length,r,3),this.decompose(e,this.length,r,1),i.from(r,this.length-(e-t)+n.length)}append(t){return this.replace(this.length,this.length,t)}slice(t,e=this.length){let n=[];return this.decompose(t,e,n,0),i.from(n,e-t)}eq(t){if(t==this)return!0;if(t.length!=this.length||t.lines!=this.lines)return!1;let e=this.scanIdentical(t,1),i=this.length-this.scanIdentical(t,-1),n=new s(this),r=new s(t);for(let t=e,s=e;;){if(n.next(t),r.next(t),t=0,n.lineBreak!=r.lineBreak||n.done!=r.done||n.value!=r.value)return!1;if(s+=n.value.length,n.done||s>=i)return!0}}iter(t=1){return new s(this,t)}iterRange(t,e=this.length){return new o(this,t,e)}iterLines(t,e){let i;if(null==t)i=this.iter();else{null==e&&(e=this.lines+1);let n=this.line(t).from;i=this.iterRange(n,Math.max(n,e==this.lines+1?this.length:e<=1?0:this.line(e-1).to))}return new a(i)}toString(){return this.sliceString(0)}toJSON(){let t=[];return this.flatten(t),t}constructor(){}static of(n){if(0==n.length)throw new RangeError("A document must have at least one line");return 1!=n.length||n[0]?n.length<=32?new e(n):i.from(e.split(n,[])):t.empty}}class e extends t{constructor(t,e=function(t){let e=-1;for(let i of t)e+=i.length+1;return e}(t)){super(),this.text=t,this.length=e}get lines(){return this.text.length}get children(){return null}lineInner(t,e,i,n){for(let r=0;;r++){let s=this.text[r],o=n+s.length;if((e?i:o)>=t)return new l(n,o,i,s);n=o+1,i++}}decompose(t,i,s,o){let a=t<=0&&i>=this.length?this:new e(r(this.text,t,i),Math.min(i,this.length)-Math.max(0,t));if(1&o){let t=s.pop(),i=n(a.text,t.text.slice(),0,a.length);if(i.length<=32)s.push(new e(i,t.length+a.length));else{let t=i.length>>1;s.push(new e(i.slice(0,t)),new e(i.slice(t)))}}else s.push(a)}replace(t,s,o){if(!(o instanceof e))return super.replace(t,s,o);let a=n(this.text,n(o.text,r(this.text,0,t)),s),l=this.length+o.length-(s-t);return a.length<=32?new e(a,l):i.from(e.split(a,[]),l)}sliceString(t,e=this.length,i="\n"){let n="";for(let r=0,s=0;r<=e&&st&&s&&(n+=i),tr&&(n+=o.slice(Math.max(0,t-r),e-r)),r=a+1}return n}flatten(t){for(let e of this.text)t.push(e)}scanIdentical(){return 0}static split(t,i){let n=[],r=-1;for(let s of t)n.push(s),r+=s.length+1,32==n.length&&(i.push(new e(n,r)),n=[],r=-1);return r>-1&&i.push(new e(n,r)),i}}class i extends t{constructor(t,e){super(),this.children=t,this.length=e,this.lines=0;for(let e of t)this.lines+=e.lines}lineInner(t,e,i,n){for(let r=0;;r++){let s=this.children[r],o=n+s.length,a=i+s.lines-1;if((e?a:o)>=t)return s.lineInner(t,e,i,n);n=o+1,i=a+1}}decompose(t,e,i,n){for(let r=0,s=0;s<=e&&r=s){let r=n&((s<=t?1:0)|(a>=e?2:0));s>=t&&a<=e&&!r?i.push(o):o.decompose(t-s,e-s,i,r)}s=a+1}}replace(t,e,n){if(n.lines=s&&e<=a){let l=o.replace(t-s,e-s,n),h=this.lines-o.lines+l.lines;if(l.lines>4&&l.lines>h>>6){let s=this.children.slice();return s[r]=l,new i(s,this.length-(e-t)+n.length)}return super.replace(s,a,l)}s=a+1}return super.replace(t,e,n)}sliceString(t,e=this.length,i="\n"){let n="";for(let r=0,s=0;rt&&r&&(n+=i),ts&&(n+=o.sliceString(t-s,e-s,i)),s=a+1}return n}flatten(t){for(let e of this.children)e.flatten(t)}scanIdentical(t,e){if(!(t instanceof i))return 0;let n=0,[r,s,o,a]=e>0?[0,0,this.children.length,t.children.length]:[this.children.length-1,t.children.length-1,-1,-1];for(;;r+=e,s+=e){if(r==o||s==a)return n;let i=this.children[r],l=t.children[s];if(i!=l)return n+i.scanIdentical(l,e);n+=i.length+1}}static from(t,n=t.reduce(((t,e)=>t+e.length+1),-1)){let r=0;for(let e of t)r+=e.lines;if(r<32){let i=[];for(let e of t)e.flatten(i);return new e(i,n)}let s=Math.max(32,r>>5),o=s<<1,a=s>>1,l=[],h=0,c=-1,u=[];function f(t){let n;if(t.lines>o&&t instanceof i)for(let e of t.children)f(e);else t.lines>a&&(h>a||!h)?(d(),l.push(t)):t instanceof e&&h&&(n=u[u.length-1])instanceof e&&t.lines+n.lines<=32?(h+=t.lines,c+=t.length+1,u[u.length-1]=new e(n.text.concat(t.text),n.length+1+t.length)):(h+t.lines>s&&d(),h+=t.lines,c+=t.length+1,u.push(t))}function d(){0!=h&&(l.push(1==u.length?u[0]:i.from(u,c)),c=-1,h=u.length=0)}for(let e of t)f(e);return d(),1==l.length?l[0]:new i(l,n)}}function n(t,e,i=0,n=1e9){for(let r=0,s=0,o=!0;s=i&&(l>n&&(a=a.slice(0,n-r)),r0?1:(t instanceof e?t.text.length:t.children.length)<<1]}nextInner(t,i){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,r=this.nodes[n],s=this.offsets[n],o=s>>1,a=r instanceof e?r.text.length:r.children.length;if(o==(i>0?a:0)){if(0==n)return this.done=!0,this.value="",this;i>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((1&s)==(i>0?0:1)){if(this.offsets[n]+=i,0==t)return this.lineBreak=!0,this.value="\n",this;t--}else if(r instanceof e){let e=r.text[o+(i<0?-1:0)];if(this.offsets[n]+=i,e.length>Math.max(0,t))return this.value=0==t?e:i>0?e.slice(t):e.slice(0,e.length-t),this;t-=e.length}else{let s=r.children[o+(i<0?-1:0)];t>s.length?(t-=s.length,this.offsets[n]+=i):(i<0&&this.offsets[n]--,this.nodes.push(s),this.offsets.push(i>0?1:(s instanceof e?s.text.length:s.children.length)<<1))}}}next(t=0){return t<0&&(this.nextInner(-t,-this.dir),t=this.value.length),this.nextInner(t,this.dir)}}class o{constructor(t,e,i){this.value="",this.done=!1,this.cursor=new s(t,e>i?-1:1),this.pos=e>i?t.length:0,this.from=Math.min(e,i),this.to=Math.max(e,i)}nextInner(t,e){if(e<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;t+=Math.max(0,e<0?this.pos-this.to:this.from-this.pos);let i=e<0?this.pos-this.from:this.to-this.pos;t>i&&(t=i),i-=t;let{value:n}=this.cursor.next(t);return this.pos+=(n.length+t)*e,this.value=n.length<=i?n:e<0?n.slice(n.length-i):n.slice(0,i),this.done=!this.value,this}next(t=0){return t<0?t=Math.max(t,this.from-this.pos):t>0&&(t=Math.min(t,this.to-this.pos)),this.nextInner(t,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&""!=this.value}}class a{constructor(t){this.inner=t,this.afterBreak=!0,this.value="",this.done=!1}next(t=0){let{done:e,lineBreak:i,value:n}=this.inner.next(t);return e?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=n,this.afterBreak=!1),this}get lineBreak(){return!1}}"undefined"!=typeof Symbol&&(t.prototype[Symbol.iterator]=function(){return this.iter()},s.prototype[Symbol.iterator]=o.prototype[Symbol.iterator]=a.prototype[Symbol.iterator]=function(){return this});class l{constructor(t,e,i,n){this.from=t,this.to=e,this.number=i,this.text=n}get length(){return this.to-this.from}}let h="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map((t=>t?parseInt(t,36):1));for(let t=1;tt)return h[e-1]<=t;return!1}function u(t){return t>=127462&&t<=127487}const f=8205;function d(t,e,i=!0,n=!0){return(i?p:g)(t,e,n)}function p(t,e,i){if(e==t.length)return e;e&&m(t.charCodeAt(e))&&w(t.charCodeAt(e-1))&&e--;let n=v(t,e);for(e+=k(n);e=0&&u(v(t,n));)i++,n-=2;if(i%2==0)break;e+=2}}}return e}function g(t,e,i){for(;e>0;){let n=p(t,e-2,i);if(n=56320&&t<57344}function w(t){return t>=55296&&t<56320}function v(t,e){let i=t.charCodeAt(e);if(!w(i)||e+1==t.length)return i;let n=t.charCodeAt(e+1);return m(n)?n-56320+(i-55296<<10)+65536:i}function y(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10),56320+(1023&t)))}function k(t){return t<65536?1:2}const b=/\r\n?|\n/;var x=function(t){return t[t.Simple=0]="Simple",t[t.TrackDel=1]="TrackDel",t[t.TrackBefore=2]="TrackBefore",t[t.TrackAfter=3]="TrackAfter",t}(x||(x={}));class S{constructor(t){this.sections=t}get length(){let t=0;for(let e=0;et)return r+(t-n);r+=o}else{if(i!=x.Simple&&l>=t&&(i==x.TrackDel&&nt||i==x.TrackBefore&&nt))return null;if(l>t||l==t&&e<0&&!o)return t==n||e<0?r:r+a;r+=a}n=l}if(t>n)throw new RangeError(`Position ${t} is out of range for changeset of length ${n}`);return r}touchesRange(t,e=t){for(let i=0,n=0;i=0&&n<=e&&r>=t)return!(ne)||"cover";n=r}return!1}toString(){let t="";for(let e=0;e=0?":"+n:"")}return t}toJSON(){return this.sections}static fromJSON(t){if(!Array.isArray(t)||t.length%2||t.some((t=>"number"!=typeof t)))throw new RangeError("Invalid JSON representation of ChangeDesc");return new S(t)}static create(t){return new S(t)}}class A extends S{constructor(t,e){super(t),this.inserted=e}apply(t){if(this.length!=t.length)throw new RangeError("Applying change set to a document with the wrong length");return T(this,((e,i,n,r,s)=>t=t.replace(n,n+(i-e),s)),!1),t}mapDesc(t,e=!1){return D(this,t,e,!0)}invert(e){let i=this.sections.slice(),n=[];for(let r=0,s=0;r=0){i[r]=a,i[r+1]=o;let l=r>>1;for(;n.length0&&C(i,e,r.text),r.forward(t),o+=t}let l=t[s++];for(;o>1].toJSON()))}return t}static of(e,i,n){let r=[],s=[],o=0,a=null;function l(t=!1){if(!t&&!r.length)return;oa||e<0||a>i)throw new RangeError(`Invalid change range ${e} to ${a} (in doc of length ${i})`);let u=c?"string"==typeof c?t.of(c.split(n||b)):c:t.empty,f=u.length;if(e==a&&0==f)return;eo&&M(r,e-o,-1),M(r,a-e,f),C(s,r,u),o=a}}(e),l(!a),a}static empty(t){return new A(t?[t,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let i=[],n=[];for(let r=0;re&&"string"!=typeof t)))throw new RangeError("Invalid JSON representation of ChangeSet");if(1==s.length)i.push(s[0],0);else{for(;n.length=0&&i<=0&&i==t[r+1]?t[r]+=e:0==e&&0==t[r]?t[r+1]+=i:n?(t[r]+=e,t[r+1]+=i):t.push(e,i)}function C(e,i,n){if(0==n.length)return;let r=i.length-2>>1;if(r>1])),!(n||a==e.sections.length||e.sections[a+1]<0);)l=e.sections[a++],h=e.sections[a++];i(s,c,o,u,f),s=c,o=u}}}function D(t,e,i,n=!1){let r=[],s=n?[]:null,o=new E(t),a=new E(e);for(let t=-1;;)if(-1==o.ins&&-1==a.ins){let t=Math.min(o.len,a.len);M(r,t,-1),o.forward(t),a.forward(t)}else if(a.ins>=0&&(o.ins<0||t==o.i||0==o.off&&(a.len=0&&t=0)){if(o.done&&a.done)return s?A.createSet(r,s):S.create(r);throw new Error("Mismatched change set lengths")}{let e=0,i=o.len;for(;i;)if(-1==a.ins){let t=Math.min(i,a.len);e+=t,i-=t,a.forward(t)}else{if(!(0==a.ins&&a.lene||o.ins>=0&&o.len>e)&&(t||n.length>i),s.forward2(e),o.forward(e)}}else M(n,0,o.ins,t),r&&C(r,n,o.text),o.next()}}class E{constructor(t){this.set=t,this.i=0,this.next()}next(){let{sections:t}=this.set;this.i>1;return i>=e.length?t.empty:e[i]}textBit(e){let{inserted:i}=this.set,n=this.i-2>>1;return n>=i.length&&!e?t.empty:i[n].slice(this.off,null==e?void 0:this.off+e)}forward(t){t==this.len?this.next():(this.len-=t,this.off+=t)}forward2(t){-1==this.ins?this.forward(t):t==this.ins?this.next():(this.ins-=t,this.off+=t)}}class L{constructor(t,e,i){this.from=t,this.to=e,this.flags=i}get anchor(){return 16&this.flags?this.to:this.from}get head(){return 16&this.flags?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return 4&this.flags?-1:8&this.flags?1:0}get bidiLevel(){let t=3&this.flags;return 3==t?null:t}get goalColumn(){let t=this.flags>>5;return 33554431==t?void 0:t}map(t,e=-1){let i,n;return this.empty?i=n=t.mapPos(this.from,e):(i=t.mapPos(this.from,1),n=t.mapPos(this.to,-1)),i==this.from&&n==this.to?this:new L(i,n,this.flags)}extend(t,e=t){if(t<=this.anchor&&e>=this.anchor)return B.range(t,e);let i=Math.abs(t-this.anchor)>Math.abs(e-this.anchor)?t:e;return B.range(this.anchor,i)}eq(t){return this.anchor==t.anchor&&this.head==t.head}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(t){if(!t||"number"!=typeof t.anchor||"number"!=typeof t.head)throw new RangeError("Invalid JSON representation for SelectionRange");return B.range(t.anchor,t.head)}static create(t,e,i){return new L(t,e,i)}}class B{constructor(t,e){this.ranges=t,this.mainIndex=e}map(t,e=-1){return t.empty?this:B.create(this.ranges.map((i=>i.map(t,e))),this.mainIndex)}eq(t){if(this.ranges.length!=t.ranges.length||this.mainIndex!=t.mainIndex)return!1;for(let e=0;et.toJSON())),main:this.mainIndex}}static fromJSON(t){if(!t||!Array.isArray(t.ranges)||"number"!=typeof t.main||t.main>=t.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new B(t.ranges.map((t=>L.fromJSON(t))),t.main)}static single(t,e=t){return new B([B.range(t,e)],0)}static create(t,e=0){if(0==t.length)throw new RangeError("A selection needs at least one range");for(let i=0,n=0;nt?4:0)|r)}static normalized(t,e=0){let i=t[e];t.sort(((t,e)=>t.from-e.from)),e=t.indexOf(i);for(let i=1;in.head?B.range(o,s):B.range(s,o))}}return new B(t,e)}}function P(t,e){for(let i of t.ranges)if(i.to>e)throw new RangeError("Selection points outside of document")}let N=0;class R{constructor(t,e,i,n,r){this.combine=t,this.compareInput=e,this.compare=i,this.isStatic=n,this.id=N++,this.default=t([]),this.extensions="function"==typeof r?r(this):r}static define(t={}){return new R(t.combine||(t=>t),t.compareInput||((t,e)=>t===e),t.compare||(t.combine?(t,e)=>t===e:I),!!t.static,t.enables)}of(t){return new z([],this,0,t)}compute(t,e){if(this.isStatic)throw new Error("Can't compute a static facet");return new z(t,this,1,e)}computeN(t,e){if(this.isStatic)throw new Error("Can't compute a static facet");return new z(t,this,2,e)}from(t,e){return e||(e=t=>t),this.compute([t],(i=>e(i.field(t))))}}function I(t,e){return t==e||t.length==e.length&&t.every(((t,i)=>t===e[i]))}class z{constructor(t,e,i,n){this.dependencies=t,this.facet=e,this.type=i,this.value=n,this.id=N++}dynamicSlot(t){var e;let i=this.value,n=this.facet.compareInput,r=this.id,s=t[r]>>1,o=2==this.type,a=!1,l=!1,h=[];for(let i of this.dependencies)"doc"==i?a=!0:"selection"==i?l=!0:0==(1&(null!==(e=t[i.id])&&void 0!==e?e:1))&&h.push(t[i.id]);return{create:t=>(t.values[s]=i(t),1),update(t,e){if(a&&e.docChanged||l&&(e.docChanged||e.selection)||W(t,h)){let e=i(t);if(o?!H(e,t.values[s],n):!n(e,t.values[s]))return t.values[s]=e,1}return 0},reconfigure:(t,e)=>{let a,l=e.config.address[r];if(null!=l){let r=X(e,l);if(this.dependencies.every((i=>i instanceof R?e.facet(i)===t.facet(i):!(i instanceof _)||e.field(i,!1)==t.field(i,!1)))||(o?H(a=i(t),r,n):n(a=i(t),r)))return t.values[s]=r,0}else a=i(t);return t.values[s]=a,1}}}}function H(t,e,i){if(t.length!=e.length)return!1;for(let n=0;nt[e.id])),r=i.map((t=>t.type)),s=n.filter((t=>!(1&t))),o=t[e.id]>>1;function a(t){let i=[];for(let e=0;et===e),t);return t.provide&&(e.provides=t.provide(e)),e}create(t){let e=t.facet(F).find((t=>t.field==this));return((null==e?void 0:e.create)||this.createF)(t)}slot(t){let e=t[this.id]>>1;return{create:t=>(t.values[e]=this.create(t),1),update:(t,i)=>{let n=t.values[e],r=this.updateF(n,i);return this.compareF(n,r)?0:(t.values[e]=r,1)},reconfigure:(t,i)=>null!=i.config.address[this.id]?(t.values[e]=i.field(this),0):(t.values[e]=this.create(t),1)}}init(t){return[this,F.of({field:this,create:t})]}get extension(){return this}}function j(t){return e=>new K(e,t)}const q={highest:j(0),high:j(1),default:j(2),low:j(3),lowest:j(4)};class K{constructor(t,e){this.inner=t,this.prec=e}}class G{of(t){return new U(this,t)}reconfigure(t){return G.reconfigure.of({compartment:this,extension:t})}get(t){return t.config.compartments.get(this)}}class U{constructor(t,e){this.compartment=t,this.inner=e}}class J{constructor(t,e,i,n,r,s){for(this.base=t,this.compartments=e,this.dynamicSlots=i,this.address=n,this.staticValues=r,this.facets=s,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(t,e,i){let n=[],r=Object.create(null),s=new Map;for(let i of function(t,e,i){let n=[[],[],[],[],[]],r=new Map;return function t(s,o){let a=r.get(s);if(null!=a){if(a<=o)return;let t=n[a].indexOf(s);t>-1&&n[a].splice(t,1),s instanceof U&&i.delete(s.compartment)}if(r.set(s,o),Array.isArray(s))for(let e of s)t(e,o);else if(s instanceof U){if(i.has(s.compartment))throw new RangeError("Duplicate use of compartment in extensions");let n=e.get(s.compartment)||s.inner;i.set(s.compartment,n),t(n,o)}else if(s instanceof K)t(s.inner,s.prec);else if(s instanceof _)n[o].push(s),s.provides&&t(s.provides,o);else if(s instanceof z)n[o].push(s),s.facet.extensions&&t(s.facet.extensions,2);else{let e=s.extension;if(!e)throw new Error(`Unrecognized extension value in extension set (${s}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);t(e,o)}}(t,2),n.reduce(((t,e)=>t.concat(e)))}(t,e,s))i instanceof _?n.push(i):(r[i.facet.id]||(r[i.facet.id]=[])).push(i);let o=Object.create(null),a=[],l=[];for(let t of n)o[t.id]=l.length<<1,l.push((e=>t.slot(e)));let h=null==i?void 0:i.config.facets;for(let t in r){let e=r[t],n=e[0].facet,s=h&&h[t]||[];if(e.every((t=>0==t.type)))if(o[n.id]=a.length<<1|1,I(s,e))a.push(i.facet(n));else{let t=n.combine(e.map((t=>t.value)));a.push(i&&n.compare(t,i.facet(n))?i.facet(n):t)}else{for(let t of e)0==t.type?(o[t.id]=a.length<<1|1,a.push(t.value)):(o[t.id]=l.length<<1,l.push((e=>t.dynamicSlot(e))));o[n.id]=l.length<<1,l.push((t=>V(t,n,e)))}}let c=l.map((t=>t(o)));return new J(t,s,c,o,a,r)}}function Y(t,e){if(1&e)return 2;let i=e>>1,n=t.status[i];if(4==n)throw new Error("Cyclic dependency between fields and/or facets");if(2&n)return n;t.status[i]=4;let r=t.computeSlot(t,t.config.dynamicSlots[i]);return t.status[i]=2|r}function X(t,e){return 1&e?t.config.staticValues[e>>1]:t.values[e>>1]}const Q=R.define(),Z=R.define({combine:t=>t.some((t=>t)),static:!0}),tt=R.define({combine:t=>t.length?t[0]:void 0,static:!0}),et=R.define(),it=R.define(),nt=R.define(),rt=R.define({combine:t=>!!t.length&&t[0]});class st{constructor(t,e){this.type=t,this.value=e}static define(){return new ot}}class ot{of(t){return new st(this,t)}}class at{constructor(t){this.map=t}of(t){return new lt(this,t)}}class lt{constructor(t,e){this.type=t,this.value=e}map(t){let e=this.type.map(this.value,t);return void 0===e?void 0:e==this.value?this:new lt(this.type,e)}is(t){return this.type==t}static define(t={}){return new at(t.map||(t=>t))}static mapEffects(t,e){if(!t.length)return t;let i=[];for(let n of t){let t=n.map(e);t&&i.push(t)}return i}}lt.reconfigure=lt.define(),lt.appendConfig=lt.define();class ht{constructor(t,e,i,n,r,s){this.startState=t,this.changes=e,this.selection=i,this.effects=n,this.annotations=r,this.scrollIntoView=s,this._doc=null,this._state=null,i&&P(i,e.newLength),r.some((t=>t.type==ht.time))||(this.annotations=r.concat(ht.time.of(Date.now())))}static create(t,e,i,n,r,s){return new ht(t,e,i,n,r,s)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(t){for(let e of this.annotations)if(e.type==t)return e.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(t){let e=this.annotation(ht.userEvent);return!(!e||!(e==t||e.length>t.length&&e.slice(0,t.length)==t&&"."==e[t.length]))}}function ct(t,e){let i=[];for(let n=0,r=0;;){let s,o;if(n=t[n]))s=t[n++],o=t[n++];else{if(!(r=0;r--){let s=i[r](t);s&&Object.keys(s).length&&(n=ut(n,ft(e,s,t.changes.newLength),!0))}return n==t?t:ht.create(e,t.changes,t.selection,n.effects,n.annotations,n.scrollIntoView)}(i?function(t){let e=t.startState,i=!0;for(let n of e.facet(et)){let e=n(t);if(!1===e){i=!1;break}Array.isArray(e)&&(i=!0===i?e:ct(i,e))}if(!0!==i){let n,r;if(!1===i)r=t.changes.invertedDesc,n=A.empty(e.doc.length);else{let e=t.changes.filter(i);n=e.changes,r=e.filtered.mapDesc(e.changes).invertedDesc}t=ht.create(e,n,t.selection&&t.selection.map(r),lt.mapEffects(t.effects,r),t.annotations,t.scrollIntoView)}let n=e.facet(it);for(let i=n.length-1;i>=0;i--){let r=n[i](t);t=r instanceof ht?r:Array.isArray(r)&&1==r.length&&r[0]instanceof ht?r[0]:dt(e,gt(r),!1)}return t}(r):r)}ht.time=st.define(),ht.userEvent=st.define(),ht.addToHistory=st.define(),ht.remote=st.define();const pt=[];function gt(t){return null==t?pt:Array.isArray(t)?t:[t]}var mt=function(t){return t[t.Word=0]="Word",t[t.Space=1]="Space",t[t.Other=2]="Other",t}(mt||(mt={}));const wt=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let vt;try{vt=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(t){}class yt{constructor(t,e,i,n,r,s){this.config=t,this.doc=e,this.selection=i,this.values=n,this.status=t.statusTemplate.slice(),this.computeSlot=r,s&&(s._state=this);for(let t=0;tr.set(e,t))),i=null),r.set(e.value.compartment,e.value.extension)):e.is(lt.reconfigure)?(i=null,n=e.value):e.is(lt.appendConfig)&&(i=null,n=gt(n).concat(e.value));i?e=t.startState.values.slice():(i=J.resolve(n,r,this),e=new yt(i,this.doc,this.selection,i.dynamicSlots.map((()=>null)),((t,e)=>e.reconfigure(t,this)),null).values),new yt(i,t.newDoc,t.newSelection,e,((e,i)=>i.update(e,t)),t)}replaceSelection(t){return"string"==typeof t&&(t=this.toText(t)),this.changeByRange((e=>({changes:{from:e.from,to:e.to,insert:t},range:B.cursor(e.from+t.length)})))}changeByRange(t){let e=this.selection,i=t(e.ranges[0]),n=this.changes(i.changes),r=[i.range],s=gt(i.effects);for(let i=1;ir.spec.fromJSON(s,t))))}return yt.create({doc:t.doc,selection:B.fromJSON(t.selection),extensions:e.extensions?n.concat([e.extensions]):n})}static create(e={}){let i=J.resolve(e.extensions||[],new Map),n=e.doc instanceof t?e.doc:t.of((e.doc||"").split(i.staticFacet(yt.lineSeparator)||b)),r=e.selection?e.selection instanceof B?e.selection:B.single(e.selection.anchor,e.selection.head):B.single(0);return P(r,n.length),i.staticFacet(Z)||(r=r.asSingle()),new yt(i,n,r,i.dynamicSlots.map((()=>null)),((t,e)=>e.create(t)),null)}get tabSize(){return this.facet(yt.tabSize)}get lineBreak(){return this.facet(yt.lineSeparator)||"\n"}get readOnly(){return this.facet(rt)}phrase(t,...e){for(let e of this.facet(yt.phrases))if(Object.prototype.hasOwnProperty.call(e,t)){t=e[t];break}return e.length&&(t=t.replace(/\$(\$|\d*)/g,((t,i)=>{if("$"==i)return"$";let n=+(i||1);return!n||n>e.length?t:e[n-1]}))),t}languageDataAt(t,e,i=-1){let n=[];for(let r of this.facet(Q))for(let s of r(this,e,i))Object.prototype.hasOwnProperty.call(s,t)&&n.push(s[t]);return n}charCategorizer(t){return e=this.languageDataAt("wordChars",t).join(""),t=>{if(!/\S/.test(t))return mt.Space;if(function(t){if(vt)return vt.test(t);for(let e=0;e"€"&&(i.toUpperCase()!=i.toLowerCase()||wt.test(i)))return!0}return!1}(t))return mt.Word;for(let i=0;i-1)return mt.Word;return mt.Other};var e}wordAt(t){let{text:e,from:i,length:n}=this.doc.lineAt(t),r=this.charCategorizer(t),s=t-i,o=t-i;for(;s>0;){let t=d(e,s,!1);if(r(e.slice(t,s))!=mt.Word)break;s=t}for(;ot.length?t[0]:4}),yt.lineSeparator=tt,yt.readOnly=rt,yt.phrases=R.define({compare(t,e){let i=Object.keys(t),n=Object.keys(e);return i.length==n.length&&i.every((i=>t[i]==e[i]))}}),yt.languageData=Q,yt.changeFilter=et,yt.transactionFilter=it,yt.transactionExtender=nt,G.reconfigure=lt.define();class bt{eq(t){return this==t}range(t,e=t){return xt.create(t,e,this)}}bt.prototype.startSide=bt.prototype.endSide=0,bt.prototype.point=!1,bt.prototype.mapMode=x.TrackDel;class xt{constructor(t,e,i){this.from=t,this.to=e,this.value=i}static create(t,e,i){return new xt(t,e,i)}}function St(t,e){return t.from-e.from||t.value.startSide-e.value.startSide}class At{constructor(t,e,i,n){this.from=t,this.to=e,this.value=i,this.maxPoint=n}get length(){return this.to[this.to.length-1]}findIndex(t,e,i,n=0){let r=i?this.to:this.from;for(let s=n,o=r.length;;){if(s==o)return s;let n=s+o>>1,a=r[n]-t||(i?this.value[n].endSide:this.value[n].startSide)-e;if(n==s)return a>=0?s:o;a>=0?o=n:s=n+1}}between(t,e,i,n){for(let r=this.findIndex(e,-1e9,!0),s=this.findIndex(i,1e9,!1,r);rh||l==h&&c.startSide>0&&c.endSide<=0)continue;(h-l||c.endSide-c.startSide)<0||(s<0&&(s=l),c.point&&(o=Math.max(o,h-l)),i.push(c),n.push(l-s),r.push(h-s))}return{mapped:i.length?new At(n,r,i,o):null,pos:s}}}class Mt{constructor(t,e,i,n){this.chunkPos=t,this.chunk=e,this.nextLayer=i,this.maxPoint=n}static create(t,e,i,n){return new Mt(t,e,i,n)}get length(){let t=this.chunk.length-1;return t<0?0:Math.max(this.chunkEnd(t),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let t=this.nextLayer.size;for(let e of this.chunk)t+=e.value.length;return t}chunkEnd(t){return this.chunkPos[t]+this.chunk[t].length}update(t){let{add:e=[],sort:i=!1,filterFrom:n=0,filterTo:r=this.length}=t,s=t.filter;if(0==e.length&&!s)return this;if(i&&(e=e.slice().sort(St)),this.isEmpty)return e.length?Mt.of(e):this;let o=new Dt(this,null,-1).goto(0),a=0,l=[],h=new Ct;for(;o.value||a=0){let t=e[a++];h.addInner(t.from,t.to,t.value)||l.push(t)}else 1==o.rangeIndex&&o.chunkIndexthis.chunkEnd(o.chunkIndex)||ro.to||r=r&&t<=r+s.length&&!1===s.between(r,t-r,e-r,i))return}this.nextLayer.between(t,e,i)}}iter(t=0){return Ot.from([this]).goto(t)}get isEmpty(){return this.nextLayer==this}static iter(t,e=0){return Ot.from(t).goto(e)}static compare(t,e,i,n,r=-1){let s=t.filter((t=>t.maxPoint>0||!t.isEmpty&&t.maxPoint>=r)),o=e.filter((t=>t.maxPoint>0||!t.isEmpty&&t.maxPoint>=r)),a=Tt(s,o,i),l=new Lt(s,a,r),h=new Lt(o,a,r);i.iterGaps(((t,e,i)=>Bt(l,t,h,e,i,n))),i.empty&&0==i.length&&Bt(l,0,h,0,0,n)}static eq(t,e,i=0,n){null==n&&(n=999999999);let r=t.filter((t=>!t.isEmpty&&e.indexOf(t)<0)),s=e.filter((e=>!e.isEmpty&&t.indexOf(e)<0));if(r.length!=s.length)return!1;if(!r.length)return!0;let o=Tt(r,s),a=new Lt(r,o,0).goto(i),l=new Lt(s,o,0).goto(i);for(;;){if(a.to!=l.to||!Pt(a.active,l.active)||a.point&&(!l.point||!a.point.eq(l.point)))return!1;if(a.to>n)return!0;a.next(),l.next()}}static spans(t,e,i,n,r=-1){let s=new Lt(t,null,r).goto(e),o=e,a=s.openStart;for(;;){let t=Math.min(s.to,i);if(s.point){let i=s.activeForPoint(s.to),r=s.pointFromo&&(n.span(o,t,s.active,a),a=s.openEnd(t));if(s.to>i)return a+(s.point&&s.to>i?1:0);o=s.to,s.next()}}static of(t,e=!1){let i=new Ct;for(let n of t instanceof xt?[t]:e?function(t){if(t.length>1)for(let e=t[0],i=1;i0)return t.slice().sort(St);e=n}return t}(t):t)i.add(n.from,n.to,n.value);return i.finish()}}Mt.empty=new Mt([],[],null,-1),Mt.empty.nextLayer=Mt.empty;class Ct{finishChunk(t){this.chunks.push(new At(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,t&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(t,e,i){this.addInner(t,e,i)||(this.nextLayer||(this.nextLayer=new Ct)).add(t,e,i)}addInner(t,e,i){let n=t-this.lastTo||i.startSide-this.last.endSide;if(n<=0&&(t-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return!(n<0||(250==this.from.length&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=t),this.from.push(t-this.chunkStart),this.to.push(e-this.chunkStart),this.last=i,this.lastFrom=t,this.lastTo=e,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,e-t)),0))}addChunk(t,e){if((t-this.lastTo||e.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,e.maxPoint),this.chunks.push(e),this.chunkPos.push(t);let i=e.value.length-1;return this.last=e.value[i],this.lastFrom=e.from[i]+t,this.lastTo=e.to[i]+t,!0}finish(){return this.finishInner(Mt.empty)}finishInner(t){if(this.from.length&&this.finishChunk(!1),0==this.chunks.length)return t;let e=Mt.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(t):t,this.setMaxPoint);return this.from=null,e}}function Tt(t,e,i){let n=new Map;for(let e of t)for(let t=0;t=this.minPoint)break}}}setRangeIndex(t){if(t==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=i&&n.push(new Dt(s,e,i,r));return 1==n.length?n[0]:new Ot(n)}get startSide(){return this.value?this.value.startSide:0}goto(t,e=-1e9){for(let i of this.heap)i.goto(t,e);for(let t=this.heap.length>>1;t>=0;t--)Et(this.heap,t);return this.next(),this}forward(t,e){for(let i of this.heap)i.forward(t,e);for(let t=this.heap.length>>1;t>=0;t--)Et(this.heap,t);(this.to-t||this.value.endSide-e)<0&&this.next()}next(){if(0==this.heap.length)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let t=this.heap[0];this.from=t.from,this.to=t.to,this.value=t.value,this.rank=t.rank,t.value&&t.next(),Et(this.heap,0)}}}function Et(t,e){for(let i=t[e];;){let n=1+(e<<1);if(n>=t.length)break;let r=t[n];if(n+1=0&&(r=t[n+1],n++),i.compare(r)<0)break;t[n]=i,t[e]=r,e=n}}class Lt{constructor(t,e,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=Ot.from(t,e,i)}goto(t,e=-1e9){return this.cursor.goto(t,e),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=t,this.endSide=e,this.openStart=-1,this.next(),this}forward(t,e){for(;this.minActive>-1&&(this.activeTo[this.minActive]-t||this.active[this.minActive].endSide-e)<0;)this.removeActive(this.minActive);this.cursor.forward(t,e)}removeActive(t){Nt(this.active,t),Nt(this.activeTo,t),Nt(this.activeRank,t),this.minActive=It(this.active,this.activeTo)}addActive(t){let e=0,{value:i,to:n,rank:r}=this.cursor;for(;e-1&&(this.activeTo[n]-this.cursor.from||this.active[n].endSide-this.cursor.startSide)<0){if(this.activeTo[n]>t){this.to=this.activeTo[n],this.endSide=this.active[n].endSide;break}this.removeActive(n),i&&Nt(i,n)}else{if(!this.cursor.value){this.to=this.endSide=1e9;break}if(this.cursor.from>t){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}{let t=this.cursor.value;if(t.point){if(!(e&&this.cursor.to==this.to&&this.cursor.from=0&&i[e]=0&&!(this.activeRank[i]t||this.activeTo[i]==t&&this.active[i].endSide>=this.point.endSide)&&e.push(this.active[i]);return e.reverse()}openEnd(t){let e=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>t;i--)e++;return e}}function Bt(t,e,i,n,r,s){t.goto(e),i.goto(n);let o=n+r,a=n,l=n-e;for(;;){let e=t.to+l-i.to||t.endSide-i.endSide,n=e<0?t.to+l:i.to,r=Math.min(n,o);if(t.point||i.point?t.point&&i.point&&(t.point==i.point||t.point.eq(i.point))&&Pt(t.activeForPoint(t.to),i.activeForPoint(i.to))||s.comparePoint(a,r,t.point,i.point):r>a&&!Pt(t.active,i.active)&&s.compareRange(a,r,t.active,i.active),n>o)break;a=n,e<=0&&t.next(),e>=0&&i.next()}}function Pt(t,e){if(t.length!=e.length)return!1;for(let i=0;i=e;i--)t[i+1]=t[i];t[e]=i}function It(t,e){let i=-1,n=1e9;for(let r=0;rt.map((t=>e.replace(/&/,t))))).reduce(((t,e)=>t.concat(e))),o,s);else if(o&&"object"==typeof o){if(!l)throw new RangeError("The value of a property ("+i+") should be a primitive value.");r(n(i),o,a,h)}else null!=o&&a.push(i.replace(/_.*/,"").replace(/[A-Z]/g,(t=>"-"+t.toLowerCase()))+": "+o+";")}(a.length||h)&&s.push((!i||l||o?t:t.map(i)).join(", ")+" {"+a.join(" ")+"}")}for(let e in t)r(n(e),t[e],this.rules)}getRules(){return this.rules.join("\n")}static newName(){let t=Vt[Ht]||1;return Vt[Ht]=t+1,"ͼ"+t.toString(36)}static mount(t,e,i){let n=t[Wt],r=i&&i.nonce;n?r&&n.setNonce(r):n=new jt(t,r),n.mount(Array.isArray(e)?e:[e])}}let _t=new Map;class jt{constructor(t,e){let i=t.ownerDocument||t,n=i.defaultView;if(!t.head&&t.adoptedStyleSheets&&n.CSSStyleSheet){let e=_t.get(i);if(e)return t.adoptedStyleSheets=[e.sheet,...t.adoptedStyleSheets],t[Wt]=e;this.sheet=new n.CSSStyleSheet,t.adoptedStyleSheets=[this.sheet,...t.adoptedStyleSheets],_t.set(i,this)}else{this.styleTag=i.createElement("style"),e&&this.styleTag.setAttribute("nonce",e);let n=t.head||t;n.insertBefore(this.styleTag,n.firstChild)}this.modules=[],t[Wt]=this}mount(t){let e=this.sheet,i=0,n=0;for(let r=0;r-1&&(this.modules.splice(o,1),n--,o=-1),-1==o){if(this.modules.splice(n++,0,s),e)for(let t=0;t",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},Kt="undefined"!=typeof navigator&&/Mac/.test(navigator.platform),Gt="undefined"!=typeof navigator&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),Ut=0;Ut<10;Ut++)qt[48+Ut]=qt[96+Ut]=String(Ut);for(Ut=1;Ut<=24;Ut++)qt[Ut+111]="F"+Ut;for(Ut=65;Ut<=90;Ut++)qt[Ut]=String.fromCharCode(Ut+32),$t[Ut]=String.fromCharCode(Ut);for(var Jt in qt)$t.hasOwnProperty(Jt)||($t[Jt]=qt[Jt]);function Yt(t){let e;return e=11==t.nodeType?t.getSelection?t:t.ownerDocument:t,e.getSelection()}function Xt(t,e){return!!e&&(t==e||t.contains(1!=e.nodeType?e.parentNode:e))}function Qt(t,e){if(!e.anchorNode)return!1;try{return Xt(t,e.anchorNode)}catch(t){return!1}}function Zt(t){return 3==t.nodeType?ce(t,0,t.nodeValue.length).getClientRects():1==t.nodeType?t.getClientRects():[]}function te(t,e,i,n){return!!i&&(ie(t,e,i,n,-1)||ie(t,e,i,n,1))}function ee(t){for(var e=0;;e++)if(!(t=t.previousSibling))return e}function ie(t,e,i,n,r){for(;;){if(t==i&&e==n)return!0;if(e==(r<0?0:ne(t))){if("DIV"==t.nodeName)return!1;let i=t.parentNode;if(!i||1!=i.nodeType)return!1;e=ee(t)+(r<0?0:1),t=i}else{if(1!=t.nodeType)return!1;if(1==(t=t.childNodes[e+(r<0?-1:0)]).nodeType&&"false"==t.contentEditable)return!1;e=r<0?ne(t):0}}}function ne(t){return 3==t.nodeType?t.nodeValue.length:t.childNodes.length}function re(t,e){let i=e?t.left:t.right;return{left:i,right:i,top:t.top,bottom:t.bottom}}function se(t){return{left:0,right:t.innerWidth,top:0,bottom:t.innerHeight}}class oe{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(t){return this.anchorNode==t.anchorNode&&this.anchorOffset==t.anchorOffset&&this.focusNode==t.focusNode&&this.focusOffset==t.focusOffset}setRange(t){let{anchorNode:e,focusNode:i}=t;this.set(e,Math.min(t.anchorOffset,e?ne(e):0),i,Math.min(t.focusOffset,i?ne(i):0))}set(t,e,i,n){this.anchorNode=t,this.anchorOffset=e,this.focusNode=i,this.focusOffset=n}}let ae,le=null;function he(t){if(t.setActive)return t.setActive();if(le)return t.focus(le);let e=[];for(let i=t;i&&(e.push(i,i.scrollTop,i.scrollLeft),i!=i.ownerDocument);i=i.parentNode);if(t.focus(null==le?{get preventScroll(){return le={preventScroll:!0},!0}}:void 0),!le){le=!1;for(let t=0;tMath.max(1,t.scrollHeight-t.clientHeight-4)}class pe{constructor(t,e,i=!0){this.node=t,this.offset=e,this.precise=i}static before(t,e){return new pe(t.parentNode,ee(t),e)}static after(t,e){return new pe(t.parentNode,ee(t)+1,e)}}const ge=[];class me{constructor(){this.parent=null,this.dom=null,this.flags=2}get overrideDOMText(){return null}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(t){let e=this.posAtStart;for(let i of this.children){if(i==t)return e;e+=i.length+i.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(t){return this.posBefore(t)+t.length}sync(t,e){if(2&this.flags){let i,n=this.dom,r=null;for(let s of this.children){if(7&s.flags){if(!s.dom&&(i=r?r.nextSibling:n.firstChild)){let t=me.get(i);(!t||!t.parent&&t.canReuseDOM(s))&&s.reuseDOM(i)}s.sync(t,e),s.flags&=-8}if(i=r?r.nextSibling:n.firstChild,e&&!e.written&&e.node==n&&i!=s.dom&&(e.written=!0),s.dom.parentNode==n)for(;i&&i!=s.dom;)i=we(i);else n.insertBefore(s.dom,i);r=s.dom}for(i=r?r.nextSibling:n.firstChild,i&&e&&e.node==n&&(e.written=!0);i;)i=we(i)}else if(1&this.flags)for(let i of this.children)7&i.flags&&(i.sync(t,e),i.flags&=-8)}reuseDOM(t){}localPosFromDOM(t,e){let i;if(t==this.dom)i=this.dom.childNodes[e];else{let n=0==ne(t)?0:0==e?-1:1;for(;;){let e=t.parentNode;if(e==this.dom)break;0==n&&e.firstChild!=e.lastChild&&(n=t==e.firstChild?-1:1),t=e}i=n<0?t:t.nextSibling}if(i==this.dom.firstChild)return 0;for(;i&&!me.get(i);)i=i.nextSibling;if(!i)return this.length;for(let t=0,e=0;;t++){let n=this.children[t];if(n.dom==i)return e;e+=n.length+n.breakAfter}}domBoundsAround(t,e,i=0){let n=-1,r=-1,s=-1,o=-1;for(let a=0,l=i,h=i;ae)return i.domBoundsAround(t,e,l);if(c>=t&&-1==n&&(n=a,r=l),l>e&&i.dom.parentNode==this.dom){s=a,o=h;break}h=c,l=c+i.breakAfter}return{from:r,to:o<0?i+this.length:o,startDOM:(n?this.children[n-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:s=0?this.children[s].dom:null}}markDirty(t=!1){this.flags|=2,this.markParentsDirty(t)}markParentsDirty(t){for(let e=this.parent;e;e=e.parent){if(t&&(e.flags|=2),1&e.flags)return;e.flags|=1,t=!1}}setParent(t){this.parent!=t&&(this.parent=t,7&this.flags&&this.markParentsDirty(!0))}setDOM(t){this.dom!=t&&(this.dom&&(this.dom.cmView=null),this.dom=t,t.cmView=this)}get rootView(){for(let t=this;;){let e=t.parent;if(!e)return t;t=e}}replaceChildren(t,e,i=ge){this.markDirty();for(let i=t;ithis.pos||t==this.pos&&(e>0||0==this.i||this.children[this.i-1].breakAfter))return this.off=t-this.pos,this;let i=this.children[--this.i];this.pos-=i.length+i.breakAfter}}}function ye(t,e,i,n,r,s,o,a,l){let{children:h}=t,c=h.length?h[e]:null,u=s.length?s[s.length-1]:null,f=u?u.breakAfter:o;if(!(e==n&&c&&!o&&!f&&s.length<2&&c.merge(i,r,s.length?u:null,0==i,a,l))){if(n0&&(!o&&s.length&&c.merge(i,c.length,s[0],!1,a,0)?c.breakAfter=s.shift().breakAfter:(i2);var Be={mac:Le||/Mac/.test(be.platform),windows:/Win/.test(be.platform),linux:/Linux|X11/.test(be.platform),ie:Ce,ie_version:Ae?xe.documentMode||6:Me?+Me[1]:Se?+Se[1]:0,gecko:Te,gecko_version:Te?+(/Firefox\/(\d+)/.exec(be.userAgent)||[0,0])[1]:0,chrome:!!De,chrome_version:De?+De[1]:0,ios:Le,android:/Android\b/.test(be.userAgent),webkit:Oe,safari:Ee,webkit_version:Oe?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:null!=xe.documentElement.style.tabSize?"tab-size":"-moz-tab-size"};class Pe extends me{constructor(t){super(),this.text=t}get length(){return this.text.length}createDOM(t){this.setDOM(t||document.createTextNode(this.text))}sync(t,e){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(e&&e.node==this.dom&&(e.written=!0),this.dom.nodeValue=this.text)}reuseDOM(t){3==t.nodeType&&this.createDOM(t)}merge(t,e,i){return!(8&this.flags||i&&(!(i instanceof Pe)||this.length-(e-t)+i.length>256||8&i.flags)||(this.text=this.text.slice(0,t)+(i?i.text:"")+this.text.slice(e),this.markDirty(),0))}split(t){let e=new Pe(this.text.slice(t));return this.text=this.text.slice(0,t),this.markDirty(),e.flags|=8&this.flags,e}localPosFromDOM(t,e){return t==this.dom?e:e?this.text.length:0}domAtPos(t){return new pe(this.dom,t)}domBoundsAround(t,e,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(t,e){return function(t,e,i){let n=t.nodeValue.length;e>n&&(e=n);let r=e,s=e,o=0;0==e&&i<0||e==n&&i>=0?Be.chrome||Be.gecko||(e?(r--,o=1):s=0)?0:a.length-1];return Be.safari&&!o&&0==l.width&&(l=Array.prototype.find.call(a,(t=>t.width))||l),o?re(l,o<0):l||null}(this.dom,t,e)}}class Ne extends me{constructor(t,e=[],i=0){super(),this.mark=t,this.children=e,this.length=i;for(let t of e)t.setParent(this)}setAttrs(t){if(fe(t),this.mark.class&&(t.className=this.mark.class),this.mark.attrs)for(let e in this.mark.attrs)t.setAttribute(e,this.mark.attrs[e]);return t}canReuseDOM(t){return super.canReuseDOM(t)&&!(8&(this.flags|t.flags))}reuseDOM(t){t.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(t),this.flags|=6)}sync(t,e){this.dom?4&this.flags&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(t,e)}merge(t,e,i,n,r,s){return!(i&&(!(i instanceof Ne&&i.mark.eq(this.mark))||t&&r<=0||et&&e.push(i=t&&(n=r),i=o,r++}let s=this.length-t;return this.length=t,n>-1&&(this.children.length=n,this.markDirty()),new Ne(this.mark,e,s)}domAtPos(t){return ze(this,t)}coordsAt(t,e){return We(this,t,e)}}class Re extends me{static create(t,e,i){return new Re(t,e,i)}constructor(t,e,i){super(),this.widget=t,this.length=e,this.side=i,this.prevWidget=null}split(t){let e=Re.create(this.widget,this.length-t,this.side);return this.length-=t,e}sync(t){this.dom&&this.widget.updateDOM(this.dom,t)||(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(t)),this.dom.contentEditable="false")}getSide(){return this.side}merge(t,e,i,n,r,s){return!(i&&(!(i instanceof Re&&this.widget.compare(i.widget))||t>0&&r<=0||e0)?pe.before(this.dom):pe.after(this.dom,t==this.length)}domBoundsAround(){return null}coordsAt(t,e){let i=this.widget.coordsAt(this.dom,t,e);if(i)return i;let n=this.dom.getClientRects(),r=null;if(!n.length)return null;let s=this.side?this.side<0:t>0;for(let e=s?n.length-1:0;r=n[e],!(t>0?0==e:e==n.length-1||r.top0?pe.before(this.dom):pe.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(t){return this.dom.getBoundingClientRect()}get overrideDOMText(){return t.empty}get isHidden(){return!0}}function ze(t,e){let i=t.dom,{children:n}=t,r=0;for(let t=0;rt&&e0;t--){let e=n[t-1];if(e.dom.parentNode==i)return e.domAtPos(e.length)}for(let t=r;t0&&e instanceof Ne&&r.length&&(n=r[r.length-1])instanceof Ne&&n.mark.eq(e.mark)?He(n,e.children[0],i-1):(r.push(e),e.setParent(t)),t.length+=e.length}function We(t,e,i){let n=null,r=-1,s=null,o=-1;!function t(e,a){for(let l=0,h=0;l=a&&(c.children.length?t(c,a-h):(!s||s.isHidden&&i>0)&&(u>a||h==u&&c.getSide()>0)?(s=c,o=a-h):(h-1?1:0)!=r.length-(i&&r.indexOf(i)>-1?1:0))return!1;for(let s of n)if(s!=i&&(-1==r.indexOf(s)||t[s]!==e[s]))return!1;return!0}function je(t,e,i){let n=!1;if(e)for(let r in e)i&&r in i||(n=!0,"style"==r?t.style.cssText="":t.removeAttribute(r));if(i)for(let r in i)e&&e[r]==i[r]||(n=!0,"style"==r?t.style.cssText=i[r]:t.setAttribute(r,i[r]));return n}function qe(t){let e=Object.create(null);for(let i=0;i0?3e8:-4e8:e>0?1e8:-1e8,new Ye(t,e,e,i,t.widget||null,!1)}static replace(t){let e,i,n=!!t.block;if(t.isBlockGap)e=-5e8,i=4e8;else{let{start:r,end:s}=Xe(t,n);e=(r?n?-3e8:-1:5e8)-1,i=1+(s?n?2e8:1:-6e8)}return new Ye(t,e,i,n,t.widget||null,!0)}static line(t){return new Je(t)}static set(t,e=!1){return Mt.of(t,e)}hasHeight(){return!!this.widget&&this.widget.estimatedHeight>-1}}Ge.none=Mt.empty;class Ue extends Ge{constructor(t){let{start:e,end:i}=Xe(t);super(e?-1:5e8,i?1:-6e8,null,t),this.tagName=t.tagName||"span",this.class=t.class||"",this.attrs=t.attributes||null}eq(t){var e,i;return this==t||t instanceof Ue&&this.tagName==t.tagName&&(this.class||(null===(e=this.attrs)||void 0===e?void 0:e.class))==(t.class||(null===(i=t.attrs)||void 0===i?void 0:i.class))&&_e(this.attrs,t.attrs,"class")}range(t,e=t){if(t>=e)throw new RangeError("Mark decorations may not be empty");return super.range(t,e)}}Ue.prototype.point=!1;class Je extends Ge{constructor(t){super(-2e8,-2e8,null,t)}eq(t){return t instanceof Je&&this.spec.class==t.spec.class&&_e(this.spec.attributes,t.spec.attributes)}range(t,e=t){if(e!=t)throw new RangeError("Line decoration ranges must be zero-length");return super.range(t,e)}}Je.prototype.mapMode=x.TrackBefore,Je.prototype.point=!0;class Ye extends Ge{constructor(t,e,i,n,r,s){super(e,i,r,t),this.block=n,this.isReplace=s,this.mapMode=n?e<=0?x.TrackBefore:x.TrackAfter:x.TrackDel}get type(){return this.startSide=5||this.widget.lineBreaks>0)}eq(t){return t instanceof Ye&&((e=this.widget)==(i=t.widget)||!!(e&&i&&e.compare(i)))&&this.block==t.block&&this.startSide==t.startSide&&this.endSide==t.endSide;var e,i}range(t,e=t){if(this.isReplace&&(t>e||t==e&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&e!=t)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(t,e)}}function Xe(t,e=!1){let{inclusiveStart:i,inclusiveEnd:n}=t;return null==i&&(i=t.inclusive),null==n&&(n=t.inclusive),{start:null!=i?i:e,end:null!=n?n:e}}function Qe(t,e,i,n=0){let r=i.length-1;r>=0&&i[r]+n>=t?i[r]=Math.max(i[r],e):i.push(t,e)}Ye.prototype.point=!0;class Ze extends me{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(t,e,i,n,r,s){if(i){if(!(i instanceof Ze))return!1;this.dom||i.transferDOM(this)}return n&&this.setDeco(i?i.attrs:null),ke(this,t,e,i?i.children:[],r,s),!0}split(t){let e=new Ze;if(e.breakAfter=this.breakAfter,0==this.length)return e;let{i,off:n}=this.childPos(t);n&&(e.append(this.children[i].split(n),0),this.children[i].merge(n,this.children[i].length,null,!1,0,0),i++);for(let t=i;t0&&0==this.children[i-1].length;)this.children[--i].destroy();return this.children.length=i,this.markDirty(),this.length=t,e}transferDOM(t){this.dom&&(this.markDirty(),t.setDOM(this.dom),t.prevAttrs=void 0===this.prevAttrs?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(t){_e(this.attrs,t)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=t)}append(t,e){He(this,t,e)}addLineDeco(t){let e=t.spec.attributes,i=t.spec.class;e&&(this.attrs=Ve(e,this.attrs||{})),i&&(this.attrs=Ve({class:i},this.attrs||{}))}domAtPos(t){return ze(this,t)}reuseDOM(t){"DIV"==t.nodeName&&(this.setDOM(t),this.flags|=6)}sync(t,e){var i;this.dom?4&this.flags&&(fe(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),void 0!==this.prevAttrs&&(je(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(t,e);let n=this.dom.lastChild;for(;n&&me.get(n)instanceof Ne;)n=n.lastChild;if(!(n&&this.length&&("BR"==n.nodeName||0!=(null===(i=me.get(n))||void 0===i?void 0:i.isEditable)||Be.ios&&this.children.some((t=>t instanceof Pe))))){let t=document.createElement("BR");t.cmIgnore=!0,this.dom.appendChild(t)}}measureTextSize(){if(0==this.children.length||this.length>20)return null;let t,e=0;for(let i of this.children){if(!(i instanceof Pe)||/[^ -~]/.test(i.text))return null;let n=Zt(i.dom);if(1!=n.length)return null;e+=n[0].width,t=n[0].height}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length,textHeight:t}:null}coordsAt(t,e){let i=We(this,t,e);if(!this.children.length&&i&&this.parent){let{heightOracle:t}=this.parent.view.viewState,e=i.bottom-i.top;if(Math.abs(e-t.lineHeight)<2&&t.textHeight=e){if(r instanceof Ze)return r;if(s>e)break}n=s+r.breakAfter}return null}}class ti extends me{constructor(t,e,i){super(),this.widget=t,this.length=e,this.type=i,this.breakAfter=0,this.prevWidget=null}merge(t,e,i,n,r,s){return!(i&&(!(i instanceof ti&&this.widget.compare(i.widget))||t>0&&r<=0||e0;){if(this.textOff==this.text.length){let{value:e,lineBreak:i,done:n}=this.cursor.next(this.skip);if(this.skip=0,n)throw new Error("Ran out of text content when drawing inline views");if(i){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,t--;continue}this.text=e,this.textOff=0}let n=Math.min(this.text.length-this.textOff,t,512);this.flushBuffer(e.slice(e.length-i)),this.getLine().append(ii(new Pe(this.text.slice(this.textOff,this.textOff+n)),e),i),this.atCursorPos=!0,this.textOff+=n,t-=n,i=0}}span(t,e,i,n){this.buildText(e-t,i,n),this.pos=e,this.openStart<0&&(this.openStart=n)}point(t,e,i,n,r,s){if(this.disallowBlockEffectsFor[s]&&i instanceof Ye){if(i.block)throw new RangeError("Block decorations may not be specified via plugins");if(e>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let o=e-t;if(i instanceof Ye)if(i.block){let{type:t}=i;t!=Ke.WidgetAfter||this.posCovered()||this.getLine(),this.addBlockWidget(new ti(i.widget||new ni("div"),o,t))}else{let s=Re.create(i.widget||new ni("span"),o,o?0:i.startSide),a=this.atCursorPos&&!s.isEditable&&r<=n.length&&(t0),l=!s.isEditable&&(tn.length||i.startSide<=0),h=this.getLine();2!=this.pendingBuffer||a||s.isEditable||(this.pendingBuffer=0),this.flushBuffer(n),a&&(h.append(ii(new Ie(1),n),r),r=n.length+Math.max(0,r-n.length)),h.append(ii(s,n),r),this.atCursorPos=l,this.pendingBuffer=l?tn.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=n.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(i);o&&(this.textOff+o<=this.text.length?this.textOff+=o:(this.skip+=o-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=e),this.openStart<0&&(this.openStart=r)}static build(t,e,i,n,r){let s=new ei(t,e,i,r);return s.openEnd=Mt.spans(n,e,i,s),s.openStart<0&&(s.openStart=s.openEnd),s.finish(s.openEnd),s}}function ii(t,e){for(let i of e)t=new Ne(i,[t],t.length);return t}class ni extends $e{constructor(t){super(),this.tag=t}eq(t){return t.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(t){return t.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}const ri=R.define(),si=R.define(),oi=R.define(),ai=R.define(),li=R.define(),hi=R.define(),ci=R.define(),ui=R.define({combine:t=>t.some((t=>t))}),fi=R.define({combine:t=>t.some((t=>t))});class di{constructor(t,e="nearest",i="nearest",n=5,r=5){this.range=t,this.y=e,this.x=i,this.yMargin=n,this.xMargin=r}map(t){return t.empty?this:new di(this.range.map(t),this.y,this.x,this.yMargin,this.xMargin)}}const pi=lt.define({map:(t,e)=>t.map(e)});function gi(t,e,i){let n=t.facet(ai);n.length?n[0](e):window.onerror?window.onerror(String(e),i,void 0,void 0,e):i?console.error(i+":",e):console.error(e)}const mi=R.define({combine:t=>!t.length||t[0]});let wi=0;const vi=R.define();class yi{constructor(t,e,i,n){this.id=t,this.create=e,this.domEventHandlers=i,this.extension=n(this)}static define(t,e){const{eventHandlers:i,provide:n,decorations:r}=e||{};return new yi(wi++,t,i,(t=>{let e=[vi.of(t)];return r&&e.push(Si.of((e=>{let i=e.plugin(t);return i?r(i):Ge.none}))),n&&e.push(n(t)),e}))}static fromClass(t,e){return yi.define((e=>new t(e)),e)}}class ki{constructor(t){this.spec=t,this.mustUpdate=null,this.value=null}update(t){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(e){if(gi(t.state,e,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(t){}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(t)}catch(e){gi(t.state,e,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(t){var e;if(null===(e=this.value)||void 0===e?void 0:e.destroy)try{this.value.destroy()}catch(e){gi(t.state,e,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const bi=R.define(),xi=R.define(),Si=R.define(),Ai=R.define(),Mi=R.define();function Ci(t,e,i){let n=t.state.facet(Mi);if(!n.length)return n;let r=n.map((e=>e instanceof Function?e(t):e)),s=[];return Mt.spans(r,e,i,{point(){},span(t,e,i,n){let r=s;for(let s=i.length-1;s>=0;s--,n--){let o,a=i[s].spec.bidiIsolate;if(null!=a)if(n>0&&r.length&&(o=r[r.length-1]).to==t&&o.direction==a)o.to=e,r=o.inner;else{let i={from:t,to:e,direction:a,inner:[]};r.push(i),r=i.inner}}}}),s}const Ti=R.define();function Di(t){let e=0,i=0,n=0,r=0;for(let s of t.state.facet(Ti)){let o=s(t);o&&(null!=o.left&&(e=Math.max(e,o.left)),null!=o.right&&(i=Math.max(i,o.right)),null!=o.top&&(n=Math.max(n,o.top)),null!=o.bottom&&(r=Math.max(r,o.bottom)))}return{left:e,right:i,top:n,bottom:r}}const Oi=R.define();class Ei{constructor(t,e,i,n){this.fromA=t,this.toA=e,this.fromB=i,this.toB=n}join(t){return new Ei(Math.min(this.fromA,t.fromA),Math.max(this.toA,t.toA),Math.min(this.fromB,t.fromB),Math.max(this.toB,t.toB))}addToSet(t){let e=t.length,i=this;for(;e>0;e--){let n=t[e-1];if(!(n.fromA>i.toA)){if(n.toAh)break;r+=2}if(!a)return i;new Ei(a.fromA,a.toA,a.fromB,a.toB).addToSet(i),s=a.toA,o=a.toB}}}class Li{constructor(t,e,i){this.view=t,this.state=e,this.transactions=i,this.flags=0,this.startState=t.state,this.changes=A.empty(this.startState.doc.length);for(let t of i)this.changes=this.changes.compose(t.changes);let n=[];this.changes.iterChangedRanges(((t,e,i,r)=>n.push(new Ei(t,e,i,r)))),this.changedRanges=n}static create(t,e,i){return new Li(t,e,i)}get viewportChanged(){return(4&this.flags)>0}get heightChanged(){return(2&this.flags)>0}get geometryChanged(){return this.docChanged||(10&this.flags)>0}get focusChanged(){return(1&this.flags)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some((t=>t.selection))}get empty(){return 0==this.flags&&0==this.transactions.length}}var Bi=function(t){return t[t.LTR=0]="LTR",t[t.RTL=1]="RTL",t}(Bi||(Bi={}));const Pi=Bi.LTR,Ni=Bi.RTL;function Ri(t){let e=[];for(let i=0;i=e){if(o.level==i)return s;(r<0||(0!=n?n<0?o.frome:t[r].level>o.level))&&(r=s)}}if(r<0)throw new RangeError("Index out of range");return r}}function _i(t,e){if(t.length!=e.length)return!1;for(let i=0;il&&o.push(new Fi(l,p.from,f)),$i(t,p.direction==Pi!=!(f%2)?n+1:n,r,p.inner,p.from,p.to,o),l=p.to),d=p.to}else{if(d==i||(e?ji[d]!=a:ji[d]==a))break;d++}u?qi(t,l,d,n+1,r,u,o):le;){let i=!0,c=!1;if(!h||l>s[h-1].to){let t=ji[l-1];t!=a&&(i=!1,c=16==t)}let u=i||1!=a?null:[],f=i?n:n+1,d=l;t:for(;;)if(h&&d==s[h-1].to){if(c)break t;let p=s[--h];if(!i)for(let t=p.from,i=h;;){if(t==e)break t;if(!i||s[i-1].to!=t){if(ji[t-1]==a)break t;break}t=s[--i].from}u?u.push(p):(p.to=0;t-=3)if(Wi[t+1]==-i){let e=Wi[t+2],i=2&e?r:4&e?1&e?s:r:0;i&&(ji[o]=ji[Wi[t]]=i),a=t;break}}else{if(189==Wi.length)break;Wi[a++]=o,Wi[a++]=e,Wi[a++]=l}else if(2==(n=ji[o])||1==n){let t=n==r;l=t?0:1;for(let e=a-3;e>=0;e-=3){let i=Wi[e+2];if(2&i)break;if(t)Wi[e+2]|=2;else{if(4&i)break;Wi[e+2]|=4}}}}}(t,r,s,n,a),function(t,e,i,n){for(let r=0,s=n;r<=i.length;r++){let o=r?i[r-1].to:t,a=rl;)e==s&&(e=i[--n].from,s=n?i[n-1].to:t),ji[--e]=c;l=o}else s=o,l++}}}(r,s,n,a),qi(t,r,s,e,i,n,o)}function Ki(t){return[new Fi(0,t,0)]}let Gi="";function Ui(t,e,i,n,r){var s;let o=n.head-t.from,a=-1;if(0==o){if(!r||!t.length)return null;e[0].level!=i&&(o=e[0].side(!1,i),a=0)}else if(o==t.length){if(r)return null;let t=e[e.length-1];t.level!=i&&(o=t.side(!0,i),a=e.length-1)}a<0&&(a=Fi.find(e,o,null!==(s=n.bidiLevel)&&void 0!==s?s:-1,n.assoc));let l=e[a];o==l.side(r,i)&&(l=e[a+=r?1:-1],o=l.side(!r,i));let h=r==(l.dir==i),c=d(t.text,o,h);if(Gi=t.text.slice(Math.min(o,c),Math.max(o,c)),c!=l.side(r,i))return B.cursor(c+t.from,h?-1:1,l.level);let u=a==(r?e.length-1:0)?null:e[a+(r?1:-1)];return u||l.level==i?u&&u.level0&&i.length&&(i.every((({fromA:t,toA:e})=>ethis.minWidthTo))?(this.minWidthFrom=t.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=t.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0);let n=-1;this.view.inputState.composing>=0&&((null===(e=this.domChanged)||void 0===e?void 0:e.newSel)?n=this.domChanged.newSel.head:function(t,e){let i=!1;return e&&t.iterChangedRanges(((t,n)=>{te.from&&(i=!0)})),i}(t.changes,this.hasComposition)||t.selectionSet||(n=t.state.selection.main.head));let r=n>-1?function(t,e,i){let n=Xi(t,i);if(!n)return null;let{node:r,from:s,to:o}=n,a=r.nodeValue;if(/[\n\r]/.test(a))return null;if(t.state.doc.sliceString(n.from,n.to)!=a)return null;let l=e.invertedDesc,h=new Ei(l.mapPos(s),l.mapPos(o),s,o),c=[];for(let e=r.parentNode;;e=e.parentNode){let i=me.get(e);if(i instanceof Ne)c.push({node:e,deco:i.mark});else{if(i instanceof Ze||"DIV"==e.nodeName&&e.parentNode==t.contentDOM)return{range:h,text:r,marks:c,line:e};if(e==t.contentDOM)return null;c.push({node:e,deco:new Ue({inclusive:!0,attributes:qe(e),tagName:e.tagName.toLowerCase()})})}}}(this.view,t.changes,n):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:e,to:n}=this.hasComposition;i=new Ei(e,n,t.changes.mapPos(e,-1),t.changes.mapPos(n,1)).addToSet(i.slice())}this.hasComposition=r?{from:r.range.fromB,to:r.range.toB}:null,(Be.ie||Be.chrome)&&!r&&t&&t.state.doc.lines!=t.startState.doc.lines&&(this.forceSelection=!0);let s=function(t,e,i){let n=new Zi;return Mt.compare(t,e,i,n),n.changes}(this.decorations,this.updateDeco(),t.changes);return i=Ei.extendWithRanges(i,s),!!(7&this.flags||0!=i.length)&&(this.updateInner(i,t.startState.doc.length,r),t.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(t,e,i){this.view.viewState.mustMeasureContent=!0,this.updateChildren(t,e,i);let{observer:n}=this.view;n.ignore((()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let t=Be.chrome||Be.ios?{node:n.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,t),this.flags&=-8,t&&(t.written||n.selectionRange.focusNode!=t.node)&&(this.forceSelection=!0),this.dom.style.height=""})),this.markedForComposition.forEach((t=>t.flags&=-9));let r=[];if(this.view.viewport.from||this.view.viewport.to=0?n[t]:null;if(!e)break;let s,o,a,l,{fromA:h,toA:c,fromB:u,toB:f}=e;if(i&&i.range.fromBu){let t=ei.build(this.view.state.doc,u,i.range.fromB,this.decorations,this.dynamicDecorationMap),e=ei.build(this.view.state.doc,i.range.toB,f,this.decorations,this.dynamicDecorationMap);o=t.breakAtStart,a=t.openStart,l=e.openEnd;let n=this.compositionView(i);e.breakAtStart?n.breakAfter=1:e.content.length&&n.merge(n.length,n.length,e.content[0],!1,e.openStart,0)&&(n.breakAfter=e.content[0].breakAfter,e.content.shift()),t.content.length&&n.merge(0,0,t.content[t.content.length-1],!0,0,t.openEnd)&&t.content.pop(),s=t.content.concat(n).concat(e.content)}else({content:s,breakAtStart:o,openStart:a,openEnd:l}=ei.build(this.view.state.doc,u,f,this.decorations,this.dynamicDecorationMap));let{i:d,off:p}=r.findPos(c,1),{i:g,off:m}=r.findPos(h,-1);ye(this,g,m,d,p,s,o,a,l)}i&&this.fixCompositionDOM(i)}compositionView(t){let e=new Pe(t.text.nodeValue);e.flags|=8;for(let{deco:i}of t.marks)e=new Ne(i,[e],e.length);let i=new Ze;return i.append(e,0),i}fixCompositionDOM(t){let e=(t,e)=>{e.flags|=8|(e.children.some((t=>7&t.flags))?1:0),this.markedForComposition.add(e);let i=me.get(t);i&&i!=e&&(i.dom=null),e.setDOM(t)},i=this.childPos(t.range.fromB,1),n=this.children[i.i];e(t.line,n);for(let r=t.marks.length-1;r>=-1;r--)i=n.childPos(i.off,1),n=n.children[i.i],e(r>=0?t.marks[r].node:t.text,n)}updateSelection(t=!1,e=!1){!t&&this.view.observer.selectionRange.focusNode||this.view.observer.readSelectionRange();let i=this.view.root.activeElement,n=i==this.dom,r=!n&&Qt(this.dom,this.view.observer.selectionRange)&&!(i&&this.dom.contains(i));if(!(n||e||r))return;let s=this.forceSelection;this.forceSelection=!1;let o=this.view.state.selection.main,a=this.moveToLine(this.domAtPos(o.anchor)),l=o.empty?a:this.moveToLine(this.domAtPos(o.head));if(Be.gecko&&o.empty&&!this.hasComposition&&1==(h=a).node.nodeType&&h.node.firstChild&&(0==h.offset||"false"==h.node.childNodes[h.offset-1].contentEditable)&&(h.offset==h.node.childNodes.length||"false"==h.node.childNodes[h.offset].contentEditable)){let t=document.createTextNode("");this.view.observer.ignore((()=>a.node.insertBefore(t,a.node.childNodes[a.offset]||null))),a=l=new pe(t,0),s=!0}var h;let c=this.view.observer.selectionRange;!s&&c.focusNode&&te(a.node,a.offset,c.anchorNode,c.anchorOffset)&&te(l.node,l.offset,c.focusNode,c.focusOffset)||(this.view.observer.ignore((()=>{Be.android&&Be.chrome&&this.dom.contains(c.focusNode)&&function(t,e){for(let i=t;i&&i!=e;i=i.assignedSlot||i.parentNode)if(1==i.nodeType&&"false"==i.contentEditable)return!0;return!1}(c.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let t=Yt(this.view.root);if(t)if(o.empty){if(Be.gecko){let t=(e=a.node,n=a.offset,1!=e.nodeType?0:(n&&"false"==e.childNodes[n-1].contentEditable?1:0)|(no.head&&([a,l]=[l,a]),e.setEnd(l.node,l.offset),e.setStart(a.node,a.offset),t.removeAllRanges(),t.addRange(e)}var e,n;r&&this.view.root.activeElement==this.dom&&(this.dom.blur(),i&&i.focus())})),this.view.observer.setSelectionRange(a,l)),this.impreciseAnchor=a.precise?null:new pe(c.anchorNode,c.anchorOffset),this.impreciseHead=l.precise?null:new pe(c.focusNode,c.focusOffset)}enforceCursorAssoc(){if(this.hasComposition)return;let{view:t}=this,e=t.state.selection.main,i=Yt(t.root),{anchorNode:n,anchorOffset:r}=t.observer.selectionRange;if(!(i&&e.empty&&e.assoc&&i.modify))return;let s=Ze.find(this,e.head);if(!s)return;let o=s.posAtStart;if(e.head==o||e.head==o+s.length)return;let a=this.coordsAt(e.head,-1),l=this.coordsAt(e.head,1);if(!a||!l||a.bottom>l.top)return;let h=this.domAtPos(e.head+e.assoc);i.collapse(h.node,h.offset),i.modify("move",e.assoc<0?"forward":"backward","lineboundary"),t.observer.readSelectionRange();let c=t.observer.selectionRange;t.docView.posFromDOM(c.anchorNode,c.anchorOffset)!=e.from&&i.collapse(n,r)}moveToLine(t){let e,i=this.dom;if(t.node!=i)return t;for(let n=t.offset;!e&&n=0;n--){let t=me.get(i.childNodes[n]);t instanceof Ze&&(e=t.domAtPos(t.length))}return e?new pe(e.node,e.offset,!0):t}nearest(t){for(let e=t;e;){let t=me.get(e);if(t&&t.rootView==this)return t;e=e.parentNode}return null}posFromDOM(t,e){let i=this.nearest(t);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(t,e)+i.posAtStart}domAtPos(t){let{i:e,off:i}=this.childCursor().findPos(t,-1);for(;es||t==s&&r.type!=Ke.WidgetBefore&&r.type!=Ke.WidgetAfter&&(!n||2==e||this.children[n-1].breakAfter||this.children[n-1].type==Ke.WidgetBefore&&e>-2))return r.coordsAt(t-s,e);i=s}}coordsForChar(t){let{i:e,off:i}=this.childPos(t,1),n=this.children[e];if(!(n instanceof Ze))return null;for(;n.children.length;){let{i:t,off:e}=n.childPos(i,1);for(;;t++){if(t==n.children.length)return null;if((n=n.children[t]).length)break}i=e}if(!(n instanceof Pe))return null;let r=d(n.text,i);if(r==i)return null;let s=ce(n.dom,i,r).getClientRects();return!s.length||s[0].top>=s[0].bottom?null:s[0]}measureVisibleLineHeights(t){let e=[],{from:i,to:n}=t,r=this.view.contentDOM.clientWidth,s=r>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,o=-1,a=this.view.textDirection==Bi.LTR;for(let t=0,l=0;ln)break;if(t>=i){let i=h.dom.getBoundingClientRect();if(e.push(i.height),s){let e=h.dom.lastChild,n=e?Zt(e):[];if(n.length){let e=n[n.length-1],s=a?e.right-i.left:i.right-e.left;s>o&&(o=s,this.minWidth=r,this.minWidthFrom=t,this.minWidthTo=c)}}}t=c+h.breakAfter}return e}textDirectionAt(t){let{i:e}=this.childPos(t,1);return"rtl"==getComputedStyle(this.children[e].dom).direction?Bi.RTL:Bi.LTR}measureTextSize(){for(let t of this.children)if(t instanceof Ze){let e=t.measureTextSize();if(e)return e}let t,e,i,n=document.createElement("div");return n.className="cm-line",n.style.width="99999px",n.style.position="absolute",n.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore((()=>{this.dom.appendChild(n);let r=Zt(n.firstChild)[0];t=n.getBoundingClientRect().height,e=r?r.width/27:7,i=r?r.height:t,n.remove()})),{lineHeight:t,charWidth:e,textHeight:i}}childCursor(t=this.length){let e=this.children.length;return e&&(t-=this.children[--e].length),new ve(this.children,t,e)}computeBlockGapDeco(){let t=[],e=this.view.viewState;for(let i=0,n=0;;n++){let r=n==e.viewports.length?null:e.viewports[n],s=r?r.from-1:this.length;if(s>i){let n=(e.lineBlockAt(s).bottom-e.lineBlockAt(i).top)/this.view.scaleY;t.push(Ge.replace({widget:new Yi(n),block:!0,inclusive:!0,isBlockGap:!0}).range(i,s))}if(!r)break;i=r.to+1}return Ge.set(t)}updateDeco(){let t=this.view.state.facet(Si).map(((t,e)=>(this.dynamicDecorationMap[e]="function"==typeof t)?t(this.view):t));for(let e=t.length;ei.anchor?-1:1);if(!n)return;!i.empty&&(e=this.coordsAt(i.anchor,i.anchor>i.head?-1:1))&&(n={left:Math.min(n.left,e.left),top:Math.min(n.top,e.top),right:Math.max(n.right,e.right),bottom:Math.max(n.bottom,e.bottom)});let r=Di(this.view),s={left:n.left-r.left,top:n.top-r.top,right:n.right+r.right,bottom:n.bottom+r.bottom};!function(t,e,i,n,r,s,o,a){let l=t.ownerDocument,h=l.defaultView||window;for(let c=t,u=!1;c&&!u;)if(1==c.nodeType){let t,f=c==l.body,d=1,p=1;if(f)t=se(h);else{if(/^(fixed|sticky)$/.test(getComputedStyle(c).position)&&(u=!0),c.scrollHeight<=c.clientHeight&&c.scrollWidth<=c.clientWidth){c=c.assignedSlot||c.parentNode;continue}let e=c.getBoundingClientRect();d=e.width/c.offsetWidth,p=e.height/c.offsetHeight,t={left:e.left,right:e.left+c.clientWidth*d,top:e.top,bottom:e.top+c.clientHeight*p}}let g=0,m=0;if("nearest"==r)e.top0&&e.bottom>t.bottom+m&&(m=e.bottom-t.bottom+m+o)):e.bottom>t.bottom&&(m=e.bottom-t.bottom+o,i<0&&e.top-m0&&e.right>t.right+g&&(g=e.right-t.right+g+s)):e.right>t.right&&(g=e.right-t.right+s,i<0&&e.left0))break;i=i.childNodes[n-1],n=ne(i)}if(i>=0)for(let n=t,r=e;;){if(3==n.nodeType)return{node:n,offset:r};if(!(1==n.nodeType&&r=0))break;n=n.childNodes[r],r=0}return null}let Zi=class{constructor(){this.changes=[]}compareRange(t,e){Qe(t,e,this.changes)}comparePoint(t,e){Qe(t,e,this.changes)}};function tn(t,e){return e.left>t?e.left-t:Math.max(0,t-e.right)}function en(t,e){return e.top>t?e.top-t:Math.max(0,t-e.bottom)}function nn(t,e){return t.tope.top+1}function rn(t,e){return et.bottom?{top:t.top,left:t.left,right:t.right,bottom:e}:t}function on(t,e,i){let n,r,s,o,a,l,h,c,u=!1;for(let f=t.firstChild;f;f=f.nextSibling){let t=Zt(f);for(let d=0;dm||o==m&&s>g){n=f,r=p,s=g,o=m;let a=m?i0?d0)}0==g?i>p.bottom&&(!h||h.bottomp.top)&&(l=f,c=p):h&&nn(h,p)?h=sn(h,p.bottom):c&&nn(c,p)&&(c=rn(c,p.top))}}if(h&&h.bottom>=i?(n=a,r=h):c&&c.top<=i&&(n=l,r=c),!n)return{node:t,offset:0};let f=Math.max(r.left,Math.min(r.right,e));return 3==n.nodeType?an(n,f,i):u&&"false"!=n.contentEditable?on(n,f,i):{node:t,offset:Array.prototype.indexOf.call(t.childNodes,n)+(e>=(r.left+r.right)/2?1:0)}}function an(t,e,i){let n=t.nodeValue.length,r=-1,s=1e9,o=0;for(let a=0;ai?h.top-i:i-h.bottom)-1;if(h.left-1<=e&&h.right+1>=e&&c=(h.left+h.right)/2,n=i;if((Be.chrome||Be.gecko)&&ce(t,a).getBoundingClientRect().left==h.right&&(n=!i),c<=0)return{node:t,offset:a+(n?1:0)};r=a+(n?1:0),s=c}}}return{node:t,offset:r>-1?r:o>0?t.nodeValue.length:0}}function ln(t,e,i,n=-1){var r,s;let o,a=t.contentDOM.getBoundingClientRect(),l=a.top+t.viewState.paddingTop,{docHeight:h}=t.viewState,{x:c,y:u}=e,f=u-l;if(f<0)return 0;if(f>h)return t.state.doc.length;for(let e=t.viewState.heightOracle.textHeight/2,r=!1;o=t.elementAtHeight(f),o.type!=Ke.Text;)for(;f=n>0?o.bottom+e:o.top-e,!(f>=0&&f<=h);){if(r)return i?null:0;r=!0,n=-n}u=l+f;let d=o.from;if(dt.viewport.to)return t.viewport.to==t.state.doc.length?t.state.doc.length:i?null:hn(t,a,o,c,u);let p=t.dom.ownerDocument,g=t.root.elementFromPoint?t.root:p,m=g.elementFromPoint(c,u);m&&!t.contentDOM.contains(m)&&(m=null),m||(c=Math.max(a.left+1,Math.min(a.right-1,c)),m=g.elementFromPoint(c,u),m&&!t.contentDOM.contains(m)&&(m=null));let w,v=-1;if(m&&0!=(null===(r=t.docView.nearest(m))||void 0===r?void 0:r.isEditable))if(p.caretPositionFromPoint){let t=p.caretPositionFromPoint(c,u);t&&({offsetNode:w,offset:v}=t)}else if(p.caretRangeFromPoint){let e=p.caretRangeFromPoint(c,u);e&&(({startContainer:w,startOffset:v}=e),(!t.contentDOM.contains(w)||Be.safari&&function(t,e,i){let n;if(3!=t.nodeType||e!=(n=t.nodeValue.length))return!1;for(let e=t.nextSibling;e;e=e.nextSibling)if(1!=e.nodeType||"BR"!=e.nodeName)return!1;return ce(t,n-1,n).getBoundingClientRect().left>i}(w,v,c)||Be.chrome&&function(t,e,i){if(0!=e)return!1;for(let e=t;;){let t=e.parentNode;if(!t||1!=t.nodeType||t.firstChild!=e)return!1;if(t.classList.contains("cm-line"))break;e=t}return i-(1==t.nodeType?t.getBoundingClientRect():ce(t,0,Math.max(t.nodeValue.length,1)).getBoundingClientRect()).left>5}(w,v,c))&&(w=void 0))}if(!w||!t.docView.dom.contains(w)){let e=Ze.find(t.docView,d);if(!e)return f>o.top+o.height/2?o.to:o.from;({node:w,offset:v}=on(e.dom,c,u))}let y=t.docView.nearest(w);if(!y)return null;if(y.isWidget&&1==(null===(s=y.dom)||void 0===s?void 0:s.nodeType)){let t=y.dom.getBoundingClientRect();return e.y1.5*t.defaultLineHeight){let e=t.viewState.heightOracle.textHeight;s+=Math.floor((r-i.top-.5*(t.defaultLineHeight-e))/e)*t.viewState.heightOracle.lineLength}let o=t.state.sliceDoc(i.from,i.to);return i.from+function(t,e,i,n){for(let n=0,r=0;;){if(r>=e)return n;if(n==t.length)break;r+=9==t.charCodeAt(n)?i-r%i:1,n=d(t,n)}return t.length}(o,s,t.state.tabSize)}function cn(t,e,i,n){let r=t.state.doc.lineAt(e.head),s=t.bidiSpans(r),o=t.textDirectionAt(r.from);for(let a=e,l=null;;){let e=Ui(r,s,o,a,i),h=Gi;if(!e){if(r.number==(i?t.state.doc.lines:1))return a;h="\n",r=t.state.doc.line(r.number+(i?1:-1)),s=t.bidiSpans(r),e=B.cursor(i?r.from:r.to)}if(l){if(!l(h))return a}else{if(!n)return e;l=n(h)}a=e}}function un(t,e,i){for(;;){let n=0;for(let r of t)r.between(e-1,e+1,((t,r,s)=>{if(e>t&&ee(t))),i.from,e.head>i.from?-1:1);return n==i.from?i:B.cursor(n,n{this.ignoreDuringComposition(i)||"keydown"==i.type&&this.keydown(t,i)||(this.mustFlushObserver(i)&&t.observer.forceFlush(),this.runCustomHandlers(i.type,t,i)?i.preventDefault():e(t,i))};for(let i in kn){let n=kn[i];t.contentDOM.addEventListener(i,(i=>{yn(t,i)&&e(n,i)}),bn[i]),this.registeredEvents.push(i)}t.scrollDOM.addEventListener("mousedown",(i=>{if(i.target==t.scrollDOM&&i.clientY>t.contentDOM.getBoundingClientRect().bottom&&(e(kn.mousedown,i),!i.defaultPrevented&&2==i.button)){let e=t.contentDOM.style.minHeight;t.contentDOM.style.minHeight="100%",setTimeout((()=>t.contentDOM.style.minHeight=e),200)}})),t.scrollDOM.addEventListener("drop",(i=>{i.target==t.scrollDOM&&i.clientY>t.contentDOM.getBoundingClientRect().bottom&&e(kn.drop,i)})),Be.chrome&&102==Be.chrome_version&&t.scrollDOM.addEventListener("wheel",(()=>{this.chromeScrollHack<0?t.contentDOM.style.pointerEvents="none":window.clearTimeout(this.chromeScrollHack),this.chromeScrollHack=setTimeout((()=>{this.chromeScrollHack=-1,t.contentDOM.style.pointerEvents=""}),100)}),{passive:!0}),this.notifiedFocused=t.hasFocus,Be.safari&&t.contentDOM.addEventListener("input",(()=>null)),Be.gecko&&function(t){Wn.has(t)||(Wn.add(t),t.addEventListener("copy",(()=>{})),t.addEventListener("cut",(()=>{})))}(t.contentDOM.ownerDocument)}ensureHandlers(t,e){var i;let n;this.customHandlers=[];for(let r of e)if(n=null===(i=r.update(t).spec)||void 0===i?void 0:i.domEventHandlers){this.customHandlers.push({plugin:r.value,handlers:n});for(let e in n)this.registeredEvents.indexOf(e)<0&&"scroll"!=e&&(this.registeredEvents.push(e),t.contentDOM.addEventListener(e,(i=>{yn(t,i)&&this.runCustomHandlers(e,t,i)&&i.preventDefault()})))}}runCustomHandlers(t,e,i){for(let n of this.customHandlers){let r=n.handlers[t];if(r)try{if(r.call(n.plugin,i,e)||i.defaultPrevented)return!0}catch(t){gi(e.state,t)}}return!1}runScrollHandlers(t,e){this.lastScrollTop=t.scrollDOM.scrollTop,this.lastScrollLeft=t.scrollDOM.scrollLeft;for(let i of this.customHandlers){let n=i.handlers.scroll;if(n)try{n.call(i.plugin,e,t)}catch(e){gi(t.state,e)}}}keydown(t,e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),9==e.keyCode&&Date.now()t.keyCode==e.keyCode)))&&!e.ctrlKey||gn.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)||(this.pendingIOSKey=i||e,setTimeout((()=>this.flushIOSKey(t)),250),0))}flushIOSKey(t){let e=this.pendingIOSKey;return!!e&&(this.pendingIOSKey=void 0,ue(t.contentDOM,e.key,e.keyCode))}ignoreDuringComposition(t){return!!/^key/.test(t.type)&&(this.composing>0||!!(Be.safari&&!Be.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100)&&(this.compositionPendingKey=!1,!0))}mustFlushObserver(t){return"keydown"==t.type&&229!=t.keyCode}startMouseSelection(t){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=t}update(t){this.mouseSelection&&this.mouseSelection.update(t),t.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}const pn=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],gn="dthko",mn=[16,17,18,20,91,92,224,225];function wn(t){return.7*Math.max(0,t)+8}class vn{constructor(t,e,i,n){this.view=t,this.startEvent=e,this.style=i,this.mustSelect=n,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=e,this.scrollParent=function(t){let e=t.ownerDocument;for(let i=t.parentNode;i&&i!=e.body;)if(1==i.nodeType){if(i.scrollHeight>i.clientHeight||i.scrollWidth>i.clientWidth)return i;i=i.assignedSlot||i.parentNode}else{if(11!=i.nodeType)break;i=i.host}return null}(t.contentDOM),this.atoms=t.state.facet(Ai).map((e=>e(t)));let r=t.contentDOM.ownerDocument;r.addEventListener("mousemove",this.move=this.move.bind(this)),r.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=e.shiftKey,this.multiple=t.state.facet(yt.allowMultipleSelections)&&function(t,e){let i=t.state.facet(ri);return i.length?i[0](e):Be.mac?e.metaKey:e.ctrlKey}(t,e),this.dragging=!(!function(t,e){let{main:i}=t.state.selection;if(i.empty)return!1;let n=Yt(t.root);if(!n||0==n.rangeCount)return!0;let r=n.getRangeAt(0).getClientRects();for(let t=0;t=e.clientX&&i.top<=e.clientY&&i.bottom>=e.clientY)return!0}return!1}(t,e)||1!=Pn(e))&&null}start(t){!1===this.dragging&&(t.preventDefault(),this.select(t))}move(t){var e,i,n;if(0==t.buttons)return this.destroy();if(this.dragging||null==this.dragging&&(i=this.startEvent,n=t,Math.max(Math.abs(i.clientX-n.clientX),Math.abs(i.clientY-n.clientY))<10))return;this.select(this.lastEvent=t);let r=0,s=0,o=(null===(e=this.scrollParent)||void 0===e?void 0:e.getBoundingClientRect())||{left:0,top:0,right:this.view.win.innerWidth,bottom:this.view.win.innerHeight},a=Di(this.view);t.clientX-a.left<=o.left+6?r=-wn(o.left-t.clientX):t.clientX+a.right>=o.right-6&&(r=wn(t.clientX-o.right)),t.clientY-a.top<=o.top+6?s=-wn(o.top-t.clientY):t.clientY+a.bottom>=o.bottom-6&&(s=wn(t.clientY-o.bottom)),this.setScrollSpeed(r,s)}up(t){null==this.dragging&&this.select(this.lastEvent),this.dragging||t.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let t=this.view.contentDOM.ownerDocument;t.removeEventListener("mousemove",this.move),t.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=null}setScrollSpeed(t,e){this.scrollSpeed={x:t,y:e},t||e?this.scrolling<0&&(this.scrolling=setInterval((()=>this.scroll()),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){this.scrollParent?(this.scrollParent.scrollLeft+=this.scrollSpeed.x,this.scrollParent.scrollTop+=this.scrollSpeed.y):this.view.win.scrollBy(this.scrollSpeed.x,this.scrollSpeed.y),!1===this.dragging&&this.select(this.lastEvent)}skipAtoms(t){let e=null;for(let i=0;ithis.select(this.lastEvent)),20)}}function yn(t,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let i,n=e.target;n!=t.contentDOM;n=n.parentNode)if(!n||11==n.nodeType||(i=me.get(n))&&i.ignoreEvent(e))return!1;return!0}const kn=Object.create(null),bn=Object.create(null),xn=Be.ie&&Be.ie_version<15||Be.ios&&Be.webkit_version<604;function Sn(t,e){let i,{state:n}=t,r=1,s=n.toText(e),o=s.lines==n.selection.ranges.length;if(null!=Rn&&n.selection.ranges.every((t=>t.empty))&&Rn==s.toString()){let t=-1;i=n.changeByRange((i=>{let a=n.doc.lineAt(i.from);if(a.from==t)return{range:i};t=a.from;let l=n.toText((o?s.line(r++).text:e)+n.lineBreak);return{changes:{from:a.from,insert:l},range:B.cursor(i.from+l.length)}}))}else i=o?n.changeByRange((t=>{let e=s.line(r++);return{changes:{from:t.from,to:t.to,insert:e.text},range:B.cursor(t.from+e.length)}})):n.replaceSelection(s);t.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}function An(t,e,i,n){if(1==n)return B.cursor(e,i);if(2==n)return function(t,e,i=1){let n=t.charCategorizer(e),r=t.doc.lineAt(e),s=e-r.from;if(0==r.length)return B.cursor(e);0==s?i=1:s==r.length&&(i=-1);let o=s,a=s;i<0?o=d(r.text,s,!1):a=d(r.text,s);let l=n(r.text.slice(o,a));for(;o>0;){let t=d(r.text,o,!1);if(n(r.text.slice(t,o))!=l)break;o=t}for(;a{t.inputState.setSelectionOrigin("select"),27==e.keyCode&&(t.inputState.lastEscPress=Date.now())},kn.touchstart=(t,e)=>{t.inputState.lastTouchTime=Date.now(),t.inputState.setSelectionOrigin("select.pointer")},kn.touchmove=t=>{t.inputState.setSelectionOrigin("select.pointer")},bn.touchstart=bn.touchmove={passive:!0},kn.mousedown=(t,e)=>{if(t.observer.flush(),t.inputState.lastTouchTime>Date.now()-2e3)return;let i=null;for(let n of t.state.facet(oi))if(i=n(t,e),i)break;if(i||0!=e.button||(i=function(t,e){let i=Dn(t,e),n=Pn(e),r=t.state.selection;return{update(t){t.docChanged&&(i.pos=t.changes.mapPos(i.pos),r=r.map(t.changes))},get(e,s,o){let a,l=Dn(t,e),h=An(t,l.pos,l.bias,n);if(i.pos!=l.pos&&!s){let e=An(t,i.pos,i.bias,n),r=Math.min(e.from,h.from),s=Math.max(e.to,h.to);h=r1&&(a=function(t,e){for(let i=0;i=e)return B.create(t.ranges.slice(0,i).concat(t.ranges.slice(i+1)),t.mainIndex==i?0:t.mainIndex-(t.mainIndex>i?1:0))}return null}(r,l.pos))?a:o?r.addRange(h):B.create([h])}}}(t,e)),i){let n=!t.hasFocus;t.inputState.startMouseSelection(new vn(t,e,i,n)),n&&t.observer.ignore((()=>he(t.contentDOM))),t.inputState.mouseSelection&&t.inputState.mouseSelection.start(e)}};let Mn=(t,e)=>t>=e.top&&t<=e.bottom,Cn=(t,e,i)=>Mn(e,i)&&t>=i.left&&t<=i.right;function Tn(t,e,i,n){let r=Ze.find(t.docView,e);if(!r)return 1;let s=e-r.posAtStart;if(0==s)return 1;if(s==r.length)return-1;let o=r.coordsAt(s,-1);if(o&&Cn(i,n,o))return-1;let a=r.coordsAt(s,1);return a&&Cn(i,n,a)?1:o&&Mn(n,o)?-1:1}function Dn(t,e){let i=t.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:i,bias:Tn(t,i,e.clientX,e.clientY)}}const On=Be.ie&&Be.ie_version<=11;let En=null,Ln=0,Bn=0;function Pn(t){if(!On)return t.detail;let e=En,i=Bn;return En=t,Bn=Date.now(),Ln=!e||i>Date.now()-400&&Math.abs(e.clientX-t.clientX)<2&&Math.abs(e.clientY-t.clientY)<2?(Ln+1)%3:1}function Nn(t,e,i,n){if(!i)return;let r=t.posAtCoords({x:e.clientX,y:e.clientY},!1);e.preventDefault();let{mouseSelection:s}=t.inputState,o=n&&s&&s.dragging&&function(t,e){let i=t.state.facet(si);return i.length?i[0](e):Be.mac?!e.altKey:!e.ctrlKey}(t,e)?{from:s.dragging.from,to:s.dragging.to}:null,a={from:r,insert:i},l=t.state.changes(o?[o,a]:a);t.focus(),t.dispatch({changes:l,selection:{anchor:l.mapPos(r,-1),head:l.mapPos(r,1)},userEvent:o?"move.drop":"input.drop"})}kn.dragstart=(t,e)=>{let{selection:{main:i}}=t.state,{mouseSelection:n}=t.inputState;n&&(n.dragging=i),e.dataTransfer&&(e.dataTransfer.setData("Text",t.state.sliceDoc(i.from,i.to)),e.dataTransfer.effectAllowed="copyMove")},kn.drop=(t,e)=>{if(!e.dataTransfer)return;if(t.state.readOnly)return e.preventDefault();let i=e.dataTransfer.files;if(i&&i.length){e.preventDefault();let n=Array(i.length),r=0,s=()=>{++r==i.length&&Nn(t,e,n.filter((t=>null!=t)).join(t.state.lineBreak),!1)};for(let t=0;t{/[\x00-\x08\x0e-\x1f]{2}/.test(e.result)||(n[t]=e.result),s()},e.readAsText(i[t])}}else Nn(t,e,e.dataTransfer.getData("Text"),!0)},kn.paste=(t,e)=>{if(t.state.readOnly)return e.preventDefault();t.observer.flush();let i=xn?null:e.clipboardData;i?(Sn(t,i.getData("text/plain")||i.getData("text/uri-text")),e.preventDefault()):function(t){let e=t.dom.parentNode;if(!e)return;let i=e.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.focus(),setTimeout((()=>{t.focus(),i.remove(),Sn(t,i.value)}),50)}(t)};let Rn=null;kn.copy=kn.cut=(t,e)=>{let{text:i,ranges:n,linewise:r}=function(t){let e=[],i=[],n=!1;for(let n of t.selection.ranges)n.empty||(e.push(t.sliceDoc(n.from,n.to)),i.push(n));if(!e.length){let r=-1;for(let{from:n}of t.selection.ranges){let s=t.doc.lineAt(n);s.number>r&&(e.push(s.text),i.push({from:s.from,to:Math.min(t.doc.length,s.to+1)})),r=s.number}n=!0}return{text:e.join(t.lineBreak),ranges:i,linewise:n}}(t.state);if(!i&&!r)return;Rn=r?i:null;let s=xn?null:e.clipboardData;s?(e.preventDefault(),s.clearData(),s.setData("text/plain",i)):function(t,e){let i=t.dom.parentNode;if(!i)return;let n=i.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(),t.focus()}),50)}(t,i),"cut"!=e.type||t.state.readOnly||t.dispatch({changes:n,scrollIntoView:!0,userEvent:"delete.cut"})};const In=st.define();function zn(t,e){let i=[];for(let n of t.facet(ci)){let r=n(t,e);r&&i.push(r)}return i?t.update({effects:i,annotations:In.of(!0)}):null}function Hn(t){setTimeout((()=>{let e=t.hasFocus;if(e!=t.inputState.notifiedFocused){let i=zn(t.state,e);i?t.dispatch(i):t.update([])}}),10)}kn.focus=t=>{t.inputState.lastFocusTime=Date.now(),t.scrollDOM.scrollTop||!t.inputState.lastScrollTop&&!t.inputState.lastScrollLeft||(t.scrollDOM.scrollTop=t.inputState.lastScrollTop,t.scrollDOM.scrollLeft=t.inputState.lastScrollLeft),Hn(t)},kn.blur=t=>{t.observer.clearSelectionRange(),Hn(t)},kn.compositionstart=kn.compositionupdate=t=>{null==t.inputState.compositionFirstChange&&(t.inputState.compositionFirstChange=!0),t.inputState.composing<0&&(t.inputState.composing=0)},kn.compositionend=t=>{t.inputState.composing=-1,t.inputState.compositionEndedAt=Date.now(),t.inputState.compositionPendingKey=!0,t.inputState.compositionPendingChange=t.observer.pendingRecords().length>0,t.inputState.compositionFirstChange=null,Be.chrome&&Be.android?t.observer.flushSoon():t.inputState.compositionPendingChange?Promise.resolve().then((()=>t.observer.flush())):setTimeout((()=>{t.inputState.composing<0&&t.docView.hasComposition&&t.update([])}),50)},kn.contextmenu=t=>{t.inputState.lastContextMenu=Date.now()},kn.beforeinput=(t,e)=>{var i;let n;if(Be.chrome&&Be.android&&(n=pn.find((t=>t.inputType==e.inputType)))&&(t.observer.delayAndroidKey(n.key,n.keyCode),"Backspace"==n.key||"Delete"==n.key)){let e=(null===(i=window.visualViewport)||void 0===i?void 0:i.height)||0;setTimeout((()=>{var i;((null===(i=window.visualViewport)||void 0===i?void 0:i.height)||0)>e+10&&t.hasFocus&&(t.contentDOM.blur(),t.focus())}),100)}};const Wn=new Set,Vn=["pre-wrap","normal","pre-line","break-spaces"];class Fn{constructor(e){this.lineWrapping=e,this.doc=t.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30,this.heightChanged=!1}heightForGap(t,e){let i=this.doc.lineAt(e).number-this.doc.lineAt(t).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((e-t-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(t){return this.lineWrapping?(1+Math.max(0,Math.ceil((t-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(t){return this.doc=t,this}mustRefreshForWrapping(t){return Vn.indexOf(t)>-1!=this.lineWrapping}mustRefreshForHeights(t){let e=!1;for(let i=0;i-1,a=Math.round(e)!=Math.round(this.lineHeight)||this.lineWrapping!=o;if(this.lineWrapping=o,this.lineHeight=e,this.charWidth=i,this.textHeight=n,this.lineLength=r,a){this.heightSamples={};for(let t=0;t0}set outdated(t){this.flags=(t?2:0)|-3&this.flags}setHeight(t,e){this.height!=e&&(Math.abs(this.height-e)>$n&&(t.heightChanged=!0),this.height=e)}replace(t,e,i){return Kn.of(i)}decomposeLeft(t,e){e.push(this)}decomposeRight(t,e){e.push(this)}applyChanges(t,e,i,n){let r=this,s=i.doc;for(let o=n.length-1;o>=0;o--){let{fromA:a,toA:l,fromB:h,toB:c}=n[o],u=r.lineAt(a,qn.ByPosNoHeight,i.setDoc(e),0,0),f=u.to>=l?u:r.lineAt(l,qn.ByPosNoHeight,i,0,0);for(c+=f.to-l,l=f.to;o>0&&u.from<=n[o-1].toA;)a=n[o-1].fromA,h=n[o-1].fromB,o--,a2*r){let r=t[e-1];r.break?t.splice(--e,1,r.left,null,r.right):t.splice(--e,1,r.left,r.right),i+=1+r.break,n-=r.size}else{if(!(r>2*n))break;{let e=t[i];e.break?t.splice(i,1,e.left,null,e.right):t.splice(i,1,e.left,e.right),i+=2+e.break,r-=e.size}}else if(n=r&&s(this.blockAt(0,i,n,r))}updateHeight(t,e=0,i=!1,n){return n&&n.from<=e&&n.more&&this.setHeight(t,n.heights[n.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class Un extends Gn{constructor(t,e){super(t,e,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(t,e,i,n){return new jn(n,this.length,i,this.height,this.breaks)}replace(t,e,i){let n=i[0];return 1==i.length&&(n instanceof Un||n instanceof Jn&&4&n.flags)&&Math.abs(this.length-n.length)<10?(n instanceof Jn?n=new Un(n.length,this.height):n.height=this.height,this.outdated||(n.outdated=!1),n):Kn.of(i)}updateHeight(t,e=0,i=!1,n){return n&&n.from<=e&&n.more?this.setHeight(t,n.heights[n.index++]):(i||this.outdated)&&this.setHeight(t,Math.max(this.widgetHeight,t.heightForLine(this.length-this.collapsed))+this.breaks*t.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class Jn extends Kn{constructor(t){super(t,0)}heightMetrics(t,e){let i,n=t.doc.lineAt(e).number,r=t.doc.lineAt(e+this.length).number,s=r-n+1,o=0;if(t.lineWrapping){let e=Math.min(this.height,t.lineHeight*s);i=e/s,this.length>s+1&&(o=(this.height-e)/(this.length-s-1))}else i=this.height/s;return{firstLine:n,lastLine:r,perLine:i,perChar:o}}blockAt(t,e,i,n){let{firstLine:r,lastLine:s,perLine:o,perChar:a}=this.heightMetrics(e,n);if(e.lineWrapping){let r=n+Math.round(Math.max(0,Math.min(1,(t-i)/this.height))*this.length),s=e.doc.lineAt(r),l=o+s.length*a,h=Math.max(i,t-l/2);return new jn(s.from,s.length,h,l,0)}{let n=Math.max(0,Math.min(s-r,Math.floor((t-i)/o))),{from:a,length:l}=e.doc.line(r+n);return new jn(a,l,i+o*n,o,0)}}lineAt(t,e,i,n,r){if(e==qn.ByHeight)return this.blockAt(t,i,n,r);if(e==qn.ByPosNoHeight){let{from:e,to:n}=i.doc.lineAt(t);return new jn(e,n-e,0,0,0)}let{firstLine:s,perLine:o,perChar:a}=this.heightMetrics(i,r),l=i.doc.lineAt(t),h=o+l.length*a,c=l.number-s,u=n+o*c+a*(l.from-r-c);return new jn(l.from,l.length,Math.max(n,Math.min(u,n+this.height-h)),h,0)}forEachLine(t,e,i,n,r,s){t=Math.max(t,r),e=Math.min(e,r+this.length);let{firstLine:o,perLine:a,perChar:l}=this.heightMetrics(i,r);for(let h=t,c=n;h<=e;){let e=i.doc.lineAt(h);if(h==t){let i=e.number-o;c+=a*i+l*(t-r-i)}let n=a+l*e.length;s(new jn(e.from,e.length,c,n,0)),c+=n,h=e.to+1}}replace(t,e,i){let n=this.length-e;if(n>0){let t=i[i.length-1];t instanceof Jn?i[i.length-1]=new Jn(t.length+n):i.push(null,new Jn(n-1))}if(t>0){let e=i[0];e instanceof Jn?i[0]=new Jn(t+e.length):i.unshift(new Jn(t-1),null)}return Kn.of(i)}decomposeLeft(t,e){e.push(new Jn(t-1),null)}decomposeRight(t,e){e.push(null,new Jn(this.length-t-1))}updateHeight(t,e=0,i=!1,n){let r=e+this.length;if(n&&n.from<=e+this.length&&n.more){let i=[],s=Math.max(e,n.from),o=-1;for(n.from>e&&i.push(new Jn(n.from-e-1).updateHeight(t,e));s<=r&&n.more;){let e=t.doc.lineAt(s).length;i.length&&i.push(null);let r=n.heights[n.index++];-1==o?o=r:Math.abs(r-o)>=$n&&(o=-2);let a=new Un(e,r);a.outdated=!1,i.push(a),s+=e+1}s<=r&&i.push(null,new Jn(r-s).updateHeight(t,s));let a=Kn.of(i);return(o<0||Math.abs(a.height-this.height)>=$n||Math.abs(o-this.heightMetrics(t,e).perLine)>=$n)&&(t.heightChanged=!0),a}return(i||this.outdated)&&(this.setHeight(t,t.heightForGap(e,e+this.length)),this.outdated=!1),this}toString(){return`gap(${this.length})`}}class Yn extends Kn{constructor(t,e,i){super(t.length+e+i.length,t.height+i.height,e|(t.outdated||i.outdated?2:0)),this.left=t,this.right=i,this.size=t.size+i.size}get break(){return 1&this.flags}blockAt(t,e,i,n){let r=i+this.left.height;return to))return l;let h=e==qn.ByPosNoHeight?qn.ByPosNoHeight:qn.ByPos;return a?l.join(this.right.lineAt(o,h,i,s,o)):this.left.lineAt(o,h,i,n,r).join(l)}forEachLine(t,e,i,n,r,s){let o=n+this.left.height,a=r+this.left.length+this.break;if(this.break)t=a&&this.right.forEachLine(t,e,i,o,a,s);else{let l=this.lineAt(a,qn.ByPos,i,n,r);t=t&&l.from<=e&&s(l),e>l.to&&this.right.forEachLine(l.to+1,e,i,o,a,s)}}replace(t,e,i){let n=this.left.length+this.break;if(ethis.left.length)return this.balanced(this.left,this.right.replace(t-n,e-n,i));let r=[];t>0&&this.decomposeLeft(t,r);let s=r.length;for(let t of i)r.push(t);if(t>0&&Xn(r,s-1),e=i&&e.push(null)),t>i&&this.right.decomposeLeft(t-i,e)}decomposeRight(t,e){let i=this.left.length,n=i+this.break;if(t>=n)return this.right.decomposeRight(t-n,e);t2*e.size||e.size>2*t.size?Kn.of(this.break?[t,null,e]:[t,e]):(this.left=t,this.right=e,this.height=t.height+e.height,this.outdated=t.outdated||e.outdated,this.size=t.size+e.size,this.length=t.length+this.break+e.length,this)}updateHeight(t,e=0,i=!1,n){let{left:r,right:s}=this,o=e+r.length+this.break,a=null;return n&&n.from<=e+r.length&&n.more?a=r=r.updateHeight(t,e,i,n):r.updateHeight(t,e,i),n&&n.from<=o+s.length&&n.more?a=s=s.updateHeight(t,o,i,n):s.updateHeight(t,o,i),a?this.balanced(r,s):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function Xn(t,e){let i,n;null==t[e]&&(i=t[e-1])instanceof Jn&&(n=t[e+1])instanceof Jn&&t.splice(e-1,3,new Jn(i.length+1+n.length))}class Qn{constructor(t,e){this.pos=t,this.oracle=e,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=t}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(t,e){if(this.lineStart>-1){let t=Math.min(e,this.lineEnd),i=this.nodes[this.nodes.length-1];i instanceof Un?i.length+=t-this.pos:(t>this.pos||!this.isCovered)&&this.nodes.push(new Un(t-this.pos,-1)),this.writtenTo=t,e>t&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=e}point(t,e,i){if(t=5)&&this.addLineDeco(n,r,s)}else e>t&&this.span(t,e);this.lineEnd>-1&&this.lineEnd-1)return;let{from:t,to:e}=this.oracle.doc.lineAt(this.pos);this.lineStart=t,this.lineEnd=e,this.writtenTot&&this.nodes.push(new Un(this.pos-t,-1)),this.writtenTo=this.pos}blankContent(t,e){let i=new Jn(e-t);return this.oracle.doc.lineAt(t).to==e&&(i.flags|=4),i}ensureLine(){this.enterLine();let t=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(t instanceof Un)return t;let e=new Un(0,-1);return this.nodes.push(e),e}addBlock(t){var e;this.enterLine();let i=null===(e=t.deco)||void 0===e?void 0:e.type;i!=Ke.WidgetAfter||this.isCovered||this.ensureLine(),this.nodes.push(t),this.writtenTo=this.pos=this.pos+t.length,i!=Ke.WidgetBefore&&(this.covering=t)}addLineDeco(t,e,i){let n=this.ensureLine();n.length+=i,n.collapsed+=i,n.widgetHeight=Math.max(n.widgetHeight,t),n.breaks+=e,this.writtenTo=this.pos=this.pos+i}finish(t){let e=0==this.nodes.length?null:this.nodes[this.nodes.length-1];!(this.lineStart>-1)||e instanceof Un||this.isCovered?(this.writtenToi.clientHeight||i.scrollWidth>i.clientWidth)&&"visible"!=n.overflow){let n=i.getBoundingClientRect();s=Math.max(s,n.left),o=Math.min(o,n.right),a=Math.max(a,n.top),l=e==t.parentNode?n.bottom:Math.min(l,n.bottom)}e="absolute"==n.position||"fixed"==n.position?i.offsetParent:i.parentNode}else{if(11!=e.nodeType)break;e=e.host}return{left:s-i.left,right:Math.max(s,o)-i.left,top:a-(i.top+e),bottom:Math.max(a,l)-(i.top+e)}}function er(t,e){let i=t.getBoundingClientRect();return{left:0,right:i.right-i.left,top:e,bottom:i.bottom-(i.top+e)}}class ir{constructor(t,e,i){this.from=t,this.to=e,this.size=i}static same(t,e){if(t.length!=e.length)return!1;for(let i=0;i"function"!=typeof t&&"cm-lineWrapping"==t.class));this.heightOracle=new Fn(i),this.stateDeco=e.facet(Si).filter((t=>"function"!=typeof t)),this.heightMap=Kn.empty().applyChanges(this.stateDeco,t.empty,this.heightOracle.setDoc(e.doc),[new Ei(0,0,0,e.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Ge.set(this.lineGaps.map((t=>t.draw(this,!1)))),this.computeVisibleRanges()}updateForViewport(){let t=[this.viewport],{main:e}=this.state.selection;for(let i=0;i<=1;i++){let n=i?e.head:e.anchor;if(!t.some((({from:t,to:e})=>n>=t&&n<=e))){let{from:e,to:i}=this.lineBlockAt(n);t.push(new sr(e,i))}}this.viewports=t.sort(((t,e)=>t.from-e.from)),this.scaler=this.heightMap.height<=7e6?hr:new cr(this.heightOracle,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,(t=>{this.viewportLines.push(1==this.scaler.scale?t:ur(t,this.scaler))}))}update(t,e=null){this.state=t.state;let i=this.stateDeco;this.stateDeco=this.state.facet(Si).filter((t=>"function"!=typeof t));let n=t.changedRanges,r=Ei.extendWithRanges(n,function(t,e,i){let n=new Zn;return Mt.compare(t,e,i,n,0),n.changes}(i,this.stateDeco,t?t.changes:A.empty(this.state.doc.length))),s=this.heightMap.height,o=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);this.heightMap=this.heightMap.applyChanges(this.stateDeco,t.startState.doc,this.heightOracle.setDoc(this.state.doc),r),this.heightMap.height!=s&&(t.flags|=2),o?(this.scrollAnchorPos=t.changes.mapPos(o.from,-1),this.scrollAnchorHeight=o.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=this.heightMap.height);let a=r.length?this.mapViewport(this.viewport,t.changes):this.viewport;(e&&(e.range.heada.to)||!this.viewportIsAppropriate(a))&&(a=this.getViewport(0,e));let l=!t.changes.empty||2&t.flags||a.from!=this.viewport.from||a.to!=this.viewport.to;this.viewport=a,this.updateForViewport(),l&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,t.changes))),t.flags|=this.computeVisibleRanges(),e&&(this.scrollTarget=e),!this.mustEnforceCursorAssoc&&t.selectionSet&&t.view.lineWrapping&&t.state.selection.main.empty&&t.state.selection.main.assoc&&!t.state.facet(fi)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let i=e.contentDOM,n=window.getComputedStyle(i),r=this.heightOracle,s=n.whiteSpace;this.defaultTextDirection="rtl"==n.direction?Bi.RTL:Bi.LTR;let o=this.heightOracle.mustRefreshForWrapping(s),a=i.getBoundingClientRect(),l=o||this.mustMeasureContent||this.contentDOMHeight!=a.height;this.contentDOMHeight=a.height,this.mustMeasureContent=!1;let h=0,c=0;if(a.width&&a.height){let t=a.width/i.offsetWidth,e=a.height/i.offsetHeight;t>.995&&t<1.005&&(t=1),e>.995&&e<1.005&&(e=1),this.scaleX==t&&this.scaleY==e||(this.scaleX=t,this.scaleY=e,h|=8,o=l=!0)}let u=(parseInt(n.paddingTop)||0)*this.scaleY,f=(parseInt(n.paddingBottom)||0)*this.scaleY;this.paddingTop==u&&this.paddingBottom==f||(this.paddingTop=u,this.paddingBottom=f,h|=10),this.editorWidth!=e.scrollDOM.clientWidth&&(r.lineWrapping&&(l=!0),this.editorWidth=e.scrollDOM.clientWidth,h|=8);let d=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=d&&(this.scrollAnchorHeight=-1,this.scrollTop=d),this.scrolledToBottom=de(e.scrollDOM);let p=(this.printing?er:tr)(i,this.paddingTop),g=p.top-this.pixelViewport.top,m=p.bottom-this.pixelViewport.bottom;this.pixelViewport=p;let w=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(w!=this.inView&&(this.inView=w,w&&(l=!0)),!this.inView&&!this.scrollTarget)return 0;let v=a.width;if(this.contentDOMWidth==v&&this.editorHeight==e.scrollDOM.clientHeight||(this.contentDOMWidth=a.width,this.editorHeight=e.scrollDOM.clientHeight,h|=8),l){let i=e.docView.measureVisibleLineHeights(this.viewport);if(r.mustRefreshForHeights(i)&&(o=!0),o||r.lineWrapping&&Math.abs(v-this.contentDOMWidth)>r.charWidth){let{lineHeight:t,charWidth:n,textHeight:a}=e.docView.measureTextSize();o=t>0&&r.refresh(s,t,n,a,v/n,i),o&&(e.docView.minWidth=0,h|=8)}g>0&&m>0?c=Math.max(g,m):g<0&&m<0&&(c=Math.min(g,m)),r.heightChanged=!1;for(let n of this.viewports){let s=n.from==this.viewport.from?i:e.docView.measureVisibleLineHeights(n);this.heightMap=(o?Kn.empty().applyChanges(this.stateDeco,t.empty,this.heightOracle,[new Ei(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(r,0,o,new _n(n.from,s))}r.heightChanged&&(h|=2)}let y=!this.viewportIsAppropriate(this.viewport,c)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return y&&(this.viewport=this.getViewport(c,this.scrollTarget)),this.updateForViewport(),(2&h||y)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),h|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),h}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(t,e){let i=.5-Math.max(-.5,Math.min(.5,t/1e3/2)),n=this.heightMap,r=this.heightOracle,{visibleTop:s,visibleBottom:o}=this,a=new sr(n.lineAt(s-1e3*i,qn.ByHeight,r,0,0).from,n.lineAt(o+1e3*(1-i),qn.ByHeight,r,0,0).to);if(e){let{head:t}=e.range;if(ta.to){let i,s=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),o=n.lineAt(t,qn.ByPos,r,0,0);i="center"==e.y?(o.top+o.bottom)/2-s/2:"start"==e.y||"nearest"==e.y&&t=o+Math.max(10,Math.min(i,250)))&&n>s-2e3&&r>1,s=n<<1;if(this.defaultTextDirection!=Bi.LTR&&!i)return[];let o=[],a=(n,s,l,h)=>{if(s-nn&&tt.from>=l.from&&t.to<=l.to&&Math.abs(t.from-n)t.frome))));if(!f){if(st.from<=s&&t.to>=s))){let t=e.moveToLineBoundary(B.cursor(s),!1,!0).head;t>n&&(s=t)}f=new ir(n,s,this.gapSize(l,n,s,h))}o.push(f)};for(let t of this.viewportLines){if(t.lengtht.from&&a(t.from,r,t,e),ot.draw(this,this.heightOracle.lineWrapping)))))}computeVisibleRanges(){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let e=[];Mt.spans(t,this.viewport.from,this.viewport.to,{span(t,i){e.push({from:t,to:i})},point(){}},20);let i=e.length!=this.visibleRanges.length||this.visibleRanges.some(((t,i)=>t.from!=e[i].from||t.to!=e[i].to));return this.visibleRanges=e,i?4:0}lineBlockAt(t){return t>=this.viewport.from&&t<=this.viewport.to&&this.viewportLines.find((e=>e.from<=t&&e.to>=t))||ur(this.heightMap.lineAt(t,qn.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(t){return ur(this.heightMap.lineAt(this.scaler.fromDOM(t),qn.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(t){let e=this.lineBlockAtHeight(t+8);return e.from>=this.viewport.from||this.viewportLines[0].top-t>200?e:this.viewportLines[0]}elementAtHeight(t){return ur(this.heightMap.blockAt(this.scaler.fromDOM(t),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class sr{constructor(t,e){this.from=t,this.to=e}}function or(t,e,i){let n=[],r=t,s=0;return Mt.spans(i,t,e,{span(){},point(t,e){t>r&&(n.push({from:r,to:t}),s+=t-r),r=e}},20),r=1)return e[e.length-1].to;let n=Math.floor(t*i);for(let t=0;;t++){let{from:i,to:r}=e[t],s=r-i;if(n<=s)return i+n;n-=s}}function lr(t,e){let i=0;for(let{from:n,to:r}of t.ranges){if(e<=r){i+=e-n;break}i+=r-n}return i/t.total}const hr={toDOM:t=>t,fromDOM:t=>t,scale:1};class cr{constructor(t,e,i){let n=0,r=0,s=0;this.viewports=i.map((({from:i,to:r})=>{let s=e.lineAt(i,qn.ByPos,t,0,0).top,o=e.lineAt(r,qn.ByPos,t,0,0).bottom;return n+=o-s,{from:i,to:r,top:s,bottom:o,domTop:0,domBottom:0}})),this.scale=(7e6-n)/(e.height-n);for(let t of this.viewports)t.domTop=s+(t.top-r)*this.scale,s=t.domBottom=t.domTop+(t.bottom-t.top),r=t.bottom}toDOM(t){for(let e=0,i=0,n=0;;e++){let r=eur(t,e))):t._content)}const fr=R.define({combine:t=>t.join(" ")}),dr=R.define({combine:t=>t.indexOf(!0)>-1}),pr=Ft.newName(),gr=Ft.newName(),mr=Ft.newName(),wr={"&light":"."+gr,"&dark":"."+mr};function vr(t,e,i){return new Ft(e,{finish:e=>/&/.test(e)?e.replace(/&\w*/,(e=>{if("&"==e)return t;if(!i||!i[e])throw new RangeError(`Unsupported selector: ${e}`);return i[e]})):t+" "+e})}const yr=vr("."+pr,{"&":{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":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .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",insetInlineStart: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,\')',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"}},wr),kr="￿";class br{constructor(t,e){this.points=t,this.text="",this.lineSeparator=e.facet(yt.lineSeparator)}append(t){this.text+=t}lineBreak(){this.text+=kr}readRange(t,e){if(!t)return this;let i=t.parentNode;for(let n=t;;){this.findPointBefore(i,n);let t=this.text.length;this.readNode(n);let r=n.nextSibling;if(r==e)break;let s=me.get(n),o=me.get(r);(s&&o?s.breakAfter:(s?s.breakAfter:xr(n))||xr(r)&&("BR"!=n.nodeName||n.cmIgnore)&&this.text.length>t)&&this.lineBreak(),n=r}return this.findPointBefore(i,e),this}readTextNode(t){let e=t.nodeValue;for(let i of this.points)i.node==t&&(i.pos=this.text.length+Math.min(i.offset,e.length));for(let i=0,n=this.lineSeparator?null:/\r\n?|\n/g;;){let r,s=-1,o=1;if(this.lineSeparator?(s=e.indexOf(this.lineSeparator,i),o=this.lineSeparator.length):(r=n.exec(e))&&(s=r.index,o=r[0].length),this.append(e.slice(i,s<0?e.length:s)),s<0)break;if(this.lineBreak(),o>1)for(let e of this.points)e.node==t&&e.pos>this.text.length&&(e.pos-=o-1);i=s+o}}readNode(t){if(t.cmIgnore)return;let e=me.get(t),i=e&&e.overrideDOMText;if(null!=i){this.findPointInside(t,i.length);for(let t=i.iter();!t.next().done;)t.lineBreak?this.lineBreak():this.append(t.value)}else 3==t.nodeType?this.readTextNode(t):"BR"==t.nodeName?t.nextSibling&&this.lineBreak():1==t.nodeType&&this.readRange(t.firstChild,null)}findPointBefore(t,e){for(let i of this.points)i.node==t&&t.childNodes[i.offset]==e&&(i.pos=this.text.length)}findPointInside(t,e){for(let i of this.points)(3==t.nodeType?i.node==t:t.contains(i.node))&&(i.pos=this.text.length+Math.min(e,i.offset))}}function xr(t){return 1==t.nodeType&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(t.nodeName)}class Sr{constructor(t,e){this.node=t,this.offset=e,this.pos=-1}}class Ar{constructor(t,e,i,n){this.typeOver=n,this.bounds=null,this.text="";let{impreciseHead:r,impreciseAnchor:s}=t.docView;if(t.state.readOnly&&e>-1)this.newSel=null;else if(e>-1&&(this.bounds=t.docView.domBoundsAround(e,i,0))){let e=r||s?[]:function(t){let e=[];if(t.root.activeElement!=t.contentDOM)return e;let{anchorNode:i,anchorOffset:n,focusNode:r,focusOffset:s}=t.observer.selectionRange;return i&&(e.push(new Sr(i,n)),r==i&&s==n||e.push(new Sr(r,s))),e}(t),i=new br(e,t.state);i.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=i.text,this.newSel=function(t,e){if(0==t.length)return null;let i=t[0].pos,n=2==t.length?t[1].pos:i;return i>-1&&n>-1?B.single(i+e,n+e):null}(e,this.bounds.from)}else{let e=t.observer.selectionRange,i=r&&r.node==e.focusNode&&r.offset==e.focusOffset||!Xt(t.contentDOM,e.focusNode)?t.state.selection.main.head:t.docView.posFromDOM(e.focusNode,e.focusOffset),n=s&&s.node==e.anchorNode&&s.offset==e.anchorOffset||!Xt(t.contentDOM,e.anchorNode)?t.state.selection.main.anchor:t.docView.posFromDOM(e.anchorNode,e.anchorOffset);this.newSel=B.single(n,i)}}}function Mr(e,i){let n,{newSel:r}=i,s=e.state.selection.main,o=e.inputState.lastKeyTime>Date.now()-100?e.inputState.lastKeyCode:-1;if(i.bounds){let{from:r,to:a}=i.bounds,l=s.from,h=null;(8===o||Be.android&&i.text.length0&&a>0&&t.charCodeAt(o-1)==e.charCodeAt(a-1);)o--,a--;return"end"==n&&(i-=o+Math.max(0,s-Math.min(o,a))-s),o=o?s-i:0,a=s+(a-o),o=s):a=a?s-i:0,o=s+(o-a),a=s),{from:s,toA:o,toB:a}}(e.state.doc.sliceString(r,a,kr),i.text,l-r,h);c&&(Be.chrome&&13==o&&c.toB==c.from+2&&i.text.slice(c.from,c.toB)==kr+kr&&c.toB--,n={from:r+c.from,to:r+c.toA,insert:t.of(i.text.slice(c.from,c.toB).split(kr))})}else r&&(!e.hasFocus&&e.state.facet(mi)||r.main.eq(s))&&(r=null);if(!n&&!r)return!1;if(!n&&i.typeOver&&!s.empty&&r&&r.main.empty?n={from:s.from,to:s.to,insert:e.state.doc.slice(s.from,s.to)}:n&&n.from>=s.from&&n.to<=s.to&&(n.from!=s.from||n.to!=s.to)&&s.to-s.from-(n.to-n.from)<=4?n={from:s.from,to:s.to,insert:e.state.doc.slice(s.from,n.from).append(n.insert).append(e.state.doc.slice(n.to,s.to))}:(Be.mac||Be.android)&&n&&n.from==n.to&&n.from==s.head-1&&/^\. ?$/.test(n.insert.toString())&&"off"==e.contentDOM.getAttribute("autocorrect")?(r&&2==n.insert.length&&(r=B.single(r.main.anchor-1,r.main.head-1)),n={from:s.from,to:s.to,insert:t.of([" "])}):Be.chrome&&n&&n.from==n.to&&n.from==s.head&&"\n "==n.insert.toString()&&e.lineWrapping&&(r&&(r=B.single(r.main.anchor-1,r.main.head-1)),n={from:s.from,to:s.to,insert:t.of([" "])}),n){if(Be.ios&&e.inputState.flushIOSKey(e))return!0;if(Be.android&&(n.from==s.from&&n.to==s.to&&1==n.insert.length&&2==n.insert.lines&&ue(e.contentDOM,"Enter",13)||(n.from==s.from-1&&n.to==s.to&&0==n.insert.length||8==o&&n.insert.lengths.head)&&ue(e.contentDOM,"Backspace",8)||n.from==s.from&&n.to==s.to+1&&0==n.insert.length&&ue(e.contentDOM,"Delete",46)))return!0;let t,i=n.insert.toString();e.inputState.composing>=0&&e.inputState.composing++;let a=()=>t||(t=function(t,e,i){let n,r=t.state,s=r.selection.main;if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!i||i.main.empty&&i.main.from==e.from+e.insert.length)&&t.inputState.composing<0){let i=s.frome.to?r.sliceDoc(e.to,s.to):"";n=r.replaceSelection(t.state.toText(i+e.insert.sliceString(0,void 0,t.state.lineBreak)+o))}else{let o=r.changes(e),a=i&&i.main.to<=o.newLength?i.main:void 0;if(r.selection.ranges.length>1&&t.inputState.composing>=0&&e.to<=s.to&&e.to>=s.to-10){let l,h=t.state.sliceDoc(e.from,e.to),c=i&&Xi(t,i.main.head);if(c){let t=e.insert.length-(e.to-e.from);l={from:c.from,to:c.to-t}}else l=t.state.doc.lineAt(s.head);let u=s.to-e.to,f=s.to-s.from;n=r.changeByRange((i=>{if(i.from==s.from&&i.to==s.to)return{changes:o,range:a||i.map(o)};let n=i.to-u,c=n-h.length;if(i.to-i.from!=f||t.state.sliceDoc(c,n)!=h||i.to>=l.from&&i.from<=l.to)return{range:i};let d=r.changes({from:c,to:n,insert:e.insert}),p=i.to-s.to;return{changes:d,range:a?B.range(Math.max(0,a.anchor+p),Math.max(0,a.head+p)):i.map(d)}}))}else n={changes:o,selection:a&&r.selection.replaceRange(a)}}let o="input.type";return(t.composing||t.inputState.compositionPendingChange&&t.inputState.compositionEndedAt>Date.now()-50)&&(t.inputState.compositionPendingChange=!1,o+=".compose",t.inputState.compositionFirstChange&&(o+=".start",t.inputState.compositionFirstChange=!1)),r.update(n,{userEvent:o,scrollIntoView:!0})}(e,n,r));return e.state.facet(hi).some((t=>t(e,n.from,n.to,i,a)))||e.dispatch(a()),!0}if(r&&!r.main.eq(s)){let t=!1,i="select";return e.inputState.lastSelectionTime>Date.now()-50&&("select"==e.inputState.lastSelectionOrigin&&(t=!0),i=e.inputState.lastSelectionOrigin),e.dispatch({selection:r,scrollIntoView:t,userEvent:i}),!0}return!1}const Cr={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Tr=Be.ie&&Be.ie_version<=11;class Dr{constructor(t){this.view=t,this.active=!1,this.selectionRange=new oe,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=t.contentDOM,this.observer=new MutationObserver((e=>{for(let t of e)this.queue.push(t);(Be.ie&&Be.ie_version<=11||Be.ios&&t.composing)&&e.some((t=>"childList"==t.type&&t.removedNodes.length||"characterData"==t.type&&t.oldValue.length>t.target.nodeValue.length))?this.flushSoon():this.flush()})),Tr&&(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),"function"==typeof ResizeObserver&&(this.resizeScroll=new ResizeObserver((()=>{var t;(null===(t=this.view.docView)||void 0===t?void 0:t.lastUpdate)this.view.requestMeasure())),this.resizeContent.observe(t.contentDOM)),this.addWindowListeners(this.win=t.win),this.start(),"function"==typeof IntersectionObserver&&(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")))}),{threshold:[0,.001]}),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(t){this.view.inputState.runScrollHandlers(this.view,t),this.intersecting&&this.view.measure()}onScroll(t){this.intersecting&&this.flush(!1),this.onScrollChanged(t)}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(t){if(this.gapIntersection&&(t.length!=this.gaps.length||this.gaps.some(((e,i)=>e!=t[i])))){this.gapIntersection.disconnect();for(let e of t)this.gapIntersection.observe(e);this.gaps=t}}onSelectionChange(t){let e=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,n=this.selectionRange;if(i.state.facet(mi)?i.root.activeElement!=this.dom:!Qt(i.dom,n))return;let r=n.anchorNode&&i.docView.nearest(n.anchorNode);r&&r.ignoreEvent(t)?e||(this.selectionChanged=!1):(Be.ie&&Be.ie_version<=11||Be.android&&Be.chrome)&&!i.state.selection.main.empty&&n.focusNode&&te(n.focusNode,n.focusOffset,n.anchorNode,n.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:t}=this,e=Be.safari&&11==t.root.nodeType&&function(t){let e=t.activeElement;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}(this.dom.ownerDocument)==this.dom&&function(t){let e=null;function i(t){t.preventDefault(),t.stopImmediatePropagation(),e=t.getTargetRanges()[0]}if(t.contentDOM.addEventListener("beforeinput",i,!0),t.dom.ownerDocument.execCommand("indent"),t.contentDOM.removeEventListener("beforeinput",i,!0),!e)return null;let n=e.startContainer,r=e.startOffset,s=e.endContainer,o=e.endOffset,a=t.docView.domAtPos(t.state.selection.main.anchor);return te(a.node,a.offset,s,o)&&([n,r,s,o]=[s,o,n,r]),{anchorNode:n,anchorOffset:r,focusNode:s,focusOffset:o}}(this.view)||Yt(t.root);if(!e||this.selectionRange.eq(e))return!1;let i=Qt(this.dom,e);return i&&!this.selectionChanged&&t.inputState.lastFocusTime>Date.now()-200&&t.inputState.lastTouchTime{let t=this.delayedAndroidKey;t&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=t.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&t.force&&ue(this.dom,t.key,t.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(t)}this.delayedAndroidKey&&"Enter"!=t||(this.delayedAndroidKey={key:t,keyCode:e,force:this.lastChange{this.delayedFlush=-1,this.flush()})))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let t of this.observer.takeRecords())this.queue.push(t);return this.queue}processRecords(){let t=this.pendingRecords();t.length&&(this.queue=[]);let e=-1,i=-1,n=!1;for(let r of t){let t=this.readMutation(r);t&&(t.typeOver&&(n=!0),-1==e?({from:e,to:i}=t):(e=Math.min(t.from,e),i=Math.max(t.to,i)))}return{from:e,to:i,typeOver:n}}readChange(){let{from:t,to:e,typeOver:i}=this.processRecords(),n=this.selectionChanged&&Qt(this.dom,this.selectionRange);if(t<0&&!n)return null;t>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let r=new Ar(this.view,t,e,i);return this.view.docView.domChanged={newSel:r.newSel?r.newSel.main:null},r}flush(t=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;t&&this.readSelectionRange();let e=this.readChange();if(!e)return!1;let i=this.view.state,n=Mr(this.view,e);return this.view.state==i&&this.view.update([]),n}readMutation(t){let e=this.view.docView.nearest(t.target);if(!e||e.ignoreMutation(t))return null;if(e.markDirty("attributes"==t.type),"attributes"==t.type&&(e.flags|=4),"childList"==t.type){let i=Or(e,t.previousSibling||t.target.previousSibling,-1),n=Or(e,t.nextSibling||t.target.nextSibling,1);return{from:i?e.posAfter(i):e.posAtStart,to:n?e.posBefore(n):e.posAtEnd,typeOver:!1}}return"characterData"==t.type?{from:e.posAtStart,to:e.posAtEnd,typeOver:t.target.nodeValue==t.oldValue}:null}setWindow(t){t!=this.win&&(this.removeWindowListeners(this.win),this.win=t,this.addWindowListeners(this.win))}addWindowListeners(t){t.addEventListener("resize",this.onResize),t.addEventListener("beforeprint",this.onPrint),t.addEventListener("scroll",this.onScroll),t.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(t){t.removeEventListener("scroll",this.onScroll),t.removeEventListener("resize",this.onResize),t.removeEventListener("beforeprint",this.onPrint),t.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var t,e,i,n;this.stop(),null===(t=this.intersection)||void 0===t||t.disconnect(),null===(e=this.gapIntersection)||void 0===e||e.disconnect(),null===(i=this.resizeScroll)||void 0===i||i.disconnect(),null===(n=this.resizeContent)||void 0===n||n.disconnect();for(let t of this.scrollTargets)t.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 Or(t,e,i){for(;e;){let n=me.get(e);if(n&&n.parent==t)return n;let r=e.parentNode;e=r!=t.dom?r:i>0?e.nextSibling:e.previousSibling}return null}class Er{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}constructor(t={}){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);let{dispatch:e}=t;this.dispatchTransactions=t.dispatchTransactions||e&&(t=>t.forEach((t=>e(t,this))))||(t=>this.update(t)),this.dispatch=this.dispatch.bind(this),this._root=t.root||function(t){for(;t;){if(t&&(9==t.nodeType||11==t.nodeType&&t.host))return t;t=t.assignedSlot||t.parentNode}return null}(t.parent)||document,this.viewState=new rr(t.state||yt.create(t)),this.plugins=this.state.facet(vi).map((t=>new ki(t)));for(let t of this.plugins)t.update(this);this.observer=new Dr(this),this.inputState=new dn(this),this.inputState.ensureHandlers(this,this.plugins),this.docView=new Ji(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),t.parent&&t.parent.appendChild(this.dom)}dispatch(...t){let e=1==t.length&&t[0]instanceof ht?t:1==t.length&&Array.isArray(t[0])?t[0]:[this.state.update(...t)];this.dispatchTransactions(e,this)}update(t){if(0!=this.updateState)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let e,i=!1,n=!1,r=this.state;for(let e of t){if(e.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=e.state}if(this.destroyed)return void(this.viewState.state=r);let s=this.hasFocus,o=0,a=null;t.some((t=>t.annotation(In)))?(this.inputState.notifiedFocused=s,o=1):s!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=s,a=zn(r,s),a||(o=1));let l=this.observer.delayedAndroidKey,h=null;if(l?(this.observer.clearDelayedAndroidKey(),h=this.observer.readChange(),(h&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(h=null)):this.observer.clear(),r.facet(yt.phrases)!=this.state.facet(yt.phrases))return this.setState(r);e=Li.create(this,r,t),e.flags|=o;let c=this.viewState.scrollTarget;try{this.updateState=2;for(let e of t){if(c&&(c=c.map(e.changes)),e.scrollIntoView){let{main:t}=e.state.selection;c=new di(t.empty?t:B.cursor(t.head,t.head>t.anchor?-1:1))}for(let t of e.effects)t.is(pi)&&(c=t.value)}this.viewState.update(e,c),this.bidiCache=Pr.update(this.bidiCache,e.changes),e.empty||(this.updatePlugins(e),this.inputState.update(e)),i=this.docView.update(e),this.state.facet(Oi)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(t),this.docView.updateSelection(i,t.some((t=>t.isUserEvent("select.pointer"))))}finally{this.updateState=0}if(e.startState.facet(fr)!=e.state.facet(fr)&&(this.viewState.mustMeasureContent=!0),(i||n||c||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!e.empty)for(let t of this.state.facet(li))t(e);(a||h)&&Promise.resolve().then((()=>{a&&this.state==a.startState&&this.dispatch(a),h&&!Mr(this,h)&&l.force&&ue(this.contentDOM,l.key,l.keyCode)}))}setState(t){if(0!=this.updateState)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed)return void(this.viewState.state=t);this.updateState=2;let e=this.hasFocus;try{for(let t of this.plugins)t.destroy(this);this.viewState=new rr(t),this.plugins=t.facet(vi).map((t=>new ki(t))),this.pluginMap.clear();for(let t of this.plugins)t.update(this);this.docView=new Ji(this),this.inputState.ensureHandlers(this,this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}e&&this.focus(),this.requestMeasure()}updatePlugins(t){let e=t.startState.facet(vi),i=t.state.facet(vi);if(e!=i){let n=[];for(let r of i){let i=e.indexOf(r);if(i<0)n.push(new ki(r));else{let e=this.plugins[i];e.mustUpdate=t,n.push(e)}}for(let e of this.plugins)e.mustUpdate!=t&&e.destroy(this);this.plugins=n,this.pluginMap.clear(),this.inputState.ensureHandlers(this,this.plugins)}else for(let e of this.plugins)e.mustUpdate=t;for(let t=0;t-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey)return this.measureScheduled=-1,void this.requestMeasure();this.measureScheduled=0,t&&this.observer.forceFlush();let e=null,i=this.scrollDOM,n=i.scrollTop*this.scaleY,{scrollAnchorPos:r,scrollAnchorHeight:s}=this.viewState;Math.abs(n-this.viewState.scrollTop)>1&&(s=-1),this.viewState.scrollAnchorHeight=-1;try{for(let t=0;;t++){if(s<0)if(de(i))r=-1,s=this.viewState.heightMap.height;else{let t=this.viewState.scrollAnchorAt(n);r=t.from,s=t.top}this.updateState=1;let o=this.viewState.measure(this);if(!o&&!this.measureRequests.length&&null==this.viewState.scrollTarget)break;if(t>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let a=[];4&o||([this.measureRequests,a]=[a,this.measureRequests]);let l=a.map((t=>{try{return t.read(this)}catch(t){return gi(this.state,t),Br}})),h=Li.create(this,this.state,[]),c=!1;h.flags|=o,e?e.flags|=o:e=h,this.updateState=2,h.empty||(this.updatePlugins(h),this.inputState.update(h),this.updateAttrs(),c=this.docView.update(h));for(let t=0;t1||t<-1){n+=t,i.scrollTop=n/this.scaleY,s=-1;continue}}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(e&&!e.empty)for(let t of this.state.facet(li))t(e)}get themeClasses(){return pr+" "+(this.state.facet(dr)?mr:gr)+" "+this.state.facet(fr)}updateAttrs(){let t=Nr(this,bi,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),e={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(mi)?"true":"false",class:"cm-content",style:`${Be.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(e["aria-readonly"]="true"),Nr(this,xi,e);let i=this.observer.ignore((()=>{let i=je(this.contentDOM,this.contentAttrs,e),n=je(this.dom,this.editorAttrs,t);return i||n}));return this.editorAttrs=t,this.contentAttrs=e,i}showAnnouncements(t){let e=!0;for(let i of t)for(let t of i.effects)t.is(Er.announce)&&(e&&(this.announceDOM.textContent=""),e=!1,this.announceDOM.appendChild(document.createElement("div")).textContent=t.value)}mountStyles(){this.styleModules=this.state.facet(Oi);let t=this.state.facet(Er.cspNonce);Ft.mount(this.root,this.styleModules.concat(yr).reverse(),t?{nonce:t}:void 0)}readMeasured(){if(2==this.updateState)throw new Error("Reading the editor layout isn't allowed during an update");0==this.updateState&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(t){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame((()=>this.measure()))),t){if(this.measureRequests.indexOf(t)>-1)return;if(null!=t.key)for(let e=0;ee.spec==t))||null),e&&e.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(t){return this.readMeasured(),this.viewState.elementAtHeight(t)}lineBlockAtHeight(t){return this.readMeasured(),this.viewState.lineBlockAtHeight(t)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(t){return this.viewState.lineBlockAt(t)}get contentHeight(){return this.viewState.contentHeight}moveByChar(t,e,i){return fn(this,t,cn(this,t,e,i))}moveByGroup(t,e){return fn(this,t,cn(this,t,e,(e=>function(t,e,i){let n=t.state.charCategorizer(e),r=n(i);return t=>{let e=n(t);return r==mt.Space&&(r=e),r==e}}(this,t.head,e))))}moveToLineBoundary(t,e,i=!0){return function(t,e,i,n){let r=function(t,e){let i=t.lineBlockAt(e);if(Array.isArray(i.type))for(let t of i.type)if(t.to>e||t.to==e&&(t.to==i.to||t.type==Ke.Text))return t;return i}(t,e.head),s=n&&r.type==Ke.Text&&(t.lineWrapping||r.widgetLineBreaks)?t.coordsAtPos(e.assoc<0&&e.head>r.from?e.head-1:e.head):null;if(s){let e=t.dom.getBoundingClientRect(),n=t.textDirectionAt(r.from),o=t.posAtCoords({x:i==(n==Bi.LTR)?e.right-1:e.left+1,y:(s.top+s.bottom)/2});if(null!=o)return B.cursor(o,i?-1:1)}return B.cursor(i?r.to:r.from,i?-1:1)}(this,t,e,i)}moveVertically(t,e,i){return fn(this,t,function(t,e,i,n){let r=e.head,s=i?1:-1;if(r==(i?t.state.doc.length:0))return B.cursor(r,e.assoc);let o,a=e.goalColumn,l=t.contentDOM.getBoundingClientRect(),h=t.coordsAtPos(r),c=t.documentTop;if(h)null==a&&(a=h.left-l.left),o=s<0?h.top:h.bottom;else{let e=t.viewState.lineBlockAt(r);null==a&&(a=Math.min(l.right-l.left,t.defaultCharacterWidth*(r-e.from))),o=(s<0?e.top:e.bottom)+c}let u=l.left+a,f=null!=n?n:t.viewState.heightOracle.textHeight>>1;for(let i=0;;i+=10){let n=o+(f+i)*s,h=ln(t,{x:u,y:n},!1,s);if(nl.bottom||(s<0?hr))return B.cursor(h,e.assoc,void 0,a)}}(this,t,e,i))}domAtPos(t){return this.docView.domAtPos(t)}posAtDOM(t,e=0){return this.docView.posFromDOM(t,e)}posAtCoords(t,e=!0){return this.readMeasured(),ln(this,t,e)}coordsAtPos(t,e=1){this.readMeasured();let i=this.docView.coordsAt(t,e);if(!i||i.left==i.right)return i;let n=this.state.doc.lineAt(t),r=this.bidiSpans(n);return re(i,r[Fi.find(r,t-n.from,-1,e)].dir==Bi.LTR==e>0)}coordsForChar(t){return this.readMeasured(),this.docView.coordsForChar(t)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(t){return!this.state.facet(ui)||tthis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(t))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(t){if(t.length>Lr)return Ki(t.length);let e,i=this.textDirectionAt(t.from);for(let n of this.bidiCache)if(n.from==t.from&&n.dir==i&&(n.fresh||_i(n.isolates,e=Ci(this,t.from,t.to))))return n.order;e||(e=Ci(this,t.from,t.to));let n=function(t,e,i){if(!t)return[new Fi(0,0,e==Ni?1:0)];if(e==Pi&&!i.length&&!Vi.test(t))return Ki(t.length);if(i.length)for(;t.length>ji.length;)ji[ji.length]=256;let n=[],r=e==Pi?0:1;return $i(t,r,r,i,0,t.length,n),n}(t.text,i,e);return this.bidiCache.push(new Pr(t.from,t.to,i,e,!0,n)),n}get hasFocus(){var t;return(this.dom.ownerDocument.hasFocus()||Be.safari&&(null===(t=this.inputState)||void 0===t?void 0:t.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore((()=>{he(this.contentDOM),this.docView.updateSelection()}))}setRoot(t){this._root!=t&&(this._root=t,this.observer.setWindow((9==t.nodeType?t:t.ownerDocument).defaultView||window),this.mountStyles())}destroy(){for(let t of this.plugins)t.destroy(this);this.plugins=[],this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(t,e={}){return pi.of(new di("number"==typeof t?B.cursor(t):t,e.y,e.x,e.yMargin,e.xMargin))}static domEventHandlers(t){return yi.define((()=>({})),{eventHandlers:t})}static theme(t,e){let i=Ft.newName(),n=[fr.of(i),Oi.of(vr(`.${i}`,t))];return e&&e.dark&&n.push(dr.of(!0)),n}static baseTheme(t){return q.lowest(Oi.of(vr("."+pr,t,wr)))}static findFromDOM(t){var e;let i=t.querySelector(".cm-content"),n=i&&me.get(i)||me.get(t);return(null===(e=null==n?void 0:n.rootView)||void 0===e?void 0:e.view)||null}}Er.styleModule=Oi,Er.inputHandler=hi,Er.focusChangeEffect=ci,Er.perLineTextDirection=ui,Er.exceptionSink=ai,Er.updateListener=li,Er.editable=mi,Er.mouseSelectionStyle=oi,Er.dragMovesSelection=si,Er.clickAddsSelectionRange=ri,Er.decorations=Si,Er.atomicRanges=Ai,Er.bidiIsolatedRanges=Mi,Er.scrollMargins=Ti,Er.darkTheme=dr,Er.cspNonce=R.define({combine:t=>t.length?t[0]:""}),Er.contentAttributes=xi,Er.editorAttributes=bi,Er.lineWrapping=Er.contentAttributes.of({class:"cm-lineWrapping"}),Er.announce=lt.define();const Lr=4096,Br={};class Pr{constructor(t,e,i,n,r,s){this.from=t,this.to=e,this.dir=i,this.isolates=n,this.fresh=r,this.order=s}static update(t,e){if(e.empty&&!t.some((t=>t.fresh)))return t;let i=[],n=t.length?t[t.length-1].dir:Bi.LTR;for(let r=Math.max(0,t.length-10);r=0;r--){let e=n[r],s="function"==typeof e?e(t):e;s&&Ve(s,i)}return i}const Rr=Be.mac?"mac":Be.windows?"win":Be.linux?"linux":"key";function Ir(t,e,i){return e.altKey&&(t="Alt-"+t),e.ctrlKey&&(t="Ctrl-"+t),e.metaKey&&(t="Meta-"+t),!1!==i&&e.shiftKey&&(t="Shift-"+t),t}const zr=q.default(Er.domEventHandlers({keydown:(t,e)=>jr(Vr(e.state),t,e,"editor")})),Hr=R.define({enables:zr}),Wr=new WeakMap;function Vr(t){let e=t.facet(Hr),i=Wr.get(e);return i||Wr.set(e,i=function(t,e=Rr){let i=Object.create(null),n=Object.create(null),r=(t,e)=>{let i=n[t];if(null==i)n[t]=e;else if(i!=e)throw new Error("Key binding "+t+" is used both as a regular binding and as a multi-stroke prefix")},s=(t,n,s,o,a)=>{var l,h;let c=i[t]||(i[t]=Object.create(null)),u=n.split(/ (?!$)/).map((t=>function(t,e){const i=t.split(/-(?!$)/);let n,r,s,o,a=i[i.length-1];"Space"==a&&(a=" ");for(let t=0;t{let n=Fr={view:e,prefix:i,scope:t};return setTimeout((()=>{Fr==n&&(Fr=null)}),_r),!0}]})}let f=u.join(" ");r(f,!1);let d=c[f]||(c[f]={preventDefault:!1,stopPropagation:!1,run:(null===(h=null===(l=c._any)||void 0===l?void 0:l.run)||void 0===h?void 0:h.slice())||[]});s&&d.run.push(s),o&&(d.preventDefault=!0),a&&(d.stopPropagation=!0)};for(let n of t){let t=n.scope?n.scope.split(" "):["editor"];if(n.any)for(let e of t){let t=i[e]||(i[e]=Object.create(null));t._any||(t._any={preventDefault:!1,stopPropagation:!1,run:[]});for(let e in t)t[e].run.push(n.any)}let r=n[e]||n.key;if(r)for(let e of t)s(e,r,n.run,n.preventDefault,n.stopPropagation),n.shift&&s(e,"Shift-"+r,n.shift,n.preventDefault,n.stopPropagation)}return i}(e.reduce(((t,e)=>t.concat(e)),[]))),i}let Fr=null;const _r=4e3;function jr(t,e,i,n){let r=function(t){var e=!(Kt&&t.metaKey&&t.shiftKey&&!t.ctrlKey&&!t.altKey||Gt&&t.shiftKey&&t.key&&1==t.key.length||"Unidentified"==t.key)&&t.key||(t.shiftKey?$t:qt)[t.keyCode]||t.key||"Unidentified";return"Esc"==e&&(e="Escape"),"Del"==e&&(e="Delete"),"Left"==e&&(e="ArrowLeft"),"Up"==e&&(e="ArrowUp"),"Right"==e&&(e="ArrowRight"),"Down"==e&&(e="ArrowDown"),e}(e),s=k(v(r,0))==r.length&&" "!=r,o="",a=!1,l=!1,h=!1;Fr&&Fr.view==i&&Fr.scope==n&&(o=Fr.prefix+" ",mn.indexOf(e.keyCode)<0&&(l=!0,Fr=null));let c,u,f=new Set,d=t=>{if(t){for(let n of t.run)if(!f.has(n)&&(f.add(n),n(i,e)))return t.stopPropagation&&(h=!0),!0;t.preventDefault&&(t.stopPropagation&&(h=!0),l=!0)}return!1},p=t[n];return p&&(d(p[o+Ir(r,e,!s)])?a=!0:s&&(e.altKey||e.metaKey||e.ctrlKey)&&!(Be.windows&&e.ctrlKey&&e.altKey)&&(c=qt[e.keyCode])&&c!=r?(d(p[o+Ir(c,e,!0)])||e.shiftKey&&(u=$t[e.keyCode])!=r&&u!=c&&d(p[o+Ir(u,e,!1)]))&&(a=!0):s&&e.shiftKey&&d(p[o+Ir(r,e,!0)])&&(a=!0),!a&&d(p._any)&&(a=!0)),l&&(a=!0),a&&h&&e.stopPropagation(),a}Be.ios;function qr(t,e,i,n,r){e.lastIndex=0;for(let s,o=t.iterRange(i,n),a=i;!o.next().done;a+=o.value.length)if(!o.lineBreak)for(;s=e.exec(o.value);)r(a+s.index,s)}class $r{constructor(t){const{regexp:e,decoration:i,decorate:n,boundary:r,maxLength:s=1e3}=t;if(!e.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=e,n)this.addMatch=(t,e,i,r)=>n(r,i,i+t[0].length,t,e);else if("function"==typeof i)this.addMatch=(t,e,n,r)=>{let s=i(t,e,n);s&&r(n,n+t[0].length,s)};else{if(!i)throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.addMatch=(t,e,n,r)=>r(n,n+t[0].length,i)}this.boundary=r,this.maxLength=s}createDeco(t){let e=new Ct,i=e.add.bind(e);for(let{from:e,to:n}of function(t,e){let i=t.visibleRanges;if(1==i.length&&i[0].from==t.viewport.from&&i[0].to==t.viewport.to)return i;let n=[];for(let{from:r,to:s}of i)r=Math.max(t.state.doc.lineAt(r).from,r-e),s=Math.min(t.state.doc.lineAt(s).to,s+e),n.length&&n[n.length-1].to>=r?n[n.length-1].to=s:n.push({from:r,to:s});return n}(t,this.maxLength))qr(t.state.doc,this.regexp,e,n,((e,n)=>this.addMatch(n,t,e,i)));return e.finish()}updateDeco(t,e){let i=1e9,n=-1;return t.docChanged&&t.changes.iterChanges(((e,r,s,o)=>{o>t.view.viewport.from&&s1e3?this.createDeco(t.view):n>-1?this.updateRange(t.view,e.map(t.changes),i,n):e}updateRange(t,e,i,n){for(let r of t.visibleRanges){let s=Math.max(r.from,i),o=Math.min(r.to,n);if(o>s){let i=t.state.doc.lineAt(s),n=i.toi.from;s--)if(this.boundary.test(i.text[s-1-i.from])){a=s;break}for(;oc.push(i.range(t,e));if(i==n)for(this.regexp.lastIndex=a-i.from;(h=this.regexp.exec(i.text))&&h.indexthis.addMatch(i,t,e,u)));e=e.update({filterFrom:a,filterTo:l,filter:(t,e)=>tl,add:c})}}return e}}const Kr=null!=/x/.unicode?"gu":"g",Gr=new RegExp("[\0-\b\n--Ÿ­؜​‎‏\u2028\u2029‭‮⁦⁧⁩\ufeff-]",Kr),Ur={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let Jr=null;const Yr=R.define({combine(t){let e=kt(t,{render:null,specialChars:Gr,addSpecialChars:null});return(e.replaceTabs=!function(){var t;if(null==Jr&&"undefined"!=typeof document&&document.body){let e=document.body.style;Jr=null!=(null!==(t=e.tabSize)&&void 0!==t?t:e.MozTabSize)}return Jr||!1}())&&(e.specialChars=new RegExp("\t|"+e.specialChars.source,Kr)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,Kr)),e}});let Xr=null;class Qr extends $e{constructor(t,e){super(),this.options=t,this.code=e}eq(t){return t.code==this.code}toDOM(t){let e=function(t){return t>=32?"•":10==t?"␤":String.fromCharCode(9216+t)}(this.code),i=t.state.phrase("Control character")+" "+(Ur[this.code]||"0x"+this.code.toString(16)),n=this.options.render&&this.options.render(this.code,i,e);if(n)return n;let r=document.createElement("span");return r.textContent=e,r.title=i,r.setAttribute("aria-label",i),r.className="cm-specialChar",r}ignoreEvent(){return!1}}class Zr extends $e{constructor(t){super(),this.width=t}eq(t){return t.width==this.width}toDOM(){let t=document.createElement("span");return t.textContent="\t",t.className="cm-tab",t.style.width=this.width+"px",t}ignoreEvent(){return!1}}const ts=R.define({combine(t){let e,i;for(let n of t)e=e||n.topContainer,i=i||n.bottomContainer;return{topContainer:e,bottomContainer:i}}});function es(t,e){let i=t.plugin(is),n=i?i.specs.indexOf(e):-1;return n>-1?i.panels[n]:null}const is=yi.fromClass(class{constructor(t){this.input=t.state.facet(ss),this.specs=this.input.filter((t=>t)),this.panels=this.specs.map((e=>e(t)));let e=t.state.facet(ts);this.top=new ns(t,!0,e.topContainer),this.bottom=new ns(t,!1,e.bottomContainer),this.top.sync(this.panels.filter((t=>t.top))),this.bottom.sync(this.panels.filter((t=>!t.top)));for(let t of this.panels)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}update(t){let e=t.state.facet(ts);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new ns(t.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new ns(t.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let i=t.state.facet(ss);if(i!=this.input){let e=i.filter((t=>t)),n=[],r=[],s=[],o=[];for(let i of e){let e,a=this.specs.indexOf(i);a<0?(e=i(t.view),o.push(e)):(e=this.panels[a],e.update&&e.update(t)),n.push(e),(e.top?r:s).push(e)}this.specs=e,this.panels=n,this.top.sync(r),this.bottom.sync(s);for(let t of o)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}else for(let e of this.panels)e.update&&e.update(t)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:t=>Er.scrollMargins.of((e=>{let i=e.plugin(t);return i&&{top:i.top.scrollMargin(),bottom:i.bottom.scrollMargin()}}))});class ns{constructor(t,e,i){this.view=t,this.top=e,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(t){for(let e of this.panels)e.destroy&&t.indexOf(e)<0&&e.destroy();this.panels=t,this.syncDOM()}syncDOM(){if(0==this.panels.length)return void(this.dom&&(this.dom.remove(),this.dom=void 0));if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let t=this.dom.firstChild;for(let e of this.panels)if(e.dom.parentNode==this.dom){for(;t!=e.dom;)t=rs(t);t=t.nextSibling}else this.dom.insertBefore(e.dom,t);for(;t;)t=rs(t)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(this.container&&this.classes!=this.view.themeClasses){for(let t of this.classes.split(" "))t&&this.container.classList.remove(t);for(let t of(this.classes=this.view.themeClasses).split(" "))t&&this.container.classList.add(t)}}}function rs(t){let e=t.nextSibling;return t.remove(),e}const ss=R.define({enables:is});class os extends bt{compare(t){return this==t||this.constructor==t.constructor&&this.eq(t)}eq(t){return!1}destroy(t){}}os.prototype.elementClass="",os.prototype.toDOM=void 0,os.prototype.mapMode=x.TrackBefore,os.prototype.startSide=os.prototype.endSide=-1,os.prototype.point=!0;const as=R.define(),ls=R.define(),hs=R.define({combine:t=>t.some((t=>t))});function cs(t){let e=[us];return t&&!1===t.fixed&&e.push(hs.of(!0)),e}const us=yi.fromClass(class{constructor(t){this.view=t,this.prevViewport=t.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=t.state.facet(ls).map((e=>new gs(t,e)));for(let t of this.gutters)this.dom.appendChild(t.dom);this.fixed=!t.state.facet(hs),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),t.scrollDOM.insertBefore(this.dom,t.contentDOM)}update(t){if(this.updateGutters(t)){let e=this.prevViewport,i=t.view.viewport,n=Math.min(e.to,i.to)-Math.max(e.from,i.from);this.syncGutters(n<.8*(i.to-i.from))}t.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight+"px"),this.view.state.facet(hs)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=t.view.viewport}syncGutters(t){let e=this.dom.nextSibling;t&&this.dom.remove();let i=Mt.iter(this.view.state.facet(as),this.view.viewport.from),n=[],r=this.gutters.map((t=>new ps(t,this.view.viewport,-this.view.documentPadding.top)));for(let t of this.view.viewportLineBlocks)if(n.length&&(n=[]),Array.isArray(t.type)){let e=!0;for(let s of t.type)if(s.type==Ke.Text&&e){ds(i,n,s.from);for(let t of r)t.line(this.view,s,n);e=!1}else if(s.widget)for(let t of r)t.widget(this.view,s)}else if(t.type==Ke.Text){ds(i,n,t.from);for(let e of r)e.line(this.view,t,n)}else if(t.widget)for(let e of r)e.widget(this.view,t);for(let t of r)t.finish();t&&this.view.scrollDOM.insertBefore(this.dom,e)}updateGutters(t){let e=t.startState.facet(ls),i=t.state.facet(ls),n=t.docChanged||t.heightChanged||t.viewportChanged||!Mt.eq(t.startState.facet(as),t.state.facet(as),t.view.viewport.from,t.view.viewport.to);if(e==i)for(let e of this.gutters)e.update(t)&&(n=!0);else{n=!0;let r=[];for(let n of i){let i=e.indexOf(n);i<0?r.push(new gs(this.view,n)):(this.gutters[i].update(t),r.push(this.gutters[i]))}for(let t of this.gutters)t.dom.remove(),r.indexOf(t)<0&&t.destroy();for(let t of r)this.dom.appendChild(t.dom);this.gutters=r}return n}destroy(){for(let t of this.gutters)t.destroy();this.dom.remove()}},{provide:t=>Er.scrollMargins.of((e=>{let i=e.plugin(t);return i&&0!=i.gutters.length&&i.fixed?e.textDirection==Bi.LTR?{left:i.dom.offsetWidth*e.scaleX}:{right:i.dom.offsetWidth*e.scaleX}:null}))});function fs(t){return Array.isArray(t)?t:[t]}function ds(t,e,i){for(;t.value&&t.from<=i;)t.from==i&&e.push(t.value),t.next()}class ps{constructor(t,e,i){this.gutter=t,this.height=i,this.i=0,this.cursor=Mt.iter(t.markers,e.from)}addElement(t,e,i){let{gutter:n}=this,r=e.top-this.height;if(this.i==n.elements.length){let s=new ms(t,e.height,r,i);n.elements.push(s),n.dom.appendChild(s.dom)}else n.elements[this.i].update(t,e.height,r,i);this.height=e.bottom,this.i++}line(t,e,i){let n=[];ds(this.cursor,n,e.from),i.length&&(n=n.concat(i));let r=this.gutter.config.lineMarker(t,e,n);r&&n.unshift(r);let s=this.gutter;(0!=n.length||s.config.renderEmptyElements)&&this.addElement(t,e,n)}widget(t,e){let i=this.gutter.config.widgetMarker(t,e.widget,e);i&&this.addElement(t,e,[i])}finish(){let t=this.gutter;for(;t.elements.length>this.i;){let e=t.elements.pop();t.dom.removeChild(e.dom),e.destroy()}}}class gs{constructor(t,e){this.view=t,this.config=e,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in e.domEventHandlers)this.dom.addEventListener(i,(n=>{let r,s=n.target;if(s!=this.dom&&this.dom.contains(s)){for(;s.parentNode!=this.dom;)s=s.parentNode;let t=s.getBoundingClientRect();r=(t.top+t.bottom)/2}else r=n.clientY;let o=t.lineBlockAtHeight(r-t.documentTop);e.domEventHandlers[i](t,o,n)&&n.preventDefault()}));this.markers=fs(e.markers(t)),e.initialSpacer&&(this.spacer=new ms(t,0,0,[e.initialSpacer(t)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(t){let e=this.markers;if(this.markers=fs(this.config.markers(t.view)),this.spacer&&this.config.updateSpacer){let e=this.config.updateSpacer(this.spacer.markers[0],t);e!=this.spacer.markers[0]&&this.spacer.update(t.view,0,0,[e])}let i=t.view.viewport;return!Mt.eq(this.markers,e,i.from,i.to)||!!this.config.lineMarkerChange&&this.config.lineMarkerChange(t)}destroy(){for(let t of this.elements)t.destroy()}}class ms{constructor(t,e,i,n){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(t,e,i,n)}update(t,e,i,n){this.height!=e&&(this.height=e,this.dom.style.height=e/t.scaleY+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i/t.scaleY+"px":""),function(t,e){if(t.length!=e.length)return!1;for(let i=0;ikt(t,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(t,e){let i=Object.assign({},t);for(let t in e){let n=i[t],r=e[t];i[t]=n?(t,e,i)=>n(t,e,i)||r(t,e,i):r}return i}})});class ys extends os{constructor(t){super(),this.number=t}eq(t){return this.number==t.number}toDOM(){return document.createTextNode(this.number)}}function ks(t,e){return t.state.facet(vs).formatNumber(e,t.state)}const bs=ls.compute([vs],(t=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers:t=>t.state.facet(ws),lineMarker:(t,e,i)=>i.some((t=>t.toDOM))?null:new ys(ks(t,t.state.doc.lineAt(e.from).number)),widgetMarker:()=>null,lineMarkerChange:t=>t.startState.facet(vs)!=t.state.facet(vs),initialSpacer:t=>new ys(ks(t,xs(t.state.doc.lines))),updateSpacer(t,e){let i=ks(e.view,xs(e.view.state.doc.lines));return i==t.number?t:new ys(i)},domEventHandlers:t.facet(vs).domEventHandlers})));function xs(t){let e=9;for(;e{let{doc:r}=i.state,s=v(e[0],0);if(9==s){let t=r.lineAt(n),e=i.state.tabSize,s=zt(t.text,e,n-t.from);return Ge.replace({widget:new Zr((e-s%e)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=Ge.replace({widget:new Qr(t,s)}))},boundary:t.replaceTabs?void 0:/[^]/})}update(t){let e=t.state.facet(Yr);t.startState.facet(Yr)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(t.view)):this.decorations=this.decorator.updateDeco(t,this.decorations)}},{decorations:t=>t.decorations}))]}({render:function(e,i,n){i=t[e]||mw.msg("codemirror-control-character",e);var r=document.createElement("span");return r.className="cm-specialChar",160!==e&&8239!==e||(n="·",r.className="cm-special-char-nbsp"),r.textContent=n,r.title=i,r.setAttribute("aria-label",i),r},addSpecialChars:/\u00a0|\u202f/g})}},{key:"initialize",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.defaultExtensions;this.state=yt.create({doc:this.$textarea.textSelection("getContents"),extensions:e}),this.view=new Er({state:this.state,parent:this.$textarea.parent()[0]}),mw.user.options.get("usecodemirror-colorblind")&&"wikitext"===mw.config.get("wgPageContentModel")&&this.view.dom.classList.add("cm-mw-colorblind-colors"),this.$textarea.hide(),this.$textarea[0].form&&this.$textarea[0].form.addEventListener("submit",(function(){t.$textarea.val(t.view.state.doc.toString())})),$(this.view.dom).textSelection("register",this.cmTextSelection),this.$textarea.textSelection("register",this.cmTextSelection),mw.hook("ext.CodeMirror.switch").fire(!0,$(this.view.dom))}},{key:"logUsage",value:function(t){var e=Object.assign({session_token:mw.user.sessionId(),user_id:mw.user.getId()},t),i=mw.config.get("wgUserEditCountBucket");null!==i&&(e.user_edit_count_bucket=i),mw.track("event.CodeMirrorUsage",e)}},{key:"setCodeMirrorPreference",value:function(t){mw.user.isNamed()&&((new mw.Api).saveOption("usecodemirror",t?1:0),mw.user.options.set("usecodemirror",t?1:0))}},{key:"cmTextSelection",get:function(){var t=this,e=$(this.view.dom);return{getContents:function(){return t.view.state.doc.toString()},setContents:function(i){return t.view.dispatch({changes:{from:0,to:t.view.state.doc.length,insert:i}}),e},getSelection:function(){return t.view.state.sliceDoc(t.view.state.selection.main.from,t.view.state.selection.main.to)},setSelection:function(){var i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{start:0,end:0};return t.view.dispatch({selection:{anchor:i.start,head:i.end||i.start}}),t.view.focus(),e},replaceSelection:function(i){return t.view.dispatch(t.view.state.replaceSelection(i)),e},getCaretPosition:function(e){return e.startAndEnd?[t.view.state.selection.main.from,t.view.state.selection.main.to]:t.view.state.selection.main.head},scrollToCaretPosition:function(){return t.view.dispatch({effects:Er.scrollIntoView(t.view.state.selection.main.head)}),e}}}}],i&&As(e.prototype,i),Object.defineProperty(e,"prototype",{writable:!1}),t}();const Ts=1024;let Ds=0;class Os{constructor(t,e){this.from=t,this.to=e}}class Es{constructor(t={}){this.id=Ds++,this.perNode=!!t.perNode,this.deserialize=t.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(t){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return"function"!=typeof t&&(t=Ps.match(t)),e=>{let i=t(e);return void 0===i?null:[this,i]}}}Es.closedBy=new Es({deserialize:t=>t.split(" ")}),Es.openedBy=new Es({deserialize:t=>t.split(" ")}),Es.group=new Es({deserialize:t=>t.split(" ")}),Es.isolate=new Es({deserialize:t=>{if(t&&"rtl"!=t&&"ltr"!=t&&"auto"!=t)throw new RangeError("Invalid value for isolate: "+t);return t||"auto"}}),Es.contextHash=new Es({perNode:!0}),Es.lookAhead=new Es({perNode:!0}),Es.mounted=new Es({perNode:!0});class Ls{constructor(t,e,i){this.tree=t,this.overlay=e,this.parser=i}static get(t){return t&&t.props&&t.props[Es.mounted.id]}}const Bs=Object.create(null);class Ps{constructor(t,e,i,n=0){this.name=t,this.props=e,this.id=i,this.flags=n}static define(t){let e=t.props&&t.props.length?Object.create(null):Bs,i=(t.top?1:0)|(t.skipped?2:0)|(t.error?4:0)|(null==t.name?8:0),n=new Ps(t.name||"",e,t.id,i);if(t.props)for(let i of t.props)if(Array.isArray(i)||(i=i(n)),i){if(i[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");e[i[0].id]=i[1]}return n}prop(t){return this.props[t.id]}get isTop(){return(1&this.flags)>0}get isSkipped(){return(2&this.flags)>0}get isError(){return(4&this.flags)>0}get isAnonymous(){return(8&this.flags)>0}is(t){if("string"==typeof t){if(this.name==t)return!0;let e=this.prop(Es.group);return!!e&&e.indexOf(t)>-1}return this.id==t}static match(t){let e=Object.create(null);for(let i in t)for(let n of i.split(" "))e[n]=t[i];return t=>{for(let i=t.prop(Es.group),n=-1;n<(i?i.length:0);n++){let r=e[n<0?t.name:i[n]];if(r)return r}}}}Ps.none=new Ps("",Object.create(null),0,8);class Ns{constructor(t){this.types=t;for(let e=0;e=e){let o=new qs(s.tree,s.overlay[0].from+t.from,-1,t);(r||(r=[n])).push(_s(o,e,i,!1))}}return r?Js(r):n}(this,t,e)}iterate(t){let{enter:e,leave:i,from:n=0,to:r=this.length}=t,s=t.mode||0,o=(s&zs.IncludeAnonymous)>0;for(let t=this.cursor(s|zs.IncludeAnonymous);;){let s=!1;if(t.from<=r&&t.to>=n&&(!o&&t.type.isAnonymous||!1!==e(t))){if(t.firstChild())continue;s=!0}for(;s&&i&&(o||!t.type.isAnonymous)&&i(t),!t.nextSibling();){if(!t.parent())return;s=!0}}}prop(t){return t.perNode?this.props?this.props[t.id]:void 0:this.type.prop(t)}get propValues(){let t=[];if(this.props)for(let e in this.props)t.push([+e,this.props[e]]);return t}balance(t={}){return this.children.length<=8?this:eo(Ps.none,this.children,this.positions,0,this.children.length,0,this.length,((t,e,i)=>new Hs(this.type,t,e,i,this.propValues)),t.makeTree||((t,e,i)=>new Hs(Ps.none,t,e,i)))}static build(t){return function(t){var e;let{buffer:i,nodeSet:n,maxBufferLength:r=Ts,reused:s=[],minRepeatType:o=n.types.length}=t,a=Array.isArray(i)?new Ws(i,i.length):i,l=n.types,h=0,c=0;function u(t,e,i,m,w,v){let{id:y,start:k,end:b,size:x}=a,S=c;for(;x<0;){if(a.next(),-1==x){let e=s[y];return i.push(e),void m.push(k-t)}if(-3==x)return void(h=y);if(-4==x)return void(c=y);throw new RangeError(`Unrecognized record size: ${x}`)}let A,M,C=l[y],T=k-t;if(b-k<=r&&(M=function(t,e){let i=a.fork(),n=0,s=0,l=0,h=i.end-r,c={size:0,start:0,skip:0};t:for(let r=i.pos-t;i.pos>r;){let t=i.size;if(i.id==e&&t>=0){c.size=n,c.start=s,c.skip=l,l+=4,n+=4,i.next();continue}let a=i.pos-t;if(t<0||a=o?4:0,f=i.start;for(i.next();i.pos>a;){if(i.size<0){if(-3!=i.size)break t;u+=4}else i.id>=o&&(u+=4);i.next()}s=f,n+=t,l+=u}return(e<0||n==t)&&(c.size=n,c.start=s,c.skip=l),c.size>4?c:void 0}(a.pos-e,w))){let e=new Uint16Array(M.size-M.skip),i=a.pos-M.size,r=e.length;for(;a.pos>i;)r=g(M.start,e,r);A=new Vs(e,b-M.start,n),T=M.start-t}else{let t=a.pos-x;a.next();let e=[],i=[],n=y>=o?y:-1,s=0,l=b;for(;a.pos>t;)n>=0&&a.id==n&&a.size>=0?(a.end<=l-r&&(d(e,i,k,s,a.end,l,n,S),s=e.length,l=a.end),a.next()):v>2500?f(k,t,e,i):u(k,t,e,i,n,v+1);if(n>=0&&s>0&&s-1&&s>0){let t=function(t){return(e,i,n)=>{let r,s,o=0,a=e.length-1;if(a>=0&&(r=e[a])instanceof Hs){if(!a&&r.type==t&&r.length==n)return r;(s=r.prop(Es.lookAhead))&&(o=i[a]+r.length+s)}return p(t,e,i,n,o)}}(C);A=eo(C,e,i,0,e.length,0,b-k,t,t)}else A=p(C,e,i,b-k,S-b)}i.push(A),m.push(T)}function f(t,e,i,s){let o=[],l=0,h=-1;for(;a.pos>e;){let{id:t,start:e,end:i,size:n}=a;if(n>4)a.next();else{if(h>-1&&e=0;t-=3)e[i++]=o[t],e[i++]=o[t+1]-r,e[i++]=o[t+2]-r,e[i++]=i;i.push(new Vs(e,o[2]-r,n)),s.push(r-t)}}function d(t,e,i,r,s,o,a,l){let h=[],c=[];for(;t.length>r;)h.push(t.pop()),c.push(e.pop()+i-s);t.push(p(n.types[a],h,c,o-s,l-o)),e.push(s-i)}function p(t,e,i,n,r=0,s){if(h){let t=[Es.contextHash,h];s=s?[t].concat(s):[t]}if(r>25){let t=[Es.lookAhead,r];s=s?[t].concat(s):[t]}return new Hs(t,e,i,n,s)}function g(t,e,i){let{id:n,start:r,end:s,size:l}=a;if(a.next(),l>=0&&n4){let n=a.pos-(l-4);for(;a.pos>n;)i=g(t,e,i)}e[--i]=o,e[--i]=s-t,e[--i]=r-t,e[--i]=n}else-3==l?h=n:-4==l&&(c=n);return i}let m=[],w=[];for(;a.pos>0;)u(t.start||0,t.bufferStart||0,m,w,-1,0);let v=null!==(e=t.length)&&void 0!==e?e:m.length?w[0]+m[0].length:0;return new Hs(l[t.topID],m.reverse(),w.reverse(),v)}(t)}}Hs.empty=new Hs(Ps.none,[],[],0);class Ws{constructor(t,e){this.buffer=t,this.index=e}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new Ws(this.buffer,this.index)}}class Vs{constructor(t,e,i){this.buffer=t,this.length=e,this.set=i}get type(){return Ps.none}toString(){let t=[];for(let e=0;e0));a=s[a+3]);return o}slice(t,e,i){let n=this.buffer,r=new Uint16Array(e-t),s=0;for(let o=t,a=0;o=e&&ie;case 1:return i<=e&&n>e;case 2:return n>e;case 4:return!0}}function _s(t,e,i,n){for(var r;t.from==t.to||(i<1?t.from>=e:t.from>e)||(i>-1?t.to<=e:t.to0?o.length:-1;t!=l;t+=e){let l=o[t],h=a[t]+s.from;if(Fs(n,i,h,h+l.length))if(l instanceof Vs){if(r&zs.ExcludeBuffers)continue;let o=l.findChild(0,l.buffer.length,e,i-h,n);if(o>-1)return new Us(new Gs(s,l,t,h),null,o)}else if(r&zs.IncludeAnonymous||!l.type.isAnonymous||Qs(l)){let o;if(!(r&zs.IgnoreMounts)&&(o=Ls.get(l))&&!o.overlay)return new qs(o.tree,h,t,s);let a=new qs(l,h,t,s);return r&zs.IncludeAnonymous||!a.type.isAnonymous?a:a.nextChild(e<0?l.children.length-1:0,e,i,n)}}if(r&zs.IncludeAnonymous||!s.type.isAnonymous)return null;if(t=s.index>=0?s.index+e:e<0?-1:s._parent._tree.children.length,s=s._parent,!s)return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(t){return this.nextChild(0,1,t,2)}childBefore(t){return this.nextChild(this._tree.children.length-1,-1,t,-2)}enter(t,e,i=0){let n;if(!(i&zs.IgnoreOverlays)&&(n=Ls.get(this._tree))&&n.overlay){let i=t-this.from;for(let{from:t,to:r}of n.overlay)if((e>0?t<=i:t=i:r>i))return new qs(n.tree,n.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,t,e,i)}nextSignificantParent(){let t=this;for(;t.type.isAnonymous&&t._parent;)t=t._parent;return t}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function $s(t,e,i,n){let r=t.cursor(),s=[];if(!r.firstChild())return s;if(null!=i)for(;!r.type.is(i);)if(!r.nextSibling())return s;for(;;){if(null!=n&&r.type.is(n))return s;if(r.type.is(e)&&s.push(r.node),!r.nextSibling())return null==n?s:[]}}function Ks(t,e,i=e.length-1){for(let n=t.parent;i>=0;n=n.parent){if(!n)return!1;if(!n.type.isAnonymous){if(e[i]&&e[i]!=n.name)return!1;i--}}return!0}class Gs{constructor(t,e,i,n){this.parent=t,this.buffer=e,this.index=i,this.start=n}}class Us extends js{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(t,e,i){super(),this.context=t,this._parent=e,this.index=i,this.type=t.buffer.set.types[t.buffer.buffer[i]]}child(t,e,i){let{buffer:n}=this.context,r=n.findChild(this.index+4,n.buffer[this.index+3],t,e-this.context.start,i);return r<0?null:new Us(this.context,this,r)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(t){return this.child(1,t,2)}childBefore(t){return this.child(-1,t,-2)}enter(t,e,i=0){if(i&zs.ExcludeBuffers)return null;let{buffer:n}=this.context,r=n.findChild(this.index+4,n.buffer[this.index+3],e>0?1:-1,t-this.context.start,e);return r<0?null:new Us(this.context,this,r)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(t){return this._parent?null:this.context.parent.nextChild(this.context.index+t,t,0,4)}get nextSibling(){let{buffer:t}=this.context,e=t.buffer[this.index+3];return e<(this._parent?t.buffer[this._parent.index+3]:t.buffer.length)?new Us(this.context,this._parent,e):this.externalSibling(1)}get prevSibling(){let{buffer:t}=this.context,e=this._parent?this._parent.index+4:0;return this.index==e?this.externalSibling(-1):new Us(this.context,this._parent,t.findChild(e,this.index,-1,0,4))}get tree(){return null}toTree(){let t=[],e=[],{buffer:i}=this.context,n=this.index+4,r=i.buffer[this.index+3];if(r>n){let s=i.buffer[this.index+1];t.push(i.slice(n,r,s)),e.push(0)}return new Hs(this.type,t,e,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function Js(t){if(!t.length)return null;let e=0,i=t[0];for(let n=1;ni.from||r.to0){if(this.index-1)for(let n=e+t,r=t<0?-1:i._tree.children.length;n!=r;n+=t){let t=i._tree.children[n];if(this.mode&zs.IncludeAnonymous||t instanceof Vs||!t.type.isAnonymous||Qs(t))return!1}return!0}move(t,e){if(e&&this.enterChild(t,0,4))return!0;for(;;){if(this.sibling(t))return!0;if(this.atLastNode(t)||!this.parent())return!1}}next(t=!0){return this.move(1,t)}prev(t=!0){return this.move(-1,t)}moveTo(t,e=0){for(;(this.from==this.to||(e<1?this.from>=t:this.from>t)||(e>-1?this.to<=t:this.to=0;){for(let s=t;s;s=s._parent)if(s.index==n){if(n==this.index)return s;e=s,i=r+1;break t}n=this.stack[--r]}for(let t=i;t=0;r--){if(r<0)return Ks(this.node,t,n);let s=i[e.buffer[this.stack[r]]];if(!s.isAnonymous){if(t[n]&&t[n]!=s.name)return!1;n--}}return!0}}function Qs(t){return t.children.some((t=>t instanceof Vs||!t.type.isAnonymous||Qs(t)))}const Zs=new WeakMap;function to(t,e){if(!t.isAnonymous||e instanceof Vs||e.type!=t)return 1;let i=Zs.get(e);if(null==i){i=1;for(let n of e.children){if(n.type!=t||!(n instanceof Hs)){i=1;break}i+=to(t,n)}Zs.set(e,i)}return i}function eo(t,e,i,n,r,s,o,a,l){let h=0;for(let i=n;i=c)break;p+=e}if(h==r+1){if(p>c){let t=i[r];e(t.children,t.positions,0,t.children.length,n[r]+a);continue}u.push(i[r])}else{let e=n[h-1]+i[h-1].length-d;u.push(eo(t,i,n,r,h,d,e,null,l))}f.push(d+a-s)}}(e,i,n,r,0),(a||l)(u,f,o)}class io{constructor(t,e,i,n,r=!1,s=!1){this.from=t,this.to=e,this.tree=i,this.offset=n,this.open=(r?1:0)|(s?2:0)}get openStart(){return(1&this.open)>0}get openEnd(){return(2&this.open)>0}static addTree(t,e=[],i=!1){let n=[new io(0,t.length,t,0,!1,i)];for(let i of e)i.to>t.length&&n.push(i);return n}static applyChanges(t,e,i=128){if(!e.length)return t;let n=[],r=1,s=t.length?t[0]:null;for(let o=0,a=0,l=0;;o++){let h=o=i)for(;s&&s.from=e.from||c<=e.to||l){let t=Math.max(e.from,a)-l,i=Math.min(e.to,c)-l;e=t>=i?null:new io(t,i,e.tree,e.offset+l,o>0,!!h)}if(e&&n.push(e),s.to>c)break;s=rnew Os(t.from,t.to))):[new Os(0,0)]:[new Os(0,t.length)],this.createParse(t,e||[],i)}parse(t,e,i){let n=this.startParse(t,e,i);for(;;){let t=n.advance();if(t)return t}}}class ro{constructor(t){this.string=t}get length(){return this.string.length}chunk(t){return this.string.slice(t)}get lineChunks(){return!1}read(t,e){return this.string.slice(t,e)}}new Es({perNode:!0});let so=0;class oo{constructor(t,e,i){this.set=t,this.base=e,this.modified=i,this.id=so++}static define(t){if(null==t?void 0:t.base)throw new Error("Can not derive from a modified tag");let e=new oo([],null,[]);if(e.set.push(e),t)for(let i of t.set)e.set.push(i);return e}static defineModifier(){let t=new lo;return e=>e.modified.indexOf(t)>-1?e:lo.get(e.base||e,e.modified.concat(t).sort(((t,e)=>t.id-e.id)))}}let ao=0;class lo{constructor(){this.instances=[],this.id=ao++}static get(t,e){if(!e.length)return t;let i=e[0].instances.find((i=>{return i.base==t&&(n=e,r=i.modified,n.length==r.length&&n.every(((t,e)=>t==r[e])));var n,r}));if(i)return i;let n=[],r=new oo(n,t,e);for(let t of e)t.instances.push(r);let s=function(t){let e=[[]];for(let i=0;ie.length-t.length))}(e);for(let e of t.set)if(!e.modified.length)for(let t of s)n.push(lo.get(e,t));return r}}function ho(t){let e=Object.create(null);for(let i in t){let n=t[i];Array.isArray(n)||(n=[n]);for(let t of i.split(" "))if(t){let i=[],r=2,s=t;for(let e=0;;){if("..."==s&&e>0&&e+3==t.length){r=1;break}let n=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(s);if(!n)throw new RangeError("Invalid path: "+t);if(i.push("*"==n[0]?"":'"'==n[0][0]?JSON.parse(n[0]):n[0]),e+=n[0].length,e==t.length)break;let o=t[e++];if(e==t.length&&"!"==o){r=0;break}if("/"!=o)throw new RangeError("Invalid path: "+t);s=t.slice(e)}let o=i.length-1,a=i[o];if(!a)throw new RangeError("Invalid path: "+t);let l=new uo(n,r,o>0?i.slice(0,o):null);e[a]=l.sort(e[a])}}return co.add(e)}const co=new Es;class uo{constructor(t,e,i,n){this.tags=t,this.mode=e,this.context=i,this.next=n}get opaque(){return 0==this.mode}get inherit(){return 1==this.mode}sort(t){return!t||t.depth{let e=r;for(let n of t)for(let t of n.set){let n=i[t.id];if(n){e=e?e+" "+n:n;break}}return e},scope:n}}function po(t,e,i,n=0,r=t.length){let s=new go(n,Array.isArray(e)?e:[e],i);s.highlightRange(t.cursor(),n,r,"",s.highlighters),s.flush(r)}uo.empty=new uo([],2,null);class go{constructor(t,e,i){this.at=t,this.highlighters=e,this.span=i,this.class=""}startSpan(t,e){e!=this.class&&(this.flush(t),t>this.at&&(this.at=t),this.class=e)}flush(t){t>this.at&&this.class&&this.span(this.at,t,this.class)}highlightRange(t,e,i,n,r){let{type:s,from:o,to:a}=t;if(o>=i||a<=e)return;s.isTop&&(r=this.highlighters.filter((t=>!t.scope||t.scope(s))));let l=n,h=function(t){let e=t.type.prop(co);for(;e&&e.context&&!t.matchContext(e.context);)e=e.next;return e||null}(t)||uo.empty,c=function(t,e){let i=null;for(let n of t){let t=n.style(e);t&&(i=i?i+" "+t:t)}return i}(r,h.tags);if(c&&(l&&(l+=" "),l+=c,1==h.mode&&(n+=(n?" ":"")+c)),this.startSpan(Math.max(e,o),l),h.opaque)return;let u=t.tree&&t.tree.prop(Es.mounted);if(u&&u.overlay){let s=t.node.enter(u.overlay[0].from+o,1),h=this.highlighters.filter((t=>!t.scope||t.scope(u.tree.type))),c=t.firstChild();for(let f=0,d=o;;f++){let p=f=g)&&t.nextSibling()););if(!p||g>i)break;d=p.to+o,d>e&&(this.highlightRange(s.cursor(),Math.max(e,p.from+o),Math.min(i,d),"",h),this.startSpan(Math.min(i,d),l))}c&&t.parent()}else if(t.firstChild()){u&&(n="");do{if(!(t.to<=e)){if(t.from>=i)break;this.highlightRange(t,e,i,n,r),this.startSpan(Math.min(i,t.to),l)}}while(t.nextSibling());t.parent()}}}const mo=oo.define,wo=mo(),vo=mo(),yo=mo(vo),ko=mo(vo),bo=mo(),xo=mo(bo),So=mo(bo),Ao=mo(),Mo=mo(Ao),Co=mo(),To=mo(),Do=mo(),Oo=mo(Do),Eo=mo(),Lo={comment:wo,lineComment:mo(wo),blockComment:mo(wo),docComment:mo(wo),name:vo,variableName:mo(vo),typeName:yo,tagName:mo(yo),propertyName:ko,attributeName:mo(ko),className:mo(vo),labelName:mo(vo),namespace:mo(vo),macroName:mo(vo),literal:bo,string:xo,docString:mo(xo),character:mo(xo),attributeValue:mo(xo),number:So,integer:mo(So),float:mo(So),bool:mo(bo),regexp:mo(bo),escape:mo(bo),color:mo(bo),url:mo(bo),keyword:Co,self:mo(Co),null:mo(Co),atom:mo(Co),unit:mo(Co),modifier:mo(Co),operatorKeyword:mo(Co),controlKeyword:mo(Co),definitionKeyword:mo(Co),moduleKeyword:mo(Co),operator:To,derefOperator:mo(To),arithmeticOperator:mo(To),logicOperator:mo(To),bitwiseOperator:mo(To),compareOperator:mo(To),updateOperator:mo(To),definitionOperator:mo(To),typeOperator:mo(To),controlOperator:mo(To),punctuation:Do,separator:mo(Do),bracket:Oo,angleBracket:mo(Oo),squareBracket:mo(Oo),paren:mo(Oo),brace:mo(Oo),content:Ao,heading:Mo,heading1:mo(Mo),heading2:mo(Mo),heading3:mo(Mo),heading4:mo(Mo),heading5:mo(Mo),heading6:mo(Mo),contentSeparator:mo(Ao),list:mo(Ao),quote:mo(Ao),emphasis:mo(Ao),strong:mo(Ao),link:mo(Ao),monospace:mo(Ao),strikethrough:mo(Ao),inserted:mo(),deleted:mo(),changed:mo(),invalid:mo(),meta:Eo,documentMeta:mo(Eo),annotation:mo(Eo),processingInstruction:mo(Eo),definition:oo.defineModifier(),constant:oo.defineModifier(),function:oo.defineModifier(),standard:oo.defineModifier(),local:oo.defineModifier(),special:oo.defineModifier()};var Bo;fo([{tag:Lo.link,class:"tok-link"},{tag:Lo.heading,class:"tok-heading"},{tag:Lo.emphasis,class:"tok-emphasis"},{tag:Lo.strong,class:"tok-strong"},{tag:Lo.keyword,class:"tok-keyword"},{tag:Lo.atom,class:"tok-atom"},{tag:Lo.bool,class:"tok-bool"},{tag:Lo.url,class:"tok-url"},{tag:Lo.labelName,class:"tok-labelName"},{tag:Lo.inserted,class:"tok-inserted"},{tag:Lo.deleted,class:"tok-deleted"},{tag:Lo.literal,class:"tok-literal"},{tag:Lo.string,class:"tok-string"},{tag:Lo.number,class:"tok-number"},{tag:[Lo.regexp,Lo.escape,Lo.special(Lo.string)],class:"tok-string2"},{tag:Lo.variableName,class:"tok-variableName"},{tag:Lo.local(Lo.variableName),class:"tok-variableName tok-local"},{tag:Lo.definition(Lo.variableName),class:"tok-variableName tok-definition"},{tag:Lo.special(Lo.variableName),class:"tok-variableName2"},{tag:Lo.definition(Lo.propertyName),class:"tok-propertyName tok-definition"},{tag:Lo.typeName,class:"tok-typeName"},{tag:Lo.namespace,class:"tok-namespace"},{tag:Lo.className,class:"tok-className"},{tag:Lo.macroName,class:"tok-macroName"},{tag:Lo.propertyName,class:"tok-propertyName"},{tag:Lo.operator,class:"tok-operator"},{tag:Lo.comment,class:"tok-comment"},{tag:Lo.meta,class:"tok-meta"},{tag:Lo.invalid,class:"tok-invalid"},{tag:Lo.punctuation,class:"tok-punctuation"}]);const Po=new Es;const No=new Es;class Ro{constructor(t,e,i=[],n=""){this.data=t,this.name=n,yt.prototype.hasOwnProperty("tree")||Object.defineProperty(yt.prototype,"tree",{get(){return zo(this)}}),this.parser=e,this.extension=[Ko.of(this),yt.languageData.of(((t,e,i)=>{let n=Io(t,e,i),r=n.type.prop(Po);if(!r)return[];let s=t.facet(r),o=n.type.prop(No);if(o){let r=n.resolve(e-n.from,i);for(let e of o)if(e.test(r,t)){let i=t.facet(e.facet);return"replace"==e.type?i:i.concat(s)}}return s}))].concat(i)}isActiveAt(t,e,i=-1){return Io(t,e,i).type.prop(Po)==this.data}findRegions(t){let e=t.facet(Ko);if((null==e?void 0:e.data)==this.data)return[{from:0,to:t.doc.length}];if(!e||!e.allowsNesting)return[];let i=[],n=(t,e)=>{if(t.prop(Po)==this.data)return void i.push({from:e,to:e+t.length});let r=t.prop(Es.mounted);if(r){if(r.tree.prop(Po)==this.data){if(r.overlay)for(let t of r.overlay)i.push({from:t.from+e,to:t.to+e});else i.push({from:e,to:e+t.length});return}if(r.overlay){let t=i.length;if(n(r.tree,r.overlay[0].from+e),i.length>t)return}}for(let i=0;i=this.cursorPos?this.doc.sliceString(t,e):this.string.slice(t-i,e-i)}}let Wo=null;class Vo{constructor(t,e,i=[],n,r,s,o,a){this.parser=t,this.state=e,this.fragments=i,this.tree=n,this.treeLen=r,this.viewport=s,this.skipped=o,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(t,e,i){return new Vo(t,e,[],Hs.empty,0,i,[],null)}startParse(){return this.parser.startParse(new Ho(this.state.doc),this.fragments)}work(t,e){return null!=e&&e>=this.state.doc.length&&(e=void 0),this.tree!=Hs.empty&&this.isDone(null!=e?e:this.state.doc.length)?(this.takeTree(),!0):this.withContext((()=>{var i;if("number"==typeof t){let e=Date.now()+t;t=()=>Date.now()>e}for(this.parse||(this.parse=this.startParse()),null!=e&&(null==this.parse.stoppedAt||this.parse.stoppedAt>e)&&e=this.treeLen&&((null==this.parse.stoppedAt||this.parse.stoppedAt>t)&&this.parse.stopAt(t),this.withContext((()=>{for(;!(e=this.parse.advance()););})),this.treeLen=t,this.tree=e,this.fragments=this.withoutTempSkipped(io.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(t){let e=Wo;Wo=this;try{return t()}finally{Wo=e}}withoutTempSkipped(t){for(let e;e=this.tempSkipped.pop();)t=Fo(t,e.from,e.to);return t}changes(t,e){let{fragments:i,tree:n,treeLen:r,viewport:s,skipped:o}=this;if(this.takeTree(),!t.empty){let e=[];if(t.iterChangedRanges(((t,i,n,r)=>e.push({fromA:t,toA:i,fromB:n,toB:r}))),i=io.applyChanges(i,e),n=Hs.empty,r=0,s={from:t.mapPos(s.from,-1),to:t.mapPos(s.to,1)},this.skipped.length){o=[];for(let e of this.skipped){let i=t.mapPos(e.from,1),n=t.mapPos(e.to,-1);it.from&&(this.fragments=Fo(this.fragments,i,n),this.skipped.splice(e--,1))}return!(this.skipped.length>=e||(this.reset(),0))}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(t,e){this.skipped.push({from:t,to:e})}static getSkippingParser(t){return new class extends no{createParse(e,i,n){let r=n[0].from,s=n[n.length-1].to;return{parsedPos:r,advance(){let e=Wo;if(e){for(let t of n)e.tempSkipped.push(t);t&&(e.scheduleOn=e.scheduleOn?Promise.all([e.scheduleOn,t]):t)}return this.parsedPos=s,new Hs(Ps.none,[],[],s-r)},stoppedAt:null,stopAt(){}}}}}isDone(t){t=Math.min(t,this.state.doc.length);let e=this.fragments;return this.treeLen>=t&&e.length&&0==e[0].from&&e[0].to>=t}static get(){return Wo}}function Fo(t,e,i){return io.applyChanges(t,[{fromA:e,toA:i,fromB:e,toB:i}])}class _o{constructor(t){this.context=t,this.tree=t.tree}apply(t){if(!t.docChanged&&this.tree==this.context.tree)return this;let e=this.context.changes(t.changes,t.state),i=this.context.treeLen==t.startState.doc.length?void 0:Math.max(t.changes.mapPos(this.context.treeLen),e.viewport.to);return e.work(20,i)||e.takeTree(),new _o(e)}static init(t){let e=Math.min(3e3,t.doc.length),i=Vo.create(t.facet(Ko).parser,t,{from:0,to:e});return i.work(20,e)||i.takeTree(),new _o(i)}}Ro.state=_.define({create:_o.init,update(t,e){for(let t of e.effects)if(t.is(Ro.setState))return t.value;return e.startState.facet(Ko)!=e.state.facet(Ko)?_o.init(e.state):t.apply(e)}});let jo=t=>{let e=setTimeout((()=>t()),500);return()=>clearTimeout(e)};"undefined"!=typeof requestIdleCallback&&(jo=t=>{let e=-1,i=setTimeout((()=>{e=requestIdleCallback(t,{timeout:400})}),100);return()=>e<0?clearTimeout(i):cancelIdleCallback(e)});const qo="undefined"!=typeof navigator&&(null===(Bo=navigator.scheduling)||void 0===Bo?void 0:Bo.isInputPending)?()=>navigator.scheduling.isInputPending():null,$o=yi.fromClass(class{constructor(t){this.view=t,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(t){let e=this.view.state.field(Ro.state).context;(e.updateViewport(t.view.viewport)||this.view.viewport.to>e.treeLen)&&this.scheduleWork(),(t.docChanged||t.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(e)}scheduleWork(){if(this.working)return;let{state:t}=this.view,e=t.field(Ro.state);e.tree==e.context.tree&&e.context.isDone(t.doc.length)||(this.working=jo(this.work))}work(t){this.working=null;let e=Date.now();if(this.chunkEndn+1e3,a=r.context.work((()=>qo&&qo()||Date.now()>s),n+(o?0:1e5));this.chunkBudget-=Date.now()-e,(a||this.chunkBudget<=0)&&(r.context.takeTree(),this.view.dispatch({effects:Ro.setState.of(new _o(r.context))})),this.chunkBudget>0&&(!a||o)&&this.scheduleWork(),this.checkAsyncSchedule(r.context)}checkAsyncSchedule(t){t.scheduleOn&&(this.workScheduled++,t.scheduleOn.then((()=>this.scheduleWork())).catch((t=>gi(this.view.state,t))).then((()=>this.workScheduled--)),t.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),Ko=R.define({combine:t=>t.length?t[0]:null,enables:t=>[Ro.state,$o,Er.contentAttributes.compute([t],(e=>{let i=e.facet(t);return i&&i.name?{"data-language":i.name}:{}}))]});class Go{constructor(t,e=[]){this.language=t,this.support=e,this.extension=[t,e]}}const Uo=R.define(),Jo=R.define({combine:t=>{if(!t.length)return" ";let e=t[0];if(!e||/\S/.test(e)||Array.from(e).some((t=>t!=e[0])))throw new Error("Invalid indent unit: "+JSON.stringify(t[0]));return e}});function Yo(t){let e=t.facet(Jo);return 9==e.charCodeAt(0)?t.tabSize*e.length:e.length}function Xo(t,e){let i="",n=t.tabSize,r=t.facet(Jo)[0];if("\t"==r){for(;e>=n;)i+="\t",e-=n;r=" "}for(let t=0;t=e?function(t,e,i){let n=e.resolveStack(i),r=n.node.enterUnfinishedNodesBefore(i);if(r!=n.node){let t=[];for(let e=r;e!=n.node;e=e.parent)t.push(e);for(let e=t.length-1;e>=0;e--)n={node:t[e],next:n}}return ea(n,t,i)}(t,i,e):null}class Zo{constructor(t,e={}){this.state=t,this.options=e,this.unit=Yo(t)}lineAt(t,e=1){let i=this.state.doc.lineAt(t),{simulateBreak:n,simulateDoubleBreak:r}=this.options;return null!=n&&n>=i.from&&n<=i.to?r&&n==t?{text:"",from:t}:(e<0?n-1&&(r+=s-this.countColumn(i,i.search(/\S|$/))),r}countColumn(t,e=t.length){return zt(t,this.state.tabSize,e)}lineIndent(t,e=1){let{text:i,from:n}=this.lineAt(t,e),r=this.options.overrideIndentation;if(r){let t=r(n);if(t>-1)return t}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const ta=new Es;function ea(t,e,i){for(let n=t;n;n=n.next){let t=ia(n.node);if(t)return t(ra.create(e,i,n))}return 0}function ia(t){let e=t.type.prop(ta);if(e)return e;let i,n=t.firstChild;if(n&&(i=n.type.prop(Es.closedBy))){let e=t.lastChild,n=e&&i.indexOf(e.name)>-1;return t=>function(t,e,i,n,r){let s=t.textAfter,o=s.match(/^\s*/)[0].length,a=n&&s.slice(o,o+n.length)==n||r==t.pos+o,l=e?function(t){let e=t.node,i=e.childAfter(e.from),n=e.lastChild;if(!i)return null;let r=t.options.simulateBreak,s=t.state.doc.lineAt(i.from),o=null==r||r<=s.from?s.to:Math.min(s.to,r);for(let t=i.to;;){let r=e.childAfter(t);if(!r||r==n)return null;if(!r.type.isSkipped)return r.fromt.prop(Po)==s.data:s?t=>t==s:void 0,this.style=fo(t.map((t=>({tag:t.tag,class:t.class||n(Object.assign({},t,{tag:null}))}))),{all:r}).style,this.module=i?new Ft(i):null,this.themeType=e.themeType}static define(t,e){return new oa(t,e||{})}}const aa=R.define(),la=R.define({combine:t=>t.length?[t[0]]:null});function ha(t){let e=t.facet(aa);return e.length?e:t.facet(la)}class ca{constructor(t){this.markCache=Object.create(null),this.tree=zo(t.state),this.decorations=this.buildDeco(t,ha(t.state))}update(t){let e=zo(t.state),i=ha(t.state),n=i!=ha(t.startState);e.length{i.add(t,e,this.markCache[n]||(this.markCache[n]=Ge.mark({class:n})))}),n,r);return i.finish()}}const ua=q.high(yi.fromClass(ca,{decorations:t=>t.decorations})),fa=(Lo.meta,Lo.link,Lo.heading,Lo.emphasis,Lo.strong,Lo.strikethrough,Lo.keyword,Lo.atom,Lo.bool,Lo.url,Lo.contentSeparator,Lo.labelName,Lo.literal,Lo.inserted,Lo.string,Lo.deleted,Lo.regexp,Lo.escape,Lo.string,Lo.variableName,Lo.variableName,Lo.typeName,Lo.namespace,Lo.className,Lo.variableName,Lo.macroName,Lo.propertyName,Lo.comment,Lo.invalid,Er.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}})),da=1e4,pa="()[]{}",ga=R.define({combine:t=>kt(t,{afterCursor:!0,brackets:pa,maxScanDistance:da,renderMatch:va})}),ma=Ge.mark({class:"cm-matchingBracket"}),wa=Ge.mark({class:"cm-nonmatchingBracket"});function va(t){let e=[],i=t.matched?ma:wa;return e.push(i.range(t.start.from,t.start.to)),t.end&&e.push(i.range(t.end.from,t.end.to)),e}const ya=_.define({create:()=>Ge.none,update(t,e){if(!e.docChanged&&!e.selection)return t;let i=[],n=e.state.facet(ga);for(let t of e.state.selection.ranges){if(!t.empty)continue;let r=Ma(e.state,t.head,-1,n)||t.head>0&&Ma(e.state,t.head-1,1,n)||n.afterCursor&&(Ma(e.state,t.head,1,n)||t.headEr.decorations.from(t)}),ka=[ya,fa];function ba(t={}){return[ga.of(t),ka]}const xa=new Es;function Sa(t,e,i){let n=t.prop(e<0?Es.openedBy:Es.closedBy);if(n)return n;if(1==t.name.length){let n=i.indexOf(t.name);if(n>-1&&n%2==(e<0?1:0))return[i[n+e]]}return null}function Aa(t){let e=t.type.prop(xa);return e?e(t.node):t}function Ma(t,e,i,n={}){let r=n.maxScanDistance||da,s=n.brackets||pa,o=zo(t),a=o.resolveInner(e,i);for(let t=a;t;t=t.parent){let n=Sa(t.type,i,s);if(n&&t.from0?e>=r.from&&er.from&&e<=r.to))return Ca(0,0,i,t,r,n,s)}}return function(t,e,i,n,r,s,o){let a=i<0?t.sliceDoc(e-1,e):t.sliceDoc(e,e+1),l=o.indexOf(a);if(l<0||l%2==0!=i>0)return null;let h={from:i<0?e-1:e,to:i>0?e+1:e},c=t.doc.iterRange(e,i>0?t.doc.length:0),u=0;for(let t=0;!c.next().done&&t<=s;){let s=c.value;i<0&&(t+=s.length);let a=e+t*i;for(let t=i>0?0:s.length-1,e=i>0?s.length:-1;t!=e;t+=i){let e=o.indexOf(s[t]);if(!(e<0||n.resolveInner(a+t,1).type!=r))if(e%2==0==i>0)u++;else{if(1==u)return{start:h,end:{from:a+t,to:a+t+1},matched:e>>1==l>>1};u--}}i>0&&(t+=s.length)}return c.done?{start:h,matched:!1}:null}(t,e,i,o,a.type,r,s)}function Ca(t,e,i,n,r,s,o){let a=n.parent,l={from:r.from,to:r.to},h=0,c=null==a?void 0:a.cursor();if(c&&(i<0?c.childBefore(n.from):c.childAfter(n.to)))do{if(i<0?c.to<=n.from:c.from>=n.to){if(0==h&&s.indexOf(c.type.name)>-1&&c.from=this.string.length}sol(){return 0==this.pos}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.pose}eatSpace(){let t=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>t}skipToEnd(){this.pos=this.string.length}skipTo(t){let e=this.string.indexOf(t,this.pos);if(e>-1)return this.pos=e,!0}backUp(t){this.pos-=t}column(){return this.lastColumnPosi?t.toLowerCase():t;return n(this.string.substr(this.pos,t.length))==n(t)?(!1!==e&&(this.pos+=t.length),!0):null}{let i=this.string.slice(this.pos).match(t);return i&&i.index>0?null:(i&&!1!==e&&(this.pos+=i[0].length),i)}}current(){return this.string.slice(this.start,this.pos)}}function Oa(t){if("object"!=typeof t)return t;let e={};for(let i in t){let n=t[i];e[i]=n instanceof Array?n.slice():n}return e}const Ea=new WeakMap;class La extends Ro{constructor(t){let e,i=(r=t.languageData,R.define({combine:r?t=>t.concat(r):void 0})),n={name:(s=t).name||"",token:s.token,blankLine:s.blankLine||(()=>{}),startState:s.startState||(()=>!0),copyState:s.copyState||Oa,indent:s.indent||(()=>null),languageData:s.languageData||{},tokenTable:s.tokenTable||Ia};var r,s;super(i,new class extends no{createParse(t,i,n){return new Na(e,t,i,n)}},[Uo.of(((t,e)=>this.getIndent(t,e)))],t.name),this.topNode=function(t){let e=Ps.define({id:za.length,name:"Document",props:[Po.add((()=>t))],top:!0});return za.push(e),e}(i),e=this,this.streamParser=n,this.stateAfter=new Es({perNode:!0}),this.tokenTable=t.tokenTable?new _a(n.tokenTable):ja}static define(t){return new La(t)}getIndent(t,e){let i,n=zo(t.state),r=n.resolve(e);for(;r&&r.type!=this.topNode;)r=r.parent;if(!r)return null;let{overrideIndentation:s}=t.options;s&&(i=Ea.get(t.state),null!=i&&i1e4)return null;for(;o=n&&i+e.length<=r&&e.prop(t.stateAfter);if(s)return{state:t.streamParser.copyState(s),pos:i+e.length};for(let s=e.children.length-1;s>=0;s--){let o=e.children[s],a=i+e.positions[s],l=o instanceof Hs&&a=e.length)return e;r||e.type!=t.topNode||(r=!0);for(let s=e.children.length-1;s>=0;s--){let o,a=e.positions[s],l=e.children[s];if(ai&&Ba(t,n.tree,0-n.offset,i,s);if(o&&(e=Pa(t,n.tree,i+n.offset,o.pos+n.offset,!1)))return{state:o.state,tree:e}}return{state:t.streamParser.startState(n?Yo(n):4),tree:Hs.empty}}(t,i,s,null==r?void 0:r.state);this.state=o,this.parsedPos=this.chunkStart=s+a.length;for(let t=0;t=e?this.finish():t&&this.parsedPos>=t.viewport.to?(t.skipUntilInView(this.parsedPos,e),this.finish()):null}stopAt(t){this.stoppedAt=t}lineAfter(t){let e=this.input.chunk(t);if(this.input.lineChunks)"\n"==e&&(e="");else{let t=e.indexOf("\n");t>-1&&(e=e.slice(0,t))}return t+e.length<=this.to?e:e.slice(0,this.to-t)}nextLine(){let t=this.parsedPos,e=this.lineAfter(t),i=t+e.length;for(let t=this.rangeIndex;;){let n=this.ranges[t].to;if(n>=i)break;if(e=e.slice(0,n-(i-e.length)),t++,t==this.ranges.length)break;let r=this.ranges[t].from,s=this.lineAfter(r);e+=s,i=r+s.length}return{line:e,end:i}}skipGapsTo(t,e,i){for(;;){let n=this.ranges[this.rangeIndex].to,r=t+e;if(i>0?n>r:n>=r)break;e+=this.ranges[++this.rangeIndex].from-n}return e}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to1){e+=r=this.skipGapsTo(e,r,1);let t=this.chunk.length;i+=r=this.skipGapsTo(i,r,-1),n+=this.chunk.length-t}return this.chunk.push(t,e,i,n),r}parseLine(t){let{line:e,end:i}=this.nextLine(),n=0,{streamParser:r}=this.lang,s=new Da(e,t?t.state.tabSize:4,t?Yo(t.state):2);if(s.eol())r.blankLine(this.state,s.indentUnit);else for(;!s.eol();){let t=Ra(r.token,s,this.state);if(t&&(n=this.emitToken(this.lang.tokenTable.resolve(t),this.parsedPos+s.start,this.parsedPos+s.pos,4,n)),s.start>1e4)break}this.parsedPos=i,this.moveRangeIndex(),this.parsedPose.start)return n}throw new Error("Stream parser failed to advance stream.")}const Ia=Object.create(null),za=[Ps.none],Ha=new Ns(za),Wa=[],Va=Object.create(null),Fa=Object.create(null);for(let[t,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])Fa[t]=$a(Ia,e);class _a{constructor(t){this.extra=t,this.table=Object.assign(Object.create(null),Fa)}resolve(t){return t?this.table[t]||(this.table[t]=$a(this.extra,t)):0}}const ja=new _a(Ia);function qa(t,e){Wa.indexOf(t)>-1||(Wa.push(t),console.warn(e))}function $a(t,e){let i=[];for(let n of e.split(" ")){let e=[];for(let i of n.split(".")){let n=t[i]||Lo[i];n?"function"==typeof n?e.length?e=e.map(n):qa(i,`Modifier ${i} used at start of tag`):e.length?qa(i,`Tag ${i} used as modifier`):e=Array.isArray(n)?n:[n]:qa(i,`Unknown highlighting tag ${i}`)}for(let t of e)i.push(t)}if(!i.length)return 0;let n=e.replace(/ /g,"_"),r=n+" "+i.map((t=>t.id)),s=Va[r];if(s)return s.id;let o=Va[r]=Ps.define({id:za.length,name:n,props:[ho({[n]:i})]});return za.push(o),o.id}function Ka(t,e){return({state:i,dispatch:n})=>{if(i.readOnly)return!1;let r=t(e,i);return!!r&&(n(i.update(r)),!0)}}const Ga=Ka(Za,0),Ua=Ka(Qa,0),Ja=Ka(((t,e)=>Qa(t,e,function(t){let e=[];for(let i of t.selection.ranges){let n=t.doc.lineAt(i.from),r=i.to<=n.to?n:t.doc.lineAt(i.to),s=e.length-1;s>=0&&e[s].to>n.from?e[s].to=r.to:e.push({from:n.from+/^\s*/.exec(n.text)[0].length,to:r.to})}return e}(e))),0);function Ya(t,e){let i=t.languageDataAt("commentTokens",e);return i.length?i[0]:{}}const Xa=50;function Qa(t,e,i=e.selection.ranges){let n=i.map((t=>Ya(e,t.from).block));if(!n.every((t=>t)))return null;let r=i.map(((t,i)=>function(t,{open:e,close:i},n,r){let s,o,a=t.sliceDoc(n-Xa,n),l=t.sliceDoc(r,r+Xa),h=/\s*$/.exec(a)[0].length,c=/^\s*/.exec(l)[0].length,u=a.length-h;if(a.slice(u-e.length,u)==e&&l.slice(c,c+i.length)==i)return{open:{pos:n-h,margin:h&&1},close:{pos:r+c,margin:c&&1}};r-n<=2*Xa?s=o=t.sliceDoc(n,r):(s=t.sliceDoc(n,n+Xa),o=t.sliceDoc(r-Xa,r));let f=/^\s*/.exec(s)[0].length,d=/\s*$/.exec(o)[0].length,p=o.length-d-i.length;return s.slice(f,f+e.length)==e&&o.slice(p,p+i.length)==i?{open:{pos:n+f+e.length,margin:/\s/.test(s.charAt(f+e.length))?1:0},close:{pos:r-d-i.length,margin:/\s/.test(o.charAt(p-1))?1:0}}:null}(e,n[i],t.from,t.to)));if(2!=t&&!r.every((t=>t)))return{changes:e.changes(i.map(((t,e)=>r[e]?[]:[{from:t.from,insert:n[e].open+" "},{from:t.to,insert:" "+n[e].close}])))};if(1!=t&&r.some((t=>t))){let t=[];for(let e,i=0;ir&&(t==s||s>l.from)){r=l.from;let t=/^\s*/.exec(l.text)[0].length,e=t==l.length,i=l.text.slice(t,t+a.length)==a?t:-1;tt.comment<0&&(!t.empty||t.single)))){let t=[];for(let{line:e,token:i,indent:r,empty:s,single:o}of n)!o&&s||t.push({from:e.from+r,insert:i+" "});let i=e.changes(t);return{changes:i,selection:e.selection.map(i,1)}}if(1!=t&&n.some((t=>t.comment>=0))){let t=[];for(let{line:e,comment:i,token:r}of n)if(i>=0){let n=e.from+i,s=n+r.length;" "==e.text[s-e.from]&&s++,t.push({from:n,to:s})}return{changes:t}}return null}const tl=st.define(),el=st.define(),il=R.define(),nl=R.define({combine:t=>kt(t,{minDepth:100,newGroupDelay:500,joinToEvent:(t,e)=>e},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(t,e)=>(i,n)=>t(i,n)||e(i,n)})}),rl=_.define({create:()=>bl.empty,update(t,e){let i=e.state.facet(nl),n=e.annotation(tl);if(n){let r=e.docChanged?B.single(function(t){let e=0;return t.iterChangedRanges(((t,i)=>e=i)),e}(e.changes)):void 0,s=ul.fromTransaction(e,r),o=n.side,a=0==o?t.undone:t.done;return a=s?fl(a,a.length,i.minDepth,s):ml(a,e.startState.selection),new bl(0==o?n.rest:a,0==o?a:n.rest)}let r=e.annotation(el);if("full"!=r&&"before"!=r||(t=t.isolate()),!1===e.annotation(ht.addToHistory))return e.changes.empty?t:t.addMapping(e.changes.desc);let s=ul.fromTransaction(e),o=e.annotation(ht.time),a=e.annotation(ht.userEvent);return s?t=t.addChanges(s,o,a,i,e):e.selection&&(t=t.addSelection(e.startState.selection,o,a,i.newGroupDelay)),"full"!=r&&"after"!=r||(t=t.isolate()),t},toJSON:t=>({done:t.done.map((t=>t.toJSON())),undone:t.undone.map((t=>t.toJSON()))}),fromJSON:t=>new bl(t.done.map(ul.fromJSON),t.undone.map(ul.fromJSON))});function sl(t={}){return[rl,nl.of(t),Er.domEventHandlers({beforeinput(t,e){let i="historyUndo"==t.inputType?al:"historyRedo"==t.inputType?ll:null;return!!i&&(t.preventDefault(),i(e))}})]}function ol(t,e){return function({state:i,dispatch:n}){if(!e&&i.readOnly)return!1;let r=i.field(rl,!1);if(!r)return!1;let s=r.pop(t,i,e);return!!s&&(n(s),!0)}}const al=ol(0,!1),ll=ol(1,!1),hl=ol(0,!0),cl=ol(1,!0);class ul{constructor(t,e,i,n,r){this.changes=t,this.effects=e,this.mapped=i,this.startSelection=n,this.selectionsAfter=r}setSelAfter(t){return new ul(this.changes,this.effects,this.mapped,this.startSelection,t)}toJSON(){var t,e,i;return{changes:null===(t=this.changes)||void 0===t?void 0:t.toJSON(),mapped:null===(e=this.mapped)||void 0===e?void 0:e.toJSON(),startSelection:null===(i=this.startSelection)||void 0===i?void 0:i.toJSON(),selectionsAfter:this.selectionsAfter.map((t=>t.toJSON()))}}static fromJSON(t){return new ul(t.changes&&A.fromJSON(t.changes),[],t.mapped&&S.fromJSON(t.mapped),t.startSelection&&B.fromJSON(t.startSelection),t.selectionsAfter.map(B.fromJSON))}static fromTransaction(t,e){let i=pl;for(let e of t.startState.facet(il)){let n=e(t);n.length&&(i=i.concat(n))}return!i.length&&t.changes.empty?null:new ul(t.changes.invert(t.startState.doc),i,void 0,e||t.startState.selection,pl)}static selection(t){return new ul(void 0,pl,void 0,void 0,t)}}function fl(t,e,i,n){let r=e+1>i+20?e-i-1:0,s=t.slice(r,e);return s.push(n),s}function dl(t,e){return t.length?e.length?t.concat(e):t:e}const pl=[],gl=200;function ml(t,e){if(t.length){let i=t[t.length-1],n=i.selectionsAfter.slice(Math.max(0,i.selectionsAfter.length-gl));return n.length&&n[n.length-1].eq(e)?t:(n.push(e),fl(t,t.length-1,1e9,i.setSelAfter(n)))}return[ul.selection([e])]}function wl(t){let e=t[t.length-1],i=t.slice();return i[t.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),i}function vl(t,e){if(!t.length)return t;let i=t.length,n=pl;for(;i;){let r=yl(t[i-1],e,n);if(r.changes&&!r.changes.empty||r.effects.length){let e=t.slice(0,i);return e[i-1]=r,e}e=r.mapped,i--,n=r.selectionsAfter}return n.length?[ul.selection(n)]:pl}function yl(t,e,i){let n=dl(t.selectionsAfter.length?t.selectionsAfter.map((t=>t.map(e))):pl,i);if(!t.changes)return ul.selection(n);let r=t.changes.map(e),s=e.mapDesc(t.changes,!0),o=t.mapped?t.mapped.composeDesc(s):s;return new ul(r,lt.mapEffects(t.effects,e),o,t.startSelection.map(s),n)}const kl=/^(input\.type|delete)($|\.)/;class bl{constructor(t,e,i=0,n=void 0){this.done=t,this.undone=e,this.prevTime=i,this.prevUserEvent=n}isolate(){return this.prevTime?new bl(this.done,this.undone):this}addChanges(t,e,i,n,r){let s=this.done,o=s[s.length-1];return s=o&&o.changes&&!o.changes.empty&&t.changes&&(!i||kl.test(i))&&(!o.selectionsAfter.length&&e-this.prevTimei.push(t,e))),e.iterChangedRanges(((t,e,r,s)=>{for(let t=0;t=e&&r<=o&&(n=!0)}})),n}(o.changes,t.changes))||"input.type.compose"==i)?fl(s,s.length-1,n.minDepth,new ul(t.changes.compose(o.changes),dl(t.effects,o.effects),o.mapped,o.startSelection,pl)):fl(s,s.length,n.minDepth,t),new bl(s,pl,e,i)}addSelection(t,e,i,n){let r=this.done.length?this.done[this.done.length-1].selectionsAfter:pl;return r.length>0&&e-this.prevTimet.empty!=o.ranges[e].empty)).length)?this:new bl(ml(this.done,t),this.undone,e,i);var s,o}addMapping(t){return new bl(vl(this.done,t),vl(this.undone,t),this.prevTime,this.prevUserEvent)}pop(t,e,i){let n=0==t?this.done:this.undone;if(0==n.length)return null;let r=n[n.length-1];if(i&&r.selectionsAfter.length)return e.update({selection:r.selectionsAfter[r.selectionsAfter.length-1],annotations:tl.of({side:t,rest:wl(n)}),userEvent:0==t?"select.undo":"select.redo",scrollIntoView:!0});if(r.changes){let i=1==n.length?pl:n.slice(0,n.length-1);return r.mapped&&(i=vl(i,r.mapped)),e.update({changes:r.changes,selection:r.startSelection,effects:r.effects,annotations:tl.of({side:t,rest:i}),filter:!1,userEvent:0==t?"undo":"redo",scrollIntoView:!0})}return null}}bl.empty=new bl(pl,pl);const xl=[{key:"Mod-z",run:al,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:ll,preventDefault:!0},{linux:"Ctrl-Shift-z",run:ll,preventDefault:!0},{key:"Mod-u",run:hl,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:cl,preventDefault:!0}];function Sl(t,e){return B.create(t.ranges.map(e),t.mainIndex)}function Al(t,e){return t.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function Ml({state:t,dispatch:e},i){let n=Sl(t.selection,i);return!n.eq(t.selection)&&(e(Al(t,n)),!0)}function Cl(t,e){return B.cursor(e?t.to:t.from)}function Tl(t,e){return Ml(t,(i=>i.empty?t.moveByChar(i,e):Cl(i,e)))}function Dl(t){return t.textDirectionAt(t.state.selection.main.head)==Bi.LTR}const Ol=t=>Tl(t,!Dl(t)),El=t=>Tl(t,Dl(t));function Ll(t,e){return Ml(t,(i=>i.empty?t.moveByGroup(i,e):Cl(i,e)))}function Bl(t,e,i){if(e.type.prop(i))return!0;let n=e.to-e.from;return n&&(n>2||/[^\s,.;:]/.test(t.sliceDoc(e.from,e.to)))||e.firstChild}function Pl(t,e,i){let n,r,s=zo(t).resolveInner(e.head),o=i?Es.closedBy:Es.openedBy;for(let n=e.head;;){let e=i?s.childAfter(n):s.childBefore(n);if(!e)break;Bl(t,e,o)?s=e:n=i?e.to:e.from}return r=s.type.prop(o)&&(n=i?Ma(t,s.from,1):Ma(t,s.to,-1))&&n.matched?i?n.end.to:n.end.from:i?s.to:s.from,B.cursor(r,i?-1:1)}function Nl(t,e){return Ml(t,(i=>{if(!i.empty)return Cl(i,e);let n=t.moveVertically(i,e);return n.head!=i.head?n:t.moveToLineBoundary(i,e)}))}"undefined"!=typeof Intl&&Intl.Segmenter;const Rl=t=>Nl(t,!1),Il=t=>Nl(t,!0);function zl(t){let e,i=t.scrollDOM.clientHeighti.empty?t.moveVertically(i,e,n.height):Cl(i,e)));if(s.eq(r.selection))return!1;if(n.selfScroll){let e=t.coordsAtPos(r.selection.main.head),o=t.scrollDOM.getBoundingClientRect(),a=o.top+n.marginTop,l=o.bottom-n.marginBottom;e&&e.top>a&&e.bottomHl(t,!1),Vl=t=>Hl(t,!0);function Fl(t,e,i){let n=t.lineBlockAt(e.head),r=t.moveToLineBoundary(e,i);if(r.head==e.head&&r.head!=(i?n.to:n.from)&&(r=t.moveToLineBoundary(e,i,!1)),!i&&r.head==n.from&&n.length){let i=/^\s*/.exec(t.state.sliceDoc(n.from,Math.min(n.from+100,n.to)))[0].length;i&&e.head!=n.from+i&&(r=B.cursor(n.from+i))}return r}function _l(t,e){let i=Sl(t.state.selection,(t=>{let i=e(t);return B.range(t.anchor,i.head,i.goalColumn,i.bidiLevel||void 0)}));return!i.eq(t.state.selection)&&(t.dispatch(Al(t.state,i)),!0)}function jl(t,e){return _l(t,(i=>t.moveByChar(i,e)))}const ql=t=>jl(t,!Dl(t)),$l=t=>jl(t,Dl(t));function Kl(t,e){return _l(t,(i=>t.moveByGroup(i,e)))}function Gl(t,e){return _l(t,(i=>t.moveVertically(i,e)))}const Ul=t=>Gl(t,!1),Jl=t=>Gl(t,!0);function Yl(t,e){return _l(t,(i=>t.moveVertically(i,e,zl(t).height)))}const Xl=t=>Yl(t,!1),Ql=t=>Yl(t,!0),Zl=({state:t,dispatch:e})=>(e(Al(t,{anchor:0})),!0),th=({state:t,dispatch:e})=>(e(Al(t,{anchor:t.doc.length})),!0),eh=({state:t,dispatch:e})=>(e(Al(t,{anchor:t.selection.main.anchor,head:0})),!0),ih=({state:t,dispatch:e})=>(e(Al(t,{anchor:t.selection.main.anchor,head:t.doc.length})),!0);function nh(t,e){if(t.state.readOnly)return!1;let i="delete.selection",{state:n}=t,r=n.changeByRange((n=>{let{from:r,to:s}=n;if(r==s){let n=e(r);nr&&(i="delete.forward",n=rh(t,n,!0)),r=Math.min(r,n),s=Math.max(s,n)}else r=rh(t,r,!1),s=rh(t,s,!0);return r==s?{range:n}:{changes:{from:r,to:s},range:B.cursor(r)}}));return!r.changes.empty&&(t.dispatch(n.update(r,{scrollIntoView:!0,userEvent:i,effects:"delete.selection"==i?Er.announce.of(n.phrase("Selection deleted")):void 0})),!0)}function rh(t,e,i){if(t instanceof Er)for(let n of t.state.facet(Er.atomicRanges).map((e=>e(t))))n.between(e,e,((t,n)=>{te&&(e=i?n:t)}));return e}const sh=(t,e)=>nh(t,(i=>{let n,r,{state:s}=t,o=s.doc.lineAt(i);if(!e&&i>o.from&&ish(t,!1),ah=t=>sh(t,!0),lh=(t,e)=>nh(t,(i=>{let n=i,{state:r}=t,s=r.doc.lineAt(n),o=r.charCategorizer(n);for(let t=null;;){if(n==(e?s.to:s.from)){n==i&&s.number!=(e?r.doc.lines:1)&&(n+=e?1:-1);break}let a=d(s.text,n-s.from,e)+s.from,l=s.text.slice(Math.min(n,a)-s.from,Math.max(n,a)-s.from),h=o(l);if(null!=t&&h!=t)break;" "==l&&n==i||(t=h),n=a}return n})),hh=t=>lh(t,!1),ch=t=>nh(t,(e=>{let i=t.lineBlockAt(e).to;return e=r.number){let t=e[e.length-1];t.to=s.to,t.ranges.push(n)}else e.push({from:r.from,to:s.to,ranges:[n]});i=s.number+1}return e}function fh(t,e,i){if(t.readOnly)return!1;let n=[],r=[];for(let e of uh(t)){if(i?e.to==t.doc.length:0==e.from)continue;let s=t.doc.lineAt(i?e.to+1:e.from-1),o=s.length+1;if(i){n.push({from:e.to,to:s.to},{from:e.from,insert:s.text+t.lineBreak});for(let i of e.ranges)r.push(B.range(Math.min(t.doc.length,i.anchor+o),Math.min(t.doc.length,i.head+o)))}else{n.push({from:s.from,to:e.from},{from:e.to,insert:t.lineBreak+s.text});for(let t of e.ranges)r.push(B.range(t.anchor-o,t.head-o))}}return!!n.length&&(e(t.update({changes:n,scrollIntoView:!0,selection:B.create(r,t.selection.mainIndex),userEvent:"move.line"})),!0)}function dh(t,e,i){if(t.readOnly)return!1;let n=[];for(let e of uh(t))i?n.push({from:e.from,insert:t.doc.slice(e.from,e.to)+t.lineBreak}):n.push({from:e.to,insert:t.lineBreak+t.doc.slice(e.from,e.to)});return e(t.update({changes:n,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const ph=gh(!1);function gh(e){return({state:i,dispatch:n})=>{if(i.readOnly)return!1;let r=i.changeByRange((n=>{let{from:r,to:s}=n,o=i.doc.lineAt(r),a=!e&&r==s&&function(t,e){if(/\(\)|\[\]|\{\}/.test(t.sliceDoc(e-1,e+1)))return{from:e,to:e};let i,n=zo(t).resolveInner(e),r=n.childBefore(e),s=n.childAfter(e);return r&&s&&r.to<=e&&s.from>=e&&(i=r.type.prop(Es.closedBy))&&i.indexOf(s.name)>-1&&t.doc.lineAt(r.to).from==t.doc.lineAt(s.from).from&&!/\S/.test(t.sliceDoc(r.to,s.from))?{from:r.to,to:s.from}:null}(i,r);e&&(r=s=(s<=o.to?o:i.doc.lineAt(s)).to);let l=new Zo(i,{simulateBreak:r,simulateDoubleBreak:!!a}),h=Qo(l,r);for(null==h&&(h=zt(/^\s*/.exec(i.doc.lineAt(r).text)[0],i.tabSize));so.from&&r{let r=[];for(let s=n.from;s<=n.to;){let o=t.doc.lineAt(s);o.number>i&&(n.empty||n.to>o.from)&&(e(o,r,n),i=o.number),s=o.to+1}let s=t.changes(r);return{changes:r,range:B.range(s.mapPos(n.anchor,1),s.mapPos(n.head,1))}}))}const wh=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:t=>Ml(t,(e=>Pl(t.state,e,!Dl(t)))),shift:t=>_l(t,(e=>Pl(t.state,e,!Dl(t))))},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:t=>Ml(t,(e=>Pl(t.state,e,Dl(t)))),shift:t=>_l(t,(e=>Pl(t.state,e,Dl(t))))},{key:"Alt-ArrowUp",run:({state:t,dispatch:e})=>fh(t,e,!1)},{key:"Shift-Alt-ArrowUp",run:({state:t,dispatch:e})=>dh(t,e,!1)},{key:"Alt-ArrowDown",run:({state:t,dispatch:e})=>fh(t,e,!0)},{key:"Shift-Alt-ArrowDown",run:({state:t,dispatch:e})=>dh(t,e,!0)},{key:"Escape",run:({state:t,dispatch:e})=>{let i=t.selection,n=null;return i.ranges.length>1?n=B.create([i.main]):i.main.empty||(n=B.create([B.cursor(i.main.head)])),!!n&&(e(Al(t,n)),!0)}},{key:"Mod-Enter",run:gh(!0)},{key:"Alt-l",mac:"Ctrl-l",run:({state:t,dispatch:e})=>{let i=uh(t).map((({from:e,to:i})=>B.range(e,Math.min(i+1,t.doc.length))));return e(t.update({selection:B.create(i),userEvent:"select"})),!0}},{key:"Mod-i",run:({state:t,dispatch:e})=>{let i=Sl(t.selection,(e=>{var i;let n=zo(t).resolveInner(e.head,1);for(;!(n.from=e.to||n.to>e.to&&n.from<=e.from)&&(null===(i=n.parent)||void 0===i?void 0:i.parent);)n=n.parent;return B.range(n.to,n.from)}));return e(Al(t,i)),!0},preventDefault:!0},{key:"Mod-[",run:({state:t,dispatch:e})=>!t.readOnly&&(e(t.update(mh(t,((e,i)=>{let n=/^\s*/.exec(e.text)[0];if(!n)return;let r=zt(n,t.tabSize),s=0,o=Xo(t,Math.max(0,r-Yo(t)));for(;s!t.readOnly&&(e(t.update(mh(t,((e,i)=>{i.push({from:e.from,insert:t.facet(Jo)})})),{userEvent:"input.indent"})),!0)},{key:"Mod-Alt-\\",run:({state:t,dispatch:e})=>{if(t.readOnly)return!1;let i=Object.create(null),n=new Zo(t,{overrideIndentation:t=>{let e=i[t];return null==e?-1:e}}),r=mh(t,((e,r,s)=>{let o=Qo(n,e.from);if(null==o)return;/\S/.test(e.text)||(o=0);let a=/^\s*/.exec(e.text)[0],l=Xo(t,o);(a!=l||s.from{if(t.state.readOnly)return!1;let{state:e}=t,i=e.changes(uh(e).map((({from:t,to:i})=>(t>0?t--:it.moveVertically(e,!0))).map(i);return t.dispatch({changes:i,selection:n,scrollIntoView:!0,userEvent:"delete.line"}),!0}},{key:"Shift-Mod-\\",run:({state:t,dispatch:e})=>function(t,e,i){let n=!1,r=Sl(t.selection,(e=>{let r=Ma(t,e.head,-1)||Ma(t,e.head,1)||e.head>0&&Ma(t,e.head-1,1)||e.head{let{state:e}=t,i=e.doc.lineAt(e.selection.main.from),n=Ya(t.state,i.from);return n.line?Ga(t):!!n.block&&Ja(t)}},{key:"Alt-A",run:Ua}].concat([{key:"ArrowLeft",run:Ol,shift:ql,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:t=>Ll(t,!Dl(t)),shift:t=>Kl(t,!Dl(t)),preventDefault:!0},{mac:"Cmd-ArrowLeft",run:t=>Ml(t,(e=>Fl(t,e,!Dl(t)))),shift:t=>_l(t,(e=>Fl(t,e,!Dl(t)))),preventDefault:!0},{key:"ArrowRight",run:El,shift:$l,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:t=>Ll(t,Dl(t)),shift:t=>Kl(t,Dl(t)),preventDefault:!0},{mac:"Cmd-ArrowRight",run:t=>Ml(t,(e=>Fl(t,e,Dl(t)))),shift:t=>_l(t,(e=>Fl(t,e,Dl(t)))),preventDefault:!0},{key:"ArrowUp",run:Rl,shift:Ul,preventDefault:!0},{mac:"Cmd-ArrowUp",run:Zl,shift:eh},{mac:"Ctrl-ArrowUp",run:Wl,shift:Xl},{key:"ArrowDown",run:Il,shift:Jl,preventDefault:!0},{mac:"Cmd-ArrowDown",run:th,shift:ih},{mac:"Ctrl-ArrowDown",run:Vl,shift:Ql},{key:"PageUp",run:Wl,shift:Xl},{key:"PageDown",run:Vl,shift:Ql},{key:"Home",run:t=>Ml(t,(e=>Fl(t,e,!1))),shift:t=>_l(t,(e=>Fl(t,e,!1))),preventDefault:!0},{key:"Mod-Home",run:Zl,shift:eh},{key:"End",run:t=>Ml(t,(e=>Fl(t,e,!0))),shift:t=>_l(t,(e=>Fl(t,e,!0))),preventDefault:!0},{key:"Mod-End",run:th,shift:ih},{key:"Enter",run:ph},{key:"Mod-a",run:({state:t,dispatch:e})=>(e(t.update({selection:{anchor:0,head:t.doc.length},userEvent:"select"})),!0)},{key:"Backspace",run:oh,shift:oh},{key:"Delete",run:ah},{key:"Mod-Backspace",mac:"Alt-Backspace",run:hh},{key:"Mod-Delete",mac:"Alt-Delete",run:t=>lh(t,!0)},{mac:"Mod-Backspace",run:t=>nh(t,(e=>{let i=t.lineBlockAt(e).from;return e>i?i:Math.max(0,e-1)}))},{mac:"Mod-Delete",run:ch}].concat([{key:"Ctrl-b",run:Ol,shift:ql,preventDefault:!0},{key:"Ctrl-f",run:El,shift:$l},{key:"Ctrl-p",run:Rl,shift:Ul},{key:"Ctrl-n",run:Il,shift:Jl},{key:"Ctrl-a",run:t=>Ml(t,(e=>B.cursor(t.lineBlockAt(e.head).from,1))),shift:t=>_l(t,(e=>B.cursor(t.lineBlockAt(e.head).from)))},{key:"Ctrl-e",run:t=>Ml(t,(e=>B.cursor(t.lineBlockAt(e.head).to,-1))),shift:t=>_l(t,(e=>B.cursor(t.lineBlockAt(e.head).to)))},{key:"Ctrl-d",run:ah},{key:"Ctrl-h",run:oh},{key:"Ctrl-k",run:ch},{key:"Ctrl-Alt-h",run:hh},{key:"Ctrl-o",run:({state:e,dispatch:i})=>{if(e.readOnly)return!1;let n=e.changeByRange((e=>({changes:{from:e.from,to:e.to,insert:t.of(["",""])},range:B.cursor(e.from)})));return i(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0}},{key:"Ctrl-t",run:({state:t,dispatch:e})=>{if(t.readOnly)return!1;let i=t.changeByRange((e=>{if(!e.empty||0==e.from||e.from==t.doc.length)return{range:e};let i=e.from,n=t.doc.lineAt(i),r=i==n.from?i-1:d(n.text,i-n.from,!1)+n.from,s=i==n.to?i+1:d(n.text,i-n.from,!0)+n.from;return{changes:{from:r,to:s,insert:t.doc.slice(i,s).append(t.doc.slice(r,i))},range:B.cursor(s)}}));return!i.changes.empty&&(e(t.update(i,{scrollIntoView:!0,userEvent:"move.character"})),!0)}},{key:"Ctrl-v",run:Vl}].map((t=>({mac:t.key,run:t.run,shift:t.shift})))));function vh(){var t=arguments[0];"string"==typeof t&&(t=document.createElement(t));var e=1,i=arguments[1];if(i&&"object"==typeof i&&null==i.nodeType&&!Array.isArray(i)){for(var n in i)if(Object.prototype.hasOwnProperty.call(i,n)){var r=i[n];"string"==typeof r?t.setAttribute(n,r):null!=r&&(t[n]=r)}e++}for(;et.normalize("NFKD"):t=>t;class bh{constructor(t,e,i=0,n=t.length,r,s){this.test=s,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=t.iterRange(i,n),this.bufferStart=i,this.normalize=r?t=>r(kh(t)):kh,this.query=this.normalize(e)}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 v(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let t=this.peek();if(t<0)return this.done=!0,this;let e=y(t),i=this.bufferStart+this.bufferPos;this.bufferPos+=k(t);let n=this.normalize(e);for(let t=0,r=i;;t++){let s=n.charCodeAt(t),o=this.match(s,r);if(t==n.length-1){if(o)return this.value=o,this;break}r==i&&tthis.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 t=this.matchPos-this.curLineStart;;){this.re.lastIndex=t;let e=this.matchPos<=this.to&&this.re.exec(this.curLine);if(e){let i=this.curLineStart+e.index,n=i+e[0].length;if(this.matchPos=Dh(this.text,n+(i==n?1:0)),i==this.curLineStart+this.curLine.length&&this.nextLine(),(ithis.value.to)&&(!this.test||this.test(i,n,e)))return this.value={from:i,to:n,match:e},this;t=this.matchPos-this.curLineStart}else{if(!(this.curLineStart+this.curLine.length=i||n.to<=e){let n=new Ch(e,t.sliceString(e,i));return Mh.set(t,n),n}if(n.from==e&&n.to==i)return n;let{text:r,from:s}=n;return s>e&&(r=t.sliceString(e,s)+r,s=e),n.to=this.to?this.to:this.text.lineAt(t).to}next(){for(;;){let t=this.re.lastIndex=this.matchPos-this.flat.from,e=this.re.exec(this.flat.text);if(e&&!e[0]&&e.index==t&&(this.re.lastIndex=t+1,e=this.re.exec(this.flat.text)),e){let t=this.flat.from+e.index,i=t+e[0].length;if((this.flat.to>=this.to||e.index+e[0].length<=this.flat.text.length-10)&&(!this.test||this.test(t,i,e)))return this.value={from:t,to:i,match:e},this.matchPos=Dh(this.text,i+(t==i?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Ch.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+2*this.flat.text.length))}}}function Dh(t,e){if(e>=t.length)return e;let i,n=t.lineAt(e);for(;e=56320&&i<57344;)e++;return e}function Oh(t){let e=vh("input",{class:"cm-textfield",name:"line",value:String(t.state.doc.lineAt(t.state.selection.main.head).number)});function i(){let i=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(e.value);if(!i)return;let{state:n}=t,r=n.doc.lineAt(n.selection.main.head),[,s,o,a,l]=i,h=a?+a.slice(1):0,c=o?+o:r.number;if(o&&l){let t=c/100;s&&(t=t*("-"==s?-1:1)+r.number/n.doc.lines),c=Math.round(n.doc.lines*t)}else o&&s&&(c=c*("-"==s?-1:1)+r.number);let u=n.doc.line(Math.max(1,Math.min(n.doc.lines,c))),f=B.cursor(u.from+Math.max(0,Math.min(h,u.length)));t.dispatch({effects:[Eh.of(!1),Er.scrollIntoView(f.from,{y:"center"})],selection:f}),t.focus()}return{dom:vh("form",{class:"cm-gotoLine",onkeydown:e=>{27==e.keyCode?(e.preventDefault(),t.dispatch({effects:Eh.of(!1)}),t.focus()):13==e.keyCode&&(e.preventDefault(),i())},onsubmit:t=>{t.preventDefault(),i()}},vh("label",t.state.phrase("Go to line"),": ",e)," ",vh("button",{class:"cm-button",type:"submit"},t.state.phrase("go")))}}"undefined"!=typeof Symbol&&(Ah.prototype[Symbol.iterator]=Th.prototype[Symbol.iterator]=function(){return this});const Eh=lt.define(),Lh=_.define({create:()=>!0,update(t,e){for(let i of e.effects)i.is(Eh)&&(t=i.value);return t},provide:t=>ss.from(t,(t=>t?Oh:null))}),Bh=Er.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),Ph=R.define({combine:t=>kt(t,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:t=>new lc(t),scrollToMatch:t=>Er.scrollIntoView(t)})});class Nh{constructor(t){this.search=t.search,this.caseSensitive=!!t.caseSensitive,this.literal=!!t.literal,this.regexp=!!t.regexp,this.replace=t.replace||"",this.valid=!!this.search&&(!this.regexp||function(t){try{return new RegExp(t,Sh),!0}catch(t){return!1}}(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!t.wholeWord}unquote(t){return this.literal?t:t.replace(/\\([nrt\\])/g,((t,e)=>"n"==e?"\n":"r"==e?"\r":"t"==e?"\t":"\\"))}eq(t){return this.search==t.search&&this.replace==t.replace&&this.caseSensitive==t.caseSensitive&&this.regexp==t.regexp&&this.wholeWord==t.wholeWord}create(){return this.regexp?new Fh(this):new zh(this)}getCursor(t,e=0,i){let n=t.doc?t:yt.create({doc:t});return null==i&&(i=n.doc.length),this.regexp?Hh(this,n,e,i):Ih(this,n,e,i)}}class Rh{constructor(t){this.spec=t}}function Ih(t,e,i,n){return new bh(e.doc,t.unquoted,i,n,t.caseSensitive?void 0:t=>t.toLowerCase(),t.wholeWord?function(t,e){return(i,n,r,s)=>((s>i||s+r.length=e)return null;n.push(i.value)}return n}highlight(t,e,i,n){let r=Ih(this.spec,t,Math.max(0,e-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,t.doc.length));for(;!r.next().done;)n(r.value.from,r.value.to)}}function Hh(t,e,i,n){return new Ah(e.doc,t.search,{ignoreCase:!t.caseSensitive,test:t.wholeWord?(r=e.charCategorizer(e.selection.main.head),(t,e,i)=>!i[0].length||(r(Wh(i.input,i.index))!=mt.Word||r(Vh(i.input,i.index))!=mt.Word)&&(r(Vh(i.input,i.index+i[0].length))!=mt.Word||r(Wh(i.input,i.index+i[0].length))!=mt.Word)):void 0},i,n);var r}function Wh(t,e){return t.slice(d(t,e,!1),e)}function Vh(t,e){return t.slice(e,d(t,e))}class Fh extends Rh{nextMatch(t,e,i){let n=Hh(this.spec,t,i,t.doc.length).next();return n.done&&(n=Hh(this.spec,t,0,e).next()),n.done?null:n.value}prevMatchInRange(t,e,i){for(let n=1;;n++){let r=Math.max(e,i-1e4*n),s=Hh(this.spec,t,r,i),o=null;for(;!s.next().done;)o=s.value;if(o&&(r==e||o.from>r+10))return o;if(r==e)return null}}prevMatch(t,e,i){return this.prevMatchInRange(t,0,e)||this.prevMatchInRange(t,i,t.doc.length)}getReplacement(t){return this.spec.unquote(this.spec.replace.replace(/\$([$&\d+])/g,((e,i)=>"$"==i?"$":"&"==i?t.match[0]:"0"!=i&&+i=e)return null;n.push(i.value)}return n}highlight(t,e,i,n){let r=Hh(this.spec,t,Math.max(0,e-250),Math.min(i+250,t.doc.length));for(;!r.next().done;)n(r.value.from,r.value.to)}}const _h=lt.define(),jh=lt.define(),qh=_.define({create:t=>new $h(ic(t).create(),null),update(t,e){for(let i of e.effects)i.is(_h)?t=new $h(i.value.create(),t.panel):i.is(jh)&&(t=new $h(t.query,i.value?ec:null));return t},provide:t=>ss.from(t,(t=>t.panel))});class $h{constructor(t,e){this.query=t,this.panel=e}}const Kh=Ge.mark({class:"cm-searchMatch"}),Gh=Ge.mark({class:"cm-searchMatch cm-searchMatch-selected"}),Uh=yi.fromClass(class{constructor(t){this.view=t,this.decorations=this.highlight(t.state.field(qh))}update(t){let e=t.state.field(qh);(e!=t.startState.field(qh)||t.docChanged||t.selectionSet||t.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:t,panel:e}){if(!e||!t.spec.valid)return Ge.none;let{view:i}=this,n=new Ct;for(let e=0,r=i.visibleRanges,s=r.length;er[e+1].from-500;)a=r[++e].to;t.highlight(i.state,o,a,((t,e)=>{let r=i.state.selection.ranges.some((i=>i.from==t&&i.to==e));n.add(t,e,r?Gh:Kh)}))}return n.finish()}},{decorations:t=>t.decorations});function Jh(t){return e=>{let i=e.state.field(qh,!1);return i&&i.query.spec.valid?t(e,i):sc(e)}}const Yh=Jh(((t,{query:e})=>{let{to:i}=t.state.selection.main,n=e.nextMatch(t.state,i,i);if(!n)return!1;let r=B.single(n.from,n.to),s=t.state.facet(Ph);return t.dispatch({selection:r,effects:[fc(t,n),s.scrollToMatch(r.main,t)],userEvent:"select.search"}),rc(t),!0})),Xh=Jh(((t,{query:e})=>{let{state:i}=t,{from:n}=i.selection.main,r=e.prevMatch(i,n,n);if(!r)return!1;let s=B.single(r.from,r.to),o=t.state.facet(Ph);return t.dispatch({selection:s,effects:[fc(t,r),o.scrollToMatch(s.main,t)],userEvent:"select.search"}),rc(t),!0})),Qh=Jh(((t,{query:e})=>{let i=e.matchAll(t.state,1e3);return!(!i||!i.length||(t.dispatch({selection:B.create(i.map((t=>B.range(t.from,t.to)))),userEvent:"select.search.matches"}),0))})),Zh=Jh(((t,{query:e})=>{let{state:i}=t,{from:n,to:r}=i.selection.main;if(i.readOnly)return!1;let s=e.nextMatch(i,n,n);if(!s)return!1;let o,a,l=[],h=[];if(s.from==n&&s.to==r&&(a=i.toText(e.getReplacement(s)),l.push({from:s.from,to:s.to,insert:a}),s=e.nextMatch(i,s.from,s.to),h.push(Er.announce.of(i.phrase("replaced match on line $",i.doc.lineAt(n).number)+"."))),s){let e=0==l.length||l[0].from>=s.to?0:s.to-s.from-a.length;o=B.single(s.from-e,s.to-e),h.push(fc(t,s)),h.push(i.facet(Ph).scrollToMatch(o.main,t))}return t.dispatch({changes:l,selection:o,effects:h,userEvent:"input.replace"}),!0})),tc=Jh(((t,{query:e})=>{if(t.state.readOnly)return!1;let i=e.matchAll(t.state,1e9).map((t=>{let{from:i,to:n}=t;return{from:i,to:n,insert:e.getReplacement(t)}}));if(!i.length)return!1;let n=t.state.phrase("replaced $ matches",i.length)+".";return t.dispatch({changes:i,effects:Er.announce.of(n),userEvent:"input.replace.all"}),!0}));function ec(t){return t.state.facet(Ph).createPanel(t)}function ic(t,e){var i,n,r,s,o;let a=t.selection.main,l=a.empty||a.to>a.from+100?"":t.sliceDoc(a.from,a.to);if(e&&!l)return e;let h=t.facet(Ph);return new Nh({search:(null!==(i=null==e?void 0:e.literal)&&void 0!==i?i:h.literal)?l:l.replace(/\n/g,"\\n"),caseSensitive:null!==(n=null==e?void 0:e.caseSensitive)&&void 0!==n?n:h.caseSensitive,literal:null!==(r=null==e?void 0:e.literal)&&void 0!==r?r:h.literal,regexp:null!==(s=null==e?void 0:e.regexp)&&void 0!==s?s:h.regexp,wholeWord:null!==(o=null==e?void 0:e.wholeWord)&&void 0!==o?o:h.wholeWord})}function nc(t){let e=es(t,ec);return e&&e.dom.querySelector("[main-field]")}function rc(t){let e=nc(t);e&&e==t.root.activeElement&&e.select()}const sc=t=>{let e=t.state.field(qh,!1);if(e&&e.panel){let i=nc(t);if(i&&i!=t.root.activeElement){let n=ic(t.state,e.query.spec);n.valid&&t.dispatch({effects:_h.of(n)}),i.focus(),i.select()}}else t.dispatch({effects:[jh.of(!0),e?_h.of(ic(t.state,e.query.spec)):lt.appendConfig.of(pc)]});return!0},oc=t=>{let e=t.state.field(qh,!1);if(!e||!e.panel)return!1;let i=es(t,ec);return i&&i.dom.contains(t.root.activeElement)&&t.focus(),t.dispatch({effects:jh.of(!1)}),!0},ac=[{key:"Mod-f",run:sc,scope:"editor search-panel"},{key:"F3",run:Yh,shift:Xh,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:Yh,shift:Xh,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:oc,scope:"editor search-panel"},{key:"Mod-Shift-l",run:({state:t,dispatch:e})=>{let i=t.selection;if(i.ranges.length>1||i.main.empty)return!1;let{from:n,to:r}=i.main,s=[],o=0;for(let e=new bh(t.doc,t.sliceDoc(n,r));!e.next().done;){if(s.length>1e3)return!1;e.value.from==n&&(o=s.length),s.push(B.range(e.value.from,e.value.to))}return e(t.update({selection:B.create(s,o),userEvent:"select.search.matches"})),!0}},{key:"Alt-g",run:t=>{let e=es(t,Oh);if(!e){let i=[Eh.of(!0)];null==t.state.field(Lh,!1)&&i.push(lt.appendConfig.of([Lh,Bh])),t.dispatch({effects:i}),e=es(t,Oh)}return e&&e.dom.querySelector("input").select(),!0}},{key:"Mod-d",run:({state:t,dispatch:e})=>{let{ranges:i}=t.selection;if(i.some((t=>t.from===t.to)))return(({state:t,dispatch:e})=>{let{selection:i}=t,n=B.create(i.ranges.map((e=>t.wordAt(e.head)||B.cursor(e.head))),i.mainIndex);return!n.eq(i)&&(e(t.update({selection:n})),!0)})({state:t,dispatch:e});let n=t.sliceDoc(i[0].from,i[0].to);if(t.selection.ranges.some((e=>t.sliceDoc(e.from,e.to)!=n)))return!1;let r=function(t,e){let{main:i,ranges:n}=t.selection,r=t.wordAt(i.head),s=r&&r.from==i.from&&r.to==i.to;for(let i=!1,r=new bh(t.doc,e,n[n.length-1].to);;){if(r.next(),!r.done){if(i&&n.some((t=>t.from==r.value.from)))continue;if(s){let e=t.wordAt(r.value.from);if(!e||e.from!=r.value.from||e.to!=r.value.to)continue}return r.value}if(i)return null;r=new bh(t.doc,e,0,Math.max(0,n[n.length-1].from-1)),i=!0}}(t,n);return!!r&&(e(t.update({selection:t.selection.addRange(B.range(r.from,r.to),!1),effects:Er.scrollIntoView(r.to)})),!0)},preventDefault:!0}];class lc{constructor(t){this.view=t;let e=this.query=t.state.field(qh).query.spec;function i(t,e,i){return vh("button",{class:"cm-button",name:t,onclick:e,type:"button"},i)}this.commit=this.commit.bind(this),this.searchField=vh("input",{value:e.search,placeholder:hc(t,"Find"),"aria-label":hc(t,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=vh("input",{value:e.replace,placeholder:hc(t,"Replace"),"aria-label":hc(t,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=vh("input",{type:"checkbox",name:"case",form:"",checked:e.caseSensitive,onchange:this.commit}),this.reField=vh("input",{type:"checkbox",name:"re",form:"",checked:e.regexp,onchange:this.commit}),this.wordField=vh("input",{type:"checkbox",name:"word",form:"",checked:e.wholeWord,onchange:this.commit}),this.dom=vh("div",{onkeydown:t=>this.keydown(t),class:"cm-search"},[this.searchField,i("next",(()=>Yh(t)),[hc(t,"next")]),i("prev",(()=>Xh(t)),[hc(t,"previous")]),i("select",(()=>Qh(t)),[hc(t,"all")]),vh("label",null,[this.caseField,hc(t,"match case")]),vh("label",null,[this.reField,hc(t,"regexp")]),vh("label",null,[this.wordField,hc(t,"by word")]),...t.state.readOnly?[]:[vh("br"),this.replaceField,i("replace",(()=>Zh(t)),[hc(t,"replace")]),i("replaceAll",(()=>tc(t)),[hc(t,"replace all")])],vh("button",{name:"close",onclick:()=>oc(t),"aria-label":hc(t,"close"),type:"button"},["×"])])}commit(){let t=new Nh({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});t.eq(this.query)||(this.query=t,this.view.dispatch({effects:_h.of(t)}))}keydown(t){var e,i;i=t,jr(Vr((e=this.view).state),i,e,"search-panel")?t.preventDefault():13==t.keyCode&&t.target==this.searchField?(t.preventDefault(),(t.shiftKey?Xh:Yh)(this.view)):13==t.keyCode&&t.target==this.replaceField&&(t.preventDefault(),Zh(this.view))}update(t){for(let e of t.transactions)for(let t of e.effects)t.is(_h)&&!t.value.eq(this.query)&&this.setQuery(t.value)}setQuery(t){this.query=t,this.searchField.value=t.search,this.replaceField.value=t.replace,this.caseField.checked=t.caseSensitive,this.reField.checked=t.regexp,this.wordField.checked=t.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(Ph).top}}function hc(t,e){return t.state.phrase(e)}const cc=30,uc=/[\s\.,:;?!]/;function fc(t,{from:e,to:i}){let n=t.state.doc.lineAt(e),r=t.state.doc.lineAt(i).to,s=Math.max(n.from,e-cc),o=Math.min(r,i+cc),a=t.state.sliceDoc(s,o);if(s!=n.from)for(let t=0;ta.length-cc;t--)if(!uc.test(a[t-1])&&uc.test(a[t])){a=a.slice(0,t);break}return Er.announce.of(`${t.state.phrase("current match")}. ${a} ${t.state.phrase("on line")} ${n.number}.`)}const dc=Er.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"}}),pc=[qh,q.low(Uh),dc];function gc(t){return gc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},gc(t)}function mc(t){return function(t){if(Array.isArray(t))return wc(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return wc(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?wc(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function wc(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i0,n}var i,n;return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Ac(t,e)}(e,t),i=e,(n=[{key:"setCodeMirrorPreference",value:function(t){this.useCodeMirror=t,xc(Sc(e.prototype),"setCodeMirrorPreference",this).call(this,t)}},{key:"enableCodeMirror",value:function(){var t=this;if(!this.view){var e=this.$textarea.prop("selectionStart"),i=this.$textarea.prop("selectionEnd"),n=this.$textarea.scrollTop(),r=this.$textarea.is(":focus"),s=[].concat(mc(this.defaultExtensions),[this.langExtension,ba(),sl(),Er.contentAttributes.of({spellcheck:"true"}),Er.domEventHandlers({blur:function(){return t.$textarea.triggerHandler("blur")},focus:function(){return t.$textarea.triggerHandler("focus")}}),Er.updateListener.of((function(e){e.docChanged&&"function"==typeof t.editRecoveryHandler&&t.editRecoveryHandler()})),Er.lineWrapping,Hr.of([].concat(mc(wh),mc(ac),mc(xl)))]);mw.hook("editRecovery.loadEnd").add((function(e){t.editRecoveryHandler=e.fieldChangeHandler})),this.initialize(s),this.view.scrollDOM.scrollTop=n,this.view.dispatch({selection:B.create([B.range(e,i)]),scrollIntoView:!0}),r&&this.view.focus(),mw.hook("ext.CodeMirror.switch").fire(!0,$(this.view.dom))}}},{key:"addCodeMirrorToWikiEditor",value:function(){var t=this,e=this.$textarea.data("wikiEditor-context"),i=e&&e.modules&&e.modules.toolbar;i&&(this.$textarea.wikiEditor("addToToolbar",{section:"main",groups:{codemirror:{tools:{CodeMirror:{label:mw.msg("codemirror-toggle-label"),type:"toggle",oouiIcon:"highlight",action:{type:"callback",execute:function(){return t.switchCodeMirror()}}}}}}}),i.$toolbar.find(".tool[rel=CodeMirror]").attr("id","mw-editbutton-codemirror"),this.useCodeMirror&&this.enableCodeMirror(),this.updateToolbarButton(),this.logUsage({editor:"wikitext",enabled:this.useCodeMirror,toggled:!1,edit_start_ts_ms:1e3*parseInt($('input[name="wpStarttime"]').val(),10)||0}))}},{key:"updateToolbarButton",value:function(){var t=$("#mw-editbutton-codemirror");t.toggleClass("mw-editbutton-codemirror-active",this.useCodeMirror),t.data("setActive")&&t.data("setActive")(this.useCodeMirror)}},{key:"switchCodeMirror",value:function(){if(this.view){this.setCodeMirrorPreference(!1);var t=this.view.scrollDOM.scrollTop,e=this.view.hasFocus,i=this.view.state.selection.ranges[0],n=i.from,r=i.to;$(this.view.dom).textSelection("unregister"),this.$textarea.textSelection("unregister"),this.$textarea.val(this.view.state.doc.toString()),this.view.destroy(),this.view=null,this.$textarea.show(),e&&this.$textarea.trigger("focus"),this.$textarea.prop("selectionStart",Math.min(n,r)).prop("selectionEnd",Math.max(r,n)),this.$textarea.scrollTop(t),mw.hook("ext.CodeMirror.switch").fire(!1,this.$textarea)}else this.enableCodeMirror(),this.setCodeMirrorPreference(!0);this.updateToolbarButton(),this.logUsage({editor:"wikitext",enabled:this.useCodeMirror,toggled:!0,edit_start_ts_ms:1e3*parseInt($('input[name="wpStarttime"]').val(),10)||0})}}])&&vc(i.prototype,n),Object.defineProperty(i,"prototype",{writable:!1}),e}(Cs);function Cc(t){return Cc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Cc(t)}function Tc(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i~).,'])"),"i"),this.isBold=!1,this.wasBold=!1,this.isItalic=!1,this.wasItalic=!1,this.firstSingleLetterWord=null,this.firstMultiLetterWord=null,this.firstSpace=null,this.oldStyle=null,this.tokens=[],this.oldTokens=[],this.tokenTable=Rc.tokenTable,Object.keys(this.config.tags).forEach((function(t){return Rc.addTag(t)}))}var e,i;return e=t,i=[{key:"eatHtmlEntity",value:function(t,e){return(t.eat("#")?t.eat("x")?t.eatWhile(/[a-fA-F\d]/)&&t.eat(";"):t.eatWhile(/[\d]/)&&t.eat(";"):t.eatWhile(/[\w.\-:]/)&&t.eat(";"))?Rc.tags.htmlEntity:e}},{key:"makeStyle",value:function(t,e,i){return this.isBold&&(t+=" "+Rc.tags.strong),this.isItalic&&(t+=" "+Rc.tags.em),this.makeLocalStyle(t,e,i)}},{key:"makeLocalStyle",value:function(t,e,i){var n="";switch(e.nTemplate){case 0:break;case 1:n+="-template";break;case 2:n+="-template2";break;default:n+="-template3"}switch(e.nExt){case 0:break;case 1:n+="-ext";break;case 2:n+="-ext2";break;default:n+="-ext3"}return e.nLink>0&&(n+="-link"),""!==n&&(t="mw".concat(n,"-ground ").concat(t)),i&&e[i]--,t.trim()}},{key:"eatBlock",value:function(t,e,i){var n=this;return function(r,s){return r.skipTo(e)?(!1!==i&&r.match(e),s.tokenize=s.stack.pop()):r.skipToEnd(),n.makeLocalStyle(t,s)}}},{key:"eatEnd",value:function(t){var e=this;return function(i,n){return i.skipToEnd(),n.tokenize=n.stack.pop(),e.makeLocalStyle(t,n)}}},{key:"eatChar",value:function(t,e){var i=this;return function(n,r){return r.tokenize=r.stack.pop(),n.eat(t)?i.makeLocalStyle(e,r):i.makeLocalStyle(Rc.tags.error,r)}}},{key:"eatSectionHeader",value:function(t){var e=this;return function(i,n){return i.match(/^[^&<[{~]+/)?(i.eol()?(i.backUp(t),n.tokenize=e.eatEnd(Rc.tags.sectionHeader)):i.match(/^.*?=)/,!1)&&(i.backUp(t),n.tokenize=e.eatBlock(Rc.tags.sectionHeader,"\x3c!--",!1)),Rc.tags.section):e.eatWikiText(Rc.tags.section)(i,n)}}},{key:"inVariable",value:function(t,e){return t.match(/^[^{}|]+/)?this.makeLocalStyle(Rc.tags.templateVariableName,e):t.eat("|")?(e.tokenize=this.inVariableDefault.bind(this),this.makeLocalStyle(Rc.tags.templateVariableDelimiter,e)):t.match("}}}")?(e.tokenize=e.stack.pop(),this.makeLocalStyle(Rc.tags.templateVariableBracket,e)):t.match("{{{")?(e.stack.push(e.tokenize),this.makeLocalStyle(Rc.tags.templateVariableBracket,e)):(t.next(),this.makeLocalStyle(Rc.tags.templateVariableName,e))}},{key:"inVariableDefault",value:function(t,e){return t.match(/^[^{}[<&~]+/)?this.makeLocalStyle(Rc.tags.templateVariable,e):t.match("}}}")?(e.tokenize=e.stack.pop(),this.makeLocalStyle(Rc.tags.templateVariableBracket,e)):this.eatWikiText(Rc.tags.templateVariable)(t,e)}},{key:"inParserFunctionName",value:function(t,e){return t.match(/^#?[^:}{~]+/)?this.makeLocalStyle(Rc.tags.parserFunctionName,e):t.eat(":")?(e.tokenize=this.inParserFunctionArguments.bind(this),this.makeLocalStyle(Rc.tags.parserFunctionDelimiter,e)):t.match("}}")?(e.tokenize=e.stack.pop(),this.makeLocalStyle(Rc.tags.parserFunctionBracket,e,"nExt")):this.eatWikiText(Rc.tags.parserFunction)(t,e)}},{key:"inParserFunctionArguments",value:function(t,e){return t.match(/^[^|}{[<&~]+/)?this.makeLocalStyle(Rc.tags.parserFunction,e):t.eat("|")?this.makeLocalStyle(Rc.tags.parserFunctionDelimiter,e):t.match("}}")?(e.tokenize=e.stack.pop(),this.makeLocalStyle(Rc.tags.parserFunctionBracket,e,"nExt")):this.eatWikiText(Rc.tags.parserFunction)(t,e)}},{key:"eatTemplatePageName",value:function(t){var e=this;return function(i,n){return i.match(/^[\s\u00a0]*\|[\s\u00a0]*/)?(n.tokenize=e.eatTemplateArgument(!0),e.makeLocalStyle(Rc.tags.templateDelimiter,n)):i.match(/^[\s\u00a0]*\}\}/)?(n.tokenize=n.stack.pop(),e.makeLocalStyle(Rc.tags.templateBracket,n,"nTemplate")):i.match(/^[\s\u00a0]*/)?e.makeLocalStyle(Rc.tags.comment,n):t&&i.sol()?(n.nTemplate--,void(n.tokenize=n.stack.pop())):i.match(/^[\s\u00a0]*[^\s\u00a0|}<{&~]+/)?(n.tokenize=e.eatTemplatePageName(!0),e.makeLocalStyle(Rc.tags.templateName,n)):i.eatSpace()?(i.eol(),e.makeLocalStyle(Rc.tags.templateName,n)):e.eatWikiText(Rc.tags.templateName)(i,n)}}},{key:"eatTemplateArgument",value:function(t){var e=this;return function(i,n){return t&&i.eatWhile(/[^=|}{[<&~]/)?i.eat("=")?(n.tokenize=e.eatTemplateArgument(!1),e.makeLocalStyle(Rc.tags.templateArgumentName,n)):e.makeLocalStyle(Rc.tags.template,n):i.eatWhile(/[^|}{[<&~]/)?e.makeLocalStyle(Rc.tags.template,n):i.eat("|")?(n.tokenize=e.eatTemplateArgument(!0),e.makeLocalStyle(Rc.tags.templateDelimiter,n)):i.match("}}")?(n.tokenize=n.stack.pop(),e.makeLocalStyle(Rc.tags.templateBracket,n,"nTemplate")):e.eatWikiText(Rc.tags.template)(i,n)}}},{key:"eatExternalLinkProtocol",value:function(t){var e=this;return function(i,n){for(;t>0;)t--,i.next();return i.eol()?(n.nLink--,n.tokenize=n.stack.pop()):n.tokenize=e.inExternalLink.bind(e),e.makeLocalStyle(Rc.tags.extLinkProtocol,n)}}},{key:"inExternalLink",value:function(t,e){return t.sol()?(e.nLink--,void(e.tokenize=e.stack.pop())):t.match(/^[\s\u00a0]*\]/)?(e.tokenize=e.stack.pop(),this.makeLocalStyle(Rc.tags.extLinkBracket,e,"nLink")):t.eatSpace()?(e.tokenize=this.inExternalLinkText.bind(this),this.makeStyle("",e)):t.match(/^[^\s\u00a0\]{&~']+/)||t.eatSpace()?("'"===t.peek()&&(t.match("''",!1)?e.tokenize=this.inExternalLinkText.bind(this):t.next()),this.makeStyle(Rc.tags.extLink,e)):this.eatWikiText(Rc.tags.extLink)(t,e)}},{key:"inExternalLinkText",value:function(t,e){return t.sol()?(e.nLink--,void(e.tokenize=e.stack.pop())):t.eat("]")?(e.tokenize=e.stack.pop(),this.makeLocalStyle(Rc.tags.extLinkBracket,e,"nLink")):t.match(/^[^'\]{&~<]+/)?this.makeStyle(Rc.tags.extLinkText,e):this.eatWikiText(Rc.tags.extLinkText)(t,e)}},{key:"inLink",value:function(t,e){return t.sol()?(e.nLink--,void(e.tokenize=e.stack.pop())):t.match(/^[\s\u00a0]*#[\s\u00a0]*/)?(e.tokenize=this.inLinkToSection.bind(this),this.makeLocalStyle(Rc.tags.link,e)):t.match(/^[\s\u00a0]*\|[\s\u00a0]*/)?(e.tokenize=this.eatLinkText(),this.makeLocalStyle(Rc.tags.linkDelimiter,e)):t.match(/^[\s\u00a0]*\]\]/)?(e.tokenize=e.stack.pop(),this.makeLocalStyle(Rc.tags.linkBracket,e,"nLink")):t.match(/^[\s\u00a0]*[^\s\u00a0#|\]&~{]+/)||t.eatSpace()?this.makeStyle("".concat(Rc.tags.linkPageName," ").concat(Rc.tags.pageName),e):this.eatWikiText("".concat(Rc.tags.linkPageName," ").concat(Rc.tags.pageName))(t,e)}},{key:"inLinkToSection",value:function(t,e){return t.sol()?(e.nLink--,void(e.tokenize=e.stack.pop())):t.match(/^[^|\]&~{}]+/)?this.makeLocalStyle(Rc.tags.linkToSection,e):t.eat("|")?(e.tokenize=this.eatLinkText(),this.makeLocalStyle(Rc.tags.linkDelimiter,e)):t.match("]]")?(e.tokenize=e.stack.pop(),this.makeLocalStyle(Rc.tags.linkBracket,e,"nLink")):this.eatWikiText(Rc.tags.linkToSection)(t,e)}},{key:"eatLinkText",value:function(){var t,e,i=this;return function(n,r){var s;return n.match("]]")?(r.tokenize=r.stack.pop(),i.makeLocalStyle(Rc.tags.linkBracket,r,"nLink")):n.match("'''")?(t=!t,i.makeLocalStyle("".concat(Rc.tags.linkText," ").concat(Rc.tags.apostrophes),r)):n.match("''")?(e=!e,i.makeLocalStyle("".concat(Rc.tags.linkText," ").concat(Rc.tags.apostrophes),r)):(s=Rc.tags.linkText,t&&(s+=" "+Rc.tags.strong),e&&(s+=" "+Rc.tags.em),n.match(/^[^'\]{&~<]+/)?i.makeStyle(s,r):i.eatWikiText(s)(n,r))}}},{key:"eatTagName",value:function(t,e,i){var n=this;return function(r,s){for(var o="";t>0;)t--,o+=r.next();return r.eatSpace(),o=o.toLowerCase(),i?(e&&!Rc.implicitlyClosedHtmlTags[o]?s.tokenize=n.eatChar(">",Rc.tags.htmlTagBracket):s.tokenize=n.eatHtmlTagAttribute(o),n.makeLocalStyle(Rc.tags.htmlTagName,s)):(s.tokenize=e?n.eatChar(">","".concat(Rc.tags.extTagBracket," mw-ext-").concat(o)):n.eatExtTagAttribute(o),n.makeLocalStyle("".concat(Rc.tags.extTagName," mw-ext-").concat(o),s))}}},{key:"eatHtmlTagAttribute",value:function(t){var e=this;return function(i,n){return i.match(/^(?:"[^<">]*"|'[^<'>]*'|[^>/<{&~])+/)?e.makeLocalStyle(Rc.tags.htmlTagAttribute,n):i.eat(">")?(t in Rc.implicitlyClosedHtmlTags||n.inHtmlTag.push(t),n.tokenize=n.stack.pop(),e.makeLocalStyle(Rc.tags.htmlTagBracket,n)):i.match("/>")?(n.tokenize=n.stack.pop(),e.makeLocalStyle(Rc.tags.htmlTagBracket,n)):e.eatWikiText(Rc.tags.htmlTagAttribute)(i,n)}}},{key:"eatNowiki",value:function(){var t=this;return function(e){return e.match(/^[^&]+/)?"":(e.next(),t.eatHtmlEntity(e,""))}}},{key:"eatExtTagAttribute",value:function(t){var e=this;return function(i,n){if(i.match(/^(?:"[^">]*"|'[^'>]*'|[^>/<{&~])+/))return e.makeLocalStyle("".concat(Rc.tags.extTagAttribute," mw-ext-").concat(t),n);if(i.eat(">")){if(n.extName=t,"nowiki"===t||"pre"===t)n.extMode={startState:function(){},copyState:function(){},token:e.eatNowiki()};else if(t in e.config.tagModes){var r=e.config.tagModes[t];"mediawiki"!==r&&"text/mediawiki"!==r||(n.extMode=e.mediawiki,n.extState=n.extMode.startState())}return n.tokenize=e.eatExtTagArea(t),e.makeLocalStyle("".concat(Rc.tags.extTagBracket," mw-ext-").concat(t),n)}return i.match("/>")?(n.tokenize=n.stack.pop(),e.makeLocalStyle("".concat(Rc.tags.extTagBracket," mw-ext-").concat(t),n)):e.eatWikiText("".concat(Rc.tags.extTagAttribute," mw-ext-").concat(t))(i,n)}}},{key:"eatExtTagArea",value:function(t){var e=this;return function(i,n){var r,s=i.pos,o=new RegExp(""),"i").exec(s?i.string.slice(s):i.string),a=!1;if(o){if(0===o.index)return n.tokenize=e.eatExtCloseTag(t),n.extName=!1,!1!==n.extMode&&(n.extMode=!1,n.extState=!1),n.tokenize(i,n);r=o.index+s,a=i.string,i.string=a.slice(0,r)}return n.stack.push(n.tokenize),n.tokenize=e.eatExtTokens(a),n.tokenize(i,n)}}},{key:"eatExtCloseTag",value:function(t){var e=this;return function(i,n){return i.next(),i.next(),n.tokenize=e.eatTagName(t.length,!0,!1),e.makeLocalStyle("".concat(Rc.tags.extTagBracket," mw-ext-").concat(t),n)}}},{key:"eatExtTokens",value:function(t){var e=this;return function(i,n){var r;return!1===n.extMode?(r=Rc.tags.extTag,i.skipToEnd()):r="mw-tag-".concat(n.extName," ")+n.extMode.token(i,n.extState,!1===t),i.eol()&&(!1!==t&&(i.string=t),n.tokenize=n.stack.pop()),e.makeLocalStyle(r,n)}}},{key:"eatStartTable",value:function(t,e){return t.match("{|"),t.eatSpace(),e.tokenize=this.inTableDefinition.bind(this),Rc.tags.tableBracket}},{key:"inTableDefinition",value:function(t,e){return t.sol()?(e.tokenize=this.inTable.bind(this),this.inTable(t,e)):this.eatWikiText(Rc.tags.tableDefinition)(t,e)}},{key:"inTable",value:function(t,e){if(t.sol()){if(t.eatSpace(),t.eat("|"))return t.eat("-")?(t.eatSpace(),e.tokenize=this.inTableDefinition.bind(this),this.makeLocalStyle(Rc.tags.tableDelimiter,e)):t.eat("+")?(t.eatSpace(),e.tokenize=this.eatTableRow(!0,!1,!0),this.makeLocalStyle(Rc.tags.tableDelimiter,e)):t.eat("}")?(e.tokenize=e.stack.pop(),this.makeLocalStyle(Rc.tags.tableBracket,e)):(t.eatSpace(),e.tokenize=this.eatTableRow(!0,!1),this.makeLocalStyle(Rc.tags.tableDelimiter,e));if(t.eat("!"))return t.eatSpace(),e.tokenize=this.eatTableRow(!0,!0),this.makeLocalStyle(Rc.tags.tableDelimiter,e)}return this.eatWikiText("")(t,e)}},{key:"eatTableRow",value:function(t,e,i){var n=this,r="";return i?r=Rc.tags.tableCaption:e&&(r=Rc.tags.strong),function(s,o){if(s.sol()){if(s.match(/^[\s\u00a0]*[|!]/,!1))return o.tokenize=n.inTable.bind(n),n.inTable(s,o)}else{if(s.match(/^[^'|{[<&~!]+/))return n.makeStyle(r,o);if(s.match("||")||e&&s.match("!!"))return n.isBold=!1,n.isItalic=!1,o.tokenize=n.eatTableRow(!0,e,i),n.makeLocalStyle(Rc.tags.tableDelimiter,o);if(t&&s.eat("|"))return o.tokenize=n.eatTableRow(!1,e,i),n.makeLocalStyle(Rc.tags.tableDelimiter,o)}return n.eatWikiText(r)(s,o)}}},{key:"eatFreeExternalLinkProtocol",value:function(t,e){return t.match(this.urlProtocols),e.tokenize=this.eatFreeExternalLink.bind(this),this.makeLocalStyle(Rc.tags.freeExtLinkProtocol,e)}},{key:"eatFreeExternalLink",value:function(t,e){if(t.eol());else if(t.match(/^[^\s\u00a0{[\]<>~).,']*/))if("~"===t.peek()){if(!t.match(/^~~~+/,!1))return t.match(/^~*/),this.makeLocalStyle(Rc.tags.freeExtLink,e)}else if("{"===t.peek()){if(!t.match("{{",!1))return t.next(),this.makeLocalStyle(Rc.tags.freeExtLink,e)}else if("'"===t.peek()){if(!t.match("''",!1))return t.next(),this.makeLocalStyle(Rc.tags.freeExtLink,e)}else if(t.match(/^[).,]+(?=[^\s\u00a0{[\]<>~).,])/))return this.makeLocalStyle(Rc.tags.freeExtLink,e);return e.tokenize=e.stack.pop(),this.makeLocalStyle(Rc.tags.freeExtLink,e)}},{key:"eatWikiText",value:function(t){var e=this;return function(i,n){var r,s,o,a,l,h,c;if(i.sol()){if(!i.match("//",!1)&&i.match(e.urlProtocols))return n.stack.push(n.tokenize),n.tokenize=e.eatFreeExternalLink.bind(e),e.makeLocalStyle(Rc.tags.freeExtLinkProtocol,n);switch(r=i.next()){case"-":if(i.match(/^---+/))return Rc.tags.hr;break;case"=":if(s=i.match(/^(={0,5})(.+?(=\1\s*)(.*\S).*?)?)$/))return i.backUp(s[2].length),n.stack.push(n.tokenize),n.tokenize=e.eatSectionHeader(s[3].length),Rc.tags.sectionHeader+" "+Rc.tags["sectionHeader".concat(s[1].length+1)];break;case"*":case"#":case";":return i.match(/^[*#;:]*/),Rc.tags.list;case":":return i.match(/^:*{\|/,!1)&&(n.stack.push(n.tokenize),n.tokenize=e.eatStartTable.bind(e)),i.match(/^[*#;:]*/),Rc.tags.indenting;case" ":if(!i.match(/^[\s\u00a0]*:*{\|/,!1))return Rc.tags.skipFormatting;if(i.eatSpace(),i.match(/^:+/))return n.stack.push(n.tokenize),n.tokenize=e.eatStartTable.bind(e),Rc.tags.indenting;i.eat("{");case"{":if(i.eat("|"))return i.eatSpace(),n.stack.push(n.tokenize),n.tokenize=e.inTableDefinition.bind(e),Rc.tags.tableBracket}}else r=i.next();switch(r){case"&":return e.makeStyle(e.eatHtmlEntity(i,t),n);case"'":if(i.match(/^'*(?=''''')/)||i.match(/^'''(?!')/,!1))break;if(i.match("''"))return e.firstSingleLetterWord||i.match("''",!1)||e.prepareItalicForCorrection(i),e.isBold=!e.isBold,e.makeLocalStyle(Rc.tags.apostrophesBold,n);if(i.eat("'"))return e.isItalic=!e.isItalic,e.makeLocalStyle(Rc.tags.apostrophesItalic,n);break;case"[":if(i.eat("[")){if(i.eatSpace(),/[^\]|[]/.test(i.peek()))return n.nLink++,n.stack.push(n.tokenize),n.tokenize=e.inLink.bind(e),e.makeLocalStyle(Rc.tags.linkBracket,n)}else if(o=i.match(e.urlProtocols))return n.nLink++,i.backUp(o[0].length),n.stack.push(n.tokenize),n.tokenize=e.eatExternalLinkProtocol(o[0].length),e.makeLocalStyle(Rc.tags.extLinkBracket,n);break;case"{":if(i.match(/^{{(?!{|[^{}]*}}(?!}))/))return i.eatSpace(),n.stack.push(n.tokenize),n.tokenize=e.inVariable.bind(e),e.makeLocalStyle(Rc.tags.templateVariableBracket,n);if(i.match(/^{(?!{(?!{))[\s\u00a0]*/))return"#"===i.peek()?(n.nExt++,n.stack.push(n.tokenize),n.tokenize=e.inParserFunctionName.bind(e),e.makeLocalStyle(Rc.tags.parserFunctionBracket,n)):!(a=i.match(/^([^\s\u00a0}[\]<{'|&:]+)(:|[\s\u00a0]*)(\}\}?)?(.)?/))||(i.backUp(a[0].length),":"!==a[2]&&void 0!==a[4]&&"}}"!==a[3]||!(a[1].toLowerCase()in e.config.functionSynonyms[0])&&!(a[1]in e.config.functionSynonyms[1]))?(n.nTemplate++,n.stack.push(n.tokenize),n.tokenize=e.eatTemplatePageName(!1),e.makeLocalStyle(Rc.tags.templateBracket,n)):(n.nExt++,n.stack.push(n.tokenize),n.tokenize=e.inParserFunctionName.bind(e),e.makeLocalStyle(Rc.tags.parserFunctionBracket,n));break;case"<":if(l=!!i.eat("/"),h=i.match(/^[^>/\s\u00a0.*,[\]{}$^+?|/\\'`~<=!@#%&()-]+/),i.match("!--"))return c=e.eatBlock(Rc.tags.comment,"--\x3e"),n.stack.push(n.tokenize),n.tokenize=c,c(i,n);if(h){if((h=h[0].toLowerCase())in e.config.tags)return!0===l?Rc.tags.error:(i.backUp(h.length),n.stack.push(n.tokenize),n.tokenize=e.eatTagName(h.length,l,!1),e.makeLocalStyle("".concat(Rc.tags.extTagBracket," mw-ext-").concat(h),n));if(h in Rc.permittedHtmlTags)return!0===l&&h!==n.inHtmlTag.pop()?(i.pos++,Rc.tags.error):!0===l&&h in Rc.implicitlyClosedHtmlTags?Rc.tags.error:(i.backUp(h.length),n.stack.push(n.tokenize),n.tokenize=e.eatTagName(h.length,l||h in Rc.implicitlyClosedHtmlTags,!0),e.makeLocalStyle(Rc.tags.htmlTagBracket,n));i.backUp(h.length)}break;case"~":if(i.match(/^~{2,4}/))return Rc.tags.signature;break;case"_":for(s=1;i.eat("_");)s++;if(s>2)return i.eol()||i.backUp(2),e.makeStyle(t,n);if(2===s&&(a=i.match(/^([^\s\u00a0>}[\]<{'|&:~]+?)__/))&&a[0])return"__"+a[0].toLowerCase()in e.config.doubleUnderscore[0]||"__"+a[0]in e.config.doubleUnderscore[1]?Rc.tags.doubleUnderscore:(i.eol()||i.backUp(2),e.makeStyle(t,n));break;default:if(/[\s\u00a0]/.test(r)&&(i.eatSpace(),i.match(e.urlProtocols,!1)&&!i.match("//")))return n.stack.push(n.tokenize),n.tokenize=e.eatFreeExternalLinkProtocol.bind(e),e.makeStyle(t,n)}return i.match(/^[^\s\u00a0_>}[\]<{'|&:~=]+/),e.makeStyle(t,n)}}},{key:"prepareItalicForCorrection",value:function(t){var e=t.pos,i=t.string.slice(0,e-3),n=i.slice(-1),r=i.slice(-2,-1);if(" "===n){if(this.firstMultiLetterWord||this.firstSpace)return;this.firstSpace=e}else if(" "===r)this.firstSingleLetterWord=e;else{if(this.firstMultiLetterWord)return;this.firstMultiLetterWord=e}this.wasBold=this.isBold,this.wasItalic=this.isItalic}},{key:"mediawiki",get:function(){var t=this;return{name:"mediawiki",startState:function(){return{tokenize:t.eatWikiText(""),stack:[],inHtmlTag:[],extName:!1,extMode:!1,extState:!1,nTemplate:0,nLink:0,nExt:0}},copyState:function(t){return{tokenize:t.tokenize,stack:t.stack.concat([]),inHtmlTag:t.inHtmlTag.concat([]),extName:t.extName,extMode:t.extMode,extState:!1!==t.extMode&&t.extMode.copyState(t.extState),nTemplate:t.nTemplate,nLink:t.nLink,nExt:t.nExt}},token:function(e,i){var n,r,s,o,a=[],l=[];if(t.oldTokens.length>0)return s=t.oldTokens.shift(),e.pos=s.pos,i=s.state,s.style;e.sol()&&(t.isBold=!1,t.isItalic=!1,t.firstSingleLetterWord=null,t.firstMultiLetterWord=null,t.firstSpace=null);do{if(n=i.tokenize(e,i),!(o=t.firstSingleLetterWord||t.firstMultiLetterWord||t.firstSpace))return t.oldStyle=n,n;o!==r&&(r=o,l.length>0&&(a=a.concat(l),l=[])),l.push({pos:e.pos,style:n,state:(i.extMode||t.mediawiki).copyState(i)})}while(!e.eol());if(t.isBold&&t.isItalic){if(t.isItalic=t.wasItalic,t.isBold=t.wasBold,t.firstSingleLetterWord=null,t.firstMultiLetterWord=null,t.firstSpace=null,!(a.length>0))return e.pos=l[0].pos-2,t.oldStyle;a[a.length-1].pos++,t.oldTokens=a}else t.oldTokens=a.concat(l);return s=t.oldTokens.shift(),e.pos=s.pos,i=s.state,s.style},blankLine:function(t){t.extMode&&t.extMode.blankLine&&t.extMode.blankLine(t.extState)},tokenTable:this.tokenTable}}}],i&&zc(e.prototype,i),Object.defineProperty(e,"prototype",{writable:!1}),t}();mw.loader.getState("ext.wikiEditor")&&mw.hook("wikiEditor.toolbarReady").add((function(t){new Mc(t,function(){var t=new Wc((arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||mw.config.get("extCodeMirrorConfig")).mediawiki,e=La.define(t),i=function(t,e){let i,n=[ua];return t instanceof oa&&(t.module&&n.push(Er.styleModule.of(t.module)),i=t.themeType),i?n.push(aa.computeN([Er.darkTheme],(e=>e.facet(Er.darkTheme)==("dark"==i)?[t]:[]))):n.push(aa.of(t)),n}(oa.define(Rc.getTagStyles(t)));return new Go(e,i)}()).addCodeMirrorToWikiEditor()}))})(); //# sourceMappingURL=main.js.map.json \ No newline at end of file diff --git a/resources/dist/main.js.map.json b/resources/dist/main.js.map.json index 1117354a..2199a594 100644 --- a/resources/dist/main.js.map.json +++ b/resources/dist/main.js.map.json @@ -1 +1 @@ -{"version":3,"file":"main.js","mappings":"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","sources":["/w/extensions/CodeMirror/./node_modules/@codemirror/state/dist/index.js","/w/extensions/CodeMirror/./node_modules/style-mod/src/style-mod.js","/w/extensions/CodeMirror/./node_modules/w3c-keyname/index.js","/w/extensions/CodeMirror/./node_modules/@codemirror/view/dist/index.js","/w/extensions/CodeMirror/./src/codemirror.js","/w/extensions/CodeMirror/./node_modules/@lezer/common/dist/index.js","/w/extensions/CodeMirror/./node_modules/@lezer/highlight/dist/index.js","/w/extensions/CodeMirror/./node_modules/@codemirror/language/dist/index.js","/w/extensions/CodeMirror/./node_modules/@codemirror/commands/dist/index.js","/w/extensions/CodeMirror/./node_modules/crelt/index.js","/w/extensions/CodeMirror/./node_modules/@codemirror/search/dist/index.js","/w/extensions/CodeMirror/./src/codemirror.wikieditor.js","/w/extensions/CodeMirror/./src/codemirror.mode.mediawiki.config.js","/w/extensions/CodeMirror/./src/codemirror.mode.mediawiki.js","/w/extensions/CodeMirror/./src/codemirror.wikieditor.mediawiki.js"],"sourcesContent":["/**\nThe data structure for documents. @nonabstract\n*/\nclass Text {\n /**\n Get the line description around the given position.\n */\n lineAt(pos) {\n if (pos < 0 || pos > this.length)\n throw new RangeError(`Invalid position ${pos} in document of length ${this.length}`);\n return this.lineInner(pos, false, 1, 0);\n }\n /**\n Get the description for the given (1-based) line number.\n */\n line(n) {\n if (n < 1 || n > this.lines)\n throw new RangeError(`Invalid line number ${n} in ${this.lines}-line document`);\n return this.lineInner(n, true, 1, 0);\n }\n /**\n Replace a range of the text with the given content.\n */\n replace(from, to, text) {\n let parts = [];\n this.decompose(0, from, parts, 2 /* Open.To */);\n if (text.length)\n text.decompose(0, text.length, parts, 1 /* Open.From */ | 2 /* Open.To */);\n this.decompose(to, this.length, parts, 1 /* Open.From */);\n return TextNode.from(parts, this.length - (to - from) + text.length);\n }\n /**\n Append another document to this one.\n */\n append(other) {\n return this.replace(this.length, this.length, other);\n }\n /**\n Retrieve the text between the given points.\n */\n slice(from, to = this.length) {\n let parts = [];\n this.decompose(from, to, parts, 0);\n return TextNode.from(parts, to - from);\n }\n /**\n Test whether this text is equal to another instance.\n */\n eq(other) {\n if (other == this)\n return true;\n if (other.length != this.length || other.lines != this.lines)\n return false;\n let start = this.scanIdentical(other, 1), end = this.length - this.scanIdentical(other, -1);\n let a = new RawTextCursor(this), b = new RawTextCursor(other);\n for (let skip = start, pos = start;;) {\n a.next(skip);\n b.next(skip);\n skip = 0;\n if (a.lineBreak != b.lineBreak || a.done != b.done || a.value != b.value)\n return false;\n pos += a.value.length;\n if (a.done || pos >= end)\n return true;\n }\n }\n /**\n Iterate over the text. When `dir` is `-1`, iteration happens\n from end to start. This will return lines and the breaks between\n them as separate strings.\n */\n iter(dir = 1) { return new RawTextCursor(this, dir); }\n /**\n Iterate over a range of the text. When `from` > `to`, the\n iterator will run in reverse.\n */\n iterRange(from, to = this.length) { return new PartialTextCursor(this, from, to); }\n /**\n Return a cursor that iterates over the given range of lines,\n _without_ returning the line breaks between, and yielding empty\n strings for empty lines.\n \n When `from` and `to` are given, they should be 1-based line numbers.\n */\n iterLines(from, to) {\n let inner;\n if (from == null) {\n inner = this.iter();\n }\n else {\n if (to == null)\n to = this.lines + 1;\n let start = this.line(from).from;\n inner = this.iterRange(start, Math.max(start, to == this.lines + 1 ? this.length : to <= 1 ? 0 : this.line(to - 1).to));\n }\n return new LineCursor(inner);\n }\n /**\n Return the document as a string, using newline characters to\n separate lines.\n */\n toString() { return this.sliceString(0); }\n /**\n Convert the document to an array of lines (which can be\n deserialized again via [`Text.of`](https://codemirror.net/6/docs/ref/#state.Text^of)).\n */\n toJSON() {\n let lines = [];\n this.flatten(lines);\n return lines;\n }\n /**\n @internal\n */\n constructor() { }\n /**\n Create a `Text` instance for the given array of lines.\n */\n static of(text) {\n if (text.length == 0)\n throw new RangeError(\"A document must have at least one line\");\n if (text.length == 1 && !text[0])\n return Text.empty;\n return text.length <= 32 /* Tree.Branch */ ? new TextLeaf(text) : TextNode.from(TextLeaf.split(text, []));\n }\n}\n// Leaves store an array of line strings. There are always line breaks\n// between these strings. Leaves are limited in size and have to be\n// contained in TextNode instances for bigger documents.\nclass TextLeaf extends Text {\n constructor(text, length = textLength(text)) {\n super();\n this.text = text;\n this.length = length;\n }\n get lines() { return this.text.length; }\n get children() { return null; }\n lineInner(target, isLine, line, offset) {\n for (let i = 0;; i++) {\n let string = this.text[i], end = offset + string.length;\n if ((isLine ? line : end) >= target)\n return new Line(offset, end, line, string);\n offset = end + 1;\n line++;\n }\n }\n decompose(from, to, target, open) {\n let text = from <= 0 && to >= this.length ? this\n : new TextLeaf(sliceText(this.text, from, to), Math.min(to, this.length) - Math.max(0, from));\n if (open & 1 /* Open.From */) {\n let prev = target.pop();\n let joined = appendText(text.text, prev.text.slice(), 0, text.length);\n if (joined.length <= 32 /* Tree.Branch */) {\n target.push(new TextLeaf(joined, prev.length + text.length));\n }\n else {\n let mid = joined.length >> 1;\n target.push(new TextLeaf(joined.slice(0, mid)), new TextLeaf(joined.slice(mid)));\n }\n }\n else {\n target.push(text);\n }\n }\n replace(from, to, text) {\n if (!(text instanceof TextLeaf))\n return super.replace(from, to, text);\n let lines = appendText(this.text, appendText(text.text, sliceText(this.text, 0, from)), to);\n let newLen = this.length + text.length - (to - from);\n if (lines.length <= 32 /* Tree.Branch */)\n return new TextLeaf(lines, newLen);\n return TextNode.from(TextLeaf.split(lines, []), newLen);\n }\n sliceString(from, to = this.length, lineSep = \"\\n\") {\n let result = \"\";\n for (let pos = 0, i = 0; pos <= to && i < this.text.length; i++) {\n let line = this.text[i], end = pos + line.length;\n if (pos > from && i)\n result += lineSep;\n if (from < end && to > pos)\n result += line.slice(Math.max(0, from - pos), to - pos);\n pos = end + 1;\n }\n return result;\n }\n flatten(target) {\n for (let line of this.text)\n target.push(line);\n }\n scanIdentical() { return 0; }\n static split(text, target) {\n let part = [], len = -1;\n for (let line of text) {\n part.push(line);\n len += line.length + 1;\n if (part.length == 32 /* Tree.Branch */) {\n target.push(new TextLeaf(part, len));\n part = [];\n len = -1;\n }\n }\n if (len > -1)\n target.push(new TextLeaf(part, len));\n return target;\n }\n}\n// Nodes provide the tree structure of the `Text` type. They store a\n// number of other nodes or leaves, taking care to balance themselves\n// on changes. There are implied line breaks _between_ the children of\n// a node (but not before the first or after the last child).\nclass TextNode extends Text {\n constructor(children, length) {\n super();\n this.children = children;\n this.length = length;\n this.lines = 0;\n for (let child of children)\n this.lines += child.lines;\n }\n lineInner(target, isLine, line, offset) {\n for (let i = 0;; i++) {\n let child = this.children[i], end = offset + child.length, endLine = line + child.lines - 1;\n if ((isLine ? endLine : end) >= target)\n return child.lineInner(target, isLine, line, offset);\n offset = end + 1;\n line = endLine + 1;\n }\n }\n decompose(from, to, target, open) {\n for (let i = 0, pos = 0; pos <= to && i < this.children.length; i++) {\n let child = this.children[i], end = pos + child.length;\n if (from <= end && to >= pos) {\n let childOpen = open & ((pos <= from ? 1 /* Open.From */ : 0) | (end >= to ? 2 /* Open.To */ : 0));\n if (pos >= from && end <= to && !childOpen)\n target.push(child);\n else\n child.decompose(from - pos, to - pos, target, childOpen);\n }\n pos = end + 1;\n }\n }\n replace(from, to, text) {\n if (text.lines < this.lines)\n for (let i = 0, pos = 0; i < this.children.length; i++) {\n let child = this.children[i], end = pos + child.length;\n // Fast path: if the change only affects one child and the\n // child's size remains in the acceptable range, only update\n // that child\n if (from >= pos && to <= end) {\n let updated = child.replace(from - pos, to - pos, text);\n let totalLines = this.lines - child.lines + updated.lines;\n if (updated.lines < (totalLines >> (5 /* Tree.BranchShift */ - 1)) &&\n updated.lines > (totalLines >> (5 /* Tree.BranchShift */ + 1))) {\n let copy = this.children.slice();\n copy[i] = updated;\n return new TextNode(copy, this.length - (to - from) + text.length);\n }\n return super.replace(pos, end, updated);\n }\n pos = end + 1;\n }\n return super.replace(from, to, text);\n }\n sliceString(from, to = this.length, lineSep = \"\\n\") {\n let result = \"\";\n for (let i = 0, pos = 0; i < this.children.length && pos <= to; i++) {\n let child = this.children[i], end = pos + child.length;\n if (pos > from && i)\n result += lineSep;\n if (from < end && to > pos)\n result += child.sliceString(from - pos, to - pos, lineSep);\n pos = end + 1;\n }\n return result;\n }\n flatten(target) {\n for (let child of this.children)\n child.flatten(target);\n }\n scanIdentical(other, dir) {\n if (!(other instanceof TextNode))\n return 0;\n let length = 0;\n let [iA, iB, eA, eB] = dir > 0 ? [0, 0, this.children.length, other.children.length]\n : [this.children.length - 1, other.children.length - 1, -1, -1];\n for (;; iA += dir, iB += dir) {\n if (iA == eA || iB == eB)\n return length;\n let chA = this.children[iA], chB = other.children[iB];\n if (chA != chB)\n return length + chA.scanIdentical(chB, dir);\n length += chA.length + 1;\n }\n }\n static from(children, length = children.reduce((l, ch) => l + ch.length + 1, -1)) {\n let lines = 0;\n for (let ch of children)\n lines += ch.lines;\n if (lines < 32 /* Tree.Branch */) {\n let flat = [];\n for (let ch of children)\n ch.flatten(flat);\n return new TextLeaf(flat, length);\n }\n let chunk = Math.max(32 /* Tree.Branch */, lines >> 5 /* Tree.BranchShift */), maxChunk = chunk << 1, minChunk = chunk >> 1;\n let chunked = [], currentLines = 0, currentLen = -1, currentChunk = [];\n function add(child) {\n let last;\n if (child.lines > maxChunk && child instanceof TextNode) {\n for (let node of child.children)\n add(node);\n }\n else if (child.lines > minChunk && (currentLines > minChunk || !currentLines)) {\n flush();\n chunked.push(child);\n }\n else if (child instanceof TextLeaf && currentLines &&\n (last = currentChunk[currentChunk.length - 1]) instanceof TextLeaf &&\n child.lines + last.lines <= 32 /* Tree.Branch */) {\n currentLines += child.lines;\n currentLen += child.length + 1;\n currentChunk[currentChunk.length - 1] = new TextLeaf(last.text.concat(child.text), last.length + 1 + child.length);\n }\n else {\n if (currentLines + child.lines > chunk)\n flush();\n currentLines += child.lines;\n currentLen += child.length + 1;\n currentChunk.push(child);\n }\n }\n function flush() {\n if (currentLines == 0)\n return;\n chunked.push(currentChunk.length == 1 ? currentChunk[0] : TextNode.from(currentChunk, currentLen));\n currentLen = -1;\n currentLines = currentChunk.length = 0;\n }\n for (let child of children)\n add(child);\n flush();\n return chunked.length == 1 ? chunked[0] : new TextNode(chunked, length);\n }\n}\nText.empty = /*@__PURE__*/new TextLeaf([\"\"], 0);\nfunction textLength(text) {\n let length = -1;\n for (let line of text)\n length += line.length + 1;\n return length;\n}\nfunction appendText(text, target, from = 0, to = 1e9) {\n for (let pos = 0, i = 0, first = true; i < text.length && pos <= to; i++) {\n let line = text[i], end = pos + line.length;\n if (end >= from) {\n if (end > to)\n line = line.slice(0, to - pos);\n if (pos < from)\n line = line.slice(from - pos);\n if (first) {\n target[target.length - 1] += line;\n first = false;\n }\n else\n target.push(line);\n }\n pos = end + 1;\n }\n return target;\n}\nfunction sliceText(text, from, to) {\n return appendText(text, [\"\"], from, to);\n}\nclass RawTextCursor {\n constructor(text, dir = 1) {\n this.dir = dir;\n this.done = false;\n this.lineBreak = false;\n this.value = \"\";\n this.nodes = [text];\n this.offsets = [dir > 0 ? 1 : (text instanceof TextLeaf ? text.text.length : text.children.length) << 1];\n }\n nextInner(skip, dir) {\n this.done = this.lineBreak = false;\n for (;;) {\n let last = this.nodes.length - 1;\n let top = this.nodes[last], offsetValue = this.offsets[last], offset = offsetValue >> 1;\n let size = top instanceof TextLeaf ? top.text.length : top.children.length;\n if (offset == (dir > 0 ? size : 0)) {\n if (last == 0) {\n this.done = true;\n this.value = \"\";\n return this;\n }\n if (dir > 0)\n this.offsets[last - 1]++;\n this.nodes.pop();\n this.offsets.pop();\n }\n else if ((offsetValue & 1) == (dir > 0 ? 0 : 1)) {\n this.offsets[last] += dir;\n if (skip == 0) {\n this.lineBreak = true;\n this.value = \"\\n\";\n return this;\n }\n skip--;\n }\n else if (top instanceof TextLeaf) {\n // Move to the next string\n let next = top.text[offset + (dir < 0 ? -1 : 0)];\n this.offsets[last] += dir;\n if (next.length > Math.max(0, skip)) {\n this.value = skip == 0 ? next : dir > 0 ? next.slice(skip) : next.slice(0, next.length - skip);\n return this;\n }\n skip -= next.length;\n }\n else {\n let next = top.children[offset + (dir < 0 ? -1 : 0)];\n if (skip > next.length) {\n skip -= next.length;\n this.offsets[last] += dir;\n }\n else {\n if (dir < 0)\n this.offsets[last]--;\n this.nodes.push(next);\n this.offsets.push(dir > 0 ? 1 : (next instanceof TextLeaf ? next.text.length : next.children.length) << 1);\n }\n }\n }\n }\n next(skip = 0) {\n if (skip < 0) {\n this.nextInner(-skip, (-this.dir));\n skip = this.value.length;\n }\n return this.nextInner(skip, this.dir);\n }\n}\nclass PartialTextCursor {\n constructor(text, start, end) {\n this.value = \"\";\n this.done = false;\n this.cursor = new RawTextCursor(text, start > end ? -1 : 1);\n this.pos = start > end ? text.length : 0;\n this.from = Math.min(start, end);\n this.to = Math.max(start, end);\n }\n nextInner(skip, dir) {\n if (dir < 0 ? this.pos <= this.from : this.pos >= this.to) {\n this.value = \"\";\n this.done = true;\n return this;\n }\n skip += Math.max(0, dir < 0 ? this.pos - this.to : this.from - this.pos);\n let limit = dir < 0 ? this.pos - this.from : this.to - this.pos;\n if (skip > limit)\n skip = limit;\n limit -= skip;\n let { value } = this.cursor.next(skip);\n this.pos += (value.length + skip) * dir;\n this.value = value.length <= limit ? value : dir < 0 ? value.slice(value.length - limit) : value.slice(0, limit);\n this.done = !this.value;\n return this;\n }\n next(skip = 0) {\n if (skip < 0)\n skip = Math.max(skip, this.from - this.pos);\n else if (skip > 0)\n skip = Math.min(skip, this.to - this.pos);\n return this.nextInner(skip, this.cursor.dir);\n }\n get lineBreak() { return this.cursor.lineBreak && this.value != \"\"; }\n}\nclass LineCursor {\n constructor(inner) {\n this.inner = inner;\n this.afterBreak = true;\n this.value = \"\";\n this.done = false;\n }\n next(skip = 0) {\n let { done, lineBreak, value } = this.inner.next(skip);\n if (done) {\n this.done = true;\n this.value = \"\";\n }\n else if (lineBreak) {\n if (this.afterBreak) {\n this.value = \"\";\n }\n else {\n this.afterBreak = true;\n this.next();\n }\n }\n else {\n this.value = value;\n this.afterBreak = false;\n }\n return this;\n }\n get lineBreak() { return false; }\n}\nif (typeof Symbol != \"undefined\") {\n Text.prototype[Symbol.iterator] = function () { return this.iter(); };\n RawTextCursor.prototype[Symbol.iterator] = PartialTextCursor.prototype[Symbol.iterator] =\n LineCursor.prototype[Symbol.iterator] = function () { return this; };\n}\n/**\nThis type describes a line in the document. It is created\non-demand when lines are [queried](https://codemirror.net/6/docs/ref/#state.Text.lineAt).\n*/\nclass Line {\n /**\n @internal\n */\n constructor(\n /**\n The position of the start of the line.\n */\n from, \n /**\n The position at the end of the line (_before_ the line break,\n or at the end of document for the last line).\n */\n to, \n /**\n This line's line number (1-based).\n */\n number, \n /**\n The line's content.\n */\n text) {\n this.from = from;\n this.to = to;\n this.number = number;\n this.text = text;\n }\n /**\n The length of the line (not including any line break after it).\n */\n get length() { return this.to - this.from; }\n}\n\n// Compressed representation of the Grapheme_Cluster_Break=Extend\n// information from\n// http://www.unicode.org/Public/13.0.0/ucd/auxiliary/GraphemeBreakProperty.txt.\n// Each pair of elements represents a range, as an offet from the\n// previous range and a length. Numbers are in base-36, with the empty\n// string being a shorthand for 1.\nlet extend = /*@__PURE__*/\"lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o\".split(\",\").map(s => s ? parseInt(s, 36) : 1);\n// Convert offsets into absolute values\nfor (let i = 1; i < extend.length; i++)\n extend[i] += extend[i - 1];\nfunction isExtendingChar(code) {\n for (let i = 1; i < extend.length; i += 2)\n if (extend[i] > code)\n return extend[i - 1] <= code;\n return false;\n}\nfunction isRegionalIndicator(code) {\n return code >= 0x1F1E6 && code <= 0x1F1FF;\n}\nconst ZWJ = 0x200d;\n/**\nReturns a next grapheme cluster break _after_ (not equal to)\n`pos`, if `forward` is true, or before otherwise. Returns `pos`\nitself if no further cluster break is available in the string.\nMoves across surrogate pairs, extending characters (when\n`includeExtending` is true), characters joined with zero-width\njoiners, and flag emoji.\n*/\nfunction findClusterBreak(str, pos, forward = true, includeExtending = true) {\n return (forward ? nextClusterBreak : prevClusterBreak)(str, pos, includeExtending);\n}\nfunction nextClusterBreak(str, pos, includeExtending) {\n if (pos == str.length)\n return pos;\n // If pos is in the middle of a surrogate pair, move to its start\n if (pos && surrogateLow(str.charCodeAt(pos)) && surrogateHigh(str.charCodeAt(pos - 1)))\n pos--;\n let prev = codePointAt(str, pos);\n pos += codePointSize(prev);\n while (pos < str.length) {\n let next = codePointAt(str, pos);\n if (prev == ZWJ || next == ZWJ || includeExtending && isExtendingChar(next)) {\n pos += codePointSize(next);\n prev = next;\n }\n else if (isRegionalIndicator(next)) {\n let countBefore = 0, i = pos - 2;\n while (i >= 0 && isRegionalIndicator(codePointAt(str, i))) {\n countBefore++;\n i -= 2;\n }\n if (countBefore % 2 == 0)\n break;\n else\n pos += 2;\n }\n else {\n break;\n }\n }\n return pos;\n}\nfunction prevClusterBreak(str, pos, includeExtending) {\n while (pos > 0) {\n let found = nextClusterBreak(str, pos - 2, includeExtending);\n if (found < pos)\n return found;\n pos--;\n }\n return 0;\n}\nfunction surrogateLow(ch) { return ch >= 0xDC00 && ch < 0xE000; }\nfunction surrogateHigh(ch) { return ch >= 0xD800 && ch < 0xDC00; }\n/**\nFind the code point at the given position in a string (like the\n[`codePointAt`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/codePointAt)\nstring method).\n*/\nfunction codePointAt(str, pos) {\n let code0 = str.charCodeAt(pos);\n if (!surrogateHigh(code0) || pos + 1 == str.length)\n return code0;\n let code1 = str.charCodeAt(pos + 1);\n if (!surrogateLow(code1))\n return code0;\n return ((code0 - 0xd800) << 10) + (code1 - 0xdc00) + 0x10000;\n}\n/**\nGiven a Unicode codepoint, return the JavaScript string that\nrespresents it (like\n[`String.fromCodePoint`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCodePoint)).\n*/\nfunction fromCodePoint(code) {\n if (code <= 0xffff)\n return String.fromCharCode(code);\n code -= 0x10000;\n return String.fromCharCode((code >> 10) + 0xd800, (code & 1023) + 0xdc00);\n}\n/**\nThe amount of positions a character takes up a JavaScript string.\n*/\nfunction codePointSize(code) { return code < 0x10000 ? 1 : 2; }\n\nconst DefaultSplit = /\\r\\n?|\\n/;\n/**\nDistinguishes different ways in which positions can be mapped.\n*/\nvar MapMode = /*@__PURE__*/(function (MapMode) {\n /**\n Map a position to a valid new position, even when its context\n was deleted.\n */\n MapMode[MapMode[\"Simple\"] = 0] = \"Simple\";\n /**\n Return null if deletion happens across the position.\n */\n MapMode[MapMode[\"TrackDel\"] = 1] = \"TrackDel\";\n /**\n Return null if the character _before_ the position is deleted.\n */\n MapMode[MapMode[\"TrackBefore\"] = 2] = \"TrackBefore\";\n /**\n Return null if the character _after_ the position is deleted.\n */\n MapMode[MapMode[\"TrackAfter\"] = 3] = \"TrackAfter\";\nreturn MapMode})(MapMode || (MapMode = {}));\n/**\nA change description is a variant of [change set](https://codemirror.net/6/docs/ref/#state.ChangeSet)\nthat doesn't store the inserted text. As such, it can't be\napplied, but is cheaper to store and manipulate.\n*/\nclass ChangeDesc {\n // Sections are encoded as pairs of integers. The first is the\n // length in the current document, and the second is -1 for\n // unaffected sections, and the length of the replacement content\n // otherwise. So an insertion would be (0, n>0), a deletion (n>0,\n // 0), and a replacement two positive numbers.\n /**\n @internal\n */\n constructor(\n /**\n @internal\n */\n sections) {\n this.sections = sections;\n }\n /**\n The length of the document before the change.\n */\n get length() {\n let result = 0;\n for (let i = 0; i < this.sections.length; i += 2)\n result += this.sections[i];\n return result;\n }\n /**\n The length of the document after the change.\n */\n get newLength() {\n let result = 0;\n for (let i = 0; i < this.sections.length; i += 2) {\n let ins = this.sections[i + 1];\n result += ins < 0 ? this.sections[i] : ins;\n }\n return result;\n }\n /**\n False when there are actual changes in this set.\n */\n get empty() { return this.sections.length == 0 || this.sections.length == 2 && this.sections[1] < 0; }\n /**\n Iterate over the unchanged parts left by these changes. `posA`\n provides the position of the range in the old document, `posB`\n the new position in the changed document.\n */\n iterGaps(f) {\n for (let i = 0, posA = 0, posB = 0; i < this.sections.length;) {\n let len = this.sections[i++], ins = this.sections[i++];\n if (ins < 0) {\n f(posA, posB, len);\n posB += len;\n }\n else {\n posB += ins;\n }\n posA += len;\n }\n }\n /**\n Iterate over the ranges changed by these changes. (See\n [`ChangeSet.iterChanges`](https://codemirror.net/6/docs/ref/#state.ChangeSet.iterChanges) for a\n variant that also provides you with the inserted text.)\n `fromA`/`toA` provides the extent of the change in the starting\n document, `fromB`/`toB` the extent of the replacement in the\n changed document.\n \n When `individual` is true, adjacent changes (which are kept\n separate for [position mapping](https://codemirror.net/6/docs/ref/#state.ChangeDesc.mapPos)) are\n reported separately.\n */\n iterChangedRanges(f, individual = false) {\n iterChanges(this, f, individual);\n }\n /**\n Get a description of the inverted form of these changes.\n */\n get invertedDesc() {\n let sections = [];\n for (let i = 0; i < this.sections.length;) {\n let len = this.sections[i++], ins = this.sections[i++];\n if (ins < 0)\n sections.push(len, ins);\n else\n sections.push(ins, len);\n }\n return new ChangeDesc(sections);\n }\n /**\n Compute the combined effect of applying another set of changes\n after this one. The length of the document after this set should\n match the length before `other`.\n */\n composeDesc(other) { return this.empty ? other : other.empty ? this : composeSets(this, other); }\n /**\n Map this description, which should start with the same document\n as `other`, over another set of changes, so that it can be\n applied after it. When `before` is true, map as if the changes\n in `other` happened before the ones in `this`.\n */\n mapDesc(other, before = false) { return other.empty ? this : mapSet(this, other, before); }\n mapPos(pos, assoc = -1, mode = MapMode.Simple) {\n let posA = 0, posB = 0;\n for (let i = 0; i < this.sections.length;) {\n let len = this.sections[i++], ins = this.sections[i++], endA = posA + len;\n if (ins < 0) {\n if (endA > pos)\n return posB + (pos - posA);\n posB += len;\n }\n else {\n if (mode != MapMode.Simple && endA >= pos &&\n (mode == MapMode.TrackDel && posA < pos && endA > pos ||\n mode == MapMode.TrackBefore && posA < pos ||\n mode == MapMode.TrackAfter && endA > pos))\n return null;\n if (endA > pos || endA == pos && assoc < 0 && !len)\n return pos == posA || assoc < 0 ? posB : posB + ins;\n posB += ins;\n }\n posA = endA;\n }\n if (pos > posA)\n throw new RangeError(`Position ${pos} is out of range for changeset of length ${posA}`);\n return posB;\n }\n /**\n Check whether these changes touch a given range. When one of the\n changes entirely covers the range, the string `\"cover\"` is\n returned.\n */\n touchesRange(from, to = from) {\n for (let i = 0, pos = 0; i < this.sections.length && pos <= to;) {\n let len = this.sections[i++], ins = this.sections[i++], end = pos + len;\n if (ins >= 0 && pos <= to && end >= from)\n return pos < from && end > to ? \"cover\" : true;\n pos = end;\n }\n return false;\n }\n /**\n @internal\n */\n toString() {\n let result = \"\";\n for (let i = 0; i < this.sections.length;) {\n let len = this.sections[i++], ins = this.sections[i++];\n result += (result ? \" \" : \"\") + len + (ins >= 0 ? \":\" + ins : \"\");\n }\n return result;\n }\n /**\n Serialize this change desc to a JSON-representable value.\n */\n toJSON() { return this.sections; }\n /**\n Create a change desc from its JSON representation (as produced\n by [`toJSON`](https://codemirror.net/6/docs/ref/#state.ChangeDesc.toJSON).\n */\n static fromJSON(json) {\n if (!Array.isArray(json) || json.length % 2 || json.some(a => typeof a != \"number\"))\n throw new RangeError(\"Invalid JSON representation of ChangeDesc\");\n return new ChangeDesc(json);\n }\n /**\n @internal\n */\n static create(sections) { return new ChangeDesc(sections); }\n}\n/**\nA change set represents a group of modifications to a document. It\nstores the document length, and can only be applied to documents\nwith exactly that length.\n*/\nclass ChangeSet extends ChangeDesc {\n constructor(sections, \n /**\n @internal\n */\n inserted) {\n super(sections);\n this.inserted = inserted;\n }\n /**\n Apply the changes to a document, returning the modified\n document.\n */\n apply(doc) {\n if (this.length != doc.length)\n throw new RangeError(\"Applying change set to a document with the wrong length\");\n iterChanges(this, (fromA, toA, fromB, _toB, text) => doc = doc.replace(fromB, fromB + (toA - fromA), text), false);\n return doc;\n }\n mapDesc(other, before = false) { return mapSet(this, other, before, true); }\n /**\n Given the document as it existed _before_ the changes, return a\n change set that represents the inverse of this set, which could\n be used to go from the document created by the changes back to\n the document as it existed before the changes.\n */\n invert(doc) {\n let sections = this.sections.slice(), inserted = [];\n for (let i = 0, pos = 0; i < sections.length; i += 2) {\n let len = sections[i], ins = sections[i + 1];\n if (ins >= 0) {\n sections[i] = ins;\n sections[i + 1] = len;\n let index = i >> 1;\n while (inserted.length < index)\n inserted.push(Text.empty);\n inserted.push(len ? doc.slice(pos, pos + len) : Text.empty);\n }\n pos += len;\n }\n return new ChangeSet(sections, inserted);\n }\n /**\n Combine two subsequent change sets into a single set. `other`\n must start in the document produced by `this`. If `this` goes\n `docA` → `docB` and `other` represents `docB` → `docC`, the\n returned value will represent the change `docA` → `docC`.\n */\n compose(other) { return this.empty ? other : other.empty ? this : composeSets(this, other, true); }\n /**\n Given another change set starting in the same document, maps this\n change set over the other, producing a new change set that can be\n applied to the document produced by applying `other`. When\n `before` is `true`, order changes as if `this` comes before\n `other`, otherwise (the default) treat `other` as coming first.\n \n Given two changes `A` and `B`, `A.compose(B.map(A))` and\n `B.compose(A.map(B, true))` will produce the same document. This\n provides a basic form of [operational\n transformation](https://en.wikipedia.org/wiki/Operational_transformation),\n and can be used for collaborative editing.\n */\n map(other, before = false) { return other.empty ? this : mapSet(this, other, before, true); }\n /**\n Iterate over the changed ranges in the document, calling `f` for\n each, with the range in the original document (`fromA`-`toA`)\n and the range that replaces it in the new document\n (`fromB`-`toB`).\n \n When `individual` is true, adjacent changes are reported\n separately.\n */\n iterChanges(f, individual = false) {\n iterChanges(this, f, individual);\n }\n /**\n Get a [change description](https://codemirror.net/6/docs/ref/#state.ChangeDesc) for this change\n set.\n */\n get desc() { return ChangeDesc.create(this.sections); }\n /**\n @internal\n */\n filter(ranges) {\n let resultSections = [], resultInserted = [], filteredSections = [];\n let iter = new SectionIter(this);\n done: for (let i = 0, pos = 0;;) {\n let next = i == ranges.length ? 1e9 : ranges[i++];\n while (pos < next || pos == next && iter.len == 0) {\n if (iter.done)\n break done;\n let len = Math.min(iter.len, next - pos);\n addSection(filteredSections, len, -1);\n let ins = iter.ins == -1 ? -1 : iter.off == 0 ? iter.ins : 0;\n addSection(resultSections, len, ins);\n if (ins > 0)\n addInsert(resultInserted, resultSections, iter.text);\n iter.forward(len);\n pos += len;\n }\n let end = ranges[i++];\n while (pos < end) {\n if (iter.done)\n break done;\n let len = Math.min(iter.len, end - pos);\n addSection(resultSections, len, -1);\n addSection(filteredSections, len, iter.ins == -1 ? -1 : iter.off == 0 ? iter.ins : 0);\n iter.forward(len);\n pos += len;\n }\n }\n return { changes: new ChangeSet(resultSections, resultInserted),\n filtered: ChangeDesc.create(filteredSections) };\n }\n /**\n Serialize this change set to a JSON-representable value.\n */\n toJSON() {\n let parts = [];\n for (let i = 0; i < this.sections.length; i += 2) {\n let len = this.sections[i], ins = this.sections[i + 1];\n if (ins < 0)\n parts.push(len);\n else if (ins == 0)\n parts.push([len]);\n else\n parts.push([len].concat(this.inserted[i >> 1].toJSON()));\n }\n return parts;\n }\n /**\n Create a change set for the given changes, for a document of the\n given length, using `lineSep` as line separator.\n */\n static of(changes, length, lineSep) {\n let sections = [], inserted = [], pos = 0;\n let total = null;\n function flush(force = false) {\n if (!force && !sections.length)\n return;\n if (pos < length)\n addSection(sections, length - pos, -1);\n let set = new ChangeSet(sections, inserted);\n total = total ? total.compose(set.map(total)) : set;\n sections = [];\n inserted = [];\n pos = 0;\n }\n function process(spec) {\n if (Array.isArray(spec)) {\n for (let sub of spec)\n process(sub);\n }\n else if (spec instanceof ChangeSet) {\n if (spec.length != length)\n throw new RangeError(`Mismatched change set length (got ${spec.length}, expected ${length})`);\n flush();\n total = total ? total.compose(spec.map(total)) : spec;\n }\n else {\n let { from, to = from, insert } = spec;\n if (from > to || from < 0 || to > length)\n throw new RangeError(`Invalid change range ${from} to ${to} (in doc of length ${length})`);\n let insText = !insert ? Text.empty : typeof insert == \"string\" ? Text.of(insert.split(lineSep || DefaultSplit)) : insert;\n let insLen = insText.length;\n if (from == to && insLen == 0)\n return;\n if (from < pos)\n flush();\n if (from > pos)\n addSection(sections, from - pos, -1);\n addSection(sections, to - from, insLen);\n addInsert(inserted, sections, insText);\n pos = to;\n }\n }\n process(changes);\n flush(!total);\n return total;\n }\n /**\n Create an empty changeset of the given length.\n */\n static empty(length) {\n return new ChangeSet(length ? [length, -1] : [], []);\n }\n /**\n Create a changeset from its JSON representation (as produced by\n [`toJSON`](https://codemirror.net/6/docs/ref/#state.ChangeSet.toJSON).\n */\n static fromJSON(json) {\n if (!Array.isArray(json))\n throw new RangeError(\"Invalid JSON representation of ChangeSet\");\n let sections = [], inserted = [];\n for (let i = 0; i < json.length; i++) {\n let part = json[i];\n if (typeof part == \"number\") {\n sections.push(part, -1);\n }\n else if (!Array.isArray(part) || typeof part[0] != \"number\" || part.some((e, i) => i && typeof e != \"string\")) {\n throw new RangeError(\"Invalid JSON representation of ChangeSet\");\n }\n else if (part.length == 1) {\n sections.push(part[0], 0);\n }\n else {\n while (inserted.length < i)\n inserted.push(Text.empty);\n inserted[i] = Text.of(part.slice(1));\n sections.push(part[0], inserted[i].length);\n }\n }\n return new ChangeSet(sections, inserted);\n }\n /**\n @internal\n */\n static createSet(sections, inserted) {\n return new ChangeSet(sections, inserted);\n }\n}\nfunction addSection(sections, len, ins, forceJoin = false) {\n if (len == 0 && ins <= 0)\n return;\n let last = sections.length - 2;\n if (last >= 0 && ins <= 0 && ins == sections[last + 1])\n sections[last] += len;\n else if (len == 0 && sections[last] == 0)\n sections[last + 1] += ins;\n else if (forceJoin) {\n sections[last] += len;\n sections[last + 1] += ins;\n }\n else\n sections.push(len, ins);\n}\nfunction addInsert(values, sections, value) {\n if (value.length == 0)\n return;\n let index = (sections.length - 2) >> 1;\n if (index < values.length) {\n values[values.length - 1] = values[values.length - 1].append(value);\n }\n else {\n while (values.length < index)\n values.push(Text.empty);\n values.push(value);\n }\n}\nfunction iterChanges(desc, f, individual) {\n let inserted = desc.inserted;\n for (let posA = 0, posB = 0, i = 0; i < desc.sections.length;) {\n let len = desc.sections[i++], ins = desc.sections[i++];\n if (ins < 0) {\n posA += len;\n posB += len;\n }\n else {\n let endA = posA, endB = posB, text = Text.empty;\n for (;;) {\n endA += len;\n endB += ins;\n if (ins && inserted)\n text = text.append(inserted[(i - 2) >> 1]);\n if (individual || i == desc.sections.length || desc.sections[i + 1] < 0)\n break;\n len = desc.sections[i++];\n ins = desc.sections[i++];\n }\n f(posA, endA, posB, endB, text);\n posA = endA;\n posB = endB;\n }\n }\n}\nfunction mapSet(setA, setB, before, mkSet = false) {\n // Produce a copy of setA that applies to the document after setB\n // has been applied (assuming both start at the same document).\n let sections = [], insert = mkSet ? [] : null;\n let a = new SectionIter(setA), b = new SectionIter(setB);\n // Iterate over both sets in parallel. inserted tracks, for changes\n // in A that have to be processed piece-by-piece, whether their\n // content has been inserted already, and refers to the section\n // index.\n for (let inserted = -1;;) {\n if (a.ins == -1 && b.ins == -1) {\n // Move across ranges skipped by both sets.\n let len = Math.min(a.len, b.len);\n addSection(sections, len, -1);\n a.forward(len);\n b.forward(len);\n }\n else if (b.ins >= 0 && (a.ins < 0 || inserted == a.i || a.off == 0 && (b.len < a.len || b.len == a.len && !before))) {\n // If there's a change in B that comes before the next change in\n // A (ordered by start pos, then len, then before flag), skip\n // that (and process any changes in A it covers).\n let len = b.len;\n addSection(sections, b.ins, -1);\n while (len) {\n let piece = Math.min(a.len, len);\n if (a.ins >= 0 && inserted < a.i && a.len <= piece) {\n addSection(sections, 0, a.ins);\n if (insert)\n addInsert(insert, sections, a.text);\n inserted = a.i;\n }\n a.forward(piece);\n len -= piece;\n }\n b.next();\n }\n else if (a.ins >= 0) {\n // Process the part of a change in A up to the start of the next\n // non-deletion change in B (if overlapping).\n let len = 0, left = a.len;\n while (left) {\n if (b.ins == -1) {\n let piece = Math.min(left, b.len);\n len += piece;\n left -= piece;\n b.forward(piece);\n }\n else if (b.ins == 0 && b.len < left) {\n left -= b.len;\n b.next();\n }\n else {\n break;\n }\n }\n addSection(sections, len, inserted < a.i ? a.ins : 0);\n if (insert && inserted < a.i)\n addInsert(insert, sections, a.text);\n inserted = a.i;\n a.forward(a.len - left);\n }\n else if (a.done && b.done) {\n return insert ? ChangeSet.createSet(sections, insert) : ChangeDesc.create(sections);\n }\n else {\n throw new Error(\"Mismatched change set lengths\");\n }\n }\n}\nfunction composeSets(setA, setB, mkSet = false) {\n let sections = [];\n let insert = mkSet ? [] : null;\n let a = new SectionIter(setA), b = new SectionIter(setB);\n for (let open = false;;) {\n if (a.done && b.done) {\n return insert ? ChangeSet.createSet(sections, insert) : ChangeDesc.create(sections);\n }\n else if (a.ins == 0) { // Deletion in A\n addSection(sections, a.len, 0, open);\n a.next();\n }\n else if (b.len == 0 && !b.done) { // Insertion in B\n addSection(sections, 0, b.ins, open);\n if (insert)\n addInsert(insert, sections, b.text);\n b.next();\n }\n else if (a.done || b.done) {\n throw new Error(\"Mismatched change set lengths\");\n }\n else {\n let len = Math.min(a.len2, b.len), sectionLen = sections.length;\n if (a.ins == -1) {\n let insB = b.ins == -1 ? -1 : b.off ? 0 : b.ins;\n addSection(sections, len, insB, open);\n if (insert && insB)\n addInsert(insert, sections, b.text);\n }\n else if (b.ins == -1) {\n addSection(sections, a.off ? 0 : a.len, len, open);\n if (insert)\n addInsert(insert, sections, a.textBit(len));\n }\n else {\n addSection(sections, a.off ? 0 : a.len, b.off ? 0 : b.ins, open);\n if (insert && !b.off)\n addInsert(insert, sections, b.text);\n }\n open = (a.ins > len || b.ins >= 0 && b.len > len) && (open || sections.length > sectionLen);\n a.forward2(len);\n b.forward(len);\n }\n }\n}\nclass SectionIter {\n constructor(set) {\n this.set = set;\n this.i = 0;\n this.next();\n }\n next() {\n let { sections } = this.set;\n if (this.i < sections.length) {\n this.len = sections[this.i++];\n this.ins = sections[this.i++];\n }\n else {\n this.len = 0;\n this.ins = -2;\n }\n this.off = 0;\n }\n get done() { return this.ins == -2; }\n get len2() { return this.ins < 0 ? this.len : this.ins; }\n get text() {\n let { inserted } = this.set, index = (this.i - 2) >> 1;\n return index >= inserted.length ? Text.empty : inserted[index];\n }\n textBit(len) {\n let { inserted } = this.set, index = (this.i - 2) >> 1;\n return index >= inserted.length && !len ? Text.empty\n : inserted[index].slice(this.off, len == null ? undefined : this.off + len);\n }\n forward(len) {\n if (len == this.len)\n this.next();\n else {\n this.len -= len;\n this.off += len;\n }\n }\n forward2(len) {\n if (this.ins == -1)\n this.forward(len);\n else if (len == this.ins)\n this.next();\n else {\n this.ins -= len;\n this.off += len;\n }\n }\n}\n\n/**\nA single selection range. When\n[`allowMultipleSelections`](https://codemirror.net/6/docs/ref/#state.EditorState^allowMultipleSelections)\nis enabled, a [selection](https://codemirror.net/6/docs/ref/#state.EditorSelection) may hold\nmultiple ranges. By default, selections hold exactly one range.\n*/\nclass SelectionRange {\n constructor(\n /**\n The lower boundary of the range.\n */\n from, \n /**\n The upper boundary of the range.\n */\n to, flags) {\n this.from = from;\n this.to = to;\n this.flags = flags;\n }\n /**\n The anchor of the range—the side that doesn't move when you\n extend it.\n */\n get anchor() { return this.flags & 16 /* RangeFlag.Inverted */ ? this.to : this.from; }\n /**\n The head of the range, which is moved when the range is\n [extended](https://codemirror.net/6/docs/ref/#state.SelectionRange.extend).\n */\n get head() { return this.flags & 16 /* RangeFlag.Inverted */ ? this.from : this.to; }\n /**\n True when `anchor` and `head` are at the same position.\n */\n get empty() { return this.from == this.to; }\n /**\n If this is a cursor that is explicitly associated with the\n character on one of its sides, this returns the side. -1 means\n the character before its position, 1 the character after, and 0\n means no association.\n */\n get assoc() { return this.flags & 4 /* RangeFlag.AssocBefore */ ? -1 : this.flags & 8 /* RangeFlag.AssocAfter */ ? 1 : 0; }\n /**\n The bidirectional text level associated with this cursor, if\n any.\n */\n get bidiLevel() {\n let level = this.flags & 3 /* RangeFlag.BidiLevelMask */;\n return level == 3 ? null : level;\n }\n /**\n The goal column (stored vertical offset) associated with a\n cursor. This is used to preserve the vertical position when\n [moving](https://codemirror.net/6/docs/ref/#view.EditorView.moveVertically) across\n lines of different length.\n */\n get goalColumn() {\n let value = this.flags >> 5 /* RangeFlag.GoalColumnOffset */;\n return value == 33554431 /* RangeFlag.NoGoalColumn */ ? undefined : value;\n }\n /**\n Map this range through a change, producing a valid range in the\n updated document.\n */\n map(change, assoc = -1) {\n let from, to;\n if (this.empty) {\n from = to = change.mapPos(this.from, assoc);\n }\n else {\n from = change.mapPos(this.from, 1);\n to = change.mapPos(this.to, -1);\n }\n return from == this.from && to == this.to ? this : new SelectionRange(from, to, this.flags);\n }\n /**\n Extend this range to cover at least `from` to `to`.\n */\n extend(from, to = from) {\n if (from <= this.anchor && to >= this.anchor)\n return EditorSelection.range(from, to);\n let head = Math.abs(from - this.anchor) > Math.abs(to - this.anchor) ? from : to;\n return EditorSelection.range(this.anchor, head);\n }\n /**\n Compare this range to another range.\n */\n eq(other) {\n return this.anchor == other.anchor && this.head == other.head;\n }\n /**\n Return a JSON-serializable object representing the range.\n */\n toJSON() { return { anchor: this.anchor, head: this.head }; }\n /**\n Convert a JSON representation of a range to a `SelectionRange`\n instance.\n */\n static fromJSON(json) {\n if (!json || typeof json.anchor != \"number\" || typeof json.head != \"number\")\n throw new RangeError(\"Invalid JSON representation for SelectionRange\");\n return EditorSelection.range(json.anchor, json.head);\n }\n /**\n @internal\n */\n static create(from, to, flags) {\n return new SelectionRange(from, to, flags);\n }\n}\n/**\nAn editor selection holds one or more selection ranges.\n*/\nclass EditorSelection {\n constructor(\n /**\n The ranges in the selection, sorted by position. Ranges cannot\n overlap (but they may touch, if they aren't empty).\n */\n ranges, \n /**\n The index of the _main_ range in the selection (which is\n usually the range that was added last).\n */\n mainIndex) {\n this.ranges = ranges;\n this.mainIndex = mainIndex;\n }\n /**\n Map a selection through a change. Used to adjust the selection\n position for changes.\n */\n map(change, assoc = -1) {\n if (change.empty)\n return this;\n return EditorSelection.create(this.ranges.map(r => r.map(change, assoc)), this.mainIndex);\n }\n /**\n Compare this selection to another selection.\n */\n eq(other) {\n if (this.ranges.length != other.ranges.length ||\n this.mainIndex != other.mainIndex)\n return false;\n for (let i = 0; i < this.ranges.length; i++)\n if (!this.ranges[i].eq(other.ranges[i]))\n return false;\n return true;\n }\n /**\n Get the primary selection range. Usually, you should make sure\n your code applies to _all_ ranges, by using methods like\n [`changeByRange`](https://codemirror.net/6/docs/ref/#state.EditorState.changeByRange).\n */\n get main() { return this.ranges[this.mainIndex]; }\n /**\n Make sure the selection only has one range. Returns a selection\n holding only the main range from this selection.\n */\n asSingle() {\n return this.ranges.length == 1 ? this : new EditorSelection([this.main], 0);\n }\n /**\n Extend this selection with an extra range.\n */\n addRange(range, main = true) {\n return EditorSelection.create([range].concat(this.ranges), main ? 0 : this.mainIndex + 1);\n }\n /**\n Replace a given range with another range, and then normalize the\n selection to merge and sort ranges if necessary.\n */\n replaceRange(range, which = this.mainIndex) {\n let ranges = this.ranges.slice();\n ranges[which] = range;\n return EditorSelection.create(ranges, this.mainIndex);\n }\n /**\n Convert this selection to an object that can be serialized to\n JSON.\n */\n toJSON() {\n return { ranges: this.ranges.map(r => r.toJSON()), main: this.mainIndex };\n }\n /**\n Create a selection from a JSON representation.\n */\n static fromJSON(json) {\n if (!json || !Array.isArray(json.ranges) || typeof json.main != \"number\" || json.main >= json.ranges.length)\n throw new RangeError(\"Invalid JSON representation for EditorSelection\");\n return new EditorSelection(json.ranges.map((r) => SelectionRange.fromJSON(r)), json.main);\n }\n /**\n Create a selection holding a single range.\n */\n static single(anchor, head = anchor) {\n return new EditorSelection([EditorSelection.range(anchor, head)], 0);\n }\n /**\n Sort and merge the given set of ranges, creating a valid\n selection.\n */\n static create(ranges, mainIndex = 0) {\n if (ranges.length == 0)\n throw new RangeError(\"A selection needs at least one range\");\n for (let pos = 0, i = 0; i < ranges.length; i++) {\n let range = ranges[i];\n if (range.empty ? range.from <= pos : range.from < pos)\n return EditorSelection.normalized(ranges.slice(), mainIndex);\n pos = range.to;\n }\n return new EditorSelection(ranges, mainIndex);\n }\n /**\n Create a cursor selection range at the given position. You can\n safely ignore the optional arguments in most situations.\n */\n static cursor(pos, assoc = 0, bidiLevel, goalColumn) {\n return SelectionRange.create(pos, pos, (assoc == 0 ? 0 : assoc < 0 ? 4 /* RangeFlag.AssocBefore */ : 8 /* RangeFlag.AssocAfter */) |\n (bidiLevel == null ? 3 : Math.min(2, bidiLevel)) |\n ((goalColumn !== null && goalColumn !== void 0 ? goalColumn : 33554431 /* RangeFlag.NoGoalColumn */) << 5 /* RangeFlag.GoalColumnOffset */));\n }\n /**\n Create a selection range.\n */\n static range(anchor, head, goalColumn, bidiLevel) {\n let flags = ((goalColumn !== null && goalColumn !== void 0 ? goalColumn : 33554431 /* RangeFlag.NoGoalColumn */) << 5 /* RangeFlag.GoalColumnOffset */) |\n (bidiLevel == null ? 3 : Math.min(2, bidiLevel));\n return head < anchor ? SelectionRange.create(head, anchor, 16 /* RangeFlag.Inverted */ | 8 /* RangeFlag.AssocAfter */ | flags)\n : SelectionRange.create(anchor, head, (head > anchor ? 4 /* RangeFlag.AssocBefore */ : 0) | flags);\n }\n /**\n @internal\n */\n static normalized(ranges, mainIndex = 0) {\n let main = ranges[mainIndex];\n ranges.sort((a, b) => a.from - b.from);\n mainIndex = ranges.indexOf(main);\n for (let i = 1; i < ranges.length; i++) {\n let range = ranges[i], prev = ranges[i - 1];\n if (range.empty ? range.from <= prev.to : range.from < prev.to) {\n let from = prev.from, to = Math.max(range.to, prev.to);\n if (i <= mainIndex)\n mainIndex--;\n ranges.splice(--i, 2, range.anchor > range.head ? EditorSelection.range(to, from) : EditorSelection.range(from, to));\n }\n }\n return new EditorSelection(ranges, mainIndex);\n }\n}\nfunction checkSelection(selection, docLength) {\n for (let range of selection.ranges)\n if (range.to > docLength)\n throw new RangeError(\"Selection points outside of document\");\n}\n\nlet nextID = 0;\n/**\nA facet is a labeled value that is associated with an editor\nstate. It takes inputs from any number of extensions, and combines\nthose into a single output value.\n\nExamples of uses of facets are the [tab\nsize](https://codemirror.net/6/docs/ref/#state.EditorState^tabSize), [editor\nattributes](https://codemirror.net/6/docs/ref/#view.EditorView^editorAttributes), and [update\nlisteners](https://codemirror.net/6/docs/ref/#view.EditorView^updateListener).\n*/\nclass Facet {\n constructor(\n /**\n @internal\n */\n combine, \n /**\n @internal\n */\n compareInput, \n /**\n @internal\n */\n compare, isStatic, enables) {\n this.combine = combine;\n this.compareInput = compareInput;\n this.compare = compare;\n this.isStatic = isStatic;\n /**\n @internal\n */\n this.id = nextID++;\n this.default = combine([]);\n this.extensions = typeof enables == \"function\" ? enables(this) : enables;\n }\n /**\n Define a new facet.\n */\n static define(config = {}) {\n return new Facet(config.combine || ((a) => a), config.compareInput || ((a, b) => a === b), config.compare || (!config.combine ? sameArray : (a, b) => a === b), !!config.static, config.enables);\n }\n /**\n Returns an extension that adds the given value to this facet.\n */\n of(value) {\n return new FacetProvider([], this, 0 /* Provider.Static */, value);\n }\n /**\n Create an extension that computes a value for the facet from a\n state. You must take care to declare the parts of the state that\n this value depends on, since your function is only called again\n for a new state when one of those parts changed.\n \n In cases where your value depends only on a single field, you'll\n want to use the [`from`](https://codemirror.net/6/docs/ref/#state.Facet.from) method instead.\n */\n compute(deps, get) {\n if (this.isStatic)\n throw new Error(\"Can't compute a static facet\");\n return new FacetProvider(deps, this, 1 /* Provider.Single */, get);\n }\n /**\n Create an extension that computes zero or more values for this\n facet from a state.\n */\n computeN(deps, get) {\n if (this.isStatic)\n throw new Error(\"Can't compute a static facet\");\n return new FacetProvider(deps, this, 2 /* Provider.Multi */, get);\n }\n from(field, get) {\n if (!get)\n get = x => x;\n return this.compute([field], state => get(state.field(field)));\n }\n}\nfunction sameArray(a, b) {\n return a == b || a.length == b.length && a.every((e, i) => e === b[i]);\n}\nclass FacetProvider {\n constructor(dependencies, facet, type, value) {\n this.dependencies = dependencies;\n this.facet = facet;\n this.type = type;\n this.value = value;\n this.id = nextID++;\n }\n dynamicSlot(addresses) {\n var _a;\n let getter = this.value;\n let compare = this.facet.compareInput;\n let id = this.id, idx = addresses[id] >> 1, multi = this.type == 2 /* Provider.Multi */;\n let depDoc = false, depSel = false, depAddrs = [];\n for (let dep of this.dependencies) {\n if (dep == \"doc\")\n depDoc = true;\n else if (dep == \"selection\")\n depSel = true;\n else if ((((_a = addresses[dep.id]) !== null && _a !== void 0 ? _a : 1) & 1) == 0)\n depAddrs.push(addresses[dep.id]);\n }\n return {\n create(state) {\n state.values[idx] = getter(state);\n return 1 /* SlotStatus.Changed */;\n },\n update(state, tr) {\n if ((depDoc && tr.docChanged) || (depSel && (tr.docChanged || tr.selection)) || ensureAll(state, depAddrs)) {\n let newVal = getter(state);\n if (multi ? !compareArray(newVal, state.values[idx], compare) : !compare(newVal, state.values[idx])) {\n state.values[idx] = newVal;\n return 1 /* SlotStatus.Changed */;\n }\n }\n return 0;\n },\n reconfigure: (state, oldState) => {\n let newVal, oldAddr = oldState.config.address[id];\n if (oldAddr != null) {\n let oldVal = getAddr(oldState, oldAddr);\n if (this.dependencies.every(dep => {\n return dep instanceof Facet ? oldState.facet(dep) === state.facet(dep) :\n dep instanceof StateField ? oldState.field(dep, false) == state.field(dep, false) : true;\n }) || (multi ? compareArray(newVal = getter(state), oldVal, compare) : compare(newVal = getter(state), oldVal))) {\n state.values[idx] = oldVal;\n return 0;\n }\n }\n else {\n newVal = getter(state);\n }\n state.values[idx] = newVal;\n return 1 /* SlotStatus.Changed */;\n }\n };\n }\n}\nfunction compareArray(a, b, compare) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!compare(a[i], b[i]))\n return false;\n return true;\n}\nfunction ensureAll(state, addrs) {\n let changed = false;\n for (let addr of addrs)\n if (ensureAddr(state, addr) & 1 /* SlotStatus.Changed */)\n changed = true;\n return changed;\n}\nfunction dynamicFacetSlot(addresses, facet, providers) {\n let providerAddrs = providers.map(p => addresses[p.id]);\n let providerTypes = providers.map(p => p.type);\n let dynamic = providerAddrs.filter(p => !(p & 1));\n let idx = addresses[facet.id] >> 1;\n function get(state) {\n let values = [];\n for (let i = 0; i < providerAddrs.length; i++) {\n let value = getAddr(state, providerAddrs[i]);\n if (providerTypes[i] == 2 /* Provider.Multi */)\n for (let val of value)\n values.push(val);\n else\n values.push(value);\n }\n return facet.combine(values);\n }\n return {\n create(state) {\n for (let addr of providerAddrs)\n ensureAddr(state, addr);\n state.values[idx] = get(state);\n return 1 /* SlotStatus.Changed */;\n },\n update(state, tr) {\n if (!ensureAll(state, dynamic))\n return 0;\n let value = get(state);\n if (facet.compare(value, state.values[idx]))\n return 0;\n state.values[idx] = value;\n return 1 /* SlotStatus.Changed */;\n },\n reconfigure(state, oldState) {\n let depChanged = ensureAll(state, providerAddrs);\n let oldProviders = oldState.config.facets[facet.id], oldValue = oldState.facet(facet);\n if (oldProviders && !depChanged && sameArray(providers, oldProviders)) {\n state.values[idx] = oldValue;\n return 0;\n }\n let value = get(state);\n if (facet.compare(value, oldValue)) {\n state.values[idx] = oldValue;\n return 0;\n }\n state.values[idx] = value;\n return 1 /* SlotStatus.Changed */;\n }\n };\n}\nconst initField = /*@__PURE__*/Facet.define({ static: true });\n/**\nFields can store additional information in an editor state, and\nkeep it in sync with the rest of the state.\n*/\nclass StateField {\n constructor(\n /**\n @internal\n */\n id, createF, updateF, compareF, \n /**\n @internal\n */\n spec) {\n this.id = id;\n this.createF = createF;\n this.updateF = updateF;\n this.compareF = compareF;\n this.spec = spec;\n /**\n @internal\n */\n this.provides = undefined;\n }\n /**\n Define a state field.\n */\n static define(config) {\n let field = new StateField(nextID++, config.create, config.update, config.compare || ((a, b) => a === b), config);\n if (config.provide)\n field.provides = config.provide(field);\n return field;\n }\n create(state) {\n let init = state.facet(initField).find(i => i.field == this);\n return ((init === null || init === void 0 ? void 0 : init.create) || this.createF)(state);\n }\n /**\n @internal\n */\n slot(addresses) {\n let idx = addresses[this.id] >> 1;\n return {\n create: (state) => {\n state.values[idx] = this.create(state);\n return 1 /* SlotStatus.Changed */;\n },\n update: (state, tr) => {\n let oldVal = state.values[idx];\n let value = this.updateF(oldVal, tr);\n if (this.compareF(oldVal, value))\n return 0;\n state.values[idx] = value;\n return 1 /* SlotStatus.Changed */;\n },\n reconfigure: (state, oldState) => {\n if (oldState.config.address[this.id] != null) {\n state.values[idx] = oldState.field(this);\n return 0;\n }\n state.values[idx] = this.create(state);\n return 1 /* SlotStatus.Changed */;\n }\n };\n }\n /**\n Returns an extension that enables this field and overrides the\n way it is initialized. Can be useful when you need to provide a\n non-default starting value for the field.\n */\n init(create) {\n return [this, initField.of({ field: this, create })];\n }\n /**\n State field instances can be used as\n [`Extension`](https://codemirror.net/6/docs/ref/#state.Extension) values to enable the field in a\n given state.\n */\n get extension() { return this; }\n}\nconst Prec_ = { lowest: 4, low: 3, default: 2, high: 1, highest: 0 };\nfunction prec(value) {\n return (ext) => new PrecExtension(ext, value);\n}\n/**\nBy default extensions are registered in the order they are found\nin the flattened form of nested array that was provided.\nIndividual extension values can be assigned a precedence to\noverride this. Extensions that do not have a precedence set get\nthe precedence of the nearest parent with a precedence, or\n[`default`](https://codemirror.net/6/docs/ref/#state.Prec.default) if there is no such parent. The\nfinal ordering of extensions is determined by first sorting by\nprecedence and then by order within each precedence.\n*/\nconst Prec = {\n /**\n The highest precedence level, for extensions that should end up\n near the start of the precedence ordering.\n */\n highest: /*@__PURE__*/prec(Prec_.highest),\n /**\n A higher-than-default precedence, for extensions that should\n come before those with default precedence.\n */\n high: /*@__PURE__*/prec(Prec_.high),\n /**\n The default precedence, which is also used for extensions\n without an explicit precedence.\n */\n default: /*@__PURE__*/prec(Prec_.default),\n /**\n A lower-than-default precedence.\n */\n low: /*@__PURE__*/prec(Prec_.low),\n /**\n The lowest precedence level. Meant for things that should end up\n near the end of the extension order.\n */\n lowest: /*@__PURE__*/prec(Prec_.lowest)\n};\nclass PrecExtension {\n constructor(inner, prec) {\n this.inner = inner;\n this.prec = prec;\n }\n}\n/**\nExtension compartments can be used to make a configuration\ndynamic. By [wrapping](https://codemirror.net/6/docs/ref/#state.Compartment.of) part of your\nconfiguration in a compartment, you can later\n[replace](https://codemirror.net/6/docs/ref/#state.Compartment.reconfigure) that part through a\ntransaction.\n*/\nclass Compartment {\n /**\n Create an instance of this compartment to add to your [state\n configuration](https://codemirror.net/6/docs/ref/#state.EditorStateConfig.extensions).\n */\n of(ext) { return new CompartmentInstance(this, ext); }\n /**\n Create an [effect](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects) that\n reconfigures this compartment.\n */\n reconfigure(content) {\n return Compartment.reconfigure.of({ compartment: this, extension: content });\n }\n /**\n Get the current content of the compartment in the state, or\n `undefined` if it isn't present.\n */\n get(state) {\n return state.config.compartments.get(this);\n }\n}\nclass CompartmentInstance {\n constructor(compartment, inner) {\n this.compartment = compartment;\n this.inner = inner;\n }\n}\nclass Configuration {\n constructor(base, compartments, dynamicSlots, address, staticValues, facets) {\n this.base = base;\n this.compartments = compartments;\n this.dynamicSlots = dynamicSlots;\n this.address = address;\n this.staticValues = staticValues;\n this.facets = facets;\n this.statusTemplate = [];\n while (this.statusTemplate.length < dynamicSlots.length)\n this.statusTemplate.push(0 /* SlotStatus.Unresolved */);\n }\n staticFacet(facet) {\n let addr = this.address[facet.id];\n return addr == null ? facet.default : this.staticValues[addr >> 1];\n }\n static resolve(base, compartments, oldState) {\n let fields = [];\n let facets = Object.create(null);\n let newCompartments = new Map();\n for (let ext of flatten(base, compartments, newCompartments)) {\n if (ext instanceof StateField)\n fields.push(ext);\n else\n (facets[ext.facet.id] || (facets[ext.facet.id] = [])).push(ext);\n }\n let address = Object.create(null);\n let staticValues = [];\n let dynamicSlots = [];\n for (let field of fields) {\n address[field.id] = dynamicSlots.length << 1;\n dynamicSlots.push(a => field.slot(a));\n }\n let oldFacets = oldState === null || oldState === void 0 ? void 0 : oldState.config.facets;\n for (let id in facets) {\n let providers = facets[id], facet = providers[0].facet;\n let oldProviders = oldFacets && oldFacets[id] || [];\n if (providers.every(p => p.type == 0 /* Provider.Static */)) {\n address[facet.id] = (staticValues.length << 1) | 1;\n if (sameArray(oldProviders, providers)) {\n staticValues.push(oldState.facet(facet));\n }\n else {\n let value = facet.combine(providers.map(p => p.value));\n staticValues.push(oldState && facet.compare(value, oldState.facet(facet)) ? oldState.facet(facet) : value);\n }\n }\n else {\n for (let p of providers) {\n if (p.type == 0 /* Provider.Static */) {\n address[p.id] = (staticValues.length << 1) | 1;\n staticValues.push(p.value);\n }\n else {\n address[p.id] = dynamicSlots.length << 1;\n dynamicSlots.push(a => p.dynamicSlot(a));\n }\n }\n address[facet.id] = dynamicSlots.length << 1;\n dynamicSlots.push(a => dynamicFacetSlot(a, facet, providers));\n }\n }\n let dynamic = dynamicSlots.map(f => f(address));\n return new Configuration(base, newCompartments, dynamic, address, staticValues, facets);\n }\n}\nfunction flatten(extension, compartments, newCompartments) {\n let result = [[], [], [], [], []];\n let seen = new Map();\n function inner(ext, prec) {\n let known = seen.get(ext);\n if (known != null) {\n if (known <= prec)\n return;\n let found = result[known].indexOf(ext);\n if (found > -1)\n result[known].splice(found, 1);\n if (ext instanceof CompartmentInstance)\n newCompartments.delete(ext.compartment);\n }\n seen.set(ext, prec);\n if (Array.isArray(ext)) {\n for (let e of ext)\n inner(e, prec);\n }\n else if (ext instanceof CompartmentInstance) {\n if (newCompartments.has(ext.compartment))\n throw new RangeError(`Duplicate use of compartment in extensions`);\n let content = compartments.get(ext.compartment) || ext.inner;\n newCompartments.set(ext.compartment, content);\n inner(content, prec);\n }\n else if (ext instanceof PrecExtension) {\n inner(ext.inner, ext.prec);\n }\n else if (ext instanceof StateField) {\n result[prec].push(ext);\n if (ext.provides)\n inner(ext.provides, prec);\n }\n else if (ext instanceof FacetProvider) {\n result[prec].push(ext);\n if (ext.facet.extensions)\n inner(ext.facet.extensions, Prec_.default);\n }\n else {\n let content = ext.extension;\n if (!content)\n throw new Error(`Unrecognized extension value in extension set (${ext}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);\n inner(content, prec);\n }\n }\n inner(extension, Prec_.default);\n return result.reduce((a, b) => a.concat(b));\n}\nfunction ensureAddr(state, addr) {\n if (addr & 1)\n return 2 /* SlotStatus.Computed */;\n let idx = addr >> 1;\n let status = state.status[idx];\n if (status == 4 /* SlotStatus.Computing */)\n throw new Error(\"Cyclic dependency between fields and/or facets\");\n if (status & 2 /* SlotStatus.Computed */)\n return status;\n state.status[idx] = 4 /* SlotStatus.Computing */;\n let changed = state.computeSlot(state, state.config.dynamicSlots[idx]);\n return state.status[idx] = 2 /* SlotStatus.Computed */ | changed;\n}\nfunction getAddr(state, addr) {\n return addr & 1 ? state.config.staticValues[addr >> 1] : state.values[addr >> 1];\n}\n\nconst languageData = /*@__PURE__*/Facet.define();\nconst allowMultipleSelections = /*@__PURE__*/Facet.define({\n combine: values => values.some(v => v),\n static: true\n});\nconst lineSeparator = /*@__PURE__*/Facet.define({\n combine: values => values.length ? values[0] : undefined,\n static: true\n});\nconst changeFilter = /*@__PURE__*/Facet.define();\nconst transactionFilter = /*@__PURE__*/Facet.define();\nconst transactionExtender = /*@__PURE__*/Facet.define();\nconst readOnly = /*@__PURE__*/Facet.define({\n combine: values => values.length ? values[0] : false\n});\n\n/**\nAnnotations are tagged values that are used to add metadata to\ntransactions in an extensible way. They should be used to model\nthings that effect the entire transaction (such as its [time\nstamp](https://codemirror.net/6/docs/ref/#state.Transaction^time) or information about its\n[origin](https://codemirror.net/6/docs/ref/#state.Transaction^userEvent)). For effects that happen\n_alongside_ the other changes made by the transaction, [state\neffects](https://codemirror.net/6/docs/ref/#state.StateEffect) are more appropriate.\n*/\nclass Annotation {\n /**\n @internal\n */\n constructor(\n /**\n The annotation type.\n */\n type, \n /**\n The value of this annotation.\n */\n value) {\n this.type = type;\n this.value = value;\n }\n /**\n Define a new type of annotation.\n */\n static define() { return new AnnotationType(); }\n}\n/**\nMarker that identifies a type of [annotation](https://codemirror.net/6/docs/ref/#state.Annotation).\n*/\nclass AnnotationType {\n /**\n Create an instance of this annotation.\n */\n of(value) { return new Annotation(this, value); }\n}\n/**\nRepresentation of a type of state effect. Defined with\n[`StateEffect.define`](https://codemirror.net/6/docs/ref/#state.StateEffect^define).\n*/\nclass StateEffectType {\n /**\n @internal\n */\n constructor(\n // The `any` types in these function types are there to work\n // around TypeScript issue #37631, where the type guard on\n // `StateEffect.is` mysteriously stops working when these properly\n // have type `Value`.\n /**\n @internal\n */\n map) {\n this.map = map;\n }\n /**\n Create a [state effect](https://codemirror.net/6/docs/ref/#state.StateEffect) instance of this\n type.\n */\n of(value) { return new StateEffect(this, value); }\n}\n/**\nState effects can be used to represent additional effects\nassociated with a [transaction](https://codemirror.net/6/docs/ref/#state.Transaction.effects). They\nare often useful to model changes to custom [state\nfields](https://codemirror.net/6/docs/ref/#state.StateField), when those changes aren't implicit in\ndocument or selection changes.\n*/\nclass StateEffect {\n /**\n @internal\n */\n constructor(\n /**\n @internal\n */\n type, \n /**\n The value of this effect.\n */\n value) {\n this.type = type;\n this.value = value;\n }\n /**\n Map this effect through a position mapping. Will return\n `undefined` when that ends up deleting the effect.\n */\n map(mapping) {\n let mapped = this.type.map(this.value, mapping);\n return mapped === undefined ? undefined : mapped == this.value ? this : new StateEffect(this.type, mapped);\n }\n /**\n Tells you whether this effect object is of a given\n [type](https://codemirror.net/6/docs/ref/#state.StateEffectType).\n */\n is(type) { return this.type == type; }\n /**\n Define a new effect type. The type parameter indicates the type\n of values that his effect holds. It should be a type that\n doesn't include `undefined`, since that is used in\n [mapping](https://codemirror.net/6/docs/ref/#state.StateEffect.map) to indicate that an effect is\n removed.\n */\n static define(spec = {}) {\n return new StateEffectType(spec.map || (v => v));\n }\n /**\n Map an array of effects through a change set.\n */\n static mapEffects(effects, mapping) {\n if (!effects.length)\n return effects;\n let result = [];\n for (let effect of effects) {\n let mapped = effect.map(mapping);\n if (mapped)\n result.push(mapped);\n }\n return result;\n }\n}\n/**\nThis effect can be used to reconfigure the root extensions of\nthe editor. Doing this will discard any extensions\n[appended](https://codemirror.net/6/docs/ref/#state.StateEffect^appendConfig), but does not reset\nthe content of [reconfigured](https://codemirror.net/6/docs/ref/#state.Compartment.reconfigure)\ncompartments.\n*/\nStateEffect.reconfigure = /*@__PURE__*/StateEffect.define();\n/**\nAppend extensions to the top-level configuration of the editor.\n*/\nStateEffect.appendConfig = /*@__PURE__*/StateEffect.define();\n/**\nChanges to the editor state are grouped into transactions.\nTypically, a user action creates a single transaction, which may\ncontain any number of document changes, may change the selection,\nor have other effects. Create a transaction by calling\n[`EditorState.update`](https://codemirror.net/6/docs/ref/#state.EditorState.update), or immediately\ndispatch one by calling\n[`EditorView.dispatch`](https://codemirror.net/6/docs/ref/#view.EditorView.dispatch).\n*/\nclass Transaction {\n constructor(\n /**\n The state from which the transaction starts.\n */\n startState, \n /**\n The document changes made by this transaction.\n */\n changes, \n /**\n The selection set by this transaction, or undefined if it\n doesn't explicitly set a selection.\n */\n selection, \n /**\n The effects added to the transaction.\n */\n effects, \n /**\n @internal\n */\n annotations, \n /**\n Whether the selection should be scrolled into view after this\n transaction is dispatched.\n */\n scrollIntoView) {\n this.startState = startState;\n this.changes = changes;\n this.selection = selection;\n this.effects = effects;\n this.annotations = annotations;\n this.scrollIntoView = scrollIntoView;\n /**\n @internal\n */\n this._doc = null;\n /**\n @internal\n */\n this._state = null;\n if (selection)\n checkSelection(selection, changes.newLength);\n if (!annotations.some((a) => a.type == Transaction.time))\n this.annotations = annotations.concat(Transaction.time.of(Date.now()));\n }\n /**\n @internal\n */\n static create(startState, changes, selection, effects, annotations, scrollIntoView) {\n return new Transaction(startState, changes, selection, effects, annotations, scrollIntoView);\n }\n /**\n The new document produced by the transaction. Contrary to\n [`.state`](https://codemirror.net/6/docs/ref/#state.Transaction.state)`.doc`, accessing this won't\n force the entire new state to be computed right away, so it is\n recommended that [transaction\n filters](https://codemirror.net/6/docs/ref/#state.EditorState^transactionFilter) use this getter\n when they need to look at the new document.\n */\n get newDoc() {\n return this._doc || (this._doc = this.changes.apply(this.startState.doc));\n }\n /**\n The new selection produced by the transaction. If\n [`this.selection`](https://codemirror.net/6/docs/ref/#state.Transaction.selection) is undefined,\n this will [map](https://codemirror.net/6/docs/ref/#state.EditorSelection.map) the start state's\n current selection through the changes made by the transaction.\n */\n get newSelection() {\n return this.selection || this.startState.selection.map(this.changes);\n }\n /**\n The new state created by the transaction. Computed on demand\n (but retained for subsequent access), so it is recommended not to\n access it in [transaction\n filters](https://codemirror.net/6/docs/ref/#state.EditorState^transactionFilter) when possible.\n */\n get state() {\n if (!this._state)\n this.startState.applyTransaction(this);\n return this._state;\n }\n /**\n Get the value of the given annotation type, if any.\n */\n annotation(type) {\n for (let ann of this.annotations)\n if (ann.type == type)\n return ann.value;\n return undefined;\n }\n /**\n Indicates whether the transaction changed the document.\n */\n get docChanged() { return !this.changes.empty; }\n /**\n Indicates whether this transaction reconfigures the state\n (through a [configuration compartment](https://codemirror.net/6/docs/ref/#state.Compartment) or\n with a top-level configuration\n [effect](https://codemirror.net/6/docs/ref/#state.StateEffect^reconfigure).\n */\n get reconfigured() { return this.startState.config != this.state.config; }\n /**\n Returns true if the transaction has a [user\n event](https://codemirror.net/6/docs/ref/#state.Transaction^userEvent) annotation that is equal to\n or more specific than `event`. For example, if the transaction\n has `\"select.pointer\"` as user event, `\"select\"` and\n `\"select.pointer\"` will match it.\n */\n isUserEvent(event) {\n let e = this.annotation(Transaction.userEvent);\n return !!(e && (e == event || e.length > event.length && e.slice(0, event.length) == event && e[event.length] == \".\"));\n }\n}\n/**\nAnnotation used to store transaction timestamps. Automatically\nadded to every transaction, holding `Date.now()`.\n*/\nTransaction.time = /*@__PURE__*/Annotation.define();\n/**\nAnnotation used to associate a transaction with a user interface\nevent. Holds a string identifying the event, using a\ndot-separated format to support attaching more specific\ninformation. The events used by the core libraries are:\n\n - `\"input\"` when content is entered\n - `\"input.type\"` for typed input\n - `\"input.type.compose\"` for composition\n - `\"input.paste\"` for pasted input\n - `\"input.drop\"` when adding content with drag-and-drop\n - `\"input.complete\"` when autocompleting\n - `\"delete\"` when the user deletes content\n - `\"delete.selection\"` when deleting the selection\n - `\"delete.forward\"` when deleting forward from the selection\n - `\"delete.backward\"` when deleting backward from the selection\n - `\"delete.cut\"` when cutting to the clipboard\n - `\"move\"` when content is moved\n - `\"move.drop\"` when content is moved within the editor through drag-and-drop\n - `\"select\"` when explicitly changing the selection\n - `\"select.pointer\"` when selecting with a mouse or other pointing device\n - `\"undo\"` and `\"redo\"` for history actions\n\nUse [`isUserEvent`](https://codemirror.net/6/docs/ref/#state.Transaction.isUserEvent) to check\nwhether the annotation matches a given event.\n*/\nTransaction.userEvent = /*@__PURE__*/Annotation.define();\n/**\nAnnotation indicating whether a transaction should be added to\nthe undo history or not.\n*/\nTransaction.addToHistory = /*@__PURE__*/Annotation.define();\n/**\nAnnotation indicating (when present and true) that a transaction\nrepresents a change made by some other actor, not the user. This\nis used, for example, to tag other people's changes in\ncollaborative editing.\n*/\nTransaction.remote = /*@__PURE__*/Annotation.define();\nfunction joinRanges(a, b) {\n let result = [];\n for (let iA = 0, iB = 0;;) {\n let from, to;\n if (iA < a.length && (iB == b.length || b[iB] >= a[iA])) {\n from = a[iA++];\n to = a[iA++];\n }\n else if (iB < b.length) {\n from = b[iB++];\n to = b[iB++];\n }\n else\n return result;\n if (!result.length || result[result.length - 1] < from)\n result.push(from, to);\n else if (result[result.length - 1] < to)\n result[result.length - 1] = to;\n }\n}\nfunction mergeTransaction(a, b, sequential) {\n var _a;\n let mapForA, mapForB, changes;\n if (sequential) {\n mapForA = b.changes;\n mapForB = ChangeSet.empty(b.changes.length);\n changes = a.changes.compose(b.changes);\n }\n else {\n mapForA = b.changes.map(a.changes);\n mapForB = a.changes.mapDesc(b.changes, true);\n changes = a.changes.compose(mapForA);\n }\n return {\n changes,\n selection: b.selection ? b.selection.map(mapForB) : (_a = a.selection) === null || _a === void 0 ? void 0 : _a.map(mapForA),\n effects: StateEffect.mapEffects(a.effects, mapForA).concat(StateEffect.mapEffects(b.effects, mapForB)),\n annotations: a.annotations.length ? a.annotations.concat(b.annotations) : b.annotations,\n scrollIntoView: a.scrollIntoView || b.scrollIntoView\n };\n}\nfunction resolveTransactionInner(state, spec, docSize) {\n let sel = spec.selection, annotations = asArray(spec.annotations);\n if (spec.userEvent)\n annotations = annotations.concat(Transaction.userEvent.of(spec.userEvent));\n return {\n changes: spec.changes instanceof ChangeSet ? spec.changes\n : ChangeSet.of(spec.changes || [], docSize, state.facet(lineSeparator)),\n selection: sel && (sel instanceof EditorSelection ? sel : EditorSelection.single(sel.anchor, sel.head)),\n effects: asArray(spec.effects),\n annotations,\n scrollIntoView: !!spec.scrollIntoView\n };\n}\nfunction resolveTransaction(state, specs, filter) {\n let s = resolveTransactionInner(state, specs.length ? specs[0] : {}, state.doc.length);\n if (specs.length && specs[0].filter === false)\n filter = false;\n for (let i = 1; i < specs.length; i++) {\n if (specs[i].filter === false)\n filter = false;\n let seq = !!specs[i].sequential;\n s = mergeTransaction(s, resolveTransactionInner(state, specs[i], seq ? s.changes.newLength : state.doc.length), seq);\n }\n let tr = Transaction.create(state, s.changes, s.selection, s.effects, s.annotations, s.scrollIntoView);\n return extendTransaction(filter ? filterTransaction(tr) : tr);\n}\n// Finish a transaction by applying filters if necessary.\nfunction filterTransaction(tr) {\n let state = tr.startState;\n // Change filters\n let result = true;\n for (let filter of state.facet(changeFilter)) {\n let value = filter(tr);\n if (value === false) {\n result = false;\n break;\n }\n if (Array.isArray(value))\n result = result === true ? value : joinRanges(result, value);\n }\n if (result !== true) {\n let changes, back;\n if (result === false) {\n back = tr.changes.invertedDesc;\n changes = ChangeSet.empty(state.doc.length);\n }\n else {\n let filtered = tr.changes.filter(result);\n changes = filtered.changes;\n back = filtered.filtered.mapDesc(filtered.changes).invertedDesc;\n }\n tr = Transaction.create(state, changes, tr.selection && tr.selection.map(back), StateEffect.mapEffects(tr.effects, back), tr.annotations, tr.scrollIntoView);\n }\n // Transaction filters\n let filters = state.facet(transactionFilter);\n for (let i = filters.length - 1; i >= 0; i--) {\n let filtered = filters[i](tr);\n if (filtered instanceof Transaction)\n tr = filtered;\n else if (Array.isArray(filtered) && filtered.length == 1 && filtered[0] instanceof Transaction)\n tr = filtered[0];\n else\n tr = resolveTransaction(state, asArray(filtered), false);\n }\n return tr;\n}\nfunction extendTransaction(tr) {\n let state = tr.startState, extenders = state.facet(transactionExtender), spec = tr;\n for (let i = extenders.length - 1; i >= 0; i--) {\n let extension = extenders[i](tr);\n if (extension && Object.keys(extension).length)\n spec = mergeTransaction(spec, resolveTransactionInner(state, extension, tr.changes.newLength), true);\n }\n return spec == tr ? tr : Transaction.create(state, tr.changes, tr.selection, spec.effects, spec.annotations, spec.scrollIntoView);\n}\nconst none = [];\nfunction asArray(value) {\n return value == null ? none : Array.isArray(value) ? value : [value];\n}\n\n/**\nThe categories produced by a [character\ncategorizer](https://codemirror.net/6/docs/ref/#state.EditorState.charCategorizer). These are used\ndo things like selecting by word.\n*/\nvar CharCategory = /*@__PURE__*/(function (CharCategory) {\n /**\n Word characters.\n */\n CharCategory[CharCategory[\"Word\"] = 0] = \"Word\";\n /**\n Whitespace.\n */\n CharCategory[CharCategory[\"Space\"] = 1] = \"Space\";\n /**\n Anything else.\n */\n CharCategory[CharCategory[\"Other\"] = 2] = \"Other\";\nreturn CharCategory})(CharCategory || (CharCategory = {}));\nconst nonASCIISingleCaseWordChar = /[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;\nlet wordChar;\ntry {\n wordChar = /*@__PURE__*/new RegExp(\"[\\\\p{Alphabetic}\\\\p{Number}_]\", \"u\");\n}\ncatch (_) { }\nfunction hasWordChar(str) {\n if (wordChar)\n return wordChar.test(str);\n for (let i = 0; i < str.length; i++) {\n let ch = str[i];\n if (/\\w/.test(ch) || ch > \"\\x80\" && (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch)))\n return true;\n }\n return false;\n}\nfunction makeCategorizer(wordChars) {\n return (char) => {\n if (!/\\S/.test(char))\n return CharCategory.Space;\n if (hasWordChar(char))\n return CharCategory.Word;\n for (let i = 0; i < wordChars.length; i++)\n if (char.indexOf(wordChars[i]) > -1)\n return CharCategory.Word;\n return CharCategory.Other;\n };\n}\n\n/**\nThe editor state class is a persistent (immutable) data structure.\nTo update a state, you [create](https://codemirror.net/6/docs/ref/#state.EditorState.update) a\n[transaction](https://codemirror.net/6/docs/ref/#state.Transaction), which produces a _new_ state\ninstance, without modifying the original object.\n\nAs such, _never_ mutate properties of a state directly. That'll\njust break things.\n*/\nclass EditorState {\n constructor(\n /**\n @internal\n */\n config, \n /**\n The current document.\n */\n doc, \n /**\n The current selection.\n */\n selection, \n /**\n @internal\n */\n values, computeSlot, tr) {\n this.config = config;\n this.doc = doc;\n this.selection = selection;\n this.values = values;\n this.status = config.statusTemplate.slice();\n this.computeSlot = computeSlot;\n // Fill in the computed state immediately, so that further queries\n // for it made during the update return this state\n if (tr)\n tr._state = this;\n for (let i = 0; i < this.config.dynamicSlots.length; i++)\n ensureAddr(this, i << 1);\n this.computeSlot = null;\n }\n field(field, require = true) {\n let addr = this.config.address[field.id];\n if (addr == null) {\n if (require)\n throw new RangeError(\"Field is not present in this state\");\n return undefined;\n }\n ensureAddr(this, addr);\n return getAddr(this, addr);\n }\n /**\n Create a [transaction](https://codemirror.net/6/docs/ref/#state.Transaction) that updates this\n state. Any number of [transaction specs](https://codemirror.net/6/docs/ref/#state.TransactionSpec)\n can be passed. Unless\n [`sequential`](https://codemirror.net/6/docs/ref/#state.TransactionSpec.sequential) is set, the\n [changes](https://codemirror.net/6/docs/ref/#state.TransactionSpec.changes) (if any) of each spec\n are assumed to start in the _current_ document (not the document\n produced by previous specs), and its\n [selection](https://codemirror.net/6/docs/ref/#state.TransactionSpec.selection) and\n [effects](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects) are assumed to refer\n to the document created by its _own_ changes. The resulting\n transaction contains the combined effect of all the different\n specs. For [selection](https://codemirror.net/6/docs/ref/#state.TransactionSpec.selection), later\n specs take precedence over earlier ones.\n */\n update(...specs) {\n return resolveTransaction(this, specs, true);\n }\n /**\n @internal\n */\n applyTransaction(tr) {\n let conf = this.config, { base, compartments } = conf;\n for (let effect of tr.effects) {\n if (effect.is(Compartment.reconfigure)) {\n if (conf) {\n compartments = new Map;\n conf.compartments.forEach((val, key) => compartments.set(key, val));\n conf = null;\n }\n compartments.set(effect.value.compartment, effect.value.extension);\n }\n else if (effect.is(StateEffect.reconfigure)) {\n conf = null;\n base = effect.value;\n }\n else if (effect.is(StateEffect.appendConfig)) {\n conf = null;\n base = asArray(base).concat(effect.value);\n }\n }\n let startValues;\n if (!conf) {\n conf = Configuration.resolve(base, compartments, this);\n let intermediateState = new EditorState(conf, this.doc, this.selection, conf.dynamicSlots.map(() => null), (state, slot) => slot.reconfigure(state, this), null);\n startValues = intermediateState.values;\n }\n else {\n startValues = tr.startState.values.slice();\n }\n new EditorState(conf, tr.newDoc, tr.newSelection, startValues, (state, slot) => slot.update(state, tr), tr);\n }\n /**\n Create a [transaction spec](https://codemirror.net/6/docs/ref/#state.TransactionSpec) that\n replaces every selection range with the given content.\n */\n replaceSelection(text) {\n if (typeof text == \"string\")\n text = this.toText(text);\n return this.changeByRange(range => ({ changes: { from: range.from, to: range.to, insert: text },\n range: EditorSelection.cursor(range.from + text.length) }));\n }\n /**\n Create a set of changes and a new selection by running the given\n function for each range in the active selection. The function\n can return an optional set of changes (in the coordinate space\n of the start document), plus an updated range (in the coordinate\n space of the document produced by the call's own changes). This\n method will merge all the changes and ranges into a single\n changeset and selection, and return it as a [transaction\n spec](https://codemirror.net/6/docs/ref/#state.TransactionSpec), which can be passed to\n [`update`](https://codemirror.net/6/docs/ref/#state.EditorState.update).\n */\n changeByRange(f) {\n let sel = this.selection;\n let result1 = f(sel.ranges[0]);\n let changes = this.changes(result1.changes), ranges = [result1.range];\n let effects = asArray(result1.effects);\n for (let i = 1; i < sel.ranges.length; i++) {\n let result = f(sel.ranges[i]);\n let newChanges = this.changes(result.changes), newMapped = newChanges.map(changes);\n for (let j = 0; j < i; j++)\n ranges[j] = ranges[j].map(newMapped);\n let mapBy = changes.mapDesc(newChanges, true);\n ranges.push(result.range.map(mapBy));\n changes = changes.compose(newMapped);\n effects = StateEffect.mapEffects(effects, newMapped).concat(StateEffect.mapEffects(asArray(result.effects), mapBy));\n }\n return {\n changes,\n selection: EditorSelection.create(ranges, sel.mainIndex),\n effects\n };\n }\n /**\n Create a [change set](https://codemirror.net/6/docs/ref/#state.ChangeSet) from the given change\n description, taking the state's document length and line\n separator into account.\n */\n changes(spec = []) {\n if (spec instanceof ChangeSet)\n return spec;\n return ChangeSet.of(spec, this.doc.length, this.facet(EditorState.lineSeparator));\n }\n /**\n Using the state's [line\n separator](https://codemirror.net/6/docs/ref/#state.EditorState^lineSeparator), create a\n [`Text`](https://codemirror.net/6/docs/ref/#state.Text) instance from the given string.\n */\n toText(string) {\n return Text.of(string.split(this.facet(EditorState.lineSeparator) || DefaultSplit));\n }\n /**\n Return the given range of the document as a string.\n */\n sliceDoc(from = 0, to = this.doc.length) {\n return this.doc.sliceString(from, to, this.lineBreak);\n }\n /**\n Get the value of a state [facet](https://codemirror.net/6/docs/ref/#state.Facet).\n */\n facet(facet) {\n let addr = this.config.address[facet.id];\n if (addr == null)\n return facet.default;\n ensureAddr(this, addr);\n return getAddr(this, addr);\n }\n /**\n Convert this state to a JSON-serializable object. When custom\n fields should be serialized, you can pass them in as an object\n mapping property names (in the resulting object, which should\n not use `doc` or `selection`) to fields.\n */\n toJSON(fields) {\n let result = {\n doc: this.sliceDoc(),\n selection: this.selection.toJSON()\n };\n if (fields)\n for (let prop in fields) {\n let value = fields[prop];\n if (value instanceof StateField && this.config.address[value.id] != null)\n result[prop] = value.spec.toJSON(this.field(fields[prop]), this);\n }\n return result;\n }\n /**\n Deserialize a state from its JSON representation. When custom\n fields should be deserialized, pass the same object you passed\n to [`toJSON`](https://codemirror.net/6/docs/ref/#state.EditorState.toJSON) when serializing as\n third argument.\n */\n static fromJSON(json, config = {}, fields) {\n if (!json || typeof json.doc != \"string\")\n throw new RangeError(\"Invalid JSON representation for EditorState\");\n let fieldInit = [];\n if (fields)\n for (let prop in fields) {\n if (Object.prototype.hasOwnProperty.call(json, prop)) {\n let field = fields[prop], value = json[prop];\n fieldInit.push(field.init(state => field.spec.fromJSON(value, state)));\n }\n }\n return EditorState.create({\n doc: json.doc,\n selection: EditorSelection.fromJSON(json.selection),\n extensions: config.extensions ? fieldInit.concat([config.extensions]) : fieldInit\n });\n }\n /**\n Create a new state. You'll usually only need this when\n initializing an editor—updated states are created by applying\n transactions.\n */\n static create(config = {}) {\n let configuration = Configuration.resolve(config.extensions || [], new Map);\n let doc = config.doc instanceof Text ? config.doc\n : Text.of((config.doc || \"\").split(configuration.staticFacet(EditorState.lineSeparator) || DefaultSplit));\n let selection = !config.selection ? EditorSelection.single(0)\n : config.selection instanceof EditorSelection ? config.selection\n : EditorSelection.single(config.selection.anchor, config.selection.head);\n checkSelection(selection, doc.length);\n if (!configuration.staticFacet(allowMultipleSelections))\n selection = selection.asSingle();\n return new EditorState(configuration, doc, selection, configuration.dynamicSlots.map(() => null), (state, slot) => slot.create(state), null);\n }\n /**\n The size (in columns) of a tab in the document, determined by\n the [`tabSize`](https://codemirror.net/6/docs/ref/#state.EditorState^tabSize) facet.\n */\n get tabSize() { return this.facet(EditorState.tabSize); }\n /**\n Get the proper [line-break](https://codemirror.net/6/docs/ref/#state.EditorState^lineSeparator)\n string for this state.\n */\n get lineBreak() { return this.facet(EditorState.lineSeparator) || \"\\n\"; }\n /**\n Returns true when the editor is\n [configured](https://codemirror.net/6/docs/ref/#state.EditorState^readOnly) to be read-only.\n */\n get readOnly() { return this.facet(readOnly); }\n /**\n Look up a translation for the given phrase (via the\n [`phrases`](https://codemirror.net/6/docs/ref/#state.EditorState^phrases) facet), or return the\n original string if no translation is found.\n \n If additional arguments are passed, they will be inserted in\n place of markers like `$1` (for the first value) and `$2`, etc.\n A single `$` is equivalent to `$1`, and `$$` will produce a\n literal dollar sign.\n */\n phrase(phrase, ...insert) {\n for (let map of this.facet(EditorState.phrases))\n if (Object.prototype.hasOwnProperty.call(map, phrase)) {\n phrase = map[phrase];\n break;\n }\n if (insert.length)\n phrase = phrase.replace(/\\$(\\$|\\d*)/g, (m, i) => {\n if (i == \"$\")\n return \"$\";\n let n = +(i || 1);\n return !n || n > insert.length ? m : insert[n - 1];\n });\n return phrase;\n }\n /**\n Find the values for a given language data field, provided by the\n the [`languageData`](https://codemirror.net/6/docs/ref/#state.EditorState^languageData) facet.\n \n Examples of language data fields are...\n \n - [`\"commentTokens\"`](https://codemirror.net/6/docs/ref/#commands.CommentTokens) for specifying\n comment syntax.\n - [`\"autocomplete\"`](https://codemirror.net/6/docs/ref/#autocomplete.autocompletion^config.override)\n for providing language-specific completion sources.\n - [`\"wordChars\"`](https://codemirror.net/6/docs/ref/#state.EditorState.charCategorizer) for adding\n characters that should be considered part of words in this\n language.\n - [`\"closeBrackets\"`](https://codemirror.net/6/docs/ref/#autocomplete.CloseBracketConfig) controls\n bracket closing behavior.\n */\n languageDataAt(name, pos, side = -1) {\n let values = [];\n for (let provider of this.facet(languageData)) {\n for (let result of provider(this, pos, side)) {\n if (Object.prototype.hasOwnProperty.call(result, name))\n values.push(result[name]);\n }\n }\n return values;\n }\n /**\n Return a function that can categorize strings (expected to\n represent a single [grapheme cluster](https://codemirror.net/6/docs/ref/#state.findClusterBreak))\n into one of:\n \n - Word (contains an alphanumeric character or a character\n explicitly listed in the local language's `\"wordChars\"`\n language data, which should be a string)\n - Space (contains only whitespace)\n - Other (anything else)\n */\n charCategorizer(at) {\n return makeCategorizer(this.languageDataAt(\"wordChars\", at).join(\"\"));\n }\n /**\n Find the word at the given position, meaning the range\n containing all [word](https://codemirror.net/6/docs/ref/#state.CharCategory.Word) characters\n around it. If no word characters are adjacent to the position,\n this returns null.\n */\n wordAt(pos) {\n let { text, from, length } = this.doc.lineAt(pos);\n let cat = this.charCategorizer(pos);\n let start = pos - from, end = pos - from;\n while (start > 0) {\n let prev = findClusterBreak(text, start, false);\n if (cat(text.slice(prev, start)) != CharCategory.Word)\n break;\n start = prev;\n }\n while (end < length) {\n let next = findClusterBreak(text, end);\n if (cat(text.slice(end, next)) != CharCategory.Word)\n break;\n end = next;\n }\n return start == end ? null : EditorSelection.range(start + from, end + from);\n }\n}\n/**\nA facet that, when enabled, causes the editor to allow multiple\nranges to be selected. Be careful though, because by default the\neditor relies on the native DOM selection, which cannot handle\nmultiple selections. An extension like\n[`drawSelection`](https://codemirror.net/6/docs/ref/#view.drawSelection) can be used to make\nsecondary selections visible to the user.\n*/\nEditorState.allowMultipleSelections = allowMultipleSelections;\n/**\nConfigures the tab size to use in this state. The first\n(highest-precedence) value of the facet is used. If no value is\ngiven, this defaults to 4.\n*/\nEditorState.tabSize = /*@__PURE__*/Facet.define({\n combine: values => values.length ? values[0] : 4\n});\n/**\nThe line separator to use. By default, any of `\"\\n\"`, `\"\\r\\n\"`\nand `\"\\r\"` is treated as a separator when splitting lines, and\nlines are joined with `\"\\n\"`.\n\nWhen you configure a value here, only that precise separator\nwill be used, allowing you to round-trip documents through the\neditor without normalizing line separators.\n*/\nEditorState.lineSeparator = lineSeparator;\n/**\nThis facet controls the value of the\n[`readOnly`](https://codemirror.net/6/docs/ref/#state.EditorState.readOnly) getter, which is\nconsulted by commands and extensions that implement editing\nfunctionality to determine whether they should apply. It\ndefaults to false, but when its highest-precedence value is\n`true`, such functionality disables itself.\n\nNot to be confused with\n[`EditorView.editable`](https://codemirror.net/6/docs/ref/#view.EditorView^editable), which\ncontrols whether the editor's DOM is set to be editable (and\nthus focusable).\n*/\nEditorState.readOnly = readOnly;\n/**\nRegisters translation phrases. The\n[`phrase`](https://codemirror.net/6/docs/ref/#state.EditorState.phrase) method will look through\nall objects registered with this facet to find translations for\nits argument.\n*/\nEditorState.phrases = /*@__PURE__*/Facet.define({\n compare(a, b) {\n let kA = Object.keys(a), kB = Object.keys(b);\n return kA.length == kB.length && kA.every(k => a[k] == b[k]);\n }\n});\n/**\nA facet used to register [language\ndata](https://codemirror.net/6/docs/ref/#state.EditorState.languageDataAt) providers.\n*/\nEditorState.languageData = languageData;\n/**\nFacet used to register change filters, which are called for each\ntransaction (unless explicitly\n[disabled](https://codemirror.net/6/docs/ref/#state.TransactionSpec.filter)), and can suppress\npart of the transaction's changes.\n\nSuch a function can return `true` to indicate that it doesn't\nwant to do anything, `false` to completely stop the changes in\nthe transaction, or a set of ranges in which changes should be\nsuppressed. Such ranges are represented as an array of numbers,\nwith each pair of two numbers indicating the start and end of a\nrange. So for example `[10, 20, 100, 110]` suppresses changes\nbetween 10 and 20, and between 100 and 110.\n*/\nEditorState.changeFilter = changeFilter;\n/**\nFacet used to register a hook that gets a chance to update or\nreplace transaction specs before they are applied. This will\nonly be applied for transactions that don't have\n[`filter`](https://codemirror.net/6/docs/ref/#state.TransactionSpec.filter) set to `false`. You\ncan either return a single transaction spec (possibly the input\ntransaction), or an array of specs (which will be combined in\nthe same way as the arguments to\n[`EditorState.update`](https://codemirror.net/6/docs/ref/#state.EditorState.update)).\n\nWhen possible, it is recommended to avoid accessing\n[`Transaction.state`](https://codemirror.net/6/docs/ref/#state.Transaction.state) in a filter,\nsince it will force creation of a state that will then be\ndiscarded again, if the transaction is actually filtered.\n\n(This functionality should be used with care. Indiscriminately\nmodifying transaction is likely to break something or degrade\nthe user experience.)\n*/\nEditorState.transactionFilter = transactionFilter;\n/**\nThis is a more limited form of\n[`transactionFilter`](https://codemirror.net/6/docs/ref/#state.EditorState^transactionFilter),\nwhich can only add\n[annotations](https://codemirror.net/6/docs/ref/#state.TransactionSpec.annotations) and\n[effects](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects). _But_, this type\nof filter runs even if the transaction has disabled regular\n[filtering](https://codemirror.net/6/docs/ref/#state.TransactionSpec.filter), making it suitable\nfor effects that don't need to touch the changes or selection,\nbut do want to process every transaction.\n\nExtenders run _after_ filters, when both are present.\n*/\nEditorState.transactionExtender = transactionExtender;\nCompartment.reconfigure = /*@__PURE__*/StateEffect.define();\n\n/**\nUtility function for combining behaviors to fill in a config\nobject from an array of provided configs. `defaults` should hold\ndefault values for all optional fields in `Config`.\n\nThe function will, by default, error\nwhen a field gets two values that aren't `===`-equal, but you can\nprovide combine functions per field to do something else.\n*/\nfunction combineConfig(configs, defaults, // Should hold only the optional properties of Config, but I haven't managed to express that\ncombine = {}) {\n let result = {};\n for (let config of configs)\n for (let key of Object.keys(config)) {\n let value = config[key], current = result[key];\n if (current === undefined)\n result[key] = value;\n else if (current === value || value === undefined) ; // No conflict\n else if (Object.hasOwnProperty.call(combine, key))\n result[key] = combine[key](current, value);\n else\n throw new Error(\"Config merge conflict for field \" + key);\n }\n for (let key in defaults)\n if (result[key] === undefined)\n result[key] = defaults[key];\n return result;\n}\n\n/**\nEach range is associated with a value, which must inherit from\nthis class.\n*/\nclass RangeValue {\n /**\n Compare this value with another value. Used when comparing\n rangesets. The default implementation compares by identity.\n Unless you are only creating a fixed number of unique instances\n of your value type, it is a good idea to implement this\n properly.\n */\n eq(other) { return this == other; }\n /**\n Create a [range](https://codemirror.net/6/docs/ref/#state.Range) with this value.\n */\n range(from, to = from) { return Range.create(from, to, this); }\n}\nRangeValue.prototype.startSide = RangeValue.prototype.endSide = 0;\nRangeValue.prototype.point = false;\nRangeValue.prototype.mapMode = MapMode.TrackDel;\n/**\nA range associates a value with a range of positions.\n*/\nclass Range {\n constructor(\n /**\n The range's start position.\n */\n from, \n /**\n Its end position.\n */\n to, \n /**\n The value associated with this range.\n */\n value) {\n this.from = from;\n this.to = to;\n this.value = value;\n }\n /**\n @internal\n */\n static create(from, to, value) {\n return new Range(from, to, value);\n }\n}\nfunction cmpRange(a, b) {\n return a.from - b.from || a.value.startSide - b.value.startSide;\n}\nclass Chunk {\n constructor(from, to, value, \n // Chunks are marked with the largest point that occurs\n // in them (or -1 for no points), so that scans that are\n // only interested in points (such as the\n // heightmap-related logic) can skip range-only chunks.\n maxPoint) {\n this.from = from;\n this.to = to;\n this.value = value;\n this.maxPoint = maxPoint;\n }\n get length() { return this.to[this.to.length - 1]; }\n // Find the index of the given position and side. Use the ranges'\n // `from` pos when `end == false`, `to` when `end == true`.\n findIndex(pos, side, end, startAt = 0) {\n let arr = end ? this.to : this.from;\n for (let lo = startAt, hi = arr.length;;) {\n if (lo == hi)\n return lo;\n let mid = (lo + hi) >> 1;\n let diff = arr[mid] - pos || (end ? this.value[mid].endSide : this.value[mid].startSide) - side;\n if (mid == lo)\n return diff >= 0 ? lo : hi;\n if (diff >= 0)\n hi = mid;\n else\n lo = mid + 1;\n }\n }\n between(offset, from, to, f) {\n for (let i = this.findIndex(from, -1000000000 /* C.Far */, true), e = this.findIndex(to, 1000000000 /* C.Far */, false, i); i < e; i++)\n if (f(this.from[i] + offset, this.to[i] + offset, this.value[i]) === false)\n return false;\n }\n map(offset, changes) {\n let value = [], from = [], to = [], newPos = -1, maxPoint = -1;\n for (let i = 0; i < this.value.length; i++) {\n let val = this.value[i], curFrom = this.from[i] + offset, curTo = this.to[i] + offset, newFrom, newTo;\n if (curFrom == curTo) {\n let mapped = changes.mapPos(curFrom, val.startSide, val.mapMode);\n if (mapped == null)\n continue;\n newFrom = newTo = mapped;\n if (val.startSide != val.endSide) {\n newTo = changes.mapPos(curFrom, val.endSide);\n if (newTo < newFrom)\n continue;\n }\n }\n else {\n newFrom = changes.mapPos(curFrom, val.startSide);\n newTo = changes.mapPos(curTo, val.endSide);\n if (newFrom > newTo || newFrom == newTo && val.startSide > 0 && val.endSide <= 0)\n continue;\n }\n if ((newTo - newFrom || val.endSide - val.startSide) < 0)\n continue;\n if (newPos < 0)\n newPos = newFrom;\n if (val.point)\n maxPoint = Math.max(maxPoint, newTo - newFrom);\n value.push(val);\n from.push(newFrom - newPos);\n to.push(newTo - newPos);\n }\n return { mapped: value.length ? new Chunk(from, to, value, maxPoint) : null, pos: newPos };\n }\n}\n/**\nA range set stores a collection of [ranges](https://codemirror.net/6/docs/ref/#state.Range) in a\nway that makes them efficient to [map](https://codemirror.net/6/docs/ref/#state.RangeSet.map) and\n[update](https://codemirror.net/6/docs/ref/#state.RangeSet.update). This is an immutable data\nstructure.\n*/\nclass RangeSet {\n constructor(\n /**\n @internal\n */\n chunkPos, \n /**\n @internal\n */\n chunk, \n /**\n @internal\n */\n nextLayer, \n /**\n @internal\n */\n maxPoint) {\n this.chunkPos = chunkPos;\n this.chunk = chunk;\n this.nextLayer = nextLayer;\n this.maxPoint = maxPoint;\n }\n /**\n @internal\n */\n static create(chunkPos, chunk, nextLayer, maxPoint) {\n return new RangeSet(chunkPos, chunk, nextLayer, maxPoint);\n }\n /**\n @internal\n */\n get length() {\n let last = this.chunk.length - 1;\n return last < 0 ? 0 : Math.max(this.chunkEnd(last), this.nextLayer.length);\n }\n /**\n The number of ranges in the set.\n */\n get size() {\n if (this.isEmpty)\n return 0;\n let size = this.nextLayer.size;\n for (let chunk of this.chunk)\n size += chunk.value.length;\n return size;\n }\n /**\n @internal\n */\n chunkEnd(index) {\n return this.chunkPos[index] + this.chunk[index].length;\n }\n /**\n Update the range set, optionally adding new ranges or filtering\n out existing ones.\n \n (Note: The type parameter is just there as a kludge to work\n around TypeScript variance issues that prevented `RangeSet`\n from being a subtype of `RangeSet` when `X` is a subtype of\n `Y`.)\n */\n update(updateSpec) {\n let { add = [], sort = false, filterFrom = 0, filterTo = this.length } = updateSpec;\n let filter = updateSpec.filter;\n if (add.length == 0 && !filter)\n return this;\n if (sort)\n add = add.slice().sort(cmpRange);\n if (this.isEmpty)\n return add.length ? RangeSet.of(add) : this;\n let cur = new LayerCursor(this, null, -1).goto(0), i = 0, spill = [];\n let builder = new RangeSetBuilder();\n while (cur.value || i < add.length) {\n if (i < add.length && (cur.from - add[i].from || cur.startSide - add[i].value.startSide) >= 0) {\n let range = add[i++];\n if (!builder.addInner(range.from, range.to, range.value))\n spill.push(range);\n }\n else if (cur.rangeIndex == 1 && cur.chunkIndex < this.chunk.length &&\n (i == add.length || this.chunkEnd(cur.chunkIndex) < add[i].from) &&\n (!filter || filterFrom > this.chunkEnd(cur.chunkIndex) || filterTo < this.chunkPos[cur.chunkIndex]) &&\n builder.addChunk(this.chunkPos[cur.chunkIndex], this.chunk[cur.chunkIndex])) {\n cur.nextChunk();\n }\n else {\n if (!filter || filterFrom > cur.to || filterTo < cur.from || filter(cur.from, cur.to, cur.value)) {\n if (!builder.addInner(cur.from, cur.to, cur.value))\n spill.push(Range.create(cur.from, cur.to, cur.value));\n }\n cur.next();\n }\n }\n return builder.finishInner(this.nextLayer.isEmpty && !spill.length ? RangeSet.empty\n : this.nextLayer.update({ add: spill, filter, filterFrom, filterTo }));\n }\n /**\n Map this range set through a set of changes, return the new set.\n */\n map(changes) {\n if (changes.empty || this.isEmpty)\n return this;\n let chunks = [], chunkPos = [], maxPoint = -1;\n for (let i = 0; i < this.chunk.length; i++) {\n let start = this.chunkPos[i], chunk = this.chunk[i];\n let touch = changes.touchesRange(start, start + chunk.length);\n if (touch === false) {\n maxPoint = Math.max(maxPoint, chunk.maxPoint);\n chunks.push(chunk);\n chunkPos.push(changes.mapPos(start));\n }\n else if (touch === true) {\n let { mapped, pos } = chunk.map(start, changes);\n if (mapped) {\n maxPoint = Math.max(maxPoint, mapped.maxPoint);\n chunks.push(mapped);\n chunkPos.push(pos);\n }\n }\n }\n let next = this.nextLayer.map(changes);\n return chunks.length == 0 ? next : new RangeSet(chunkPos, chunks, next || RangeSet.empty, maxPoint);\n }\n /**\n Iterate over the ranges that touch the region `from` to `to`,\n calling `f` for each. There is no guarantee that the ranges will\n be reported in any specific order. When the callback returns\n `false`, iteration stops.\n */\n between(from, to, f) {\n if (this.isEmpty)\n return;\n for (let i = 0; i < this.chunk.length; i++) {\n let start = this.chunkPos[i], chunk = this.chunk[i];\n if (to >= start && from <= start + chunk.length &&\n chunk.between(start, from - start, to - start, f) === false)\n return;\n }\n this.nextLayer.between(from, to, f);\n }\n /**\n Iterate over the ranges in this set, in order, including all\n ranges that end at or after `from`.\n */\n iter(from = 0) {\n return HeapCursor.from([this]).goto(from);\n }\n /**\n @internal\n */\n get isEmpty() { return this.nextLayer == this; }\n /**\n Iterate over the ranges in a collection of sets, in order,\n starting from `from`.\n */\n static iter(sets, from = 0) {\n return HeapCursor.from(sets).goto(from);\n }\n /**\n Iterate over two groups of sets, calling methods on `comparator`\n to notify it of possible differences.\n */\n static compare(oldSets, newSets, \n /**\n This indicates how the underlying data changed between these\n ranges, and is needed to synchronize the iteration.\n */\n textDiff, comparator, \n /**\n Can be used to ignore all non-point ranges, and points below\n the given size. When -1, all ranges are compared.\n */\n minPointSize = -1) {\n let a = oldSets.filter(set => set.maxPoint > 0 || !set.isEmpty && set.maxPoint >= minPointSize);\n let b = newSets.filter(set => set.maxPoint > 0 || !set.isEmpty && set.maxPoint >= minPointSize);\n let sharedChunks = findSharedChunks(a, b, textDiff);\n let sideA = new SpanCursor(a, sharedChunks, minPointSize);\n let sideB = new SpanCursor(b, sharedChunks, minPointSize);\n textDiff.iterGaps((fromA, fromB, length) => compare(sideA, fromA, sideB, fromB, length, comparator));\n if (textDiff.empty && textDiff.length == 0)\n compare(sideA, 0, sideB, 0, 0, comparator);\n }\n /**\n Compare the contents of two groups of range sets, returning true\n if they are equivalent in the given range.\n */\n static eq(oldSets, newSets, from = 0, to) {\n if (to == null)\n to = 1000000000 /* C.Far */ - 1;\n let a = oldSets.filter(set => !set.isEmpty && newSets.indexOf(set) < 0);\n let b = newSets.filter(set => !set.isEmpty && oldSets.indexOf(set) < 0);\n if (a.length != b.length)\n return false;\n if (!a.length)\n return true;\n let sharedChunks = findSharedChunks(a, b);\n let sideA = new SpanCursor(a, sharedChunks, 0).goto(from), sideB = new SpanCursor(b, sharedChunks, 0).goto(from);\n for (;;) {\n if (sideA.to != sideB.to ||\n !sameValues(sideA.active, sideB.active) ||\n sideA.point && (!sideB.point || !sideA.point.eq(sideB.point)))\n return false;\n if (sideA.to > to)\n return true;\n sideA.next();\n sideB.next();\n }\n }\n /**\n Iterate over a group of range sets at the same time, notifying\n the iterator about the ranges covering every given piece of\n content. Returns the open count (see\n [`SpanIterator.span`](https://codemirror.net/6/docs/ref/#state.SpanIterator.span)) at the end\n of the iteration.\n */\n static spans(sets, from, to, iterator, \n /**\n When given and greater than -1, only points of at least this\n size are taken into account.\n */\n minPointSize = -1) {\n let cursor = new SpanCursor(sets, null, minPointSize).goto(from), pos = from;\n let openRanges = cursor.openStart;\n for (;;) {\n let curTo = Math.min(cursor.to, to);\n if (cursor.point) {\n let active = cursor.activeForPoint(cursor.to);\n let openCount = cursor.pointFrom < from ? active.length + 1 : Math.min(active.length, openRanges);\n iterator.point(pos, curTo, cursor.point, active, openCount, cursor.pointRank);\n openRanges = Math.min(cursor.openEnd(curTo), active.length);\n }\n else if (curTo > pos) {\n iterator.span(pos, curTo, cursor.active, openRanges);\n openRanges = cursor.openEnd(curTo);\n }\n if (cursor.to > to)\n return openRanges + (cursor.point && cursor.to > to ? 1 : 0);\n pos = cursor.to;\n cursor.next();\n }\n }\n /**\n Create a range set for the given range or array of ranges. By\n default, this expects the ranges to be _sorted_ (by start\n position and, if two start at the same position,\n `value.startSide`). You can pass `true` as second argument to\n cause the method to sort them.\n */\n static of(ranges, sort = false) {\n let build = new RangeSetBuilder();\n for (let range of ranges instanceof Range ? [ranges] : sort ? lazySort(ranges) : ranges)\n build.add(range.from, range.to, range.value);\n return build.finish();\n }\n}\n/**\nThe empty set of ranges.\n*/\nRangeSet.empty = /*@__PURE__*/new RangeSet([], [], null, -1);\nfunction lazySort(ranges) {\n if (ranges.length > 1)\n for (let prev = ranges[0], i = 1; i < ranges.length; i++) {\n let cur = ranges[i];\n if (cmpRange(prev, cur) > 0)\n return ranges.slice().sort(cmpRange);\n prev = cur;\n }\n return ranges;\n}\nRangeSet.empty.nextLayer = RangeSet.empty;\n/**\nA range set builder is a data structure that helps build up a\n[range set](https://codemirror.net/6/docs/ref/#state.RangeSet) directly, without first allocating\nan array of [`Range`](https://codemirror.net/6/docs/ref/#state.Range) objects.\n*/\nclass RangeSetBuilder {\n finishChunk(newArrays) {\n this.chunks.push(new Chunk(this.from, this.to, this.value, this.maxPoint));\n this.chunkPos.push(this.chunkStart);\n this.chunkStart = -1;\n this.setMaxPoint = Math.max(this.setMaxPoint, this.maxPoint);\n this.maxPoint = -1;\n if (newArrays) {\n this.from = [];\n this.to = [];\n this.value = [];\n }\n }\n /**\n Create an empty builder.\n */\n constructor() {\n this.chunks = [];\n this.chunkPos = [];\n this.chunkStart = -1;\n this.last = null;\n this.lastFrom = -1000000000 /* C.Far */;\n this.lastTo = -1000000000 /* C.Far */;\n this.from = [];\n this.to = [];\n this.value = [];\n this.maxPoint = -1;\n this.setMaxPoint = -1;\n this.nextLayer = null;\n }\n /**\n Add a range. Ranges should be added in sorted (by `from` and\n `value.startSide`) order.\n */\n add(from, to, value) {\n if (!this.addInner(from, to, value))\n (this.nextLayer || (this.nextLayer = new RangeSetBuilder)).add(from, to, value);\n }\n /**\n @internal\n */\n addInner(from, to, value) {\n let diff = from - this.lastTo || value.startSide - this.last.endSide;\n if (diff <= 0 && (from - this.lastFrom || value.startSide - this.last.startSide) < 0)\n throw new Error(\"Ranges must be added sorted by `from` position and `startSide`\");\n if (diff < 0)\n return false;\n if (this.from.length == 250 /* C.ChunkSize */)\n this.finishChunk(true);\n if (this.chunkStart < 0)\n this.chunkStart = from;\n this.from.push(from - this.chunkStart);\n this.to.push(to - this.chunkStart);\n this.last = value;\n this.lastFrom = from;\n this.lastTo = to;\n this.value.push(value);\n if (value.point)\n this.maxPoint = Math.max(this.maxPoint, to - from);\n return true;\n }\n /**\n @internal\n */\n addChunk(from, chunk) {\n if ((from - this.lastTo || chunk.value[0].startSide - this.last.endSide) < 0)\n return false;\n if (this.from.length)\n this.finishChunk(true);\n this.setMaxPoint = Math.max(this.setMaxPoint, chunk.maxPoint);\n this.chunks.push(chunk);\n this.chunkPos.push(from);\n let last = chunk.value.length - 1;\n this.last = chunk.value[last];\n this.lastFrom = chunk.from[last] + from;\n this.lastTo = chunk.to[last] + from;\n return true;\n }\n /**\n Finish the range set. Returns the new set. The builder can't be\n used anymore after this has been called.\n */\n finish() { return this.finishInner(RangeSet.empty); }\n /**\n @internal\n */\n finishInner(next) {\n if (this.from.length)\n this.finishChunk(false);\n if (this.chunks.length == 0)\n return next;\n let result = RangeSet.create(this.chunkPos, this.chunks, this.nextLayer ? this.nextLayer.finishInner(next) : next, this.setMaxPoint);\n this.from = null; // Make sure further `add` calls produce errors\n return result;\n }\n}\nfunction findSharedChunks(a, b, textDiff) {\n let inA = new Map();\n for (let set of a)\n for (let i = 0; i < set.chunk.length; i++)\n if (set.chunk[i].maxPoint <= 0)\n inA.set(set.chunk[i], set.chunkPos[i]);\n let shared = new Set();\n for (let set of b)\n for (let i = 0; i < set.chunk.length; i++) {\n let known = inA.get(set.chunk[i]);\n if (known != null && (textDiff ? textDiff.mapPos(known) : known) == set.chunkPos[i] &&\n !(textDiff === null || textDiff === void 0 ? void 0 : textDiff.touchesRange(known, known + set.chunk[i].length)))\n shared.add(set.chunk[i]);\n }\n return shared;\n}\nclass LayerCursor {\n constructor(layer, skip, minPoint, rank = 0) {\n this.layer = layer;\n this.skip = skip;\n this.minPoint = minPoint;\n this.rank = rank;\n }\n get startSide() { return this.value ? this.value.startSide : 0; }\n get endSide() { return this.value ? this.value.endSide : 0; }\n goto(pos, side = -1000000000 /* C.Far */) {\n this.chunkIndex = this.rangeIndex = 0;\n this.gotoInner(pos, side, false);\n return this;\n }\n gotoInner(pos, side, forward) {\n while (this.chunkIndex < this.layer.chunk.length) {\n let next = this.layer.chunk[this.chunkIndex];\n if (!(this.skip && this.skip.has(next) ||\n this.layer.chunkEnd(this.chunkIndex) < pos ||\n next.maxPoint < this.minPoint))\n break;\n this.chunkIndex++;\n forward = false;\n }\n if (this.chunkIndex < this.layer.chunk.length) {\n let rangeIndex = this.layer.chunk[this.chunkIndex].findIndex(pos - this.layer.chunkPos[this.chunkIndex], side, true);\n if (!forward || this.rangeIndex < rangeIndex)\n this.setRangeIndex(rangeIndex);\n }\n this.next();\n }\n forward(pos, side) {\n if ((this.to - pos || this.endSide - side) < 0)\n this.gotoInner(pos, side, true);\n }\n next() {\n for (;;) {\n if (this.chunkIndex == this.layer.chunk.length) {\n this.from = this.to = 1000000000 /* C.Far */;\n this.value = null;\n break;\n }\n else {\n let chunkPos = this.layer.chunkPos[this.chunkIndex], chunk = this.layer.chunk[this.chunkIndex];\n let from = chunkPos + chunk.from[this.rangeIndex];\n this.from = from;\n this.to = chunkPos + chunk.to[this.rangeIndex];\n this.value = chunk.value[this.rangeIndex];\n this.setRangeIndex(this.rangeIndex + 1);\n if (this.minPoint < 0 || this.value.point && this.to - this.from >= this.minPoint)\n break;\n }\n }\n }\n setRangeIndex(index) {\n if (index == this.layer.chunk[this.chunkIndex].value.length) {\n this.chunkIndex++;\n if (this.skip) {\n while (this.chunkIndex < this.layer.chunk.length && this.skip.has(this.layer.chunk[this.chunkIndex]))\n this.chunkIndex++;\n }\n this.rangeIndex = 0;\n }\n else {\n this.rangeIndex = index;\n }\n }\n nextChunk() {\n this.chunkIndex++;\n this.rangeIndex = 0;\n this.next();\n }\n compare(other) {\n return this.from - other.from || this.startSide - other.startSide || this.rank - other.rank ||\n this.to - other.to || this.endSide - other.endSide;\n }\n}\nclass HeapCursor {\n constructor(heap) {\n this.heap = heap;\n }\n static from(sets, skip = null, minPoint = -1) {\n let heap = [];\n for (let i = 0; i < sets.length; i++) {\n for (let cur = sets[i]; !cur.isEmpty; cur = cur.nextLayer) {\n if (cur.maxPoint >= minPoint)\n heap.push(new LayerCursor(cur, skip, minPoint, i));\n }\n }\n return heap.length == 1 ? heap[0] : new HeapCursor(heap);\n }\n get startSide() { return this.value ? this.value.startSide : 0; }\n goto(pos, side = -1000000000 /* C.Far */) {\n for (let cur of this.heap)\n cur.goto(pos, side);\n for (let i = this.heap.length >> 1; i >= 0; i--)\n heapBubble(this.heap, i);\n this.next();\n return this;\n }\n forward(pos, side) {\n for (let cur of this.heap)\n cur.forward(pos, side);\n for (let i = this.heap.length >> 1; i >= 0; i--)\n heapBubble(this.heap, i);\n if ((this.to - pos || this.value.endSide - side) < 0)\n this.next();\n }\n next() {\n if (this.heap.length == 0) {\n this.from = this.to = 1000000000 /* C.Far */;\n this.value = null;\n this.rank = -1;\n }\n else {\n let top = this.heap[0];\n this.from = top.from;\n this.to = top.to;\n this.value = top.value;\n this.rank = top.rank;\n if (top.value)\n top.next();\n heapBubble(this.heap, 0);\n }\n }\n}\nfunction heapBubble(heap, index) {\n for (let cur = heap[index];;) {\n let childIndex = (index << 1) + 1;\n if (childIndex >= heap.length)\n break;\n let child = heap[childIndex];\n if (childIndex + 1 < heap.length && child.compare(heap[childIndex + 1]) >= 0) {\n child = heap[childIndex + 1];\n childIndex++;\n }\n if (cur.compare(child) < 0)\n break;\n heap[childIndex] = cur;\n heap[index] = child;\n index = childIndex;\n }\n}\nclass SpanCursor {\n constructor(sets, skip, minPoint) {\n this.minPoint = minPoint;\n this.active = [];\n this.activeTo = [];\n this.activeRank = [];\n this.minActive = -1;\n // A currently active point range, if any\n this.point = null;\n this.pointFrom = 0;\n this.pointRank = 0;\n this.to = -1000000000 /* C.Far */;\n this.endSide = 0;\n // The amount of open active ranges at the start of the iterator.\n // Not including points.\n this.openStart = -1;\n this.cursor = HeapCursor.from(sets, skip, minPoint);\n }\n goto(pos, side = -1000000000 /* C.Far */) {\n this.cursor.goto(pos, side);\n this.active.length = this.activeTo.length = this.activeRank.length = 0;\n this.minActive = -1;\n this.to = pos;\n this.endSide = side;\n this.openStart = -1;\n this.next();\n return this;\n }\n forward(pos, side) {\n while (this.minActive > -1 && (this.activeTo[this.minActive] - pos || this.active[this.minActive].endSide - side) < 0)\n this.removeActive(this.minActive);\n this.cursor.forward(pos, side);\n }\n removeActive(index) {\n remove(this.active, index);\n remove(this.activeTo, index);\n remove(this.activeRank, index);\n this.minActive = findMinIndex(this.active, this.activeTo);\n }\n addActive(trackOpen) {\n let i = 0, { value, to, rank } = this.cursor;\n while (i < this.activeRank.length && this.activeRank[i] <= rank)\n i++;\n insert(this.active, i, value);\n insert(this.activeTo, i, to);\n insert(this.activeRank, i, rank);\n if (trackOpen)\n insert(trackOpen, i, this.cursor.from);\n this.minActive = findMinIndex(this.active, this.activeTo);\n }\n // After calling this, if `this.point` != null, the next range is a\n // point. Otherwise, it's a regular range, covered by `this.active`.\n next() {\n let from = this.to, wasPoint = this.point;\n this.point = null;\n let trackOpen = this.openStart < 0 ? [] : null;\n for (;;) {\n let a = this.minActive;\n if (a > -1 && (this.activeTo[a] - this.cursor.from || this.active[a].endSide - this.cursor.startSide) < 0) {\n if (this.activeTo[a] > from) {\n this.to = this.activeTo[a];\n this.endSide = this.active[a].endSide;\n break;\n }\n this.removeActive(a);\n if (trackOpen)\n remove(trackOpen, a);\n }\n else if (!this.cursor.value) {\n this.to = this.endSide = 1000000000 /* C.Far */;\n break;\n }\n else if (this.cursor.from > from) {\n this.to = this.cursor.from;\n this.endSide = this.cursor.startSide;\n break;\n }\n else {\n let nextVal = this.cursor.value;\n if (!nextVal.point) { // Opening a range\n this.addActive(trackOpen);\n this.cursor.next();\n }\n else if (wasPoint && this.cursor.to == this.to && this.cursor.from < this.cursor.to) {\n // Ignore any non-empty points that end precisely at the end of the prev point\n this.cursor.next();\n }\n else { // New point\n this.point = nextVal;\n this.pointFrom = this.cursor.from;\n this.pointRank = this.cursor.rank;\n this.to = this.cursor.to;\n this.endSide = nextVal.endSide;\n this.cursor.next();\n this.forward(this.to, this.endSide);\n break;\n }\n }\n }\n if (trackOpen) {\n this.openStart = 0;\n for (let i = trackOpen.length - 1; i >= 0 && trackOpen[i] < from; i--)\n this.openStart++;\n }\n }\n activeForPoint(to) {\n if (!this.active.length)\n return this.active;\n let active = [];\n for (let i = this.active.length - 1; i >= 0; i--) {\n if (this.activeRank[i] < this.pointRank)\n break;\n if (this.activeTo[i] > to || this.activeTo[i] == to && this.active[i].endSide >= this.point.endSide)\n active.push(this.active[i]);\n }\n return active.reverse();\n }\n openEnd(to) {\n let open = 0;\n for (let i = this.activeTo.length - 1; i >= 0 && this.activeTo[i] > to; i--)\n open++;\n return open;\n }\n}\nfunction compare(a, startA, b, startB, length, comparator) {\n a.goto(startA);\n b.goto(startB);\n let endB = startB + length;\n let pos = startB, dPos = startB - startA;\n for (;;) {\n let diff = (a.to + dPos) - b.to || a.endSide - b.endSide;\n let end = diff < 0 ? a.to + dPos : b.to, clipEnd = Math.min(end, endB);\n if (a.point || b.point) {\n if (!(a.point && b.point && (a.point == b.point || a.point.eq(b.point)) &&\n sameValues(a.activeForPoint(a.to), b.activeForPoint(b.to))))\n comparator.comparePoint(pos, clipEnd, a.point, b.point);\n }\n else {\n if (clipEnd > pos && !sameValues(a.active, b.active))\n comparator.compareRange(pos, clipEnd, a.active, b.active);\n }\n if (end > endB)\n break;\n pos = end;\n if (diff <= 0)\n a.next();\n if (diff >= 0)\n b.next();\n }\n}\nfunction sameValues(a, b) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (a[i] != b[i] && !a[i].eq(b[i]))\n return false;\n return true;\n}\nfunction remove(array, index) {\n for (let i = index, e = array.length - 1; i < e; i++)\n array[i] = array[i + 1];\n array.pop();\n}\nfunction insert(array, index, value) {\n for (let i = array.length - 1; i >= index; i--)\n array[i + 1] = array[i];\n array[index] = value;\n}\nfunction findMinIndex(value, array) {\n let found = -1, foundPos = 1000000000 /* C.Far */;\n for (let i = 0; i < array.length; i++)\n if ((array[i] - foundPos || value[i].endSide - value[found].endSide) < 0) {\n found = i;\n foundPos = array[i];\n }\n return found;\n}\n\n/**\nCount the column position at the given offset into the string,\ntaking extending characters and tab size into account.\n*/\nfunction countColumn(string, tabSize, to = string.length) {\n let n = 0;\n for (let i = 0; i < to;) {\n if (string.charCodeAt(i) == 9) {\n n += tabSize - (n % tabSize);\n i++;\n }\n else {\n n++;\n i = findClusterBreak(string, i);\n }\n }\n return n;\n}\n/**\nFind the offset that corresponds to the given column position in a\nstring, taking extending characters and tab size into account. By\ndefault, the string length is returned when it is too short to\nreach the column. Pass `strict` true to make it return -1 in that\nsituation.\n*/\nfunction findColumn(string, col, tabSize, strict) {\n for (let i = 0, n = 0;;) {\n if (n >= col)\n return i;\n if (i == string.length)\n break;\n n += string.charCodeAt(i) == 9 ? tabSize - (n % tabSize) : 1;\n i = findClusterBreak(string, i);\n }\n return strict === true ? -1 : string.length;\n}\n\nexport { Annotation, AnnotationType, ChangeDesc, ChangeSet, CharCategory, Compartment, EditorSelection, EditorState, Facet, Line, MapMode, Prec, Range, RangeSet, RangeSetBuilder, RangeValue, SelectionRange, StateEffect, StateEffectType, StateField, Text, Transaction, codePointAt, codePointSize, combineConfig, countColumn, findClusterBreak, findColumn, fromCodePoint };\n","const C = \"\\u037c\"\nconst COUNT = typeof Symbol == \"undefined\" ? \"__\" + C : Symbol.for(C)\nconst SET = typeof Symbol == \"undefined\" ? \"__styleSet\" + Math.floor(Math.random() * 1e8) : Symbol(\"styleSet\")\nconst top = typeof globalThis != \"undefined\" ? globalThis : typeof window != \"undefined\" ? window : {}\n\n// :: - Style modules encapsulate a set of CSS rules defined from\n// JavaScript. Their definitions are only available in a given DOM\n// root after it has been _mounted_ there with `StyleModule.mount`.\n//\n// Style modules should be created once and stored somewhere, as\n// opposed to re-creating them every time you need them. The amount of\n// CSS rules generated for a given DOM root is bounded by the amount\n// of style modules that were used. So to avoid leaking rules, don't\n// create these dynamically, but treat them as one-time allocations.\nexport class StyleModule {\n // :: (Object