UNPKG

@dtu-olp-2024/solidity-editor-nocobase

Version:

A NocoBase plugin for Solidity code editor. Built for the DTU GreenHope project.

14 lines (13 loc) 951 kB
/** * This file is part of the NocoBase (R) project. * Copyright (c) 2020-2024 NocoBase Co., Ltd. * Authors: NocoBase Team. * * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. * For more information, please refer to: https://www.nocobase.com/agreement. */ (function(Me,Ie){typeof exports=="object"&&typeof module!="undefined"?Ie(exports,require("@nocobase/client"),require("@formily/react"),require("react/jsx-runtime"),require("react"),require("antd")):typeof define=="function"&&define.amd?define(["exports","@nocobase/client","@formily/react","react/jsx-runtime","react","antd"],Ie):(Me=typeof globalThis!="undefined"?globalThis:Me||self,Ie(Me["@dtu-olp-2024/solidity-editor-nocobase"]={},Me["@nocobase/client"],Me["@formily/react"],Me.jsxRuntime,Me.react,Me.antd))})(this,function(Me,Ie,ft,tt,Ee,qe){"use strict";var GN=Object.defineProperty,FN=Object.defineProperties;var VN=Object.getOwnPropertyDescriptors;var q1=Object.getOwnPropertySymbols;var HN=Object.prototype.hasOwnProperty,WN=Object.prototype.propertyIsEnumerable;var Yn=Math.pow,U1=(Me,Ie,ft)=>Ie in Me?GN(Me,Ie,{enumerable:!0,configurable:!0,writable:!0,value:ft}):Me[Ie]=ft,Q=(Me,Ie)=>{for(var ft in Ie||(Ie={}))HN.call(Ie,ft)&&U1(Me,ft,Ie[ft]);if(q1)for(var ft of q1(Ie))WN.call(Ie,ft)&&U1(Me,ft,Ie[ft]);return Me},J=(Me,Ie)=>FN(Me,VN(Ie));var We=(Me,Ie,ft)=>new Promise((tt,Ee)=>{var qe=wn=>{try{Si(ft.next(wn))}catch(no){Ee(no)}},Va=wn=>{try{Si(ft.throw(wn))}catch(no){Ee(no)}},Si=wn=>wn.done?tt(wn.value):Promise.resolve(wn.value).then(qe,Va);Si((ft=ft.apply(Me,Ie)).next())});const Va="Solidity Editor",Si="solidityeditor",wn=new Ie.SchemaSettings({name:`blockSettings:${Si}`,items:[{type:"remove",name:"remove",componentProps:{removeParentsIfNoChildren:!0,breakRemoveOn:{"x-component":"Grid"}}}]}),no={type:"void","x-component":"CardItem","x-decorator":"DataBlockProvider","x-decorator-props":{[Si]:{},dataSource:"main",collection:"smart_contracts",action:"list"},"x-settings":wn.name,"x-toolbar":"BlockSchemaToolbar",properties:{[Si]:{type:"void","x-component":"SolidityEditor","x-use-component-props":"useCodeBlockProps"}}},Dr={type:"item",name:Si,icon:"FileOutlined",useComponentProps(){const{insert:n}=Ie.useSchemaInitializer();return{title:Va,componentType:"SolidityEditor",onClick:()=>{n(no)}}}};function Ha(){return Ha=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)({}).hasOwnProperty.call(t,i)&&(n[i]=t[i])}return n},Ha.apply(null,arguments)}function G1(n,e){if(n==null)return{};var t={};for(var i in n)if({}.hasOwnProperty.call(n,i)){if(e.includes(i))continue;t[i]=n[i]}return t}class ye{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){[e,t]=jr(this,e,t);let r=[];return this.decompose(0,e,r,2),i.length&&i.decompose(0,i.length,r,3),this.decompose(t,this.length,r,1),xn.from(r,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=jr(this,e,t);let i=[];return this.decompose(e,t,i,0),xn.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),r=new io(this),s=new io(e);for(let o=t,a=t;;){if(r.next(o),s.next(o),o=0,r.lineBreak!=s.lineBreak||r.done!=s.done||r.value!=s.value)return!1;if(a+=r.value.length,r.done||a>=i)return!0}}iter(e=1){return new io(this,e)}iterRange(e,t=this.length){return new gm(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let r=this.line(e).from;i=this.iterRange(r,Math.max(r,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new Om(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?ye.empty:e.length<=32?new Ue(e):xn.from(Ue.split(e,[]))}}class Ue extends ye{constructor(e,t=F1(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,r){for(let s=0;;s++){let o=this.text[s],a=r+o.length;if((t?i:a)>=e)return new V1(r,a,i,o);r=a+1,i++}}decompose(e,t,i,r){let s=e<=0&&t>=this.length?this:new Ue(mm(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(r&1){let o=i.pop(),a=Wa(s.text,o.text.slice(),0,s.length);if(a.length<=32)i.push(new Ue(a,o.length+s.length));else{let l=a.length>>1;i.push(new Ue(a.slice(0,l)),new Ue(a.slice(l)))}}else i.push(s)}replace(e,t,i){if(!(i instanceof Ue))return super.replace(e,t,i);[e,t]=jr(this,e,t);let r=Wa(this.text,Wa(i.text,mm(this.text,0,e)),t),s=this.length+i.length-(t-e);return r.length<=32?new Ue(r,s):xn.from(Ue.split(r,[]),s)}sliceString(e,t=this.length,i=` `){[e,t]=jr(this,e,t);let r="";for(let s=0,o=0;s<=t&&o<this.text.length;o++){let a=this.text[o],l=s+a.length;s>e&&o&&(r+=i),e<l&&t>s&&(r+=a.slice(Math.max(0,e-s),t-s)),s=l+1}return r}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let i=[],r=-1;for(let s of e)i.push(s),r+=s.length+1,i.length==32&&(t.push(new Ue(i,r)),i=[],r=-1);return r>-1&&t.push(new Ue(i,r)),t}}class xn extends ye{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let i of e)this.lines+=i.lines}lineInner(e,t,i,r){for(let s=0;;s++){let o=this.children[s],a=r+o.length,l=i+o.lines-1;if((t?l:a)>=e)return o.lineInner(e,t,i,r);r=a+1,i=l+1}}decompose(e,t,i,r){for(let s=0,o=0;o<=t&&s<this.children.length;s++){let a=this.children[s],l=o+a.length;if(e<=l&&t>=o){let h=r&((o<=e?1:0)|(l>=t?2:0));o>=e&&l<=t&&!h?i.push(a):a.decompose(e-o,t-o,i,h)}o=l+1}}replace(e,t,i){if([e,t]=jr(this,e,t),i.lines<this.lines)for(let r=0,s=0;r<this.children.length;r++){let o=this.children[r],a=s+o.length;if(e>=s&&t<=a){let l=o.replace(e-s,t-s,i),h=this.lines-o.lines+l.lines;if(l.lines<h>>4&&l.lines>h>>6){let c=this.children.slice();return c[r]=l,new xn(c,this.length-(t-e)+i.length)}return super.replace(s,a,l)}s=a+1}return super.replace(e,t,i)}sliceString(e,t=this.length,i=` `){[e,t]=jr(this,e,t);let r="";for(let s=0,o=0;s<this.children.length&&o<=t;s++){let a=this.children[s],l=o+a.length;o>e&&s&&(r+=i),e<l&&t>o&&(r+=a.sliceString(e-o,t-o,i)),o=l+1}return r}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof xn))return 0;let i=0,[r,s,o,a]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;r+=t,s+=t){if(r==o||s==a)return i;let l=this.children[r],h=e.children[s];if(l!=h)return i+l.scanIdentical(h,t);i+=l.length+1}}static from(e,t=e.reduce((i,r)=>i+r.length+1,-1)){let i=0;for(let d of e)i+=d.lines;if(i<32){let d=[];for(let p of e)p.flatten(d);return new Ue(d,t)}let r=Math.max(32,i>>5),s=r<<1,o=r>>1,a=[],l=0,h=-1,c=[];function u(d){let p;if(d.lines>s&&d instanceof xn)for(let m of d.children)u(m);else d.lines>o&&(l>o||!l)?(f(),a.push(d)):d instanceof Ue&&l&&(p=c[c.length-1])instanceof Ue&&d.lines+p.lines<=32?(l+=d.lines,h+=d.length+1,c[c.length-1]=new Ue(p.text.concat(d.text),p.length+1+d.length)):(l+d.lines>r&&f(),l+=d.lines,h+=d.length+1,c.push(d))}function f(){l!=0&&(a.push(c.length==1?c[0]:xn.from(c,h)),h=-1,l=c.length=0)}for(let d of e)u(d);return f(),a.length==1?a[0]:new xn(a,t)}}ye.empty=new Ue([""],0);function F1(n){let e=-1;for(let t of n)e+=t.length+1;return e}function Wa(n,e,t=0,i=1e9){for(let r=0,s=0,o=!0;s<n.length&&r<=i;s++){let a=n[s],l=r+a.length;l>=t&&(l>i&&(a=a.slice(0,i-r)),r<t&&(a=a.slice(t-r)),o?(e[e.length-1]+=a,o=!1):e.push(a)),r=l+1}return e}function mm(n,e,t){return Wa(n,[""],e,t)}class io{constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[t>0?1:(e instanceof Ue?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,r=this.nodes[i],s=this.offsets[i],o=s>>1,a=r instanceof Ue?r.text.length:r.children.length;if(o==(t>0?a:0)){if(i==0)return this.done=!0,this.value="",this;t>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[i]+=t,e==0)return this.lineBreak=!0,this.value=` `,this;e--}else if(r instanceof Ue){let l=r.text[o+(t<0?-1:0)];if(this.offsets[i]+=t,l.length>Math.max(0,e))return this.value=e==0?l:t>0?l.slice(e):l.slice(0,l.length-e),this;e-=l.length}else{let l=r.children[o+(t<0?-1:0)];e>l.length?(e-=l.length,this.offsets[i]+=t):(t<0&&this.offsets[i]--,this.nodes.push(l),this.offsets.push(t>0?1:(l instanceof Ue?l.text.length:l.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class gm{constructor(e,t,i){this.value="",this.done=!1,this.cursor=new io(e,t>i?-1:1),this.pos=t>i?e.length:0,this.from=Math.min(t,i),this.to=Math.max(t,i)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let i=t<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:r}=this.cursor.next(e);return this.pos+=(r.length+e)*t,this.value=r.length<=i?r:t<0?r.slice(r.length-i):r.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class Om{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:i,value:r}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=r,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol!="undefined"&&(ye.prototype[Symbol.iterator]=function(){return this.iter()},io.prototype[Symbol.iterator]=gm.prototype[Symbol.iterator]=Om.prototype[Symbol.iterator]=function(){return this});class V1{constructor(e,t,i,r){this.from=e,this.to=t,this.number=i,this.text=r}get length(){return this.to-this.from}}function jr(n,e,t){return e=Math.max(0,Math.min(n.length,e)),[e,Math.max(e,Math.min(n.length,t))]}let qr="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(n=>n?parseInt(n,36):1);for(let n=1;n<qr.length;n++)qr[n]+=qr[n-1];function H1(n){for(let e=1;e<qr.length;e+=2)if(qr[e]>n)return qr[e-1]<=n;return!1}function ym(n){return n>=127462&&n<=127487}const bm=8205;function at(n,e,t=!0,i=!0){return(t?vm:W1)(n,e,i)}function vm(n,e,t){if(e==n.length)return e;e&&wm(n.charCodeAt(e))&&xm(n.charCodeAt(e-1))&&e--;let i=lt(n,e);for(e+=Yt(i);e<n.length;){let r=lt(n,e);if(i==bm||r==bm||t&&H1(r))e+=Yt(r),i=r;else if(ym(r)){let s=0,o=e-2;for(;o>=0&&ym(lt(n,o));)s++,o-=2;if(s%2==0)break;e+=2}else break}return e}function W1(n,e,t){for(;e>0;){let i=vm(n,e-2,t);if(i<e)return i;e--}return 0}function wm(n){return n>=56320&&n<57344}function xm(n){return n>=55296&&n<56320}function lt(n,e){let t=n.charCodeAt(e);if(!xm(t)||e+1==n.length)return t;let i=n.charCodeAt(e+1);return wm(i)?(t-55296<<10)+(i-56320)+65536:t}function Fh(n){return n<=65535?String.fromCharCode(n):(n-=65536,String.fromCharCode((n>>10)+55296,(n&1023)+56320))}function Yt(n){return n<65536?1:2}const Vh=/\r\n?|\n/;var ct=function(n){return n[n.Simple=0]="Simple",n[n.TrackDel=1]="TrackDel",n[n.TrackBefore=2]="TrackBefore",n[n.TrackAfter=3]="TrackAfter",n}(ct||(ct={}));class Sn{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let i=this.sections[t+1];e+=i<0?this.sections[t]:i}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,i=0,r=0;t<this.sections.length;){let s=this.sections[t++],o=this.sections[t++];o<0?(e(i,r,s),r+=s):r+=o,i+=s}}iterChangedRanges(e,t=!1){Hh(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let i=this.sections[t++],r=this.sections[t++];r<0?e.push(i,r):e.push(r,i)}return new Sn(e)}composeDesc(e){return this.empty?e:e.empty?this:Sm(this,e)}mapDesc(e,t=!1){return e.empty?this:Wh(this,e,t)}mapPos(e,t=-1,i=ct.Simple){let r=0,s=0;for(let o=0;o<this.sections.length;){let a=this.sections[o++],l=this.sections[o++],h=r+a;if(l<0){if(h>e)return s+(e-r);s+=a}else{if(i!=ct.Simple&&h>=e&&(i==ct.TrackDel&&r<e&&h>e||i==ct.TrackBefore&&r<e||i==ct.TrackAfter&&h>e))return null;if(h>e||h==e&&t<0&&!a)return e==r||t<0?s:s+l;s+=l}r=h}if(e>r)throw new RangeError(`Position ${e} is out of range for changeset of length ${r}`);return s}touchesRange(e,t=e){for(let i=0,r=0;i<this.sections.length&&r<=t;){let s=this.sections[i++],o=this.sections[i++],a=r+s;if(o>=0&&r<=t&&a>=e)return r<e&&a>t?"cover":!0;r=a}return!1}toString(){let e="";for(let t=0;t<this.sections.length;){let i=this.sections[t++],r=this.sections[t++];e+=(e?" ":"")+i+(r>=0?":"+r:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new Sn(e)}static create(e){return new Sn(e)}}class ze extends Sn{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return Hh(this,(t,i,r,s,o)=>e=e.replace(r,r+(i-t),o),!1),e}mapDesc(e,t=!1){return Wh(this,e,t,!0)}invert(e){let t=this.sections.slice(),i=[];for(let r=0,s=0;r<t.length;r+=2){let o=t[r],a=t[r+1];if(a>=0){t[r]=a,t[r+1]=o;let l=r>>1;for(;i.length<l;)i.push(ye.empty);i.push(o?e.slice(s,s+o):ye.empty)}s+=o}return new ze(t,i)}compose(e){return this.empty?e:e.empty?this:Sm(this,e,!0)}map(e,t=!1){return e.empty?this:Wh(this,e,t,!0)}iterChanges(e,t=!1){Hh(this,e,t)}get desc(){return Sn.create(this.sections)}filter(e){let t=[],i=[],r=[],s=new ro(this);e:for(let o=0,a=0;;){let l=o==e.length?1e9:e[o++];for(;a<l||a==l&&s.len==0;){if(s.done)break e;let c=Math.min(s.len,l-a);dt(r,c,-1);let u=s.ins==-1?-1:s.off==0?s.ins:0;dt(t,c,u),u>0&&Ai(i,t,s.text),s.forward(c),a+=c}let h=e[o++];for(;a<h;){if(s.done)break e;let c=Math.min(s.len,h-a);dt(t,c,-1),dt(r,c,s.ins==-1?-1:s.off==0?s.ins:0),s.forward(c),a+=c}}return{changes:new ze(t,i),filtered:Sn.create(r)}}toJSON(){let e=[];for(let t=0;t<this.sections.length;t+=2){let i=this.sections[t],r=this.sections[t+1];r<0?e.push(i):r==0?e.push([i]):e.push([i].concat(this.inserted[t>>1].toJSON()))}return e}static of(e,t,i){let r=[],s=[],o=0,a=null;function l(c=!1){if(!c&&!r.length)return;o<t&&dt(r,t-o,-1);let u=new ze(r,s);a=a?a.compose(u.map(a)):u,r=[],s=[],o=0}function h(c){if(Array.isArray(c))for(let u of c)h(u);else if(c instanceof ze){if(c.length!=t)throw new RangeError(`Mismatched change set length (got ${c.length}, expected ${t})`);l(),a=a?a.compose(c.map(a)):c}else{let{from:u,to:f=u,insert:d}=c;if(u>f||u<0||f>t)throw new RangeError(`Invalid change range ${u} to ${f} (in doc of length ${t})`);let p=d?typeof d=="string"?ye.of(d.split(i||Vh)):d:ye.empty,m=p.length;if(u==f&&m==0)return;u<o&&l(),u>o&&dt(r,u-o,-1),dt(r,f-u,m),Ai(s,r,p),o=f}}return h(e),l(!a),a}static empty(e){return new ze(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],i=[];for(let r=0;r<e.length;r++){let s=e[r];if(typeof s=="number")t.push(s,-1);else{if(!Array.isArray(s)||typeof s[0]!="number"||s.some((o,a)=>a&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(s.length==1)t.push(s[0],0);else{for(;i.length<r;)i.push(ye.empty);i[r]=ye.of(s.slice(1)),t.push(s[0],i[r].length)}}}return new ze(t,i)}static createSet(e,t){return new ze(e,t)}}function dt(n,e,t,i=!1){if(e==0&&t<=0)return;let r=n.length-2;r>=0&&t<=0&&t==n[r+1]?n[r]+=e:e==0&&n[r]==0?n[r+1]+=t:i?(n[r]+=e,n[r+1]+=t):n.push(e,t)}function Ai(n,e,t){if(t.length==0)return;let i=e.length-2>>1;if(i<n.length)n[n.length-1]=n[n.length-1].append(t);else{for(;n.length<i;)n.push(ye.empty);n.push(t)}}function Hh(n,e,t){let i=n.inserted;for(let r=0,s=0,o=0;o<n.sections.length;){let a=n.sections[o++],l=n.sections[o++];if(l<0)r+=a,s+=a;else{let h=r,c=s,u=ye.empty;for(;h+=a,c+=l,l&&i&&(u=u.append(i[o-2>>1])),!(t||o==n.sections.length||n.sections[o+1]<0);)a=n.sections[o++],l=n.sections[o++];e(r,h,s,c,u),r=h,s=c}}}function Wh(n,e,t,i=!1){let r=[],s=i?[]:null,o=new ro(n),a=new ro(e);for(let l=-1;;)if(o.ins==-1&&a.ins==-1){let h=Math.min(o.len,a.len);dt(r,h,-1),o.forward(h),a.forward(h)}else if(a.ins>=0&&(o.ins<0||l==o.i||o.off==0&&(a.len<o.len||a.len==o.len&&!t))){let h=a.len;for(dt(r,a.ins,-1);h;){let c=Math.min(o.len,h);o.ins>=0&&l<o.i&&o.len<=c&&(dt(r,0,o.ins),s&&Ai(s,r,o.text),l=o.i),o.forward(c),h-=c}a.next()}else if(o.ins>=0){let h=0,c=o.len;for(;c;)if(a.ins==-1){let u=Math.min(c,a.len);h+=u,c-=u,a.forward(u)}else if(a.ins==0&&a.len<c)c-=a.len,a.next();else break;dt(r,h,l<o.i?o.ins:0),s&&l<o.i&&Ai(s,r,o.text),l=o.i,o.forward(o.len-c)}else{if(o.done&&a.done)return s?ze.createSet(r,s):Sn.create(r);throw new Error("Mismatched change set lengths")}}function Sm(n,e,t=!1){let i=[],r=t?[]:null,s=new ro(n),o=new ro(e);for(let a=!1;;){if(s.done&&o.done)return r?ze.createSet(i,r):Sn.create(i);if(s.ins==0)dt(i,s.len,0,a),s.next();else if(o.len==0&&!o.done)dt(i,0,o.ins,a),r&&Ai(r,i,o.text),o.next();else{if(s.done||o.done)throw new Error("Mismatched change set lengths");{let l=Math.min(s.len2,o.len),h=i.length;if(s.ins==-1){let c=o.ins==-1?-1:o.off?0:o.ins;dt(i,l,c,a),r&&c&&Ai(r,i,o.text)}else o.ins==-1?(dt(i,s.off?0:s.len,l,a),r&&Ai(r,i,s.textBit(l))):(dt(i,s.off?0:s.len,o.off?0:o.ins,a),r&&!o.off&&Ai(r,i,o.text));a=(s.ins>l||o.ins>=0&&o.len>l)&&(a||i.length>h),s.forward2(l),o.forward(l)}}}}class ro{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i<e.length?(this.len=e[this.i++],this.ins=e[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:e}=this.set,t=this.i-2>>1;return t>=e.length?ye.empty:e[t]}textBit(e){let{inserted:t}=this.set,i=this.i-2>>1;return i>=t.length&&!e?ye.empty:t[i].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class er{constructor(e,t,i){this.from=e,this.to=t,this.flags=i}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,t=-1){let i,r;return this.empty?i=r=e.mapPos(this.from,t):(i=e.mapPos(this.from,1),r=e.mapPos(this.to,-1)),i==this.from&&r==this.to?this:new er(i,r,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return $.range(e,t);let i=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return $.range(this.anchor,i)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return $.range(e.anchor,e.head)}static create(e,t,i){return new er(e,t,i)}}class ${constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:$.create(this.ranges.map(i=>i.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let i=0;i<this.ranges.length;i++)if(!this.ranges[i].eq(e.ranges[i],t))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new $([this.main],0)}addRange(e,t=!0){return $.create([e].concat(this.ranges),t?0:this.mainIndex+1)}replaceRange(e,t=this.mainIndex){let i=this.ranges.slice();return i[t]=e,$.create(i,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(e=>e.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new $(e.ranges.map(t=>er.fromJSON(t)),e.main)}static single(e,t=e){return new $([$.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,r=0;r<e.length;r++){let s=e[r];if(s.empty?s.from<=i:s.from<i)return $.normalized(e.slice(),t);i=s.to}return new $(e,t)}static cursor(e,t=0,i,r){return er.create(e,e,(t==0?0:t<0?8:16)|(i==null?7:Math.min(6,i))|(r!=null?r:16777215)<<6)}static range(e,t,i,r){let s=(i!=null?i:16777215)<<6|(r==null?7:Math.min(6,r));return t<e?er.create(t,e,48|s):er.create(e,t,(t>e?8:0)|s)}static normalized(e,t=0){let i=e[t];e.sort((r,s)=>r.from-s.from),t=e.indexOf(i);for(let r=1;r<e.length;r++){let s=e[r],o=e[r-1];if(s.empty?s.from<=o.to:s.from<o.to){let a=o.from,l=Math.max(s.to,o.to);r<=t&&t--,e.splice(--r,2,s.anchor>s.head?$.range(l,a):$.range(a,l))}}return new $(e,t)}}function Am(n,e){for(let t of n.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}let zh=0;class G{constructor(e,t,i,r,s){this.combine=e,this.compareInput=t,this.compare=i,this.isStatic=r,this.id=zh++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}get reader(){return this}static define(e={}){return new G(e.combine||(t=>t),e.compareInput||((t,i)=>t===i),e.compare||(e.combine?(t,i)=>t===i:Yh),!!e.static,e.enables)}of(e){return new za([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new za(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new za(e,this,2,t)}from(e,t){return t||(t=i=>i),this.compute([e],i=>t(i.field(e)))}}function Yh(n,e){return n==e||n.length==e.length&&n.every((t,i)=>t===e[i])}class za{constructor(e,t,i,r){this.dependencies=e,this.facet=t,this.type=i,this.value=r,this.id=zh++}dynamicSlot(e){var t;let i=this.value,r=this.facet.compareInput,s=this.id,o=e[s]>>1,a=this.type==2,l=!1,h=!1,c=[];for(let u of this.dependencies)u=="doc"?l=!0:u=="selection"?h=!0:((t=e[u.id])!==null&&t!==void 0?t:1)&1||c.push(e[u.id]);return{create(u){return u.values[o]=i(u),1},update(u,f){if(l&&f.docChanged||h&&(f.docChanged||f.selection)||Kh(u,c)){let d=i(u);if(a?!km(d,u.values[o],r):!r(d,u.values[o]))return u.values[o]=d,1}return 0},reconfigure:(u,f)=>{let d,p=f.config.address[s];if(p!=null){let m=Ja(f,p);if(this.dependencies.every(g=>g instanceof G?f.facet(g)===u.facet(g):g instanceof nt?f.field(g,!1)==u.field(g,!1):!0)||(a?km(d=i(u),m,r):r(d=i(u),m)))return u.values[o]=m,0}else d=i(u);return u.values[o]=d,1}}}}function km(n,e,t){if(n.length!=e.length)return!1;for(let i=0;i<n.length;i++)if(!t(n[i],e[i]))return!1;return!0}function Kh(n,e){let t=!1;for(let i of e)oo(n,i)&1&&(t=!0);return t}function z1(n,e,t){let i=t.map(l=>n[l.id]),r=t.map(l=>l.type),s=i.filter(l=>!(l&1)),o=n[e.id]>>1;function a(l){let h=[];for(let c=0;c<i.length;c++){let u=Ja(l,i[c]);if(r[c]==2)for(let f of u)h.push(f);else h.push(u)}return e.combine(h)}return{create(l){for(let h of i)oo(l,h);return l.values[o]=a(l),1},update(l,h){if(!Kh(l,s))return 0;let c=a(l);return e.compare(c,l.values[o])?0:(l.values[o]=c,1)},reconfigure(l,h){let c=Kh(l,i),u=h.config.facets[e.id],f=h.facet(e);if(u&&!c&&Yh(t,u))return l.values[o]=f,0;let d=a(l);return e.compare(d,f)?(l.values[o]=f,0):(l.values[o]=d,1)}}}const Pm=G.define({static:!0});class nt{constructor(e,t,i,r,s){this.id=e,this.createF=t,this.updateF=i,this.compareF=r,this.spec=s,this.provides=void 0}static define(e){let t=new nt(zh++,e.create,e.update,e.compare||((i,r)=>i===r),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(Pm).find(i=>i.field==this);return((t==null?void 0:t.create)||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:i=>(i.values[t]=this.create(i),1),update:(i,r)=>{let s=i.values[t],o=this.updateF(s,r);return this.compareF(s,o)?0:(i.values[t]=o,1)},reconfigure:(i,r)=>r.config.address[this.id]!=null?(i.values[t]=r.field(this),0):(i.values[t]=this.create(i),1)}}init(e){return[this,Pm.of({field:this,create:e})]}get extension(){return this}}const tr={lowest:4,low:3,default:2,high:1,highest:0};function so(n){return e=>new Tm(e,n)}const ki={highest:so(tr.highest),high:so(tr.high),default:so(tr.default),low:so(tr.low),lowest:so(tr.lowest)};class Tm{constructor(e,t){this.inner=e,this.prec=t}}class Ya{of(e){return new Jh(this,e)}reconfigure(e){return Ya.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class Jh{constructor(e,t){this.compartment=e,this.inner=t}}class Ka{constructor(e,t,i,r,s,o){for(this.base=e,this.compartments=t,this.dynamicSlots=i,this.address=r,this.staticValues=s,this.facets=o,this.statusTemplate=[];this.statusTemplate.length<i.length;)this.statusTemplate.push(0)}staticFacet(e){let t=this.address[e.id];return t==null?e.default:this.staticValues[t>>1]}static resolve(e,t,i){let r=[],s=Object.create(null),o=new Map;for(let f of Y1(e,t,o))f instanceof nt?r.push(f):(s[f.facet.id]||(s[f.facet.id]=[])).push(f);let a=Object.create(null),l=[],h=[];for(let f of r)a[f.id]=h.length<<1,h.push(d=>f.slot(d));let c=i==null?void 0:i.config.facets;for(let f in s){let d=s[f],p=d[0].facet,m=c&&c[f]||[];if(d.every(g=>g.type==0))if(a[p.id]=l.length<<1|1,Yh(m,d))l.push(i.facet(p));else{let g=p.combine(d.map(O=>O.value));l.push(i&&p.compare(g,i.facet(p))?i.facet(p):g)}else{for(let g of d)g.type==0?(a[g.id]=l.length<<1|1,l.push(g.value)):(a[g.id]=h.length<<1,h.push(O=>g.dynamicSlot(O)));a[p.id]=h.length<<1,h.push(g=>z1(g,p,d))}}let u=h.map(f=>f(a));return new Ka(e,o,u,a,l,s)}}function Y1(n,e,t){let i=[[],[],[],[],[]],r=new Map;function s(o,a){let l=r.get(o);if(l!=null){if(l<=a)return;let h=i[l].indexOf(o);h>-1&&i[l].splice(h,1),o instanceof Jh&&t.delete(o.compartment)}if(r.set(o,a),Array.isArray(o))for(let h of o)s(h,a);else if(o instanceof Jh){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let h=e.get(o.compartment)||o.inner;t.set(o.compartment,h),s(h,a)}else if(o instanceof Tm)s(o.inner,o.prec);else if(o instanceof nt)i[a].push(o),o.provides&&s(o.provides,a);else if(o instanceof za)i[a].push(o),o.facet.extensions&&s(o.facet.extensions,tr.default);else{let h=o.extension;if(!h)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(h,a)}}return s(n,tr.default),i.reduce((o,a)=>o.concat(a))}function oo(n,e){if(e&1)return 2;let t=e>>1,i=n.status[t];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;n.status[t]=4;let r=n.computeSlot(n,n.config.dynamicSlots[t]);return n.status[t]=2|r}function Ja(n,e){return e&1?n.config.staticValues[e>>1]:n.values[e>>1]}const Em=G.define(),eu=G.define({combine:n=>n.some(e=>e),static:!0}),_m=G.define({combine:n=>n.length?n[0]:void 0,static:!0}),Qm=G.define(),Cm=G.define(),Im=G.define(),Rm=G.define({combine:n=>n.length?n[0]:!1});class An{constructor(e,t){this.type=e,this.value=t}static define(){return new K1}}class K1{of(e){return new An(this,e)}}class J1{constructor(e){this.map=e}of(e){return new oe(this,e)}}class oe{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new oe(this.type,t)}is(e){return this.type==e}static define(e={}){return new J1(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let i=[];for(let r of e){let s=r.map(t);s&&i.push(s)}return i}}oe.reconfigure=oe.define(),oe.appendConfig=oe.define();let bt=class Fa{constructor(e,t,i,r,s,o){this.startState=e,this.changes=t,this.selection=i,this.effects=r,this.annotations=s,this.scrollIntoView=o,this._doc=null,this._state=null,i&&Am(i,t.newLength),s.some(a=>a.type==Fa.time)||(this.annotations=s.concat(Fa.time.of(Date.now())))}static create(e,t,i,r,s,o){return new Fa(e,t,i,r,s,o)}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(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(Fa.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}};bt.time=An.define(),bt.userEvent=An.define(),bt.addToHistory=An.define(),bt.remote=An.define();function eS(n,e){let t=[];for(let i=0,r=0;;){let s,o;if(i<n.length&&(r==e.length||e[r]>=n[i]))s=n[i++],o=n[i++];else if(r<e.length)s=e[r++],o=e[r++];else return t;!t.length||t[t.length-1]<s?t.push(s,o):t[t.length-1]<o&&(t[t.length-1]=o)}}function $m(n,e,t){var i;let r,s,o;return t?(r=e.changes,s=ze.empty(e.changes.length),o=n.changes.compose(e.changes)):(r=e.changes.map(n.changes),s=n.changes.mapDesc(e.changes,!0),o=n.changes.compose(r)),{changes:o,selection:e.selection?e.selection.map(s):(i=n.selection)===null||i===void 0?void 0:i.map(r),effects:oe.mapEffects(n.effects,r).concat(oe.mapEffects(e.effects,s)),annotations:n.annotations.length?n.annotations.concat(e.annotations):e.annotations,scrollIntoView:n.scrollIntoView||e.scrollIntoView}}function tu(n,e,t){let i=e.selection,r=Ur(e.annotations);return e.userEvent&&(r=r.concat(bt.userEvent.of(e.userEvent))),{changes:e.changes instanceof ze?e.changes:ze.of(e.changes||[],t,n.facet(_m)),selection:i&&(i instanceof $?i:$.single(i.anchor,i.head)),effects:Ur(e.effects),annotations:r,scrollIntoView:!!e.scrollIntoView}}function Mm(n,e,t){let i=tu(n,e.length?e[0]:{},n.doc.length);e.length&&e[0].filter===!1&&(t=!1);for(let s=1;s<e.length;s++){e[s].filter===!1&&(t=!1);let o=!!e[s].sequential;i=$m(i,tu(n,e[s],o?i.changes.newLength:n.doc.length),o)}let r=bt.create(n,i.changes,i.selection,i.effects,i.annotations,i.scrollIntoView);return nS(t?tS(r):r)}function tS(n){let e=n.startState,t=!0;for(let r of e.facet(Qm)){let s=r(n);if(s===!1){t=!1;break}Array.isArray(s)&&(t=t===!0?s:eS(t,s))}if(t!==!0){let r,s;if(t===!1)s=n.changes.invertedDesc,r=ze.empty(e.doc.length);else{let o=n.changes.filter(t);r=o.changes,s=o.filtered.mapDesc(o.changes).invertedDesc}n=bt.create(e,r,n.selection&&n.selection.map(s),oe.mapEffects(n.effects,s),n.annotations,n.scrollIntoView)}let i=e.facet(Cm);for(let r=i.length-1;r>=0;r--){let s=i[r](n);s instanceof bt?n=s:Array.isArray(s)&&s.length==1&&s[0]instanceof bt?n=s[0]:n=Mm(e,Ur(s),!1)}return n}function nS(n){let e=n.startState,t=e.facet(Im),i=n;for(let r=t.length-1;r>=0;r--){let s=t[r](n);s&&Object.keys(s).length&&(i=$m(i,tu(e,s,n.changes.newLength),!0))}return i==n?n:bt.create(e,n.changes,n.selection,i.effects,i.annotations,i.scrollIntoView)}const iS=[];function Ur(n){return n==null?iS:Array.isArray(n)?n:[n]}var Be=function(n){return n[n.Word=0]="Word",n[n.Space=1]="Space",n[n.Other=2]="Other",n}(Be||(Be={}));const rS=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let nu;try{nu=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(n){}function sS(n){if(nu)return nu.test(n);for(let e=0;e<n.length;e++){let t=n[e];if(/\w/.test(t)||t>"€"&&(t.toUpperCase()!=t.toLowerCase()||rS.test(t)))return!0}return!1}function oS(n){return e=>{if(!/\S/.test(e))return Be.Space;if(sS(e))return Be.Word;for(let t=0;t<n.length;t++)if(e.indexOf(n[t])>-1)return Be.Word;return Be.Other}}class me{constructor(e,t,i,r,s,o){this.config=e,this.doc=t,this.selection=i,this.values=r,this.status=e.statusTemplate.slice(),this.computeSlot=s,o&&(o._state=this);for(let a=0;a<this.config.dynamicSlots.length;a++)oo(this,a<<1);this.computeSlot=null}field(e,t=!0){let i=this.config.address[e.id];if(i==null){if(t)throw new RangeError("Field is not present in this state");return}return oo(this,i),Ja(this,i)}update(...e){return Mm(this,e,!0)}applyTransaction(e){let t=this.config,{base:i,compartments:r}=t;for(let a of e.effects)a.is(Ya.reconfigure)?(t&&(r=new Map,t.compartments.forEach((l,h)=>r.set(h,l)),t=null),r.set(a.value.compartment,a.value.extension)):a.is(oe.reconfigure)?(t=null,i=a.value):a.is(oe.appendConfig)&&(t=null,i=Ur(i).concat(a.value));let s;t?s=e.startState.values.slice():(t=Ka.resolve(i,r,this),s=new me(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(l,h)=>h.reconfigure(l,this),null).values);let o=e.startState.facet(eu)?e.newSelection:e.newSelection.asSingle();new me(t,e.newDoc,o,s,(a,l)=>l.update(a,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:$.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,i=e(t.ranges[0]),r=this.changes(i.changes),s=[i.range],o=Ur(i.effects);for(let a=1;a<t.ranges.length;a++){let l=e(t.ranges[a]),h=this.changes(l.changes),c=h.map(r);for(let f=0;f<a;f++)s[f]=s[f].map(c);let u=r.mapDesc(h,!0);s.push(l.range.map(u)),r=r.compose(c),o=oe.mapEffects(o,c).concat(oe.mapEffects(Ur(l.effects),u))}return{changes:r,selection:$.create(s,t.mainIndex),effects:o}}changes(e=[]){return e instanceof ze?e:ze.of(e,this.doc.length,this.facet(me.lineSeparator))}toText(e){return ye.of(e.split(this.facet(me.lineSeparator)||Vh))}sliceDoc(e=0,t=this.doc.length){return this.doc.sliceString(e,t,this.lineBreak)}facet(e){let t=this.config.address[e.id];return t==null?e.default:(oo(this,t),Ja(this,t))}toJSON(e){let t={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(let i in e){let r=e[i];r instanceof nt&&this.config.address[r.id]!=null&&(t[i]=r.spec.toJSON(this.field(e[i]),this))}return t}static fromJSON(e,t={},i){if(!e||typeof e.doc!="string")throw new RangeError("Invalid JSON representation for EditorState");let r=[];if(i){for(let s in i)if(Object.prototype.hasOwnProperty.call(e,s)){let o=i[s],a=e[s];r.push(o.init(l=>o.spec.fromJSON(a,l)))}}return me.create({doc:e.doc,selection:$.fromJSON(e.selection),extensions:t.extensions?r.concat([t.extensions]):r})}static create(e={}){let t=Ka.resolve(e.extensions||[],new Map),i=e.doc instanceof ye?e.doc:ye.of((e.doc||"").split(t.staticFacet(me.lineSeparator)||Vh)),r=e.selection?e.selection instanceof $?e.selection:$.single(e.selection.anchor,e.selection.head):$.single(0);return Am(r,i.length),t.staticFacet(eu)||(r=r.asSingle()),new me(t,i,r,t.dynamicSlots.map(()=>null),(s,o)=>o.create(s),null)}get tabSize(){return this.facet(me.tabSize)}get lineBreak(){return this.facet(me.lineSeparator)||` `}get readOnly(){return this.facet(Rm)}phrase(e,...t){for(let i of this.facet(me.phrases))if(Object.prototype.hasOwnProperty.call(i,e)){e=i[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(i,r)=>{if(r=="$")return"$";let s=+(r||1);return!s||s>t.length?i:t[s-1]})),e}languageDataAt(e,t,i=-1){let r=[];for(let s of this.facet(Em))for(let o of s(this,t,i))Object.prototype.hasOwnProperty.call(o,e)&&r.push(o[e]);return r}charCategorizer(e){return oS(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:t,from:i,length:r}=this.doc.lineAt(e),s=this.charCategorizer(e),o=e-i,a=e-i;for(;o>0;){let l=at(t,o,!1);if(s(t.slice(l,o))!=Be.Word)break;o=l}for(;a<r;){let l=at(t,a);if(s(t.slice(a,l))!=Be.Word)break;a=l}return o==a?null:$.range(o+i,a+i)}}me.allowMultipleSelections=eu,me.tabSize=G.define({combine:n=>n.length?n[0]:4}),me.lineSeparator=_m,me.readOnly=Rm,me.phrases=G.define({compare(n,e){let t=Object.keys(n),i=Object.keys(e);return t.length==i.length&&t.every(r=>n[r]==e[r])}}),me.languageData=Em,me.changeFilter=Qm,me.transactionFilter=Cm,me.transactionExtender=Im,Ya.reconfigure=oe.define();function kn(n,e,t={}){let i={};for(let r of n)for(let s of Object.keys(r)){let o=r[s],a=i[s];if(a===void 0)i[s]=o;else if(!(a===o||o===void 0))if(Object.hasOwnProperty.call(t,s))i[s]=t[s](a,o);else throw new Error("Config merge conflict for field "+s)}for(let r in e)i[r]===void 0&&(i[r]=e[r]);return i}class nr{eq(e){return this==e}range(e,t=e){return iu.create(e,t,this)}}nr.prototype.startSide=nr.prototype.endSide=0,nr.prototype.point=!1,nr.prototype.mapMode=ct.TrackDel;let iu=class X1{constructor(e,t,i){this.from=e,this.to=t,this.value=i}static create(e,t,i){return new X1(e,t,i)}};function ru(n,e){return n.from-e.from||n.value.startSide-e.value.startSide}class su{constructor(e,t,i,r){this.from=e,this.to=t,this.value=i,this.maxPoint=r}get length(){return this.to[this.to.length-1]}findIndex(e,t,i,r=0){let s=i?this.to:this.from;for(let o=r,a=s.length;;){if(o==a)return o;let l=o+a>>1,h=s[l]-e||(i?this.value[l].endSide:this.value[l].startSide)-t;if(l==o)return h>=0?o:a;h>=0?a=l:o=l+1}}between(e,t,i,r){for(let s=this.findIndex(t,-1e9,!0),o=this.findIndex(i,1e9,!1,s);s<o;s++)if(r(this.from[s]+e,this.to[s]+e,this.value[s])===!1)return!1}map(e,t){let i=[],r=[],s=[],o=-1,a=-1;for(let l=0;l<this.value.length;l++){let h=this.value[l],c=this.from[l]+e,u=this.to[l]+e,f,d;if(c==u){let p=t.mapPos(c,h.startSide,h.mapMode);if(p==null||(f=d=p,h.startSide!=h.endSide&&(d=t.mapPos(c,h.endSide),d<f)))continue}else if(f=t.mapPos(c,h.startSide),d=t.mapPos(u,h.endSide),f>d||f==d&&h.startSide>0&&h.endSide<=0)continue;(d-f||h.endSide-h.startSide)<0||(o<0&&(o=f),h.point&&(a=Math.max(a,d-f)),i.push(h),r.push(f-o),s.push(d-o))}return{mapped:i.length?new su(r,s,i,a):null,pos:o}}}class be{constructor(e,t,i,r){this.chunkPos=e,this.chunk=t,this.nextLayer=i,this.maxPoint=r}static create(e,t,i,r){return new be(e,t,i,r)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:i=!1,filterFrom:r=0,filterTo:s=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(i&&(t=t.slice().sort(ru)),this.isEmpty)return t.length?be.of(t):this;let a=new Zm(this,null,-1).goto(0),l=0,h=[],c=new Kn;for(;a.value||l<t.length;)if(l<t.length&&(a.from-t[l].from||a.startSide-t[l].value.startSide)>=0){let u=t[l++];c.addInner(u.from,u.to,u.value)||h.push(u)}else a.rangeIndex==1&&a.chunkIndex<this.chunk.length&&(l==t.length||this.chunkEnd(a.chunkIndex)<t[l].from)&&(!o||r>this.chunkEnd(a.chunkIndex)||s<this.chunkPos[a.chunkIndex])&&c.addChunk(this.chunkPos[a.chunkIndex],this.chunk[a.chunkIndex])?a.nextChunk():((!o||r>a.to||s<a.from||o(a.from,a.to,a.value))&&(c.addInner(a.from,a.to,a.value)||h.push(iu.create(a.from,a.to,a.value))),a.next());return c.finishInner(this.nextLayer.isEmpty&&!h.length?be.empty:this.nextLayer.update({add:h,filter:o,filterFrom:r,filterTo:s}))}map(e){if(e.empty||this.isEmpty)return this;let t=[],i=[],r=-1;for(let o=0;o<this.chunk.length;o++){let a=this.chunkPos[o],l=this.chunk[o],h=e.touchesRange(a,a+l.length);if(h===!1)r=Math.max(r,l.maxPoint),t.push(l),i.push(e.mapPos(a));else if(h===!0){let{mapped:c,pos:u}=l.map(a,e);c&&(r=Math.max(r,c.maxPoint),t.push(c),i.push(u))}}let s=this.nextLayer.map(e);return t.length==0?s:new be(i,t,s||be.empty,r)}between(e,t,i){if(!this.isEmpty){for(let r=0;r<this.chunk.length;r++){let s=this.chunkPos[r],o=this.chunk[r];if(t>=s&&e<=s+o.length&&o.between(s,e-s,t-s,i)===!1)return}this.nextLayer.between(e,t,i)}}iter(e=0){return ao.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return ao.from(e).goto(t)}static compare(e,t,i,r,s=-1){let o=e.filter(u=>u.maxPoint>0||!u.isEmpty&&u.maxPoint>=s),a=t.filter(u=>u.maxPoint>0||!u.isEmpty&&u.maxPoint>=s),l=Bm(o,a,i),h=new lo(o,l,s),c=new lo(a,l,s);i.iterGaps((u,f,d)=>Lm(h,u,c,f,d,r)),i.empty&&i.length==0&&Lm(h,0,c,0,0,r)}static eq(e,t,i=0,r){r==null&&(r=999999999);let s=e.filter(c=>!c.isEmpty&&t.indexOf(c)<0),o=t.filter(c=>!c.isEmpty&&e.indexOf(c)<0);if(s.length!=o.length)return!1;if(!s.length)return!0;let a=Bm(s,o),l=new lo(s,a,0).goto(i),h=new lo(o,a,0).goto(i);for(;;){if(l.to!=h.to||!au(l.active,h.active)||l.point&&(!h.point||!l.point.eq(h.point)))return!1;if(l.to>r)return!0;l.next(),h.next()}}static spans(e,t,i,r,s=-1){let o=new lo(e,null,s).goto(t),a=t,l=o.openStart;for(;;){let h=Math.min(o.to,i);if(o.point){let c=o.activeForPoint(o.to),u=o.pointFrom<t?c.length+1:o.point.startSide<0?c.length:Math.min(c.length,l);r.point(a,h,o.point,c,u,o.pointRank),l=Math.min(o.openEnd(h),c.length)}else h>a&&(r.span(a,h,o.active,l),l=o.openEnd(h));if(o.to>i)return l+(o.point&&o.to>i?1:0);a=o.to,o.next()}}static of(e,t=!1){let i=new Kn;for(let r of e instanceof iu?[e]:t?aS(e):e)i.add(r.from,r.to,r.value);return i.finish()}static join(e){if(!e.length)return be.empty;let t=e[e.length-1];for(let i=e.length-2;i>=0;i--)for(let r=e[i];r!=be.empty;r=r.nextLayer)t=new be(r.chunkPos,r.chunk,t,Math.max(r.maxPoint,t.maxPoint));return t}}be.empty=new be([],[],null,-1);function aS(n){if(n.length>1)for(let e=n[0],t=1;t<n.length;t++){let i=n[t];if(ru(e,i)>0)return n.slice().sort(ru);e=i}return n}be.empty.nextLayer=be.empty;class Kn{finishChunk(e){this.chunks.push(new su(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,e&&(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(e,t,i){this.addInner(e,t,i)||(this.nextLayer||(this.nextLayer=new Kn)).add(e,t,i)}addInner(e,t,i){let r=e-this.lastTo||i.startSide-this.last.endSide;if(r<=0&&(e-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return r<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=i,this.lastFrom=e,this.lastTo=t,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let i=t.value.length-1;return this.last=t.value[i],this.lastFrom=t.from[i]+e,this.lastTo=t.to[i]+e,!0}finish(){return this.finishInner(be.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=be.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}}function Bm(n,e,t){let i=new Map;for(let s of n)for(let o=0;o<s.chunk.length;o++)s.chunk[o].maxPoint<=0&&i.set(s.chunk[o],s.chunkPos[o]);let r=new Set;for(let s of e)for(let o=0;o<s.chunk.length;o++){let a=i.get(s.chunk[o]);a!=null&&(t?t.mapPos(a):a)==s.chunkPos[o]&&!(t!=null&&t.touchesRange(a,a+s.chunk[o].length))&&r.add(s.chunk[o])}return r}class Zm{constructor(e,t,i,r=0){this.layer=e,this.skip=t,this.minPoint=i,this.rank=r}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(e,t=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(e,t,!1),this}gotoInner(e,t,i){for(;this.chunkIndex<this.layer.chunk.length;){let r=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(r)||this.layer.chunkEnd(this.chunkIndex)<e||r.maxPoint<this.minPoint))break;this.chunkIndex++,i=!1}if(this.chunkIndex<this.layer.chunk.length){let r=this.layer.chunk[this.chunkIndex].findIndex(e-this.layer.chunkPos[this.chunkIndex],t,!0);(!i||this.rangeIndex<r)&&this.setRangeIndex(r)}this.next()}forward(e,t){(this.to-e||this.endSide-t)<0&&this.gotoInner(e,t,!0)}next(){for(;;)if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}else{let e=this.layer.chunkPos[this.chunkIndex],t=this.layer.chunk[this.chunkIndex],i=e+t.from[this.rangeIndex];if(this.from=i,this.to=e+t.to[this.rangeIndex],this.value=t.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=e}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(e){return this.from-e.from||this.startSide-e.startSide||this.rank-e.rank||this.to-e.to||this.endSide-e.endSide}}class ao{constructor(e){this.heap=e}static from(e,t=null,i=-1){let r=[];for(let s=0;s<e.length;s++)for(let o=e[s];!o.isEmpty;o=o.nextLayer)o.maxPoint>=i&&r.push(new Zm(o,t,i,s));return r.length==1?r[0]:new ao(r)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let i of this.heap)i.goto(e,t);for(let i=this.heap.length>>1;i>=0;i--)ou(this.heap,i);return this.next(),this}forward(e,t){for(let i of this.heap)i.forward(e,t);for(let i=this.heap.length>>1;i>=0;i--)ou(this.heap,i);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),ou(this.heap,0)}}}function ou(n,e){for(let t=n[e];;){let i=(e<<1)+1;if(i>=n.length)break;let r=n[i];if(i+1<n.length&&r.compare(n[i+1])>=0&&(r=n[i+1],i++),t.compare(r)<0)break;n[i]=t,n[e]=r,e=i}}class lo{constructor(e,t,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=ao.from(e,t,i)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){el(this.active,e),el(this.activeTo,e),el(this.activeRank,e),this.minActive=Nm(this.active,this.activeTo)}addActive(e){let t=0,{value:i,to:r,rank:s}=this.cursor;for(;t<this.activeRank.length&&(s-this.activeRank[t]||r-this.activeTo[t])>0;)t++;tl(this.active,t,i),tl(this.activeTo,t,r),tl(this.activeRank,t,s),e&&tl(e,t,this.cursor.from),this.minActive=Nm(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let i=this.openStart<0?[]:null;for(;;){let r=this.minActive;if(r>-1&&(this.activeTo[r]-this.cursor.from||this.active[r].endSide-this.cursor.startSide)<0){if(this.activeTo[r]>e){this.to=this.activeTo[r],this.endSide=this.active[r].endSide;break}this.removeActive(r),i&&el(i,r)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let s=this.cursor.value;if(!s.point)this.addActive(i),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to)this.cursor.next();else{this.point=s,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=s.endSide,this.cursor.next(),this.forward(this.to,this.endSide);break}}else{this.to=this.endSide=1e9;break}}if(i){this.openStart=0;for(let r=i.length-1;r>=0&&i[r]<e;r--)this.openStart++}}activeForPoint(e){if(!this.active.length)return this.active;let t=[];for(let i=this.active.length-1;i>=0&&!(this.activeRank[i]<this.pointRank);i--)(this.activeTo[i]>e||this.activeTo[i]==e&&this.active[i].endSide>=this.point.endSide)&&t.push(this.active[i]);return t.reverse()}openEnd(e){let t=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>e;i--)t++;return t}}function Lm(n,e,t,i,r,s){n.goto(e),t.goto(i);let o=i+r,a=i,l=i-e;for(;;){let h=n.to+l-t.to||n.endSide-t.endSide,c=h<0?n.to+l:t.to,u=Math.min(c,o);if(n.point||t.point?n.point&&t.point&&(n.point==t.point||n.point.eq(t.point))&&au(n.activeForPoint(n.to),t.activeForPoint(t.to))||s.comparePoint(a,u,n.point,t.point):u>a&&!au(n.active,t.active)&&s.compareRange(a,u,n.active,t.active),c>o)break;a=c,h<=0&&n.next(),h>=0&&t.next()}}function au(n,e){if(n.