diff --git a/asset-manifest.json b/asset-manifest.json index 5e034661b..13645487d 100644 --- a/asset-manifest.json +++ b/asset-manifest.json @@ -1,7 +1,7 @@ { "files": { "main.css": "/react-codemirror/static/css/main.1bf843b1.css", - "main.js": "/react-codemirror/static/js/main.6bcd08fe.js", + "main.js": "/react-codemirror/static/js/main.1fc4ebcf.js", "static/js/2656.9334fc1c.chunk.js": "/react-codemirror/static/js/2656.9334fc1c.chunk.js", "static/js/6747.e70e8c73.chunk.js": "/react-codemirror/static/js/6747.e70e8c73.chunk.js", "static/js/7993.81946a17.chunk.js": "/react-codemirror/static/js/7993.81946a17.chunk.js", @@ -84,11 +84,11 @@ "static/js/4371.3506d271.chunk.js": "/react-codemirror/static/js/4371.3506d271.chunk.js", "static/js/5757.bb093491.chunk.js": "/react-codemirror/static/js/5757.bb093491.chunk.js", "refractor-vendor.js": "/react-codemirror/static/js/refractor-vendor.e7e7aaa1.js", - "codemirror-vendor.js": "/react-codemirror/static/js/codemirror-vendor.2a167f97.js", + "codemirror-vendor.js": "/react-codemirror/static/js/codemirror-vendor.6058be17.js", "react-vendor.js": "/react-codemirror/static/js/react-vendor.62a846b2.js", "index.html": "/react-codemirror/index.html", "main.1bf843b1.css.map": "/react-codemirror/static/css/main.1bf843b1.css.map", - "main.6bcd08fe.js.map": "/react-codemirror/static/js/main.6bcd08fe.js.map", + "main.1fc4ebcf.js.map": "/react-codemirror/static/js/main.1fc4ebcf.js.map", "2656.9334fc1c.chunk.js.map": "/react-codemirror/static/js/2656.9334fc1c.chunk.js.map", "6747.e70e8c73.chunk.js.map": "/react-codemirror/static/js/6747.e70e8c73.chunk.js.map", "7993.81946a17.chunk.js.map": "/react-codemirror/static/js/7993.81946a17.chunk.js.map", @@ -171,14 +171,14 @@ "4371.3506d271.chunk.js.map": "/react-codemirror/static/js/4371.3506d271.chunk.js.map", "5757.bb093491.chunk.js.map": "/react-codemirror/static/js/5757.bb093491.chunk.js.map", "refractor-vendor.e7e7aaa1.js.map": "/react-codemirror/static/js/refractor-vendor.e7e7aaa1.js.map", - "codemirror-vendor.2a167f97.js.map": "/react-codemirror/static/js/codemirror-vendor.2a167f97.js.map", + "codemirror-vendor.6058be17.js.map": "/react-codemirror/static/js/codemirror-vendor.6058be17.js.map", "react-vendor.62a846b2.js.map": "/react-codemirror/static/js/react-vendor.62a846b2.js.map" }, "entrypoints": [ "static/js/refractor-vendor.e7e7aaa1.js", - "static/js/codemirror-vendor.2a167f97.js", + "static/js/codemirror-vendor.6058be17.js", "static/js/react-vendor.62a846b2.js", "static/css/main.1bf843b1.css", - "static/js/main.6bcd08fe.js" + "static/js/main.1fc4ebcf.js" ] } \ No newline at end of file diff --git a/coverage/badges.svg b/coverage/badges.svg index abefe273c..2cdcb4ace 100644 --- a/coverage/badges.svg +++ b/coverage/badges.svg @@ -1,20 +1,20 @@ - - coverage: 93.93% + + coverage: 94.8% - + - - + + \ No newline at end of file diff --git a/coverage/coverage-summary.json b/coverage/coverage-summary.json index 40bb2a702..e272eac4a 100644 --- a/coverage/coverage-summary.json +++ b/coverage/coverage-summary.json @@ -1,5 +1,5 @@ -{"total": {"lines":{"total":65,"covered":61,"skipped":0,"pct":93.84},"statements":{"total":66,"covered":62,"skipped":0,"pct":93.93},"functions":{"total":11,"covered":11,"skipped":0,"pct":100},"branches":{"total":62,"covered":51,"skipped":0,"pct":82.25},"branchesTrue":{"total":0,"covered":0,"skipped":0,"pct":100}} +{"total": {"lines":{"total":76,"covered":72,"skipped":0,"pct":94.73},"statements":{"total":77,"covered":73,"skipped":0,"pct":94.8},"functions":{"total":14,"covered":14,"skipped":0,"pct":100},"branches":{"total":72,"covered":60,"skipped":0,"pct":83.33},"branchesTrue":{"total":0,"covered":0,"skipped":0,"pct":100}} ,"/home/runner/work/react-codemirror/react-codemirror/src/index.tsx": {"lines":{"total":12,"covered":11,"skipped":0,"pct":91.66},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":13,"covered":12,"skipped":0,"pct":92.3},"branches":{"total":9,"covered":7,"skipped":0,"pct":77.77}} -,"/home/runner/work/react-codemirror/react-codemirror/src/useCodeMirror.ts": {"lines":{"total":52,"covered":49,"skipped":0,"pct":94.23},"functions":{"total":8,"covered":8,"skipped":0,"pct":100},"statements":{"total":52,"covered":49,"skipped":0,"pct":94.23},"branches":{"total":53,"covered":44,"skipped":0,"pct":83.01}} +,"/home/runner/work/react-codemirror/react-codemirror/src/useCodeMirror.ts": {"lines":{"total":63,"covered":60,"skipped":0,"pct":95.23},"functions":{"total":11,"covered":11,"skipped":0,"pct":100},"statements":{"total":63,"covered":60,"skipped":0,"pct":95.23},"branches":{"total":63,"covered":53,"skipped":0,"pct":84.12}} ,"/home/runner/work/react-codemirror/react-codemirror/src/theme/light.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} } diff --git a/coverage/lcov-report/index.html b/coverage/lcov-report/index.html index 2bb94e80a..1ce6b0c7b 100644 --- a/coverage/lcov-report/index.html +++ b/coverage/lcov-report/index.html @@ -23,30 +23,30 @@

All files

- 93.93% + 94.8% Statements - 62/66 + 73/77
- 82.25% + 83.33% Branches - 51/62 + 60/72
100% Functions - 11/11 + 14/14
- 93.84% + 94.73% Lines - 61/65 + 72/76
@@ -80,17 +80,17 @@

All files

src - -
+ +
- 93.84% - 61/65 - 82.25% - 51/62 + 94.73% + 72/76 + 83.33% + 60/72 100% - 11/11 - 93.75% - 60/64 + 14/14 + 94.66% + 71/75 @@ -116,7 +116,7 @@

All files

\ No newline at end of file +React CodeMirror - CodeMirror component for React.
\ No newline at end of file diff --git a/static/js/codemirror-vendor.2a167f97.js b/static/js/codemirror-vendor.2a167f97.js deleted file mode 100644 index 0526bc4e3..000000000 --- a/static/js/codemirror-vendor.2a167f97.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunk_uiw_react_codemirror=self.webpackChunk_uiw_react_codemirror||[]).push([[7474],{4941:function(e,t,n){n.d(t,{B1:function(){return de},Gn:function(){return ue},Mb:function(){return g},eC:function(){return y},ys:function(){return fe}});var r=n(136),i=n(3668),o=n(3433),a=n(9439),s=n(7762),l=n(5671),c=n(3144),u=n(1383),h=n(6830),f=n(2077),d=n(5128),p=n(659),m=function(){function e(t,n,r){(0,l.Z)(this,e),this.state=t,this.pos=n,this.explicit=r,this.abortListeners=[]}return(0,c.Z)(e,[{key:"tokenBefore",value:function(e){for(var t=(0,p.qz)(this.state).resolveInner(this.pos,-1);t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}},{key:"matchBefore",value:function(e){var t=this.state.doc.lineAt(this.pos),n=Math.max(t.from,this.pos-250),r=t.text.slice(n-t.from,this.pos-t.from),i=r.search(w(e,!1));return i<0?null:{from:n+i,to:this.pos,text:r.slice(i)}}},{key:"aborted",get:function(){return null==this.abortListeners}},{key:"addEventListener",value:function(e,t){"abort"==e&&this.abortListeners&&this.abortListeners.push(t)}}]),e}();function v(e){var t=Object.keys(e).join(""),n=/\w/.test(t);return n&&(t=t.replace(/\w/g,"")),"[".concat(n?"\\w":"").concat(t.replace(/[^\w\s]/g,"\\$&"),"]")}function g(e){var t=e.map((function(e){return"string"==typeof e?{label:e}:e})),n=t.every((function(e){return/^\w+$/.test(e.label)}))?[/\w*$/,/\w+$/]:function(e){var t,n=Object.create(null),r=Object.create(null),i=(0,s.Z)(e);try{for(i.s();!(t=i.n()).done;){var o=t.value.label;n[o[0]]=!0;for(var a=1;a-1)return null;return t(n)}}var k=(0,c.Z)((function e(t,n,r){(0,l.Z)(this,e),this.completion=t,this.source=n,this.match=r}));function b(e){return e.selection.main.head}function w(e,t){var n,r=e.source,i=t&&"^"!=r[0],o="$"!=r[r.length-1];return i||o?new RegExp("".concat(i?"^":"","(?:").concat(r,")").concat(o?"$":""),null!==(n=e.flags)&&void 0!==n?n:e.ignoreCase?"i":""):e}var x=u.q6.define();function S(e,t){var n=t.completion.apply||t.completion.label,r=t.source;"string"==typeof n?e.dispatch({changes:{from:r.from,to:r.to,insert:n},selection:{anchor:r.from+n.length},userEvent:"input.complete",annotations:x.of(t.completion)}):n(e,t.completion,r.from,r.to)}var _=new WeakMap;function C(e){if(!Array.isArray(e))return e;var t=_.get(e);return t||_.set(e,t=g(e)),t}var A=function(){function e(t){(0,l.Z)(this,e),this.pattern=t,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[];for(var n=0;n=48&&C<=57||C>=97&&C<=122?2:C>=65&&C<=90?1:0:(A=(0,h.bg)(C))!=A.toLowerCase()?1:A!=A.toUpperCase()?2:0;(!x||1==O&&b||0==_&&0!=O)&&(t[m]==C||n[m]==C&&(v=!0)?o[m++]=x:o.length&&(w=!1)),_=O,x+=(0,h.nZ)(C)}return m==l&&0==o[0]&&w?this.result((v?-200:0)-100,o,e):g==l&&0==y?[-200-e.length,0,k]:s>-1?[-700-e.length,s,s+this.pattern.length]:g==l?[-900-e.length,y,k]:m==l?this.result((v?-200:0)-100-700+(w?0:-1100),o,e):2==t.length?null:this.result((r[0]?-700:0)-200-1100,r,e)}},{key:"result",value:function(e,t,n){var r,i=[e-n.length],o=1,a=(0,s.Z)(t);try{for(a.s();!(r=a.n()).done;){var l=r.value,c=l+(this.astral?(0,h.nZ)((0,h.gm)(n,l)):1);o>1&&i[o-1]==l?i[o-1]=c:(i[o++]=l,i[o++]=c)}}catch(u){a.e(u)}finally{a.f()}return i}}]),e}(),O=u.r$.define({combine:function(e){return(0,u.BO)(e,{activateOnTyping:!0,override:null,maxRenderedOptions:100,defaultKeymap:!0,optionClass:function(){return""},aboveCursor:!1,icons:!0,addToOptions:[]},{defaultKeymap:function(e,t){return e&&t},icons:function(e,t){return e&&t},optionClass:function(e,t){return function(n){return function(e,t){return e?t?e+" "+t:e:t}(e(n),t(n))}},addToOptions:function(e,t){return e.concat(t)}})}});function T(e,t,n){if(e<=n)return{from:0,to:e};if(t<=e>>1){var r=Math.floor(t/n);return{from:r*n,to:(r+1)*n}}var i=Math.floor((e-t)/n);return{from:e-(i+1)*n,to:e-i*n}}var Z=function(){function e(t,n){var r=this;(0,l.Z)(this,e),this.view=t,this.stateField=n,this.info=null,this.placeInfo={read:function(){return r.measureInfo()},write:function(e){return r.positionInfo(e)},key:this};var i=t.state.field(n),a=i.open,s=a.options,c=a.selected,u=t.state.facet(O);this.optionContent=function(e){var t=e.addToOptions.slice();return e.icons&&t.push({render:function(e){var t,n=document.createElement("div");return n.classList.add("cm-completionIcon"),e.type&&(t=n.classList).add.apply(t,(0,o.Z)(e.type.split(/\s+/g).map((function(e){return"cm-completionIcon-"+e})))),n.setAttribute("aria-hidden","true"),n},position:20}),t.push({render:function(e,t,n){var r=document.createElement("span");r.className="cm-completionLabel";for(var i=e.label,o=0,a=1;ao&&r.appendChild(document.createTextNode(i.slice(o,s)));var c=r.appendChild(document.createElement("span"));c.appendChild(document.createTextNode(i.slice(s,l))),c.className="cm-completionMatchedText",o=l}return o=this.range.to)&&(this.range=T(n.options.length,n.selected,this.view.state.facet(O).maxRenderedOptions),this.list.remove(),this.list=this.dom.appendChild(this.createListBox(n.options,t.id,this.range)),this.list.addEventListener("scroll",(function(){e.info&&e.view.requestMeasure(e.placeInfo)}))),this.updateSelectedOption(n.selected)){this.info&&(this.info.remove(),this.info=null);var r=n.options[n.selected];r.completion.info&&(this.info=this.dom.appendChild(function(e,t){var n=document.createElement("div");n.className="cm-tooltip cm-completionInfo";var r=e.completion.info;if("string"==typeof r)n.textContent=r;else{var i=r(e.completion);i.then?i.then((function(e){return n.appendChild(e)}),(function(e){return(0,f.OO)(t.state,e,"completion info")})):n.appendChild(i)}return n}(r,this.view)),this.view.requestMeasure(this.placeInfo))}}},{key:"updateSelectedOption",value:function(e){for(var t=null,n=this.list.firstChild,r=this.range.from;n;n=n.nextSibling,r++)r==e?n.hasAttribute("aria-selected")||(n.setAttribute("aria-selected","true"),t=n):n.hasAttribute("aria-selected")&&n.removeAttribute("aria-selected");return t&&function(e,t){var n=e.getBoundingClientRect(),r=t.getBoundingClientRect();r.topn.bottom&&(e.scrollTop+=r.bottom-n.bottom)}(this.list,t),t}},{key:"measureInfo",value:function(){var e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;var t=this.dom.getBoundingClientRect(),n=this.info.getBoundingClientRect(),r=e.getBoundingClientRect();if(r.top>Math.min(innerHeight,t.bottom)-10||r.bottom=this.options.length?this:new e(this.options,I(n,t),this.tooltip,this.timestamp,t)}},{key:"map",value:function(t){return new e(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:t.mapPos(this.tooltip.pos)}),this.timestamp,this.selected)}}],[{key:"build",value:function(t,n,r,i,o){var a=function(e,t){var n,r=[],i=0,o=(0,s.Z)(e);try{for(o.s();!(n=o.n()).done;){var a=n.value;if(a.hasResult())if(!1===a.result.filter){var l,c=(0,s.Z)(a.result.options);try{for(c.s();!(l=c.n()).done;){var u=l.value;r.push(new k(u,a,[1e9-i++]))}}catch(x){c.e(x)}finally{c.f()}}else{var h,f=new A(t.sliceDoc(a.from,a.to)),d=void 0,p=(0,s.Z)(a.result.options);try{for(p.s();!(h=p.n()).done;){var m=h.value;(d=f.match(m.label))&&(null!=m.boost&&(d[0]+=m.boost),r.push(new k(m,a,d)))}}catch(x){p.e(x)}finally{p.f()}}}}catch(x){o.e(x)}finally{o.f()}var v,g=[],y=null,b=(0,s.Z)(r.sort(z));try{for(b.s();!(v=b.n()).done;){var w=v.value;if(300==g.length)break;y&&y.label==w.completion.label&&y.detail==w.completion.detail&&y.type==w.completion.type&&y.apply==w.completion.apply?E(w.completion)>E(y)&&(g[g.length-1]=w):g.push(w),y=w.completion}}catch(x){b.e(x)}finally{b.f()}return g}(t,n);if(!a.length)return null;var l,c=0;if(i&&i.selected)for(var u=i.options[i.selected].completion,h=0;h2&&void 0!==arguments[2]?arguments[2]:-1;(0,l.Z)(this,e),this.source=t,this.state=n,this.explicitPos=r}return(0,c.Z)(e,[{key:"hasResult",value:function(){return!1}},{key:"update",value:function(t,n){var r=N(t),i=this;r?i=i.handleUserEvent(t,r,n):t.docChanged?i=i.handleChange(t):t.selection&&0!=i.state&&(i=new e(i.source,0));var o,a=(0,s.Z)(t.effects);try{for(a.s();!(o=a.n()).done;){var l=o.value;if(l.is(B))i=new e(i.source,1,l.value?b(t.state):-1);else if(l.is(q))i=new e(i.source,0);else if(l.is($)){var c,u=(0,s.Z)(l.value);try{for(u.s();!(c=u.n()).done;){var h=c.value;h.source==i.source&&(i=h)}}catch(f){u.e(f)}finally{u.f()}}}}catch(f){a.e(f)}finally{a.f()}return i}},{key:"handleUserEvent",value:function(t,n,r){return"delete"!=n&&r.activateOnTyping?new e(this.source,1):this.map(t.changes)}},{key:"handleChange",value:function(t){return t.changes.touchesRange(b(t.startState))?new e(this.source,0):this.map(t.changes)}},{key:"map",value:function(t){return t.empty||this.explicitPos<0?this:new e(this.source,this.state,t.mapPos(this.explicitPos))}}]),e}(),J=function(e){(0,r.Z)(n,e);var t=(0,i.Z)(n);function n(e,r,i,o,a,s){var c;return(0,l.Z)(this,n),(c=t.call(this,e,2,r)).result=i,c.from=o,c.to=a,c.span=s,c}return(0,c.Z)(n,[{key:"hasResult",value:function(){return!0}},{key:"handleUserEvent",value:function(e,t,r){var i=e.changes.mapPos(this.from),o=e.changes.mapPos(this.to,1),a=b(e.state);if((this.explicitPos<0?a<=i:ao||"delete"==t&&b(e.startState)==this.from)return new L(this.source,"input"==t&&r.activateOnTyping?1:0);var s=this.explicitPos<0?-1:e.changes.mapPos(this.explicitPos);return this.span&&(i==o||this.span.test(e.state.sliceDoc(i,o)))?new n(this.source,s,this.result,i,o,this.span):new L(this.source,1,s)}},{key:"handleChange",value:function(e){return e.changes.touchesRange(this.from,this.to)?new L(this.source,0):this.map(e.changes)}},{key:"map",value:function(e){return e.empty?this:new n(this.source,this.explicitPos<0?-1:e.mapPos(this.explicitPos),this.result,e.mapPos(this.from),e.mapPos(this.to,1),this.span)}}]),n}(L),B=u.Py.define(),q=u.Py.define(),$=u.Py.define({map:function(e,t){return e.map((function(e){return e.map(t)}))}}),F=u.Py.define(),V=u.QQ.define({create:function(){return D.start()},update:function(e,t){return e.update(t)},provide:function(e){return[d.hJ.from(e,(function(e){return e.tooltip})),f.tk.contentAttributes.from(e,(function(e){return e.attrs}))]}});function j(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"option";return function(n){var r=n.state.field(V,!1);if(!r||!r.open||Date.now()-r.open.timestamp<75)return!1;var i,o=1;"page"==t&&(i=(0,d.gB)(n,r.open.tooltip))&&(o=Math.max(2,Math.floor(i.dom.offsetHeight/i.dom.querySelector("li").offsetHeight)-1));var a=r.open.selected+o*(e?1:-1),s=r.open.options.length;return a<0?a="page"==t?0:s-1:a>=s&&(a="page"==t?s-1:0),n.dispatch({effects:F.of(a)}),!0}}var W=(0,c.Z)((function e(t,n){(0,l.Z)(this,e),this.active=t,this.context=n,this.time=Date.now(),this.updates=[],this.done=void 0})),H=f.lg.fromClass(function(){function e(t){(0,l.Z)(this,e),this.view=t,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.composing=0;var n,r=(0,s.Z)(t.state.field(V).active);try{for(r.s();!(n=r.n()).done;){var i=n.value;1==i.state&&this.startQuery(i)}}catch(o){r.e(o)}finally{r.f()}}return(0,c.Z)(e,[{key:"update",value:function(e){var t=this,n=e.state.field(V);if(e.selectionSet||e.docChanged||e.startState.field(V)!=n){for(var r=e.transactions.some((function(e){return(e.selection||e.docChanged)&&!N(e)})),i=0;i50&&Date.now()-a.time>1e3){var l,c=(0,s.Z)(a.context.abortListeners);try{for(c.s();!(l=c.n()).done;){var u=l.value;try{u()}catch(v){(0,f.OO)(this.view.state,v)}}}catch(g){c.e(g)}finally{c.f()}a.context.abortListeners=null,this.running.splice(i--,1)}else{var h;(h=a.updates).push.apply(h,(0,o.Z)(e.transactions))}}if(this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),this.debounceUpdate=n.active.some((function(e){return 1==e.state&&!t.running.some((function(t){return t.active.source==e.source}))}))?setTimeout((function(){return t.startUpdate()}),50):-1,0!=this.composing){var d,p=(0,s.Z)(e.transactions);try{for(p.s();!(d=p.n()).done;){var m=d.value;"input"==N(m)?this.composing=2:2==this.composing&&m.selection&&(this.composing=3)}}catch(g){p.e(g)}finally{p.f()}}}}},{key:"startUpdate",value:function(){var e=this;this.debounceUpdate=-1;var t,n=this.view.state.field(V),r=(0,s.Z)(n.active);try{var i=function(){var n=t.value;1!=n.state||e.running.some((function(e){return e.active.source==n.source}))||e.startQuery(n)};for(r.s();!(t=r.n()).done;)i()}catch(o){r.e(o)}finally{r.f()}}},{key:"startQuery",value:function(e){var t=this,n=this.view.state,r=b(n),i=new m(n,r,e.explicitPos==r),o=new W(e,i);this.running.push(o),Promise.resolve(e.source(i)).then((function(e){o.context.aborted||(o.done=e||null,t.scheduleAccept())}),(function(e){t.view.dispatch({effects:q.of(null)}),(0,f.OO)(t.view.state,e)}))}},{key:"scheduleAccept",value:function(){var e=this;this.running.every((function(e){return void 0!==e.done}))?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout((function(){return e.accept()}),50))}},{key:"accept",value:function(){var e,t=this;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;for(var n=[],r=this.view.state.facet(O),i=function(i){var a=t.running[i];if(void 0===a.done)return o=i,"continue";if(t.running.splice(i--,1),a.done){var l,c=new J(a.active.source,a.active.explicitPos,a.done,a.done.from,null!==(e=a.done.to)&&void 0!==e?e:b(a.updates.length?a.updates[0].startState:t.view.state),a.done.span&&!1!==a.done.filter?w(a.done.span,!0):null),u=(0,s.Z)(a.updates);try{for(u.s();!(l=u.n()).done;){var h=l.value;c=c.update(h,r)}}catch(g){u.e(g)}finally{u.f()}if(c.hasResult())return n.push(c),o=i,"continue"}var f=t.view.state.field(V).active.find((function(e){return e.source==a.active.source}));if(f&&1==f.state)if(null==a.done){var d,p=new L(a.active.source,0),m=(0,s.Z)(a.updates);try{for(m.s();!(d=m.n()).done;){var v=d.value;p=p.update(v,r)}}catch(g){m.e(g)}finally{m.f()}1!=p.state&&n.push(p)}else t.startQuery(f);o=i},o=0;o ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",listStyle:"none",margin:0,padding:0,"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer",padding:"1px 3px",lineHeight:1.2}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xb7\xb7\xb7"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"300px"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25cb'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25cc'"}},".cm-completionIcon-variable":{"&:after":{content:"'\ud835\udc65'"}},".cm-completionIcon-constant":{"&:after":{content:"'\ud835\udc36'"}},".cm-completionIcon-type":{"&:after":{content:"'\ud835\udc61'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222a'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25a1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\ud83d\udd11\ufe0e'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25a2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}}),Q=(0,c.Z)((function e(t,n,r,i){(0,l.Z)(this,e),this.field=t,this.line=n,this.from=r,this.to=i})),G=function(){function e(t,n,r){(0,l.Z)(this,e),this.field=t,this.from=n,this.to=r}return(0,c.Z)(e,[{key:"map",value:function(t){var n=t.mapPos(this.from,-1,u.gc.TrackDel),r=t.mapPos(this.to,1,u.gc.TrackDel);return null==n||null==r?null:new e(this.field,n,r)}}]),e}(),K=function(){function e(t,n){(0,l.Z)(this,e),this.lines=t,this.fieldPositions=n}return(0,c.Z)(e,[{key:"instantiate",value:function(e,t){var n,r=[],i=[t],o=e.doc.lineAt(t),a=/^\s*/.exec(o.text)[0],l=(0,s.Z)(this.lines);try{for(l.s();!(n=l.n()).done;){var c=n.value;if(r.length){for(var u=a,h=/^\t*/.exec(c)[0].length,f=0;f=f&&g.field++}}catch(y){v.e(y)}finally{v.f()}}a.push(new Q(f,o.length,n.index,n.index+h.length)),c=c.slice(0,n.index)+h+c.slice(n.index+n[0].length)}o.push(c)}}catch(y){l.e(y)}finally{l.f()}return new e(o,a)}}]),e}(),X=f.p.widget({widget:new(function(e){(0,r.Z)(n,e);var t=(0,i.Z)(n);function n(){return(0,l.Z)(this,n),t.apply(this,arguments)}return(0,c.Z)(n,[{key:"toDOM",value:function(){var e=document.createElement("span");return e.className="cm-snippetFieldPosition",e}},{key:"ignoreEvent",value:function(){return!1}}]),n}(f.l9))}),Y=f.p.mark({class:"cm-snippetField"}),ee=function(){function e(t,n){(0,l.Z)(this,e),this.ranges=t,this.active=n,this.deco=f.p.set(t.map((function(e){return(e.from==e.to?X:Y).range(e.from,e.to)})))}return(0,c.Z)(e,[{key:"map",value:function(t){var n,r=[],i=(0,s.Z)(this.ranges);try{for(i.s();!(n=i.n()).done;){var o=n.value.map(t);if(!o)return null;r.push(o)}}catch(a){i.e(a)}finally{i.f()}return new e(r,this.active)}},{key:"selectionInsideField",value:function(e){var t=this;return e.ranges.every((function(e){return t.ranges.some((function(n){return n.field==t.active&&n.from<=e.from&&n.to>=e.to}))}))}}]),e}(),te=u.Py.define({map:function(e,t){return e&&e.map(t)}}),ne=u.Py.define(),re=u.QQ.define({create:function(){return null},update:function(e,t){var n,r=(0,s.Z)(t.effects);try{for(r.s();!(n=r.n()).done;){var i=n.value;if(i.is(te))return i.value;if(i.is(ne)&&e)return new ee(e.ranges,i.value)}}catch(o){r.e(o)}finally{r.f()}return e&&t.docChanged&&(e=e.map(t.changes)),e&&t.selection&&!e.selectionInsideField(t.selection)&&(e=null),e},provide:function(e){return f.tk.decorations.from(e,(function(e){return e?e.deco:f.p.none}))}});function ie(e,t){return u.jT.create(e.filter((function(e){return e.field==t})).map((function(e){return u.jT.range(e.from,e.to)})))}function oe(e){var t=K.parse(e);return function(e,n,r,i){var o=t.instantiate(e.state,r),a=o.text,s=o.ranges,l={changes:{from:r,to:i,insert:h.xv.of(a)}};if(s.length&&(l.selection=ie(s,0)),s.length>1){var c=new ee(s,0),f=l.effects=[te.of(c)];void 0===e.state.field(re,!1)&&f.push(u.Py.appendConfig.of([re,ce,he,U]))}e.dispatch(e.state.update(l))}}function ae(e){return function(t){var n=t.state,r=t.dispatch,i=n.field(re,!1);if(!i||e<0&&0==i.active)return!1;var o=i.active+e,a=e>0&&!i.ranges.some((function(t){return t.field==o+e}));return r(n.update({selection:ie(i.ranges,o),effects:te.of(a?null:new ee(i.ranges,o))})),!0}}var se=[{key:"Tab",run:ae(1),shift:ae(-1)},{key:"Escape",run:function(e){var t=e.state,n=e.dispatch;return!!t.field(re,!1)&&(n(t.update({effects:te.of(null)})),!0)}}],le=u.r$.define({combine:function(e){return e.length?e[0]:se}}),ce=u.Wl.highest(f.$f.compute([le],(function(e){return e.facet(le)})));function ue(e,t){return Object.assign(Object.assign({},t),{apply:oe(e)})}var he=f.tk.domEventHandlers({mousedown:function(e,t){var n,r=t.state.field(re,!1);if(!r||null==(n=t.posAtCoords({x:e.clientX,y:e.clientY})))return!1;var i=r.ranges.find((function(e){return e.from<=n&&e.to>=n}));return!(!i||i.field==r.active)&&(t.dispatch({selection:ie(r.ranges,i.field),effects:te.of(r.ranges.some((function(e){return e.field>i.field}))?new ee(r.ranges,i.field):null)}),!0)}});function fe(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return[V,O.of(e),H,pe,U]}var de=[{key:"Ctrl-Space",run:function(e){return!!e.state.field(V,!1)&&(e.dispatch({effects:B.of(!0)}),!0)}},{key:"Escape",run:function(e){var t=e.state.field(V,!1);return!(!t||!t.active.some((function(e){return 0!=e.state})))&&(e.dispatch({effects:q.of(null)}),!0)}},{key:"ArrowDown",run:j(!0)},{key:"ArrowUp",run:j(!1)},{key:"PageDown",run:j(!0,"page")},{key:"PageUp",run:j(!1,"page")},{key:"Enter",run:function(e){var t=e.state.field(V,!1);return!(e.state.readOnly||!t||!t.open||Date.now()-t.open.timestamp<75)&&(S(e,t.open.options[t.open.selected]),!0)}}],pe=u.Wl.highest(f.$f.computeN([O],(function(e){return e.facet(O).defaultKeymap?[de]:[]})))},3046:function(e,t,n){n.d(t,{Xy:function(){return Pn}});var r=n(3433),i=n(2077),o=n(1383),a=n(7762),s=n(5671),l=n(3144),c=o.q6.define(),u=o.q6.define(),h=o.r$.define(),f=o.r$.define({combine:function(e){return(0,o.BO)(e,{minDepth:100,newGroupDelay:500},{minDepth:Math.max,newGroupDelay:Math.min})}});var d=o.QQ.define({create:function(){return Z.empty},update:function(e,t){var n=t.state.facet(f),r=t.annotation(c);if(r){var i=t.docChanged?o.jT.single(function(e){var t=0;return e.iterChangedRanges((function(e,n){return t=n})),t}(t.changes)):void 0,a=b.fromTransaction(t,i),s=r.side,l=0==s?e.undone:e.done;return l=a?w(l,l.length,n.minDepth,a):_(l,t.startState.selection),new Z(0==s?r.rest:l,0==s?l:r.rest)}var h=t.annotation(u);if("full"!=h&&"before"!=h||(e=e.isolate()),!1===t.annotation(o.YW.addToHistory))return t.changes.empty?e:e.addMapping(t.changes.desc);var d=b.fromTransaction(t),p=t.annotation(o.YW.time),m=t.annotation(o.YW.userEvent);return d?e=e.addChanges(d,p,m,n.newGroupDelay,n.minDepth):t.selection&&(e=e.addSelection(t.startState.selection,p,m,n.newGroupDelay)),"full"!=h&&"after"!=h||(e=e.isolate()),e},toJSON:function(e){return{done:e.done.map((function(e){return e.toJSON()})),undone:e.undone.map((function(e){return e.toJSON()}))}},fromJSON:function(e){return new Z(e.done.map(b.fromJSON),e.undone.map(b.fromJSON))}});function p(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return[d,f.of(e),i.tk.domEventHandlers({beforeinput:function(e,t){var n="historyUndo"==e.inputType?v:"historyRedo"==e.inputType?g:null;return!!n&&(e.preventDefault(),n(t))}})]}function m(e,t){return function(n){var r=n.state,i=n.dispatch;if(!t&&r.readOnly)return!1;var o=r.field(d,!1);if(!o)return!1;var a=o.pop(e,r,t);return!!a&&(i(a),!0)}}var v=m(0,!1),g=m(1,!1),y=m(0,!0),k=m(1,!0);var b=function(){function e(t,n,r,i,o){(0,s.Z)(this,e),this.changes=t,this.effects=n,this.mapped=r,this.startSelection=i,this.selectionsAfter=o}return(0,l.Z)(e,[{key:"setSelAfter",value:function(t){return new e(this.changes,this.effects,this.mapped,this.startSelection,t)}},{key:"toJSON",value:function(){var e,t,n;return{changes:null===(e=this.changes)||void 0===e?void 0:e.toJSON(),mapped:null===(t=this.mapped)||void 0===t?void 0:t.toJSON(),startSelection:null===(n=this.startSelection)||void 0===n?void 0:n.toJSON(),selectionsAfter:this.selectionsAfter.map((function(e){return e.toJSON()}))}}}],[{key:"fromJSON",value:function(t){return new e(t.changes&&o.as.fromJSON(t.changes),[],t.mapped&&o.n0.fromJSON(t.mapped),t.startSelection&&o.jT.fromJSON(t.startSelection),t.selectionsAfter.map(o.jT.fromJSON))}},{key:"fromTransaction",value:function(t,n){var r,i=S,o=(0,a.Z)(t.startState.facet(h));try{for(o.s();!(r=o.n()).done;){var s=(0,r.value)(t);s.length&&(i=i.concat(s))}}catch(l){o.e(l)}finally{o.f()}return!i.length&&t.changes.empty?null:new e(t.changes.invert(t.startState.doc),i,void 0,n||t.startState.selection,S)}},{key:"selection",value:function(t){return new e(void 0,S,void 0,void 0,t)}}]),e}();function w(e,t,n,r){var i=t+1>n+20?t-n-1:0,o=e.slice(i,t);return o.push(r),o}function x(e,t){return e.length?t.length?e.concat(t):e:t}var S=[];function _(e,t){if(e.length){var n=e[e.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-200));return r.length&&r[r.length-1].eq(t)?e:(r.push(t),w(e,e.length-1,1e9,n.setSelAfter(r)))}return[b.selection([t])]}function C(e){var t=e[e.length-1],n=e.slice();return n[e.length-1]=t.setSelAfter(t.selectionsAfter.slice(0,t.selectionsAfter.length-1)),n}function A(e,t){if(!e.length)return e;for(var n=e.length,r=S;n;){var i=O(e[n-1],t,r);if(i.changes&&!i.changes.empty||i.effects.length){var o=e.slice(0,n);return o[n-1]=i,o}t=i.mapped,n--,r=i.selectionsAfter}return r.length?[b.selection(r)]:S}function O(e,t,n){var r=x(e.selectionsAfter.length?e.selectionsAfter.map((function(e){return e.map(t)})):S,n);if(!e.changes)return b.selection(r);var i=e.changes.map(t),a=t.mapDesc(e.changes,!0),s=e.mapped?e.mapped.composeDesc(a):a;return new b(i,o.Py.mapEffects(e.effects,t),s,e.startSelection.map(a),r)}var T=/^(input\.type|delete)($|\.)/,Z=function(){function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0;(0,s.Z)(this,e),this.done=t,this.undone=n,this.prevTime=r,this.prevUserEvent=i}return(0,l.Z)(e,[{key:"isolate",value:function(){return this.prevTime?new e(this.done,this.undone):this}},{key:"addChanges",value:function(t,n,r,i,o){var a=this.done,s=a[a.length-1];return a=s&&s.changes&&!s.changes.empty&&t.changes&&(!r||T.test(r))&&(!s.selectionsAfter.length&&n-this.prevTime=s&&i<=l&&(r=!0)}})),r}(s.changes,t.changes)||"input.type.compose"==r)?w(a,a.length-1,o,new b(t.changes.compose(s.changes),x(t.effects,s.effects),s.mapped,s.startSelection,S)):w(a,a.length,o,t),new e(a,S,n,r)}},{key:"addSelection",value:function(t,n,r,i){var o,a,s=this.done.length?this.done[this.done.length-1].selectionsAfter:S;return s.length>0&&n-this.prevTimethis.i;){var t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}}]),e}(),H=function(){function e(t,n){var r=this;(0,s.Z)(this,e),this.view=t,this.config=n,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");var i=function(e){r.dom.addEventListener(e,(function(r){var i=t.lineBlockAtHeight(r.clientY-t.documentTop);n.domEventHandlers[e](t,i,r)&&r.preventDefault()}))};for(var o in n.domEventHandlers)i(o);this.markers=V(n.markers(t)),n.initialSpacer&&(this.spacer=new U(t,0,0,[n.initialSpacer(t)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}return(0,l.Z)(e,[{key:"update",value:function(e){var t=this.markers;if(this.markers=V(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){var n=this.config.updateSpacer(this.spacer.markers[0],e);n!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[n])}var r=e.view.viewport;return!I.Xs.eq(this.markers,t,r.from,r.to)||!!this.config.lineMarkerChange&&this.config.lineMarkerChange(e)}},{key:"destroy",value:function(){var e,t=(0,a.Z)(this.elements);try{for(t.s();!(e=t.n()).done;){e.value.destroy()}}catch(n){t.e(n)}finally{t.f()}}}]),e}(),U=function(){function e(t,n,r,i){(0,s.Z)(this,e),this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.update(t,n,r,i)}return(0,l.Z)(e,[{key:"update",value:function(e,t,n,r){this.height!=t&&(this.dom.style.height=(this.height=t)+"px"),this.above!=n&&(this.dom.style.marginTop=(this.above=n)?n+"px":""),function(e,t){if(e.length!=t.length)return!1;for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};return[G.of(e),$(),Y]}function te(e){for(var t=9;tr&&(r=s,n.push(ne.range(s)))}}}catch(l){i.e(l)}finally{i.f()}return I.Xs.of(n)}));function ie(){return re}function oe(e,t){var n=t.mapPos(e.from,1),r=t.mapPos(e.to,-1);return n>=r?void 0:{from:n,to:r}}var ae=o.Py.define({map:oe}),se=o.Py.define({map:oe});function le(e){var t,n=[],r=(0,a.Z)(e.state.selection.ranges);try{var i=function(){var r=t.value.head;if(n.some((function(e){return e.from<=r&&e.to>=r})))return"continue";n.push(e.lineBlockAt(r))};for(r.s();!(t=r.n()).done;)i()}catch(o){r.e(o)}finally{r.f()}return n}var ce=o.QQ.define({create:function(){return i.p.none},update:function(e,t){e=e.map(t.changes);var n,r=(0,a.Z)(t.effects);try{var i=function(){var t=n.value;t.is(ae)&&!function(e,t,n){var r=!1;return e.between(t,t,(function(e,i){e==t&&i==n&&(r=!0)})),r}(e,t.value.from,t.value.to)?e=e.update({add:[ge.range(t.value.from,t.value.to)]}):t.is(se)&&(e=e.update({filter:function(e,n){return t.value.from!=e||t.value.to!=n},filterFrom:t.value.from,filterTo:t.value.to}))};for(r.s();!(n=r.n()).done;)i()}catch(l){r.e(l)}finally{r.f()}if(t.selection){var o=!1,s=t.selection.main.head;e.between(s,s,(function(e,t){es&&(o=!0)})),o&&(e=e.update({filterFrom:s,filterTo:s,filter:function(e,t){return t<=s||e>=s}}))}return e},provide:function(e){return i.tk.decorations.from(e)}});function ue(e,t,n){var r,i=null;return null===(r=e.field(ce,!1))||void 0===r||r.between(t,n,(function(e,t){(!i||i.from>e)&&(i={from:e,to:t})})),i}function he(e,t){return e.field(ce,!1)?t:t.concat(o.Py.appendConfig.of(ve()))}function fe(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=e.state.doc.lineAt(t.from).number,o=e.state.doc.lineAt(t.to).number;return i.tk.announce.of("".concat(e.state.phrase(n?"Folded lines":"Unfolded lines")," ").concat(r," ").concat(e.state.phrase("to")," ").concat(o,"."))}var de=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:function(e){var t,n=(0,a.Z)(le(e));try{for(n.s();!(t=n.n()).done;){var r=t.value,i=(0,P.Fw)(e.state,r.from,r.to);if(i)return e.dispatch({effects:he(e.state,[ae.of(i),fe(e,i)])}),!0}}catch(o){n.e(o)}finally{n.f()}return!1}},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:function(e){if(!e.state.field(ce,!1))return!1;var t,n=[],r=(0,a.Z)(le(e));try{for(r.s();!(t=r.n()).done;){var i=t.value,o=ue(e.state,i.from,i.to);o&&n.push(se.of(o),fe(e,o,!1))}}catch(s){r.e(s)}finally{r.f()}return n.length&&e.dispatch({effects:n}),n.length>0}},{key:"Ctrl-Alt-[",run:function(e){for(var t=e.state,n=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign(Object.assign({},ye),e),n=new ke(t,!0),r=new ke(t,!1),o=i.lg.fromClass(function(){function e(t){(0,s.Z)(this,e),this.from=t.viewport.from,this.markers=this.buildMarkers(t)}return(0,l.Z)(e,[{key:"update",value:function(e){(e.docChanged||e.viewportChanged||e.startState.facet(P.dK)!=e.state.facet(P.dK)||e.startState.field(ce,!1)!=e.state.field(ce,!1))&&(this.markers=this.buildMarkers(e.view))}},{key:"buildMarkers",value:function(e){var t,i=new I.f_,o=(0,a.Z)(e.viewportLineBlocks);try{for(o.s();!(t=o.n()).done;){var s=t.value,l=ue(e.state,s.from,s.to)?r:(0,P.Fw)(e.state,s.from,s.to)?n:null;l&&i.add(s.from,s.from,l)}}catch(c){o.e(c)}finally{o.f()}return i.finish()}}]),e}()),c=t.domEventHandlers;return[o,J({class:"cm-foldGutter",markers:function(e){var t;return(null===(t=e.plugin(o))||void 0===t?void 0:t.markers)||I.Xs.empty},initialSpacer:function(){return new ke(t,!1)},domEventHandlers:Object.assign(Object.assign({},c),{click:function(e,t,n){if(c.click&&c.click(e,t,n))return!0;var r=ue(e.state,t.from,t.to);if(r)return e.dispatch({effects:se.of(r)}),!0;var i=(0,P.Fw)(e.state,t.from,t.to);return!!i&&(e.dispatch({effects:ae.of(i)}),!0)}})}),ve()]}var we=i.tk.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}}),xe=n(8491),Se=n(696),_e=n(6830),Ce={brackets:["(","[","{","'",'"'],before:")]}'\":;>"},Ae=o.Py.define({map:function(e,t){var n=t.mapPos(e,-1,o.gc.TrackAfter);return null==n?void 0:n}}),Oe=o.Py.define({map:function(e,t){return t.mapPos(e)}}),Te=new(function(e){(0,M.Z)(n,e);var t=(0,D.Z)(n);function n(){return(0,s.Z)(this,n),t.apply(this,arguments)}return(0,l.Z)(n)}(I.uU));Te.startSide=1,Te.endSide=-1;var Ze=o.QQ.define({create:function(){return I.Xs.empty},update:function(e,t){if(t.selection){var n=t.state.doc.lineAt(t.selection.main.head).from,r=t.startState.doc.lineAt(t.startState.selection.main.head).from;n!=t.changes.mapPos(r,-1)&&(e=I.Xs.empty)}e=e.map(t.changes);var i,o=(0,a.Z)(t.effects);try{var s=function(){var t=i.value;t.is(Ae)?e=e.update({add:[Te.range(t.value,t.value+1)]}):t.is(Oe)&&(e=e.update({filter:function(e){return e!=t.value}}))};for(o.s();!(i=o.n()).done;)s()}catch(l){o.e(l)}finally{o.f()}return e}});function Ee(){return[Re,Ze]}var Me="()[]{}<>";function De(e){for(var t=0;t2||2==r.length&&1==(0,_e.nZ)((0,_e.gm)(r,0))||t!=i.from||n!=i.to)return!1;var o=function(e,t){var n,r=Pe(e,e.selection.main.head),i=r.brackets||Ce.brackets,o=(0,a.Z)(i);try{for(o.s();!(n=o.n()).done;){var s=n.value,l=De((0,_e.gm)(s,0));if(t==s)return l==s?qe(e,s,i.indexOf(s+s+s)>-1):Je(e,s,l,r.before||Ce.before);if(t==l&&Ne(e,e.selection.main.from))return Be(e,s,l)}}catch(c){o.e(c)}finally{o.f()}return null}(e.state,r);return!!o&&(e.dispatch(o),!0)})),ze=[{key:"Backspace",run:function(e){var t=e.state,n=e.dispatch;if(t.readOnly)return!1;var r=Pe(t,t.selection.main.head).brackets||Ce.brackets,i=null,s=t.changeByRange((function(e){if(e.empty){var n,s=function(e,t){var n=e.sliceString(t-2,t);return(0,_e.nZ)((0,_e.gm)(n,0))==n.length?n:n.slice(1)}(t.doc,e.head),l=(0,a.Z)(r);try{for(l.s();!(n=l.n()).done;){var c=n.value;if(c==s&&Le(t.doc,e.head)==De((0,_e.gm)(c,0)))return{changes:{from:e.head-c.length,to:e.head+c.length},range:o.jT.cursor(e.head-c.length),userEvent:"delete.backward"}}}catch(u){l.e(u)}finally{l.f()}}return{range:i=e}}));return i||n(t.update(s,{scrollIntoView:!0})),!i}}];function Ne(e,t){var n=!1;return e.field(Ze).between(0,e.doc.length,(function(e){e==t&&(n=!0)})),n}function Le(e,t){var n=e.sliceString(t,t+2);return n.slice(0,(0,_e.nZ)((0,_e.gm)(n,0)))}function Je(e,t,n,r){var i=null,a=e.changeByRange((function(a){if(!a.empty)return{changes:[{insert:t,from:a.from},{insert:n,from:a.to}],effects:Ae.of(a.to+t.length),range:o.jT.range(a.anchor+t.length,a.head+t.length)};var s=Le(e.doc,a.head);return!s||/\s/.test(s)||r.indexOf(s)>-1?{changes:{insert:t+n,from:a.head},effects:Ae.of(a.head+t.length),range:o.jT.cursor(a.head+t.length)}:{range:i=a}}));return i?null:e.update(a,{scrollIntoView:!0,userEvent:"input.type"})}function Be(e,t,n){var r=null,i=e.selection.ranges.map((function(t){return t.empty&&Le(e.doc,t.head)==n?o.jT.cursor(t.head+n.length):r=t}));return r?null:e.update({selection:o.jT.create(i,e.selection.mainIndex),scrollIntoView:!0,effects:e.selection.ranges.map((function(e){var t=e.from;return Oe.of(t)}))})}function qe(e,t,n){var r=null,i=e.changeByRange((function(i){if(!i.empty)return{changes:[{insert:t,from:i.from},{insert:t,from:i.to}],effects:Ae.of(i.to+t.length),range:o.jT.range(i.anchor+t.length,i.head+t.length)};var a=i.head,s=Le(e.doc,a);if(s==t){if($e(e,a))return{changes:{insert:t+t,from:a},effects:Ae.of(a+t.length),range:o.jT.cursor(a+t.length)};if(Ne(e,a)){var l=n&&e.sliceDoc(a,a+3*t.length)==t+t+t;return{range:o.jT.cursor(a+t.length*(l?3:1)),effects:Oe.of(a)}}}else{if(n&&e.sliceDoc(a-2*t.length,a)==t+t&&$e(e,a-2*t.length))return{changes:{insert:t+t+t+t,from:a},effects:Ae.of(a+t.length),range:o.jT.cursor(a+t.length)};if(e.charCategorizer(a)(s)!=o.D0.Word){var c=e.sliceDoc(a-1,a);if(c!=t&&e.charCategorizer(a)(c)!=o.D0.Word&&!function(e,t,n){for(var r=(0,P.qz)(e).resolveInner(t,-1),i=0;i<5;i++){if(e.sliceDoc(r.from,r.from+n.length)==n)return!0;var o=r.to==t&&r.parent;if(!o)break;r=o}return!1}(e,a,t))return{changes:{insert:t+t,from:a},effects:Ae.of(a+t.length),range:o.jT.cursor(a+t.length)}}}return{range:r=i}}));return r?null:e.update(i,{scrollIntoView:!0,userEvent:"input.type"})}function $e(e,t){var n=(0,P.qz)(e).resolveInner(t+1);return n.parent&&n.from==t}var Fe=n(9439),Ve=o.r$.define({combine:function(e){var t,n,r,i=(0,a.Z)(e);try{for(i.s();!(r=i.n()).done;){var o=r.value;t=t||o.topContainer,n=n||o.bottomContainer}}catch(s){i.e(s)}finally{i.f()}return{topContainer:t,bottomContainer:n}}});function je(e,t){var n=e.plugin(We),r=n?n.specs.indexOf(t):-1;return r>-1?n.panels[r]:null}var We=i.lg.fromClass(function(){function e(t){(0,s.Z)(this,e),this.input=t.state.facet(Ge),this.specs=this.input.filter((function(e){return e})),this.panels=this.specs.map((function(e){return e(t)}));var n=t.state.facet(Ve);this.top=new He(t,!0,n.topContainer),this.bottom=new He(t,!1,n.bottomContainer),this.top.sync(this.panels.filter((function(e){return e.top}))),this.bottom.sync(this.panels.filter((function(e){return!e.top})));var r,i=(0,a.Z)(this.panels);try{for(i.s();!(r=i.n()).done;){var o=r.value;o.dom.classList.add("cm-panel"),o.mount&&o.mount()}}catch(l){i.e(l)}finally{i.f()}}return(0,l.Z)(e,[{key:"update",value:function(e){var t=e.state.facet(Ve);this.top.container!=t.topContainer&&(this.top.sync([]),this.top=new He(e.view,!0,t.topContainer)),this.bottom.container!=t.bottomContainer&&(this.bottom.sync([]),this.bottom=new He(e.view,!1,t.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();var n=e.state.facet(Ge);if(n!=this.input){var r,i=n.filter((function(e){return e})),o=[],s=[],l=[],c=[],u=(0,a.Z)(i);try{for(u.s();!(r=u.n()).done;){var h=r.value,f=this.specs.indexOf(h),d=void 0;f<0?(d=h(e.view),c.push(d)):(d=this.panels[f]).update&&d.update(e),o.push(d),(d.top?s:l).push(d)}}catch(b){u.e(b)}finally{u.f()}this.specs=i,this.panels=o,this.top.sync(s),this.bottom.sync(l);for(var p=0,m=c;p2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:t.length,o=arguments.length>4?arguments[4]:void 0;(0,s.Z)(this,e),this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=t.iterRange(r,i),this.bufferStart=r,this.normalize=o?function(e){return o(Xe(e))}:Xe,this.query=this.normalize(n)}return(0,l.Z)(e,[{key:"peek",value:function(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return(0,_e.gm)(this.buffer,this.bufferPos)}},{key:"next",value:function(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}},{key:"nextOverlapping",value:function(){for(;;){var e=this.peek();if(e<0)return this.done=!0,this;var t=(0,_e.bg)(e),n=this.bufferStart+this.bufferPos;this.bufferPos+=(0,_e.nZ)(e);for(var r=this.normalize(t),i=0,o=n;;i++){var a=r.charCodeAt(i),s=this.match(a,o);if(s)return this.value=s,this;if(i==r.length-1)break;o==n&&i3&&void 0!==arguments[3]?arguments[3]:0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:t.length;if((0,s.Z)(this,e),this.to=o,this.curLine="",this.done=!1,this.value=et,/\\[sWDnr]|\n|\r|\[\^/.test(n))return new ot(t,n,r,i,o);this.re=new RegExp(n,tt+((null===r||void 0===r?void 0:r.ignoreCase)?"i":"")),this.iter=t.iter();var a=t.lineAt(i);this.curLineStart=a.from,this.matchPos=i,this.getLine(this.curLineStart)}return(0,l.Z)(e,[{key:"getLine",value:function(e){this.iter.next(e),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}},{key:"nextLine",value:function(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}},{key:"next",value:function(){for(var e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;var t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){var n=this.curLineStart+t.index,r=n+t[0].length;if(this.matchPos=r+(n==r?1:0),n==this.curLine.length&&this.nextLine(),nthis.value.to)return this.value={from:n,to:r,match:t},this;e=this.matchPos-this.curLineStart}else{if(!(this.curLineStart+this.curLine.length=r||i.to<=n){var o=new e(n,t.sliceString(n,r));return rt.set(t,o),o}if(i.from==n&&i.to==r)return i;var a=i.text,s=i.from;return s>n&&(a=t.sliceString(n,s)+a,s=n),i.to=this.to?this.to:this.text.lineAt(e).to}},{key:"next",value:function(){for(;;){var e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t&&this.flat.tothis.flat.text.length-10&&(t=null),t){var n=this.flat.from+t.index,r=n+t[0].length;return this.value={from:n,to:r,match:t},this.matchPos=r+(n==r?1:0),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=it.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+2*this.flat.text.length))}}}]),e}();function at(e){var t=(0,Ke.Z)("input",{class:"cm-textfield",name:"line"});function n(){var n=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(t.value);if(n){var r=e.state,i=r.doc.lineAt(r.selection.main.head),a=(0,Fe.Z)(n,5),s=a[1],l=a[2],c=a[3],u=a[4],h=c?+c.slice(1):0,f=l?+l:i.number;if(l&&u){var d=f/100;s&&(d=d*("-"==s?-1:1)+i.number/r.doc.lines),f=Math.round(r.doc.lines*d)}else l&&s&&(f=f*("-"==s?-1:1)+i.number);var p=r.doc.line(Math.max(1,Math.min(r.doc.lines,f)));e.dispatch({effects:st.of(!1),selection:o.jT.cursor(p.from+Math.max(0,Math.min(h,p.length))),scrollIntoView:!0}),e.focus()}}return{dom:(0,Ke.Z)("form",{class:"cm-gotoLine",onkeydown:function(t){27==t.keyCode?(t.preventDefault(),e.dispatch({effects:st.of(!1)}),e.focus()):13==t.keyCode&&(t.preventDefault(),n())},onsubmit:function(e){e.preventDefault(),n()}},(0,Ke.Z)("label",e.state.phrase("Go to line"),": ",t)," ",(0,Ke.Z)("button",{class:"cm-button",type:"submit"},e.state.phrase("go"))),pos:-10}}"undefined"!=typeof Symbol&&(nt.prototype[Symbol.iterator]=ot.prototype[Symbol.iterator]=function(){return this});var st=o.Py.define(),lt=o.QQ.define({create:function(){return!0},update:function(e,t){var n,r=(0,a.Z)(t.effects);try{for(r.s();!(n=r.n()).done;){var i=n.value;i.is(st)&&(e=i.value)}}catch(o){r.e(o)}finally{r.f()}return e},provide:function(e){return Ge.from(e,(function(e){return e?at:null}))}}),ct=i.tk.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),ut={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!0},ht=o.r$.define({combine:function(e){return(0,o.BO)(e,ut,{highlightWordAroundCursor:function(e,t){return e||t},minSelectionLength:Math.min,maxMatches:Math.min})}});function ft(e){var t=[gt,vt];return e&&t.push(ht.of(e)),t}var dt=i.p.mark({class:"cm-selectionMatch"}),pt=i.p.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function mt(e,t,n,r){return(0==n||e(t.sliceDoc(n-1,n))!=o.D0.Word)&&(r==t.doc.length||e(t.sliceDoc(r,r+1))!=o.D0.Word)}var vt=i.lg.fromClass(function(){function e(t){(0,s.Z)(this,e),this.decorations=this.getDeco(t)}return(0,l.Z)(e,[{key:"update",value:function(e){(e.selectionSet||e.docChanged||e.viewportChanged)&&(this.decorations=this.getDeco(e.view))}},{key:"getDeco",value:function(e){var t=e.state.facet(ht),n=e.state,r=n.selection;if(r.ranges.length>1)return i.p.none;var s,l=r.main,c=null;if(l.empty){if(!t.highlightWordAroundCursor)return i.p.none;var u=n.wordAt(l.head);if(!u)return i.p.none;c=n.charCategorizer(l.head),s=n.sliceDoc(u.from,u.to)}else{var h=l.to-l.from;if(h200)return i.p.none;if(t.wholeWords){if(s=n.sliceDoc(l.from,l.to),!mt(c=n.charCategorizer(l.head),n,l.from,l.to)||!function(e,t,n,r){return e(t.sliceDoc(n,n+1))==o.D0.Word&&e(t.sliceDoc(r-1,r))==o.D0.Word}(c,n,l.from,l.to))return i.p.none}else if(!(s=n.sliceDoc(l.from,l.to).trim()))return i.p.none}var f,d=[],p=(0,a.Z)(e.visibleRanges);try{for(p.s();!(f=p.n()).done;)for(var m=f.value,v=new Ye(n.doc,s,m.from,m.to);!v.next().done;){var g=v.value,y=g.from,k=g.to;if((!c||mt(c,n,y,k))&&(l.empty&&y<=l.from&&k>=l.to?d.push(pt.range(y,k)):(y>=l.to||k<=l.from)&&d.push(dt.range(y,k)),d.length>t.maxMatches))return i.p.none}}catch(b){p.e(b)}finally{p.f()}return i.p.set(d)}}]),e}(),{decorations:function(e){return e.decorations}}),gt=i.tk.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}});var yt=o.r$.define({combine:function(e){var t;return{top:e.reduce((function(e,t){return null!==e&&void 0!==e?e:t.top}),void 0)||!1,caseSensitive:e.reduce((function(e,t){return null!==e&&void 0!==e?e:t.caseSensitive||t.matchCase}),void 0)||!1,createPanel:(null===(t=e.find((function(e){return e.createPanel})))||void 0===t?void 0:t.createPanel)||function(e){return new Ft(e)}}}});var kt=function(){function e(t){(0,s.Z)(this,e),this.search=t.search,this.caseSensitive=!!t.caseSensitive,this.regexp=!!t.regexp,this.replace=t.replace||"",this.valid=!!this.search&&(!this.regexp||function(e){try{return new RegExp(e,tt),!0}catch(t){return!1}}(this.search)),this.unquoted=this.search.replace(/\\([nrt\\])/g,(function(e,t){return"n"==t?"\n":"r"==t?"\r":"t"==t?"\t":"\\"}))}return(0,l.Z)(e,[{key:"eq",value:function(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp}},{key:"create",value:function(){return this.regexp?new _t(this):new xt(this)}},{key:"getCursor",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length;return this.regexp?St(this,e,t,n):wt(this,e,t,n)}}]),e}(),bt=(0,l.Z)((function e(t){(0,s.Z)(this,e),this.spec=t}));function wt(e,t,n,r){return new Ye(t,e.unquoted,n,r,e.caseSensitive?void 0:function(e){return e.toLowerCase()})}var xt=function(e){(0,M.Z)(n,e);var t=(0,D.Z)(n);function n(e){return(0,s.Z)(this,n),t.call(this,e)}return(0,l.Z)(n,[{key:"nextMatch",value:function(e,t,n){var r=wt(this.spec,e,n,e.length).nextOverlapping();return r.done&&(r=wt(this.spec,e,0,t).nextOverlapping()),r.done?null:r.value}},{key:"prevMatchInRange",value:function(e,t,n){for(var r=n;;){for(var i=Math.max(t,r-1e4-this.spec.unquoted.length),o=wt(this.spec,e,i,r),a=null;!o.nextOverlapping().done;)a=o.value;if(a)return a;if(i==t)return null;r-=1e4}}},{key:"prevMatch",value:function(e,t,n){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,n,e.length)}},{key:"getReplacement",value:function(e){return this.spec.replace}},{key:"matchAll",value:function(e,t){for(var n=wt(this.spec,e,0,e.length),r=[];!n.next().done;){if(r.length>=t)return null;r.push(n.value)}return r}},{key:"highlight",value:function(e,t,n,r){for(var i=wt(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(n+this.spec.unquoted.length,e.length));!i.next().done;)r(i.value.from,i.value.to)}}]),n}(bt);function St(e,t,n,r){return new nt(t,e.search,e.caseSensitive?void 0:{ignoreCase:!0},n,r)}var _t=function(e){(0,M.Z)(n,e);var t=(0,D.Z)(n);function n(){return(0,s.Z)(this,n),t.apply(this,arguments)}return(0,l.Z)(n,[{key:"nextMatch",value:function(e,t,n){var r=St(this.spec,e,n,e.length).next();return r.done&&(r=St(this.spec,e,0,t).next()),r.done?null:r.value}},{key:"prevMatchInRange",value:function(e,t,n){for(var r=1;;r++){for(var i=Math.max(t,n-1e4*r),o=St(this.spec,e,i,n),a=null;!o.next().done;)a=o.value;if(a&&(i==t||a.from>i+10))return a;if(i==t)return null}}},{key:"prevMatch",value:function(e,t,n){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,n,e.length)}},{key:"getReplacement",value:function(e){return this.spec.replace.replace(/\$([$&\d+])/g,(function(t,n){return"$"==n?"$":"&"==n?e.match[0]:"0"!=n&&+n=t)return null;r.push(n.value)}return r}},{key:"highlight",value:function(e,t,n,r){for(var i=St(this.spec,e,Math.max(0,t-250),Math.min(n+250,e.length));!i.next().done;)r(i.value.from,i.value.to)}}]),n}(bt),Ct=o.Py.define(),At=o.Py.define(),Ot=o.QQ.define({create:function(e){return new Tt(Jt(e).create(),null)},update:function(e,t){var n,r=(0,a.Z)(t.effects);try{for(r.s();!(n=r.n()).done;){var i=n.value;i.is(Ct)?e=new Tt(i.value.create(),e.panel):i.is(At)&&(e=new Tt(e.query,i.value?Lt:null))}}catch(o){r.e(o)}finally{r.f()}return e},provide:function(e){return Ge.from(e,(function(e){return e.panel}))}});var Tt=(0,l.Z)((function e(t,n){(0,s.Z)(this,e),this.query=t,this.panel=n})),Zt=i.p.mark({class:"cm-searchMatch"}),Et=i.p.mark({class:"cm-searchMatch cm-searchMatch-selected"}),Mt=i.lg.fromClass(function(){function e(t){(0,s.Z)(this,e),this.view=t,this.decorations=this.highlight(t.state.field(Ot))}return(0,l.Z)(e,[{key:"update",value:function(e){var t=e.state.field(Ot);(t!=e.startState.field(Ot)||e.docChanged||e.selectionSet)&&(this.decorations=this.highlight(t))}},{key:"highlight",value:function(e){var t=e.query;if(!e.panel||!t.spec.valid)return i.p.none;for(var n=this.view,r=new I.f_,o=0,a=n.visibleRanges,s=a.length;oa[o+1].from-500;)u=a[++o].to;t.highlight(n.state.doc,c,u,(function(e,t){var i=n.state.selection.ranges.some((function(n){return n.from==e&&n.to==t}));r.add(e,t,i?Et:Zt)}))}return r.finish()}}]),e}(),{decorations:function(e){return e.decorations}});function Dt(e){return function(t){var n=t.state.field(Ot,!1);return n&&n.query.spec.valid?e(t,n):Bt(t)}}var Pt=Dt((function(e,t){var n=t.query,r=e.state.selection.main,i=r.from,o=r.to,a=n.nextMatch(e.state.doc,i,o);return!(!a||a.from==i&&a.to==o)&&(e.dispatch({selection:{anchor:a.from,head:a.to},scrollIntoView:!0,effects:Wt(e,a),userEvent:"select.search"}),!0)})),It=Dt((function(e,t){var n=t.query,r=e.state,i=r.selection.main,o=i.from,a=i.to,s=n.prevMatch(r.doc,o,a);return!!s&&(e.dispatch({selection:{anchor:s.from,head:s.to},scrollIntoView:!0,effects:Wt(e,s),userEvent:"select.search"}),!0)})),Rt=Dt((function(e,t){var n=t.query.matchAll(e.state.doc,1e3);return!(!n||!n.length)&&(e.dispatch({selection:o.jT.create(n.map((function(e){return o.jT.range(e.from,e.to)}))),userEvent:"select.search.matches"}),!0)})),zt=Dt((function(e,t){var n=t.query,r=e.state,i=r.selection.main,o=i.from,a=i.to;if(r.readOnly)return!1;var s=n.nextMatch(r.doc,o,o);if(!s)return!1;var l,c,u=[];if(s.from==o&&s.to==a&&(c=r.toText(n.getReplacement(s)),u.push({from:s.from,to:s.to,insert:c}),s=n.nextMatch(r.doc,s.from,s.to)),s){var h=0==u.length||u[0].from>=s.to?0:s.to-s.from-c.length;l={anchor:s.from-h,head:s.to-h}}return e.dispatch({changes:u,selection:l,scrollIntoView:!!l,effects:s?Wt(e,s):void 0,userEvent:"input.replace"}),!0})),Nt=Dt((function(e,t){var n=t.query;if(e.state.readOnly)return!1;var r=n.matchAll(e.state.doc,1e9).map((function(e){return{from:e.from,to:e.to,insert:n.getReplacement(e)}}));return!!r.length&&(e.dispatch({changes:r,userEvent:"input.replace.all"}),!0)}));function Lt(e){return e.state.facet(yt).createPanel(e)}function Jt(e,t){var n,r=e.selection.main,i=r.empty||r.to>r.from+100?"":e.sliceDoc(r.from,r.to),o=null!==(n=null===t||void 0===t?void 0:t.caseSensitive)&&void 0!==n?n:e.facet(yt).caseSensitive;return t&&!i?t:new kt({search:i.replace(/\n/g,"\\n"),caseSensitive:o})}var Bt=function(e){var t=e.state.field(Ot,!1);if(t&&t.panel){var n=je(e,Lt);if(!n)return!1;var r=n.dom.querySelector("[name=search]");if(r!=e.root.activeElement){var i=Jt(e.state,t.query.spec);i.valid&&e.dispatch({effects:Ct.of(i)}),r.focus(),r.select()}}else e.dispatch({effects:[At.of(!0),t?Ct.of(Jt(e.state,t.query.spec)):o.Py.appendConfig.of(Ut)]});return!0},qt=function(e){var t=e.state.field(Ot,!1);if(!t||!t.panel)return!1;var n=je(e,Lt);return n&&n.dom.contains(e.root.activeElement)&&e.focus(),e.dispatch({effects:At.of(!1)}),!0},$t=[{key:"Mod-f",run:Bt,scope:"editor search-panel"},{key:"F3",run:Pt,shift:It,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:Pt,shift:It,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:qt,scope:"editor search-panel"},{key:"Mod-Shift-l",run:function(e){var t=e.state,n=e.dispatch,r=t.selection;if(r.ranges.length>1||r.main.empty)return!1;for(var i=r.main,a=i.from,s=i.to,l=[],c=0,u=new Ye(t.doc,t.sliceDoc(a,s));!u.next().done;){if(l.length>1e3)return!1;u.value.from==a&&(c=l.length),l.push(o.jT.range(u.value.from,u.value.to))}return n(t.update({selection:o.jT.create(l,c),userEvent:"select.search.matches"})),!0}},{key:"Alt-g",run:function(e){var t=je(e,at);if(!t){var n=[st.of(!0)];null==e.state.field(lt,!1)&&n.push(o.Py.appendConfig.of([lt,ct])),e.dispatch({effects:n}),t=je(e,at)}return t&&t.dom.querySelector("input").focus(),!0}},{key:"Mod-d",run:function(e){var t=e.state,n=e.dispatch,r=t.selection.ranges;if(r.some((function(e){return e.from===e.to})))return function(e){var t=e.state,n=e.dispatch,r=t.selection,i=o.jT.create(r.ranges.map((function(e){return t.wordAt(e.head)||o.jT.cursor(e.head)})),r.mainIndex);return!i.eq(r)&&(n(t.update({selection:i})),!0)}({state:t,dispatch:n});var a=t.sliceDoc(r[0].from,r[0].to);if(t.selection.ranges.some((function(e){return t.sliceDoc(e.from,e.to)!=a})))return!1;var s=function(e,t){for(var n=e.selection,r=n.main,i=n.ranges,o=e.wordAt(r.head),a=o&&o.from==r.from&&o.to==r.to,s=function(n,r){if(r.next(),!r.done){if(n&&i.some((function(e){return e.from==r.value.from})))return c=r,l=n,"continue";if(a){var o=e.wordAt(r.value.from);if(!o||o.from!=r.value.from||o.to!=r.value.to)return c=r,l=n,"continue"}return l=n,c=r,{v:r.value}}if(n)return c=r,l=n,{v:null};r=new Ye(e.doc,t,0,Math.max(0,i[i.length-1].from-1)),l=n=!0,c=r},l=!1,c=new Ye(e.doc,t,i[i.length-1].to);;){var u=s(l,c);if("continue"!==u&&"object"===typeof u)return u.v}}(t,a);return!!s&&(n(t.update({selection:t.selection.addRange(o.jT.range(s.from,s.to),!1),effects:i.tk.scrollIntoView(s.to)})),!0)},preventDefault:!0}],Ft=function(){function e(t){var n=this;(0,s.Z)(this,e),this.view=t;var i=this.query=t.state.field(Ot).query.spec;function o(e,t,n){return(0,Ke.Z)("button",{class:"cm-button",name:e,onclick:t,type:"button"},n)}this.commit=this.commit.bind(this),this.searchField=(0,Ke.Z)("input",{value:i.search,placeholder:Vt(t,"Find"),"aria-label":Vt(t,"Find"),class:"cm-textfield",name:"search",onchange:this.commit,onkeyup:this.commit}),this.replaceField=(0,Ke.Z)("input",{value:i.replace,placeholder:Vt(t,"Replace"),"aria-label":Vt(t,"Replace"),class:"cm-textfield",name:"replace",onchange:this.commit,onkeyup:this.commit}),this.caseField=(0,Ke.Z)("input",{type:"checkbox",name:"case",checked:i.caseSensitive,onchange:this.commit}),this.reField=(0,Ke.Z)("input",{type:"checkbox",name:"re",checked:i.regexp,onchange:this.commit}),this.dom=(0,Ke.Z)("div",{onkeydown:function(e){return n.keydown(e)},class:"cm-search"},[this.searchField,o("next",(function(){return Pt(t)}),[Vt(t,"next")]),o("prev",(function(){return It(t)}),[Vt(t,"previous")]),o("select",(function(){return Rt(t)}),[Vt(t,"all")]),(0,Ke.Z)("label",null,[this.caseField,Vt(t,"match case")]),(0,Ke.Z)("label",null,[this.reField,Vt(t,"regexp")])].concat((0,r.Z)(t.state.readOnly?[]:[(0,Ke.Z)("br"),this.replaceField,o("replace",(function(){return zt(t)}),[Vt(t,"replace")]),o("replaceAll",(function(){return Nt(t)}),[Vt(t,"replace all")]),(0,Ke.Z)("button",{name:"close",onclick:function(){return qt(t)},"aria-label":Vt(t,"close"),type:"button"},["\xd7"])])))}return(0,l.Z)(e,[{key:"commit",value:function(){var e=new kt({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:Ct.of(e)}))}},{key:"keydown",value:function(e){(0,i.$1)(this.view,e,"search-panel")?e.preventDefault():13==e.keyCode&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?It:Pt)(this.view)):13==e.keyCode&&e.target==this.replaceField&&(e.preventDefault(),zt(this.view))}},{key:"update",value:function(e){var t,n=(0,a.Z)(e.transactions);try{for(n.s();!(t=n.n()).done;){var r,i=t.value,o=(0,a.Z)(i.effects);try{for(o.s();!(r=o.n()).done;){var s=r.value;s.is(Ct)&&!s.value.eq(this.query)&&this.setQuery(s.value)}}catch(l){o.e(l)}finally{o.f()}}}catch(l){n.e(l)}finally{n.f()}}},{key:"setQuery",value:function(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp}},{key:"mount",value:function(){this.searchField.select()}},{key:"pos",get:function(){return 80}},{key:"top",get:function(){return this.view.state.facet(yt).top}}]),e}();function Vt(e,t){return e.state.phrase(t)}var jt=/[\s\.,:;?!]/;function Wt(e,t){var n=t.from,r=t.to,o=e.state.doc.lineAt(n).from,a=e.state.doc.lineAt(r).to,s=Math.max(o,n-30),l=Math.min(a,r+30),c=e.state.sliceDoc(s,l);if(s!=o)for(var u=0;u<30;u++)if(!jt.test(c[u+1])&&jt.test(c[u])){c=c.slice(u);break}if(l!=a)for(var h=c.length-1;h>c.length-30;h--)if(!jt.test(c[h-1])&&jt.test(c[h])){c=c.slice(0,h);break}return i.tk.announce.of("".concat(e.state.phrase("current match"),". ").concat(c," ").concat(e.state.phrase("on line")," ").concat(e.state.doc.lineAt(n).number))}var Ht=i.tk.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),Ut=[Ot,o.Wl.lowest(Mt),Ht],Qt=n(4941);function Gt(e,t){return function(n){var r=n.state,i=n.dispatch;if(r.readOnly)return!1;var o=e(t,r);return!!o&&(i(r.update(o)),!0)}}var Kt=Gt(on,0),Xt=Gt(rn,0),Yt=Gt((function(e,t){return rn(e,t,function(e){var t,n=[],r=(0,a.Z)(e.selection.ranges);try{for(r.s();!(t=r.n()).done;){var i=t.value,o=e.doc.lineAt(i.from),s=i.to<=o.to?o:e.doc.lineAt(i.to),l=n.length-1;l>=0&&n[l].to>o.from?n[l].to=s.to:n.push({from:o.from,to:s.to})}}catch(c){r.e(c)}finally{r.f()}return n}(t))}),0),en=[{key:"Mod-/",run:function(e){var t=tn(e.state);return t.line?Kt(e):!!t.block&&Yt(e)}},{key:"Alt-A",run:Xt}];function tn(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.selection.main.head,n=e.languageDataAt("commentTokens",t);return n.length?n[0]:{}}function nn(e,t,n,r){var i,o,a=t.open,s=t.close,l=e.sliceDoc(n-50,n),c=e.sliceDoc(r,r+50),u=/\s*$/.exec(l)[0].length,h=/^\s*/.exec(c)[0].length,f=l.length-u;if(l.slice(f-a.length,f)==a&&c.slice(h,h+s.length)==s)return{open:{pos:n-u,margin:u&&1},close:{pos:r+h,margin:h&&1}};r-n<=100?i=o=e.sliceDoc(n,r):(i=e.sliceDoc(n,n+50),o=e.sliceDoc(r-50,r));var d=/^\s*/.exec(i)[0].length,p=/\s*$/.exec(o)[0].length,m=o.length-p-s.length;return i.slice(d,d+a.length)==a&&o.slice(m,m+s.length)==s?{open:{pos:n+d+a.length,margin:/\s/.test(i.charAt(d+a.length))?1:0},close:{pos:r-p-s.length,margin:/\s/.test(o.charAt(m-1))?1:0}}:null}function rn(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.selection.ranges,r=n.map((function(e){return tn(t,e.from).block}));if(!r.every((function(e){return e})))return null;var i=n.map((function(e,n){return nn(t,r[n],e.from,e.to)}));if(2!=e&&!i.every((function(e){return e})))return{changes:t.changes(n.map((function(e,t){return i[t]?[]:[{from:e.from,insert:r[t].open+" "},{from:e.to,insert:" "+r[t].close}]})))};if(1!=e&&i.some((function(e){return e}))){for(var o,a=[],s=0;s2&&void 0!==arguments[2]?arguments[2]:t.selection.ranges,i=[],o=-1,s=(0,a.Z)(r);try{for(s.s();!(n=s.n()).done;){for(var l=n.value,c=l.from,u=l.to,h=i.length,f=1e9,d=c;d<=u;){var p=t.doc.lineAt(d);if(p.from>o&&(c==u||u>p.from)){o=p.from;var m=tn(t,d).line;if(!m)continue;var v=/^\s*/.exec(p.text)[0].length,g=v==p.length,y=p.text.slice(v,v+m.length)==m?v:-1;v=0}))){var E,M=[],D=(0,a.Z)(i);try{for(D.s();!(E=D.n()).done;){var P=E.value,I=P.line,R=P.comment,z=P.token;if(R>=0){var N=I.from+R,L=N+z.length;" "==I.text[L-I.from]&&L++,M.push({from:N,to:L})}}}catch(J){D.e(J)}finally{D.f()}return{changes:M}}return null}var an=2e3;function sn(e,t){var n=e.posAtCoords({x:t.clientX,y:t.clientY},!1),r=e.state.doc.lineAt(n),i=n-r.from,o=i>an?-1:i==r.length?function(e,t){var n=e.coordsAtPos(e.viewport.from);return n?Math.round(Math.abs((n.left-t)/e.defaultCharacterWidth)):-1}(e,t.clientX):(0,_e.IS)(r.text,e.state.tabSize,n-r.from);return{line:r.number,col:o,off:i}}function ln(e,t){var n=sn(e,t),r=e.state.selection;return n?{update:function(e){if(e.docChanged){var t=e.changes.mapPos(e.startState.doc.line(n.line).from),i=e.state.doc.lineAt(t);n={line:i.number,col:n.col,off:Math.min(n.off,i.length)},r=r.map(e.changes)}},get:function(t,i,a){var s=sn(e,t);if(!s)return r;var l=function(e,t,n){var r=Math.min(t.line,n.line),i=Math.max(t.line,n.line),a=[];if(t.off>an||n.off>an||t.col<0||n.col<0)for(var s=Math.min(t.off,n.off),l=Math.max(t.off,n.off),c=r;c<=i;c++){var u=e.doc.line(c);u.length<=l&&a.push(o.jT.range(u.from+s,u.to+l))}else for(var h=Math.min(t.col,n.col),f=Math.max(t.col,n.col),d=r;d<=i;d++){var p=e.doc.line(d),m=(0,_e.Gz)(p.text,h,e.tabSize,!0);if(m>-1){var v=(0,_e.Gz)(p.text,f,e.tabSize);a.push(o.jT.range(p.from+m,p.from+v))}}return a}(e.state,n,s);return l.length?a?o.jT.create(l.concat(r.ranges)):o.jT.create(l):r}}:null}function cn(e){var t=(null===e||void 0===e?void 0:e.eventFilter)||function(e){return e.altKey&&0==e.button};return i.tk.mouseSelectionStyle.of((function(e,n){return t(n)?ln(e,n):null}))}var un=n(7536),hn=n(5128),fn=(0,l.Z)((function e(t,n,r){(0,s.Z)(this,e),this.from=t,this.to=n,this.diagnostic=r})),dn=function(){function e(t,n,r){(0,s.Z)(this,e),this.diagnostics=t,this.panel=n,this.selected=r}return(0,l.Z)(e,null,[{key:"init",value:function(t,n,r){var o=i.p.set(t.map((function(e){return e.from==e.to||e.from==e.to-1&&r.doc.lineAt(e.from).to==e.from?i.p.widget({widget:new On(e),diagnostic:e}).range(e.from):i.p.mark({attributes:{class:"cm-lintRange cm-lintRange-"+e.severity},diagnostic:e}).range(e.from,e.to)})),!0);return new e(o,n,pn(o))}}]),e}();function pn(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=null;return e.between(n,1e9,(function(e,n,i){var o=i.spec;if(!t||o.diagnostic==t)return r=new fn(e,n,o.diagnostic),!1})),r}function mn(e,t){return e.field(kn,!1)?t:t.concat(o.Py.appendConfig.of([kn,i.tk.decorations.compute([kn],(function(e){var t=e.field(kn),n=t.selected,r=t.panel;return n&&r&&n.from!=n.to?i.p.set([bn.range(n.from,n.to)]):i.p.none})),(0,hn.bF)(wn),Dn]))}var vn=o.Py.define(),gn=o.Py.define(),yn=o.Py.define(),kn=o.QQ.define({create:function(){return new dn(i.p.none,null,null)},update:function(e,t){if(t.docChanged){var n=e.diagnostics.map(t.changes),r=null;if(e.selected){var i=t.changes.mapPos(e.selected.from,1);r=pn(n,e.selected.diagnostic,i)||pn(n,null,i)}e=new dn(n,e.panel,r)}var o,s=(0,a.Z)(t.effects);try{for(s.s();!(o=s.n()).done;){var l=o.value;l.is(vn)?e=dn.init(l.value,e.panel,t.state):l.is(gn)?e=new dn(e.diagnostics,l.value?Zn.open:null,e.selected):l.is(yn)&&(e=new dn(e.diagnostics,e.panel,l.value))}}catch(c){s.e(c)}finally{s.f()}return e},provide:function(e){return[Ge.from(e,(function(e){return e.panel})),i.tk.decorations.from(e,(function(e){return e.diagnostics}))]}});var bn=i.p.mark({class:"cm-lintRange cm-lintRange-active"});function wn(e,t,n){var r=e.state.field(kn).diagnostics,i=[],o=2e8,a=0;return r.between(t-(n<0?1:0),t+(n>0?1:0),(function(e,r,s){var l=s.spec;t>=e&&t<=r&&(e==r||(t>e||n>0)&&(t=65&&e.keyCode<=90&&n.selectedIndex>=0))return;for(var r=n.items[n.selectedIndex].diagnostic,i=Cn(r.actions),o=0;oi&&(e.items.splice(i,u-i),o=!0)),r&&l.diagnostic==r.diagnostic?l.dom.hasAttribute("aria-selected")||(l.dom.setAttribute("aria-selected","true"),a=l):l.dom.hasAttribute("aria-selected")&&l.dom.removeAttribute("aria-selected"),i++}));ir.bottom&&(e.list.scrollTop+=n.bottom-r.bottom)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),o&&this.sync()}},{key:"sync",value:function(){var e=this.list.firstChild;function t(){var t=e;e=t.nextSibling,t.remove()}var n,r=(0,a.Z)(this.items);try{for(r.s();!(n=r.n()).done;){var i=n.value;if(i.dom.parentNode==this.list){for(;e!=i.dom;)t();e=i.dom.nextSibling}else this.list.insertBefore(i.dom,e)}}catch(o){r.e(o)}finally{r.f()}for(;e;)t()}},{key:"moveSelection",value:function(e){if(!(this.selectedIndex<0)){var t=pn(this.view.state.field(kn).diagnostics,this.items[e].diagnostic);t&&this.view.dispatch({selection:{anchor:t.from,head:t.to},scrollIntoView:!0,effects:yn.of(t)})}}}],[{key:"open",value:function(t){return new e(t)}}]),e}();function En(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:'viewBox="0 0 40 40"';return'url(\'data:image/svg+xml,").concat(encodeURIComponent(e),"')")}function Mn(e){return En(''),'width="6" height="3"')}var Dn=i.tk.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:Mn("#d11")},".cm-lintRange-warning":{backgroundImage:Mn("orange")},".cm-lintRange-info":{backgroundImage:Mn("#999")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});var Pn=[ee(),ie(),(0,i.AE)(),p(),be(),(0,i.Uw)(),(0,i.qr)(),o.yy.allowMultipleSelections.of(!0),(0,P.nY)(),un.R_.fallback,(0,Se.n)(),Ee(),(0,Qt.ys)(),cn(),(0,i.ZO)(),ft(),i.$f.of([].concat((0,r.Z)(ze),(0,r.Z)(xe.wQ),(0,r.Z)($t),(0,r.Z)(E),(0,r.Z)(de),(0,r.Z)(en),(0,r.Z)(Qt.B1),(0,r.Z)(_n)))]},8491:function(e,t,n){n.d(t,{oc:function(){return ue},wQ:function(){return ce}});var r=n(7762),i=n(1383),o=n(6830),a=n(2077),s=n(696),l=n(659),c=n(299);function u(e,t){return i.jT.create(e.ranges.map(t),e.mainIndex)}function h(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:"select"})}function f(e,t){var n=e.state,r=e.dispatch,i=u(n.selection,t);return!i.eq(n.selection)&&(r(h(n,i)),!0)}function d(e,t){return i.jT.cursor(t?e.to:e.from)}function p(e,t){return f(e,(function(n){return n.empty?e.moveByChar(n,t):d(n,t)}))}var m=function(e){return p(e,e.textDirection!=a.Nm.LTR)},v=function(e){return p(e,e.textDirection==a.Nm.LTR)};function g(e,t){return f(e,(function(n){return n.empty?e.moveByGroup(n,t):d(n,t)}))}function y(e,t,n){if(t.type.prop(n))return!0;var r=t.to-t.from;return r&&(r>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function k(e,t,n){for(var r=(0,l.qz)(e).resolveInner(t.head),o=n?c.md.closedBy:c.md.openedBy,a=t.head;;){var u=n?r.childAfter(a):r.childBefore(a);if(!u)break;y(e,u,o)?r=u:a=n?u.to:u.from}var h,f;return f=r.type.prop(o)&&(h=n?(0,s.U)(e,r.from,1):(0,s.U)(e,r.to,-1))&&h.matched?n?h.end.to:h.end.from:n?r.to:r.from,i.jT.cursor(f,n?-1:1)}function b(e,t){return f(e,(function(n){if(!n.empty)return d(n,t);var r=e.moveVertically(n,t);return r.head!=n.head?r:e.moveToLineBoundary(n,t)}))}var w=function(e){return b(e,!1)},x=function(e){return b(e,!0)};function S(e,t){var n=e.state,r=u(n.selection,(function(n){return n.empty?e.moveVertically(n,t,e.dom.clientHeight):d(n,t)}));if(r.eq(n.selection))return!1;var i=e.coordsAtPos(n.selection.main.head),o=e.scrollDOM.getBoundingClientRect();return e.dispatch(h(n,r),{effects:i&&i.top>o.top&&i.bottom0&&(0,s.U)(e,t.head-1,1)||t.headn&&(o="delete.forward"),n=Math.min(n,a),r=Math.max(r,a)}return n==r?{range:e}:{changes:{from:n,to:r},range:i.jT.cursor(n)}}));return!a.changes.empty&&(r(n.update(a,{scrollIntoView:!0,userEvent:o})),!0)}function U(e,t,n){if(e instanceof a.tk){var i,o=(0,r.Z)(e.pluginField(a.BF.atomicRanges));try{for(o.s();!(i=o.n()).done;){i.value.between(t,t,(function(e,r){et&&(t=n?r:e)}))}}catch(s){o.e(s)}finally{o.f()}}return t}var Q=function(e,t){return H(e,(function(n){var r,i,a=e.state,s=a.doc.lineAt(n);if(!t&&n>s.from&&n=s.number){var c=n[n.length-1];c.to=l.to,c.ranges.push(a)}else n.push({from:s.from,to:l.to,ranges:[a]});i=l.number+1}}catch(u){o.e(u)}finally{o.f()}return n}function ne(e,t,n){if(e.readOnly)return!1;var o,a=[],s=[],l=(0,r.Z)(te(e));try{for(l.s();!(o=l.n()).done;){var c=o.value;if(n?c.to!=e.doc.length:0!=c.from){var u=e.doc.lineAt(n?c.to+1:c.from-1),h=u.length+1;if(n){a.push({from:c.to,to:u.to},{from:c.from,insert:u.text+e.lineBreak});var f,d=(0,r.Z)(c.ranges);try{for(d.s();!(f=d.n()).done;){var p=f.value;s.push(i.jT.range(Math.min(e.doc.length,p.anchor+h),Math.min(e.doc.length,p.head+h)))}}catch(y){d.e(y)}finally{d.f()}}else{a.push({from:u.from,to:c.from},{from:c.to,insert:e.lineBreak+u.text});var m,v=(0,r.Z)(c.ranges);try{for(v.s();!(m=v.n()).done;){var g=m.value;s.push(i.jT.range(g.anchor-h,g.head-h))}}catch(y){v.e(y)}finally{v.f()}}}}}catch(y){l.e(y)}finally{l.f()}return!!a.length&&(t(e.update({changes:a,scrollIntoView:!0,selection:i.jT.create(s,e.selection.mainIndex),userEvent:"move.line"})),!0)}function re(e,t,n){if(e.readOnly)return!1;var i,o=[],a=(0,r.Z)(te(e));try{for(a.s();!(i=a.n()).done;){var s=i.value;n?o.push({from:s.from,insert:e.doc.slice(s.from,s.to)+e.lineBreak}):o.push({from:s.to,insert:e.lineBreak+e.doc.slice(s.from,s.to)})}}catch(l){a.e(l)}finally{a.f()}return t(e.update({changes:o,scrollIntoView:!0,userEvent:"input.copyline"})),!0}var ie=oe(!1);function oe(e){return function(t){var n=t.state,r=t.dispatch;if(n.readOnly)return!1;var a=n.changeByRange((function(t){var r=t.from,a=t.to,s=n.doc.lineAt(r),u=!e&&r==a&&function(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};var n,r=(0,l.qz)(e).resolveInner(t),i=r.childBefore(t),o=r.childAfter(t);return i&&o&&i.to<=t&&o.from>=t&&(n=i.type.prop(c.md.closedBy))&&n.indexOf(o.name)>-1&&e.doc.lineAt(i.to).from==e.doc.lineAt(o.from).from?{from:i.to,to:o.from}:null}(n,r);e&&(r=a=(a<=s.to?s:n.doc.lineAt(a)).to);var h=new l.Gn(n,{simulateBreak:r,simulateDoubleBreak:!!u}),f=(0,l.K0)(h,r);for(null==f&&(f=/^\s*/.exec(n.doc.lineAt(r).text)[0].length);as.from&&rn&&(r.empty||r.to>s.from)&&(t(s,o,r),n=s.number),a=s.to+1}var l=e.changes(o);return{changes:o,range:i.jT.range(l.mapPos(r.anchor,1),l.mapPos(r.head,1))}}))}var se=function(e){var t=e.state,n=e.dispatch;return!t.readOnly&&(n(t.update(ae(t,(function(e,n){n.push({from:e.from,insert:t.facet(l.c)})})),{userEvent:"input.indent"})),!0)},le=function(e){var t=e.state,n=e.dispatch;return!t.readOnly&&(n(t.update(ae(t,(function(e,n){var r=/^\s*/.exec(e.text)[0];if(r){for(var i=(0,o.IS)(r,t.tabSize),a=0,s=(0,l.SS)(t,Math.max(0,i-(0,l.y1)(t)));a1?o=i.jT.create([r.main]):r.main.empty||(o=i.jT.create([i.jT.cursor(r.main.head)])),!!o&&(n(h(t,o)),!0)}},{key:"Mod-Enter",run:oe(!0)},{key:"Alt-l",mac:"Ctrl-l",run:function(e){var t=e.state,n=e.dispatch,r=te(t).map((function(e){var n=e.from,r=e.to;return i.jT.range(n,Math.min(r+1,t.doc.length))}));return n(t.update({selection:i.jT.create(r),userEvent:"select"})),!0}},{key:"Mod-i",run:function(e){var t=e.state,n=e.dispatch,r=u(t.selection,(function(e){for(var n,r=(0,l.qz)(t).resolveInner(e.head,1);!(r.from=e.to||r.to>e.to&&r.from<=e.from)&&(null===(n=r.parent)||void 0===n?void 0:n.parent);)r=r.parent;return i.jT.range(r.to,r.from)}));return n(h(t,r)),!0},preventDefault:!0},{key:"Mod-[",run:le},{key:"Mod-]",run:se},{key:"Mod-Alt-\\",run:function(e){var t=e.state,n=e.dispatch;if(t.readOnly)return!1;var r=Object.create(null),i=new l.Gn(t,{overrideIndentation:function(e){var t=r[e];return null==t?-1:t}}),o=ae(t,(function(e,n,o){var a=(0,l.K0)(i,e.from);if(null!=a){/\S/.test(e.text)||(a=0);var s=/^\s*/.exec(e.text)[0],c=(0,l.SS)(t,a);(s!=c||o.from0?n--:rn?n:Math.max(0,t-1),!1)}))}},{mac:"Mod-Delete",run:ee}].concat([{key:"Ctrl-b",run:m,shift:D,preventDefault:!0},{key:"Ctrl-f",run:v,shift:P},{key:"Ctrl-p",run:w,shift:z},{key:"Ctrl-n",run:x,shift:N},{key:"Ctrl-a",run:function(e){return f(e,(function(t){return i.jT.cursor(e.lineBlockAt(t.head).from,1)}))},shift:function(e){return E(e,(function(t){return i.jT.cursor(e.lineBlockAt(t.head).from)}))}},{key:"Ctrl-e",run:function(e){return f(e,(function(t){return i.jT.cursor(e.lineBlockAt(t.head).to,-1)}))},shift:function(e){return E(e,(function(t){return i.jT.cursor(e.lineBlockAt(t.head).to)}))}},{key:"Ctrl-d",run:K},{key:"Ctrl-h",run:G},{key:"Ctrl-k",run:ee},{key:"Ctrl-Alt-h",run:Y},{key:"Ctrl-o",run:function(e){var t=e.state,n=e.dispatch;if(t.readOnly)return!1;var r=t.changeByRange((function(e){return{changes:{from:e.from,to:e.to,insert:o.xv.of(["",""])},range:i.jT.cursor(e.from)}}));return n(t.update(r,{scrollIntoView:!0,userEvent:"input"})),!0}},{key:"Ctrl-t",run:function(e){var t=e.state,n=e.dispatch;if(t.readOnly)return!1;var r=t.changeByRange((function(e){if(!e.empty||0==e.from||e.from==t.doc.length)return{range:e};var n=e.from,r=t.doc.lineAt(n),a=n==r.from?n-1:(0,o.cp)(r.text,n-r.from,!1)+r.from,s=n==r.to?n+1:(0,o.cp)(r.text,n-r.from,!0)+r.from;return{changes:{from:a,to:s,insert:t.doc.slice(n,s).append(t.doc.slice(a,n))},range:i.jT.cursor(s)}}));return!r.changes.empty&&(n(t.update(r,{scrollIntoView:!0,userEvent:"move.character"})),!0)}},{key:"Ctrl-v",run:C}].map((function(e){return{mac:e.key,run:e.run,shift:e.shift}})))),ue={key:"Tab",run:se,shift:le}},7536:function(e,t,n){n.d(t,{Gv:function(){return g},Qf:function(){return S},R_:function(){return W},pJ:function(){return j}});var r=n(7762),i=n(5671),o=n(3144),a=n(299),s=n(8885),l=n(2077),c=n(1383),u=n(659),h=n(528),f=0,d=function(){function e(t,n,r){(0,i.Z)(this,e),this.set=t,this.base=n,this.modified=r,this.id=f++}return(0,o.Z)(e,null,[{key:"define",value:function(t){if(null===t||void 0===t?void 0:t.base)throw new Error("Can not derive from a modified tag");var n=new e([],null,[]);if(n.set.push(n),t){var i,o=(0,r.Z)(t.set);try{for(o.s();!(i=o.n()).done;){var a=i.value;n.set.push(a)}}catch(s){o.e(s)}finally{o.f()}}return n}},{key:"defineModifier",value:function(){var e=new m;return function(t){return t.modified.indexOf(e)>-1?t:m.get(t.base||t,t.modified.concat(e).sort((function(e,t){return e.id-t.id})))}}}]),e}(),p=0,m=function(){function e(){(0,i.Z)(this,e),this.instances=[],this.id=p++}return(0,o.Z)(e,null,[{key:"get",value:function(t,n){if(!n.length)return t;var i=n[0].instances.find((function(e){return e.base==t&&(r=n,i=e.modified,r.length==i.length&&r.every((function(e,t){return e==i[t]})));var r,i}));if(i)return i;var o,a=[],s=new d(a,t,n),l=(0,r.Z)(n);try{for(l.s();!(o=l.n()).done;){o.value.instances.push(s)}}catch(y){l.e(y)}finally{l.f()}var c,u=v(n),h=(0,r.Z)(t.set);try{for(h.s();!(c=h.n()).done;){var f,p=c.value,m=(0,r.Z)(u);try{for(m.s();!(f=m.n()).done;){var g=f.value;a.push(e.get(p,g))}}catch(y){m.e(y)}finally{m.f()}}}catch(y){h.e(y)}finally{h.f()}return s}}]),e}();function v(e){for(var t=[e],n=0;n0&&h+3==s.length){c=1;break}var f=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(u);if(!f)throw new RangeError("Invalid path: "+s);if(l.push("*"==f[0]?null:'"'==f[0][0]?JSON.parse(f[0]):f[0]),(h+=f[0].length)==s.length)break;var d=s[h++];if(h==s.length&&"!"==d){c=0;break}if("/"!=d)throw new RangeError("Invalid path: "+s);u=s.slice(h)}var p=l.length-1,m=l[p];if(!m)throw new RangeError("Invalid path: "+s);var v=new x(i,c,p>0?l.slice(0,p):null);t[m]=v.sort(t[m])}}}catch(g){a.e(g)}finally{a.f()}}return y.add(t)}var y=new a.md,k=c.r$.define({combine:function(e){return e.length?S.combinedMatch(e):null}}),b=c.r$.define({combine:function(e){return e.length?e[0].match:null}});function w(e){return e.facet(k)||e.facet(b)}var x=function(){function e(t,n,r,o){(0,i.Z)(this,e),this.tags=t,this.mode=n,this.context=r,this.next=o}return(0,o.Z)(e,[{key:"sort",value:function(e){return!e||e.depththis.at&&(this.at=e),this.class=t)}},{key:"flush",value:function(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}},{key:"highlightRange",value:function(e,t,n,i,o,s){var l=e.type,c=e.from,u=e.to;if(!(c>=n||u<=t)){A[o]=l.name,l.isTop&&(s=l);for(var h=i,f=l.prop(y),d=!1;f;){if(!f.context||Z(f.context,A,o)){var p,m=(0,r.Z)(f.tags);try{for(m.s();!(p=m.n()).done;){var v=p.value,g=this.style(v,s);g&&(h&&(h+=" "),h+=g,1==f.mode?i+=(i?" ":"")+g:0==f.mode&&(d=!0))}}catch(E){m.e(E)}finally{m.f()}break}f=f.next}if(this.startSpan(e.from,h),!d){var k=e.tree&&e.tree.prop(a.md.mounted);if(k&&k.overlay){for(var b=e.node.enter(k.overlay[0].from+c,1),w=e.firstChild(),x=0,S=c;;x++){var _=x=C)&&e.nextSibling()););if(!_||C>n)break;(S=_.to+c)>t&&(this.highlightRange(b.cursor,Math.max(t,_.from+c),Math.min(n,S),i,o,k.tree.type),this.startSpan(S,h))}w&&e.parent()}else if(e.firstChild()){do{if(!(e.to<=t)){if(e.from>=n)break;this.highlightRange(e,t,n,i,o+1,s),this.startSpan(Math.min(n,e.to),h)}}while(e.nextSibling());e.parent()}}}}}]),e}();function T(e,t,n,r,i){var o=new O(t,r,i);o.highlightRange(e.cursor(),t,n,"",0,e.type),o.flush(n)}function Z(e,t,n){if(e.length>n-1)return!1;for(var r=n-1,i=e.length-1;i>=0;i--,r--){var o=e[i];if(o&&o!=t[r])return!1}return!0}var E=d.define,M=E(),D=E(),P=E(D),I=E(D),R=E(),z=E(R),N=E(R),L=E(),J=E(L),B=E(),q=E(),$=E(),F=E($),V=E(),j={comment:M,lineComment:E(M),blockComment:E(M),docComment:E(M),name:D,variableName:E(D),typeName:P,tagName:E(P),propertyName:I,attributeName:E(I),className:E(D),labelName:E(D),namespace:E(D),macroName:E(D),literal:R,string:z,docString:E(z),character:E(z),attributeValue:E(z),number:N,integer:E(N),float:E(N),bool:E(R),regexp:E(R),escape:E(R),color:E(R),url:E(R),keyword:B,self:E(B),null:E(B),atom:E(B),unit:E(B),modifier:E(B),operatorKeyword:E(B),controlKeyword:E(B),definitionKeyword:E(B),moduleKeyword:E(B),operator:q,derefOperator:E(q),arithmeticOperator:E(q),logicOperator:E(q),bitwiseOperator:E(q),compareOperator:E(q),updateOperator:E(q),definitionOperator:E(q),typeOperator:E(q),controlOperator:E(q),punctuation:$,separator:E($),bracket:F,angleBracket:E(F),squareBracket:E(F),paren:E(F),brace:E(F),content:L,heading:J,heading1:E(J),heading2:E(J),heading3:E(J),heading4:E(J),heading5:E(J),heading6:E(J),contentSeparator:E(L),list:E(L),quote:E(L),emphasis:E(L),strong:E(L),link:E(L),monospace:E(L),strikethrough:E(L),inserted:E(),deleted:E(),changed:E(),invalid:E(),meta:V,documentMeta:E(V),annotation:E(V),processingInstruction:E(V),definition:d.defineModifier(),constant:d.defineModifier(),function:d.defineModifier(),standard:d.defineModifier(),local:d.defineModifier(),special:d.defineModifier()},W=S.define([{tag:j.link,textDecoration:"underline"},{tag:j.heading,textDecoration:"underline",fontWeight:"bold"},{tag:j.emphasis,fontStyle:"italic"},{tag:j.strong,fontWeight:"bold"},{tag:j.strikethrough,textDecoration:"line-through"},{tag:j.keyword,color:"#708"},{tag:[j.atom,j.bool,j.url,j.contentSeparator,j.labelName],color:"#219"},{tag:[j.literal,j.inserted],color:"#164"},{tag:[j.string,j.deleted],color:"#a11"},{tag:[j.regexp,j.escape,j.special(j.string)],color:"#e40"},{tag:j.definition(j.variableName),color:"#00f"},{tag:j.local(j.variableName),color:"#30a"},{tag:[j.typeName,j.namespace],color:"#085"},{tag:j.className,color:"#167"},{tag:[j.special(j.variableName),j.macroName],color:"#256"},{tag:j.definition(j.propertyName),color:"#00c"},{tag:j.comment,color:"#940"},{tag:j.meta,color:"#7a757a"},{tag:j.invalid,color:"#f00"}]);j.link,j.heading,j.emphasis,j.strong,j.keyword,j.atom,j.bool,j.url,j.labelName,j.inserted,j.deleted,j.literal,j.string,j.number,j.regexp,j.escape,j.string,j.variableName,j.variableName,j.variableName,j.variableName,j.propertyName,j.typeName,j.namespace,j.className,j.macroName,j.propertyName,j.operator,j.comment,j.meta,j.invalid,j.punctuation},5823:function(e,t,n){n.d(t,{N:function(){return s}});var r=n(5117),i=n(659),o=n(7536),a=i.qp.define({parser:r.E.configure({props:[i.uj.add({IfStatement:(0,i.tC)({except:/^\s*({|else\b)/}),TryStatement:(0,i.tC)({except:/^\s*({|catch)\b/}),LabeledStatement:i.ze,CaseStatement:function(e){return e.baseIndent+e.unit},BlockComment:function(){return-1},Statement:(0,i.tC)({except:/^{/})}),i.x0.add({"DeclarationList CompoundStatement EnumeratorList FieldDeclarationList InitializerList":i.Dv,BlockComment:function(e){return{from:e.from+2,to:e.to-2}}}),(0,o.Gv)({"typedef struct union enum class typename decltype auto template operator friend noexcept namespace using __attribute__ __declspec __based":o.pJ.definitionKeyword,"extern MsCallModifier MsPointerModifier extern static register inline const volatile restrict _Atomic mutable constexpr virtual explicit VirtualSpecifier Access":o.pJ.modifier,"if else switch for while do case default return break continue goto throw try catch":o.pJ.controlKeyword,"new sizeof delete static_assert":o.pJ.operatorKeyword,"NULL nullptr":o.pJ.null,this:o.pJ.self,"True False":o.pJ.bool,"TypeSize PrimitiveType":o.pJ.standard(o.pJ.typeName),TypeIdentifier:o.pJ.typeName,FieldIdentifier:o.pJ.propertyName,"CallExpression/FieldExpression/FieldIdentifier":o.pJ.function(o.pJ.propertyName),StatementIdentifier:o.pJ.labelName,Identifier:o.pJ.variableName,"CallExpression/Identifier":o.pJ.function(o.pJ.variableName),"CallExpression/ScopedIdentifier/Identifier":o.pJ.function(o.pJ.variableName),DestructorName:o.pJ.name,NamespaceIdentifier:o.pJ.namespace,OperatorName:o.pJ.operator,ArithOp:o.pJ.arithmeticOperator,LogicOp:o.pJ.logicOperator,BitOp:o.pJ.bitwiseOperator,CompareOp:o.pJ.compareOperator,AssignOp:o.pJ.definitionOperator,UpdateOp:o.pJ.updateOperator,LineComment:o.pJ.lineComment,BlockComment:o.pJ.blockComment,Number:o.pJ.number,String:o.pJ.string,"RawString SystemLibString":o.pJ.special(o.pJ.string),CharLiteral:o.pJ.character,EscapeSequence:o.pJ.escape,PreProcArg:o.pJ.meta,"PreprocDirectiveName #include #ifdef #ifndef #if #define #else #endif #elif":o.pJ.processingInstruction,MacroName:o.pJ.special(o.pJ.name),"( )":o.pJ.paren,"[ ]":o.pJ.squareBracket,"{ }":o.pJ.brace,"< >":o.pJ.angleBracket,". ->":o.pJ.derefOperator,", ;":o.pJ.separator})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\})$/}});function s(){return new i.ri(a)}},409:function(e,t,n){n.d(t,{iv:function(){return p},t$:function(){return f}});var r=n(818),i=n(659),o=n(7536),a=null;function s(){if(!a&&"object"==typeof document&&document.body){var e=[];for(var t in document.body.style)/[A-Z]|^-|^(item|length)$/.test(t)||e.push(t);a=e.sort().map((function(e){return{type:"property",label:e}}))}return a||[]}var l=["active","after","before","checked","default","disabled","empty","enabled","first-child","first-letter","first-line","first-of-type","focus","hover","in-range","indeterminate","invalid","lang","last-child","last-of-type","link","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-of-type","only-child","optional","out-of-range","placeholder","read-only","read-write","required","root","selection","target","valid","visited"].map((function(e){return{type:"class",label:e}})),c=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map((function(e){return{type:"keyword",label:e}})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map((function(e){return{type:"constant",label:e}}))),u=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map((function(e){return{type:"type",label:e}})),h=/^[\w-]*/,f=i.qp.define({parser:r.E.configure({props:[i.uj.add({Declaration:(0,i.tC)()}),i.x0.add({Block:i.Dv}),(0,o.Gv)({"import charset namespace keyframes":o.pJ.definitionKeyword,"media supports":o.pJ.controlKeyword,"from to selector":o.pJ.keyword,NamespaceName:o.pJ.namespace,KeyframeName:o.pJ.labelName,TagName:o.pJ.tagName,ClassName:o.pJ.className,PseudoClassName:o.pJ.constant(o.pJ.className),IdName:o.pJ.labelName,"FeatureName PropertyName":o.pJ.propertyName,AttributeName:o.pJ.attributeName,NumberLiteral:o.pJ.number,KeywordQuery:o.pJ.keyword,UnaryQueryOp:o.pJ.operatorKeyword,"CallTag ValueName":o.pJ.atom,VariableName:o.pJ.variableName,Callee:o.pJ.operatorKeyword,Unit:o.pJ.unit,"UniversalSelector NestingSelector":o.pJ.definitionOperator,AtKeyword:o.pJ.keyword,MatchOp:o.pJ.compareOperator,"ChildOp SiblingOp, LogicOp":o.pJ.logicOperator,BinOp:o.pJ.arithmeticOperator,Important:o.pJ.modifier,Comment:o.pJ.blockComment,ParenthesizedContent:o.pJ.special(o.pJ.name),ColorLiteral:o.pJ.color,StringLiteral:o.pJ.string,":":o.pJ.punctuation,"PseudoOp #":o.pJ.derefOperator,"; ,":o.pJ.separator,"( )":o.pJ.paren,"[ ]":o.pJ.squareBracket,"{ }":o.pJ.brace})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}}),d=f.data.of({autocomplete:function(e){var t=e.state,n=e.pos,r=(0,i.qz)(t).resolveInner(n,-1);if("PropertyName"==r.name)return{from:r.from,options:s(),span:h};if("ValueName"==r.name)return{from:r.from,options:c,span:h};if("PseudoClassName"==r.name)return{from:r.from,options:l,span:h};if("TagName"==r.name){for(var o=r.parent;o;o=o.parent)if("Block"==o.name)return{from:r.from,options:s(),span:h};return{from:r.from,options:u,span:h}}if(!e.explicit)return null;var a=r.resolve(n),f=a.childBefore(n);return f&&":"==f.name&&"PseudoClassSelector"==a.name?{from:n,options:l,span:h}:f&&":"==f.name&&"Declaration"==a.name||"ArgList"==a.name?{from:n,options:c,span:h}:"Block"==a.name?{from:n,options:s(),span:h}:null}});function p(){return new i.ri(f,d)}},6577:function(e,t,n){n.d(t,{dy:function(){return E}});var r=n(7762),i=n(6037),o=n(409),a=n(7642),s=n(2077),l=n(1383),c=n(659),u=n(7536),h=["_blank","_self","_top","_parent"],f=["ascii","utf-8","utf-16","latin1","latin1"],d=["get","post","put","delete"],p=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],m=["true","false"],v={},g={a:{attrs:{href:null,ping:null,type:null,media:null,target:h,hreflang:null}},abbr:v,acronym:v,address:v,applet:v,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:v,aside:v,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:v,base:{attrs:{href:null,target:h}},basefont:v,bdi:v,bdo:v,big:v,blockquote:{attrs:{cite:null}},body:v,br:v,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:p,formmethod:d,formnovalidate:["novalidate"],formtarget:h,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:v,center:v,cite:v,code:v,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:v,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:v,dir:v,div:v,dl:v,dt:v,em:v,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:v,figure:v,font:v,footer:v,form:{attrs:{action:null,name:null,"accept-charset":f,autocomplete:["on","off"],enctype:p,method:d,novalidate:["novalidate"],target:h}},frame:v,frameset:v,h1:v,h2:v,h3:v,h4:v,h5:v,h6:v,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:v,hgroup:v,hr:v,html:{attrs:{manifest:null}},i:v,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:p,formmethod:d,formnovalidate:["novalidate"],formtarget:h,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:v,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:v,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:v,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:f,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:v,noframes:v,noscript:v,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:v,param:{attrs:{name:null,value:null}},pre:v,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:v,rt:v,ruby:v,s:v,samp:v,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:f}},section:v,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},small:v,source:{attrs:{src:null,type:null,media:null}},span:v,strike:v,strong:v,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:v,summary:v,sup:v,table:v,tbody:v,td:{attrs:{colspan:null,rowspan:null,headers:null}},textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:v,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:v,time:{attrs:{datetime:null}},title:v,tr:v,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},tt:v,u:v,ul:{children:["li","script","template","ul","ol"]},var:v,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:v},y={accesskey:null,class:null,contenteditable:m,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:m,autocorrect:m,autocapitalize:m,style:null,tabindex:null,title:null,translate:["yes","no"],onclick:null,rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":m,"aria-autocomplete":["inline","list","both","none"],"aria-busy":m,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":m,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":m,"aria-hidden":m,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":m,"aria-multiselectable":m,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":m,"aria-relevant":null,"aria-required":m,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},k=Object.keys(g),b=Object.keys(y);function w(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length;if(!t)return"";var r=t.firstChild,i=r&&r.getChild("TagName");return i?e.sliceString(i.from,Math.min(i.to,n)):""}function x(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e.parent;n;n=n.parent)if("Element"==n.name){if(!t)return n;t=!1}return null}function S(e,t){var n=g[w(e,x(t,!0))];return(null===n||void 0===n?void 0:n.children)||k}function _(e,t){for(var n=[],r=t;r=x(r);){var i=w(e,r);if(i&&"CloseTag"==r.lastChild.name)break;i&&n.indexOf(i)<0&&("EndTag"==t.name||t.from>=r.firstChild.to)&&n.push(i)}return n}var C=/^[:\-\.\w\u00b7-\uffff]+$/;function A(e,t,n,r){var i=/\s*>/.test(e.sliceDoc(r,r+5))?"":">";return{from:n,to:r,options:S(e.doc,t).map((function(e){return{label:e,type:"type"}})).concat(_(e.doc,t).map((function(e,t){return{label:"/"+e,apply:"/"+e+i,type:"type",boost:99-t}}))),span:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function O(e,t,n,r){var i=/\s*>/.test(e.sliceDoc(r,r+5))?"":">";return{from:n,to:r,options:_(e.doc,t).map((function(e,t){return{label:e,apply:e+i,type:"type",boost:99-t}})),span:C}}var T=c.qp.define({parser:i.E.configure({props:[c.uj.add({Element:function(e){var t=/^(\s*)(<\/)?/.exec(e.textAfter);return e.node.to<=e.pos+t[0].length?e.continue():e.lineIndent(e.node.from)+(t[2]?0:e.unit)},"OpenTag CloseTag SelfClosingTag":function(e){return e.column(e.node.from)+e.unit},Document:function(e){if(e.pos+/\s*/.exec(e.textAfter)[0].length='"]*$/;var v,k=(0,r.Z)(u);try{for(k.s();!(v=k.n()).done;){var b=v.value;s.push({label:b,apply:p+b+m,type:"constant"})}}catch(S){k.e(S)}finally{k.f()}}}return{from:n,to:i,options:s,span:l}}(n,a,"Is"==a.name?i:a.from,i):!e.explicit||"Element"!=o.name&&"Text"!=o.name&&"Document"!=o.name?null:function(e,t,n){var i,o=[],a=0,s=(0,r.Z)(S(e.doc,t));try{for(s.s();!(i=s.n()).done;){var l=i.value;o.push({label:"<"+l,type:"type"})}}catch(f){s.e(f)}finally{s.f()}var c,u=(0,r.Z)(_(e.doc,t));try{for(u.s();!(c=u.n()).done;){var h=c.value;o.push({label:"",type:"type",boost:99-a++})}}catch(f){u.e(f)}finally{u.f()}return{from:n,to:n,options:o,span:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}(n,a,i)}});function E(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=T;return!1===e.matchClosingTags&&(t=t.configure({dialect:"noMatch"})),new c.ri(t,[Z,!1!==e.autoCloseTags?M:[],(0,a.eJ)().support,(0,o.iv)().support])}var M=s.tk.inputHandler.of((function(e,t,n,r){if(e.composing||e.state.readOnly||t!=n||">"!=r&&"/"!=r||!T.isActiveAt(e.state,t,-1))return!1;var i=e.state,o=i.changeByRange((function(e){var t,n,o,a,s=e.head,u=(0,c.qz)(i).resolveInner(s,-1);if("TagName"!=u.name&&"StartTag"!=u.name||(u=u.parent),">"==r&&"OpenTag"==u.name){if("CloseTag"!=(null===(n=null===(t=u.parent)||void 0===t?void 0:t.lastChild)||void 0===n?void 0:n.name)&&(a=w(i.doc,u.parent,s)))return{range:l.jT.cursor(s+1),changes:{from:s,insert:">")}}}else if("/"==r&&"OpenTag"==u.name){var h=u.parent,f=null===h||void 0===h?void 0:h.parent;if(h.from==s-1&&"CloseTag"!=(null===(o=f.lastChild)||void 0===o?void 0:o.name)&&(a=w(i.doc,f,s))){var d="/".concat(a,">");return{range:l.jT.cursor(s+d.length),changes:{from:s,insert:d}}}}return{range:e}}));return!o.changes.empty&&(e.dispatch(o,{userEvent:"input.type",scrollIntoView:!0}),!0)}))},8664:function(e,t,n){n.d(t,{C:function(){return u}});var r,i,o=n(4942),a=n(572),s=n(659),l=n(7536),c=s.qp.define({parser:a.E.configure({props:[s.uj.add({IfStatement:(0,s.tC)({except:/^\s*({|else\b)/}),TryStatement:(0,s.tC)({except:/^\s*({|catch|finally)\b/}),LabeledStatement:s.ze,SwitchBlock:function(e){var t=e.textAfter,n=/^\s*\}/.test(t),r=/^\s*(case|default)\b/.test(t);return e.baseIndent+(n?0:r?1:2)*e.unit},BlockComment:function(){return-1},Statement:(0,s.tC)({except:/^{/})}),s.x0.add((r={},(0,o.Z)(r,"Block SwitchBlock ClassBody ElementValueArrayInitializer ModuleBody EnumBody ConstructorBody InterfaceBody ArrayInitializer",s.Dv),(0,o.Z)(r,"BlockComment",(function(e){return{from:e.from+2,to:e.to-2}})),r)),(0,l.Gv)((i={null:l.pJ.null,instanceof:l.pJ.operatorKeyword,this:l.pJ.self,"new super assert open to with void":l.pJ.keyword,"class interface extends implements module package import enum":l.pJ.definitionKeyword,"switch while for if else case default do break continue return try catch finally throw":l.pJ.controlKeyword},(0,o.Z)(i,"requires exports opens uses provides public private protected static transitive abstract final strictfp synchronized native transient volatile throws",l.pJ.modifier),(0,o.Z)(i,"IntegerLiteral",l.pJ.integer),(0,o.Z)(i,"FloatLiteral",l.pJ.float),(0,o.Z)(i,"StringLiteral",l.pJ.string),(0,o.Z)(i,"CharacterLiteral",l.pJ.character),(0,o.Z)(i,"LineComment",l.pJ.lineComment),(0,o.Z)(i,"BlockComment",l.pJ.blockComment),(0,o.Z)(i,"BooleanLiteral",l.pJ.bool),(0,o.Z)(i,"PrimitiveType",l.pJ.standard(l.pJ.typeName)),(0,o.Z)(i,"TypeName",l.pJ.typeName),(0,o.Z)(i,"Identifier",l.pJ.variableName),(0,o.Z)(i,"MethodName/Identifier",l.pJ.function(l.pJ.variableName)),(0,o.Z)(i,"Definition",l.pJ.definition(l.pJ.variableName)),(0,o.Z)(i,"ArithOp",l.pJ.arithmeticOperator),(0,o.Z)(i,"LogicOp",l.pJ.logicOperator),(0,o.Z)(i,"BitOp",l.pJ.bitwiseOperator),(0,o.Z)(i,"CompareOp",l.pJ.compareOperator),(0,o.Z)(i,"AssignOp",l.pJ.definitionOperator),(0,o.Z)(i,"UpdateOp",l.pJ.updateOperator),(0,o.Z)(i,"Asterisk",l.pJ.punctuation),(0,o.Z)(i,"Label",l.pJ.labelName),(0,o.Z)(i,"( )",l.pJ.paren),(0,o.Z)(i,"[ ]",l.pJ.squareBracket),(0,o.Z)(i,"{ }",l.pJ.brace),(0,o.Z)(i,".",l.pJ.derefOperator),(0,o.Z)(i,", ;",l.pJ.separator),i))]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\})$/}});function u(){return new s.ri(c)}},7642:function(e,t,n){n.d(t,{Lz:function(){return l},eJ:function(){return f}});var r=n(5353),i=n(659),o=n(7536),a=n(4941),s=[(0,a.Gn)("function ${name}(${params}) {\n\t${}\n}",{label:"function",detail:"definition",type:"keyword"}),(0,a.Gn)("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n\t${}\n}",{label:"for",detail:"loop",type:"keyword"}),(0,a.Gn)("for (let ${name} of ${collection}) {\n\t${}\n}",{label:"for",detail:"of loop",type:"keyword"}),(0,a.Gn)("try {\n\t${}\n} catch (${error}) {\n\t${}\n}",{label:"try",detail:"block",type:"keyword"}),(0,a.Gn)("class ${name} {\n\tconstructor(${params}) {\n\t\t${}\n\t}\n}",{label:"class",detail:"definition",type:"keyword"}),(0,a.Gn)('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),(0,a.Gn)('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],l=i.qp.define({parser:r.E.configure({props:[i.uj.add({IfStatement:(0,i.tC)({except:/^\s*({|else\b)/}),TryStatement:(0,i.tC)({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:i.ze,SwitchBody:function(e){var t=e.textAfter,n=/^\s*\}/.test(t),r=/^\s*(case|default)\b/.test(t);return e.baseIndent+(n?0:r?1:2)*e.unit},Block:(0,i.vw)({closing:"}"}),ArrowFunction:function(e){return e.baseIndent+e.unit},"TemplateString BlockComment":function(){return-1},"Statement Property":(0,i.tC)({except:/^{/}),JSXElement:function(e){var t=/^\s*<\//.test(e.textAfter);return e.lineIndent(e.node.from)+(t?0:e.unit)},JSXEscape:function(e){var t=/\s*\}/.test(e.textAfter);return e.lineIndent(e.node.from)+(t?0:e.unit)},"JSXOpenTag JSXSelfClosingTag":function(e){return e.column(e.node.from)+e.unit}}),i.x0.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression":i.Dv,BlockComment:function(e){return{from:e.from+2,to:e.to-2}}}),(0,o.Gv)({"get set async static":o.pJ.modifier,"for while do if else switch try catch finally return throw break continue default case":o.pJ.controlKeyword,"in of await yield void typeof delete instanceof":o.pJ.operatorKeyword,"let var const function class extends":o.pJ.definitionKeyword,"import export from":o.pJ.moduleKeyword,"with debugger as new":o.pJ.keyword,TemplateString:o.pJ.special(o.pJ.string),Super:o.pJ.atom,BooleanLiteral:o.pJ.bool,this:o.pJ.self,null:o.pJ.null,Star:o.pJ.modifier,VariableName:o.pJ.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":o.pJ.function(o.pJ.variableName),VariableDefinition:o.pJ.definition(o.pJ.variableName),Label:o.pJ.labelName,PropertyName:o.pJ.propertyName,PrivatePropertyName:o.pJ.special(o.pJ.propertyName),"CallExpression/MemberExpression/PropertyName":o.pJ.function(o.pJ.propertyName),"FunctionDeclaration/VariableDefinition":o.pJ.function(o.pJ.definition(o.pJ.variableName)),"ClassDeclaration/VariableDefinition":o.pJ.definition(o.pJ.className),PropertyDefinition:o.pJ.definition(o.pJ.propertyName),PrivatePropertyDefinition:o.pJ.definition(o.pJ.special(o.pJ.propertyName)),UpdateOp:o.pJ.updateOperator,LineComment:o.pJ.lineComment,BlockComment:o.pJ.blockComment,Number:o.pJ.number,String:o.pJ.string,ArithOp:o.pJ.arithmeticOperator,LogicOp:o.pJ.logicOperator,BitOp:o.pJ.bitwiseOperator,CompareOp:o.pJ.compareOperator,RegExp:o.pJ.regexp,Equals:o.pJ.definitionOperator,"Arrow : Spread":o.pJ.punctuation,"( )":o.pJ.paren,"[ ]":o.pJ.squareBracket,"{ }":o.pJ.brace,"InterpolationStart InterpolationEnd":o.pJ.special(o.pJ.brace),".":o.pJ.derefOperator,", ;":o.pJ.separator,TypeName:o.pJ.typeName,TypeDefinition:o.pJ.definition(o.pJ.typeName),"type enum interface implements namespace module declare":o.pJ.definitionKeyword,"abstract global Privacy readonly override":o.pJ.modifier,"is keyof unique infer":o.pJ.operatorKeyword,JSXAttributeValue:o.pJ.attributeValue,JSXText:o.pJ.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":o.pJ.angleBracket,"JSXIdentifier JSXNameSpacedName":o.pJ.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":o.pJ.attributeName})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),c=l.configure({dialect:"ts"}),u=l.configure({dialect:"jsx"}),h=l.configure({dialect:"jsx ts"});function f(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.jsx?e.typescript?h:u:e.typescript?c:l;return new i.ri(t,l.data.of({autocomplete:(0,a.eC)(["LineComment","BlockComment","String"],(0,a.Mb)(s))}))}},9189:function(e,t,n){n.d(t,{AV:function(){return s}});var r=n(6659),i=n(659),o=n(7536);var a=i.qp.define({parser:r.E.configure({props:[i.uj.add({Object:(0,i.tC)({except:/^\s*\}/}),Array:(0,i.tC)({except:/^\s*\]/})}),i.x0.add({"Object Array":i.Dv}),(0,o.Gv)({String:o.pJ.string,Number:o.pJ.number,"True False":o.pJ.bool,PropertyName:o.pJ.propertyName,Null:o.pJ.null,",":o.pJ.separator,"[ ]":o.pJ.squareBracket,"{ }":o.pJ.brace})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function s(){return new i.ri(a)}},1169:function(e,t,n){n.d(t,{h:function(){return s}});var r=n(7782),i=n(659),o=n(7536),a=i.qp.define({parser:r.E.configure({props:[i.x0.add({"Body TokensBody SkipBody PrecedenceBody":i.Dv}),(0,o.Gv)({LineComment:o.pJ.lineComment,BlockComment:o.pJ.blockComment,AnyChar:o.pJ.character,Literal:o.pJ.string,"tokens from grammar as empty prop extend specialize":o.pJ.keyword,"@top @left @right @cut @external":o.pJ.modifier,"@precedence @tokens @context @dialects @skip @detectDelim @conflict":o.pJ.definitionKeyword,"@extend @specialize":o.pJ.operatorKeyword,"CharSet InvertedCharSet":o.pJ.regexp,RuleName:o.pJ.variableName,"RuleDeclaration/RuleName InlineRule/RuleName TokensBody/RuleName":o.pJ.definition(o.pJ.variableName),PrecedenceName:o.pJ.labelName,Name:o.pJ.name,"( )":o.pJ.paren,"[ ]":o.pJ.squareBracket,"{ }":o.pJ.brace,'"!" ~ "*" + ? |':o.pJ.operator})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"},line:"//"},indentOnInput:/^\s*\}$/}});function s(){return new i.ri(a)}},8592:function(e,t,n){n.d(t,{JH:function(){return C}});var r=n(5671),i=n(3144),o=n(1383),a=n(2077),s=n(659),l=n(7452),c=n(6577),u=n(7536),h=(0,s.kU)({block:{open:"\x3c!--",close:"--\x3e"}}),f=l.E2.configure({props:[(0,u.Gv)({"Blockquote/...":u.pJ.quote,HorizontalRule:u.pJ.contentSeparator,"ATXHeading1/... SetextHeading1/...":u.pJ.heading1,"ATXHeading2/... SetextHeading2/...":u.pJ.heading2,"ATXHeading3/...":u.pJ.heading3,"ATXHeading4/...":u.pJ.heading4,"ATXHeading5/...":u.pJ.heading5,"ATXHeading6/...":u.pJ.heading6,"Comment CommentBlock":u.pJ.comment,Escape:u.pJ.escape,Entity:u.pJ.character,"Emphasis/...":u.pJ.emphasis,"StrongEmphasis/...":u.pJ.strong,"Link/... Image/...":u.pJ.link,"OrderedList/... BulletList/...":u.pJ.list,"BlockQuote/...":u.pJ.quote,"InlineCode CodeText":u.pJ.monospace,URL:u.pJ.url,"HeaderMark HardBreak QuoteMark ListMark LinkMark EmphasisMark CodeMark":u.pJ.processingInstruction,"CodeInfo LinkLabel":u.pJ.labelName,LinkTitle:u.pJ.string,Paragraph:u.pJ.content}),s.x0.add((function(e){if(e.is("Block")&&!e.is("Document"))return function(e,t){return{from:t.doc.lineAt(e.from).to,to:e.to}}})),s.uj.add({Document:function(){return null}}),s.mi.add({Document:h})]});function d(e){return new s.SQ(h,e,e.nodeSet.types.find((function(e){return"Document"==e.name})))}var p=d(f),m=d(f.configure([l.z7,l.ar,l.$2,l.dy,{props:[(0,u.Gv)({"TableDelimiter SubscriptMark SuperscriptMark StrikethroughMark":u.pJ.processingInstruction,"TableHeader/...":u.pJ.heading,"Strikethrough/...":u.pJ.strikethrough,TaskMarker:u.pJ.atom,Task:u.pJ.list,Emoji:u.pJ.character,"Subscript Superscript":u.pJ.special(u.pJ.content),TableCell:u.pJ.content})]}]));function v(e,t){return function(n){var r=n&&s.c6.matchLanguageName(e,n,!0);return r?r.support?r.support.language.parser:s.Be.getSkippingParser(r.load()):t?t.parser:null}}function g(e,t){return t.sliceString(e.from,e.from+50)}var y=function(){function e(t,n,i,o,a,s,l){(0,r.Z)(this,e),this.node=t,this.from=n,this.to=i,this.spaceBefore=o,this.spaceAfter=a,this.type=s,this.item=l}return(0,i.Z)(e,[{key:"blank",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.spaceBefore;if("Blockquote"==this.node.name)t+=">";else for(var n=this.to-this.from-t.length-this.spaceAfter.length;n>0;n--)t+=" ";return t+(e?this.spaceAfter:"")}},{key:"marker",value:function(e,t){var n="OrderedList"==this.node.name?String(+b(this.item,e)[2]+t):"";return this.spaceBefore+n+this.type+this.spaceAfter}}]),e}();function k(e,t,n){for(var r=[],i=e;i&&"Document"!=i.name;i=i.parent)"ListItem"!=i.name&&"Blockquote"!=i.name||r.push(i);for(var o=[],a=0,s=r.length-1;s>=0;s--){var l=r[s],c=void 0,u=a;if("Blockquote"==l.name&&(c=/^[ \t]*>( ?)/.exec(t.slice(a))))a+=c[0].length,o.push(new y(l,u,a,"",c[1],">",null));else if("ListItem"==l.name&&"OrderedList"==l.parent.name&&(c=/^([ \t]*)\d+([.)])([ \t]*)/.exec(g(l,n)))){var h=c[3],f=c[0].length;h.length>=4&&(h=h.slice(0,h.length-4),f-=4),a+=f,o.push(new y(l.parent,u,a,c[1],h,c[2],l))}else if("ListItem"==l.name&&"BulletList"==l.parent.name&&(c=/^([ \t]*)([-+*])([ \t]+)/.exec(g(l,n)))){var d=c[3],p=c[0].length;d.length>4&&(d=d.slice(0,d.length-4),p-=4),a+=p,o.push(new y(l.parent,u,a,c[1],d,c[2],l))}}return o}function b(e,t){return/^(\s*)(\d+)(?=[.)])/.exec(t.sliceString(e.from,e.from+10))}function w(e,t,n){for(var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=-1,o=e;;){if("ListItem"==o.name){var a=b(o,t),s=+a[2];if(i>=0){if(s!=i+1)return;n.push({from:o.from+a[1].length,to:o.from+a[0].length,insert:String(i+2+r)})}i=s}var l=o.nextSibling;if(!l)break;o=l}}function x(e){return"QuoteMark"==e.name||"ListMark"==e.name}var S=[{key:"Enter",run:function(e){var t=e.state,n=e.dispatch,r=(0,s.qz)(t),i=t.doc,a=null,l=t.changeByRange((function(e){if(!e.empty||!m.isActiveAt(t,e.from))return a={range:e};for(var n=e.from,s=i.lineAt(n),l=k(r.resolveInner(n,-1),s.text,i);l.length&&l[l.length-1].from>n-s.from;)l.pop();if(!l.length)return a={range:e};var c=l[l.length-1];if(c.to-c.spaceAfter.length>n-s.from)return a={range:e};var u=n>=c.to-c.spaceAfter.length&&!/\S/.test(s.text.slice(c.to));if(c.item&&u){if(c.node.firstChild.to>=n||s.from>0&&!/[^\s>]/.test(i.lineAt(s.from-1).text)){var h,f=l.length>1?l[l.length-2]:null,d="";f&&f.item?(h=s.from+f.from,d=f.marker(i,1)):h=s.from+(f?f.to:0);var p=[{from:h,to:n,insert:d}];return"OrderedList"==c.node.name&&w(c.item,i,p,-2),f&&"OrderedList"==f.node.name&&w(f.item,i,p),{range:o.jT.cursor(h+d.length),changes:p}}for(var v="",g=0,y=l.length-2;g<=y;g++)v+=l[g].blank(g\s*$/.exec(b.text);if(x&&x.index==c.from){var S=t.changes([{from:b.from+x.index,to:b.to},{from:s.from+c.from,to:s.to}]);return{range:e.map(S),changes:S}}}var _=[];"OrderedList"==c.node.name&&w(c.item,i,_);var C=t.lineBreak,A=c.item&&c.item.from]*/.exec(s.text)[0].length>=c.to)for(var O=0,T=l.length-1;O<=T;O++)C+=O!=T||A?l[O].blank():l[O].marker(i,1);for(var Z=n;Z>s.from&&/\s/.test(s.text.charAt(Z-s.from-1));)Z--;return _.push({from:Z,to:n,insert:C}),{range:o.jT.cursor(Z+C.length),changes:_}}));return!a&&(n(t.update(l,{scrollIntoView:!0,userEvent:"input"})),!0)}},{key:"Backspace",run:function(e){var t=e.state,n=e.dispatch,r=(0,s.qz)(t),i=null,a=t.changeByRange((function(e){var n=e.from,a=t.doc;if(e.empty&&m.isActiveAt(t,e.from)){var s=a.lineAt(n),l=k(function(e,t){var n,r=e.resolveInner(t,-1),i=t;for(x(r)&&(i=r.from,r=r.parent);n=r.childBefore(i);)if(x(n))i=n.from;else{if("OrderedList"!=n.name&&"BulletList"!=n.name)break;i=(r=n.lastChild).to}return r}(r,n),s.text,a);if(l.length){var c=l[l.length-1],u=c.to-c.spaceAfter.length+(c.spaceAfter?1:0);if(n-s.from>u&&!/\S/.test(s.text.slice(u,n-s.from)))return{range:o.jT.cursor(s.from+u),changes:{from:s.from+u,to:n}};if(n-s.from==u){var h=s.from+c.from;if(c.item&&c.node.from0&&void 0!==arguments[0]?arguments[0]:{},t=e.codeLanguages,n=e.defaultCodeLanguage,r=e.addKeymap,i=void 0===r||r,c=e.base,u=(c=void 0===c?p:c).parser;if(!(u instanceof l.xj))throw new RangeError("Base parser provided to `markdown` should be a Markdown parser");var h,f=e.extensions?[e.extensions]:[],m=[_.support];n instanceof s.ri?(m.push(n.support),h=n.language):n&&(h=n);var g=t||h?v(t||[],h):void 0;return f.push((0,l.zY)({codeParser:g,htmlParser:_.language.parser})),i&&m.push(o.Wl.high(a.$f.of(S))),new s.ri(d(u.configure(f)),m)}},9210:function(e,t,n){n.d(t,{h:function(){return c}});var r=n(4486),i=n(299),o=n(6577),a=n(659),s=n(7536),l=a.qp.define({parser:r.E.configure({props:[a.uj.add({IfStatement:(0,a.tC)({except:/^\s*({|else\b|elseif\b|endif\b)/}),TryStatement:(0,a.tC)({except:/^\s*({|catch\b|finally\b)/}),SwitchBody:function(e){var t=e.textAfter,n=/^\s*\}/.test(t),r=/^\s*(case|default)\b/.test(t);return e.baseIndent+(n?0:r?1:2)*e.unit},ColonBlock:function(e){return e.baseIndent+e.unit},"Block EnumBody DeclarationList":(0,a.vw)({closing:"}"}),ArrowFunction:function(e){return e.baseIndent+e.unit},"String BlockComment":function(){return-1},Statement:(0,a.tC)({except:/^({|end(for|foreach|switch|while)\b)/})}),a.x0.add({"Block EnumBody DeclarationList SwitchBody ArrayExpression ValueList":a.Dv,ColonBlock:function(e){return{from:e.from+1,to:e.to}},BlockComment:function(e){return{from:e.from+2,to:e.to-2}}}),(0,s.Gv)({"Visibility abstract final static":s.pJ.modifier,"for foreach while do if else elseif switch try catch finally return throw break continue default case":s.pJ.controlKeyword,"endif endfor endforeach endswitch endwhile goto match":s.pJ.controlKeyword,"and or xor yield unset clone instanceof insteadof":s.pJ.operatorKeyword,"function fn class trait implements extends const enum global namespace trait use var":s.pJ.definitionKeyword,"include include_once require require_once declare enddeclare":s.pJ.definitionKeyword,"new from echo print array list as":s.pJ.keyword,null:s.pJ.null,Boolean:s.pJ.bool,VariableName:s.pJ.variableName,"NamespaceName/...":s.pJ.namespace,"NamedType/...":s.pJ.typeName,Name:s.pJ.name,"CallExpression/Name":s.pJ.function(s.pJ.variableName),"LabelStatement/Name":s.pJ.labelName,"MemberExpression/Name MemberExpression/VariableName":s.pJ.propertyName,"CallExpression/MemberExpression/Name":s.pJ.function(s.pJ.propertyName),"FunctionDefinition/Name":s.pJ.function(s.pJ.definition(s.pJ.variableName)),"ClassDeclaration/Name":s.pJ.definition(s.pJ.className),UpdateOp:s.pJ.updateOperator,ArithOp:s.pJ.arithmeticOperator,LogicOp:s.pJ.logicOperator,BitOp:s.pJ.bitwiseOperator,CompareOp:s.pJ.compareOperator,ControlOp:s.pJ.controlOperator,AssignOp:s.pJ.definitionOperator,"$ ConcatOp":s.pJ.operator,LineComment:s.pJ.lineComment,BlockComment:s.pJ.blockComment,Integer:s.pJ.integer,Float:s.pJ.float,String:s.pJ.string,ShellExpression:s.pJ.special(s.pJ.string),"=> ->":s.pJ.punctuation,"( )":s.pJ.paren,"#[ [ ]":s.pJ.squareBracket,"${ { }":s.pJ.brace,"-> ?->":s.pJ.derefOperator,", ; :: : \\":s.pJ.separator,"PhpOpen PhpClose":s.pJ.processingInstruction})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"},line:"//"},indentOnInput:/^\s*(?:case |default:|end(?:if|for(?:each)?|switch|while)|else(?:if)?|\{|\})$/,wordChars:"$"}});function c(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=[];if(null===t.baseLanguage);else if(t.baseLanguage)e=t.baseLanguage;else{var r=(0,o.dy)({matchClosingTags:!1});n.push(r.support),e=r.language}return new a.ri(l.configure({wrap:e&&(0,i.FE)((function(t){return t.type.isTop?{parser:e.parser,overlay:function(e){return"Text"==e.name}}:null})),top:t.plain?"Program":"Template"}),n)}},9760:function(e,t,n){n.d(t,{V:function(){return l}});var r=n(6934),i=n(659),o=n(7536);function a(e,t){var n=e.lineIndent(t.from),r=e.lineAt(e.pos,-1),i=r.from+r.text.length;return!/\S/.test(r.text)&&e.node.ton?null:n+e.unit}var s=i.qp.define({parser:r.E.configure({props:[i.uj.add({Body:function(e){var t;return null!==(t=a(e,e.node))&&void 0!==t?t:e.continue()},IfStatement:function(e){return/^\s*(else:|elif )/.test(e.textAfter)?e.baseIndent:e.continue()},TryStatement:function(e){return/^\s*(except |finally:)/.test(e.textAfter)?e.baseIndent:e.continue()},"TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression":(0,i.vw)({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":(0,i.vw)({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":(0,i.vw)({closing:"]"}),Script:function(e){if(e.pos+/\s*/.exec(e.textAfter)[0].length>=e.node.to){for(var t=null,n=e.node,r=n.to;(n=n.lastChild)&&n.to==r;)"Body"==n.type.name&&(t=n);if(t){var i=a(e,t);if(null!=i)return i}}return e.continue()}}),i.x0.add({"ArrayExpression DictionaryExpression":i.Dv,Body:function(e,t){return{from:e.from+1,to:e.to-(e.to==t.doc.length?0:1)}}}),(0,o.Gv)({"async '*' '**' FormatConversion":o.pJ.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield":o.pJ.controlKeyword,"in not and or is del":o.pJ.operatorKeyword,"from def class global nonlocal lambda":o.pJ.definitionKeyword,import:o.pJ.moduleKeyword,"with as print":o.pJ.keyword,self:o.pJ.self,Boolean:o.pJ.bool,None:o.pJ.null,VariableName:o.pJ.variableName,"CallExpression/VariableName":o.pJ.function(o.pJ.variableName),"FunctionDefinition/VariableName":o.pJ.function(o.pJ.definition(o.pJ.variableName)),"ClassDefinition/VariableName":o.pJ.definition(o.pJ.className),PropertyName:o.pJ.propertyName,"CallExpression/MemberExpression/PropertyName":o.pJ.function(o.pJ.propertyName),Comment:o.pJ.lineComment,Number:o.pJ.number,String:o.pJ.string,FormatString:o.pJ.special(o.pJ.string),UpdateOp:o.pJ.updateOperator,ArithOp:o.pJ.arithmeticOperator,BitOp:o.pJ.bitwiseOperator,CompareOp:o.pJ.compareOperator,AssignOp:o.pJ.definitionOperator,Ellipsis:o.pJ.punctuation,At:o.pJ.meta,"( )":o.pJ.paren,"[ ]":o.pJ.squareBracket,"{ }":o.pJ.brace,".":o.pJ.derefOperator,", ;":o.pJ.separator})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""']},commentTokens:{line:"#"},indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:)$/}});function l(){return new i.ri(s)}},8324:function(e,t,n){n.d(t,{Q:function(){return s}});var r=n(444),i=n(659),o=n(7536),a=i.qp.define({parser:r.E.configure({props:[i.uj.add({IfExpression:(0,i.tC)({except:/^\s*({|else\b)/}),"String BlockComment":function(){return-1},"Statement MatchArm":(0,i.tC)()}),i.x0.add((function(e){return/(Block|edTokens|List)$/.test(e.name)?i.Dv:"BlockComment"==e.name?function(e){return{from:e.from+2,to:e.to-2}}:void 0})),(0,o.Gv)({"const macro_rules mod struct union enum type fn impl trait let use crate static":o.pJ.definitionKeyword,"pub unsafe async mut extern default move":o.pJ.modifier,"for if else loop while match continue break return await":o.pJ.controlKeyword,"as in ref":o.pJ.operatorKeyword,"where _ crate super dyn":o.pJ.keyword,self:o.pJ.self,String:o.pJ.string,RawString:o.pJ.special(o.pJ.string),Boolean:o.pJ.bool,Identifier:o.pJ.variableName,"CallExpression/Identifier":o.pJ.function(o.pJ.variableName),BoundIdentifier:o.pJ.definition(o.pJ.variableName),LoopLabel:o.pJ.labelName,FieldIdentifier:o.pJ.propertyName,"CallExpression/FieldExpression/FieldIdentifier":o.pJ.function(o.pJ.propertyName),Lifetime:o.pJ.special(o.pJ.variableName),ScopeIdentifier:o.pJ.namespace,TypeIdentifier:o.pJ.typeName,"MacroInvocation/Identifier MacroInvocation/ScopedIdentifier/Identifier":o.pJ.macroName,"MacroInvocation/TypeIdentifier MacroInvocation/ScopedIdentifier/TypeIdentifier":o.pJ.macroName,'"!"':o.pJ.macroName,UpdateOp:o.pJ.updateOperator,LineComment:o.pJ.lineComment,BlockComment:o.pJ.blockComment,Integer:o.pJ.integer,Float:o.pJ.float,ArithOp:o.pJ.arithmeticOperator,LogicOp:o.pJ.logicOperator,BitOp:o.pJ.bitwiseOperator,CompareOp:o.pJ.compareOperator,"=":o.pJ.definitionOperator,".. ... => ->":o.pJ.punctuation,"( )":o.pJ.paren,"[ ]":o.pJ.squareBracket,"{ }":o.pJ.brace,".":o.pJ.derefOperator,"&":o.pJ.operator,", ; ::":o.pJ.separator})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:\{|\})$/}});function s(){return new i.ri(a)}},7549:function(e,t,n){n.d(t,{cA:function(){return R},i6:function(){return P},rs:function(){return J}});var r=n(5671),i=n(3144),o=n(7762),a=n(659),s=n(7536),l=n(8998),c=n(4941);function u(e){return e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57}function h(e,t,n){for(var r=!1;;){if(e.next<0)return;if(e.next==t&&!r)return void e.advance();r=n&&!r&&92==e.next,e.advance()}}function f(e,t){for(;95==e.next||u(e.next);)null!=t&&(t+=String.fromCharCode(e.next)),e.advance();return t}function d(e,t){for(;;){if(46==e.next){if(t)break;t=!0}else if(e.next<48||e.next>57)break;e.advance()}if(69==e.next||101==e.next)for(e.advance(),43!=e.next&&45!=e.next||e.advance();e.next>=48&&e.next<=57;)e.advance()}function p(e){for(;!(e.next<0||10==e.next);)e.advance()}function m(e,t){for(var n=0;n!=&|~^/",specialVar:"?",identifierQuotes:'"',words:g(k,y)};function w(e){return new l.Jq((function(t){var n,r,i=t.next;if(t.advance(),m(i,v)){for(;m(t.next,v);)t.advance();t.acceptToken(34)}else if(39==i||34==i&&e.doubleQuotedStrings)h(t,i,e.backslashEscapes),t.acceptToken(3);else if(35==i&&e.hashComments||47==i&&47==t.next&&e.slashComments)p(t),t.acceptToken(1);else if(45!=i||45!=t.next||e.spaceAfterDashes&&32!=t.peek(2))if(47==i&&42==t.next){t.advance();for(var o=-1,a=1;!(t.next<0);)if(t.advance(),42==o&&47==t.next){if(!--a)break;o=-1}else 47==o&&42==t.next?(a++,o=-1):o=t.next;t.acceptToken(2)}else if(101!=i&&69!=i||39!=t.next)if(110!=i&&78!=i||39!=t.next||!e.charSetCasts){if(95==i&&e.charSetCasts)for(var s=0;;s++){if(39==t.next&&s>1){t.advance(),h(t,39,e.backslashEscapes),t.acceptToken(3);break}if(!u(t.next))break;t.advance()}else if(40==i)t.acceptToken(7);else if(41==i)t.acceptToken(8);else if(123==i)t.acceptToken(9);else if(125==i)t.acceptToken(10);else if(91==i)t.acceptToken(11);else if(93==i)t.acceptToken(12);else if(59==i)t.acceptToken(13);else if(48==i&&(98==t.next||66==t.next)||(98==i||66==i)&&39==t.next){var l=39==t.next;for(t.advance();48==t.next||49==t.next;)t.advance();l&&39==t.next&&t.advance(),t.acceptToken(4)}else if(48==i&&(120==t.next||88==t.next)||(120==i||88==i)&&39==t.next){var c=39==t.next;for(t.advance();(r=t.next)>=48&&r<=57||r>=97&&r<=102||r>=65&&r<=70;)t.advance();c&&39==t.next&&t.advance(),t.acceptToken(4)}else if(46==i&&t.next>=48&&t.next<=57)d(t,!0),t.acceptToken(4);else if(46==i)t.acceptToken(14);else if(i>=48&&i<=57)d(t,!1),t.acceptToken(4);else if(m(i,e.operatorChars)){for(;m(t.next,e.operatorChars);)t.advance();t.acceptToken(15)}else if(m(i,e.specialVar))t.next==i&&t.advance(),function(e){if(39==e.next||34==e.next||96==e.next){var t=e.next;e.advance(),h(e,t,!1)}else f(e)}(t),t.acceptToken(17);else if(m(i,e.identifierQuotes))h(t,i,!1),t.acceptToken(19);else if(58==i||44==i)t.acceptToken(16);else if(u(i)){var g=f(t,String.fromCharCode(i));t.acceptToken(null!==(n=e.words[g.toLowerCase()])&&void 0!==n?n:18)}}else t.advance(),h(t,39,e.backslashEscapes),t.acceptToken(3);else t.advance(),h(t,39,!0);else p(t),t.acceptToken(1)}))}var x=w(b);function S(e){for(var t=e.cursor.moveTo(e.from,-1);/Comment/.test(t.name);)t.moveTo(t.from,-1);return t.node}function _(e){var t=/^[`'"](.*)[`'"]$/.exec(e);return t?t[1]:e}var C=/^\w*$/,A=/^[`'"]?\w*[`'"]?$/;function O(e,t,n){var r=Object.create(null);for(var i in e)r[i]=e[i].map((function(e){return"string"==typeof e?{label:e,type:"property"}:e}));var o=(t||Object.keys(r).map((function(e){return{label:e,type:"type"}}))).concat(n&&r[n]||[]);return function(e){var t=function(e,t){var n=(0,a.qz)(e).resolveInner(t,-1),r=!1;if("Identifier"==n.name||"QuotedIdentifier"==n.name){r=!1;var i=null,o=S(n);if(o&&"."==o.name){var s=S(o);(s&&"Identifier"==s.name||"QuotedIdentifier"==s.name)&&(i=_(e.sliceDoc(s.from,s.to).toLowerCase()))}return{parent:i,from:n.from,quoted:"QuotedIdentifier"==n.name?e.sliceDoc(n.from,n.from+1):null}}if("."==n.name){var l=S(n);if(l&&"Identifier"==l.name||"QuotedIdentifier"==l.name)return{parent:_(e.sliceDoc(l.from,l.to).toLowerCase()),from:t,quoted:null}}else r=!0;return{parent:null,from:t,quoted:null,empty:r}}(e.state,e.pos),n=t.parent,i=t.from,s=t.quoted;if(t.empty&&!e.explicit)return null;var l,c,u=o;if(n){var h=r[n];if(!h)return null;u=h}return{from:i,to:s&&e.state.sliceDoc(e.pos,e.pos+1)==s?e.pos+1:void 0,options:(l=s,c=u,l?c.map((function(e){return Object.assign(Object.assign({},e),{label:l+e.label+l,apply:void 0})})):c),span:s?A:C}}}function T(e,t){var n=Object.keys(e).map((function(n){return{label:t?n.toUpperCase():n,type:21==e[n]?"type":20==e[n]?"keyword":"variable",boost:-1}}));return(0,c.eC)(["QuotedIdentifier","SpecialVar","String","LineComment","BlockComment","."],(0,c.Mb)(n))}var Z=l.WQ.deserialize({version:13,states:"%dQ]QQOOO#kQRO'#DQO#rQQO'#CuO%RQQO'#CvO%YQQO'#CwO%aQQO'#CxOOQQ'#DQ'#DQOOQQ'#C{'#C{O&lQRO'#CyOOQQ'#Ct'#CtOOQQ'#Cz'#CzQ]QQOOQOQQOOO&vQQO,59aO'RQQO,59aO'WQQO'#DQOOQQ,59b,59bO'eQQO,59bOOQQ,59c,59cO'lQQO,59cOOQQ,59d,59dO'sQQO,59dOOQQ-E6y-E6yOOQQ,59`,59`OOQQ-E6x-E6xOOQQ'#C|'#C|OOQQ1G.{1G.{O&vQQO1G.{OOQQ1G.|1G.|OOQQ1G.}1G.}OOQQ1G/O1G/OP'zQQO'#C{POQQ-E6z-E6zOOQQ7+$g7+$g",stateData:"(R~OrOSPOSQOS~ORUOSUOTUOUUOVROXSOZTO]XO^QO_UO`UOaPObPOcPOdUOeUOfUO~O^]ORtXStXTtXUtXVtXXtXZtX]tX_tX`tXatXbtXctXdtXetXftX~OqtX~P!dOa^Ob^Oc^O~ORUOSUOTUOUUOVROXSOZTO^QO_UO`UOa_Ob_Oc_OdUOeUOfUO~OW`O~P#}OYbO~P#}O[dO~P#}ORUOSUOTUOUUOVROXSOZTO^QO_UO`UOaPObPOcPOdUOeUOfUO~O]gOqmX~P%hOaiObiOciO~O^kO~OWtXYtX[tX~P!dOWlO~P#}OYmO~P#}O[nO~P#}O]gO~P#}O",goto:"#YuPPPPPPPPPPPPPPPPPPPPPPPPvzzzz!W![!b!vPPP!|TYOZeUORSTWZaceoT[OZQZORhZSWOZQaRQcSQeTZfWaceoQj]RqkeVORSTWZaceo",nodeNames:"\u26a0 LineComment BlockComment String Number Bool Null ( ) [ ] { } ; . Operator Punctuation SpecialVar Identifier QuotedIdentifier Keyword Type Builtin Script Statement CompositeIdentifier Parens Braces Brackets Statement",maxTerm:36,skippedNodes:[0,1,2],repeatNodeCount:3,tokenData:"RORO",tokenizers:[0,x],topRules:{Script:[0,23]},tokenPrec:0}).configure({props:[a.uj.add({Statement:(0,a.tC)()}),a.x0.add({Statement:function(e){return{from:e.firstChild.to,to:e.to}},BlockComment:function(e){return{from:e.from+2,to:e.to-2}}}),(0,s.Gv)({Keyword:s.pJ.keyword,Type:s.pJ.typeName,Builtin:s.pJ.standard(s.pJ.name),Bool:s.pJ.bool,Null:s.pJ.null,Number:s.pJ.number,String:s.pJ.string,Identifier:s.pJ.name,QuotedIdentifier:s.pJ.special(s.pJ.string),SpecialVar:s.pJ.special(s.pJ.name),LineComment:s.pJ.lineComment,BlockComment:s.pJ.blockComment,Operator:s.pJ.operator,"Semi Punctuation":s.pJ.punctuation,"( )":s.pJ.paren,"{ }":s.pJ.brace,"[ ]":s.pJ.squareBracket})]}),E=function(){function e(t,n){(0,r.Z)(this,e),this.dialect=t,this.language=n}return(0,i.Z)(e,[{key:"extension",get:function(){return this.language.extension}}],[{key:"define",value:function(t){var n=function(e,t,n,r){var i={};for(var o in b)i[o]=(e.hasOwnProperty(o)?e:b)[o];return t&&(i.words=g(t,n||"",r)),i}(t,t.keywords,t.types,t.builtin);return new e(n,a.qp.define({parser:Z.configure({tokenizers:[{from:x,to:w(n)}]}),languageData:{commentTokens:{line:"--",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}}))}}]),e}();function M(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e.language.data.of({autocomplete:T(e.dialect.words,t)})}function D(e){return e.schema?(e.dialect||I).language.data.of({autocomplete:O(e.schema,e.tables,e.defaultTable)}):[]}function P(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.dialect||I;return new a.ri(t.language,[D(e),M(t,!!e.upperCaseKeywords)])}var I=E.define({}),R=E.define({charSetCasts:!0,operatorChars:"+-*/<>=~!@#%^&|`?",specialVar:"",keywords:k+"a abort abs absent access according ada admin aggregate alias also always analyse analyze array_agg array_max_cardinality asensitive assert assignment asymmetric atomic attach attribute attributes avg backward base64 begin_frame begin_partition bernoulli bit_length blocked bom c cache called cardinality catalog_name ceil ceiling chain char_length character_length character_set_catalog character_set_name character_set_schema characteristics characters checkpoint class class_origin cluster coalesce cobol collation_catalog collation_name collation_schema collect column_name columns command_function command_function_code comment comments committed concurrently condition_number configuration conflict connection_name constant constraint_catalog constraint_name constraint_schema contains content control conversion convert copy corr cost covar_pop covar_samp csv cume_dist current_catalog current_row current_schema cursor_name database datalink datatype datetime_interval_code datetime_interval_precision db debug defaults defined definer degree delimiter delimiters dense_rank depends derived detach detail dictionary disable discard dispatch dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue document dump dynamic_function dynamic_function_code element elsif empty enable encoding encrypted end_frame end_partition endexec enforced enum errcode error event every exclude excluding exclusive exp explain expression extension extract family file filter final first_value flag floor following force foreach fortran forward frame_row freeze fs functions fusion g generated granted greatest groups handler header hex hierarchy hint id ignore ilike immediately immutable implementation implicit import include including increment indent index indexes info inherit inherits inline insensitive instance instantiable instead integrity intersection invoker isnull k key_member key_type label lag last_value lead leakproof least length library like_regex link listen ln load location lock locked log logged lower m mapping matched materialized max max_cardinality maxvalue member merge message message_length message_octet_length message_text min minvalue mod mode more move multiset mumps name namespace nfc nfd nfkc nfkd nil normalize normalized nothing notice notify notnull nowait nth_value ntile nullable nullif nulls number occurrences_regex octet_length octets off offset oids operator options ordering others over overlay overriding owned owner p parallel parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partition pascal passing passthrough password percent percent_rank percentile_cont percentile_disc perform period permission pg_context pg_datatype_name pg_exception_context pg_exception_detail pg_exception_hint placing plans pli policy portion position position_regex power precedes preceding prepared print_strict_params procedural procedures program publication query quote raise range rank reassign recheck recovery refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex rename repeatable replace replica requiring reset respect restart restore result_oid returned_cardinality returned_length returned_octet_length returned_sqlstate returning reverse routine_catalog routine_name routine_schema routines row_count row_number rowtype rule scale schema_name schemas scope scope_catalog scope_name scope_schema security selective self sensitive sequence sequences serializable server server_name setof share show simple skip slice snapshot source specific_name sqlcode sqlerror sqrt stable stacked standalone statement statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset subscription substring substring_regex succeeds sum symmetric sysid system system_time t table_name tables tablesample tablespace temp template ties token top_level_count transaction_active transactions_committed transactions_rolled_back transform transforms translate translate_regex trigger_catalog trigger_name trigger_schema trim trim_array truncate trusted type types uescape unbounded uncommitted unencrypted unlink unlisten unlogged unnamed untyped upper uri use_column use_variable user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema vacuum valid validate validator value_of var_pop var_samp varbinary variable_conflict variadic verbose version versioning views volatile warning whitespace width_bucket window within wrapper xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate yes",types:y+"bigint int8 bigserial serial8 varbit bool box bytea cidr circle precision float8 inet int4 json jsonb line lseg macaddr macaddr8 money numeric pg_lsn point polygon float4 int2 smallserial serial2 serial serial4 text timetz timestamptz tsquery tsvector txid_snapshot uuid xml"}),z="accessible algorithm analyze asensitive authors auto_increment autocommit avg avg_row_length binlog btree cache catalog_name chain change changed checkpoint checksum class_origin client_statistics coalesce code collations columns comment committed completion concurrent consistent contains contributors convert database databases day_hour day_microsecond day_minute day_second delay_key_write delayed delimiter des_key_file dev_pop dev_samp deviance directory disable discard distinctrow div dual dumpfile enable enclosed ends engine engines enum errors escaped even event events every explain extended fast field fields flush force found_rows fulltext grants handler hash high_priority hosts hour_microsecond hour_minute hour_second ignore ignore_server_ids import index index_statistics infile innodb insensitive insert_method install invoker iterate keys kill linear lines list load lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modify mutex mysql_errno no_write_to_binlog offline offset one online optimize optionally outfile pack_keys parser partition partitions password phase plugin plugins prev processlist profile profiles purge query quick range read_write rebuild recover regexp relaylog remove rename reorganize repair repeatable replace require resume rlike row_format rtree schedule schema_name schemas second_microsecond security sensitive separator serializable server share show slave slow snapshot soname spatial sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result ssl starting starts std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace terminated triggers truncate uncommitted uninstall unlock upgrade use use_frm user_resources user_statistics utc_date utc_time utc_timestamp variables views warnings xa xor year_month zerofill",N=y+"bool blob long longblob longtext medium mediumblob mediumint mediumtext tinyblob tinyint tinytext text bigint int1 int2 int3 int4 int8 float4 float8 varbinary varcharacter precision datetime unsigned signed",L="charset clear edit ego help nopager notee nowarning pager print prompt quit rehash source status system tee",J=E.define({operatorChars:"*+-%<>!=&|^",charSetCasts:!0,doubleQuotedStrings:!0,hashComments:!0,spaceAfterDashes:!0,specialVar:"@?",identifierQuotes:"`",keywords:k+"group_concat "+z,types:N,builtin:L})},5106:function(e,t,n){n.d(t,{Ls:function(){return y}});var r=n(7762),i=n(3144),o=n(5671),a=n(4215),s=n(659),l=n(7536);function c(e,t){var n=t&&t.getChild("TagName");return n?e.sliceString(n.from,n.to):""}function u(e,t){var n=t&&t.firstChild;return n&&"OpenTag"==n.name?c(e,n):""}function h(e){for(var t=e&&e.parent;t;t=t.parent)if("Element"==t.name)return t;return null}var f=(0,i.Z)((function e(t,n,r){(0,o.Z)(this,e),this.attrs=n,this.attrValues=r,this.children=[],this.name=t.name,this.completion=Object.assign(Object.assign({type:"type"},t.completion||{}),{label:this.name}),this.openCompletion=Object.assign(Object.assign({},this.completion),{label:"<"+this.name}),this.closeCompletion=Object.assign(Object.assign({},this.completion),{label:"",boost:2}),this.closeNameCompletion=Object.assign(Object.assign({},this.completion),{label:this.name+">"}),this.text=t.textContent?t.textContent.map((function(e){return{label:e,type:"text"}})):[]})),d=/^[:\-\.\w\u00b7-\uffff]*$/;function p(e){return Object.assign(Object.assign({type:"property"},e.completion||{}),{label:e.name})}function m(e){return"string"==typeof e?{label:'"'.concat(e,'"'),type:"constant"}:/^"/.test(e.label)?e:Object.assign(Object.assign({},e),{label:'"'.concat(e.label,'"')})}function v(e,t){var n,i=[],o=[],a=Object.create(null),l=(0,r.Z)(t);try{for(l.s();!(n=l.n()).done;){var v=n.value,g=p(v);i.push(g),v.global&&o.push(g),v.values&&(a[v.name]=v.values.map(m))}}catch(E){l.e(E)}finally{l.f()}var y,k=[],b=[],w=Object.create(null),x=(0,r.Z)(e);try{var S=function(){var e=y.value,t=o,n=a;e.attributes&&(t=t.concat(e.attributes.map((function(e){return"string"==typeof e?i.find((function(t){return t.label==e}))||{label:e,type:"property"}:(e.values&&(n==a&&(n=Object.create(n)),n[e.name]=e.values.map(m)),p(e))}))));var r=new f(e,t,n);w[r.name]=r,k.push(r),e.top&&b.push(r)};for(x.s();!(y=x.n()).done;)S()}catch(E){x.e(E)}finally{x.f()}b.length||(b=k);for(var _=0;_t||i.lastChild.type.isError)){var a=i.parent;if("TagName"==r.name)return"CloseTag"==i.name||"MismatchedCloseTag"==i.name?{type:"closeTag",from:r.from,context:a}:{type:"openTag",from:r.from,context:h(a)};if("AttributeName"==r.name)return{type:"attrName",from:r.from,context:i};if("AttributeValue"==r.name)return{type:"attrValue",from:r.from,context:i};var l=r==i||"Attribute"==r.name?r.childBefore(t):r;return"StartTag"==(null===l||void 0===l?void 0:l.name)?{type:"openTag",from:t,context:h(a)}:"StartCloseTag"==(null===l||void 0===l?void 0:l.name)&&l.to<=t?{type:"closeTag",from:t,context:a}:"Is"==(null===l||void 0===l?void 0:l.name)?{type:"attrValue",from:t,context:i}:l?{type:"attrName",from:t,context:i}:null}if("StartCloseTag"==r.name)return{type:"closeTag",from:t,context:r.parent};for(;r.parent&&r.to==t&&!(null===(n=r.lastChild)||void 0===n?void 0:n.type.isError);)r=r.parent;return"Element"==r.name||"Text"==r.name||"Document"==r.name?{type:"tag",from:t,context:"Element"==r.name?r:h(r)}:null}(e.state,e.pos);if(!r||"tag"==r.type&&!e.explicit)return null;var i=r.type,l=r.from,f=r.context;if("openTag"==i){var p=b,m=u(n,f);if(m){var v=w[m];p=(null===v||void 0===v?void 0:v.children)||k}return{from:l,options:p.map((function(e){return e.completion})),span:d}}if("closeTag"==i){var g=u(n,f);return g?{from:l,to:e.pos+(">"==n.sliceString(e.pos,e.pos+1)?1:0),options:[(null===(t=w[g])||void 0===t?void 0:t.closeNameCompletion)||{label:g+">",type:"type"}],span:d}:null}if("attrName"==i){var y=w[c(n,f)];return{from:l,options:(null===y||void 0===y?void 0:y.attrs)||o,span:d}}if("attrValue"==i){var x=function(e,t,n){var r=t&&t.getChildren("Attribute").find((function(e){return e.from<=n&&e.to>=n})),i=r&&r.getChild("AttributeName");return i?e.sliceString(i.from,i.to):""}(n,f,l);if(!x)return null;var S=w[c(n,f)],_=((null===S||void 0===S?void 0:S.attrValues)||a)[x];return _&&_.length?{from:l,to:e.pos+('"'==n.sliceString(e.pos,e.pos+1)?1:0),options:_,span:/^"[^"]*"?$/}:null}if("tag"==i){var C=u(n,f),A=w[C],O=[],T=f&&f.lastChild;!C||T&&"CloseTag"==T.name&&c(n,T)==C||O.push(A?A.closeCompletion:{label:"",type:"type",boost:2});var Z=O.concat(((null===A||void 0===A?void 0:A.children)||(f?k:b)).map((function(e){return e.openCompletion})));if(f&&(null===A||void 0===A?void 0:A.text.length)){var E=f.firstChild;E.to>e.pos-20&&!/\S/.test(e.state.sliceDoc(E.to,e.pos))&&(Z=Z.concat(A.text))}return{from:l,options:Z,span:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}return null}}var g=s.qp.define({parser:a.E.configure({props:[s.uj.add({Element:function(e){var t=/^\s*<\//.test(e.textAfter);return e.lineIndent(e.node.from)+(t?0:e.unit)},"OpenTag CloseTag SelfClosingTag":function(e){return e.column(e.node.from)+e.unit}}),s.x0.add({Element:function(e){var t=e.firstChild,n=e.lastChild;return t&&"OpenTag"==t.name?{from:t.to,to:"CloseTag"==n.name?n.from:e.to}:null}}),(0,l.Gv)({Text:l.pJ.content,"StartTag StartCloseTag EndTag SelfCloseEndTag":l.pJ.angleBracket,TagName:l.pJ.tagName,"MismatchedCloseTag/Tagname":[l.pJ.tagName,l.pJ.invalid],AttributeName:l.pJ.attributeName,AttributeValue:l.pJ.attributeValue,Is:l.pJ.definitionOperator,"EntityReference CharacterReference":l.pJ.character,Comment:l.pJ.blockComment,ProcessingInst:l.pJ.processingInstruction,DoctypeDecl:l.pJ.documentMeta,Cdata:l.pJ.special(l.pJ.string)})]}),languageData:{commentTokens:{block:{open:"\x3c!--",close:"--\x3e"}},indentOnInput:/^\s*<\/$/}});function y(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new s.ri(g,g.data.of({autocomplete:v(e.elements||[],e.attributes||[])}))}},659:function(e,t,n){n.d(t,{Be:function(){return b},Dv:function(){return H},Fw:function(){return U},Gn:function(){return P},K0:function(){return D},SQ:function(){return p},SS:function(){return M},c:function(){return Z},c6:function(){return O},dK:function(){return C},kU:function(){return d},mi:function(){return f},nY:function(){return V},qp:function(){return v},qz:function(){return g},ri:function(){return A},tC:function(){return F},tK:function(){return T},uj:function(){return I},vw:function(){return B},x0:function(){return W},y1:function(){return E},ze:function(){return $}});var r=n(136),i=n(3668),o=n(7762),a=n(5671),s=n(3144),l=n(299),c=n(1383),u=n(2077),h=n(6830),f=new l.md;function d(e){return c.r$.define({combine:e?function(t){return t.concat(e)}:void 0})}var p=function(){function e(t,n,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];(0,a.Z)(this,e),this.data=t,this.topNode=r,c.yy.prototype.hasOwnProperty("tree")||Object.defineProperty(c.yy.prototype,"tree",{get:function(){return g(this)}}),this.parser=n,this.extension=[C.of(this),c.yy.languageData.of((function(e,t,n){return e.facet(m(e,t,n))}))].concat(i)}return(0,s.Z)(e,[{key:"isActiveAt",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1;return m(e,t,n)==this.data}},{key:"findRegions",value:function(e){var t=this,n=e.facet(C);if((null===n||void 0===n?void 0:n.data)==this.data)return[{from:0,to:e.doc.length}];if(!n||!n.allowsNesting)return[];var r=[];return function e(n,i){if(n.prop(f)!=t.data){var a=n.prop(l.md.mounted);if(a){if(a.tree.prop(f)==t.data){if(a.overlay){var s,c=(0,o.Z)(a.overlay);try{for(c.s();!(s=c.n()).done;){var u=s.value;r.push({from:u.from+i,to:u.to+i})}}catch(m){c.e(m)}finally{c.f()}}else r.push({from:i,to:i+n.length});return}if(a.overlay){var h=r.length;if(e(a.tree,a.overlay[0].from+i),r.length>h)return}}for(var d=0;d0}}],[{key:"define",value:function(e){var t=d(e.languageData);return new n(t,e.parser.configure({props:[f.add((function(e){return e.isTop?t:void 0}))]}))}}]),n}(p);function g(e){var t=e.field(p.state,!1);return t?t.tree:l.mp.empty}var y=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t.length;(0,a.Z)(this,e),this.doc=t,this.length=n,this.cursorPos=0,this.string="",this.cursor=t.iter()}return(0,s.Z)(e,[{key:"syncTo",value:function(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}},{key:"chunk",value:function(e){return this.syncTo(e),this.string}},{key:"lineChunks",get:function(){return!0}},{key:"read",value:function(e,t){var n=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-n,t-n)}}]),e}(),k=null,b=function(){function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],i=arguments.length>3?arguments[3]:void 0,o=arguments.length>4?arguments[4]:void 0,s=arguments.length>5?arguments[5]:void 0,l=arguments.length>6?arguments[6]:void 0,c=arguments.length>7?arguments[7]:void 0;(0,a.Z)(this,e),this.parser=t,this.state=n,this.fragments=r,this.tree=i,this.treeLen=o,this.viewport=s,this.skipped=l,this.scheduleOn=c,this.parse=null,this.tempSkipped=[]}return(0,s.Z)(e,[{key:"startParse",value:function(){return this.parser.startParse(new y(this.state.doc),this.fragments)}},{key:"work",value:function(e,t){var n=this;return null!=t&&t>=this.state.doc.length&&(t=void 0),this.tree!=l.mp.empty&&this.isDone(null!==t&&void 0!==t?t:this.state.doc.length)?(this.takeTree(),!0):this.withContext((function(){var r,i=Date.now()+e;for(n.parse||(n.parse=n.startParse()),null!=t&&(null==n.parse.stoppedAt||n.parse.stoppedAt>t)&&ti)return!1}}))}},{key:"takeTree",value:function(){var e,t,n=this;this.parse&&(e=this.parse.parsedPos)>=this.treeLen&&((null==this.parse.stoppedAt||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext((function(){for(;!(t=n.parse.advance()););})),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(l.i9.addTree(this.tree,this.fragments,!0)),this.parse=null)}},{key:"withContext",value:function(e){var t=k;k=this;try{return e()}finally{k=t}}},{key:"withoutTempSkipped",value:function(e){for(var t;t=this.tempSkipped.pop();)e=w(e,t.from,t.to);return e}},{key:"changes",value:function(t,n){var r=this.fragments,i=this.tree,a=this.treeLen,s=this.viewport,c=this.skipped;if(this.takeTree(),!t.empty){var u=[];if(t.iterChangedRanges((function(e,t,n,r){return u.push({fromA:e,toA:t,fromB:n,toB:r})})),r=l.i9.applyChanges(r,u),i=l.mp.empty,a=0,s={from:t.mapPos(s.from,-1),to:t.mapPos(s.to,1)},this.skipped.length){c=[];var h,f=(0,o.Z)(this.skipped);try{for(f.s();!(h=f.n()).done;){var d=h.value,p=t.mapPos(d.from,1),m=t.mapPos(d.to,-1);pe.from&&(this.fragments=w(this.fragments,i,o),this.skipped.splice(n--,1))}return!(this.skipped.length>=t)&&(this.reset(),!0)}},{key:"reset",value:function(){this.parse&&(this.takeTree(),this.parse=null)}},{key:"skipUntilInView",value:function(e,t){this.skipped.push({from:e,to:t})}},{key:"isDone",value:function(e){e=Math.min(e,this.state.doc.length);var t=this.fragments;return this.treeLen>=e&&t.length&&0==t[0].from&&t[0].to>=e}}],[{key:"getSkippingParser",value:function(e){return new(function(t){(0,r.Z)(c,t);var n=(0,i.Z)(c);function c(){return(0,a.Z)(this,c),n.apply(this,arguments)}return(0,s.Z)(c,[{key:"createParse",value:function(t,n,r){var i=r[0].from,a=r[r.length-1].to;return{parsedPos:i,advance:function(){var t=k;if(t){var n,s=(0,o.Z)(r);try{for(s.s();!(n=s.n()).done;){var c=n.value;t.tempSkipped.push(c)}}catch(u){s.e(u)}finally{s.f()}e&&(t.scheduleOn=t.scheduleOn?Promise.all([t.scheduleOn,e]):e)}return this.parsedPos=a,new l.mp(l.Jq.none,[],[],a-i)},stoppedAt:null,stopAt:function(){}}}}]),c}(l._b))}},{key:"get",value:function(){return k}}]),e}();function w(e,t,n){return l.i9.applyChanges(e,[{fromA:t,toA:n,fromB:t,toB:n}])}var x=function(){function e(t){(0,a.Z)(this,e),this.context=t,this.tree=t.tree}return(0,s.Z)(e,[{key:"apply",value:function(t){if(!t.docChanged)return this;var n=this.context.changes(t.changes,t.state),r=this.context.treeLen==t.startState.doc.length?void 0:Math.max(t.changes.mapPos(this.context.treeLen),n.viewport.to);return n.work(20,r)||n.takeTree(),new e(n)}}],[{key:"init",value:function(t){var n=Math.min(3e3,t.doc.length),r=new b(t.facet(C).parser,t,[],l.mp.empty,0,{from:0,to:n},[],null);return r.work(20,n)||r.takeTree(),new e(r)}}]),e}();p.state=c.QQ.define({create:x.init,update:function(e,t){var n,r=(0,o.Z)(t.effects);try{for(r.s();!(n=r.n()).done;){var i=n.value;if(i.is(p.setState))return i.value}}catch(a){r.e(a)}finally{r.f()}return t.startState.facet(C)!=t.state.facet(C)?x.init(t.state):e.apply(t)}});var S=function(e){var t=setTimeout((function(){return e()}),500);return function(){return clearTimeout(t)}};"undefined"!=typeof requestIdleCallback&&(S=function(e){var t=-1,n=setTimeout((function(){t=requestIdleCallback(e,{timeout:400})}),100);return function(){return t<0?clearTimeout(n):cancelIdleCallback(t)}});var _=u.lg.fromClass(function(){function e(t){(0,a.Z)(this,e),this.view=t,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}return(0,s.Z)(e,[{key:"update",value:function(e){var t=this.view.state.field(p.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),e.docChanged&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}},{key:"scheduleWork",value:function(){if(!this.working){var e=this.view.state,t=e.field(p.state);t.tree==t.context.tree&&t.context.isDone(e.doc.length)||(this.working=S(this.work))}}},{key:"work",value:function(e){this.working=null;var t=Date.now();if(this.chunkEndi+1e3,l=o.context.work(a,i+(s?0:1e5));this.chunkBudget-=Date.now()-t,(l||this.chunkBudget<=0)&&(o.context.takeTree(),this.view.dispatch({effects:p.setState.of(new x(o.context))})),this.chunkBudget>0&&(!l||s)&&this.scheduleWork(),this.checkAsyncSchedule(o.context)}}}},{key:"checkAsyncSchedule",value:function(e){var t=this;e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then((function(){return t.scheduleWork()})).catch((function(e){return(0,u.OO)(t.view.state,e)})).then((function(){return t.workScheduled--})),e.scheduleOn=null)}},{key:"destroy",value:function(){this.working&&this.working()}},{key:"isWorking",value:function(){return this.working||this.workScheduled>0}}]),e}(),{eventHandlers:{focus:function(){this.scheduleWork()}}}),C=c.r$.define({combine:function(e){return e.length?e[0]:null},enables:[p.state,_]}),A=(0,s.Z)((function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];(0,a.Z)(this,e),this.language=t,this.support=n,this.extension=[t,n]})),O=function(){function e(t,n,r,i,o){var s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:void 0;(0,a.Z)(this,e),this.name=t,this.alias=n,this.extensions=r,this.filename=i,this.loadFunc=o,this.support=s,this.loading=null}return(0,s.Z)(e,[{key:"load",value:function(){var e=this;return this.loading||(this.loading=this.loadFunc().then((function(t){return e.support=t}),(function(t){throw e.loading=null,t})))}}],[{key:"of",value:function(t){var n=t.load,r=t.support;if(!n){if(!r)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");n=function(){return Promise.resolve(r)}}return new e(t.name,(t.alias||[]).concat(t.name).map((function(e){return e.toLowerCase()})),t.extensions||[],t.filename,n,r)}},{key:"matchFilename",value:function(e,t){var n,r=(0,o.Z)(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;if(i.filename&&i.filename.test(t))return i}}catch(u){r.e(u)}finally{r.f()}var a=/\.([^.]+)$/.exec(t);if(a){var s,l=(0,o.Z)(e);try{for(l.s();!(s=l.n()).done;){var c=s.value;if(c.extensions.indexOf(a[1])>-1)return c}}catch(u){l.e(u)}finally{l.f()}}return null}},{key:"matchLanguageName",value:function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];t=t.toLowerCase();var r,i=(0,o.Z)(e);try{for(i.s();!(r=i.n()).done;){var a=r.value;if(a.alias.some((function(e){return e==t})))return a}}catch(p){i.e(p)}finally{i.f()}if(n){var s,l=(0,o.Z)(e);try{for(l.s();!(s=l.n()).done;){var c,u=s.value,h=(0,o.Z)(u.alias);try{for(h.s();!(c=h.n()).done;){var f=c.value,d=t.indexOf(f);if(d>-1&&(f.length>2||!/\w/.test(t[d-1])&&!/\w/.test(t[d+f.length])))return u}}catch(p){h.e(p)}finally{h.f()}}}catch(p){l.e(p)}finally{l.f()}}return null}}]),e}(),T=c.r$.define(),Z=c.r$.define({combine:function(e){if(!e.length)return" ";if(!/^(?: +|\t+)$/.test(e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(e[0]));return e[0]}});function E(e){var t=e.facet(Z);return 9==t.charCodeAt(0)?e.tabSize*t.length:t.length}function M(e,t){var n="",r=e.tabSize;if(9==e.facet(Z).charCodeAt(0))for(;t>=r;)n+="\t",t-=r;for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:{};(0,a.Z)(this,e),this.state=t,this.options=n,this.unit=E(t)}return(0,s.Z)(e,[{key:"lineAt",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=this.state.doc.lineAt(e),r=this.options,i=r.simulateBreak,o=r.simulateDoubleBreak;return null!=i&&i>=n.from&&i<=n.to?o&&i==e?{text:"",from:e}:(t<0?i1&&void 0!==arguments[1]?arguments[1]:1;if(this.options.simulateDoubleBreak&&e==this.options.simulateBreak)return"";var n=this.lineAt(e,t),r=n.text,i=n.from;return r.slice(e-i,Math.min(r.length,e+100-i))}},{key:"column",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=this.lineAt(e,t),r=n.text,i=n.from,o=this.countColumn(r,e-i),a=this.options.overrideIndentation?this.options.overrideIndentation(i):-1;return a>-1&&(o+=a-this.countColumn(r,r.search(/\S|$/))),o}},{key:"countColumn",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.length;return(0,h.IS)(e,this.state.tabSize,t)}},{key:"lineIndent",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=this.lineAt(e,t),r=n.text,i=n.from,o=this.options.overrideIndentation;if(o){var a=o(i);if(a>-1)return a}return this.countColumn(r,r.search(/\S|$/))}},{key:"simulatedBreak",get:function(){return this.options.simulateBreak||null}}]),e}(),I=new l.md;function R(e){var t=e.type.prop(I);if(t)return t;var n,r=e.firstChild;if(r&&(n=r.type.prop(l.md.closedBy))){var i=e.lastChild,o=i&&n.indexOf(i.name)>-1;return function(e){return q(e,!0,1,void 0,o&&!function(e){return e.pos==e.options.simulateBreak&&e.options.simulateDoubleBreak}(e)?i.from:void 0)}}return null==e.parent?N:null}function z(e,t,n){for(;e;e=e.parent){var r=R(e);if(r)return r(new L(n,t,e))}return null}function N(){return 0}var L=function(e){(0,r.Z)(n,e);var t=(0,i.Z)(n);function n(e,r,i){var o;return(0,a.Z)(this,n),(o=t.call(this,e.state,e.options)).base=e,o.pos=r,o.node=i,o}return(0,s.Z)(n,[{key:"textAfter",get:function(){return this.textAfterPos(this.pos)}},{key:"baseIndent",get:function(){for(var e=this.state.doc.lineAt(this.node.from);;){for(var t=this.node.resolve(e.from);t.parent&&t.parent.from==t.from;)t=t.parent;if(J(t,this.node))break;e=this.state.doc.lineAt(t.from)}return this.lineIndent(e.from)}},{key:"continue",value:function(){var e=this.node.parent;return e?z(e,this.pos,this.base):0}}]),n}(P);function J(e,t){for(var n=t;n;n=n.parent)if(e==n)return!0;return!1}function B(e){var t=e.closing,n=e.align,r=void 0===n||n,i=e.units,o=void 0===i?1:i;return function(e){return q(e,r,o,t)}}function q(e,t,n,r,i){var o=e.textAfter,a=o.match(/^\s*/)[0].length,s=r&&o.slice(a,a+r.length)==r||i==e.pos+a,l=t?function(e){var t=e.node,n=t.childAfter(t.from),r=t.lastChild;if(!n)return null;for(var i=e.options.simulateBreak,o=e.state.doc.lineAt(n.from),a=null==i||i<=o.from?o.to:Math.min(o.to,i),s=n.to;;){var l=t.childAfter(s);if(!l||l==r)return null;if(!l.type.isSkipped)return l.from0&&void 0!==arguments[0]?arguments[0]:{},t=e.except,n=e.units,r=void 0===n?1:n;return function(e){var n=t&&t.test(e.textAfter);return e.baseIndent+(n?0:r*e.unit)}}function V(){return c.yy.transactionFilter.of((function(e){if(!e.docChanged||!e.isUserEvent("input.type"))return e;var t=e.startState.languageDataAt("indentOnInput",e.startState.selection.main.head);if(!t.length)return e;var n=e.newDoc,r=e.newSelection.main.head,i=n.lineAt(r);if(r>i.from+200)return e;var a=n.sliceString(i.from,r);if(!t.some((function(e){return e.test(a)})))return e;var s,l=e.state,c=-1,u=[],h=(0,o.Z)(l.selection.ranges);try{for(h.s();!(s=h.n()).done;){var f=s.value.head,d=l.doc.lineAt(f);if(d.from!=c){c=d.from;var p=D(l,d.from);if(null!=p){var m=/^\s*/.exec(d.text)[0],v=M(l,p);m!=v&&u.push({from:d.from,to:d.from+m.length,insert:v})}}}}catch(g){h.e(g)}finally{h.f()}return u.length?[e,{changes:u,sequential:!0}]:e}))}var j=c.r$.define(),W=new l.md;function H(e){var t=e.firstChild,n=e.lastChild;return t&&t.ton)){if(i&&o.from=t&&s.to>n&&(i=s)}}return i}(e,t,n)}},1553:function(e,t,n){n.d(t,{D:function(){return i}});var r="><+-.,[]".split(""),i={startState:function(){return{commentLine:!1,left:0,right:0,commentLoop:!1}},token:function(e,t){if(e.eatSpace())return null;e.sol()&&(t.commentLine=!1);var n=e.next().toString();return-1===r.indexOf(n)?(t.commentLine=!0,e.eol()&&(t.commentLine=!1),"comment"):!0===t.commentLine?(e.eol()&&(t.commentLine=!1),"comment"):"]"===n||"["===n?("["===n?t.left++:t.right++,"bracket"):"+"===n||"-"===n?"keyword":"<"===n||">"===n?"atom":"."===n||","===n?"def":void(e.eol()&&(t.commentLine=!1))}}},2941:function(e,t,n){n.d(t,{Q:function(){return k}});var r=["false","nil","true"],i=[".","catch","def","do","if","monitor-enter","monitor-exit","new","quote","recur","set!","throw","try","var"],o=["*","*'","*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-namespace-maps*","*print-readably*","*read-eval*","*reader-resolver*","*source-path*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","+","+'","-","-'","->","->>","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods","..","/","<","<=","=","==",">",">=","EMPTY-NODE","Inst","StackTraceElement->vec","Throwable->map","accessor","aclone","add-classpath","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","amap","ancestors","and","any?","apply","areduce","array-map","as->","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assert","assoc","assoc!","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","binding","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","boolean?","booleans","bound-fn","bound-fn*","bound?","bounded-count","butlast","byte","byte-array","bytes","bytes?","case","cast","cat","char","char-array","char-escape-string","char-name-string","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","coll?","comment","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","cond","cond->","cond->>","condp","conj","conj!","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","declare","dedupe","default-data-readers","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","delay","delay?","deliver","denominator","deref","derive","descendants","destructure","disj","disj!","dissoc","dissoc!","distinct","distinct?","doall","dorun","doseq","dosync","dotimes","doto","double","double-array","double?","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-data","ex-info","extend","extend-protocol","extend-type","extenders","extends?","false?","ffirst","file-seq","filter","filterv","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn","fn?","fnext","fnil","for","force","format","frequencies","future","future-call","future-cancel","future-cancelled?","future-done?","future?","gen-class","gen-interface","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","halt-when","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","ident?","identical?","identity","if-let","if-not","if-some","ifn?","import","in-ns","inc","inc'","indexed?","init-proxy","inst-ms","inst-ms*","inst?","instance?","int","int-array","int?","integer?","interleave","intern","interpose","into","into-array","ints","io!","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","lazy-cat","lazy-seq","let","letfn","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","locking","long","long-array","longs","loop","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memfn","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","munge","name","namespace","namespace-munge","nat-int?","neg-int?","neg?","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","or","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop","pop!","pop-thread-bindings","pos-int?","pos?","pr","pr-str","prefer-method","prefers","primitives-classnames","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy","proxy-call-with-super","proxy-mappings","proxy-name","proxy-super","push-thread-bindings","pvalues","qualified-ident?","qualified-keyword?","qualified-symbol?","quot","rand","rand-int","rand-nth","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","refer-clojure","reify","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-watch","repeat","repeatedly","replace","replicate","require","reset!","reset-meta!","reset-vals!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seqable?","seque","sequence","sequential?","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","simple-ident?","simple-keyword?","simple-symbol?","slurp","some","some->","some->>","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","swap-vals!","symbol","symbol?","sync","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","test","the-ns","thread-bound?","time","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unquote","unquote-splicing","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","uri?","use","uuid?","val","vals","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","vswap!","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn","xml-seq","zero?","zipmap"],a=g(r),s=g(i),l=g(o),c=g(["->","->>","as->","binding","bound-fn","case","catch","comment","cond","cond->","cond->>","condp","def","definterface","defmethod","defn","defmacro","defprotocol","defrecord","defstruct","deftype","do","doseq","dotimes","doto","extend","extend-protocol","extend-type","fn","for","future","if","if-let","if-not","if-some","let","letfn","locking","loop","ns","proxy","reify","struct-map","some->","some->>","try","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn"]),u=/^(?:[\\\[\]\s"(),;@^`{}~]|$)/,h=/^(?:[+\-]?\d+(?:(?:N|(?:[eE][+\-]?\d+))|(?:\.?\d*(?:M|(?:[eE][+\-]?\d+))?)|\/\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\[\]\s"#'(),;@^`{}~]|$))/,f=/^(?:\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\[\]\s"(),;@^`{}~]|$))/,d=/^(?:(?:[^\\\/\[\]\d\s"#'(),;@^`{}~.][^\\\[\]\s"(),;@^`{}~.\/]*(?:\.[^\\\/\[\]\d\s"#'(),;@^`{}~.][^\\\[\]\s"(),;@^`{}~.\/]*)*\/)?(?:\/|[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*(?=[\\\[\]\s"(),;@^`{}~]|$))/;function p(e,t){if(e.eatSpace()||e.eat(","))return["space",null];if(e.match(h))return[null,"number"];if(e.match(f))return[null,"string.special"];if(e.eat(/^"/))return(t.tokenize=m)(e,t);if(e.eat(/^[(\[{]/))return["open","bracket"];if(e.eat(/^[)\]}]/))return["close","bracket"];if(e.eat(/^;/))return e.skipToEnd(),["space","comment"];if(e.eat(/^[#'@^`~]/))return[null,"meta"];var n=e.match(d),r=n&&n[0];return r?"comment"===r&&"("===t.lastToken?(t.tokenize=v)(e,t):y(r,a)||":"===r.charAt(0)?["symbol","atom"]:y(r,s)||y(r,l)?["symbol","keyword"]:"("===t.lastToken?["symbol","builtin"]:["symbol","variable"]:(e.next(),e.eatWhile((function(e){return!y(e,u)})),[null,"error"])}function m(e,t){for(var n,r=!1;n=e.next();){if('"'===n&&!r){t.tokenize=p;break}r=!r&&"\\"===n}return[null,"string"]}function v(e,t){for(var n,r=1;n=e.next();)if(")"===n&&r--,"("===n&&r++,0===r){e.backUp(1),t.tokenize=p;break}return["space","comment"]}function g(e){for(var t={},n=0;n|=>|\+[+=]?|-[\-=]?|\*[\*=]?|\/[\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\|=?|\^=?|\~|!|\?|(or|and|\|\||&&|\?)=)/,a=/^(?:[()\[\]{},:`=;]|\.\.?\.?)/,s=/^[_A-Za-z$][_A-Za-z$0-9]*/,l=/^@[_A-Za-z$][_A-Za-z$0-9]*/,c=i(["and","or","not","is","isnt","in","instanceof","typeof"]),u=["for","while","loop","if","unless","else","switch","try","catch","finally","class"],h=i(u.concat(["break","by","continue","debugger","delete","do","in","of","new","return","then","this","@","throw","when","until","extends"]));u=i(u);var f=/^('{3}|\"{3}|['\"])/,d=/^(\/{3}|\/)/,p=i(["Infinity","NaN","undefined","null","true","false","on","off","yes","no"]);function m(e,t){if(e.sol()){null===t.scope.align&&(t.scope.align=!1);var n=t.scope.offset;if(e.eatSpace()){var i=e.indentation();return i>n&&"coffee"==t.scope.type?"indent":i0&&k(e,t)}if(e.eatSpace())return null;var u=e.peek();if(e.match("####"))return e.skipToEnd(),"comment";if(e.match("###"))return t.tokenize=g,t.tokenize(e,t);if("#"===u)return e.skipToEnd(),"comment";if(e.match(/^-?[0-9\.]/,!1)){var m=!1;if(e.match(/^-?\d*\.\d+(e[\+\-]?\d+)?/i)&&(m=!0),e.match(/^-?\d+\.\d*/)&&(m=!0),e.match(/^-?\.\d+/)&&(m=!0),m)return"."==e.peek()&&e.backUp(1),"number";var y=!1;if(e.match(/^-?0x[0-9a-f]+/i)&&(y=!0),e.match(/^-?[1-9]\d*(e[\+\-]?\d+)?/)&&(y=!0),e.match(/^-?0(?![\dx])/i)&&(y=!0),y)return"number"}if(e.match(f))return t.tokenize=v(e.current(),!1,"string"),t.tokenize(e,t);if(e.match(d)){if("/"!=e.current()||e.match(/^.*\//,!1))return t.tokenize=v(e.current(),!0,"string.special"),t.tokenize(e,t);e.backUp(1)}return e.match(o)||e.match(c)?"operator":e.match(a)?"punctuation":e.match(p)?"atom":e.match(l)||t.prop&&e.match(s)?"property":e.match(h)?"keyword":e.match(s)?"variable":(e.next(),r)}function v(e,t,n){return function(r,i){for(;!r.eol();)if(r.eatWhile(/[^'"\/\\]/),r.eat("\\")){if(r.next(),t&&r.eol())return n}else{if(r.match(e))return i.tokenize=m,n;r.eat(/['"\/]/)}return t&&(i.tokenize=m),n}}function g(e,t){for(;!e.eol();){if(e.eatWhile(/[^#]/),e.match("###")){t.tokenize=m;break}e.eatWhile("#")}return"comment"}function y(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"coffee",r=0,i=!1,o=null,a=t.scope;a;a=a.prev)if("coffee"===a.type||"}"==a.type){r=a.offset+e.indentUnit;break}"coffee"!==n?(i=null,o=e.column()+e.current().length):t.scope.align&&(t.scope.align=!1),t.scope={offset:r,type:n,prev:t.scope,align:i,alignOffset:o}}function k(e,t){if(t.scope.prev){if("coffee"===t.scope.type){for(var n=e.indentation(),r=!1,i=t.scope;i;i=i.prev)if(n===i.offset){r=!0;break}if(!r)return!0;for(;t.scope.prev&&t.scope.offset!==n;)t.scope=t.scope.prev;return!1}return t.scope=t.scope.prev,!1}}var b={startState:function(){return{tokenize:m,scope:{offset:0,type:"coffee",prev:null,align:!1},prop:!1,dedent:0}},token:function(e,t){var n=null===t.scope.align&&t.scope;n&&e.sol()&&(n.align=!1);var i=function(e,t){var n=t.tokenize(e,t),i=e.current();"return"===i&&(t.dedent=!0),(("->"===i||"=>"===i)&&e.eol()||"indent"===n)&&y(e,t);var o="[({".indexOf(i);if(-1!==o&&y(e,t,"])}".slice(o,o+1)),u.exec(i)&&y(e,t),"then"==i&&k(e,t),"dedent"===n&&k(e,t))return r;if(-1!==(o="])}".indexOf(i))){for(;"coffee"==t.scope.type&&t.scope.prev;)t.scope=t.scope.prev;t.scope.type==i&&(t.scope=t.scope.prev)}return t.dedent&&e.eol()&&("coffee"==t.scope.type&&t.scope.prev&&(t.scope=t.scope.prev),t.dedent=!1),"indent"==n||"dedent"==n?null:n}(e,t);return i&&"comment"!=i&&(n&&(n.align=!0),t.prop="punctuation"==i&&"."==e.current()),i},indent:function(e,t){if(e.tokenize!=m)return 0;var n=e.scope,r=t&&"])}".indexOf(t.charAt(0))>-1;if(r)for(;"coffee"==n.type&&n.prev;)n=n.prev;var i=r&&n.type===t.charAt(0);return n.align?n.alignOffset-(i?1:0):(i?n.prev:n).offset},languageData:{commentTokens:{line:"#"}}}},9808:function(e,t,n){function r(e,t){if(!e.hasOwnProperty(t))throw new Error("Undefined state "+t+" in simple mode")}function i(e,t){(e.next||e.push)&&r(t,e.next||e.push),this.regex=function(e,t){if(!e)return/(?:)/;var n="";return e instanceof RegExp?(e.ignoreCase&&(n="i"),e=e.source):e=String(e),new RegExp((!1===t?"":"^")+"(?:"+e+")",n)}(e.regex),this.token=function(e){if(!e)return null;if(e.apply)return e;if("string"==typeof e)return e.replace(/\./g," ");for(var t=[],n=0;n2&&a.token&&"string"!=typeof a.token){n.pending=[];for(var c=2;c-1)return null;var i=n.indent.length-1,o=e[n.state];e:for(;;){for(var a=0;a,;]/,a=["->",";",","],s=["and","andalso","band","bnot","bor","bsl","bsr","bxor","div","not","or","orelse","rem","xor"],l=/[\+\-\*\/<>=\|:!]/,c=["=","+","-","*","/",">",">=","<","=<","=:=","==","=/=","/=","||","<-","!"],u=/[<\(\[\{]/,h=["<<","(","[","{"],f=/[>\)\]\}]/,d=["}","]",")",">>"],p=["is_atom","is_binary","is_bitstring","is_boolean","is_float","is_function","is_integer","is_list","is_number","is_pid","is_port","is_record","is_reference","is_tuple","atom","binary","bitstring","boolean","function","integer","list","number","pid","port","record","reference","tuple"],m=["abs","adler32","adler32_combine","alive","apply","atom_to_binary","atom_to_list","binary_to_atom","binary_to_existing_atom","binary_to_list","binary_to_term","bit_size","bitstring_to_list","byte_size","check_process_code","contact_binary","crc32","crc32_combine","date","decode_packet","delete_module","disconnect_node","element","erase","exit","float","float_to_list","garbage_collect","get","get_keys","group_leader","halt","hd","integer_to_list","internal_bif","iolist_size","iolist_to_binary","is_alive","is_atom","is_binary","is_bitstring","is_boolean","is_float","is_function","is_integer","is_list","is_number","is_pid","is_port","is_process_alive","is_record","is_reference","is_tuple","length","link","list_to_atom","list_to_binary","list_to_bitstring","list_to_existing_atom","list_to_float","list_to_integer","list_to_pid","list_to_tuple","load_module","make_ref","module_loaded","monitor_node","node","node_link","node_unlink","nodes","notalive","now","open_port","pid_to_list","port_close","port_command","port_connect","port_control","pre_loaded","process_flag","process_info","processes","purge_module","put","register","registered","round","self","setelement","size","spawn","spawn_link","spawn_monitor","spawn_opt","split_binary","statistics","term_to_binary","time","throw","tl","trunc","tuple_size","tuple_to_list","unlink","unregister","whereis"],v=/[\w@\xd8-\xde\xc0-\xd6\xdf-\xf6\xf8-\xff]/,g=/[0-7]{1,3}|[bdefnrstv\\"']|\^[a-zA-Z]|x[0-9a-zA-Z]{2}|x{[0-9a-zA-Z]+}/;function y(e,t,n){if(1==e.current().length&&t.test(e.current())){for(e.backUp(1);t.test(e.peek());)if(e.next(),S(e.current(),n))return!0;e.backUp(e.current().length-1)}return!1}function k(e,t,n){if(1==e.current().length&&t.test(e.current())){for(;t.test(e.peek());)e.next();for(;01&&"fun"===e[t].type&&"fun"===e[t-1].token)return e.slice(0,t-1);switch(e[t].token){case"}":return T(e,{g:["{"]});case"]":return T(e,{i:["["]});case")":return T(e,{i:["("]});case">>":return T(e,{i:["<<"]});case"end":return T(e,{i:["begin","case","fun","if","receive","try"]});case",":return T(e,{e:["begin","try","when","->",",","(","[","{","<<"]});case"->":return T(e,{r:["when"],m:["try","if","case","receive"]});case";":return T(e,{E:["case","fun","if","receive","try","when"]});case"catch":return T(e,{e:["try"]});case"of":return T(e,{e:["case"]});case"after":return T(e,{e:["receive","try"]});default:return e}}(e.tokenStack))}(e,function(e,t){return C(t.current(),t.column(),t.indentation(),e)}(n,t)),n){case"atom":case"boolean":return"atom";case"attribute":return"attribute";case"builtin":return"builtin";case"close_paren":case"colon":case"dot":case"open_paren":case"separator":default:return null;case"comment":return"comment";case"error":return"error";case"fun":return"meta";case"function":return"tag";case"guard":return"property";case"keyword":return"keyword";case"macro":return"macroName";case"number":return"number";case"operator":return"operator";case"record":return"bracket";case"string":return"string";case"type":return"def";case"variable":return"variable"}}function C(e,t,n,r){return{token:e,column:t,indent:n,type:r}}function A(e){return C(e,0,0,e)}function O(e,t){var n=e.tokenStack.length,r=t||1;return!(n>|\|+|\(/);return M(t)&&0===t.index?t[0]:""}(t),o=O(e,1),a=O(e,2);return e.in_string||e.in_atom?null:a?"when"==o.token?o.column+n.unit:"when"===i&&"function"===a.type?a.indent+n.unit:"("===i&&"fun"===o.token?o.column+3:"catch"===i&&(r=Z(e,["try"]))?r.column:S(i,["end","after","of"])?(r=Z(e,["begin","case","fun","if","receive","try"]))?r.column:null:S(i,d)?(r=Z(e,h))?r.column:null:S(o.token,[",","|","||"])||S(i,[",","|","||"])?(r=function(e){var t=e.tokenStack.slice(0,-1),n=E(t,"type",["open_paren"]);return!!M(t[n])&&t[n]}(e),r?r.column+r.token.length:n.unit):"->"==o.token?S(a.token,["receive","case","if","try"])?a.column+n.unit+n.unit:a.column+n.unit:S(o.token,h)?o.column+o.token.length:(r=function(e){var t=e.tokenStack,n=E(t,"type",["open_paren","separator","keyword"]),r=E(t,"type",["operator"]);return M(n)&&M(r)&&n!|\/]/;function s(e,t){var n,c=e.next();if('"'==c||"'"==c||"`"==c)return t.tokenize=(n=c,function(e,t){for(var r,i=!1,o=!1;null!=(r=e.next());){if(r==n&&!i){o=!0;break}i=!i&&"`"!=n&&"\\"==r}return(o||!i&&"`"!=n)&&(t.tokenize=s),"string"}),t.tokenize(e,t);if(/[\d\.]/.test(c))return"."==c?e.match(/^[0-9]+([eE][\-+]?[0-9]+)?/):"0"==c?e.match(/^[xX][0-9a-fA-F]+/)||e.match(/^0[0-7]+/):e.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/),"number";if(/[\[\]{}\(\),;\:\.]/.test(c))return r=c,null;if("/"==c){if(e.eat("*"))return t.tokenize=l,l(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(a.test(c))return e.eatWhile(a),"operator";e.eatWhile(/[\w\$_\xa1-\uffff]/);var u=e.current();return i.propertyIsEnumerable(u)?("case"!=u&&"default"!=u||(r="case"),"keyword"):o.propertyIsEnumerable(u)?"atom":"variable"}function l(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=s;break}r="*"==n}return"comment"}function c(e,t,n,r,i){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=i}function u(e,t,n){return e.context=new c(e.indented,t,n,null,e.context)}function h(e){if(e.context.prev){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}}var f={startState:function(e){return{tokenize:null,context:new c(-e,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var n=t.context;if(e.sol()&&(null==n.align&&(n.align=!1),t.indented=e.indentation(),t.startOfLine=!0,"case"==n.type&&(n.type="}")),e.eatSpace())return null;r=null;var i=(t.tokenize||s)(e,t);return"comment"==i||(null==n.align&&(n.align=!0),"{"==r?u(t,e.column(),"}"):"["==r?u(t,e.column(),"]"):"("==r?u(t,e.column(),")"):"case"==r?n.type="case":("}"==r&&"}"==n.type||r==n.type)&&h(t),t.startOfLine=!1),i},indent:function(e,t,n){if(e.tokenize!=s&&null!=e.tokenize)return null;var r=e.context,i=t&&t.charAt(0);if("case"==r.type&&/^(?:case|default)\b/.test(t))return e.context.type="}",r.indented;var o=i==r.type;return r.align?r.column+(o?0:1):r.indented+(o?0:n.unit)},languageData:{indentOnInput:/^\s([{}]|case |default\s*:)$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}}},18:function(e,t,n){function r(e,t,n){return"undefined"===typeof n&&(n=""),"undefined"===typeof t&&(t="\\b"),new RegExp("^"+n+"(("+e.join(")|(")+"))"+t)}n.d(t,{e:function(){return A}});var i=["[<>]:","[<>=]=","<<=?",">>>?=?","=>","--?>","<--[->]?","\\/\\/","\\.{2,3}","[\\.\\\\%*+\\-<>!\\/^|&]=?","\\?","\\$","~",":"],o=r(["[<>]:","[<>=]=","<<=?",">>>?=?","=>","--?>","<--[->]?","\\/\\/","[\\\\%*+\\-<>!\\/^|&\\u00F7\\u22BB]=?","\\?","\\$","~",":","\\u00D7","\\u2208","\\u2209","\\u220B","\\u220C","\\u2218","\\u221A","\\u221B","\\u2229","\\u222A","\\u2260","\\u2264","\\u2265","\\u2286","\\u2288","\\u228A","\\u22C5","\\b(in|isa)\\b(?!.?\\()"],""),a=/^[;,()[\]{}]/,s=/^[_A-Za-z\u00A1-\u2217\u2219-\uFFFF][\w\u00A1-\u2217\u2219-\uFFFF]*!*/,l=r(["\\\\[0-7]{1,3}","\\\\x[A-Fa-f0-9]{1,2}","\\\\[abefnrtv0%?'\"\\\\]","([^\\u0027\\u005C\\uD800-\\uDFFF]|[\\uD800-\\uDFFF][\\uDC00-\\uDFFF])"],"'"),c=["if","else","elseif","while","for","begin","let","end","do","try","catch","finally","return","break","continue","global","local","const","export","import","importall","using","function","where","macro","module","baremodule","struct","type","mutable","immutable","quote","typealias","abstract","primitive","bitstype"],u=["true","false","nothing","NaN","Inf"],h=r(["begin","function","type","struct","immutable","let","macro","for","while","quote","if","else","elseif","try","finally","catch","do"]),f=r(["end","else","elseif","catch","finally"]),d=r(c),p=r(u),m=/^@[_A-Za-z\u00A1-\uFFFF][\w\u00A1-\uFFFF]*!*/,v=/^:[_A-Za-z\u00A1-\uFFFF][\w\u00A1-\uFFFF]*!*/,g=/^(`|([_A-Za-z\u00A1-\uFFFF]*"("")?))/,y=r(i,"","@"),k=r(i,"",":");function b(e){return e.nestedArrays>0}function w(e,t){return"undefined"===typeof t&&(t=0),e.scopes.length<=t?null:e.scopes[e.scopes.length-(t+1)]}function x(e,t){if(e.match("#=",!1))return t.tokenize=_,t.tokenize(e,t);var n=t.leavingExpr;if(e.sol()&&(n=!1),t.leavingExpr=!1,n&&e.match(/^'+/))return"operator";if(e.match(/\.{4,}/))return"error";if(e.match(/\.{1,3}/))return"operator";if(e.eatSpace())return null;var r,i=e.peek();if("#"===i)return e.skipToEnd(),"comment";if("["===i&&(t.scopes.push("["),t.nestedArrays++),"("===i&&(t.scopes.push("("),t.nestedGenerators++),b(t)&&"]"===i){for(;t.scopes.length&&"["!==w(t);)t.scopes.pop();t.scopes.pop(),t.nestedArrays--,t.leavingExpr=!0}if(function(e){return e.nestedGenerators>0}(t)&&")"===i){for(;t.scopes.length&&"("!==w(t);)t.scopes.pop();t.scopes.pop(),t.nestedGenerators--,t.leavingExpr=!0}if(b(t)){if("end"==t.lastToken&&e.match(":"))return"operator";if(e.match("end"))return"number"}if((r=e.match(h,!1))&&t.scopes.push(r[0]),e.match(f,!1)&&t.scopes.pop(),e.match(/^::(?![:\$])/))return t.tokenize=S,t.tokenize(e,t);if(!n&&(e.match(v)||e.match(k)))return"builtin";if(e.match(o))return"operator";if(e.match(/^\.?\d/,!1)){var l=RegExp(/^im\b/),c=!1;if(e.match(/^0x\.[0-9a-f_]+p[\+\-]?[_\d]+/i)&&(c=!0),e.match(/^0x[0-9a-f_]+/i)&&(c=!0),e.match(/^0b[01_]+/i)&&(c=!0),e.match(/^0o[0-7_]+/i)&&(c=!0),e.match(/^(?:(?:\d[_\d]*)?\.(?!\.)(?:\d[_\d]*)?|\d[_\d]*\.(?!\.)(?:\d[_\d]*))?([Eef][\+\-]?[_\d]+)?/i)&&(c=!0),e.match(/^\d[_\d]*(e[\+\-]?\d+)?/i)&&(c=!0),c)return e.match(l),t.leavingExpr=!0,"number"}if(e.match("'"))return t.tokenize=C,t.tokenize(e,t);if(e.match(g))return t.tokenize=function(e){'"""'===e.substr(-3)?e='"""':'"'===e.substr(-1)&&(e='"');function t(t,n){if(t.eat("\\"))t.next();else{if(t.match(e))return n.tokenize=x,n.leavingExpr=!0,"string";t.eat(/[`"]/)}return t.eatWhile(/[^\\`"]/),"string"}return t}(e.current()),t.tokenize(e,t);if(e.match(m)||e.match(y))return"meta";if(e.match(a))return null;if(e.match(d))return"keyword";if(e.match(p))return"builtin";var u=t.isDefinition||"function"==t.lastToken||"macro"==t.lastToken||"type"==t.lastToken||"struct"==t.lastToken||"immutable"==t.lastToken;return e.match(s)?u?"."===e.peek()?(t.isDefinition=!0,"variable"):(t.isDefinition=!1,"def"):(t.leavingExpr=!0,"variable"):(e.next(),"error")}function S(e,t){return e.match(/.*?(?=[,;{}()=\s]|$)/),e.match("{")?t.nestedParameters++:e.match("}")&&t.nestedParameters>0&&t.nestedParameters--,t.nestedParameters>0?e.match(/.*?(?={|})/)||e.next():0==t.nestedParameters&&(t.tokenize=x),"builtin"}function _(e,t){return e.match("#=")&&t.nestedComments++,e.match(/.*?(?=(#=|=#))/)||e.skipToEnd(),e.match("=#")&&(t.nestedComments--,0==t.nestedComments&&(t.tokenize=x)),"comment"}function C(e,t){var n,r=!1;if(e.match(l))r=!0;else if(n=e.match(/\\u([a-f0-9]{1,4})(?=')/i)){((i=parseInt(n[1],16))<=55295||i>=57344)&&(r=!0,e.next())}else if(n=e.match(/\\U([A-Fa-f0-9]{5,8})(?=')/)){var i;(i=parseInt(n[1],16))<=1114111&&(r=!0,e.next())}return r?(t.leavingExpr=!0,t.tokenize=x,"string"):(e.match(/^[^']+(?=')/)||e.skipToEnd(),e.match("'")&&(t.tokenize=x),"error")}var A={startState:function(){return{tokenize:x,scopes:[],lastToken:null,leavingExpr:!1,isDefinition:!1,nestedArrays:0,nestedComments:0,nestedGenerators:0,nestedParameters:0,firstParenPos:-1}},token:function(e,t){var n=t.tokenize(e,t),r=e.current();return r&&n&&(t.lastToken=r),n},indent:function(e,t,n){var r=0;return("]"===t||")"===t||/^end\b/.test(t)||/^else/.test(t)||/^catch\b/.test(t)||/^elseif\b/.test(t)||/^finally/.test(t))&&(r=-1),(e.scopes.length+r)*n.unit},languageData:{indentOnInput:/^\s*(end|else|catch|finally)\b$/,commentTokens:{line:"#",block:{open:"#=",close:"=#"}},closeBrackets:{brackets:["(","[","{",'"']},autocomplete:c.concat(u)}}},8349:function(e,t,n){n.d(t,{b:function(){return p}});var r=function(e,t){var n=t.next||"start";if(n){t.next=t.next;var r=l[n];if(r.splice){for(var i=0;i|\\b(?:e(?:lse|xport)|d(?:o|efault)|t(?:ry|hen)|finally|import(?:\\s*all)?|const|var|let|new|catch(?:\\s*"+i+")?))\\s*$"),a="(?![$\\w]|-[A-Za-z]|\\s*:(?![:=]))",s={token:"string",regex:".+"},l={start:[{token:"docComment",regex:"/\\*",next:"comment"},{token:"comment",regex:"#.*"},{token:"keyword",regex:"(?:t(?:h(?:is|row|en)|ry|ypeof!?)|c(?:on(?:tinue|st)|a(?:se|tch)|lass)|i(?:n(?:stanceof)?|mp(?:ort(?:\\s+all)?|lements)|[fs])|d(?:e(?:fault|lete|bugger)|o)|f(?:or(?:\\s+own)?|inally|unction)|s(?:uper|witch)|e(?:lse|x(?:tends|port)|val)|a(?:nd|rguments)|n(?:ew|ot)|un(?:less|til)|w(?:hile|ith)|o[fr]|return|break|let|var|loop)"+a},{token:"atom",regex:"(?:true|false|yes|no|on|off|null|void|undefined)"+a},{token:"invalid",regex:"(?:p(?:ackage|r(?:ivate|otected)|ublic)|i(?:mplements|nterface)|enum|static|yield)"+a},{token:"className.standard",regex:"(?:R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|Array|Boolean|Date|Function|Number|Object|TypeError|URIError)"+a},{token:"variableName.function.standard",regex:"(?:is(?:NaN|Finite)|parse(?:Int|Float)|Math|JSON|(?:en|de)codeURI(?:Component)?)"+a},{token:"variableName.standard",regex:"(?:t(?:hat|il|o)|f(?:rom|allthrough)|it|by|e)"+a},{token:"variableName",regex:i+"\\s*:(?![:=])"},{token:"variableName",regex:i},{token:"operatorKeyword",regex:"(?:\\.{3}|\\s+\\?)"},{token:"keyword",regex:"(?:@+|::|\\.\\.)",next:"key"},{token:"operatorKeyword",regex:"\\.\\s*",next:"key"},{token:"string",regex:"\\\\\\S[^\\s,;)}\\]]*"},{token:"docString",regex:"'''",next:"qdoc"},{token:"docString",regex:'"""',next:"qqdoc"},{token:"string",regex:"'",next:"qstring"},{token:"string",regex:'"',next:"qqstring"},{token:"string",regex:"`",next:"js"},{token:"string",regex:"<\\[",next:"words"},{token:"regexp",regex:"//",next:"heregex"},{token:"regexp",regex:"\\/(?:[^[\\/\\n\\\\]*(?:(?:\\\\.|\\[[^\\]\\n\\\\]*(?:\\\\.[^\\]\\n\\\\]*)*\\])[^[\\/\\n\\\\]*)*)\\/[gimy$]{0,4}",next:"key"},{token:"number",regex:"(?:0x[\\da-fA-F][\\da-fA-F_]*|(?:[2-9]|[12]\\d|3[0-6])r[\\da-zA-Z][\\da-zA-Z_]*|(?:\\d[\\d_]*(?:\\.\\d[\\d_]*)?|\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[\\w$]*)"},{token:"paren",regex:"[({[]"},{token:"paren",regex:"[)}\\]]",next:"key"},{token:"operatorKeyword",regex:"\\S+"},{token:"content",regex:"\\s+"}],heregex:[{token:"regexp",regex:".*?//[gimy$?]{0,4}",next:"start"},{token:"regexp",regex:"\\s*#{"},{token:"comment",regex:"\\s+(?:#.*)?"},{token:"regexp",regex:"\\S+"}],key:[{token:"operatorKeyword",regex:"[.?@!]+"},{token:"variableName",regex:i,next:"start"},{token:"content",regex:"",next:"start"}],comment:[{token:"docComment",regex:".*?\\*/",next:"start"},{token:"docComment",regex:".+"}],qdoc:[{token:"string",regex:".*?'''",next:"key"},s],qqdoc:[{token:"string",regex:'.*?"""',next:"key"},s],qstring:[{token:"string",regex:"[^\\\\']*(?:\\\\.[^\\\\']*)*'",next:"key"},s],qqstring:[{token:"string",regex:'[^\\\\"]*(?:\\\\.[^\\\\"]*)*"',next:"key"},s],js:[{token:"string",regex:"[^\\\\`]*(?:\\\\.[^\\\\`]*)*`",next:"key"},s],words:[{token:"string",regex:".*?\\]>",next:"key"},s]};for(var c in l){var u=l[c];if(u.splice)for(var h=0,f=u.length;h*\/]/.test(i)?l(null,"select-op"):/[;{}:\[\]]/.test(i)?l(null,i):(e.eatWhile(/[\w\\\-]/),l("variable","variable")):l(null,"compare"):void l(null,"compare")}function u(e,t){for(var n,r=!1;null!=(n=e.next());){if(r&&"/"==n){t.tokenize=c;break}r="*"==n}return l("comment","comment")}function h(e,t){for(var n,r=0;null!=(n=e.next());){if(r>=2&&">"==n){t.tokenize=c;break}r="-"==n?r+1:0}return l("comment","comment")}var f={startState:function(){return{tokenize:c,baseIndent:0,stack:[]}},token:function(e,t){if(e.eatSpace())return null;i=null;var n=t.tokenize(e,t),r=t.stack[t.stack.length-1];return"hash"==i&&"rule"==r?n="atom":"variable"==n&&("rule"==r?n="number":r&&"@media{"!=r||(n="tag")),"rule"==r&&/^[\{\};]$/.test(i)&&t.stack.pop(),"{"==i?"@media"==r?t.stack[t.stack.length-1]="@media{":t.stack.push("{"):"}"==i?t.stack.pop():"@media"==i?t.stack.push("@media"):"{"==r&&"comment"!=i&&t.stack.push("rule"),n},indent:function(e,t,n){var r=e.stack.length;return/^\}/.test(t)&&(r-="rule"==e.stack[e.stack.length-1]?2:1),e.baseIndent+r*n.unit},languageData:{indentOnInput:/^\s*\}$/}}},1341:function(e,t,n){n.d(t,{Y:function(){return c}});var r=function(e){for(var t={},n=e.split(" "),r=0;r!?|\/]/;function a(e,t){var n,a=e.next();if("#"==a&&t.startOfLine)return e.skipToEnd(),"meta";if('"'==a||"'"==a)return t.tokenize=(n=a,function(e,t){for(var r,i=!1,o=!1;null!=(r=e.next());){if(r==n&&!i){o=!0;break}i=!i&&"\\"==r}return!o&&i||(t.tokenize=null),"string"}),t.tokenize(e,t);if("("==a&&e.eat("*"))return t.tokenize=s,s(e,t);if("{"==a)return t.tokenize=l,l(e,t);if(/[\[\]\(\),;\:\.]/.test(a))return null;if(/\d/.test(a))return e.eatWhile(/[\w\.]/),"number";if("/"==a&&e.eat("/"))return e.skipToEnd(),"comment";if(o.test(a))return e.eatWhile(o),"operator";e.eatWhile(/[\w\$_]/);var c=e.current();return r.propertyIsEnumerable(c)?"keyword":i.propertyIsEnumerable(c)?"atom":"variable"}function s(e,t){for(var n,r=!1;n=e.next();){if(")"==n&&r){t.tokenize=null;break}r="*"==n}return"comment"}function l(e,t){for(var n;n=e.next();)if("}"==n){t.tokenize=null;break}return"comment"}var c={startState:function(){return{tokenize:null}},token:function(e,t){if(e.eatSpace())return null;var n=(t.tokenize||a)(e,t);return n},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{block:{open:"(*",close:"*)"}}}}},4369:function(e,t,n){function r(e,t){return e.string.charAt(e.pos+(t||0))}function i(e,t){if(t){var n=e.pos-t;return e.string.substr(n>=0?n:0,t)}return e.string.substr(0,e.pos-1)}function o(e,t){var n=e.string.length,r=n-e.pos+1;return e.string.substr(e.pos,t&&t=(n=e.string.length-1)?e.pos=n:e.pos=r}n.d(t,{W:function(){return d}});var s={"->":4,"++":4,"--":4,"**":4,"=~":4,"!~":4,"*":4,"/":4,"%":4,x:4,"+":4,"-":4,".":4,"<<":4,">>":4,"<":4,">":4,"<=":4,">=":4,lt:4,gt:4,le:4,ge:4,"==":4,"!=":4,"<=>":4,eq:4,ne:4,cmp:4,"~~":4,"&":4,"|":4,"^":4,"&&":4,"||":4,"//":4,"..":4,"...":4,"?":4,":":4,"=":4,"+=":4,"-=":4,"*=":4,",":4,"=>":4,"::":4,not:4,and:4,or:4,xor:4,BEGIN:[5,1],END:[5,1],PRINT:[5,1],PRINTF:[5,1],GETC:[5,1],READ:[5,1],READLINE:[5,1],DESTROY:[5,1],TIE:[5,1],TIEHANDLE:[5,1],UNTIE:[5,1],STDIN:5,STDIN_TOP:5,STDOUT:5,STDOUT_TOP:5,STDERR:5,STDERR_TOP:5,$ARG:5,$_:5,"@ARG":5,"@_":5,$LIST_SEPARATOR:5,'$"':5,$PROCESS_ID:5,$PID:5,$$:5,$REAL_GROUP_ID:5,$GID:5,"$(":5,$EFFECTIVE_GROUP_ID:5,$EGID:5,"$)":5,$PROGRAM_NAME:5,$0:5,$SUBSCRIPT_SEPARATOR:5,$SUBSEP:5,"$;":5,$REAL_USER_ID:5,$UID:5,"$<":5,$EFFECTIVE_USER_ID:5,$EUID:5,"$>":5,$a:5,$b:5,$COMPILING:5,"$^C":5,$DEBUGGING:5,"$^D":5,"${^ENCODING}":5,$ENV:5,"%ENV":5,$SYSTEM_FD_MAX:5,"$^F":5,"@F":5,"${^GLOBAL_PHASE}":5,"$^H":5,"%^H":5,"@INC":5,"%INC":5,$INPLACE_EDIT:5,"$^I":5,"$^M":5,$OSNAME:5,"$^O":5,"${^OPEN}":5,$PERLDB:5,"$^P":5,$SIG:5,"%SIG":5,$BASETIME:5,"$^T":5,"${^TAINT}":5,"${^UNICODE}":5,"${^UTF8CACHE}":5,"${^UTF8LOCALE}":5,$PERL_VERSION:5,"$^V":5,"${^WIN32_SLOPPY_STAT}":5,$EXECUTABLE_NAME:5,"$^X":5,$1:5,$MATCH:5,"$&":5,"${^MATCH}":5,$PREMATCH:5,"$`":5,"${^PREMATCH}":5,$POSTMATCH:5,"$'":5,"${^POSTMATCH}":5,$LAST_PAREN_MATCH:5,"$+":5,$LAST_SUBMATCH_RESULT:5,"$^N":5,"@LAST_MATCH_END":5,"@+":5,"%LAST_PAREN_MATCH":5,"%+":5,"@LAST_MATCH_START":5,"@-":5,"%LAST_MATCH_START":5,"%-":5,$LAST_REGEXP_CODE_RESULT:5,"$^R":5,"${^RE_DEBUG_FLAGS}":5,"${^RE_TRIE_MAXBUF}":5,$ARGV:5,"@ARGV":5,ARGV:5,ARGVOUT:5,$OUTPUT_FIELD_SEPARATOR:5,$OFS:5,"$,":5,$INPUT_LINE_NUMBER:5,$NR:5,"$.":5,$INPUT_RECORD_SEPARATOR:5,$RS:5,"$/":5,$OUTPUT_RECORD_SEPARATOR:5,$ORS:5,"$\\":5,$OUTPUT_AUTOFLUSH:5,"$|":5,$ACCUMULATOR:5,"$^A":5,$FORMAT_FORMFEED:5,"$^L":5,$FORMAT_PAGE_NUMBER:5,"$%":5,$FORMAT_LINES_LEFT:5,"$-":5,$FORMAT_LINE_BREAK_CHARACTERS:5,"$:":5,$FORMAT_LINES_PER_PAGE:5,"$=":5,$FORMAT_TOP_NAME:5,"$^":5,$FORMAT_NAME:5,"$~":5,"${^CHILD_ERROR_NATIVE}":5,$EXTENDED_OS_ERROR:5,"$^E":5,$EXCEPTIONS_BEING_CAUGHT:5,"$^S":5,$WARNING:5,"$^W":5,"${^WARNING_BITS}":5,$OS_ERROR:5,$ERRNO:5,"$!":5,"%OS_ERROR":5,"%ERRNO":5,"%!":5,$CHILD_ERROR:5,"$?":5,$EVAL_ERROR:5,"$@":5,$OFMT:5,"$#":5,"$*":5,$ARRAY_BASE:5,"$[":5,$OLD_PERL_VERSION:5,"$]":5,if:[1,1],elsif:[1,1],else:[1,1],while:[1,1],unless:[1,1],for:[1,1],foreach:[1,1],abs:1,accept:1,alarm:1,atan2:1,bind:1,binmode:1,bless:1,bootstrap:1,break:1,caller:1,chdir:1,chmod:1,chomp:1,chop:1,chown:1,chr:1,chroot:1,close:1,closedir:1,connect:1,continue:[1,1],cos:1,crypt:1,dbmclose:1,dbmopen:1,default:1,defined:1,delete:1,die:1,do:1,dump:1,each:1,endgrent:1,endhostent:1,endnetent:1,endprotoent:1,endpwent:1,endservent:1,eof:1,eval:1,exec:1,exists:1,exit:1,exp:1,fcntl:1,fileno:1,flock:1,fork:1,format:1,formline:1,getc:1,getgrent:1,getgrgid:1,getgrnam:1,gethostbyaddr:1,gethostbyname:1,gethostent:1,getlogin:1,getnetbyaddr:1,getnetbyname:1,getnetent:1,getpeername:1,getpgrp:1,getppid:1,getpriority:1,getprotobyname:1,getprotobynumber:1,getprotoent:1,getpwent:1,getpwnam:1,getpwuid:1,getservbyname:1,getservbyport:1,getservent:1,getsockname:1,getsockopt:1,given:1,glob:1,gmtime:1,goto:1,grep:1,hex:1,import:1,index:1,int:1,ioctl:1,join:1,keys:1,kill:1,last:1,lc:1,lcfirst:1,length:1,link:1,listen:1,local:2,localtime:1,lock:1,log:1,lstat:1,m:null,map:1,mkdir:1,msgctl:1,msgget:1,msgrcv:1,msgsnd:1,my:2,new:1,next:1,no:1,oct:1,open:1,opendir:1,ord:1,our:2,pack:1,package:1,pipe:1,pop:1,pos:1,print:1,printf:1,prototype:1,push:1,q:null,qq:null,qr:null,quotemeta:null,qw:null,qx:null,rand:1,read:1,readdir:1,readline:1,readlink:1,readpipe:1,recv:1,redo:1,ref:1,rename:1,require:1,reset:1,return:1,reverse:1,rewinddir:1,rindex:1,rmdir:1,s:null,say:1,scalar:1,seek:1,seekdir:1,select:1,semctl:1,semget:1,semop:1,send:1,setgrent:1,sethostent:1,setnetent:1,setpgrp:1,setpriority:1,setprotoent:1,setpwent:1,setservent:1,setsockopt:1,shift:1,shmctl:1,shmget:1,shmread:1,shmwrite:1,shutdown:1,sin:1,sleep:1,socket:1,socketpair:1,sort:1,splice:1,split:1,sprintf:1,sqrt:1,srand:1,stat:1,state:1,study:1,sub:1,substr:1,symlink:1,syscall:1,sysopen:1,sysread:1,sysseek:1,system:1,syswrite:1,tell:1,telldir:1,tie:1,tied:1,time:1,times:1,tr:null,truncate:1,uc:1,ucfirst:1,umask:1,undef:1,unlink:1,unpack:1,unshift:1,untie:1,use:1,utime:1,values:1,vec:1,wait:1,waitpid:1,wantarray:1,warn:1,when:1,write:1,y:null},l="string.special",c=/[goseximacplud]/;function u(e,t,n,r,i){return t.chain=null,t.style=null,t.tail=null,t.tokenize=function(e,t){for(var o,a=!1,s=0;o=e.next();){if(o===n[s]&&!a)return void 0!==n[++s]?(t.chain=n[s],t.style=r,t.tail=i):i&&e.eatWhile(i),t.tokenize=f,r;a=!a&&"\\"==o}return r},t.tokenize(e,t)}function h(e,t,n){return t.tokenize=function(e,t){return e.string==n&&(t.tokenize=f),e.skipToEnd(),"string"},t.tokenize(e,t)}function f(e,t){if(e.eatSpace())return null;if(t.chain)return u(e,t,t.chain,t.style,t.tail);if(e.match(/^(\-?((\d[\d_]*)?\.\d+(e[+-]?\d+)?|\d+\.\d*)|0x[\da-fA-F_]+|0b[01_]+|\d[\d_]*(e[+-]?\d+)?)/))return"number";if(e.match(/^<<(?=[_a-zA-Z])/))return e.eatWhile(/\w/),h(e,t,e.current().substr(2));if(e.sol()&&e.match(/^\=item(?!\w)/))return h(e,t,"=cut");var n=e.next();if('"'==n||"'"==n){if(i(e,3)=="<<"+n){var f=e.pos;e.eatWhile(/\w/);var d=e.current().substr(1);if(d&&e.eat(n))return h(e,t,d);e.pos=f}return u(e,t,[n],"string")}if("q"==n&&(!(p=r(e,-2))||!/\w/.test(p)))if("x"==(p=r(e,0))){if("("==(p=r(e,1)))return a(e,2),u(e,t,[")"],l,c);if("["==p)return a(e,2),u(e,t,["]"],l,c);if("{"==p)return a(e,2),u(e,t,["}"],l,c);if("<"==p)return a(e,2),u(e,t,[">"],l,c);if(/[\^'"!~\/]/.test(p))return a(e,1),u(e,t,[e.eat(p)],l,c)}else if("q"==p){if("("==(p=r(e,1)))return a(e,2),u(e,t,[")"],"string");if("["==p)return a(e,2),u(e,t,["]"],"string");if("{"==p)return a(e,2),u(e,t,["}"],"string");if("<"==p)return a(e,2),u(e,t,[">"],"string");if(/[\^'"!~\/]/.test(p))return a(e,1),u(e,t,[e.eat(p)],"string")}else if("w"==p){if("("==(p=r(e,1)))return a(e,2),u(e,t,[")"],"bracket");if("["==p)return a(e,2),u(e,t,["]"],"bracket");if("{"==p)return a(e,2),u(e,t,["}"],"bracket");if("<"==p)return a(e,2),u(e,t,[">"],"bracket");if(/[\^'"!~\/]/.test(p))return a(e,1),u(e,t,[e.eat(p)],"bracket")}else if("r"==p){if("("==(p=r(e,1)))return a(e,2),u(e,t,[")"],l,c);if("["==p)return a(e,2),u(e,t,["]"],l,c);if("{"==p)return a(e,2),u(e,t,["}"],l,c);if("<"==p)return a(e,2),u(e,t,[">"],l,c);if(/[\^'"!~\/]/.test(p))return a(e,1),u(e,t,[e.eat(p)],l,c)}else if(/[\^'"!~\/(\[{<]/.test(p)){if("("==p)return a(e,1),u(e,t,[")"],"string");if("["==p)return a(e,1),u(e,t,["]"],"string");if("{"==p)return a(e,1),u(e,t,["}"],"string");if("<"==p)return a(e,1),u(e,t,[">"],"string");if(/[\^'"!~\/]/.test(p))return u(e,t,[e.eat(p)],"string")}if("m"==n&&((!(p=r(e,-2))||!/\w/.test(p))&&(p=e.eat(/[(\[{<\^'"!~\/]/)))){if(/[\^'"!~\/]/.test(p))return u(e,t,[p],l,c);if("("==p)return u(e,t,[")"],l,c);if("["==p)return u(e,t,["]"],l,c);if("{"==p)return u(e,t,["}"],l,c);if("<"==p)return u(e,t,[">"],l,c)}if("s"==n&&(!(p=/[\/>\]})\w]/.test(r(e,-2)))&&(p=e.eat(/[(\[{<\^'"!~\/]/))))return u(e,t,"["==p?["]","]"]:"{"==p?["}","}"]:"<"==p?[">",">"]:"("==p?[")",")"]:[p,p],l,c);if("y"==n&&(!(p=/[\/>\]})\w]/.test(r(e,-2)))&&(p=e.eat(/[(\[{<\^'"!~\/]/))))return u(e,t,"["==p?["]","]"]:"{"==p?["}","}"]:"<"==p?[">",">"]:"("==p?[")",")"]:[p,p],l,c);if("t"==n&&(!(p=/[\/>\]})\w]/.test(r(e,-2)))&&(p=e.eat("r"))&&(p=e.eat(/[(\[{<\^'"!~\/]/))))return u(e,t,"["==p?["]","]"]:"{"==p?["}","}"]:"<"==p?[">",">"]:"("==p?[")",")"]:[p,p],l,c);if("`"==n)return u(e,t,[n],"builtin");if("/"==n)return/~\s*$/.test(i(e))?u(e,t,[n],l,c):"operator";if("$"==n){f=e.pos;if(e.eatWhile(/\d/)||e.eat("{")&&e.eatWhile(/\d/)&&e.eat("}"))return"builtin";e.pos=f}if(/[$@%]/.test(n)){f=e.pos;if(e.eat("^")&&e.eat(/[A-Z]/)||!/[@$%&]/.test(r(e,-2))&&e.eat(/[=|\\\-#?@;:&`~\^!\[\]*'"$+.,\/<>()]/)){var p=e.current();if(s[p])return"builtin"}e.pos=f}if(/[$@%&]/.test(n)&&(e.eatWhile(/[\w$]/)||e.eat("{")&&e.eatWhile(/[\w$]/)&&e.eat("}"))){p=e.current();return s[p]?"builtin":"variable"}if("#"==n&&"$"!=r(e,-2))return e.skipToEnd(),"comment";if(/[:+\-\^*$&%@=<>!?|\/~\.]/.test(n)){f=e.pos;if(e.eatWhile(/[:+\-\^*$&%@=<>!?|\/~\.]/),s[e.current()])return"operator";e.pos=f}if("_"==n&&1==e.pos){if("_END__"==o(e,6))return u(e,t,["\0"],"comment");if("_DATA__"==o(e,7))return u(e,t,["\0"],"builtin");if("_C__"==o(e,7))return u(e,t,["\0"],"string")}if(/\w/.test(n)){f=e.pos;if("{"==r(e,-2)&&("}"==r(e,0)||e.eatWhile(/\w/)&&"}"==r(e,0)))return"string";e.pos=f}if(/[A-Z]/.test(n)){var m=r(e,-2);f=e.pos;if(e.eatWhile(/[A-Z_]/),!/[\da-z]/.test(r(e,0)))return(p=s[e.current()])?(p[1]&&(p=p[0]),":"!=m?1==p?"keyword":2==p?"def":3==p?"atom":4==p?"operator":5==p?"builtin":"meta":"meta"):"meta";e.pos=f}if(/[a-zA-Z_]/.test(n)){m=r(e,-2);return e.eatWhile(/\w/),(p=s[e.current()])?(p[1]&&(p=p[0]),":"!=m?1==p?"keyword":2==p?"def":3==p?"atom":4==p?"operator":5==p?"builtin":"meta":"meta"):"meta"}return null}var d={startState:function(){return{tokenize:f,chain:null,style:null,tail:null}},token:function(e,t){return(t.tokenize||f)(e,t)},languageData:{commentTokens:{line:"#"},wordChars:"$"}}},9830:function(e,t,n){function r(e,t){for(var n=void 0!==(t=t||{}).prefix?t.prefix:"^",r=void 0!==t.suffix?t.suffix:"\\b",i=0;i/],{suffix:""}),c=r([/Add-(Computer|Content|History|Member|PSSnapin|Type)/,/Checkpoint-Computer/,/Clear-(Content|EventLog|History|Host|Item(Property)?|Variable)/,/Compare-Object/,/Complete-Transaction/,/Connect-PSSession/,/ConvertFrom-(Csv|Json|SecureString|StringData)/,/Convert-Path/,/ConvertTo-(Csv|Html|Json|SecureString|Xml)/,/Copy-Item(Property)?/,/Debug-Process/,/Disable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,/Disconnect-PSSession/,/Enable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,/(Enter|Exit)-PSSession/,/Export-(Alias|Clixml|Console|Counter|Csv|FormatData|ModuleMember|PSSession)/,/ForEach-Object/,/Format-(Custom|List|Table|Wide)/,new RegExp("Get-(Acl|Alias|AuthenticodeSignature|ChildItem|Command|ComputerRestorePoint|Content|ControlPanelItem|Counter|Credential|Culture|Date|Event|EventLog|EventSubscriber|ExecutionPolicy|FormatData|Help|History|Host|HotFix|Item|ItemProperty|Job|Location|Member|Module|PfxCertificate|Process|PSBreakpoint|PSCallStack|PSDrive|PSProvider|PSSession|PSSessionConfiguration|PSSnapin|Random|Service|TraceSource|Transaction|TypeData|UICulture|Unique|Variable|Verb|WinEvent|WmiObject)"),/Group-Object/,/Import-(Alias|Clixml|Counter|Csv|LocalizedData|Module|PSSession)/,/ImportSystemModules/,/Invoke-(Command|Expression|History|Item|RestMethod|WebRequest|WmiMethod)/,/Join-Path/,/Limit-EventLog/,/Measure-(Command|Object)/,/Move-Item(Property)?/,new RegExp("New-(Alias|Event|EventLog|Item(Property)?|Module|ModuleManifest|Object|PSDrive|PSSession|PSSessionConfigurationFile|PSSessionOption|PSTransportOption|Service|TimeSpan|Variable|WebServiceProxy|WinEvent)"),/Out-(Default|File|GridView|Host|Null|Printer|String)/,/Pause/,/(Pop|Push)-Location/,/Read-Host/,/Receive-(Job|PSSession)/,/Register-(EngineEvent|ObjectEvent|PSSessionConfiguration|WmiEvent)/,/Remove-(Computer|Event|EventLog|Item(Property)?|Job|Module|PSBreakpoint|PSDrive|PSSession|PSSnapin|TypeData|Variable|WmiObject)/,/Rename-(Computer|Item(Property)?)/,/Reset-ComputerMachinePassword/,/Resolve-Path/,/Restart-(Computer|Service)/,/Restore-Computer/,/Resume-(Job|Service)/,/Save-Help/,/Select-(Object|String|Xml)/,/Send-MailMessage/,new RegExp("Set-(Acl|Alias|AuthenticodeSignature|Content|Date|ExecutionPolicy|Item(Property)?|Location|PSBreakpoint|PSDebug|PSSessionConfiguration|Service|StrictMode|TraceSource|Variable|WmiInstance)"),/Show-(Command|ControlPanelItem|EventLog)/,/Sort-Object/,/Split-Path/,/Start-(Job|Process|Service|Sleep|Transaction|Transcript)/,/Stop-(Computer|Job|Process|Service|Transcript)/,/Suspend-(Job|Service)/,/TabExpansion2/,/Tee-Object/,/Test-(ComputerSecureChannel|Connection|ModuleManifest|Path|PSSessionConfigurationFile)/,/Trace-Command/,/Unblock-File/,/Undo-Transaction/,/Unregister-(Event|PSSessionConfiguration)/,/Update-(FormatData|Help|List|TypeData)/,/Use-Transaction/,/Wait-(Event|Job|Process)/,/Where-Object/,/Write-(Debug|Error|EventLog|Host|Output|Progress|Verbose|Warning)/,/cd|help|mkdir|more|oss|prompt/,/ac|asnp|cat|cd|chdir|clc|clear|clhy|cli|clp|cls|clv|cnsn|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|dnsn|ebp/,/echo|epal|epcsv|epsn|erase|etsn|exsn|fc|fl|foreach|ft|fw|gal|gbp|gc|gci|gcm|gcs|gdr|ghy|gi|gjb|gl|gm|gmo|gp|gps/,/group|gsn|gsnp|gsv|gu|gv|gwmi|h|history|icm|iex|ihy|ii|ipal|ipcsv|ipmo|ipsn|irm|ise|iwmi|iwr|kill|lp|ls|man|md/,/measure|mi|mount|move|mp|mv|nal|ndr|ni|nmo|npssc|nsn|nv|ogv|oh|popd|ps|pushd|pwd|r|rbp|rcjb|rcsn|rd|rdr|ren|ri/,/rjb|rm|rmdir|rmo|rni|rnp|rp|rsn|rsnp|rujb|rv|rvpa|rwmi|sajb|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls/,/sort|sp|spjb|spps|spsv|start|sujb|sv|swmi|tee|trcm|type|where|wjb|write/],{prefix:"",suffix:""}),u=r([/[$?^_]|Args|ConfirmPreference|ConsoleFileName|DebugPreference|Error|ErrorActionPreference|ErrorView|ExecutionContext/,/FormatEnumerationLimit|Home|Host|Input|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount/,/MaximumHistoryCount|MaximumVariableCount|MyInvocation|NestedPromptLevel|OutputEncoding|Pid|Profile|ProgressPreference/,/PSBoundParameters|PSCommandPath|PSCulture|PSDefaultParameterValues|PSEmailServer|PSHome|PSScriptRoot|PSSessionApplicationName/,/PSSessionConfigurationName|PSSessionOption|PSUICulture|PSVersionTable|Pwd|ShellId|StackTrace|VerbosePreference/,/WarningPreference|WhatIfPreference/,/Event|EventArgs|EventSubscriber|Sender/,/Matches|Ofs|ForEach|LastExitCode|PSCmdlet|PSItem|PSSenderInfo|This/,/true|false|null/],{prefix:"\\$",suffix:""}),h={keyword:a,number:/^((0x[\da-f]+)|((\d+\.\d+|\d\.|\.\d+|\d+)(e[\+\-]?\d+)?))[ld]?([kmgtp]b)?/i,operator:l,builtin:r([/[A-Z]:|%|\?/i,c,u],{suffix:i}),punctuation:/[\[\]{},;`\\\.]|@[({]/,variable:/^[A-Za-z\_][A-Za-z\-\_\d]*\b/};function f(e,t){var n=t.returnStack[t.returnStack.length-1];if(n&&n.shouldReturnFrom(t))return t.tokenize=n.tokenize,t.returnStack.pop(),t.tokenize(e,t);if(e.eatSpace())return null;if(e.eat("("))return t.bracketNesting+=1,"punctuation";if(e.eat(")"))return t.bracketNesting-=1,"punctuation";for(var r in h)if(e.match(h[r]))return r;var i=e.next();if("'"===i)return function(e,t){var n;for(;null!=(n=e.peek());)if(e.next(),"'"===n&&!e.eat("'"))return t.tokenize=f,"string";return"error"}(e,t);if("$"===i)return k(e,t);if('"'===i)return d(e,t);if("<"===i&&e.eat("#"))return t.tokenize=y,y(e,t);if("#"===i)return e.skipToEnd(),"comment";if("@"===i){var a=e.eat(/["']/);if(a&&e.eol())return t.tokenize=w,t.startQuote=a[0],w(e,t);if(e.eol())return"error";if(e.peek().match(/[({]/))return"punctuation";if(e.peek().match(o))return k(e,t)}return"error"}function d(e,t){for(var n;null!=(n=e.peek());){if("$"===n)return t.tokenize=p,"string";if(e.next(),"`"!==n){if('"'===n&&!e.eat('"'))return t.tokenize=f,"string"}else e.next()}return"error"}function p(e,t){return g(e,t,d)}function m(e,t){return t.tokenize=w,t.startQuote='"',w(e,t)}function v(e,t){return g(e,t,m)}function g(e,t,n){if(e.match("$(")){var r=t.bracketNesting;return t.returnStack.push({shouldReturnFrom:function(e){return e.bracketNesting===r},tokenize:n}),t.tokenize=f,t.bracketNesting+=1,"punctuation"}return e.next(),t.returnStack.push({shouldReturnFrom:function(){return!0},tokenize:n}),t.tokenize=k,t.tokenize(e,t)}function y(e,t){for(var n,r=!1;null!=(n=e.next());){if(r&&">"==n){t.tokenize=f;break}r="#"===n}return"comment"}function k(e,t){var n=e.peek();return e.eat("{")?(t.tokenize=b,b(e,t)):void 0!=n&&n.match(o)?(e.eatWhile(o),t.tokenize=f,"variable"):(t.tokenize=f,"error")}function b(e,t){for(var n;null!=(n=e.next());)if("}"===n){t.tokenize=f;break}return"variable"}function w(e,t){var n=t.startQuote;if(e.sol()&&e.match(new RegExp(n+"@")))t.tokenize=f;else if('"'===n)for(;!e.eol();){var r=e.peek();if("$"===r)return t.tokenize=v,"string";e.next(),"`"===r&&e.next()}else e.skipToEnd();return"string"}var x={startState:function(){return{returnStack:[],bracketNesting:0,tokenize:f}},token:function(e,t){return t.tokenize(e,t)},languageData:{commentTokens:{line:"#",block:{open:"<#",close:"#>"}}}}},294:function(e,t,n){function r(e){for(var t={},n=0;n=!&|~$:]/;function d(e,t){i=null;var n,r=e.next();if("#"==r)return e.skipToEnd(),"comment";if("0"==r&&e.eat("x"))return e.eatWhile(/[\da-f]/i),"number";if("."==r&&e.eat(/\d/))return e.match(/\d*(?:e[+\-]?\d+)?/),"number";if(/\d/.test(r))return e.match(/\d*(?:\.\d+)?(?:e[+\-]\d+)?L?/),"number";if("'"==r||'"'==r)return t.tokenize=(n=r,function(e,t){if(e.eat("\\")){var r=e.next();return"x"==r?e.match(/^[a-f0-9]{2}/i):("u"==r||"U"==r)&&e.eat("{")&&e.skipTo("}")?e.next():"u"==r?e.match(/^[a-f0-9]{4}/i):"U"==r?e.match(/^[a-f0-9]{8}/i):/[0-7]/.test(r)&&e.match(/^[0-7]{1,2}/),"string.special"}for(var i;null!=(i=e.next());){if(i==n){t.tokenize=d;break}if("\\"==i){e.backUp(1);break}}return"string"}),"string";if("`"==r)return e.match(/[^`]+`/),"string.special";if("."==r&&e.match(/.(?:[.]|\d+)/))return"keyword";if(/[a-zA-Z\.]/.test(r)){e.eatWhile(/[\w\.]/);var o=e.current();return l.propertyIsEnumerable(o)?"atom":u.propertyIsEnumerable(o)?(h.propertyIsEnumerable(o)&&!e.match(/\s*if(\s+|$)/,!1)&&(i="block"),"keyword"):c.propertyIsEnumerable(o)?"builtin":"variable"}return"%"==r?(e.skipTo("%")&&e.next(),"variableName.special"):"<"==r&&e.eat("-")||"<"==r&&e.match("<-")||"-"==r&&e.match(/>>?/)||"="==r&&t.ctx.argList?"operator":f.test(r)?("$"==r||e.eatWhile(f),"operator"):/[\(\){}\[\];]/.test(r)?(i=r,";"==r?"punctuation":null):null}function p(e,t,n){e.ctx={type:t,indent:e.indent,flags:0,column:n.column(),prev:e.ctx}}function m(e,t){var n=e.ctx;e.ctx={type:n.type,indent:n.indent,flags:n.flags|t,column:n.column,prev:n.prev}}function v(e){e.indent=e.ctx.indent,e.ctx=e.ctx.prev}var g={startState:function(e){return{tokenize:d,ctx:{type:"top",indent:-e,flags:2},indent:0,afterIdent:!1}},token:function(e,t){if(e.sol()&&(0==(3&t.ctx.flags)&&(t.ctx.flags|=2),4&t.ctx.flags&&v(t),t.indent=e.indentation()),e.eatSpace())return null;var n=t.tokenize(e,t);return"comment"!=n&&0==(2&t.ctx.flags)&&m(t,1),";"!=i&&"{"!=i&&"}"!=i||"block"!=t.ctx.type||v(t),"{"==i?p(t,"}",e):"("==i?(p(t,")",e),t.afterIdent&&(t.ctx.argList=!0)):"["==i?p(t,"]",e):"block"==i?p(t,"block",e):i==t.ctx.type?v(t):"block"==t.ctx.type&&"comment"!=n&&m(t,4),t.afterIdent="variable"==n||"keyword"==n,n},indent:function(e,t,n){if(e.tokenize!=d)return 0;var r=t&&t.charAt(0),i=e.ctx,o=r==i.type;return 4&i.flags&&(i=i.prev),"block"==i.type?i.indent+("{"==r?0:n.unit):1&i.flags?i.column+(o?0:1):i.indent+(o?0:n.unit)},languageData:{wordChars:".",commentTokens:{line:"#"},autocomplete:o.concat(a,s)}}},3119:function(e,t,n){function r(e){for(var t={},n=0,r=e.length;n-1)r++;else if("]})".indexOf(t)>-1){if(--r<0)break}else if("/"==t&&0==r){i=!0;break}o="\\"==t}return e.backUp(e.pos-n),i}(e)?h(m(a,"string.special",!0),e,t):"operator";if("%"==a){var s="string",l=!0;e.eat("s")?s="atom":e.eat(/[WQ]/)?s="string":e.eat(/[r]/)?s="string.special":e.eat(/[wxq]/)&&(s="string",l=!1);var u=e.eat(/[^\w\s=]/);return u?(c.propertyIsEnumerable(u)&&(u=c[u]),h(m(u,s,l,!0),e,t)):"operator"}if("#"==a)return e.skipToEnd(),"comment";if("<"==a&&(n=e.match(/^<([-~])[\`\"\']?([a-zA-Z_?]\w*)[\`\"\']?(?:;|$)/)))return h((r=n[2],o=n[1],function(e,t){return o&&e.eatSpace(),e.match(r)?t.tokenize.pop():e.skipToEnd(),"string"}),e,t);if("0"==a)return e.eat("x")?e.eatWhile(/[\da-fA-F]/):e.eat("b")?e.eatWhile(/[01]/):e.eatWhile(/[0-7]/),"number";if(/\d/.test(a))return e.match(/^[\d_]*(?:\.[\d_]+)?(?:[eE][+\-]?[\d_]+)?/),"number";if("?"==a){for(;e.match(/^\\[CM]-/););return e.eat("\\")?e.eatWhile(/\w/):e.next(),"string"}if(":"==a)return e.eat("'")?h(m("'","atom",!1),e,t):e.eat('"')?h(m('"',"atom",!0),e,t):e.eat(/[\<\>]/)?(e.eat(/[\<\>]/),"atom"):e.eat(/[\+\-\*\/\&\|\:\!]/)?"atom":e.eat(/[a-zA-Z$@_\xa1-\uffff]/)?(e.eatWhile(/[\w$\xa1-\uffff]/),e.eat(/[\?\!\=]/),"atom"):"operator";if("@"==a&&e.match(/^@?[a-zA-Z_\xa1-\uffff]/))return e.eat("@"),e.eatWhile(/[\w\xa1-\uffff]/),"propertyName";if("$"==a)return e.eat(/[a-zA-Z_]/)?e.eatWhile(/[\w]/):e.eat(/\d/)?e.eat(/\d/):e.next(),"variableName.special";if(/[a-zA-Z_\xa1-\uffff]/.test(a))return e.eatWhile(/[\w\xa1-\uffff]/),e.eat(/[\?\!]/),e.eat(":")?"atom":"variable";if("|"!=a||!t.varList&&"{"!=t.lastTok&&"do"!=t.lastTok){if(/[\(\)\[\]{}\\;]/.test(a))return i=a,null;if("-"==a&&e.eat(">"))return"operator";if(/[=+\-\/*:\.^%<>~|]/.test(a)){var f=e.eatWhile(/[=+\-\/*:\.^%<>~|]/);return"."!=a||f||(i="."),"operator"}return null}return i="|",null}function d(e){return e||(e=1),function(t,n){if("}"==t.peek()){if(1==e)return n.tokenize.pop(),n.tokenize[n.tokenize.length-1](t,n);n.tokenize[n.tokenize.length-1]=d(e-1)}else"{"==t.peek()&&(n.tokenize[n.tokenize.length-1]=d(e+1));return f(t,n)}}function p(){var e=!1;return function(t,n){return e?(n.tokenize.pop(),n.tokenize[n.tokenize.length-1](t,n)):(e=!0,f(t,n))}}function m(e,t,n,r){return function(i,o){var a,s=!1;for("read-quoted-paused"===o.context.type&&(o.context=o.context.prev,i.eat("}"));null!=(a=i.next());){if(a==e&&(r||!s)){o.tokenize.pop();break}if(n&&"#"==a&&!s){if(i.eat("{")){"}"==e&&(o.context={prev:o.context,type:"read-quoted-paused"}),o.tokenize.push(d());break}if(/[@\$]/.test(i.peek())){o.tokenize.push(p());break}}s=!s&&"\\"==a}return t}}function v(e,t){return e.sol()&&e.match("=end")&&e.eol()&&t.tokenize.pop(),e.skipToEnd(),"comment"}var g={startState:function(e){return{tokenize:[f],indented:0,context:{type:"top",indented:-e},continuedLine:!1,lastTok:null,varList:!1}},token:function(e,t){i=null,e.sol()&&(t.indented=e.indentation());var n,r=t.tokenize[t.tokenize.length-1](e,t),o=i;if("variable"==r){var c=e.current();"keyword"==(r="."==t.lastTok?"property":a.propertyIsEnumerable(e.current())?"keyword":/^[A-Z]/.test(c)?"tag":"def"==t.lastTok||"class"==t.lastTok||t.varList?"def":"variable")&&(o=c,s.propertyIsEnumerable(c)?n="indent":l.propertyIsEnumerable(c)?n="dedent":"if"!=c&&"unless"!=c||e.column()!=e.indentation()?"do"==c&&t.context.indentedinteger char-alphabetic? char-ci<=? char-ci=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt #f floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string=? string>? string? substring symbol->string symbol? #t tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?"),h=c("define let letrec let* lambda define-macro defmacro let-syntax letrec-syntax let-values let*-values define-syntax syntax-rules define-values when unless");function f(e,t,n){this.indent=e,this.type=t,this.prev=n}function d(e,t,n){e.indentStack=new f(t,n,e.indentStack)}var p=new RegExp(/^(?:[-+]i|[-+][01]+#*(?:\/[01]+#*)?i|[-+]?[01]+#*(?:\/[01]+#*)?@[-+]?[01]+#*(?:\/[01]+#*)?|[-+]?[01]+#*(?:\/[01]+#*)?[-+](?:[01]+#*(?:\/[01]+#*)?)?i|[-+]?[01]+#*(?:\/[01]+#*)?)(?=[()\s;"]|$)/i),m=new RegExp(/^(?:[-+]i|[-+][0-7]+#*(?:\/[0-7]+#*)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?@[-+]?[0-7]+#*(?:\/[0-7]+#*)?|[-+]?[0-7]+#*(?:\/[0-7]+#*)?[-+](?:[0-7]+#*(?:\/[0-7]+#*)?)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?)(?=[()\s;"]|$)/i),v=new RegExp(/^(?:[-+]i|[-+][\da-f]+#*(?:\/[\da-f]+#*)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?@[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?[-+](?:[\da-f]+#*(?:\/[\da-f]+#*)?)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?)(?=[()\s;"]|$)/i),g=new RegExp(/^(?:[-+]i|[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)i|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)@[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)?i|(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*))(?=[()\s;"]|$)/i);function y(e){return e.match(p)}function k(e){return e.match(m)}function b(e,t){return!0===t&&e.backUp(1),e.match(g)}function w(e){return e.match(v)}function x(e,t){for(var n,r=!1;null!=(n=e.next());){if(n==t.token&&!r){t.state.mode=!1;break}r=!r&&"\\"==n}}var S={startState:function(){return{indentStack:null,indentation:0,mode:!1,sExprComment:!1,sExprQuote:!1}},token:function(e,t){if(null==t.indentStack&&e.sol()&&(t.indentation=e.indentation()),e.eatSpace())return null;var n=null;switch(t.mode){case"string":x(e,{token:'"',state:t}),n=i;break;case"symbol":x(e,{token:"|",state:t}),n=o;break;case"comment":for(var c,f=!1;null!=(c=e.next());){if("#"==c&&f){t.mode=!1;break}f="|"==c}n=r;break;case"s-expr-comment":if(t.mode=!1,"("!=e.peek()&&"["!=e.peek()){e.eatWhile(/[^\s\(\)\[\]]/),n=r;break}t.sExprComment=0;default:var p=e.next();if('"'==p)t.mode="string",n=i;else if("'"==p)"("==e.peek()||"["==e.peek()?("number"!=typeof t.sExprQuote&&(t.sExprQuote=0),n=a):(e.eatWhile(/[\w_\-!$%&*+\.\/:<=>?@\^~]/),n=a);else if("|"==p)t.mode="symbol",n=o;else if("#"==p)if(e.eat("|"))t.mode="comment",n=r;else if(e.eat(/[tf]/i))n=a;else if(e.eat(";"))t.mode="s-expr-comment",n=r;else{var m=null,v=!1,g=!0;e.eat(/[ei]/i)?v=!0:e.backUp(1),e.match(/^#b/i)?m=y:e.match(/^#o/i)?m=k:e.match(/^#x/i)?m=w:e.match(/^#d/i)?m=b:e.match(/^[-+0-9.]/,!1)?(g=!1,m=b):v||e.eat("#"),null!=m&&(g&&!v&&e.match(/^#[ei]/i),m(e)&&(n=s))}else if(/^[-+0-9.]/.test(p)&&b(e,!0))n=s;else if(";"==p)e.skipToEnd(),n=r;else if("("==p||"["==p){for(var S,_="",C=e.column();null!=(S=e.eat(/[^\s\(\[\;\)\]]/));)_+=S;_.length>0&&h.propertyIsEnumerable(_)?d(t,C+2,p):(e.eatSpace(),e.eol()||";"==e.peek()?d(t,C+1,p):d(t,C+e.current().length,p)),e.backUp(e.current().length-1),"number"==typeof t.sExprComment&&t.sExprComment++,"number"==typeof t.sExprQuote&&t.sExprQuote++,n=l}else")"==p||"]"==p?(n=l,null!=t.indentStack&&t.indentStack.type==(")"==p?"(":"[")&&(!function(e){e.indentStack=e.indentStack.prev}(t),"number"==typeof t.sExprComment&&0==--t.sExprComment&&(n=r,t.sExprComment=!1),"number"==typeof t.sExprQuote&&0==--t.sExprQuote&&(n=a,t.sExprQuote=!1))):(e.eatWhile(/[\w_\-!$%&*+\.\/:<=>?@\^~]/),n=u&&u.propertyIsEnumerable(e.current())?"builtin":"variable")}return"number"==typeof t.sExprComment?r:"number"==typeof t.sExprQuote?a:n},indent:function(e){return null==e.indentStack?e.indentation:e.indentStack.indent},languageData:{closeBrackets:{brackets:["(","[","{",'"']},commentTokens:{line:";;"}}}},5032:function(e,t,n){n.d(t,{I:function(){return d}});var r={};function i(e,t){for(var n=0;n1&&e.eat("$");var n=e.next();return/['"({]/.test(n)?(t.tokens[0]=c(n,"("==n?"quote":"{"==n?"def":"string"),f(e,t)):(/\d/.test(n)||e.eatWhile(/\w/),t.tokens.shift(),"def")};function f(e,t){return(t.tokens[0]||l)(e,t)}var d={startState:function(){return{tokens:[]}},token:function(e,t){return f(e,t)},languageData:{autocomplete:o.concat(a,s),closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"#"}}}},4270:function(e,t,n){n.d(t,{i:function(){return oe}});var r=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","bgsound","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","nobr","noframes","noscript","object","ol","optgroup","option","output","p","param","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","track","u","ul","var","video"],i=["domain","regexp","url-prefix","url"],o=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],a=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","dynamic-range","video-dynamic-range"],s=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-position","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marker-offset","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode","font-smoothing","osx-font-smoothing"],l=["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"],c=["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"],u=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],h=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","column","compact","condensed","conic-gradient","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","dashed","decimal","decimal-leading-zero","default","default-button","destination-atop","destination-in","destination-out","destination-over","devanagari","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","flex","footnotes","forwards","from","geometricPrecision","georgian","graytext","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hebrew","help","hidden","hide","high","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","malayalam","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeating-conic-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row-resize","rtl","run-in","running","s-resize","sans-serif","scale","scale3d","scaleX","scaleY","scaleZ","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","solid","somali","source-atop","source-in","source-out","source-over","space","spell-out","square","square-button","standard","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","symbolic","symbols","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","x-large","x-small","xor","xx-large","xx-small","bicubic","optimizespeed","grayscale","row","row-reverse","wrap","wrap-reverse","column-reverse","flex-start","flex-end","space-between","space-around","unset"],f=["in","and","or","not","is not","is a","is","isnt","defined","if unless"],d=["for","if","else","unless","from","to"],p=["null","true","false","href","title","type","not-allowed","readonly","disabled"],m=r.concat(i,o,a,s,l,u,h,c,f,d,p,["@font-face","@keyframes","@media","@viewport","@page","@host","@supports","@block","@css"]);function v(e){return e=e.sort((function(e,t){return t>e})),new RegExp("^(("+e.join(")|(")+"))\\b")}function g(e){for(var t={},n=0;n]=?|\?:|\~)/,I=v(f),R=g(d),z=new RegExp(/^\-(moz|ms|o|webkit)-/i),N=g(p),L="",J={};function B(e,t){if(L=e.string.match(/(^[\w-]+\s*=\s*$)|(^\s*[\w-]+\s*=\s*[\w-])|(^\s*(\.|#|@|\$|\&|\[|\d|\+|::?|\{|\>|~|\/)?\s*[\w-]*([a-z0-9-]|\*|\/\*)(\(|,)?)/),t.context.line.firstWord=L?L[0].replace(/^\s*/,""):"",t.context.line.indent=e.indentation(),y=e.peek(),e.match("//"))return e.skipToEnd(),["comment","comment"];if(e.match("/*"))return t.tokenize=q,q(e,t);if('"'==y||"'"==y)return e.next(),t.tokenize=$(y),t.tokenize(e,t);if("@"==y)return e.next(),e.eatWhile(/[\w\\-]/),["def",e.current()];if("#"==y){if(e.next(),e.match(/^[0-9a-f]{3}([0-9a-f]([0-9a-f]{2}){0,2})?\b(?!-)/i))return["atom","atom"];if(e.match(/^[a-z][\w-]*/i))return["builtin","hash"]}return e.match(z)?["meta","vendor-prefixes"]:e.match(/^-?[0-9]?\.?[0-9]/)?(e.eatWhile(/[a-z%]/i),["number","unit"]):"!"==y?(e.next(),[e.match(/^(important|optional)/i)?"keyword":"operator","important"]):"."==y&&e.match(/^\.[a-z][\w-]*/i)?["qualifier","qualifier"]:e.match(Z)?("("==e.peek()&&(t.tokenize=F),["property","word"]):e.match(/^[a-z][\w-]*\(/i)?(e.backUp(1),["keyword","mixin"]):e.match(/^(\+|-)[a-z][\w-]*\(/i)?(e.backUp(1),["keyword","block-mixin"]):e.string.match(/^\s*&/)&&e.match(/^[-_]+[a-z][\w-]*/)?["qualifier","qualifier"]:e.match(/^(\/|&)(-|_|:|\.|#|[a-z])/)?(e.backUp(1),["variableName.special","reference"]):e.match(/^&{1}\s*$/)?["variableName.special","reference"]:e.match(I)?["operator","operator"]:e.match(/^\$?[-_]*[a-z0-9]+[\w-]*/i)?e.match(/^(\.|\[)[\w-\'\"\]]+/i,!1)&&!U(e.current())?(e.match("."),["variable","variable-name"]):["variable","word"]:e.match(P)?["operator",e.current()]:/[:;,{}\[\]\(\)]/.test(y)?(e.next(),[null,y]):(e.next(),[null,null])}function q(e,t){for(var n,r=!1;null!=(n=e.next());){if(r&&"/"==n){t.tokenize=null;break}r="*"==n}return["comment","comment"]}function $(e){return function(t,n){for(var r,i=!1;null!=(r=t.next());){if(r==e&&!i){")"==e&&t.backUp(1);break}i=!i&&"\\"==r}return(r==e||!i&&")"!=e)&&(n.tokenize=null),["string","string"]}}function F(e,t){return e.next(),e.match(/\s*[\"\')]/,!1)?t.tokenize=null:t.tokenize=$(")"),[null,"("]}function V(e,t,n,r){this.type=e,this.indent=t,this.prev=n,this.line=r||{firstWord:"",indent:0}}function j(e,t,n,r){return r=r>=0?r:t.indentUnit,e.context=new V(n,t.indentation()+r,e.context),n}function W(e,t,n){var r=e.context.indent-t.indentUnit;return n=n||!1,e.context=e.context.prev,n&&(e.context.indent=r),e.context.type}function H(e,t,n,r){for(var i=r||1;i>0;i--)n.context=n.context.prev;return function(e,t,n){return J[n.context.type](e,t,n)}(e,t,n)}function U(e){return e.toLowerCase()in x}function Q(e){return(e=e.toLowerCase())in _||e in D}function G(e){return e.toLowerCase()in R}function K(e){return e.toLowerCase().match(z)}function X(e){var t=e.toLowerCase(),n="variable";return U(e)?n="tag":G(e)?n="block-keyword":Q(e)?n="property":t in A||t in N?n="atom":"return"==t||t in O?n="keyword":e.match(/^[A-Z]/)&&(n="string"),n}function Y(e,t){return re(t)&&("{"==e||"]"==e||"hash"==e||"qualifier"==e)||"block-mixin"==e}function ee(e,t){return"{"==e&&t.match(/^\s*\$?[\w-]+/i,!1)}function te(e,t){return":"==e&&t.match(/^[a-z-]+/,!1)}function ne(e){return e.sol()||e.string.match(new RegExp("^\\s*"+e.current().replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")))}function re(e){return e.eol()||e.match(/^\s*$/,!1)}function ie(e){var t=/^\s*[-_]*[a-z0-9]+[\w-]*/i,n="string"==typeof e?e.match(t):e.string.match(t);return n?n[0].replace(/^\s*/,""):""}J.block=function(e,t,n){if("comment"==e&&ne(t)||","==e&&re(t)||"mixin"==e)return j(n,t,"block",0);if(ee(e,t))return j(n,t,"interpolation");if(re(t)&&"]"==e&&!/^\s*(\.|#|:|\[|\*|&)/.test(t.string)&&!U(ie(t)))return j(n,t,"block",0);if(Y(e,t))return j(n,t,"block");if("}"==e&&re(t))return j(n,t,"block",0);if("variable-name"==e)return t.string.match(/^\s?\$[\w-\.\[\]\'\"]+$/)||G(ie(t))?j(n,t,"variableName"):j(n,t,"variableName",0);if("="==e)return re(t)||G(ie(t))?j(n,t,"block"):j(n,t,"block",0);if("*"==e&&(re(t)||t.match(/\s*(,|\.|#|\[|:|{)/,!1)))return w="tag",j(n,t,"block");if(te(e,t))return j(n,t,"pseudo");if(/@(font-face|media|supports|(-moz-)?document)/.test(e))return j(n,t,re(t)?"block":"atBlock");if(/@(-(moz|ms|o|webkit)-)?keyframes$/.test(e))return j(n,t,"keyframes");if(/@extends?/.test(e))return j(n,t,"extend",0);if(e&&"@"==e.charAt(0))return t.indentation()>0&&Q(t.current().slice(1))?(w="variable","block"):/(@import|@require|@charset)/.test(e)?j(n,t,"block",0):j(n,t,"block");if("reference"==e&&re(t))return j(n,t,"block");if("("==e)return j(n,t,"parens");if("vendor-prefixes"==e)return j(n,t,"vendorPrefixes");if("word"==e){var r=t.current();if("property"==(w=X(r)))return ne(t)?j(n,t,"block",0):(w="atom","block");if("tag"==w){if(/embed|menu|pre|progress|sub|table/.test(r)&&Q(ie(t)))return w="atom","block";if(t.string.match(new RegExp("\\[\\s*"+r+"|"+r+"\\s*\\]")))return w="atom","block";if(S.test(r)&&(ne(t)&&t.string.match(/=/)||!ne(t)&&!t.string.match(/^(\s*\.|#|\&|\[|\/|>|\*)/)&&!U(ie(t))))return w="variable",G(ie(t))?"block":j(n,t,"block",0);if(re(t))return j(n,t,"block")}if("block-keyword"==w)return w="keyword",t.current(/(if|unless)/)&&!ne(t)?"block":j(n,t,"block");if("return"==r)return j(n,t,"block",0);if("variable"==w&&t.string.match(/^\s?\$[\w-\.\[\]\'\"]+$/))return j(n,t,"block")}return n.context.type},J.parens=function(e,t,n){if("("==e)return j(n,t,"parens");if(")"==e)return"parens"==n.context.prev.type?W(n,t):t.string.match(/^[a-z][\w-]*\(/i)&&re(t)||G(ie(t))||/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(ie(t))||!t.string.match(/^-?[a-z][\w-\.\[\]\'\"]*\s*=/)&&U(ie(t))?j(n,t,"block"):t.string.match(/^[\$-]?[a-z][\w-\.\[\]\'\"]*\s*=/)||t.string.match(/^\s*(\(|\)|[0-9])/)||t.string.match(/^\s+[a-z][\w-]*\(/i)||t.string.match(/^\s+[\$-]?[a-z]/i)?j(n,t,"block",0):re(t)?j(n,t,"block"):j(n,t,"block",0);if(e&&"@"==e.charAt(0)&&Q(t.current().slice(1))&&(w="variable"),"word"==e){var r=t.current();"tag"==(w=X(r))&&S.test(r)&&(w="variable"),"property"!=w&&"to"!=r||(w="atom")}return"variable-name"==e?j(n,t,"variableName"):te(e,t)?j(n,t,"pseudo"):n.context.type},J.vendorPrefixes=function(e,t,n){return"word"==e?(w="property",j(n,t,"block",0)):W(n,t)},J.pseudo=function(e,t,n){return Q(ie(t.string))?H(e,t,n):(t.match(/^[a-z-]+/),w="variableName.special",re(t)?j(n,t,"block"):W(n,t))},J.atBlock=function(e,t,n){if("("==e)return j(n,t,"atBlock_parens");if(Y(e,t))return j(n,t,"block");if(ee(e,t))return j(n,t,"interpolation");if("word"==e){var r=t.current().toLowerCase();if("tag"==(w=/^(only|not|and|or)$/.test(r)?"keyword":T.hasOwnProperty(r)?"tag":M.hasOwnProperty(r)?"attribute":E.hasOwnProperty(r)?"property":C.hasOwnProperty(r)?"string.special":X(t.current()))&&re(t))return j(n,t,"block")}return"operator"==e&&/^(not|and|or)$/.test(t.current())&&(w="keyword"),n.context.type},J.atBlock_parens=function(e,t,n){if("{"==e||"}"==e)return n.context.type;if(")"==e)return re(t)?j(n,t,"block"):j(n,t,"atBlock");if("word"==e){var r=t.current().toLowerCase();return w=X(r),/^(max|min)/.test(r)&&(w="property"),"tag"==w&&(w=S.test(r)?"variable":"atom"),n.context.type}return J.atBlock(e,t,n)},J.keyframes=function(e,t,n){return"0"==t.indentation()&&("}"==e&&ne(t)||"]"==e||"hash"==e||"qualifier"==e||U(t.current()))?H(e,t,n):"{"==e?j(n,t,"keyframes"):"}"==e?ne(t)?W(n,t,!0):j(n,t,"keyframes"):"unit"==e&&/^[0-9]+\%$/.test(t.current())?j(n,t,"keyframes"):"word"==e&&"block-keyword"==(w=X(t.current()))?(w="keyword",j(n,t,"keyframes")):/@(font-face|media|supports|(-moz-)?document)/.test(e)?j(n,t,re(t)?"block":"atBlock"):"mixin"==e?j(n,t,"block",0):n.context.type},J.interpolation=function(e,t,n){return"{"==e&&W(n,t)&&j(n,t,"block"),"}"==e?t.string.match(/^\s*(\.|#|:|\[|\*|&|>|~|\+|\/)/i)||t.string.match(/^\s*[a-z]/i)&&U(ie(t))?j(n,t,"block"):!t.string.match(/^(\{|\s*\&)/)||t.match(/\s*[\w-]/,!1)?j(n,t,"block",0):j(n,t,"block"):"variable-name"==e?j(n,t,"variableName",0):("word"==e&&"tag"==(w=X(t.current()))&&(w="atom"),n.context.type)},J.extend=function(e,t,n){return"["==e||"="==e?"extend":"]"==e?W(n,t):"word"==e?(w=X(t.current()),"extend"):W(n,t)},J.variableName=function(e,t,n){return"string"==e||"["==e||"]"==e||t.current().match(/^(\.|\$)/)?(t.current().match(/^\.[\w-]+/i)&&(w="variable"),"variableName"):H(e,t,n)};var oe={startState:function(){return{tokenize:null,state:"block",context:new V("block",0,null)}},token:function(e,t){return!t.tokenize&&e.eatSpace()?null:((k=(t.tokenize||B)(e,t))&&"object"==typeof k&&(b=k[1],k=k[0]),w=k,t.state=J[t.state](b,e,t),w)},indent:function(e,t,n){var r=e.context,i=t&&t.charAt(0),o=r.indent,a=ie(t),s=n.lineIndent(n.pos),l=e.context.prev?e.context.prev.line.firstWord:"",c=e.context.prev?e.context.prev.line.indent:s;return r.prev&&("}"==i&&("block"==r.type||"atBlock"==r.type||"keyframes"==r.type)||")"==i&&("parens"==r.type||"atBlock_parens"==r.type)||"{"==i&&"at"==r.type)?o=r.indent-n.unit:/(\})/.test(i)||(/@|\$|\d/.test(i)||/^\{/.test(t)||/^\s*\/(\/|\*)/.test(t)||/^\s*\/\*/.test(l)||/^\s*[\w-\.\[\]\'\"]+\s*(\?|:|\+)?=/i.test(t)||/^(\+|-)?[a-z][\w-]*\(/i.test(t)||/^return/.test(t)||G(a)?o=s:/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(i)||U(a)?o=/\,\s*$/.test(l)?c:e.sol()||!/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(l)&&!U(l)?s:s<=c?c:c+n.unit:/,\s*$/.test(t)||!K(a)&&!Q(a)||(o=G(l)?s<=c?c:c+n.unit:/^\{/.test(l)?s<=c?s:c+n.unit:K(l)||Q(l)?s>=c?c:s:/^(\.|#|:|\[|\*|&|@|\+|\-|>|~|\/)/.test(l)||/=\s*$/.test(l)||U(l)||/^\$[\w-\.\[\]\'\"]/.test(l)?c+n.unit:s)),o},languageData:{indentOnInput:/^\s*\}$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:m}}},8754:function(e,t,n){function r(e){for(var t={},n=0;n~^?!".indexOf(v)>-1)return e.next(),"operator";if(":;,.(){}[]".indexOf(v)>-1)return e.next(),e.match(".."),"punctuation";if(r=e.match(/("""|"|')/)){var g=y.bind(null,r[0]);return t.tokenize.push(g),g(e,t)}if(e.match(f)){var b=e.current();return s.hasOwnProperty(b)?"type":a.hasOwnProperty(b)?"atom":i.hasOwnProperty(b)?(o.hasOwnProperty(b)&&(t.prev="define"),"keyword"):"define"==n?"def":"variable"}return e.next(),null}function g(){var e=0;return function(t,n,r){var i=v(t,n,r);if("punctuation"==i)if("("==t.current())++e;else if(")"==t.current()){if(0==e)return t.backUp(1),n.tokenize.pop(),n.tokenize[n.tokenize.length-1](t,n);--e}return i}}function y(e,t,n){for(var r,i=1==e.length,o=!1;r=t.peek();)if(o){if(t.next(),"("==r)return n.tokenize.push(g()),"string";o=!1}else{if(t.match(e))return n.tokenize.pop(),"string";t.next(),o="\\"==r}return i&&n.tokenize.pop(),"string"}function k(e,t){for(var n;e.match(/^[^/*]+/,!0),n=e.next();)"/"===n&&e.eat("*")?t.tokenize.push(k):"*"===n&&e.eat("/")&&t.tokenize.pop();return"comment"}function b(e,t,n){this.prev=e,this.align=t,this.indented=n}function w(e,t){var n=t.match(/^\s*($|\/[\/\*]|[)}\]])/,!1)?null:t.column()+1;e.context=new b(e.context,n,e.indented)}function x(e){e.context&&(e.indented=e.context.indented,e.context=e.context.prev)}var S={startState:function(){return{prev:null,context:null,indented:0,tokenize:[]}},token:function(e,t){var n=t.prev;t.prev=null;var r=(t.tokenize[t.tokenize.length-1]||v)(e,t,n);if(r&&"comment"!=r?t.prev||(t.prev=r):t.prev=n,"punctuation"==r){var i=/[\(\[\{]|([\]\)\}])/.exec(e.current());i&&(i[1]?x:w)(t,e)}return r},indent:function(e,t,n){var r=e.context;if(!r)return 0;var i=/^[\]\}\)]/.test(t);return null!=r.align?r.align-(i?1:0):r.indented+(i?0:n.unit)},languageData:{indentOnInput:/^\s*[\)\}\]]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}}},4965:function(e,t,n){function r(e){for(var t={},n=e.split(" "),r=0;r!?^\/\|]/;function s(e,t,n){return t.tokenize=n,n(e,t)}function l(e,t){var n=t.beforeParams;t.beforeParams=!1;var r,h=e.next();if('"'!=h&&"'"!=h||!t.inParams){if(/[\[\]{}\(\),;\.]/.test(h))return"("==h&&n?t.inParams=!0:")"==h&&(t.inParams=!1),null;if(/\d/.test(h))return e.eatWhile(/[\w\.]/),"number";if("#"==h)return e.eat("*")?s(e,t,c):"#"==h&&e.match(/ *\[ *\[/)?s(e,t,u):(e.skipToEnd(),"comment");if('"'==h)return e.skipTo(/"/),"comment";if("$"==h)return e.eatWhile(/[$_a-z0-9A-Z\.{:]/),e.eatWhile(/}/),t.beforeParams=!0,"builtin";if(a.test(h))return e.eatWhile(a),"comment";e.eatWhile(/[\w\$_{}\xa1-\uffff]/);var f=e.current().toLowerCase();return i&&i.propertyIsEnumerable(f)?"keyword":o&&o.propertyIsEnumerable(f)?(t.beforeParams=!0,"keyword"):null}return s(e,t,(r=h,function(e,t){for(var n,i=!1,o=!1;null!=(n=e.next());){if(n==r&&!i){o=!0;break}i=!i&&"\\"==n}return o&&(t.tokenize=l),"string"}))}function c(e,t){for(var n,r=!1;n=e.next();){if("#"==n&&r){t.tokenize=l;break}r="*"==n}return"comment"}function u(e,t){for(var n,r=0;n=e.next();){if("#"==n&&2==r){t.tokenize=l;break}"]"==n?r++:" "!=n&&(r=0)}return"meta"}var h={startState:function(){return{tokenize:l,beforeParams:!1,inParams:!1}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},languageData:{commentTokens:{line:"#"}}}},6817:function(e,t,n){n.d(t,{V:function(){return r}});var r={startState:function(){return{inString:!1,stringType:"",lhs:!0,inArray:0}},token:function(e,t){if(t.inString||'"'!=e.peek()&&"'"!=e.peek()||(t.stringType=e.peek(),e.next(),t.inString=!0),e.sol()&&0===t.inArray&&(t.lhs=!0),t.inString){for(;t.inString&&!e.eol();)e.peek()===t.stringType?(e.next(),t.inString=!1):"\\"===e.peek()?(e.next(),e.next()):e.match(/^.[^\\\"\']*/);return t.lhs?"property":"string"}return t.inArray&&"]"===e.peek()?(e.next(),t.inArray--,"bracket"):t.lhs&&"["===e.peek()&&e.skipTo("]")?(e.next(),"]"===e.peek()&&e.next(),"atom"):"#"===e.peek()?(e.skipToEnd(),"comment"):e.eatSpace()?null:t.lhs&&e.eatWhile((function(e){return"="!=e&&" "!=e}))?"property":t.lhs&&"="===e.peek()?(e.next(),t.lhs=!1,null):!t.lhs&&e.match(/^\d\d\d\d[\d\-\:\.T]*Z/)?"atom":t.lhs||!e.match("true")&&!e.match("false")?t.lhs||"["!==e.peek()?!t.lhs&&e.match(/^\-?\d+(?:\.\d+)?/)?"number":(e.eatSpace()||e.next(),null):(t.inArray++,e.next(),"bracket"):"atom"}}},7591:function(e,t,n){n.d(t,{vb:function(){return T}});var r="error";function i(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}var o=new RegExp("^[\\+\\-\\*/%&\\\\|\\^~<>!]"),a=new RegExp("^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]"),s=new RegExp("^((==)|(<>)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))"),l=new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))"),c=new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))"),u=new RegExp("^[_A-Za-z][_A-Za-z0-9]*"),h=["class","module","sub","enum","select","while","if","function","get","set","property","try","structure","synclock","using","with"],f=["else","elseif","case","catch","finally"],d=["next","loop"],p=["and","andalso","or","orelse","xor","in","not","is","isnot","like"],m=i(p),v=["#const","#else","#elseif","#end","#if","#region","addhandler","addressof","alias","as","byref","byval","cbool","cbyte","cchar","cdate","cdbl","cdec","cint","clng","cobj","compare","const","continue","csbyte","cshort","csng","cstr","cuint","culng","cushort","declare","default","delegate","dim","directcast","each","erase","error","event","exit","explicit","false","for","friend","gettype","goto","handles","implements","imports","infer","inherits","interface","isfalse","istrue","lib","me","mod","mustinherit","mustoverride","my","mybase","myclass","namespace","narrowing","new","nothing","notinheritable","notoverridable","of","off","on","operator","option","optional","out","overloads","overridable","overrides","paramarray","partial","private","protected","public","raiseevent","readonly","redim","removehandler","resume","return","shadows","shared","static","step","stop","strict","then","throw","to","true","trycast","typeof","until","until","when","widening","withevents","writeonly"],g=["object","boolean","char","string","byte","sbyte","short","ushort","int16","uint16","integer","uinteger","int32","uint32","long","ulong","int64","uint64","decimal","single","double","float","date","datetime","intptr","uintptr"],y=i(v),k=i(g),b=i(h),w=i(f),x=i(d),S=i(["end"]),_=i(["do"]);function C(e,t){t.currentIndent++}function A(e,t){t.currentIndent--}function O(e,t){if(e.eatSpace())return null;if("'"===e.peek())return e.skipToEnd(),"comment";if(e.match(/^((&H)|(&O))?[0-9\.a-f]/i,!1)){var n=!1;if((e.match(/^\d*\.\d+F?/i)||e.match(/^\d+\.\d*F?/)||e.match(/^\.\d+F?/))&&(n=!0),n)return e.eat(/J/i),"number";var i=!1;if(e.match(/^&H[0-9a-f]+/i)||e.match(/^&O[0-7]+/i)?i=!0:e.match(/^[1-9]\d*F?/)?(e.eat(/J/i),i=!0):e.match(/^0(?![\dx])/i)&&(i=!0),i)return e.eat(/L/i),"number"}return e.match('"')?(t.tokenize=function(e){var t=1==e.length,n="string";return function(r,i){for(;!r.eol();){if(r.eatWhile(/[^'"]/),r.match(e))return i.tokenize=O,n;r.eat(/['"]/)}return t&&(i.tokenize=O),n}}(e.current()),t.tokenize(e,t)):e.match(c)||e.match(l)?null:e.match(s)||e.match(o)||e.match(m)?"operator":e.match(a)?null:e.match(_)?(C(0,t),t.doInCurrentLine=!0,"keyword"):e.match(b)?(t.doInCurrentLine?t.doInCurrentLine=!1:C(0,t),"keyword"):e.match(w)?"keyword":e.match(S)?(A(0,t),A(0,t),"keyword"):e.match(x)?(A(0,t),"keyword"):e.match(k)||e.match(y)?"keyword":e.match(u)?"variable":(e.next(),r)}var T={startState:function(){return{tokenize:O,lastToken:null,currentIndent:0,nextLineIndent:0,doInCurrentLine:!1}},token:function(e,t){e.sol()&&(t.currentIndent+=t.nextLineIndent,t.nextLineIndent=0,t.doInCurrentLine=0);var n=function(e,t){var n=t.tokenize(e,t),i=e.current();if("."===i)return"variable"===(n=t.tokenize(e,t))?"variable":r;var o="[({".indexOf(i);return-1!==o&&C(0,t),-1!==(o="])}".indexOf(i))&&A(0,t)?r:n}(e,t);return t.lastToken={style:n,content:e.current()},n},indent:function(e,t,n){var r=t.replace(/^\s+|\s+$/g,"");return r.match(x)||r.match(S)||r.match(w)?n.unit*(e.currentIndent-1):e.currentIndent<0?0:e.currentIndent*n.unit},languageData:{closeBrackets:{brackets:["(","[","{",'"']},commentTokens:{line:"'"},autocomplete:h.concat(f).concat(d).concat(p).concat(v).concat(g)}}},947:function(e,t,n){function r(e){var t="error";function n(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}var r=new RegExp("^[\\+\\-\\*/&\\\\\\^<>=]"),i=new RegExp("^((<>)|(<=)|(>=))"),o=new RegExp("^[\\.,]"),a=new RegExp("^[\\(\\)]"),s=new RegExp("^[A-Za-z][_A-Za-z0-9]*"),l=n(["and","or","not","xor","is","mod","eqv","imp"]),c=["WScript","err","debug","RegExp"],u=["clear","execute","raise","replace","test","write","writeline","close","open","state","eof","update","addnew","end","createobject","quit"].concat(["description","firstindex","global","helpcontext","helpfile","ignorecase","length","number","pattern","source","value","count"]);c=c.concat(["vbBlack","vbRed","vbGreen","vbYellow","vbBlue","vbMagenta","vbCyan","vbWhite","vbBinaryCompare","vbTextCompare","vbSunday","vbMonday","vbTuesday","vbWednesday","vbThursday","vbFriday","vbSaturday","vbUseSystemDayOfWeek","vbFirstJan1","vbFirstFourDays","vbFirstFullWeek","vbGeneralDate","vbLongDate","vbShortDate","vbLongTime","vbShortTime","vbObjectError","vbOKOnly","vbOKCancel","vbAbortRetryIgnore","vbYesNoCancel","vbYesNo","vbRetryCancel","vbCritical","vbQuestion","vbExclamation","vbInformation","vbDefaultButton1","vbDefaultButton2","vbDefaultButton3","vbDefaultButton4","vbApplicationModal","vbSystemModal","vbOK","vbCancel","vbAbort","vbRetry","vbIgnore","vbYes","vbNo","vbCr","VbCrLf","vbFormFeed","vbLf","vbNewLine","vbNullChar","vbNullString","vbTab","vbVerticalTab","vbUseDefault","vbTrue","vbFalse","vbEmpty","vbNull","vbInteger","vbLong","vbSingle","vbDouble","vbCurrency","vbDate","vbString","vbObject","vbError","vbBoolean","vbVariant","vbDataObject","vbDecimal","vbByte","vbArray"]),e.isASP&&(c=c.concat(["server","response","request","session","application"]),u=u.concat(["addheader","appendtolog","binarywrite","end","flush","redirect","binaryread","remove","removeall","lock","unlock","abandon","getlasterror","htmlencode","mappath","transfer","urlencode"],["buffer","cachecontrol","charset","contenttype","expires","expiresabsolute","isclientconnected","pics","status","clientcertificate","cookies","form","querystring","servervariables","totalbytes","contents","staticobjects","codepage","lcid","sessionid","timeout","scripttimeout"]));var h=n(["dim","redim","then","until","randomize","byval","byref","new","property","exit","in","const","private","public","get","set","let","stop","on error resume next","on error goto 0","option explicit","call","me"]),f=n(["true","false","nothing","empty","null"]),d=n(["abs","array","asc","atn","cbool","cbyte","ccur","cdate","cdbl","chr","cint","clng","cos","csng","cstr","date","dateadd","datediff","datepart","dateserial","datevalue","day","escape","eval","execute","exp","filter","formatcurrency","formatdatetime","formatnumber","formatpercent","getlocale","getobject","getref","hex","hour","inputbox","instr","instrrev","int","fix","isarray","isdate","isempty","isnull","isnumeric","isobject","join","lbound","lcase","left","len","loadpicture","log","ltrim","rtrim","trim","maths","mid","minute","month","monthname","msgbox","now","oct","replace","rgb","right","rnd","round","scriptengine","scriptenginebuildversion","scriptenginemajorversion","scriptengineminorversion","second","setlocale","sgn","sin","space","split","sqr","strcomp","string","strreverse","tan","time","timer","timeserial","timevalue","typename","ubound","ucase","unescape","vartype","weekday","weekdayname","year"]),p=n(c),m=n(u),v=n(["class","sub","select","while","if","function","property","with","for"]),g=n(["else","elseif","case"]),y=n(["next","loop","wend"]),k=n(["end"]),b=n(["do"]),w=n(["on error resume next","exit"]),x=n(["rem"]);function S(e,t){t.currentIndent++}function _(e,t){t.currentIndent--}function C(e,n){if(e.eatSpace())return null;if("'"===e.peek())return e.skipToEnd(),"comment";if(e.match(x))return e.skipToEnd(),"comment";if(e.match(/^((&H)|(&O))?[0-9\.]/i,!1)&&!e.match(/^((&H)|(&O))?[0-9\.]+[a-z_]/i,!1)){var c=!1;if((e.match(/^\d*\.\d+/i)||e.match(/^\d+\.\d*/)||e.match(/^\.\d+/))&&(c=!0),c)return e.eat(/J/i),"number";var u=!1;if(e.match(/^&H[0-9a-f]+/i)||e.match(/^&O[0-7]+/i)?u=!0:e.match(/^[1-9]\d*F?/)?(e.eat(/J/i),u=!0):e.match(/^0(?![\dx])/i)&&(u=!0),u)return e.eat(/L/i),"number"}return e.match('"')?(n.tokenize=function(e){var t=1==e.length,n="string";return function(r,i){for(;!r.eol();){if(r.eatWhile(/[^'"]/),r.match(e))return i.tokenize=C,n;r.eat(/['"]/)}return t&&(i.tokenize=C),n}}(e.current()),n.tokenize(e,n)):e.match(i)||e.match(r)||e.match(l)?"operator":e.match(o)?null:e.match(a)?"bracket":e.match(w)?(n.doInCurrentLine=!0,"keyword"):e.match(b)?(S(0,n),n.doInCurrentLine=!0,"keyword"):e.match(v)?(n.doInCurrentLine?n.doInCurrentLine=!1:S(0,n),"keyword"):e.match(g)?"keyword":e.match(k)?(_(0,n),_(0,n),"keyword"):e.match(y)?(n.doInCurrentLine?n.doInCurrentLine=!1:_(0,n),"keyword"):e.match(h)?"keyword":e.match(f)?"atom":e.match(m)?"variableName.special":e.match(d)||e.match(p)?"builtin":e.match(s)?"variable":(e.next(),t)}return{startState:function(){return{tokenize:C,lastToken:null,currentIndent:0,nextLineIndent:0,doInCurrentLine:!1,ignoreKeyword:!1}},token:function(e,n){e.sol()&&(n.currentIndent+=n.nextLineIndent,n.nextLineIndent=0,n.doInCurrentLine=0);var r=function(e,n){var r=n.tokenize(e,n),i=e.current();return"."===i?(r=n.tokenize(e,n),i=e.current(),!r||"variable"!==r.substr(0,8)&&"builtin"!==r&&"keyword"!==r?t:("builtin"!==r&&"keyword"!==r||(r="variable"),u.indexOf(i.substr(1))>-1&&(r="keyword"),r)):r}(e,n);return n.lastToken={style:r,content:e.current()},null===r&&(r=null),r},indent:function(e,t,n){var r=t.replace(/^\s+|\s+$/g,"");return r.match(y)||r.match(k)||r.match(g)?n.unit*(e.currentIndent-1):e.currentIndent<0?0:e.currentIndent*n.unit}}}n.d(t,{M:function(){return i}});var i=r({});r({isASP:!0})},4117:function(e,t,n){n.d(t,{r:function(){return i}});var r=new RegExp("\\b(("+["true","false","on","off","yes","no"].join(")|(")+"))$","i"),i={token:function(e,t){var n=e.peek(),i=t.escaped;if(t.escaped=!1,"#"==n&&(0==e.pos||/\s/.test(e.string.charAt(e.pos-1))))return e.skipToEnd(),"comment";if(e.match(/^('([^']|\\.)*'?|"([^"]|\\.)*"?)/))return"string";if(t.literal&&e.indentation()>t.keyCol)return e.skipToEnd(),"string";if(t.literal&&(t.literal=!1),e.sol()){if(t.keyCol=0,t.pair=!1,t.pairStart=!1,e.match("---"))return"def";if(e.match("..."))return"def";if(e.match(/^\s*-\s+/))return"meta"}if(e.match(/^(\{|\}|\[|\])/))return"{"==n?t.inlinePairs++:"}"==n?t.inlinePairs--:"["==n?t.inlineList++:t.inlineList--,"meta";if(t.inlineList>0&&!i&&","==n)return e.next(),"meta";if(t.inlinePairs>0&&!i&&","==n)return t.keyCol=0,t.pair=!1,t.pairStart=!1,e.next(),"meta";if(t.pairStart){if(e.match(/^\s*(\||\>)\s*/))return t.literal=!0,"meta";if(e.match(/^\s*(\&|\*)[a-z0-9\._-]+\b/i))return"variable";if(0==t.inlinePairs&&e.match(/^\s*-?[0-9\.\,]+\s?$/))return"number";if(t.inlinePairs>0&&e.match(/^\s*-?[0-9\.\,]+\s?(?=(,|}))/))return"number";if(e.match(r))return"keyword"}return!t.pair&&e.match(/^\s*(?:[,\[\]{}&*!|>'"%@`][^\s'":]|[^,\[\]{}#&*!|>'"%@`])[^#]*?(?=\s*:($|\s))/)?(t.pair=!0,t.keyCol=e.indentation(),"atom"):t.pair&&e.match(/^:\s*/)?(t.pairStart=!0,"meta"):(t.pairStart=!1,t.escaped="\\"==n,e.next(),null)},startState:function(){return{pair:!1,pairStart:!1,keyCol:0,inlinePairs:0,inlineList:0,literal:!1,escaped:!1}},languageData:{commentTokens:{line:"#"}}}},696:function(e,t,n){n.d(t,{U:function(){return g},n:function(){return m}});var r=n(7762),i=n(1383),o=n(659),a=n(2077),s=n(299),l=a.tk.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),c=1e4,u="()[]{}",h=i.r$.define({combine:function(e){return(0,i.BO)(e,{afterCursor:!0,brackets:u,maxScanDistance:c})}}),f=a.p.mark({class:"cm-matchingBracket"}),d=a.p.mark({class:"cm-nonmatchingBracket"}),p=[i.QQ.define({create:function(){return a.p.none},update:function(e,t){if(!t.docChanged&&!t.selection)return e;var n,i=[],o=t.state.facet(h),s=(0,r.Z)(t.state.selection.ranges);try{for(s.s();!(n=s.n()).done;){var l=n.value;if(l.empty){var c=g(t.state,l.head,-1,o)||l.head>0&&g(t.state,l.head-1,1,o)||o.afterCursor&&(g(t.state,l.head,1,o)||l.head0&&void 0!==arguments[0]?arguments[0]:{};return[h.of(e),p]}function v(e,t,n){var r=e.prop(t<0?s.md.openedBy:s.md.closedBy);if(r)return r;if(1==e.name.length){var i=n.indexOf(e.name);if(i>-1&&i%2==(t<0?1:0))return[n[i+t]]}return null}function g(e,t,n){for(var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=r.maxScanDistance||c,a=r.brackets||u,s=(0,o.qz)(e),l=s.resolveInner(t,n),h=l;h;h=h.parent){var f=v(h.type,n,a);if(f&&h.from=r.to){if(0==l&&i.indexOf(c.type.name)>-1&&c.from0)return null;for(var c={from:n<0?t-1:t,to:n>0?t+1:t},u=e.doc.iterRange(t,n>0?e.doc.length:0),h=0,f=0;!u.next().done&&f<=o;){var d=u.value;n<0&&(f+=d.length);for(var p=t+f*n,m=n>0?0:d.length-1,v=n>0?d.length:-1;m!=v;m+=n){var g=a.indexOf(d[m]);if(!(g<0||r.resolve(p+m,1).type!=i))if(g%2==0==n>0)h++;else{if(1==h)return{start:c,end:{from:p+m,to:p+m+1},matched:g>>1==l>>1};h--}}n>0&&(f+=d.length)}return u.done?{start:c,matched:!1}:null}},528:function(e,t,n){n.d(t,{Xs:function(){return h},f_:function(){return d},uU:function(){return s}});var r=n(7762),i=n(5671),o=n(3144),a=n(1383),s=function(){function e(){(0,i.Z)(this,e)}return(0,o.Z)(e,[{key:"eq",value:function(e){return this==e}},{key:"range",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;return new l(e,t,this)}}]),e}();s.prototype.startSide=s.prototype.endSide=0,s.prototype.point=!1,s.prototype.mapMode=a.gc.TrackDel;var l=(0,o.Z)((function e(t,n,r){(0,i.Z)(this,e),this.from=t,this.to=n,this.value=r}));function c(e,t){return e.from-t.from||e.value.startSide-t.value.startSide}var u=function(){function e(t,n,r,o){(0,i.Z)(this,e),this.from=t,this.to=n,this.value=r,this.maxPoint=o}return(0,o.Z)(e,[{key:"length",get:function(){return this.to[this.to.length-1]}},{key:"findIndex",value:function(e,t,n){for(var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=n?this.to:this.from,o=r,a=i.length;;){if(o==a)return o;var s=o+a>>1,l=i[s]-e||(n?this.value[s].endSide:this.value[s].startSide)-t;if(s==o)return l>=0?o:a;l>=0?a=s:o=s+1}}},{key:"between",value:function(e,t,n,r){for(var i=this.findIndex(t,-1e9,!0),o=this.findIndex(n,1e9,!1,i);i(d=n.mapPos(h,c.endSide))||f==d&&c.startSide>0&&c.endSide<=0)continue;(d-f||c.endSide-c.startSide)<0||(a<0&&(a=f),c.point&&(s=Math.max(s,d-f)),r.push(c),i.push(f-a),o.push(d-a))}return{mapped:r.length?new e(i,o,r,s):null,pos:a}}}]),e}(),h=function(){function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.empty,o=arguments.length>3?arguments[3]:void 0;(0,i.Z)(this,e),this.chunkPos=t,this.chunk=n,this.nextLayer=r,this.maxPoint=o}return(0,o.Z)(e,[{key:"length",get:function(){var e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}},{key:"size",get:function(){if(this.isEmpty)return 0;var e,t=this.nextLayer.size,n=(0,r.Z)(this.chunk);try{for(n.s();!(e=n.n()).done;){t+=e.value.value.length}}catch(i){n.e(i)}finally{n.f()}return t}},{key:"chunkEnd",value:function(e){return this.chunkPos[e]+this.chunk[e].length}},{key:"update",value:function(t){var n=t.add,r=void 0===n?[]:n,i=t.sort,o=void 0!==i&&i,a=t.filterFrom,s=void 0===a?0:a,u=t.filterTo,h=void 0===u?this.length:u,f=t.filter;if(0==r.length&&!f)return this;if(o&&(r=r.slice().sort(c)),this.isEmpty)return r.length?e.of(r):this;for(var p=new m(this,null,-1).goto(0),v=0,g=[],y=new d;p.value||v=0){var k=r[v++];y.addInner(k.from,k.to,k.value)||g.push(k)}else 1==p.rangeIndex&&p.chunkIndexthis.chunkEnd(p.chunkIndex)||hp.to||h=i&&e<=i+o.length&&!1===o.between(i,e-i,t-i,n))return}this.nextLayer.between(e,t,n)}}},{key:"iter",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return v.from([this]).goto(e)}},{key:"isEmpty",get:function(){return this.nextLayer==this}}],[{key:"iter",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return v.from(e).goto(t)}},{key:"compare",value:function(e,t,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1,o=e.filter((function(e){return e.maxPoint>0||!e.isEmpty&&e.maxPoint>=i})),a=t.filter((function(e){return e.maxPoint>0||!e.isEmpty&&e.maxPoint>=i})),s=p(o,a,n),l=new y(o,s,i),c=new y(a,s,i);n.iterGaps((function(e,t,n){return k(l,e,c,t,n,r)})),n.empty&&0==n.length&&k(l,0,c,0,0,r)}},{key:"eq",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0;null==r&&(r=1e9);var i=e.filter((function(e){return!e.isEmpty&&t.indexOf(e)<0})),o=t.filter((function(t){return!t.isEmpty&&e.indexOf(t)<0}));if(i.length!=o.length)return!1;if(!i.length)return!0;for(var a=p(i,o),s=new y(i,a,0).goto(n),l=new y(o,a,0).goto(n);;){if(s.to!=l.to||!b(s.active,l.active)||s.point&&(!l.point||!s.point.eq(l.point)))return!1;if(s.to>r)return!0;s.next(),l.next()}}},{key:"spans",value:function(e,t,n,r){for(var i,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1,a=new y(e,null,o,null===(i=r.filterPoint)||void 0===i?void 0:i.bind(r)).goto(t),s=t,l=a.openStart;;){var c=Math.min(a.to,n);if(a.point?(r.point(s,c,a.point,a.activeForPoint(a.to),l),l=a.openEnd(c)+(a.to>c?1:0)):c>s&&(r.span(s,c,a.active,l),l=a.openEnd(c)),a.to>n)break;s=a.to,a.next()}return l}},{key:"of",value:function(e){var t,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=new d,o=(0,r.Z)(e instanceof l?[e]:n?f(e):e);try{for(o.s();!(t=o.n()).done;){var a=t.value;i.add(a.from,a.to,a.value)}}catch(s){o.e(s)}finally{o.f()}return i.finish()}}]),e}();function f(e){if(e.length>1)for(var t=e[0],n=1;n0)return e.slice().sort(c);t=r}return e}h.empty=new h([],[],null,-1),h.empty.nextLayer=h.empty;var d=function(){function e(){(0,i.Z)(this,e),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}return(0,o.Z)(e,[{key:"finishChunk",value:function(e){this.chunks.push(new u(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=[])}},{key:"add",value:function(t,n,r){this.addInner(t,n,r)||(this.nextLayer||(this.nextLayer=new e)).add(t,n,r)}},{key:"addInner",value:function(e,t,n){var r=e-this.lastTo||n.startSide-this.last.endSide;if(r<=0&&(e-this.lastFrom||n.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return!(r<0)&&(250==this.from.length&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=n,this.lastFrom=e,this.lastTo=t,this.value.push(n),n.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}},{key:"addChunk",value:function(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);var n=t.value.length-1;return this.last=t.value[n],this.lastFrom=t.from[n]+e,this.lastTo=t.to[n]+e,!0}},{key:"finish",value:function(){return this.finishInner(h.empty)}},{key:"finishInner",value:function(e){if(this.from.length&&this.finishChunk(!1),0==this.chunks.length)return e;var t=new h(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}}]),e}();function p(e,t,n){var i,o=new Map,a=(0,r.Z)(e);try{for(a.s();!(i=a.n()).done;)for(var s=i.value,l=0;l3&&void 0!==arguments[3]?arguments[3]:0;(0,i.Z)(this,e),this.layer=t,this.skip=n,this.minPoint=r,this.rank=o}return(0,o.Z)(e,[{key:"startSide",get:function(){return this.value?this.value.startSide:0}},{key:"endSide",get:function(){return this.value?this.value.endSide:0}},{key:"goto",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1e9;return this.chunkIndex=this.rangeIndex=0,this.gotoInner(e,t,!1),this}},{key:"gotoInner",value:function(e,t,n){for(;this.chunkIndex=this.minPoint)break}}},{key:"setRangeIndex",value:function(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex1&&void 0!==arguments[1]?arguments[1]:-1e9,i=(0,r.Z)(this.heap);try{for(i.s();!(t=i.n()).done;){var o=t.value;o.goto(e,n)}}catch(s){i.e(s)}finally{i.f()}for(var a=this.heap.length>>1;a>=0;a--)g(this.heap,a);return this.next(),this}},{key:"forward",value:function(e,t){var n,i=(0,r.Z)(this.heap);try{for(i.s();!(n=i.n()).done;){n.value.forward(e,t)}}catch(a){i.e(a)}finally{i.f()}for(var o=this.heap.length>>1;o>=0;o--)g(this.heap,o);(this.to-e||this.value.endSide-t)<0&&this.next()}},{key:"next",value:function(){if(0==this.heap.length)this.from=this.to=1e9,this.value=null,this.rank=-1;else{var e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),g(this.heap,0)}}}],[{key:"from",value:function(t){for(var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1,i=[],o=0;o=r&&i.push(new m(a,n,r,o));return 1==i.length?i[0]:new e(i)}}]),e}();function g(e,t){for(var n=e[t];;){var r=1+(t<<1);if(r>=e.length)break;var i=e[r];if(r+1=0&&(i=e[r+1],r++),n.compare(i)<0)break;e[r]=n,e[t]=i,t=r}}var y=function(){function e(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){return!0};(0,i.Z)(this,e),this.minPoint=r,this.filterPoint=o,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=v.from(t,n,r)}return(0,o.Z)(e,[{key:"goto",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-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}},{key:"forward",value:function(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)}},{key:"removeActive",value:function(e){w(this.active,e),w(this.activeTo,e),w(this.activeRank,e),this.minActive=S(this.active,this.activeTo)}},{key:"addActive",value:function(e){for(var t=0,n=this.cursor,r=n.value,i=n.to,o=n.rank;t-1&&(this.activeTo[i]-this.cursor.from||this.active[i].endSide-this.cursor.startSide)<0){if(this.activeTo[i]>e){this.to=this.activeTo[i],this.endSide=this.active[i].endSide;break}this.removeActive(i),n&&w(n,i)}else{if(!this.cursor.value){this.to=this.endSide=1e9;break}if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}var o=this.cursor.value;if(o.point)if(t&&this.cursor.to==this.to&&this.cursor.from=0&&!(this.activeRank[n]e||this.activeTo[n]==e&&this.active[n].endSide>=this.point.endSide)&&t.push(this.active[n]);return t.reverse()}},{key:"openEnd",value:function(e){for(var t=0,n=this.activeTo.length-1;n>=0&&this.activeTo[n]>e;n--)t++;return t}}]),e}();function k(e,t,n,r,i,o){e.goto(t),n.goto(r);for(var a=r+i,s=r,l=r-t;;){var c=e.to+l-n.to||e.endSide-n.endSide,u=c<0?e.to+l:n.to,h=Math.min(u,a);if(e.point||n.point?e.point&&n.point&&(e.point==n.point||e.point.eq(n.point))&&b(e.activeForPoint(e.to+l),n.activeForPoint(n.to))||o.comparePoint(s,h,e.point,n.point):h>s&&!b(e.active,n.active)&&o.compareRange(s,h,e.active,n.active),u>a)break;s=u,c<=0&&e.next(),c>=0&&n.next()}}function b(e,t){if(e.length!=t.length)return!1;for(var n=0;n=t;r--)e[r+1]=e[r];e[t]=n}function S(e,t){for(var n=-1,r=1e9,i=0;i1&&void 0!==arguments[1]&&arguments[1];m(this,e,t)}},{key:"invertedDesc",get:function(){for(var t=[],n=0;n1&&void 0!==arguments[1]&&arguments[1];return e.empty?this:v(this,e,t)}},{key:"mapPos",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:u.Simple,r=0,i=0,o=0;oe)return i+(e-r);i+=a}else{if(n!=u.Simple&&l>=e&&(n==u.TrackDel&&re||n==u.TrackBefore&&re))return null;if(l>e||l==e&&t<0&&!a)return e==r||t<0?i:i+s;i+=s}r=l}if(e>r)throw new RangeError("Position ".concat(e," is out of range for changeset of length ").concat(r));return i}},{key:"touchesRange",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,n=0,r=0;n=0&&r<=t&&a>=e)return!(rt)||"cover";r=a}return!1}},{key:"toString",value:function(){for(var e="",t=0;t=0?":"+r:"")}return e}},{key:"toJSON",value:function(){return this.sections}}],[{key:"fromJSON",value:function(t){if(!Array.isArray(t)||t.length%2||t.some((function(e){return"number"!=typeof e})))throw new RangeError("Invalid JSON representation of ChangeDesc");return new e(t)}}]),e}(),f=function(e){(0,i.Z)(n,e);var t=(0,o.Z)(n);function n(e,r){var i;return(0,a.Z)(this,n),(i=t.call(this,e)).inserted=r,i}return(0,s.Z)(n,[{key:"apply",value:function(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return m(this,(function(t,n,r,i,o){return e=e.replace(r,r+(n-t),o)}),!1),e}},{key:"mapDesc",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return v(this,e,t,!0)}},{key:"invert",value:function(e){for(var t=this.sections.slice(),r=[],i=0,o=0;i=0){t[i]=s,t[i+1]=a;for(var c=i>>1;r.length1&&void 0!==arguments[1]&&arguments[1];return e.empty?this:v(this,e,t,!0)}},{key:"iterChanges",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];m(this,e,t)}},{key:"desc",get:function(){return new h(this.sections)}},{key:"filter",value:function(e){var t=[],r=[],i=[],o=new y(this);e:for(var a=0,s=0;;){for(var l=a==e.length?1e9:e[a++];s0&&p(r,t,o.text),o.forward(c),s+=c}for(var f=e[a++];s>1].toJSON()))}return e}}],[{key:"of",value:function(e,t,i){var o=[],a=[],s=0,u=null;function h(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(e||o.length){sk||g<0||k>t)throw new RangeError("Invalid change range ".concat(g," to ").concat(k," (in doc of length ").concat(t,")"));var w=b?"string"==typeof b?l.xv.of(b.split(i||c)):b:l.xv.empty,x=w.length;if(g==k&&0==x)return;gs&&d(o,g-s,-1),d(o,k-g,x),p(a,o,w),s=k}}(e),h(!u),u}},{key:"empty",value:function(e){return new n(e?[e,-1]:[],[])}},{key:"fromJSON",value:function(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");for(var t=[],r=[],i=0;i3&&void 0!==arguments[3]&&arguments[3];if(!(0==t&&n<=0)){var i=e.length-2;i>=0&&n<=0&&n==e[i+1]?e[i]+=t:0==t&&0==e[i]?e[i+1]+=n:r?(e[i]+=t,e[i+1]+=n):e.push(t,n)}}function p(e,t,n){if(0!=n.length){var r=t.length-2>>1;if(r>1])),!(n||a==e.sections.length||e.sections[a+1]<0);)s=e.sections[a++],c=e.sections[a++];t(i,u,o,h,f),i=u,o=h}}}function v(e,t,n){for(var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=[],o=r?[]:null,a=new y(e),s=new y(t),l=0,c=0;;)if(-1==a.ins)l+=a.len,a.next();else if(-1==s.ins&&c=0&&(a.done||cc&&!a.done&&l+a.len=0)){if(a.done&&s.done)return o?new f(i,o):new h(i);throw new Error("Mismatched change set lengths")}for(var m=0,v=l+a.len;;)if(s.ins>=0&&c>l&&c+s.len2&&void 0!==arguments[2]&&arguments[2],r=[],i=n?[]:null,o=new y(e),a=new y(t),s=!1;;){if(o.done&&a.done)return i?new f(r,i):new h(r);if(0==o.ins)d(r,o.len,0,s),o.next();else if(0!=a.len||a.done){if(o.done||a.done)throw new Error("Mismatched change set lengths");var l=Math.min(o.len2,a.len),c=r.length;if(-1==o.ins){var u=-1==a.ins?-1:a.off?0:a.ins;d(r,l,u,s),i&&u&&p(i,r,a.text)}else-1==a.ins?(d(r,o.off?0:o.len,l,s),i&&p(i,r,o.textBit(l))):(d(r,o.off?0:o.len,a.off?0:a.ins,s),i&&!a.off&&p(i,r,a.text));s=(o.ins>l||a.ins>=0&&a.len>l)&&(s||r.length>c),o.forward2(l),a.forward(l)}else d(r,0,a.ins,s),i&&p(i,r,a.text),a.next()}}var y=function(){function e(t){(0,a.Z)(this,e),this.set=t,this.i=0,this.next()}return(0,s.Z)(e,[{key:"next",value:function(){var e=this.set.sections;this.i>1;return t>=e.length?l.xv.empty:e[t]}},{key:"textBit",value:function(e){var t=this.set.inserted,n=this.i-2>>1;return n>=t.length&&!e?l.xv.empty:t[n].slice(this.off,null==e?void 0:this.off+e)}},{key:"forward",value:function(e){e==this.len?this.next():(this.len-=e,this.off+=e)}},{key:"forward2",value:function(e){-1==this.ins?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}]),e}(),k=function(){function e(t,n,r){(0,a.Z)(this,e),this.from=t,this.to=n,this.flags=r}return(0,s.Z)(e,[{key:"anchor",get:function(){return 16&this.flags?this.to:this.from}},{key:"head",get:function(){return 16&this.flags?this.from:this.to}},{key:"empty",get:function(){return this.from==this.to}},{key:"assoc",get:function(){return 4&this.flags?-1:8&this.flags?1:0}},{key:"bidiLevel",get:function(){var e=3&this.flags;return 3==e?null:e}},{key:"goalColumn",get:function(){var e=this.flags>>5;return 33554431==e?void 0:e}},{key:"map",value:function(t){var n,r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1;return this.empty?n=r=t.mapPos(this.from,i):(n=t.mapPos(this.from,1),r=t.mapPos(this.to,-1)),n==this.from&&r==this.to?this:new e(n,r,this.flags)}},{key:"extend",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;if(e<=this.anchor&&t>=this.anchor)return b.range(e,t);var n=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return b.range(this.anchor,n)}},{key:"eq",value:function(e){return this.anchor==e.anchor&&this.head==e.head}},{key:"toJSON",value:function(){return{anchor:this.anchor,head:this.head}}}],[{key:"fromJSON",value:function(e){if(!e||"number"!=typeof e.anchor||"number"!=typeof e.head)throw new RangeError("Invalid JSON representation for SelectionRange");return b.range(e.anchor,e.head)}}]),e}(),b=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;(0,a.Z)(this,e),this.ranges=t,this.mainIndex=n}return(0,s.Z)(e,[{key:"map",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1;return t.empty?this:e.create(this.ranges.map((function(e){return e.map(t,n)})),this.mainIndex)}},{key:"eq",value:function(e){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(var t=0;t1&&void 0!==arguments[1])||arguments[1];return e.create([t].concat(this.ranges),n?0:this.mainIndex+1)}},{key:"replaceRange",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.mainIndex,r=this.ranges.slice();return r[n]=t,e.create(r,this.mainIndex)}},{key:"toJSON",value:function(){return{ranges:this.ranges.map((function(e){return e.toJSON()})),main:this.mainIndex}}}],[{key:"fromJSON",value:function(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 e(t.ranges.map((function(e){return k.fromJSON(e)})),t.main)}},{key:"single",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t;return new e([e.range(t,n)],0)}},{key:"create",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(0==t.length)throw new RangeError("A selection needs at least one range");for(var r=0,i=0;i1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;return new k(e,e,(0==t?0:t<0?4:8)|(null==n?3:Math.min(2,n))|(null!==r&&void 0!==r?r:33554431)<<5)}},{key:"range",value:function(e,t,n){var r=(null!==n&&void 0!==n?n:33554431)<<5;return te?4:0))}}]),e}();function w(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=e[t];e.sort((function(e,t){return e.from-t.from})),t=e.indexOf(n);for(var r=1;ri.head?b.range(s,a):b.range(a,s))}}return new b(e,t)}function x(e,t){var n,i=(0,r.Z)(e.ranges);try{for(i.s();!(n=i.n()).done;){if(n.value.to>t)throw new RangeError("Selection points outside of document")}}catch(o){i.e(o)}finally{i.f()}}var S=0,_=function(){function e(t,n,r,i,o){(0,a.Z)(this,e),this.combine=t,this.compareInput=n,this.compare=r,this.isStatic=i,this.extensions=o,this.id=S++,this.default=t([])}return(0,s.Z)(e,[{key:"of",value:function(e){return new A([],this,0,e)}},{key:"compute",value:function(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new A(e,this,1,t)}},{key:"computeN",value:function(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new A(e,this,2,t)}},{key:"from",value:function(e,t){return t||(t=function(e){return e}),this.compute([e],(function(n){return t(n.field(e))}))}}],[{key:"define",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new e(t.combine||function(e){return e},t.compareInput||function(e,t){return e===t},t.compare||(t.combine?function(e,t){return e===t}:C),!!t.static,t.enables)}}]),e}();function C(e,t){return e==t||e.length==t.length&&e.every((function(e,n){return e===t[n]}))}var A=function(){function e(t,n,r,i){(0,a.Z)(this,e),this.dependencies=t,this.facet=n,this.type=r,this.value=i,this.id=S++}return(0,s.Z)(e,[{key:"dynamicSlot",value:function(e){var t,n,i=this.value,o=this.facet.compareInput,a=this.id,s=e[a]>>1,l=2==this.type,c=!1,u=!1,h=[],f=(0,r.Z)(this.dependencies);try{for(f.s();!(n=f.n()).done;){var d=n.value;"doc"==d?c=!0:"selection"==d?u=!0:0==(1&(null!==(t=e[d.id])&&void 0!==t?t:1))&&h.push(e[d.id])}}catch(p){f.e(p)}finally{f.f()}return{create:function(e){return e.values[s]=i(e),1},update:function(e,t){if(c&&t.docChanged||u&&(t.docChanged||t.selection)||h.some((function(t){return(1&q(e,t))>0}))){var n=i(e);if(l?!O(n,e.values[s],o):!o(n,e.values[s]))return e.values[s]=n,1}return 0},reconfigure:function(e,t){var n=i(e),r=t.config.address[a];if(null!=r){var c=$(t,r);if(l?O(n,c,o):o(n,c))return e.values[s]=c,0}return e.values[s]=n,1}}}}]),e}();function O(e,t,n){if(e.length!=t.length)return!1;for(var r=0;r>1;return{create:function(e){return e.values[n]=t.create(e),1},update:function(e,r){var i=e.values[n],o=t.updateF(i,r);return t.compareF(i,o)?0:(e.values[n]=o,1)},reconfigure:function(e,r){return null!=r.config.address[t.id]?(e.values[n]=r.field(t),0):(e.values[n]=t.create(e),1)}}}},{key:"init",value:function(e){return[this,T.of({field:this,create:e})]}},{key:"extension",get:function(){return this}}],[{key:"define",value:function(t){var n=new e(S++,t.create,t.update,t.compare||function(e,t){return e===t},t);return t.provide&&(n.provides=t.provide(n)),n}}]),e}(),E=4,M=3,D=2,P=1,I=0;function R(e){return function(t){return new N(t,e)}}var z={lowest:R(E),low:R(M),default:R(D),high:R(P),highest:R(I),fallback:R(E),extend:R(P),override:R(I)},N=(0,s.Z)((function e(t,n){(0,a.Z)(this,e),this.inner=t,this.prec=n})),L=function(){function e(){(0,a.Z)(this,e)}return(0,s.Z)(e,[{key:"of",value:function(e){return new J(this,e)}},{key:"reconfigure",value:function(t){return e.reconfigure.of({compartment:this,extension:t})}},{key:"get",value:function(e){return e.config.compartments.get(this)}}]),e}(),J=(0,s.Z)((function e(t,n){(0,a.Z)(this,e),this.compartment=t,this.inner=n})),B=function(){function e(t,n,r,i,o,s){for((0,a.Z)(this,e),this.base=t,this.compartments=n,this.dynamicSlots=r,this.address=i,this.staticValues=o,this.facets=s,this.statusTemplate=[];this.statusTemplate.length>1]}}],[{key:"resolve",value:function(t,n,i){var o,a=[],s=Object.create(null),l=new Map,c=(0,r.Z)(function(e,t,n){var i=[[],[],[],[],[]],o=new Map;function a(e,s){var l=o.get(e);if(null!=l){if(l>=s)return;var c=i[l].indexOf(e);c>-1&&i[l].splice(c,1),e instanceof J&&n.delete(e.compartment)}if(o.set(e,s),Array.isArray(e)){var u,h=(0,r.Z)(e);try{for(h.s();!(u=h.n()).done;){a(u.value,s)}}catch(p){h.e(p)}finally{h.f()}}else if(e instanceof J){if(n.has(e.compartment))throw new RangeError("Duplicate use of compartment in extensions");var f=t.get(e.compartment)||e.inner;n.set(e.compartment,f),a(f,s)}else if(e instanceof N)a(e.inner,e.prec);else if(e instanceof Z)i[s].push(e),e.provides&&a(e.provides,s);else if(e instanceof A)i[s].push(e),e.facet.extensions&&a(e.facet.extensions,s);else{var d=e.extension;if(!d)throw new Error("Unrecognized extension value in extension set (".concat(e,"). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks."));a(d,s)}}return a(e,D),i.reduce((function(e,t){return e.concat(t)}))}(t,n,l));try{for(c.s();!(o=c.n()).done;){var u=o.value;u instanceof Z?a.push(u):(s[u.facet.id]||(s[u.facet.id]=[])).push(u)}}catch(b){c.e(b)}finally{c.f()}for(var h=Object.create(null),f=[],d=[],p=function(){var e=v[m];h[e.id]=d.length<<1,d.push((function(t){return e.slot(t)}))},m=0,v=a;m>1;function l(e){for(var n=[],a=0;a>1,r=e.status[n];if(4==r)throw new Error("Cyclic dependency between fields and/or facets");if(2&r)return r;e.status[n]=4;var i=e.computeSlot(e,e.config.dynamicSlots[n]);return e.status[n]=2|i}function $(e,t){return 1&t?e.config.staticValues[t>>1]:e.values[t>>1]}var F=_.define(),V=_.define({combine:function(e){return e.some((function(e){return e}))},static:!0}),j=_.define({combine:function(e){return e.length?e[0]:void 0},static:!0}),W=_.define(),H=_.define(),U=_.define(),Q=_.define({combine:function(e){return!!e.length&&e[0]}}),G=function(){function e(t,n){(0,a.Z)(this,e),this.type=t,this.value=n}return(0,s.Z)(e,null,[{key:"define",value:function(){return new K}}]),e}(),K=function(){function e(){(0,a.Z)(this,e)}return(0,s.Z)(e,[{key:"of",value:function(e){return new G(this,e)}}]),e}(),X=function(){function e(t){(0,a.Z)(this,e),this.map=t}return(0,s.Z)(e,[{key:"of",value:function(e){return new Y(this,e)}}]),e}(),Y=function(){function e(t,n){(0,a.Z)(this,e),this.type=t,this.value=n}return(0,s.Z)(e,[{key:"map",value:function(t){var n=this.type.map(this.value,t);return void 0===n?void 0:n==this.value?this:new e(this.type,n)}},{key:"is",value:function(e){return this.type==e}}],[{key:"define",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new X(e.map||function(e){return e})}},{key:"mapEffects",value:function(e,t){if(!e.length)return e;var n,i=[],o=(0,r.Z)(e);try{for(o.s();!(n=o.n()).done;){var a=n.value.map(t);a&&i.push(a)}}catch(s){o.e(s)}finally{o.f()}return i}}]),e}();Y.reconfigure=Y.define(),Y.appendConfig=Y.define();var ee=function(){function e(t,n,r,i,o,s){(0,a.Z)(this,e),this.startState=t,this.changes=n,this.selection=r,this.effects=i,this.annotations=o,this.scrollIntoView=s,this._doc=null,this._state=null,r&&x(r,n.newLength),o.some((function(t){return t.type==e.time}))||(this.annotations=o.concat(e.time.of(Date.now())))}return(0,s.Z)(e,[{key:"newDoc",get:function(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}},{key:"newSelection",get:function(){return this.selection||this.startState.selection.map(this.changes)}},{key:"state",get:function(){return this._state||this.startState.applyTransaction(this),this._state}},{key:"annotation",value:function(e){var t,n=(0,r.Z)(this.annotations);try{for(n.s();!(t=n.n()).done;){var i=t.value;if(i.type==e)return i.value}}catch(o){n.e(o)}finally{n.f()}}},{key:"docChanged",get:function(){return!this.changes.empty}},{key:"reconfigured",get:function(){return this.startState.config!=this.state.config}},{key:"isUserEvent",value:function(t){var n=this.annotation(e.userEvent);return!(!n||!(n==t||n.length>t.length&&n.slice(0,t.length)==t&&"."==n[t.length]))}}]),e}();function te(e,t){for(var n=[],r=0,i=0;;){var o=void 0,a=void 0;if(r=e[r]))o=e[r++],a=e[r++];else{if(!(i=0;i--){var o=n[i](e);o&&Object.keys(o).length&&(r=ne(e,re(t,o,e.changes.newLength),!0))}return r==e?e:new ee(t,e.changes,e.selection,r.effects,r.annotations,r.scrollIntoView)}(n?function(e){var t,n=e.startState,i=!0,o=(0,r.Z)(n.facet(W));try{for(o.s();!(t=o.n()).done;){var a=(0,t.value)(e);if(!1===a){i=!1;break}Array.isArray(a)&&(i=!0===i?a:te(i,a))}}catch(p){o.e(p)}finally{o.f()}if(!0!==i){var s,l;if(!1===i)l=e.changes.invertedDesc,s=f.empty(n.doc.length);else{var c=e.changes.filter(i);s=c.changes,l=c.filtered.invertedDesc}e=new ee(n,s,e.selection&&e.selection.map(l),Y.mapEffects(e.effects,l),e.annotations,e.scrollIntoView)}for(var u=n.facet(H),h=u.length-1;h>=0;h--){var d=u[h](e);e=d instanceof ee?d:Array.isArray(d)&&1==d.length&&d[0]instanceof ee?d[0]:ie(n,ae(d),!1)}return e}(s):s)}ee.time=G.define(),ee.userEvent=G.define(),ee.addToHistory=G.define(),ee.remote=G.define();var oe=[];function ae(e){return null==e?oe:Array.isArray(e)?e:[e]}var se,le=function(e){return e[e.Word=0]="Word",e[e.Space=1]="Space",e[e.Other=2]="Other",e}(le||(le={})),ce=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;try{se=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(de){}function ue(e){return function(t){if(!/\S/.test(t))return le.Space;if(function(e){if(se)return se.test(e);for(var t=0;t"\x80"&&(n.toUpperCase()!=n.toLowerCase()||ce.test(n)))return!0}return!1}(t))return le.Word;for(var n=0;n-1)return le.Word;return le.Other}}var he=function(){function e(t,n,r,i,o,s){(0,a.Z)(this,e),this.config=t,this.doc=n,this.selection=r,this.values=i,this.status=t.statusTemplate.slice(),this.computeSlot=o,s&&(s._state=this);for(var l=0;l1&&void 0!==arguments[1])||arguments[1],n=this.config.address[e.id];if(null!=n)return q(this,n),$(this,n);if(t)throw new RangeError("Field is not present in this state")}},{key:"update",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&void 0!==arguments[0]?arguments[0]:[];return t instanceof f?t:f.of(t,this.doc.length,this.facet(e.lineSeparator))}},{key:"toText",value:function(t){return l.xv.of(t.split(this.facet(e.lineSeparator)||c))}},{key:"sliceDoc",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.doc.length;return this.doc.sliceString(e,t,this.lineBreak)}},{key:"facet",value:function(e){var t=this.config.address[e.id];return null==t?e.default:(q(this,t),$(this,t))}},{key:"toJSON",value:function(e){var t={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(var n in e){var r=e[n];r instanceof Z&&(t[n]=r.spec.toJSON(this.field(e[n]),this))}return t}},{key:"tabSize",get:function(){return this.facet(e.tabSize)}},{key:"lineBreak",get:function(){return this.facet(e.lineSeparator)||"\n"}},{key:"readOnly",get:function(){return this.facet(Q)}},{key:"phrase",value:function(t){var n,i=(0,r.Z)(this.facet(e.phrases));try{for(i.s();!(n=i.n()).done;){var o=n.value;if(Object.prototype.hasOwnProperty.call(o,t))return o[t]}}catch(a){i.e(a)}finally{i.f()}return t}},{key:"languageDataAt",value:function(e,t){var n,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1,o=[],a=(0,r.Z)(this.facet(F));try{for(a.s();!(n=a.n()).done;){var s,l=n.value,c=(0,r.Z)(l(this,t,i));try{for(c.s();!(s=c.n()).done;){var u=s.value;Object.prototype.hasOwnProperty.call(u,e)&&o.push(u[e])}}catch(h){c.e(h)}finally{c.f()}}}catch(h){a.e(h)}finally{a.f()}return o}},{key:"charCategorizer",value:function(e){return ue(this.languageDataAt("wordChars",e).join(""))}},{key:"wordAt",value:function(e){for(var t=this.doc.lineAt(e),n=t.text,r=t.from,i=t.length,o=this.charCategorizer(e),a=e-r,s=e-r;a>0;){var c=(0,l.cp)(n,a,!1);if(o(n.slice(c,a))!=le.Word)break;a=c}for(;s1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0;if(!t||"string"!=typeof t.doc)throw new RangeError("Invalid JSON representation for EditorState");var i=[];if(r){var o=function(e){var n=r[e],o=t[e];i.push(n.init((function(e){return n.spec.fromJSON(o,e)})))};for(var a in r)o(a)}return e.create({doc:t.doc,selection:b.fromJSON(t.selection),extensions:n.extensions?i.concat([n.extensions]):i})}},{key:"create",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=B.resolve(t.extensions||[],new Map),r=t.doc instanceof l.xv?t.doc:l.xv.of((t.doc||"").split(n.staticFacet(e.lineSeparator)||c)),i=t.selection?t.selection instanceof b?t.selection:b.single(t.selection.anchor,t.selection.head):b.single(0);return x(i,r.length),n.staticFacet(V)||(i=i.asSingle()),new e(n,r,i,n.dynamicSlots.map((function(){return null})),(function(e,t){return t.create(e)}),null)}}]),e}();function fe(e,t){var n,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o={},a=(0,r.Z)(e);try{for(a.s();!(n=a.n()).done;)for(var s=n.value,l=0,c=Object.keys(s);l3&&void 0!==arguments[3]?arguments[3]:0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0;null==t&&-1==(t=e.search(/[^\s\u00a0]/))&&(t=e.length);for(var o=i,a=r;a=this.string.length}},{key:"sol",value:function(){return 0==this.pos}},{key:"peek",value:function(){return this.string.charAt(this.pos)||void 0}},{key:"next",value:function(){if(this.post}},{key:"eatSpace",value:function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e}},{key:"skipToEnd",value:function(){this.pos=this.string.length}},{key:"skipTo",value:function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0}},{key:"backUp",value:function(e){this.pos-=e}},{key:"column",value:function(){return this.lastColumnPos0?null:(i&&!1!==t&&(this.pos+=i[0].length),i)}},{key:"current",value:function(){return this.string.slice(this.start,this.pos)}}]),e}();function v(e){if("object"!=typeof e)return e;var t={};for(var n in e){var r=e[n];t[n]=r instanceof Array?r.slice():r}return t}var g=function(e){(0,s.Z)(n,e);var t=(0,l.Z)(n);function n(e){var r;(0,c.Z)(this,n);var i,o,f=(0,d.kU)(e.languageData),p={token:(o=e).token,blankLine:o.blankLine||function(){},startState:o.startState||function(){return!0},copyState:o.copyState||v,indent:o.indent||function(){return null},languageData:o.languageData||{},tokenTable:o.tokenTable||x},m=new(function(e){(0,s.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,c.Z)(this,n),t.apply(this,arguments)}return(0,u.Z)(n,[{key:"createParse",value:function(e,t,n){return new b(i,e,t,n)}}]),n}(h._b));return r=t.call(this,f,m,function(e){var t=h.Jq.define({id:S.length,name:"Document",props:[d.mi.add((function(){return e}))]});return S.push(t),t}(f),[d.tK.of((function(e,t){return r.getIndent(e,t)}))]),i=(0,a.Z)(r),r.streamParser=p,r.stateAfter=new h.md({perNode:!0}),r.tokenTable=e.tokenTable?new D(p.tokenTable):P,r}return(0,u.Z)(n,[{key:"getIndent",value:function(e,t){for(var n=(0,d.qz)(e.state),r=n.resolve(t);r&&r.type!=this.topNode;)r=r.parent;if(!r)return null;var i,o,a=y(this,n,0,r.from,t);if(a?(o=a.state,i=a.pos+1):(o=this.streamParser.startState(e.unit),i=0),t-i>1e4)return null;for(;i=r&&n+t.length<=i&&t.prop(e.stateAfter);if(o)return{state:e.streamParser.copyState(o),pos:n+t.length};for(var a=t.children.length-1;a>=0;a--){var s=t.children[a],l=n+t.positions[a],c=s instanceof h.mp&&l=t.length)return t;i||t.type!=e.topNode||(i=!0);for(var o=t.children.length-1;o>=0;o--){var a=t.positions[o],s=t.children[o],l=void 0;if(an&&y(e,s.tree,0-s.offset,n,c),f=void 0;if(u&&(f=k(e,s.tree,n+s.offset,u.pos+s.offset,!1)))return{state:u.state,tree:f}}}catch(p){a.e(p)}finally{a.f()}return{state:e.streamParser.startState(r?(0,d.y1)(r):4),tree:h.mp.empty}}(t,r,s,null===a||void 0===a?void 0:a.state),u=l.state,f=l.tree;this.state=u,this.parsedPos=this.chunkStart=s+f.length;for(var p=0;p=t?this.finish():e&&this.parsedPos>=e.viewport.to?(e.skipUntilInView(this.parsedPos,t),this.finish()):null}},{key:"stopAt",value:function(e){this.stoppedAt=e}},{key:"lineAfter",value:function(e){var t=this.input.chunk(e);if(this.input.lineChunks)"\n"==t&&(t="");else{var n=t.indexOf("\n");n>-1&&(t=t.slice(0,n))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}},{key:"nextLine",value:function(){for(var e=this.parsedPos,t=this.lineAfter(e),n=e+t.length,r=this.rangeIndex;;){var i=this.ranges[r].to;if(i>=n)break;if(t=t.slice(0,i-(n-t.length)),++r==this.ranges.length)break;var o=this.ranges[r].from,a=this.lineAfter(o);t+=a,n=o+a.length}return{line:t,end:n}}},{key:"skipGapsTo",value:function(e,t,n){for(;;){var r=this.ranges[this.rangeIndex].to,i=e+t;if(n>0?r>i:r>=i)break;t+=this.ranges[++this.rangeIndex].from-r}return t}},{key:"emitToken",value:function(e,t,n,r,i){if(this.ranges.length>1){t+=i=this.skipGapsTo(t,i,1);var o=this.chunk.length;n+=i=this.skipGapsTo(n,i,-1),r+=this.chunk.length-o}return this.chunk.push(e,t,n,r),i}},{key:"parseLine",value:function(e){var t=this.nextLine(),n=t.line,r=t.end,i=0,o=this.lang.streamParser,a=new m(n,e?e.state.tabSize:4,e?(0,d.y1)(e.state):2);if(a.eol())o.blankLine(this.state,a.indentUnit);else for(;!a.eol();){var s=w(o.token,a,this.state);if(s&&(i=this.emitToken(this.lang.tokenTable.resolve(s),this.parsedPos+a.start,this.parsedPos+a.pos,4,i)),a.start>1e4)break}this.parsedPos=r,this.parsedPost.start)return i}throw new Error("Stream parser failed to advance stream.")}for(var x=Object.create(null),S=[h.Jq.none],_=new h.Lj(S),C=[],A=Object.create(null),O=0,T=[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","typeName"],["attribute","propertyName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]];O-1||(C.push(e),console.warn(t))}function R(e,t){var n,i=null,a=(0,o.Z)(t.split("."));try{for(a.s();!(n=a.n()).done;){var s=n.value,l=e[s]||f.pJ[s];l?"function"==typeof l?i?i=l(i):I(s,"Modifier ".concat(s," used at start of tag")):i?I(s,"Tag ".concat(s," used as modifier")):i=l:I(s,"Unknown highlighting tag ".concat(s))}}catch(d){a.e(d)}finally{a.f()}if(!i)return 0;var c=t.replace(/ /g,"_"),u=h.Jq.define({id:S.length,name:c,props:[(0,f.Gv)((0,r.Z)({},c,i))]});return S.push(u),u.id}},6830:function(e,t,n){n.d(t,{Gz:function(){return _},IS:function(){return S},bg:function(){return w},cp:function(){return m},gm:function(){return b},nZ:function(){return x},xv:function(){return C}});for(var r=n(9439),i=n(7762),o=n(1752),a=n(1120),s=n(136),l=n(3668),c=n(5671),u=n(3144),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((function(e){return e?parseInt(e,36):1})),f=1;fe)return h[t-1]<=e;return!1}function p(e){return e>=127462&&e<=127487}function m(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];return(n?v:g)(e,t,r)}function v(e,t,n){if(t==e.length)return t;t&&y(e.charCodeAt(t))&&k(e.charCodeAt(t-1))&&t--;var r=b(e,t);for(t+=x(r);t=0&&p(b(e,a));)o++,a-=2;if(o%2==0)break;t+=2}}return t}function g(e,t,n){for(;t>0;){var r=v(e,t-2,n);if(r=56320&&e<57344}function k(e){return e>=55296&&e<56320}function b(e,t){var n=e.charCodeAt(t);if(!k(n)||t+1==e.length)return n;var r=e.charCodeAt(t+1);return y(r)?r-56320+(n-55296<<10)+65536:n}function w(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}function x(e){return e<65536?1:2}function S(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=0,i=0;i=t)return i;if(i==e.length)break;o+=9==e.charCodeAt(i)?n-o%n:1,i=m(e,i)}return!0===r?-1:e.length}var C=function(){function e(){(0,c.Z)(this,e)}return(0,u.Z)(e,[{key:"lineAt",value:function(e){if(e<0||e>this.length)throw new RangeError("Invalid position ".concat(e," in document of length ").concat(this.length));return this.lineInner(e,!1,1,0)}},{key:"line",value:function(e){if(e<1||e>this.lines)throw new RangeError("Invalid line number ".concat(e," in ").concat(this.lines,"-line document"));return this.lineInner(e,!0,1,0)}},{key:"replace",value:function(e,t,n){var r=[];return this.decompose(0,e,r,2),n.length&&n.decompose(0,n.length,r,3),this.decompose(t,this.length,r,1),O.from(r,this.length-(t-e)+n.length)}},{key:"append",value:function(e){return this.replace(this.length,this.length,e)}},{key:"slice",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.length,n=[];return this.decompose(e,t,n,0),O.from(n,t-e)}},{key:"eq",value:function(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;for(var t=this.scanIdentical(e,1),n=this.length-this.scanIdentical(e,-1),r=new M(this),i=new M(e),o=t,a=t;;){if(r.next(o),i.next(o),o=0,r.lineBreak!=i.lineBreak||r.done!=i.done||r.value!=i.value)return!1;if(a+=r.value.length,r.done||a>=n)return!0}}},{key:"iter",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;return new M(this,e)}},{key:"iterRange",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.length;return new D(this,e,t)}},{key:"iterLines",value:function(e,t){var n;if(null==e)n=this.iter();else{null==t&&(t=this.lines+1);var r=this.line(e).from;n=this.iterRange(r,Math.max(r,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new P(n)}},{key:"toString",value:function(){return this.sliceString(0)}},{key:"toJSON",value:function(){var e=[];return this.flatten(e),e}}],[{key:"of",value:function(t){if(0==t.length)throw new RangeError("A document must have at least one line");return 1!=t.length||t[0]?t.length<=32?new A(t):O.from(A.split(t,[])):e.empty}}]),e}(),A=function(e){(0,s.Z)(n,e);var t=(0,l.Z)(n);function n(e){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:T(e);return(0,c.Z)(this,n),(r=t.call(this)).text=e,r.length=i,r}return(0,u.Z)(n,[{key:"lines",get:function(){return this.text.length}},{key:"children",get:function(){return null}},{key:"lineInner",value:function(e,t,n,r){for(var i=0;;i++){var o=this.text[i],a=r+o.length;if((t?n:a)>=e)return new I(r,a,n,o);r=a+1,n++}}},{key:"decompose",value:function(e,t,r,i){var o=e<=0&&t>=this.length?this:new n(E(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(1&i){var a=r.pop(),s=Z(o.text,a.text.slice(),0,o.length);if(s.length<=32)r.push(new n(s,a.length+o.length));else{var l=s.length>>1;r.push(new n(s.slice(0,l)),new n(s.slice(l)))}}else r.push(o)}},{key:"replace",value:function(e,t,r){if(!(r instanceof n))return(0,o.Z)((0,a.Z)(n.prototype),"replace",this).call(this,e,t,r);var i=Z(this.text,Z(r.text,E(this.text,0,e)),t),s=this.length+r.length-(t-e);return i.length<=32?new n(i,s):O.from(n.split(i,[]),s)}},{key:"sliceString",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.length,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"\n",r="",i=0,o=0;i<=t&&oe&&o&&(r+=n),ei&&(r+=a.slice(Math.max(0,e-i),t-i)),i=s+1}return r}},{key:"flatten",value:function(e){var t,n=(0,i.Z)(this.text);try{for(n.s();!(t=n.n()).done;){var r=t.value;e.push(r)}}catch(o){n.e(o)}finally{n.f()}}},{key:"scanIdentical",value:function(){return 0}}],[{key:"split",value:function(e,t){var r,o=[],a=-1,s=(0,i.Z)(e);try{for(s.s();!(r=s.n()).done;){var l=r.value;o.push(l),a+=l.length+1,32==o.length&&(t.push(new n(o,a)),o=[],a=-1)}}catch(c){s.e(c)}finally{s.f()}return a>-1&&t.push(new n(o,a)),t}}]),n}(C),O=function(e){(0,s.Z)(n,e);var t=(0,l.Z)(n);function n(e,r){var o;(0,c.Z)(this,n),(o=t.call(this)).children=e,o.length=r,o.lines=0;var a,s=(0,i.Z)(e);try{for(s.s();!(a=s.n()).done;){var l=a.value;o.lines+=l.lines}}catch(u){s.e(u)}finally{s.f()}return o}return(0,u.Z)(n,[{key:"lineInner",value:function(e,t,n,r){for(var i=0;;i++){var o=this.children[i],a=r+o.length,s=n+o.lines-1;if((t?s:a)>=e)return o.lineInner(e,t,n,r);r=a+1,n=s+1}}},{key:"decompose",value:function(e,t,n,r){for(var i=0,o=0;o<=t&&i=o){var l=r&((o<=e?1:0)|(s>=t?2:0));o>=e&&s<=t&&!l?n.push(a):a.decompose(e-o,t-o,n,l)}o=s+1}}},{key:"replace",value:function(e,t,r){if(r.lines=s&&t<=c){var u=l.replace(e-s,t-s,r),h=this.lines-l.lines+u.lines;if(u.lines>4&&u.lines>h>>6){var f=this.children.slice();return f[i]=u,new n(f,this.length-(t-e)+r.length)}return(0,o.Z)((0,a.Z)(n.prototype),"replace",this).call(this,s,c,u)}s=c+1}return(0,o.Z)((0,a.Z)(n.prototype),"replace",this).call(this,e,t,r)}},{key:"sliceString",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.length,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"\n",r="",i=0,o=0;ie&&i&&(r+=n),eo&&(r+=a.sliceString(e-o,t-o,n)),o=s+1}return r}},{key:"flatten",value:function(e){var t,n=(0,i.Z)(this.children);try{for(n.s();!(t=n.n()).done;){t.value.flatten(e)}}catch(r){n.e(r)}finally{n.f()}}},{key:"scanIdentical",value:function(e,t){if(!(e instanceof n))return 0;for(var i=0,o=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1],a=(0,r.Z)(o,4),s=a[0],l=a[1],c=a[2],u=a[3];;s+=t,l+=t){if(s==c||l==u)return i;var h=this.children[s],f=e.children[l];if(h!=f)return i+h.scanIdentical(f,t);i+=h.length+1}}}],[{key:"from",value:function(e){var t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.reduce((function(e,t){return e+t.length+1}),-1),o=0,a=(0,i.Z)(e);try{for(a.s();!(t=a.n()).done;){var s=t.value;o+=s.lines}}catch(_){a.e(_)}finally{a.f()}if(o<32){var l,c=[],u=(0,i.Z)(e);try{for(u.s();!(l=u.n()).done;){var h=l.value;h.flatten(c)}}catch(_){u.e(_)}finally{u.f()}return new A(c,r)}var f=Math.max(32,o>>5),d=f<<1,p=f>>1,m=[],v=0,g=-1,y=[];function k(e){var t;if(e.lines>d&&e instanceof n){var r,o=(0,i.Z)(e.children);try{for(o.s();!(r=o.n()).done;){k(r.value)}}catch(_){o.e(_)}finally{o.f()}}else e.lines>p&&(v>p||!v)?(b(),m.push(e)):e instanceof A&&v&&(t=y[y.length-1])instanceof A&&e.lines+t.lines<=32?(v+=e.lines,g+=e.length+1,y[y.length-1]=new A(t.text.concat(e.text),t.length+1+e.length)):(v+e.lines>f&&b(),v+=e.lines,g+=e.length+1,y.push(e))}function b(){0!=v&&(m.push(1==y.length?y[0]:n.from(y,g)),g=-1,v=y.length=0)}var w,x=(0,i.Z)(e);try{for(x.s();!(w=x.n()).done;){var S=w.value;k(S)}}catch(_){x.e(_)}finally{x.f()}return b(),1==m.length?m[0]:new n(m,r)}}]),n}(C);function T(e){var t,n=-1,r=(0,i.Z)(e);try{for(r.s();!(t=r.n()).done;){n+=t.value.length+1}}catch(o){r.e(o)}finally{r.f()}return n}function Z(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1e9,i=0,o=0,a=!0;o=n&&(l>r&&(s=s.slice(0,r-i)),i1&&void 0!==arguments[1]?arguments[1]:1;(0,c.Z)(this,e),this.dir=n,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[t],this.offsets=[n>0?1:(t instanceof A?t.text.length:t.children.length)<<1]}return(0,u.Z)(e,[{key:"nextInner",value:function(e,t){for(this.done=this.lineBreak=!1;;){var n=this.nodes.length-1,r=this.nodes[n],i=this.offsets[n],o=i>>1,a=r instanceof A?r.text.length:r.children.length;if(o==(t>0?a:0)){if(0==n)return this.done=!0,this.value="",this;t>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((1&i)==(t>0?0:1)){if(this.offsets[n]+=t,0==e)return this.lineBreak=!0,this.value="\n",this;e--}else if(r instanceof A){var s=r.text[o+(t<0?-1:0)];if(this.offsets[n]+=t,s.length>Math.max(0,e))return this.value=0==e?s:t>0?s.slice(e):s.slice(0,s.length-e),this;e-=s.length}else{var l=r.children[o+(t<0?-1:0)];e>l.length?(e-=l.length,this.offsets[n]+=t):(t<0&&this.offsets[n]--,this.nodes.push(l),this.offsets.push(t>0?1:(l instanceof A?l.text.length:l.children.length)<<1))}}}},{key:"next",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}]),e}(),D=function(){function e(t,n,r){(0,c.Z)(this,e),this.value="",this.done=!1,this.cursor=new M(t,n>r?-1:1),this.pos=n>r?t.length:0,this.from=Math.min(n,r),this.to=Math.max(n,r)}return(0,u.Z)(e,[{key:"nextInner",value:function(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);var n=t<0?this.pos-this.from:this.to-this.pos;e>n&&(e=n),n-=e;var r=this.cursor.next(e).value;return this.pos+=(r.length+e)*t,this.value=r.length<=n?r:t<0?r.slice(r.length-n):r.slice(0,n),this.done=!this.value,this}},{key:"next",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]: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)}},{key:"lineBreak",get:function(){return this.cursor.lineBreak&&""!=this.value}}]),e}(),P=function(){function e(t){(0,c.Z)(this,e),this.inner=t,this.afterBreak=!0,this.value="",this.done=!1}return(0,u.Z)(e,[{key:"next",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=this.inner.next(e),n=t.done,r=t.lineBreak,i=t.value;return n?(this.done=!0,this.value=""):r?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=i,this.afterBreak=!1),this}},{key:"lineBreak",get:function(){return!1}}]),e}();"undefined"!=typeof Symbol&&(C.prototype[Symbol.iterator]=function(){return this.iter()},M.prototype[Symbol.iterator]=D.prototype[Symbol.iterator]=P.prototype[Symbol.iterator]=function(){return this});var I=function(){function e(t,n,r,i){(0,c.Z)(this,e),this.from=t,this.to=n,this.number=r,this.text=i}return(0,u.Z)(e,[{key:"length",get:function(){return this.to-this.from}}]),e}()},8402:function(e,t,n){n.d(t,{vk:function(){return d}});var r=n(2077),i=n(7536),o="#e06c75",a="#abb2bf",s="#7d8799",l="#d19a66",c="#2c313a",u="#282c34",h="#353a42",f="#528bff",d=[r.tk.theme({"&":{color:a,backgroundColor:u},".cm-content":{caretColor:f},"&.cm-focused .cm-cursor":{borderLeftColor:f},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:"#3E4451"},".cm-panels":{backgroundColor:"#21252b",color:a},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:c},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847",outline:"1px solid #515a6b"},".cm-gutters":{backgroundColor:u,color:s,border:"none"},".cm-activeLineGutter":{backgroundColor:c},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:h},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:h,borderBottomColor:h},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:c,color:a}}},{dark:!0}),i.Qf.define([{tag:i.pJ.keyword,color:"#c678dd"},{tag:[i.pJ.name,i.pJ.deleted,i.pJ.character,i.pJ.propertyName,i.pJ.macroName],color:o},{tag:[i.pJ.function(i.pJ.variableName),i.pJ.labelName],color:"#61afef"},{tag:[i.pJ.color,i.pJ.constant(i.pJ.name),i.pJ.standard(i.pJ.name)],color:l},{tag:[i.pJ.definition(i.pJ.name),i.pJ.separator],color:a},{tag:[i.pJ.typeName,i.pJ.className,i.pJ.number,i.pJ.changed,i.pJ.annotation,i.pJ.modifier,i.pJ.self,i.pJ.namespace],color:"#e5c07b"},{tag:[i.pJ.operator,i.pJ.operatorKeyword,i.pJ.url,i.pJ.escape,i.pJ.regexp,i.pJ.link,i.pJ.special(i.pJ.string)],color:"#56b6c2"},{tag:[i.pJ.meta,i.pJ.comment],color:s},{tag:i.pJ.strong,fontWeight:"bold"},{tag:i.pJ.emphasis,fontStyle:"italic"},{tag:i.pJ.strikethrough,textDecoration:"line-through"},{tag:i.pJ.link,color:s,textDecoration:"underline"},{tag:i.pJ.heading,fontWeight:"bold",color:o},{tag:[i.pJ.atom,i.pJ.bool,i.pJ.special(i.pJ.variableName)],color:l},{tag:[i.pJ.processingInstruction,i.pJ.string,i.pJ.inserted],color:"#98c379"},{tag:i.pJ.invalid,color:"#ffffff"}])]},5128:function(e,t,n){n.d(t,{bF:function(){return x},gB:function(){return S},hJ:function(){return g}});var r=n(3433),i=n(7762),o=n(5671),a=n(3144),s=n(2077),l=n(1383),c="undefined"!=typeof navigator&&!/Edge\/(\d+)/.exec(navigator.userAgent)&&/Apple Computer/.test(navigator.vendor)&&(/Mobile\/\w+/.test(navigator.userAgent)||navigator.maxTouchPoints>2),u="-10000px",h=function(){function e(t,n,r){(0,o.Z)(this,e),this.facet=n,this.createTooltipView=r,this.input=t.state.facet(n),this.tooltips=this.input.filter((function(e){return e})),this.tooltipViews=this.tooltips.map(r)}return(0,a.Z)(e,[{key:"update",value:function(e){var t=e.state.facet(this.facet),n=t.filter((function(e){return e}));if(t===this.input){var r,o=(0,i.Z)(this.tooltipViews);try{for(o.s();!(r=o.n()).done;){var a=r.value;a.update&&a.update(e)}}catch(g){o.e(g)}finally{o.f()}return!1}for(var s=[],l=0;lr.lastTransaction-50&&e.length>0&&e[e.length-1].intersectionRatio<1&&r.measureSoon()}),{threshold:[1]}):null,this.observeIntersection(),null===(n=t.dom.ownerDocument.defaultView)||void 0===n||n.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}return(0,a.Z)(e,[{key:"createContainer",value:function(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}},{key:"observeIntersection",value:function(){if(this.intersectionObserver){this.intersectionObserver.disconnect();var e,t=(0,i.Z)(this.manager.tooltipViews);try{for(t.s();!(e=t.n()).done;){var n=e.value;this.intersectionObserver.observe(n.dom)}}catch(r){t.e(r)}finally{t.f()}}}},{key:"measureSoon",value:function(){var e=this;this.measureTimeout<0&&(this.measureTimeout=setTimeout((function(){e.measureTimeout=-1,e.maybeMeasure()}),50))}},{key:"update",value:function(e){e.transactions.length&&(this.lastTransaction=Date.now());var t=this.manager.update(e);t&&this.observeIntersection();var n=t||e.geometryChanged,r=e.state.facet(d);if(r.position!=this.position){this.position=r.position;var o,a=(0,i.Z)(this.manager.tooltipViews);try{for(a.s();!(o=a.n()).done;){o.value.dom.style.position=this.position}}catch(u){a.e(u)}finally{a.f()}n=!0}if(r.parent!=this.parent){this.parent&&this.container.remove(),this.parent=r.parent,this.createContainer();var s,l=(0,i.Z)(this.manager.tooltipViews);try{for(l.s();!(s=l.n()).done;){var c=s.value;this.container.appendChild(c.dom)}}catch(u){l.e(u)}finally{l.f()}n=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);n&&this.maybeMeasure()}},{key:"createTooltip",value:function(e){var t=e.create(this.view);if(t.dom.classList.add("cm-tooltip"),e.arrow&&!t.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){var n=document.createElement("div");n.className="cm-tooltip-arrow",t.dom.appendChild(n)}return t.dom.style.position=this.position,t.dom.style.top=u,this.container.appendChild(t.dom),t.mount&&t.mount(this.view),t}},{key:"destroy",value:function(){var e,t;null===(e=this.view.dom.ownerDocument.defaultView)||void 0===e||e.removeEventListener("resize",this.measureSoon);var n,r=(0,i.Z)(this.manager.tooltipViews);try{for(r.s();!(n=r.n()).done;){n.value.dom.remove()}}catch(o){r.e(o)}finally{r.f()}null===(t=this.intersectionObserver)||void 0===t||t.disconnect(),clearTimeout(this.measureTimeout)}},{key:"readMeasure",value:function(){var e=this,t=this.view.dom.getBoundingClientRect();return{editor:t,parent:this.parent?this.container.getBoundingClientRect():t,pos:this.manager.tooltips.map((function(t,n){var r=e.manager.tooltipViews[n];return r.getCoords?r.getCoords(t.pos):e.view.coordsAtPos(t.pos)})),size:this.manager.tooltipViews.map((function(e){return e.dom.getBoundingClientRect()})),space:this.view.state.facet(d).tooltipSpace(this.view)}}},{key:"writeMeasure",value:function(e){for(var t=e.editor,n=e.space,r=[],o=0;o=Math.min(t.bottom,n.bottom)||h.rightMath.min(t.right,n.right)+.1)c.style.top=u;else{var d=a.arrow?l.dom.querySelector(".cm-tooltip-arrow"):null,p=d?7:0,m=f.right-f.left,g=f.bottom-f.top,y=l.offset||v,k=this.view.textDirection==s.Nm.LTR,b=f.width>n.right-n.left?k?n.left:n.right-f.width:k?Math.min(h.left-(d?14:0)+y.x,n.right-m):Math.max(n.left,h.left-m+(d?14:0)-y.x),w=!!a.above;!a.strictSide&&(w?h.top-(f.bottom-f.top)-y.yn.bottom)&&w==n.bottom-h.bottom>h.top-n.top&&(w=!w);var x=w?h.top-g-p-y.y:h.bottom+p+y.y,S=b+m;if(!0!==l.overlap){var _,C=(0,i.Z)(r);try{for(C.s();!(_=C.n()).done;){var A=_.value;A.leftb&&A.topx&&(x=w?A.top-g-2-p:A.bottom+p+2)}}catch(O){C.e(O)}finally{C.f()}}"absolute"==this.position?(c.style.top=x-e.parent.top+"px",c.style.left=b-e.parent.left+"px"):(c.style.top=x+"px",c.style.left=b+"px"),d&&(d.style.left="".concat(h.left+(k?y.x:-y.x)-(b+14-7),"px")),!0!==l.overlap&&r.push({left:b,top:x,right:S,bottom:x+g}),c.classList.toggle("cm-tooltip-above",w),c.classList.toggle("cm-tooltip-below",!w),l.positioned&&l.positioned()}}}},{key:"maybeMeasure",value:function(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView))){var e,t=(0,i.Z)(this.manager.tooltipViews);try{for(t.s();!(e=t.n()).done;){e.value.dom.style.top=u}}catch(n){t.e(n)}finally{t.f()}}}}]),e}(),{eventHandlers:{scroll:function(){this.maybeMeasure()}}}),m=s.tk.baseTheme({".cm-tooltip":{zIndex:100},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"".concat(7,"px"),width:"".concat(14,"px"),position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"".concat(7,"px solid transparent"),borderRight:"".concat(7,"px solid transparent")},".cm-tooltip-above &":{bottom:"-".concat(7,"px"),"&:before":{borderTop:"".concat(7,"px solid #bbb")},"&:after":{borderTop:"".concat(7,"px solid #f5f5f5"),bottom:"1px"}},".cm-tooltip-below &":{top:"-".concat(7,"px"),"&:before":{borderBottom:"".concat(7,"px solid #bbb")},"&:after":{borderBottom:"".concat(7,"px solid #f5f5f5"),top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),v={x:0,y:0},g=l.r$.define({enables:[p,m]}),y=l.r$.define(),k=function(){function e(t){var n=this;(0,o.Z)(this,e),this.view=t,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new h(t,y,(function(e){return n.createHostedView(e)}))}return(0,a.Z)(e,[{key:"createHostedView",value:function(e){var t=e.create(this.view);return t.dom.classList.add("cm-tooltip-section"),this.dom.appendChild(t.dom),this.mounted&&t.mount&&t.mount(this.view),t}},{key:"mount",value:function(e){var t,n=(0,i.Z)(this.manager.tooltipViews);try{for(n.s();!(t=n.n()).done;){var r=t.value;r.mount&&r.mount(e)}}catch(o){n.e(o)}finally{n.f()}this.mounted=!0}},{key:"positioned",value:function(){var e,t=(0,i.Z)(this.manager.tooltipViews);try{for(t.s();!(e=t.n()).done;){var n=e.value;n.positioned&&n.positioned()}}catch(r){t.e(r)}finally{t.f()}}},{key:"update",value:function(e){this.manager.update(e)}}],[{key:"create",value:function(t){return new e(t)}}]),e}(),b=g.compute([y],(function(e){var t=e.facet(y).filter((function(e){return e}));return 0===t.length?null:{pos:Math.min.apply(Math,(0,r.Z)(t.map((function(e){return e.pos})))),end:Math.max.apply(Math,(0,r.Z)(t.filter((function(e){return null!=e.end})).map((function(e){return e.end})))),create:k.create,above:t[0].above,arrow:t.some((function(e){return e.arrow}))}})),w=function(){function e(t,n,r,i,a){(0,o.Z)(this,e),this.view=t,this.source=n,this.field=r,this.setHover=i,this.hoverTime=a,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:t.dom,time:0},this.checkHover=this.checkHover.bind(this),t.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),t.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}return(0,a.Z)(e,[{key:"update",value:function(){var e=this;this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout((function(){return e.startHover()}),20))}},{key:"active",get:function(){return this.view.state.field(this.field)}},{key:"checkHover",value:function(){if(this.hoverTimeout=-1,!this.active){var e=Date.now()-this.lastMove.time;ei.bottom||n.xi.right+this.view.defaultCharacterWidth)){var o=this.view.bidiSpans(this.view.state.doc.lineAt(r)).find((function(e){return e.from<=r&&e.to>=r})),a=o&&o.dir==s.Nm.RTL?-1:1,l=this.source(this.view,r,n.x1&&void 0!==arguments[1]?arguments[1]:{},n=l.Py.define(),r=l.QQ.define({create:function(){return null},update:function(e,r){if(e&&t.hideOnChange&&(r.docChanged||r.selection))return null;var o,a=(0,i.Z)(r.effects);try{for(a.s();!(o=a.n()).done;){var s=o.value;if(s.is(n))return s.value;if(s.is(_))return null}}catch(h){a.e(h)}finally{a.f()}if(e&&r.docChanged){var c=r.changes.mapPos(e.pos,-1,l.gc.TrackDel);if(null==c)return null;var u=Object.assign(Object.create(null),e);return u.pos=c,null!=e.end&&(u.end=r.changes.mapPos(e.end)),u}return e},provide:function(e){return y.from(e)}});return[r,s.lg.define((function(i){return new w(i,e,r,n,t.hoverTime||300)})),b]}function S(e,t){var n=e.plugin(p);if(!n)return null;var r=n.manager.tooltips.indexOf(t);return r<0?null:n.manager.tooltipViews[r]}var _=l.Py.define()},2077:function(e,t,n){n.d(t,{$1:function(){return dr},$f:function(){return ur},AE:function(){return Jr},BF:function(){return $e},Nm:function(){return et},OO:function(){return Je},Uw:function(){return kr},W$:function(){return Ur},ZO:function(){return Vr},kH:function(){return ve},l9:function(){return me},lg:function(){return je},p:function(){return ge},qr:function(){return Mr},tk:function(){return er}});var r=n(7326),i=n(1752),o=n(1120),a=n(136),s=n(3668),l=n(3433),c=n(7762),u=n(5671),h=n(3144),f=n(1383),d=n(6830),p=n(8885),m=n(528),v=n(9759);function g(e){return(11==e.nodeType?e.getSelection?e:e.ownerDocument:e).getSelection()}function y(e,t){return!!t&&(e==t||e.contains(1!=t.nodeType?t.parentNode:t))}function k(e,t){if(!t.anchorNode)return!1;try{return y(e,t.anchorNode)}catch(n){return!1}}function b(e){return 3==e.nodeType?D(e,0,e.nodeValue.length).getClientRects():1==e.nodeType?e.getClientRects():[]}function w(e,t,n,r){return!!n&&(S(e,t,n,r,-1)||S(e,t,n,r,1))}function x(e){for(var t=0;;t++)if(!(e=e.previousSibling))return t}function S(e,t,n,r,i){for(;;){if(e==n&&t==r)return!0;if(t==(i<0?0:_(e))){if("DIV"==e.nodeName)return!1;var o=e.parentNode;if(!o||1!=o.nodeType)return!1;t=x(e)+(i<0?0:1),e=o}else{if(1!=e.nodeType)return!1;if(1==(e=e.childNodes[t+(i<0?-1:0)]).nodeType&&"false"==e.contentEditable)return!1;t=i<0?_(e):0}}}function _(e){return 3==e.nodeType?e.nodeValue.length:e.childNodes.length}var C={left:0,right:0,top:0,bottom:0};function A(e,t){var n=t?e.left:e.right;return{left:n,right:n,top:e.top,bottom:e.bottom}}function O(e){return{left:0,right:e.innerWidth,top:0,bottom:e.innerHeight}}var T,Z=function(){function e(){(0,u.Z)(this,e),this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}return(0,h.Z)(e,[{key:"eq",value:function(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}},{key:"setRange",value:function(e){this.set(e.anchorNode,e.anchorOffset,e.focusNode,e.focusOffset)}},{key:"set",value:function(e,t,n,r){this.anchorNode=e,this.anchorOffset=t,this.focusNode=n,this.focusOffset=r}}]),e}(),E=null;function M(e){if(e.setActive)return e.setActive();if(E)return e.focus(E);for(var t=[],n=e;n&&(t.push(n,n.scrollTop,n.scrollLeft),n!=n.ownerDocument);n=n.parentNode);if(e.focus(null==E?{get preventScroll(){return E={preventScroll:!0},!0}}:void 0),!E){E=!1;for(var r=0;r2&&void 0!==arguments[2]?arguments[2]:t,r=T||(T=document.createRange());return r.setEnd(e,n),r.setStart(e,t),r}function P(e,t,n){var r={key:t,code:t,keyCode:n,which:n,cancelable:!0},i=new KeyboardEvent("keydown",r);i.synthetic=!0,e.dispatchEvent(i);var o=new KeyboardEvent("keyup",r);return o.synthetic=!0,e.dispatchEvent(o),i.defaultPrevented||o.defaultPrevented}function I(e){for(;e;){if(e&&(9==e.nodeType||11==e.nodeType&&e.host))return e;e=e.assignedSlot||e.parentNode}return null}function R(e){for(;e.attributes.length;)e.removeAttributeNode(e.attributes[0])}var z=function(){function e(t,n){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];(0,u.Z)(this,e),this.node=t,this.offset=n,this.precise=r}return(0,h.Z)(e,null,[{key:"before",value:function(t,n){return new e(t.parentNode,x(t),n)}},{key:"after",value:function(t,n){return new e(t.parentNode,x(t)+1,n)}}]),e}(),N=[],L=function(){function e(){(0,u.Z)(this,e),this.parent=null,this.dom=null,this.dirty=2}return(0,h.Z)(e,[{key:"editorView",get:function(){if(!this.parent)throw new Error("Accessing view in orphan content view");return this.parent.editorView}},{key:"overrideDOMText",get:function(){return null}},{key:"posAtStart",get:function(){return this.parent?this.parent.posBefore(this):0}},{key:"posAtEnd",get:function(){return this.posAtStart+this.length}},{key:"posBefore",value:function(e){var t,n=this.posAtStart,r=(0,c.Z)(this.children);try{for(r.s();!(t=r.n()).done;){var i=t.value;if(i==e)return n;n+=i.length+i.breakAfter}}catch(o){r.e(o)}finally{r.f()}throw new RangeError("Invalid child in posBefore")}},{key:"posAfter",value:function(e){return this.posBefore(e)+e.length}},{key:"coordsAt",value:function(e,t){return null}},{key:"sync",value:function(t){if(2&this.dirty){var n,r=this.dom,i=r.firstChild,o=(0,c.Z)(this.children);try{for(o.s();!(n=o.n()).done;){var a=n.value;if(a.dirty){if(!a.dom&&i){var s=e.get(i);s&&(s.parent||s.constructor!=a.constructor)||a.reuseDOM(i)}a.sync(t),a.dirty=0}if(t&&!t.written&&t.node==r&&i!=a.dom&&(t.written=!0),a.dom.parentNode==r){for(;i&&i!=a.dom;)i=J(i);i=a.dom.nextSibling}else r.insertBefore(a.dom,i)}}catch(f){o.e(f)}finally{o.f()}for(i&&t&&t.node==r&&(t.written=!0);i;)i=J(i)}else if(1&this.dirty){var l,u=(0,c.Z)(this.children);try{for(u.s();!(l=u.n()).done;){var h=l.value;h.dirty&&(h.sync(t),h.dirty=0)}}catch(f){u.e(f)}finally{u.f()}}}},{key:"reuseDOM",value:function(e){}},{key:"localPosFromDOM",value:function(t,n){var r;if(t==this.dom)r=this.dom.childNodes[n];else{for(var i=0==_(t)?0:0==n?-1:1;;){var o=t.parentNode;if(o==this.dom)break;0==i&&o.firstChild!=o.lastChild&&(i=t==o.firstChild?-1:1),t=o}r=i<0?t:t.nextSibling}if(r==this.dom.firstChild)return 0;for(;r&&!e.get(r);)r=r.nextSibling;if(!r)return this.length;for(var a=0,s=0;;a++){var l=this.children[a];if(l.dom==r)return s;s+=l.length+l.breakAfter}}},{key:"domBoundsAround",value:function(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=-1,i=-1,o=-1,a=-1,s=0,l=n,c=n;st)return u.domBoundsAround(e,t,l);if(h>=e&&-1==r&&(r=s,i=l),l>t&&u.dom.parentNode==this.dom){o=s,a=c;break}c=h,l=h+u.breakAfter}return{from:i,to:a<0?n+this.length:a,startDOM:(r?this.children[r-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:o=0?this.children[o].dom:null}}},{key:"markDirty",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.dirty|=2,this.markParentsDirty(e)}},{key:"markParentsDirty",value:function(e){for(var t=this.parent;t;t=t.parent){if(e&&(t.dirty|=2),1&t.dirty)return;t.dirty|=1,e=!1}}},{key:"setParent",value:function(e){this.parent!=e&&(this.parent=e,this.dirty&&this.markParentsDirty(!0))}},{key:"setDOM",value:function(e){this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this}},{key:"rootView",get:function(){for(var e=this;;){var t=e.parent;if(!t)return e;e=t}}},{key:"replaceChildren",value:function(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:N;this.markDirty();for(var i=e;i0&&void 0!==arguments[0]?arguments[0]:this.length;return new B(this.children,e,this.children.length)}},{key:"childPos",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return this.childCursor().findPos(e,t)}},{key:"toString",value:function(){var e=this.constructor.name.replace("View","");return e+(this.children.length?"("+this.children.join()+")":this.length?"["+("Text"==e?this.text:this.length)+"]":"")+(this.breakAfter?"#":"")}},{key:"isEditable",get:function(){return!0}},{key:"merge",value:function(e,t,n,r,i,o){return!1}},{key:"become",value:function(e){return!1}},{key:"getSide",value:function(){return 0}},{key:"destroy",value:function(){this.parent=null}}],[{key:"get",value:function(e){return e.cmView}}]),e}();function J(e){var t=e.nextSibling;return e.parentNode.removeChild(e),t}L.prototype.breakAfter=0;var B=function(){function e(t,n,r){(0,u.Z)(this,e),this.children=t,this.pos=n,this.i=r,this.off=0}return(0,h.Z)(e,[{key:"findPos",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;;){if(e>this.pos||e==this.pos&&(t>0||0==this.i||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;var n=this.children[--this.i];this.pos-=n.length+n.breakAfter}}}]),e}();function q(e,t,n,r,i,o,a,s,l){var c=e.children,u=c.length?c[t]:null,h=o.length?o[o.length-1]:null,f=h?h.breakAfter:a;if(!(t==r&&u&&!a&&!f&&o.length<2&&u.merge(n,i,o.length?h:null,0==n,s,l))){if(r0&&(!a&&o.length&&u.merge(n,u.length,o[0],!1,s,0)?u.breakAfter=o.shift().breakAfter:(n2),ee={mac:Y||/Mac/.test(F.platform),windows:/Win/.test(F.platform),linux:/Linux|X11/.test(F.platform),ie:U,ie_version:W?V.documentMode||6:H?+H[1]:j?+j[1]:0,gecko:Q,gecko_version:Q?+(/Firefox\/(\d+)/.exec(F.userAgent)||[0,0])[1]:0,chrome:!!G,chrome_version:G?+G[1]:0,ios:Y,android:/Android\b/.test(F.userAgent),webkit:K,safari:X,webkit_version:K?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:null!=V.documentElement.style.tabSize?"tab-size":"-moz-tab-size"},te=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e){var r;return(0,u.Z)(this,n),(r=t.call(this)).text=e,r}return(0,h.Z)(n,[{key:"length",get:function(){return this.text.length}},{key:"createDOM",value:function(e){this.setDOM(e||document.createTextNode(this.text))}},{key:"sync",value:function(e){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(e&&e.node==this.dom&&(e.written=!0),this.dom.nodeValue=this.text)}},{key:"reuseDOM",value:function(e){3==e.nodeType&&this.createDOM(e)}},{key:"merge",value:function(e,t,r){return(!r||r instanceof n&&!(this.length-(t-e)+r.length>256))&&(this.text=this.text.slice(0,e)+(r?r.text:"")+this.text.slice(t),this.markDirty(),!0)}},{key:"split",value:function(e){var t=new n(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),t}},{key:"localPosFromDOM",value:function(e,t){return e==this.dom?t:t?this.text.length:0}},{key:"domAtPos",value:function(e){return new z(this.dom,e)}},{key:"domBoundsAround",value:function(e,t,n){return{from:n,to:n+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}},{key:"coordsAt",value:function(e,t){return re(this.dom,e,t)}}]),n}(L),ne=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e){var i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;(0,u.Z)(this,n),(i=t.call(this)).mark=e,i.children=o,i.length=a;var s,l=(0,c.Z)(o);try{for(l.s();!(s=l.n()).done;){var h=s.value;h.setParent((0,r.Z)(i))}}catch(f){l.e(f)}finally{l.f()}return i}return(0,h.Z)(n,[{key:"setAttrs",value:function(e){if(R(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(var t in this.mark.attrs)e.setAttribute(t,this.mark.attrs[t]);return e}},{key:"reuseDOM",value:function(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.dirty|=6)}},{key:"sync",value:function(e){this.dom?4&this.dirty&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),(0,i.Z)((0,o.Z)(n.prototype),"sync",this).call(this,e)}},{key:"merge",value:function(e,t,r,i,o,a){return(!r||!(!(r instanceof n&&r.mark.eq(this.mark))||e&&o<=0||te&&r.push(i=e&&(o=a),i=u,a++}}catch(f){s.e(f)}finally{s.f()}var h=this.length-e;return this.length=e,o>-1&&(this.children.length=o,this.markDirty()),new n(this.mark,r,h)}},{key:"domAtPos",value:function(e){return ce(this.dom,this.children,e)}},{key:"coordsAt",value:function(e,t){return he(this,e,t)}}]),n}(L);function re(e,t,n){var r=e.nodeValue.length;t>r&&(t=r);var i=t,o=t,a=0;0==t&&n<0||t==r&&n>=0?ee.chrome||ee.gecko||(t?(i--,a=1):(o++,a=-1)):n<0?i--:o++;var s=D(e,i,o).getClientRects();if(!s.length)return C;var l=s[(a?a<0:n>=0)?0:s.length-1];return ee.safari&&!a&&0==l.width&&(l=Array.prototype.find.call(s,(function(e){return e.width}))||l),a?A(l,a<0):l||null}var ie=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e,r,i){var o;return(0,u.Z)(this,n),(o=t.call(this)).widget=e,o.length=r,o.side=i,o.prevWidget=null,o}return(0,h.Z)(n,[{key:"split",value:function(e){var t=n.create(this.widget,this.length-e,this.side);return this.length-=e,t}},{key:"sync",value:function(){this.dom&&this.widget.updateDOM(this.dom)||(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(this.editorView)),this.dom.contentEditable="false")}},{key:"getSide",value:function(){return this.side}},{key:"merge",value:function(e,t,r,i,o,a){return!(r&&(!(r instanceof n&&this.widget.compare(r.widget))||e>0&&o<=0||t0?n.length-1:0;r=n[i],!(e>0?0==i:i==n.length-1||r.top0?-1:1);return 0==e&&t>0||e==this.length&&t<=0?r:A(r,0==e)}},{key:"isEditable",get:function(){return!1}},{key:"destroy",value:function(){(0,i.Z)((0,o.Z)(n.prototype),"destroy",this).call(this),this.dom&&this.widget.destroy(this.dom)}}],[{key:"create",value:function(e,t,r){return new(e.customView||n)(e,t,r)}}]),n}(L),oe=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(){return(0,u.Z)(this,n),t.apply(this,arguments)}return(0,h.Z)(n,[{key:"domAtPos",value:function(e){var t=this.widget,n=t.topView,r=t.text;return n?ae(e,0,n,r,(function(e,t){return e.domAtPos(t)}),(function(e){return new z(r,Math.min(e,r.nodeValue.length))})):new z(r,Math.min(e,r.nodeValue.length))}},{key:"sync",value:function(){this.setDOM(this.widget.toDOM())}},{key:"localPosFromDOM",value:function(e,t){var n=this.widget,r=n.topView,i=n.text;return r?se(e,t,r,i):Math.min(t,this.length)}},{key:"ignoreMutation",value:function(){return!1}},{key:"overrideDOMText",get:function(){return null}},{key:"coordsAt",value:function(e,t){var n=this.widget,r=n.topView,i=n.text;return r?ae(e,t,r,i,(function(e,t,n){return e.coordsAt(t,n)}),(function(e,t){return re(i,e,t)})):re(i,e,t)}},{key:"destroy",value:function(){var e;(0,i.Z)((0,o.Z)(n.prototype),"destroy",this).call(this),null===(e=this.widget.topView)||void 0===e||e.destroy()}},{key:"isEditable",get:function(){return!0}}]),n}(ie);function ae(e,t,n,r,i,o){if(n instanceof ne){var a,s=(0,c.Z)(n.children);try{for(s.s();!(a=s.n()).done;){var l=a.value,u=y(l.dom,r),h=u?r.nodeValue.length:l.length;if(e=0;)if(t<0?r>0:r0?-1:1);return n&&n.topt.top?{left:t.left,right:t.right,top:n.top,bottom:n.bottom}:t}},{key:"overrideDOMText",get:function(){return d.xv.empty}}]),n}(L);function ce(e,t,n){for(var r=0,i=0;ri&&n0;r--){var s=t[r-1].dom;if(s.parentNode==e)return z.after(s)}return new z(e,0)}function ue(e,t,n){var r,i=e.children;n>0&&t instanceof ne&&i.length&&(r=i[i.length-1])instanceof ne&&r.mark.eq(t.mark)?ue(r,t.children[0],n-1):(i.push(t),t.setParent(e)),e.length+=t.length}function he(e,t,n){for(var r=0,i=0;i0?a>=t:a>t)&&(t0)){var l=0;if(a==r){if(o.getSide()<=0)continue;l=n=-o.getSide()}var c=o.coordsAt(Math.max(0,t-r),n);return l&&c?A(c,n<0):c}r=a}var u=e.dom.lastChild;if(!u)return e.dom.getBoundingClientRect();var h=b(u);return h[h.length-1]||null}function fe(e,t){for(var n in e)"class"==n&&t.class?t.class+=" "+e.class:"style"==n&&t.style?t.style+=";"+e.style:t[n]=e[n];return t}function de(e,t){if(e==t)return!0;if(!e||!t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!=r.length)return!1;for(var i=0,o=n;i-1}}],[{key:"mark",value:function(e){return new ye(e)}},{key:"widget",value:function(e){var t=e.side||0,n=!!e.block;return new be(e,t+=n?t>0?3e8:-4e8:t>0?1e8:-1e8,t,n,e.widget||null,!1)}},{key:"replace",value:function(e){var t,n,r=!!e.block;if(e.isBlockGap)t=-5e8,n=4e8;else{var i=we(e,r);t=(i.start?r?-3e8:-1:5e8)-1,n=1+(i.end?r?2e8:1:-6e8)}return new be(e,t,n,r,e.widget||null,!0)}},{key:"line",value:function(e){return new ke(e)}},{key:"set",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return m.Xs.of(e,t)}}]),n}(m.uU);ge.none=m.Xs.empty;var ye=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e){var r;(0,u.Z)(this,n);var i=we(e),o=i.start,a=i.end;return(r=t.call(this,o?-1:5e8,a?1:-6e8,null,e)).tagName=e.tagName||"span",r.class=e.class||"",r.attrs=e.attributes||null,r}return(0,h.Z)(n,[{key:"eq",value:function(e){return this==e||e instanceof n&&this.tagName==e.tagName&&this.class==e.class&&de(this.attrs,e.attrs)}},{key:"range",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;if(e>=t)throw new RangeError("Mark decorations may not be empty");return(0,i.Z)((0,o.Z)(n.prototype),"range",this).call(this,e,t)}}]),n}(ge);ye.prototype.point=!1;var ke=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e){return(0,u.Z)(this,n),t.call(this,-2e8,-2e8,null,e)}return(0,h.Z)(n,[{key:"eq",value:function(e){return e instanceof n&&de(this.spec.attributes,e.spec.attributes)}},{key:"range",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return(0,i.Z)((0,o.Z)(n.prototype),"range",this).call(this,e,t)}}]),n}(ge);ke.prototype.mapMode=f.gc.TrackBefore,ke.prototype.point=!0;var be=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e,r,i,o,a,s){var l;return(0,u.Z)(this,n),(l=t.call(this,r,i,a,e)).block=o,l.isReplace=s,l.mapMode=o?r<=0?f.gc.TrackBefore:f.gc.TrackAfter:f.gc.TrackDel,l}return(0,h.Z)(n,[{key:"type",get:function(){return this.startSide=5}},{key:"eq",value:function(e){return e instanceof n&&(t=this.widget,r=e.widget,t==r||!!(t&&r&&t.compare(r)))&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide;var t,r}},{key:"range",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return(0,i.Z)((0,o.Z)(n.prototype),"range",this).call(this,e,t)}}]),n}(ge);function we(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e.inclusiveStart,r=e.inclusiveEnd;return null==n&&(n=e.inclusive),null==r&&(r=e.inclusive),{start:null!==n&&void 0!==n?n:t,end:null!==r&&void 0!==r?r:t}}function xe(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=n.length-1;i>=0&&n[i]+r>=e?n[i]=Math.max(n[i],t):n.push(e,t)}be.prototype.point=!0;var Se=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(){var e;return(0,u.Z)(this,n),(e=t.apply(this,arguments)).children=[],e.length=0,e.prevAttrs=void 0,e.attrs=null,e.breakAfter=0,e}return(0,h.Z)(n,[{key:"merge",value:function(e,t,r,i,o,a){if(r){if(!(r instanceof n))return!1;this.dom||r.transferDOM(this)}return i&&this.setDeco(r?r.attrs:null),$(this,e,t,r?r.children:[],o,a),!0}},{key:"split",value:function(e){var t=new n;if(t.breakAfter=this.breakAfter,0==this.length)return t;var r=this.childPos(e),i=r.i,o=r.off;o&&(t.append(this.children[i].split(o),0),this.children[i].merge(o,this.children[i].length,null,!1,0,0),i++);for(var a=i;a0&&0==this.children[i-1].length;)this.children[--i].destroy();return this.children.length=i,this.markDirty(),this.length=e,t}},{key:"transferDOM",value:function(e){this.dom&&(e.setDOM(this.dom),e.prevAttrs=void 0===this.prevAttrs?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}},{key:"setDeco",value:function(e){de(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}},{key:"append",value:function(e,t){ue(this,e,t)}},{key:"addLineDeco",value:function(e){var t=e.spec.attributes,n=e.spec.class;t&&(this.attrs=fe(t,this.attrs||{})),n&&(this.attrs=fe({class:n},this.attrs||{}))}},{key:"domAtPos",value:function(e){return ce(this.dom,this.children,e)}},{key:"reuseDOM",value:function(e){"DIV"==e.nodeName&&(this.setDOM(e),this.dirty|=6)}},{key:"sync",value:function(e){var t;this.dom?4&this.dirty&&(R(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&&(pe(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),(0,i.Z)((0,o.Z)(n.prototype),"sync",this).call(this,e);for(var r=this.dom.lastChild;r&&L.get(r)instanceof ne;)r=r.lastChild;if(!r||!this.length||"BR"!=r.nodeName&&0==(null===(t=L.get(r))||void 0===t?void 0:t.isEditable)&&(!ee.ios||!this.children.some((function(e){return e instanceof te})))){var a=document.createElement("BR");a.cmIgnore=!0,this.dom.appendChild(a)}}},{key:"measureTextSize",value:function(){if(0==this.children.length||this.length>20)return null;var e,t=0,n=(0,c.Z)(this.children);try{for(n.s();!(e=n.n()).done;){var r=e.value;if(!(r instanceof te))return null;var i=b(r.dom);if(1!=i.length)return null;t+=i[0].width}}catch(o){n.e(o)}finally{n.f()}return{lineHeight:this.dom.getBoundingClientRect().height,charWidth:t/this.length}}},{key:"coordsAt",value:function(e,t){return he(this,e,t)}},{key:"become",value:function(e){return!1}},{key:"type",get:function(){return ve.Text}}],[{key:"find",value:function(e,t){for(var r=0,i=0;r=t){if(o instanceof n)return o;if(a>t)break}i=a+o.breakAfter}return null}}]),n}(L),_e=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e,r,i){var o;return(0,u.Z)(this,n),(o=t.call(this)).widget=e,o.length=r,o.type=i,o.breakAfter=0,o.prevWidget=null,o}return(0,h.Z)(n,[{key:"merge",value:function(e,t,r,i,o,a){return!(r&&(!(r instanceof n&&this.widget.compare(r.widget))||e>0&&o<=0||t0;){if(this.textOff==this.text.length){var r=this.cursor.next(this.skip),i=r.value,o=r.lineBreak,a=r.done;if(this.skip=0,a)throw new Error("Ran out of text content when drawing inline views");if(o){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer([]),this.curLine=null,e--;continue}this.text=i,this.textOff=0}var s=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(t.slice(0,n)),this.getLine().append(Ae(new te(this.text.slice(this.textOff,this.textOff+s)),t),n),this.atCursorPos=!0,this.textOff+=s,e-=s,n=0}}},{key:"span",value:function(e,t,n,r){this.buildText(t-e,n,r),this.pos=t,this.openStart<0&&(this.openStart=r)}},{key:"point",value:function(e,t,n,r,i){var o=t-e;if(n instanceof be)if(n.block){var a=n.type;a!=ve.WidgetAfter||this.posCovered()||this.getLine(),this.addBlockWidget(new _e(n.widget||new Oe("div"),o,a))}else{var s=ie.create(n.widget||new Oe("span"),o,n.startSide),l=this.atCursorPos&&!s.isEditable&&i<=r.length&&(e0),c=!s.isEditable&&(ethis.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}return!0}}],[{key:"build",value:function(t,n,r,i,o){var a=new e(t,n,r,o);return a.openEnd=m.Xs.spans(i,n,r,a),a.openStart<0&&(a.openStart=a.openEnd),a.finish(a.openEnd),a}}]),e}();function Ae(e,t){var n,r=(0,c.Z)(t);try{for(r.s();!(n=r.n()).done;){var i=n.value;e=new ne(i,[e],e.length)}}catch(o){r.e(o)}finally{r.f()}return e}var Oe=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e){var r;return(0,u.Z)(this,n),(r=t.call(this)).tag=e,r}return(0,h.Z)(n,[{key:"eq",value:function(e){return e.tag==this.tag}},{key:"toDOM",value:function(){return document.createElement(this.tag)}},{key:"updateDOM",value:function(e){return e.nodeName.toLowerCase()==this.tag}}]),n}(me),Te=[],Ze=f.r$.define(),Ee=f.r$.define(),Me=f.r$.define(),De=f.r$.define(),Pe=f.r$.define(),Ie=f.r$.define(),Re=f.Py.define({map:function(e,t){return e.map(t)}}),ze=f.Py.define({map:function(e,t){return e.map(t)}}),Ne=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"nearest",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"nearest",i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:5;(0,u.Z)(this,e),this.range=t,this.y=n,this.x=r,this.yMargin=i,this.xMargin=o}return(0,h.Z)(e,[{key:"map",value:function(t){return t.empty?this:new e(this.range.map(t),this.y,this.x,this.yMargin,this.xMargin)}}]),e}(),Le=f.Py.define({map:function(e,t){return e.map(t)}});function Je(e,t,n){var r=e.facet(De);r.length?r[0](t):window.onerror?window.onerror(String(t),n,void 0,void 0,t):n?console.error(n+":",t):console.error(t)}var Be=f.r$.define({combine:function(e){return!e.length||e[0]}}),qe=(0,h.Z)((function e(t,n){(0,u.Z)(this,e),this.field=t,this.get=n})),$e=function(){function e(){(0,u.Z)(this,e)}return(0,h.Z)(e,[{key:"from",value:function(e){return new qe(this,e)}}],[{key:"define",value:function(){return new e}}]),e}();$e.decorations=$e.define(),$e.atomicRanges=$e.define(),$e.scrollMargins=$e.define();var Fe=0,Ve=f.r$.define(),je=function(){function e(t,n,r){(0,u.Z)(this,e),this.id=t,this.create=n,this.fields=r,this.extension=Ve.of(this)}return(0,h.Z)(e,null,[{key:"define",value:function(t,n){var r=n||{},i=r.eventHandlers,o=r.provide,a=r.decorations,s=[];if(o){var l,u=(0,c.Z)(Array.isArray(o)?o:[o]);try{for(u.s();!(l=u.n()).done;){var h=l.value;s.push(h)}}catch(f){u.e(f)}finally{u.f()}}return i&&s.push(We.from((function(e){return{plugin:e,handlers:i}}))),a&&s.push($e.decorations.from(a)),new e(Fe++,t,s)}},{key:"fromClass",value:function(t,n){return e.define((function(e){return new t(e)}),n)}}]),e}(),We=$e.define(),He=function(){function e(t){(0,u.Z)(this,e),this.spec=t,this.mustUpdate=null,this.value=null}return(0,h.Z)(e,[{key:"takeField",value:function(e,t){if(this.spec){var n,r=(0,c.Z)(this.spec.fields);try{for(r.s();!(n=r.n()).done;){var i=n.value,o=i.field,a=i.get;o==e&&t.push(a(this.value))}}catch(s){r.e(s)}finally{r.f()}}}},{key:"update",value:function(e){if(this.value){if(this.mustUpdate){var t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(n){if(Je(t.state,n,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(r){}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(e)}catch(n){Je(e.state,n,"CodeMirror plugin crashed"),this.deactivate()}return this}},{key:"destroy",value:function(e){var t;if(null===(t=this.value)||void 0===t?void 0:t.destroy)try{this.value.destroy()}catch(n){Je(e.state,n,"CodeMirror plugin crashed")}}},{key:"deactivate",value:function(){this.spec=this.value=null}}]),e}(),Ue=f.r$.define(),Qe=f.r$.define(),Ge=f.r$.define(),Ke=f.r$.define(),Xe=function(){function e(t,n,r,i){(0,u.Z)(this,e),this.fromA=t,this.toA=n,this.fromB=r,this.toB=i}return(0,h.Z)(e,[{key:"join",value:function(t){return new e(Math.min(this.fromA,t.fromA),Math.max(this.toA,t.toA),Math.min(this.fromB,t.fromB),Math.max(this.toB,t.toB))}},{key:"addToSet",value:function(e){for(var t=e.length,n=this;t>0;t--){var r=e[t-1];if(!(r.fromA>n.toA)){if(r.toAu)break;o+=2}if(!l)return r;new e(l.fromA,l.toA,l.fromB,l.toB).addToSet(r),a=l.toA,s=l.toB}}}]),e}(),Ye=function(){function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Te;(0,u.Z)(this,e),this.view=t,this.state=n,this.transactions=r,this.flags=0,this.startState=t.state,this.changes=f.as.empty(this.startState.doc.length);var i,o=(0,c.Z)(r);try{for(o.s();!(i=o.n()).done;){var a=i.value;this.changes=this.changes.compose(a.changes)}}catch(h){o.e(h)}finally{o.f()}var s=[];this.changes.iterChangedRanges((function(e,t,n,r){return s.push(new Xe(e,t,n,r))})),this.changedRanges=s;var l=t.hasFocus;l!=t.inputState.notifiedFocused&&(t.inputState.notifiedFocused=l,this.flags|=1)}return(0,h.Z)(e,[{key:"viewportChanged",get:function(){return(4&this.flags)>0}},{key:"heightChanged",get:function(){return(2&this.flags)>0}},{key:"geometryChanged",get:function(){return this.docChanged||(10&this.flags)>0}},{key:"focusChanged",get:function(){return(1&this.flags)>0}},{key:"docChanged",get:function(){return!this.changes.empty}},{key:"selectionSet",get:function(){return this.transactions.some((function(e){return e.selection}))}},{key:"empty",get:function(){return 0==this.flags&&0==this.transactions.length}}]),e}(),et=function(e){return e[e.LTR=0]="LTR",e[e.RTL=1]="RTL",e}(et||(et={})),tt=et.LTR,nt=et.RTL;function rt(e){for(var t=[],n=0;n=t){if(a.level==n)return o;(i<0||(0!=r?r<0?a.fromt:e[i].level>a.level))&&(i=o)}}if(i<0)throw new RangeError("Index out of range");return i}}]),e}(),vt=[];function gt(e,t){var n=e.length,r=t==tt?1:2,i=t==tt?2:1;if(!e||1==r&&!pt.test(e))return yt(n);for(var o=0,a=r,s=r;o=0;x-=3)if(st[x+1]==-g){var S=st[x+2],_=2&S?r:4&S?1&S?i:r:0;_&&(vt[k]=vt[st[x]]=_),b=x;break}}else{if(189==st.length)break;st[b++]=k,st[b++]=v,st[b++]=w}else if(2==(y=vt[k])||1==y){var C=y==r;w=C?0:1;for(var A=b-3;A>=0;A-=3){var O=st[A+2];if(2&O)break;if(C)st[A+2]|=2;else{if(4&O)break;st[A+2]|=4}}}for(var T=0;TR;){for(var L=N,J=2!=vt[--N];N>R&&J==(2!=vt[N-1]);)N--;P.push(new mt(N,L,J?2:1))}else P.push(new mt(R,I,0))}else for(var B=0;B1){var h,f=(0,c.Z)(this.points);try{for(f.s();!(h=f.n()).done;){var d=h.value;d.node==e&&d.pos>this.text.length&&(d.pos-=l-1)}}catch(p){f.e(p)}finally{f.f()}}o=s+l}}},{key:"readNode",value:function(e){if(!e.cmIgnore){var t=L.get(e),n=t&&t.overrideDOMText;if(null!=n){this.findPointInside(e,n.length);for(var r=n.iter();!r.next().done;)r.lineBreak?this.lineBreak():this.append(r.value)}else 3==e.nodeType?this.readTextNode(e):"BR"==e.nodeName?e.nextSibling&&this.lineBreak():1==e.nodeType&&this.readRange(e.firstChild,null)}}},{key:"findPointBefore",value:function(e,t){var n,r=(0,c.Z)(this.points);try{for(r.s();!(n=r.n()).done;){var i=n.value;i.node==e&&e.childNodes[i.offset]==t&&(i.pos=this.text.length)}}catch(o){r.e(o)}finally{r.f()}}},{key:"findPointInside",value:function(e,t){var n,r=(0,c.Z)(this.points);try{for(r.s();!(n=r.n()).done;){var i=n.value;(3==e.nodeType?i.node==e:e.contains(i.node))&&(i.pos=this.text.length+Math.min(t,i.offset))}}catch(o){r.e(o)}finally{r.f()}}}]),e}();function St(e){return 1==e.nodeType&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(e.nodeName)}var _t=(0,h.Z)((function e(t,n){(0,u.Z)(this,e),this.node=t,this.offset=n,this.pos=-1})),Ct=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e){var i;return(0,u.Z)(this,n),(i=t.call(this)).view=e,i.compositionDeco=ge.none,i.decorations=[],i.pluginDecorationLength=0,i.minWidth=0,i.minWidthFrom=0,i.minWidthTo=0,i.impreciseAnchor=null,i.impreciseHead=null,i.forceSelection=!1,i.lastUpdate=Date.now(),i.setDOM(e.contentDOM),i.children=[new Se],i.children[0].setParent((0,r.Z)(i)),i.updateDeco(),i.updateInner([new Xe(0,0,0,e.state.doc.length)],0),i}return(0,h.Z)(n,[{key:"root",get:function(){return this.view.root}},{key:"editorView",get:function(){return this.view}},{key:"length",get:function(){return this.view.state.doc.length}},{key:"update",value:function(e){var t=this,n=e.changedRanges;this.minWidth>0&&n.length&&(n.every((function(e){var n=e.fromA;return e.toAt.minWidthTo}))?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.view.inputState.composing<0?this.compositionDeco=ge.none:(e.transactions.length||this.dirty)&&(this.compositionDeco=function(e,t){var n=Tt(e);if(!n)return ge.none;var r=n.from,i=n.to,o=n.node,a=n.text,s=t.mapPos(r,1),l=Math.max(s,t.mapPos(i,-1)),c=e.state,u=3==o.nodeType?o.nodeValue:new xt([],c).readRange(o.firstChild,null).text;if(l-s=0?e[r]:null;if(!i)break;var o=i.fromA,a=i.toA,s=i.fromB,l=i.toB,c=Ce.build(this.view.state.doc,s,l,this.decorations,this.pluginDecorationLength),u=c.content,h=c.breakAtStart,f=c.openStart,d=c.openEnd,p=n.findPos(a,1),m=p.i,v=p.off,g=n.findPos(o,-1);q(this,g.i,g.off,m,v,u,h,f,d)}}},{key:"updateSelection",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(t&&this.view.observer.readSelectionRange(),!(!n&&!this.mayControlSelection()||ee.ios&&this.view.inputState.rapidCompositionStart)){var r=this.forceSelection;this.forceSelection=!1;var i=this.view.state.selection.main,o=this.domAtPos(i.anchor),a=i.empty?o:this.domAtPos(i.head);if(ee.gecko&&i.empty&&At(o)){var s=document.createTextNode("");this.view.observer.ignore((function(){return o.node.insertBefore(s,o.node.childNodes[o.offset]||null)})),o=a=new z(s,0),r=!0}var l=this.view.observer.selectionRange;!r&&l.focusNode&&w(o.node,o.offset,l.anchorNode,l.anchorOffset)&&w(a.node,a.offset,l.focusNode,l.focusOffset)||(this.view.observer.ignore((function(){ee.android&&ee.chrome&&e.dom.contains(l.focusNode)&&Pt(l.focusNode,e.dom)&&(e.dom.blur(),e.dom.focus({preventScroll:!0}));var t=g(e.root);if(i.empty){if(ee.gecko){var n=Mt(o.node,o.offset);if(n&&3!=n){var r=Et(o.node,o.offset,1==n?1:-1);r&&(o=new z(r,1==n?0:r.nodeValue.length))}}t.collapse(o.node,o.offset),null!=i.bidiLevel&&null!=l.cursorBidiLevel&&(l.cursorBidiLevel=i.bidiLevel)}else if(t.extend)t.collapse(o.node,o.offset),t.extend(a.node,a.offset);else{var s=document.createRange();if(i.anchor>i.head){var c=[a,o];o=c[0],a=c[1]}s.setEnd(a.node,a.offset),s.setStart(o.node,o.offset),t.removeAllRanges(),t.addRange(s)}})),this.view.observer.setSelectionRange(o,a)),this.impreciseAnchor=o.precise?null:new z(l.anchorNode,l.anchorOffset),this.impreciseHead=a.precise?null:new z(l.focusNode,l.focusOffset)}}},{key:"enforceCursorAssoc",value:function(){if(!this.compositionDeco.size){var e=this.view.state.selection.main,t=g(this.root);if(e.empty&&e.assoc&&t.modify){var n=Se.find(this,e.head);if(n){var r=n.posAtStart;if(e.head!=r&&e.head!=r+n.length){var i=this.coordsAt(e.head,-1),o=this.coordsAt(e.head,1);if(i&&o&&!(i.bottom>o.top)){var a=this.domAtPos(e.head+e.assoc);t.collapse(a.node,a.offset),t.modify("move",e.assoc<0?"forward":"backward","lineboundary")}}}}}}},{key:"mayControlSelection",value:function(){return this.view.state.facet(Be)?this.root.activeElement==this.dom:k(this.dom,this.view.observer.selectionRange)}},{key:"nearest",value:function(e){for(var t=e;t;){var n=L.get(t);if(n&&n.rootView==this)return n;t=t.parentNode}return null}},{key:"posFromDOM",value:function(e,t){var n=this.nearest(e);if(!n)throw new RangeError("Trying to find position for a DOM position outside of the document");return n.localPosFromDOM(e,t)+n.posAtStart}},{key:"domAtPos",value:function(e){for(var t=this.childCursor().findPos(e,-1),n=t.i,r=t.off;no||e==o&&i.type!=ve.WidgetBefore&&i.type!=ve.WidgetAfter&&(!r||2==t||this.children[r-1].breakAfter||this.children[r-1].type==ve.WidgetBefore&&t>-2))return i.coordsAt(e-o,t);n=o}}},{key:"measureVisibleLineHeights",value:function(){for(var e=[],t=this.view.viewState.viewport,n=t.from,r=t.to,i=this.view.contentDOM.clientWidth,o=i>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,a=-1,s=0,l=0;lr)break;if(s>=n){var h=c.dom.getBoundingClientRect();if(e.push(h.height),o){var f=c.dom.lastChild,d=f?b(f):[];if(d.length){var p=d[d.length-1],m=this.view.textDirection==et.LTR?p.right-h.left:h.right-p.left;m>a&&(a=m,this.minWidth=i,this.minWidthFrom=s,this.minWidthTo=u)}}}s=u+c.breakAfter}return e}},{key:"measureTextSize",value:function(){var e,t=this,n=(0,c.Z)(this.children);try{for(n.s();!(e=n.n()).done;){var r=e.value;if(r instanceof Se){var i=r.measureTextSize();if(i)return i}}}catch(l){n.e(l)}finally{n.f()}var o,a,s=document.createElement("div");return s.className="cm-line",s.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore((function(){t.dom.appendChild(s);var e=b(s.firstChild)[0];o=s.getBoundingClientRect().height,a=e?e.width/27:7,s.remove()})),{lineHeight:o,charWidth:a}}},{key:"childCursor",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.length,t=this.children.length;return t&&(e-=this.children[--t].length),new B(this.children,e,t)}},{key:"computeBlockGapDeco",value:function(){for(var e=[],t=this.view.viewState,n=0,r=0;;r++){var i=r==t.viewports.length?null:t.viewports[r],o=i?i.from-1:this.length;if(o>n){var a=t.lineBlockAt(o).bottom-t.lineBlockAt(n).top;e.push(ge.replace({widget:new Ot(a),block:!0,inclusive:!0,isBlockGap:!0}).range(n,o))}if(!i)break;n=i.to+1}return ge.set(e)}},{key:"updateDeco",value:function(){var e=this.view.pluginField($e.decorations);return this.pluginDecorationLength=e.length,this.decorations=[].concat((0,l.Z)(e),(0,l.Z)(this.view.state.facet(Ge)),[this.compositionDeco,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco])}},{key:"scrollIntoView",value:function(e){var t,n=e.range,r=this.coordsAt(n.head,n.empty?n.assoc:n.head>n.anchor?-1:1);if(r){!n.empty&&(t=this.coordsAt(n.anchor,n.anchor>n.head?-1:1))&&(r={left:Math.min(r.left,t.left),top:Math.min(r.top,t.top),right:Math.max(r.right,t.right),bottom:Math.max(r.bottom,t.bottom)});var i,o=0,a=0,s=0,l=0,u=(0,c.Z)(this.view.pluginField($e.scrollMargins));try{for(u.s();!(i=u.n()).done;){var h=i.value;if(h){var f=h.left,d=h.right,p=h.top,m=h.bottom;null!=f&&(o=Math.max(o,f)),null!=d&&(a=Math.max(a,d)),null!=p&&(s=Math.max(s,p)),null!=m&&(l=Math.max(l,m))}}}catch(g){u.e(g)}finally{u.f()}var v={left:r.left-o,top:r.top-s,right:r.right+a,bottom:r.bottom+l};!function(e,t,n,r,i,o,a,s){for(var l=e.ownerDocument,c=l.defaultView,u=e;u;)if(1==u.nodeType){var h=void 0,f=u==l.body;if(f)h=O(c);else{if(u.scrollHeight<=u.clientHeight&&u.scrollWidth<=u.clientWidth){u=u.parentNode;continue}var d=u.getBoundingClientRect();h={left:d.left,right:d.left+u.clientWidth,top:d.top,bottom:d.top+u.clientHeight}}var p=0,m=0;if("nearest"==i)t.top0&&t.bottom>h.bottom+m&&(m=t.bottom-h.bottom+m+a)):t.bottom>h.bottom&&(m=t.bottom-h.bottom+a,n<0&&t.top-m0&&t.right>h.right+p&&(p=t.right-h.right+p+o)):t.right>h.right&&(p=t.right-h.right+o,n<0&&t.left0&&n<=0)t=_(e=e.childNodes[t-1]);else{if(!(1==e.nodeType&&t=0))return null;e=e.childNodes[t],t=0}}}function Mt(e,t){return 1!=e.nodeType?0:(t&&"false"==e.childNodes[t-1].contentEditable?1:0)|(te?t.left-e:Math.max(0,e-t.right)}function Rt(e,t){return t.top>e?t.top-e:Math.max(0,e-t.bottom)}function zt(e,t){return e.topt.top+1}function Nt(e,t){return te.bottom?{top:e.top,left:e.left,right:e.right,bottom:t}:e}function Jt(e,t,n){for(var r,i,o,a,s,l,c,u,h=e.firstChild;h;h=h.nextSibling)for(var f=b(h),d=0;dv||a==v&&o>m)&&(r=h,i=p,o=m,a=v),0==m?n>p.bottom&&(!c||c.bottomp.top)&&(l=h,u=p):c&&zt(c,p)?c=Lt(c,p.bottom):u&&zt(u,p)&&(u=Nt(u,p.top))}if(c&&c.bottom>=n?(r=s,i=c):u&&u.top<=n&&(r=l,i=u),!r)return{node:e,offset:0};var g=Math.max(i.left,Math.min(i.right,t));return 3==r.nodeType?Bt(r,g,n):o||"true"!=r.contentEditable?{node:e,offset:Array.prototype.indexOf.call(e.childNodes,r)+(t>=(i.left+i.right)/2?1:0)}:Jt(r,g,n)}function Bt(e,t,n){for(var r=e.nodeValue.length,i=-1,o=1e9,a=0,s=0;sn?u.top-n:n-u.bottom)-1;if(u.left-1<=t&&u.right+1>=t&&h=(u.left+u.right)/2,d=f;if(ee.chrome||ee.gecko)D(e,s).getBoundingClientRect().left==u.right&&(d=!f);if(h<=0)return{node:e,offset:s+(d?1:0)};i=s+(d?1:0),o=h}}}return{node:e,offset:i>-1?i:a>0?e.nodeValue.length:0}}function qt(e,t,n){var r,i,o=t.x,a=t.y,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1,l=e.contentDOM.getBoundingClientRect(),c=l.top+e.viewState.paddingTop,u=e.viewState.docHeight,h=a-c;if(h<0)return 0;if(h>u)return e.state.doc.length;for(var f=e.defaultLineHeight/2,d=!1;(i=e.elementAtHeight(h)).type!=ve.Text;)for(;!((h=s>0?i.bottom+f:i.top-f)>=0&&h<=u);){if(d)return n?null:0;d=!0,s=-s}a=c+h;var p=i.from;if(pe.viewport.to)return e.viewport.to==e.state.doc.length?e.state.doc.length:n?null:$t(e,l,i,o,a);var m=e.dom.ownerDocument,v=e.root.elementFromPoint?e.root:m,g=v.elementFromPoint(o,a);g&&!e.contentDOM.contains(g)&&(g=null),g||(o=Math.max(l.left+1,Math.min(l.right-1,o)),(g=v.elementFromPoint(o,a))&&!e.contentDOM.contains(g)&&(g=null));var y,k=-1;if(g&&0!=(null===(r=e.docView.nearest(g))||void 0===r?void 0:r.isEditable))if(m.caretPositionFromPoint){var b=m.caretPositionFromPoint(o,a);b&&(y=b.offsetNode,k=b.offset)}else if(m.caretRangeFromPoint){var w=m.caretRangeFromPoint(o,a);w&&(y=w.startContainer,k=w.startOffset,ee.safari&&Ft(y,k,o)&&(y=void 0))}if(!y||!e.docView.dom.contains(y)){var x=Se.find(e.docView,p);if(!x)return h>i.top+i.height/2?i.to:i.from;var S=Jt(x.dom,o,a);y=S.node,k=S.offset}return e.docView.posFromDOM(y,k)}function $t(e,t,n,r,i){var o=Math.round((r-t.left)*e.defaultCharacterWidth);e.lineWrapping&&n.height>1.5*e.defaultLineHeight&&(o+=Math.floor((i-n.top)/e.defaultLineHeight)*e.viewState.heightOracle.lineLength);var a=e.state.sliceDoc(n.from,n.to);return n.from+(0,d.Gz)(a,o,e.state.tabSize)}function Ft(e,t,n){var r;if(3!=e.nodeType||t!=(r=e.nodeValue.length))return!1;for(var i=e.nextSibling;i;i=i.nextSibling)if(1!=i.nodeType||"BR"!=i.nodeName)return!1;return D(e,r-1,r).getBoundingClientRect().left>n}function Vt(e,t,n,r){var i=e.state.doc.lineAt(t.head),o=r&&e.lineWrapping?e.coordsAtPos(t.assoc<0&&t.head>i.from?t.head-1:t.head):null;if(o){var a=e.dom.getBoundingClientRect(),s=e.posAtCoords({x:n==(e.textDirection==et.LTR)?a.right-1:a.left+1,y:(o.top+o.bottom)/2});if(null!=s)return f.jT.cursor(s,n?-1:1)}var l=Se.find(e.docView,t.head),c=l?n?l.posAtEnd:l.posAtStart:n?i.to:i.from;return f.jT.cursor(c,n?-1:1)}function jt(e,t,n,r){for(var i=e.state.doc.lineAt(t.head),o=e.bidiSpans(i),a=t,s=null;;){var l=bt(i,o,e.textDirection,a,n),c=kt;if(!l){if(i.number==(n?e.state.doc.lines:1))return a;c="\n",i=e.state.doc.line(i.number+(n?1:-1)),o=e.bidiSpans(i),l=f.jT.cursor(n?i.from:i.to)}if(s){if(!s(c))return a}else{if(!r)return l;s=r(c)}a=l}}function Wt(e,t,n){for(var r=e.pluginField($e.atomicRanges);;){var i,o=!1,a=(0,c.Z)(r);try{for(a.s();!(i=a.n()).done;){i.value.between(n.from-1,n.from+1,(function(e,r,i){n.from>e&&n.fromn.from?f.jT.cursor(e,1):f.jT.cursor(r,-1),o=!0)}))}}catch(s){a.e(s)}finally{a.f()}if(!o)return n}}var Ht=function(){function e(t){var n=this;(0,u.Z)(this,e),this.lastKeyCode=0,this.lastKeyTime=0,this.pendingIOSKey=void 0,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.lastContextMenu=0,this.scrollHandlers=[],this.registeredEvents=[],this.customHandlers=[],this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.rapidCompositionStart=!1,this.mouseSelection=null;var r=function(e){var r=Xt[e];t.contentDOM.addEventListener(e,(function(i){"keydown"==e&&n.keydown(t,i)||Kt(t,i)&&!n.ignoreDuringComposition(i)&&(n.mustFlushObserver(i)&&t.observer.forceFlush(),n.runCustomHandlers(e,t,i)?i.preventDefault():r(t,i))})),n.registeredEvents.push(e)};for(var i in Xt)r(i);this.notifiedFocused=t.hasFocus,this.ensureHandlers(t),ee.safari&&t.contentDOM.addEventListener("input",(function(){return null}))}return(0,h.Z)(e,[{key:"setSelectionOrigin",value:function(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}},{key:"ensureHandlers",value:function(e){var t,n=this,r=this.customHandlers=e.pluginField(We),i=(0,c.Z)(r);try{for(i.s();!(t=i.n()).done;){var o=t.value,a=function(t){n.registeredEvents.indexOf(t)<0&&"scroll"!=t&&(n.registeredEvents.push(t),e.contentDOM.addEventListener(t,(function(r){Kt(e,r)&&n.runCustomHandlers(t,e,r)&&r.preventDefault()})))};for(var s in o.handlers)a(s)}}catch(l){i.e(l)}finally{i.f()}}},{key:"runCustomHandlers",value:function(e,t,n){var r,i=(0,c.Z)(this.customHandlers);try{for(i.s();!(r=i.n()).done;){var o=r.value,a=o.handlers[e];if(a)try{if(a.call(o.plugin,n,t)||n.defaultPrevented)return!0}catch(s){Je(t.state,s)}}}catch(l){i.e(l)}finally{i.f()}return!1}},{key:"runScrollHandlers",value:function(e,t){var n,r=(0,c.Z)(this.customHandlers);try{for(r.s();!(n=r.n()).done;){var i=n.value,o=i.handlers.scroll;if(o)try{o.call(i.plugin,t,e)}catch(a){Je(e.state,a)}}}catch(s){r.e(s)}finally{r.f()}}},{key:"keydown",value:function(e,t){var n,r=this;return this.lastKeyCode=t.keyCode,this.lastKeyTime=Date.now(),!!this.screenKeyEvent(e,t)||(!ee.android||!ee.chrome||t.synthetic||13!=t.keyCode&&8!=t.keyCode?!(!ee.ios||!(n=Ut.find((function(e){return e.keyCode==t.keyCode})))||t.ctrlKey||t.altKey||t.metaKey||t.synthetic)&&(this.pendingIOSKey=n,setTimeout((function(){return r.flushIOSKey(e)}),250),!0):(e.observer.delayAndroidKey(t.key,t.keyCode),!0))}},{key:"flushIOSKey",value:function(e){var t=this.pendingIOSKey;return!!t&&(this.pendingIOSKey=void 0,P(e.contentDOM,t.key,t.keyCode))}},{key:"ignoreDuringComposition",value:function(e){return!!/^key/.test(e.type)&&(this.composing>0||!!(ee.safari&&Date.now()-this.compositionEndedAt<500)&&(this.compositionEndedAt=0,!0))}},{key:"screenKeyEvent",value:function(e,t){var n=9==t.keyCode&&Date.now()=t.clientX&&o.top<=t.clientY&&o.bottom>=t.clientY)return!0}return!1}(t,n)||1!=fn(n))&&null,!1===this.dragging&&(n.preventDefault(),this.select(n))}return(0,h.Z)(e,[{key:"move",value:function(e){if(0==e.buttons)return this.destroy();!1===this.dragging&&this.select(this.lastEvent=e)}},{key:"up",value:function(e){null==this.dragging&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}},{key:"destroy",value:function(){var e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=null}},{key:"select",value:function(e){var t=this.style.get(e,this.extend,this.multiple);!this.mustSelect&&t.eq(this.view.state.selection)&&t.main.assoc==this.view.state.selection.main.assoc||this.view.dispatch({selection:t,userEvent:"select.pointer",scrollIntoView:!0}),this.mustSelect=!1}},{key:"update",value:function(e){var t=this;e.docChanged&&this.dragging&&(this.dragging=this.dragging.map(e.changes)),this.style.update(e)&&setTimeout((function(){return t.select(t.lastEvent)}),20)}}]),e}();function Kt(e,t){if(!t.bubbles)return!0;if(t.defaultPrevented)return!1;for(var n,r=t.target;r!=e.contentDOM;r=r.parentNode)if(!r||11==r.nodeType||(n=L.get(r))&&n.ignoreEvent(t))return!1;return!0}var Xt=Object.create(null),Yt=ee.ie&&ee.ie_version<15||ee.ios&&ee.webkit_version<604;function en(e,t){var n,r=e.state,i=1,o=r.toText(t),a=o.lines==r.selection.ranges.length,s=null!=pn&&r.selection.ranges.every((function(e){return e.empty}))&&pn==o.toString();if(s){var l=-1;n=r.changeByRange((function(e){var n=r.doc.lineAt(e.from);if(n.from==l)return{range:e};l=n.from;var s=r.toText((a?o.line(i++).text:t)+r.lineBreak);return{changes:{from:n.from,insert:s},range:f.jT.cursor(e.from+s.length)}}))}else n=a?r.changeByRange((function(e){var t=o.line(i++);return{changes:{from:e.from,to:e.to,insert:t.text},range:f.jT.cursor(e.from+t.length)}})):r.replaceSelection(o);e.dispatch(n,{userEvent:"input.paste",scrollIntoView:!0})}Xt.keydown=function(e,t){e.inputState.setSelectionOrigin("select")};var tn=0;function nn(e,t,n,r){if(1==r)return f.jT.cursor(t,n);if(2==r)return function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=e.charCategorizer(t),i=e.doc.lineAt(t),o=t-i.from;if(0==i.length)return f.jT.cursor(t);0==o?n=1:o==i.length&&(n=-1);var a=o,s=o;n<0?a=(0,d.cp)(i.text,o,!1):s=(0,d.cp)(i.text,o);for(var l=r(i.text.slice(a,s));a>0;){var c=(0,d.cp)(i.text,a,!1);if(r(i.text.slice(c,a))!=l)break;a=c}for(;sDate.now()-2e3&&1==fn(t))){var n,r=null,i=(0,c.Z)(e.state.facet(Me));try{for(i.s();!(n=i.n()).done;){if(r=(0,n.value)(e,t))break}}catch(a){i.e(a)}finally{i.f()}if(r||0!=t.button||(r=function(e,t){var n=sn(e,t),r=fn(t),i=e.state.selection,o=n,a=t;return{update:function(e){e.docChanged&&(n&&(n.pos=e.changes.mapPos(n.pos)),i=i.map(e.changes),a=null)},get:function(t,s,l){var c;if(a&&t.clientX==a.clientX&&t.clientY==a.clientY?c=o:(c=o=sn(e,t),a=t),!c||!n)return i;var u=nn(e,c.pos,c.bias,r);if(n.pos!=c.pos&&!s){var h=nn(e,n.pos,n.bias,r),d=Math.min(h.from,u.from),p=Math.max(h.to,u.to);u=d=t.top&&e<=t.bottom},on=function(e,t,n){return rn(t,n)&&e>=n.left&&e<=n.right};function an(e,t,n,r){var i=Se.find(e.docView,t);if(!i)return 1;var o=t-i.posAtStart;if(0==o)return 1;if(o==i.length)return-1;var a=i.coordsAt(o,-1);if(a&&on(n,r,a))return-1;var s=i.coordsAt(o,1);return s&&on(n,r,s)?1:a&&rn(r,a)?-1:1}function sn(e,t){var n=e.posAtCoords({x:t.clientX,y:t.clientY},!1);return{pos:n,bias:an(e,n,t.clientX,t.clientY)}}var ln=ee.ie&&ee.ie_version<=11,cn=null,un=0,hn=0;function fn(e){if(!ln)return e.detail;var t=cn,n=hn;return cn=e,hn=Date.now(),un=!t||n>Date.now()-400&&Math.abs(t.clientX-e.clientX)<2&&Math.abs(t.clientY-e.clientY)<2?(un+1)%3:1}function dn(e,t,n,r){if(n){var i=e.posAtCoords({x:t.clientX,y:t.clientY},!1);t.preventDefault();var o=e.inputState.mouseSelection,a=r&&o&&o.dragging&&o.dragMove?{from:o.dragging.from,to:o.dragging.to}:null,s={from:i,insert:n},l=e.state.changes(a?[a,s]:s);e.focus(),e.dispatch({changes:l,selection:{anchor:l.mapPos(i,-1),head:l.mapPos(i,1)},userEvent:a?"move.drop":"input.drop"})}}Xt.dragstart=function(e,t){var n=e.state.selection.main,r=e.inputState.mouseSelection;r&&(r.dragging=n),t.dataTransfer&&(t.dataTransfer.setData("Text",e.state.sliceDoc(n.from,n.to)),t.dataTransfer.effectAllowed="copyMove")},Xt.drop=function(e,t){if(t.dataTransfer){if(e.state.readOnly)return t.preventDefault();var n=t.dataTransfer.files;n&&n.length?function(){t.preventDefault();for(var r=Array(n.length),i=0,o=function(){++i==n.length&&dn(e,t,r.filter((function(e){return null!=e})).join(e.state.lineBreak),!1)},a=function(e){var t=new FileReader;t.onerror=o,t.onload=function(){/[\x00-\x08\x0e-\x1f]{2}/.test(t.result)||(r[e]=t.result),o()},t.readAsText(n[e])},s=0;sl&&(n.push(f.text),r.push({from:f.from,to:Math.min(e.doc.length,f.to+1)})),l=f.number}}catch(d){u.e(d)}finally{u.f()}i=!0}return{text:n.join(e.lineBreak),ranges:r,linewise:i}}(e.state),r=n.text,i=n.ranges,o=n.linewise;if(r||o){pn=o?r:null;var a=Yt?null:t.clipboardData;a?(t.preventDefault(),a.clearData(),a.setData("text/plain",r)):function(e,t){var n=e.dom.parentNode;if(n){var r=n.appendChild(document.createElement("textarea"));r.style.cssText="position: fixed; left: -10000px; top: 10px",r.value=t,r.focus(),r.selectionEnd=t.length,r.selectionStart=0,setTimeout((function(){r.remove(),e.focus()}),50)}}(e,r),"cut"!=t.type||e.state.readOnly||e.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"})}},Xt.focus=Xt.blur=function(e){setTimeout((function(){e.hasFocus!=e.inputState.notifiedFocused&&e.update([])}),10)},Xt.beforeprint=function(e){e.viewState.printing=!0,e.requestMeasure(),setTimeout((function(){e.viewState.printing=!1,e.requestMeasure()}),2e3)},Xt.compositionstart=Xt.compositionupdate=function(e){null==e.inputState.compositionFirstChange&&(e.inputState.compositionFirstChange=!0),e.inputState.composing<0&&(e.inputState.composing=0,e.docView.compositionDeco.size&&(e.observer.flush(),mn(e,!0)))},Xt.compositionend=function(e){e.inputState.composing=-1,e.inputState.compositionEndedAt=Date.now(),e.inputState.compositionFirstChange=null,setTimeout((function(){e.inputState.composing<0&&mn(e,!1)}),50)},Xt.contextmenu=function(e){e.inputState.lastContextMenu=Date.now()},Xt.beforeinput=function(e,t){var n,r;if(ee.chrome&&ee.android&&(r=Ut.find((function(e){return e.inputType==t.inputType})))&&(e.observer.delayAndroidKey(r.key,r.keyCode),"Backspace"==r.key||"Delete"==r.key)){var i=(null===(n=window.visualViewport)||void 0===n?void 0:n.height)||0;setTimeout((function(){var t;((null===(t=window.visualViewport)||void 0===t?void 0:t.height)||0)>i+10&&e.hasFocus&&(e.contentDOM.blur(),e.focus())}),100)}};var vn=["pre-wrap","normal","pre-line","break-spaces"],gn=function(){function e(){(0,u.Z)(this,e),this.doc=d.xv.empty,this.lineWrapping=!1,this.direction=et.LTR,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.lineLength=30,this.heightChanged=!1}return(0,h.Z)(e,[{key:"heightForGap",value:function(e,t){var n=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(n+=Math.ceil((t-e-n*this.lineLength*.5)/this.lineLength)),this.lineHeight*n}},{key:"heightForLine",value:function(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}},{key:"setDoc",value:function(e){return this.doc=e,this}},{key:"mustRefreshForStyle",value:function(e,t){return vn.indexOf(e)>-1!=this.lineWrapping||this.direction!=t}},{key:"mustRefreshForHeights",value:function(e){for(var t=!1,n=0;n-1,s=Math.round(n)!=Math.round(this.lineHeight)||this.lineWrapping!=a||this.direction!=t;if(this.lineWrapping=a,this.direction=t,this.lineHeight=n,this.charWidth=r,this.lineLength=i,s){this.heightSamples={};for(var l=0;l2&&void 0!==arguments[2]?arguments[2]:2;(0,u.Z)(this,e),this.length=t,this.height=n,this.flags=r}return(0,h.Z)(e,[{key:"outdated",get:function(){return(2&this.flags)>0},set:function(e){this.flags=(e?2:0)|-3&this.flags}},{key:"setHeight",value:function(e,t){this.height!=t&&(Math.abs(this.height-t)>wn&&(e.heightChanged=!0),this.height=t)}},{key:"replace",value:function(t,n,r){return e.of(r)}},{key:"decomposeLeft",value:function(e,t){t.push(this)}},{key:"decomposeRight",value:function(e,t){t.push(this)}},{key:"applyChanges",value:function(e,t,n,r){for(var i=this,o=r.length-1;o>=0;o--){var a=r[o],s=a.fromA,l=a.toA,c=a.fromB,u=a.toB,h=i.lineAt(s,bn.ByPosNoHeight,t,0,0),f=h.to>=l?h:i.lineAt(l,bn.ByPosNoHeight,t,0,0);for(u+=f.to-l,l=f.to;o>0&&h.from<=r[o-1].toA;)s=r[o-1].fromA,c=r[o-1].fromB,o--,s2*o){var a=t[n-1];a.break?t.splice(--n,1,a.left,null,a.right):t.splice(--n,1,a.left,a.right),r+=1+a.break,i-=a.size}else{if(!(o>2*i))break;var s=t[r];s.break?t.splice(r,1,s.left,null,s.right):t.splice(r,1,s.left,s.right),r+=2+s.break,o-=s.size}else if(i1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>3?arguments[3]:void 0;return n&&n.from<=t&&n.more&&this.setHeight(e,n.heights[n.index++]),this.outdated=!1,this}},{key:"toString",value:function(){return"block(".concat(this.length,")")}}]),n}(xn),_n=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e,r){var i;return(0,u.Z)(this,n),(i=t.call(this,e,r,ve.Text)).collapsed=0,i.widgetHeight=0,i}return(0,h.Z)(n,[{key:"replace",value:function(e,t,r){var i=r[0];return 1==r.length&&(i instanceof n||i instanceof Cn&&4&i.flags)&&Math.abs(this.length-i.length)<10?(i instanceof Cn?i=new n(i.length,this.height):i.height=this.height,this.outdated||(i.outdated=!1),i):xn.of(r)}},{key:"updateHeight",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3?arguments[3]:void 0;return r&&r.from<=t&&r.more?this.setHeight(e,r.heights[r.index++]):(n||this.outdated)&&this.setHeight(e,Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))),this.outdated=!1,this}},{key:"toString",value:function(){return"line(".concat(this.length).concat(this.collapsed?-this.collapsed:"").concat(this.widgetHeight?":"+this.widgetHeight:"",")")}}]),n}(Sn),Cn=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e){return(0,u.Z)(this,n),t.call(this,e,0)}return(0,h.Z)(n,[{key:"lines",value:function(e,t){var n=e.lineAt(t).number,r=e.lineAt(t+this.length).number;return{firstLine:n,lastLine:r,lineHeight:this.height/(r-n+1)}}},{key:"blockAt",value:function(e,t,n,r){var i=this.lines(t,r),o=i.firstLine,a=i.lastLine,s=i.lineHeight,l=Math.max(0,Math.min(a-o,Math.floor((e-n)/s))),c=t.line(o+l),u=c.from,h=c.length;return new kn(u,h,n+s*l,s,ve.Text)}},{key:"lineAt",value:function(e,t,n,r,i){if(t==bn.ByHeight)return this.blockAt(e,n,r,i);if(t==bn.ByPosNoHeight){var o=n.lineAt(e),a=o.from,s=o.to;return new kn(a,s-a,0,0,ve.Text)}var l=this.lines(n,i),c=l.firstLine,u=l.lineHeight,h=n.lineAt(e),f=h.from,d=h.length,p=h.number;return new kn(f,d,r+u*(p-c),u,ve.Text)}},{key:"forEachLine",value:function(e,t,n,r,i,o){for(var a=this.lines(n,i),s=a.firstLine,l=a.lineHeight,c=Math.max(e,i),u=Math.min(i+this.length,t);c<=u;){var h=n.lineAt(c);c==e&&(r+=l*(h.number-s)),o(new kn(h.from,h.length,r,l,ve.Text)),r+=l,c=h.to+1}}},{key:"replace",value:function(e,t,r){var i=this.length-t;if(i>0){var o=r[r.length-1];o instanceof n?r[r.length-1]=new n(o.length+i):r.push(null,new n(i-1))}if(e>0){var a=r[0];a instanceof n?r[0]=new n(e+a.length):r.unshift(new n(e-1),null)}return xn.of(r)}},{key:"decomposeLeft",value:function(e,t){t.push(new n(e-1),null)}},{key:"decomposeRight",value:function(e,t){t.push(null,new n(this.length-e-1))}},{key:"updateHeight",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3?arguments[3]:void 0,o=t+this.length;if(i&&i.from<=t+this.length&&i.more){var a=[],s=Math.max(t,i.from),l=-1,c=e.heightChanged;for(i.from>t&&a.push(new n(i.from-t-1).updateHeight(e,t));s<=o&&i.more;){var u=e.doc.lineAt(s).length;a.length&&a.push(null);var h=i.heights[i.index++];-1==l?l=h:Math.abs(h-l)>=wn&&(l=-2);var f=new _n(u,h);f.outdated=!1,a.push(f),s+=u+1}s<=o&&a.push(null,new n(o-s).updateHeight(e,s));var d=xn.of(a);return e.heightChanged=c||l<0||Math.abs(d.height-this.height)>=wn||Math.abs(l-this.lines(e.doc,t).lineHeight)>=wn,d}return(r||this.outdated)&&(this.setHeight(e,e.heightForGap(t,t+this.length)),this.outdated=!1),this}},{key:"toString",value:function(){return"gap(".concat(this.length,")")}}]),n}(xn),An=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e,r,i){var o;return(0,u.Z)(this,n),(o=t.call(this,e.length+r+i.length,e.height+i.height,r|(e.outdated||i.outdated?2:0))).left=e,o.right=i,o.size=e.size+i.size,o}return(0,h.Z)(n,[{key:"break",get:function(){return 1&this.flags}},{key:"blockAt",value:function(e,t,n,r){var i=n+this.left.height;return ea))return l;var c=t==bn.ByPosNoHeight?bn.ByPosNoHeight:bn.ByPos;return s?l.join(this.right.lineAt(a,c,n,o,a)):this.left.lineAt(a,c,n,r,i).join(l)}},{key:"forEachLine",value:function(e,t,n,r,i,o){var a=r+this.left.height,s=i+this.left.length+this.break;if(this.break)e=s&&this.right.forEachLine(e,t,n,a,s,o);else{var l=this.lineAt(s,bn.ByPos,n,r,i);e=e&&l.from<=t&&o(l),t>l.to&&this.right.forEachLine(l.to+1,t,n,a,s,o)}}},{key:"replace",value:function(e,t,n){var r=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-r,t-r,n));var i=[];e>0&&this.decomposeLeft(e,i);var o,a=i.length,s=(0,c.Z)(n);try{for(s.s();!(o=s.n()).done;){var l=o.value;i.push(l)}}catch(h){s.e(h)}finally{s.f()}if(e>0&&On(i,a-1),t=++n&&t.push(null),e>n&&this.right.decomposeLeft(e-n,t)}},{key:"decomposeRight",value:function(e,t){var n=this.left.length,r=n+this.break;if(e>=r)return this.right.decomposeRight(e-r,t);e2*t.size||t.size>2*e.size?xn.of(this.break?[e,null,t]:[e,t]):(this.left=e,this.right=t,this.height=e.height+t.height,this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}},{key:"updateHeight",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3?arguments[3]:void 0,i=this.left,o=this.right,a=t+i.length+this.break,s=null;return r&&r.from<=t+i.length&&r.more?s=i=i.updateHeight(e,t,n,r):i.updateHeight(e,t,n),r&&r.from<=a+o.length&&r.more?s=o=o.updateHeight(e,a,n,r):o.updateHeight(e,a,n),s?this.balanced(i,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}},{key:"toString",value:function(){return this.left+(this.break?" ":"-")+this.right}}]),n}(xn);function On(e,t){var n,r;null==e[t]&&(n=e[t-1])instanceof Cn&&(r=e[t+1])instanceof Cn&&e.splice(t-1,3,new Cn(n.length+1+r.length))}var Tn=function(){function e(t,n){(0,u.Z)(this,e),this.pos=t,this.oracle=n,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=t}return(0,h.Z)(e,[{key:"isCovered",get:function(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}},{key:"span",value:function(e,t){if(this.lineStart>-1){var n=Math.min(t,this.lineEnd),r=this.nodes[this.nodes.length-1];r instanceof _n?r.length+=n-this.pos:(n>this.pos||!this.isCovered)&&this.nodes.push(new _n(n-this.pos,-1)),this.writtenTo=n,t>n&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}},{key:"point",value:function(e,t,n){if(e=5)&&this.addLineDeco(r,i)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd-1)){var e=this.oracle.doc.lineAt(this.pos),t=e.from,n=e.to;this.lineStart=t,this.lineEnd=n,this.writtenTot&&this.nodes.push(new _n(this.pos-t,-1)),this.writtenTo=this.pos}}},{key:"blankContent",value:function(e,t){var n=new Cn(t-e);return this.oracle.doc.lineAt(e).to==t&&(n.flags|=4),n}},{key:"ensureLine",value:function(){this.enterLine();var e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof _n)return e;var t=new _n(0,-1);return this.nodes.push(t),t}},{key:"addBlock",value:function(e){this.enterLine(),e.type!=ve.WidgetAfter||this.isCovered||this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,e.type!=ve.WidgetBefore&&(this.covering=e)}},{key:"addLineDeco",value:function(e,t){var n=this.ensureLine();n.length+=t,n.collapsed+=t,n.widgetHeight=Math.max(n.widgetHeight,e),this.writtenTo=this.pos=this.pos+t}},{key:"finish",value:function(e){var t=0==this.nodes.length?null:this.nodes[this.nodes.length-1];!(this.lineStart>-1)||t instanceof _n||this.isCovered?(this.writtenTo=t&&i<=n}))){var o=e.lineBlockAt(i),a=o.from,s=o.to;t.push(new In(a,s))}},i=0;i<=1;i++)r(i);this.viewports=t.sort((function(e,t){return e.from-t.from})),this.scaler=this.heightMap.height<=7e6?Ln:new Jn(this.heightOracle.doc,this.heightMap,this.viewports)}},{key:"updateViewportLines",value:function(){var e=this;this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.state.doc,0,0,(function(t){e.viewportLines.push(1==e.scaler.scale?t:Bn(t,e.scaler))}))}},{key:"update",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=this.state;this.state=e.state;var r=this.state.facet(Ge),i=e.changedRanges,o=Xe.extendWithRanges(i,Zn(e.startState.facet(Ge),r,e?e.changes:f.as.empty(this.state.doc.length))),a=this.heightMap.height;this.heightMap=this.heightMap.applyChanges(r,n.doc,this.heightOracle.setDoc(this.state.doc),o),this.heightMap.height!=a&&(e.flags|=2);var s=o.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.heads.to)||!this.viewportIsAppropriate(s))&&(s=this.getViewport(0,t));var l=!e.changes.empty||2&e.flags||s.from!=this.viewport.from||s.to!=this.viewport.to;this.viewport=s,this.updateForViewport(),l&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&(this.mustEnforceCursorAssoc=!0)}},{key:"measure",value:function(e){var t=e.contentDOM,n=window.getComputedStyle(t),r=this.heightOracle,i=n.whiteSpace,o="rtl"==n.direction?et.RTL:et.LTR,a=this.heightOracle.mustRefreshForStyle(i,o),s=a||this.mustMeasureContent||this.contentDOMHeight!=t.clientHeight,l=0,c=0;if(this.editorWidth!=e.scrollDOM.clientWidth&&(r.lineWrapping&&(s=!0),this.editorWidth=e.scrollDOM.clientWidth,l|=8),s){this.mustMeasureContent=!1,this.contentDOMHeight=t.clientHeight;var u=parseInt(n.paddingTop)||0,h=parseInt(n.paddingBottom)||0;this.paddingTop==u&&this.paddingBottom==h||(l|=8,this.paddingTop=u,this.paddingBottom=h)}var f=this.printing?{top:-1e8,bottom:1e8,left:-1e8,right:1e8}:function(e,t){for(var n=e.getBoundingClientRect(),r=Math.max(0,n.left),i=Math.min(innerWidth,n.right),o=Math.max(0,n.top),a=Math.min(innerHeight,n.bottom),s=e.ownerDocument.body,l=e.parentNode;l&&l!=s;)if(1==l.nodeType){var c=l,u=window.getComputedStyle(c);if((c.scrollHeight>c.clientHeight||c.scrollWidth>c.clientWidth)&&"visible"!=u.overflow){var h=c.getBoundingClientRect();r=Math.max(r,h.left),i=Math.min(i,h.right),o=Math.max(o,h.top),a=Math.min(a,h.bottom)}l="absolute"==u.position||"fixed"==u.position?c.offsetParent:c.parentNode}else{if(11!=l.nodeType)break;l=l.host}return{left:r-n.left,right:Math.max(r,i)-n.left,top:o-(n.top+t),bottom:Math.max(o,a)-(n.top+t)}}(t,this.paddingTop),d=f.top-this.pixelViewport.top,p=f.bottom-this.pixelViewport.bottom;this.pixelViewport=f;var m=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(m!=this.inView&&(this.inView=m,m&&(s=!0)),!this.inView)return 0;var v=t.clientWidth;if(this.contentDOMWidth==v&&this.editorHeight==e.scrollDOM.clientHeight||(this.contentDOMWidth=v,this.editorHeight=e.scrollDOM.clientHeight,l|=8),s){var g=e.docView.measureVisibleLineHeights();if(r.mustRefreshForHeights(g)&&(a=!0),a||r.lineWrapping&&Math.abs(v-this.contentDOMWidth)>r.charWidth){var y=e.docView.measureTextSize(),k=y.lineHeight,b=y.charWidth;(a=r.refresh(i,o,k,b,v/b,g))&&(e.docView.minWidth=0,l|=8)}d>0&&p>0?c=Math.max(d,p):d<0&&p<0&&(c=Math.min(d,p)),r.heightChanged=!1,this.heightMap=this.heightMap.updateHeight(r,0,a,new yn(this.viewport.from,g)),r.heightChanged&&(l|=2)}var w=!this.viewportIsAppropriate(this.viewport,c)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return w&&(this.viewport=this.getViewport(c,this.scrollTarget)),this.updateForViewport(),(2&l||w)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(a?[]:this.lineGaps)),l|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),l}},{key:"visibleTop",get:function(){return this.scaler.fromDOM(this.pixelViewport.top)}},{key:"visibleBottom",get:function(){return this.scaler.fromDOM(this.pixelViewport.bottom)}},{key:"getViewport",value:function(e,t){var n=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),r=this.heightMap,i=this.state.doc,o=this.visibleTop,a=this.visibleBottom,s=new In(r.lineAt(o-1e3*n,bn.ByHeight,i,0,0).from,r.lineAt(a+1e3*(1-n),bn.ByHeight,i,0,0).to);if(t){var l=t.range.head;if(ls.to){var c,u=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),h=r.lineAt(l,bn.ByPos,i,0,0);c="center"==t.y?(h.top+h.bottom)/2-u/2:"start"==t.y||"nearest"==t.y&&l1&&void 0!==arguments[1]?arguments[1]:0;if(!this.inView)return!0;var i=this.heightMap.lineAt(t,bn.ByPos,this.state.doc,0,0),o=i.top,a=this.heightMap.lineAt(n,bn.ByPos,this.state.doc,0,0),s=a.bottom,l=this.visibleTop,c=this.visibleBottom;return(0==t||o<=l-Math.max(10,Math.min(-r,250)))&&(n==this.state.doc.length||s>=c+Math.max(10,Math.min(r,250)))&&o>l-2e3&&si&&(r.push({from:i,to:e}),o+=e-i),i=t}},20),ii.from&&f.push({from:i.from,to:a}),s=i.from&&d.from<=i.to&&Nn(f,d.from-10,d.from+10),!d.empty&&d.to>=i.from&&d.to<=i.to&&Nn(f,d.to-10,d.to+10);for(var p=function(){var r=g[v],a=r.from,s=r.to;s-a>1e3&&n.push(function(e,t){var n,r=(0,c.Z)(e);try{for(r.s();!(n=r.n()).done;){var i=n.value;if(t(i))return i}}catch(o){r.e(o)}finally{r.f()}return}(e,(function(e){return e.from>=i.from&&e.to<=i.to&&Math.abs(e.from-a)<1e3&&Math.abs(e.to-s)<1e3}))||new Mn(a,s,t.gapSize(i,a,s,o)))},v=0,g=f;v=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find((function(t){return t.from<=e&&t.to>=e}))||Bn(this.heightMap.lineAt(e,bn.ByPos,this.state.doc,0,0),this.scaler)}},{key:"lineBlockAtHeight",value:function(e){return Bn(this.heightMap.lineAt(this.scaler.fromDOM(e),bn.ByHeight,this.state.doc,0,0),this.scaler)}},{key:"elementAtHeight",value:function(e){return Bn(this.heightMap.blockAt(this.scaler.fromDOM(e),this.state.doc,0,0),this.scaler)}},{key:"docHeight",get:function(){return this.scaler.toDOM(this.heightMap.height)}},{key:"contentHeight",get:function(){return this.docHeight+this.paddingTop+this.paddingBottom}}]),e}(),In=(0,h.Z)((function e(t,n){(0,u.Z)(this,e),this.from=t,this.to=n}));function Rn(e,t){var n=e.total,r=e.ranges;if(t<=0)return r[0].from;if(t>=1)return r[r.length-1].to;for(var i=Math.floor(n*t),o=0;;o++){var a=r[o],s=a.from,l=a.to-s;if(i<=l)return s+i;i-=l}}function zn(e,t){var n,r=0,i=(0,c.Z)(e.ranges);try{for(i.s();!(n=i.n()).done;){var o=n.value,a=o.from,s=o.to;if(t<=s){r+=t-a;break}r+=s-a}}catch(l){i.e(l)}finally{i.f()}return r/e.total}function Nn(e,t,n){for(var r=0;rt){var o=[];i.fromn&&o.push({from:n,to:i.to}),e.splice.apply(e,[r,1].concat(o)),r+=o.length-1}}}var Ln={toDOM:function(e){return e},fromDOM:function(e){return e},scale:1},Jn=function(){function e(t,n,r){(0,u.Z)(this,e);var i=0,o=0,a=0;this.viewports=r.map((function(e){var r=e.from,o=e.to,a=n.lineAt(r,bn.ByPos,t,0,0).top,s=n.lineAt(o,bn.ByPos,t,0,0).bottom;return i+=s-a,{from:r,to:o,top:a,bottom:s,domTop:0,domBottom:0}})),this.scale=(7e6-i)/(n.height-i);var s,l=(0,c.Z)(this.viewports);try{for(l.s();!(s=l.n()).done;){var h=s.value;h.domTop=a+(h.top-o)*this.scale,a=h.domBottom=h.domTop+(h.bottom-h.top),o=h.bottom}}catch(f){l.e(f)}finally{l.f()}}return(0,h.Z)(e,[{key:"toDOM",value:function(e){for(var t=0,n=0,r=0;;t++){var i=t-1}}),Fn=p.V.newName(),Vn=p.V.newName(),jn=p.V.newName(),Wn={"&light":"."+Vn,"&dark":"."+jn};function Hn(e,t,n){return new p.V(t,{finish:function(t){return/&/.test(t)?t.replace(/&\w*/,(function(t){if("&"==t)return e;if(!n||!n[t])throw new RangeError("Unsupported selector: ".concat(t));return n[t]})):e+" "+t}})}var Un=Hn("."+Fn,{"&.cm-editor":{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,minHeight:"100%",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"},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 4px"},".cm-selectionLayer":{zIndex:-1,contain:"size style"},".cm-selectionBackground":{position:"absolute"},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{zIndex:100,contain:"size style",pointerEvents:"none"},"&.cm-focused .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{visibility:"hidden"},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{visibility:"hidden"},"100%":{}},".cm-cursor, .cm-dropCursor":{position:"absolute",borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},"&.cm-focused .cm-cursor":{display:"block"},"&light .cm-activeLine":{backgroundColor:"#f3f9ff"},"&dark .cm-activeLine":{backgroundColor:"#223039"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".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"}},Wn),Qn={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Gn=ee.ie&&ee.ie_version<=11,Kn=function(){function e(t,n,r){var i=this;(0,u.Z)(this,e),this.view=t,this.onChange=n,this.onScrollChanged=r,this.active=!1,this.selectionRange=new Z,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.scrollTargets=[],this.intersection=null,this.resize=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=t.contentDOM,this.observer=new MutationObserver((function(e){var n,r=(0,c.Z)(e);try{for(r.s();!(n=r.n()).done;){var o=n.value;i.queue.push(o)}}catch(a){r.e(a)}finally{r.f()}(ee.ie&&ee.ie_version<=11||ee.ios&&t.composing)&&e.some((function(e){return"childList"==e.type&&e.removedNodes.length||"characterData"==e.type&&e.oldValue.length>e.target.nodeValue.length}))?i.flushSoon():i.flush()})),Gn&&(this.onCharData=function(e){i.queue.push({target:e.target,type:"characterData",oldValue:e.prevValue}),i.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),window.addEventListener("resize",this.onResize=this.onResize.bind(this)),"function"==typeof ResizeObserver&&(this.resize=new ResizeObserver((function(){i.view.docView.lastUpdate0&&e[e.length-1].intersectionRatio>0!=i.intersecting&&(i.intersecting=!i.intersecting,i.intersecting!=i.view.inView&&i.onScrollChanged(document.createEvent("Event")))}),{}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver((function(e){e.length>0&&e[e.length-1].intersectionRatio>0&&i.onScrollChanged(document.createEvent("Event"))}),{})),this.listenForScroll(),this.readSelectionRange(),this.dom.ownerDocument.addEventListener("selectionchange",this.onSelectionChange)}return(0,h.Z)(e,[{key:"onScroll",value:function(e){this.intersecting&&this.flush(!1),this.onScrollChanged(e)}},{key:"onResize",value:function(){var e=this;this.resizeTimeout<0&&(this.resizeTimeout=setTimeout((function(){e.resizeTimeout=-1,e.view.requestMeasure()}),50))}},{key:"updateGaps",value:function(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((function(t,n){return t!=e[n]})))){this.gapIntersection.disconnect();var t,n=(0,c.Z)(e);try{for(n.s();!(t=n.n()).done;){var r=t.value;this.gapIntersection.observe(r)}}catch(i){n.e(i)}finally{n.f()}this.gaps=e}}},{key:"onSelectionChange",value:function(e){if(this.readSelectionRange()&&!this.delayedAndroidKey){var t=this.view,n=this.selectionRange;if(t.state.facet(Be)?t.root.activeElement==this.dom:k(t.dom,n)){var r=n.anchorNode&&t.docView.nearest(n.anchorNode);r&&r.ignoreEvent(e)||((ee.ie&&ee.ie_version<=11||ee.android&&ee.chrome)&&!t.state.selection.main.empty&&n.focusNode&&w(n.focusNode,n.focusOffset,n.anchorNode,n.anchorOffset)?this.flushSoon():this.flush(!1))}}}},{key:"readSelectionRange",value:function(){var e=this.view.root,t=g(e),n=ee.safari&&11==e.nodeType&&function(){for(var e=document.activeElement;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}()==this.view.contentDOM&&function(e){var t=null;function n(e){e.preventDefault(),e.stopImmediatePropagation(),t=e.getTargetRanges()[0]}if(e.contentDOM.addEventListener("beforeinput",n,!0),document.execCommand("indent"),e.contentDOM.removeEventListener("beforeinput",n,!0),!t)return null;var r=t.startContainer,i=t.startOffset,o=t.endContainer,a=t.endOffset,s=e.docView.domAtPos(e.state.selection.main.anchor);if(w(s.node,s.offset,o,a)){var l=[o,a,r,i];r=l[0],i=l[1],o=l[2],a=l[3]}return{anchorNode:r,anchorOffset:i,focusNode:o,focusOffset:a}}(this.view)||t;return!this.selectionRange.eq(n)&&(this.selectionRange.setRange(n),this.selectionChanged=!0)}},{key:"setSelectionRange",value:function(e,t){this.selectionRange.set(e.node,e.offset,t.node,t.offset),this.selectionChanged=!1}},{key:"listenForScroll",value:function(){this.parentCheck=-1;for(var e=0,t=null,n=this.dom;n;)if(1==n.nodeType)!t&&e=0&&(window.clearTimeout(this.delayedFlush),this.delayedFlush=-1,this.flush())}},{key:"processRecords",value:function(){var e,t=this.queue,n=(0,c.Z)(this.observer.takeRecords());try{for(n.s();!(e=n.n()).done;){var r=e.value;t.push(r)}}catch(f){n.e(f)}finally{n.f()}t.length&&(this.queue=[]);var i,o=-1,a=-1,s=!1,l=(0,c.Z)(t);try{for(l.s();!(i=l.n()).done;){var u=i.value,h=this.readMutation(u);h&&(h.typeOver&&(s=!0),-1==o?(o=h.from,a=h.to):(o=Math.min(h.from,o),a=Math.max(h.to,a)))}}catch(f){l.e(f)}finally{l.f()}return{from:o,to:a,typeOver:s}}},{key:"flush",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];if(!(this.delayedFlush>=0||this.delayedAndroidKey)){e&&this.readSelectionRange();var t=this.processRecords(),n=t.from,r=t.to,i=t.typeOver,o=this.selectionChanged&&k(this.dom,this.selectionRange);if(!(n<0)||o){this.selectionChanged=!1;var a=this.view.state;this.onChange(n,r,i),this.view.state==a&&this.view.update([])}}}},{key:"readMutation",value:function(e){var t=this.view.docView.nearest(e.target);if(!t||t.ignoreMutation(e))return null;if(t.markDirty("attributes"==e.type),"attributes"==e.type&&(t.dirty|=4),"childList"==e.type){var n=Xn(t,e.previousSibling||e.target.previousSibling,-1),r=Xn(t,e.nextSibling||e.target.nextSibling,1);return{from:n?t.posAfter(n):t.posAtStart,to:r?t.posBefore(r):t.posAtEnd,typeOver:!1}}return"characterData"==e.type?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}},{key:"destroy",value:function(){var e,t,n;this.stop(),null===(e=this.intersection)||void 0===e||e.disconnect(),null===(t=this.gapIntersection)||void 0===t||t.disconnect(),null===(n=this.resize)||void 0===n||n.disconnect();var r,i=(0,c.Z)(this.scrollTargets);try{for(i.s();!(r=i.n()).done;){r.value.removeEventListener("scroll",this.onScroll)}}catch(o){i.e(o)}finally{i.f()}window.removeEventListener("scroll",this.onScroll),window.removeEventListener("resize",this.onResize),this.dom.ownerDocument.removeEventListener("selectionchange",this.onSelectionChange),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout)}}]),e}();function Xn(e,t,n){for(;t;){var r=L.get(t);if(r&&r.parent==e)return r;var i=t.parentNode;t=i!=e.dom?i:n>0?t.nextSibling:t.previousSibling}return null}function Yn(e,t,n,r){var i,o,a=e.state.selection.main;if(t>-1){var s=e.docView.domBoundsAround(t,n,0);if(!s||e.state.readOnly)return;var l=s.from,c=s.to,u=e.docView.impreciseHead||e.docView.impreciseAnchor?[]:function(e){var t=[];if(e.root.activeElement!=e.contentDOM)return t;var n=e.observer.selectionRange,r=n.anchorNode,i=n.anchorOffset,o=n.focusNode,a=n.focusOffset;r&&(t.push(new _t(r,i)),o==r&&a==i||t.push(new _t(o,a)));return t}(e),h=new xt(u,e.state);h.readRange(s.startDOM,s.endDOM);var p=a.from,m=null;(8===e.inputState.lastKeyCode&&e.inputState.lastKeyTime>Date.now()-100||ee.android&&h.text.length0&&s>0&&e.charCodeAt(a-1)==t.charCodeAt(s-1);)a--,s--;if("end"==r){n-=a+Math.max(0,o-Math.min(a,s))-o}if(a=a?o-n:0)+(s-a),a=o}else if(s=s?o-n:0)+(a-s),s=o}return{from:o,toA:a,toB:s}}(e.state.doc.sliceString(l,c,wt),h.text,p-l,m);v&&(ee.chrome&&13==e.inputState.lastKeyCode&&v.toB==v.from+2&&"\uffff\uffff"==h.text.slice(v.from,v.toB)&&v.toB--,i={from:l+v.from,to:l+v.toA,insert:d.xv.of(h.text.slice(v.from,v.toB).split(wt))}),o=function(e,t){if(0==e.length)return null;var n=e[0].pos,r=2==e.length?e[1].pos:n;return n>-1&&r>-1?f.jT.single(n+t,r+t):null}(u,l)}else if(e.hasFocus||!e.state.facet(Be)){var g=e.observer.selectionRange,k=e.docView,b=k.impreciseHead,w=k.impreciseAnchor,x=b&&b.node==g.focusNode&&b.offset==g.focusOffset||!y(e.contentDOM,g.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(g.focusNode,g.focusOffset),S=w&&w.node==g.anchorNode&&w.offset==g.anchorOffset||!y(e.contentDOM,g.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(g.anchorNode,g.anchorOffset);x==a.head&&S==a.anchor||(o=f.jT.single(S,x))}if(i||o)if(!i&&r&&!a.empty&&o&&o.main.empty?i={from:a.from,to:a.to,insert:e.state.doc.slice(a.from,a.to)}:i&&i.from>=a.from&&i.to<=a.to&&(i.from!=a.from||i.to!=a.to)&&a.to-a.from-(i.to-i.from)<=4&&(i={from:a.from,to:a.to,insert:e.state.doc.slice(a.from,i.from).append(i.insert).append(e.state.doc.slice(i.to,a.to))}),i){var _=e.state;if(ee.ios&&e.inputState.flushIOSKey(e))return;if(ee.android&&(i.from==a.from&&i.to==a.to&&1==i.insert.length&&2==i.insert.lines&&P(e.contentDOM,"Enter",13)||i.from==a.from-1&&i.to==a.to&&0==i.insert.length&&P(e.contentDOM,"Backspace",8)||i.from==a.from&&i.to==a.to+1&&0==i.insert.length&&P(e.contentDOM,"Delete",46)))return;var C,A=i.insert.toString();if(e.state.facet(Ie).some((function(t){return t(e,i.from,i.to,A)})))return;if(e.inputState.composing>=0&&e.inputState.composing++,i.from>=a.from&&i.to<=a.to&&i.to-i.from>=(a.to-a.from)/3&&(!o||o.main.empty&&o.main.from==i.from+i.insert.length)&&e.inputState.composing<0){var O=a.fromi.to?_.sliceDoc(i.to,a.to):"";C=_.replaceSelection(e.state.toText(O+i.insert.sliceString(0,void 0,e.state.lineBreak)+T))}else{var Z=_.changes(i),E=o&&!_.selection.main.eq(o.main)&&o.main.to<=Z.newLength?o.main:void 0;if(_.selection.ranges.length>1&&e.inputState.composing>=0&&i.to<=a.to&&i.to>=a.to-10){var M=e.state.sliceDoc(i.from,i.to),D=Tt(e)||e.state.doc.lineAt(a.head),I=a.to-i.to,R=a.to-a.from;C=_.changeByRange((function(t){if(t.from==a.from&&t.to==a.to)return{changes:Z,range:E||t.map(Z)};var n=t.to-I,r=n-M.length;if(t.to-t.from!=R||e.state.sliceDoc(r,n)!=M||D&&t.to>=D.from&&t.from<=D.to)return{range:t};var o=_.changes({from:r,to:n,insert:i.insert}),s=t.to-a.to;return{changes:o,range:E?f.jT.range(Math.max(0,E.anchor+s),Math.max(0,E.head+s)):t.map(o)}}))}else C={changes:Z,selection:E&&_.selection.replaceRange(E)}}var z="input.type";e.composing&&(z+=".compose",e.inputState.compositionFirstChange&&(z+=".start",e.inputState.compositionFirstChange=!1)),e.dispatch(C,{scrollIntoView:!0,userEvent:z})}else if(o&&!o.main.eq(a)){var N=!1,L="select";e.inputState.lastSelectionTime>Date.now()-50&&("select"==e.inputState.lastSelectionOrigin&&(N=!0),L=e.inputState.lastSelectionOrigin),e.dispatch({selection:o,scrollIntoView:N,userEvent:L})}}var er=function(){function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,u.Z)(this,e),this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.style.cssText="position: absolute; top: -10000px",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),this._dispatch=n.dispatch||function(e){return t.update([e])},this.dispatch=this.dispatch.bind(this),this.root=n.root||I(n.parent)||document,this.viewState=new Pn(n.state||f.yy.create()),this.plugins=this.state.facet(Ve).map((function(e){return new He(e)}));var r,i=(0,c.Z)(this.plugins);try{for(i.s();!(r=i.n()).done;){var o=r.value;o.update(this)}}catch(a){i.e(a)}finally{i.f()}this.observer=new Kn(this,(function(e,n,r){Yn(t,e,n,r)}),(function(e){t.inputState.runScrollHandlers(t,e),t.observer.intersecting&&t.measure()})),this.inputState=new Ht(this),this.docView=new Ct(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),n.parent&&n.parent.appendChild(this.dom)}return(0,h.Z)(e,[{key:"state",get:function(){return this.viewState.state}},{key:"viewport",get:function(){return this.viewState.viewport}},{key:"visibleRanges",get:function(){return this.viewState.visibleRanges}},{key:"inView",get:function(){return this.viewState.inView}},{key:"composing",get:function(){return this.inputState.composing>0}},{key:"compositionStarted",get:function(){return this.inputState.composing>=0}},{key:"dispatch",value:function(){var e;this._dispatch(1==arguments.length&&(arguments.length<=0?void 0:arguments[0])instanceof f.YW?arguments.length<=0?void 0:arguments[0]:(e=this.state).update.apply(e,arguments))}},{key:"update",value:function(e){if(0!=this.updateState)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");var t,n,r=!1,i=this.state,o=(0,c.Z)(e);try{for(o.s();!(n=o.n()).done;){var a=n.value;if(a.startState!=i)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");i=a.state}}catch(k){o.e(k)}finally{o.f()}if(this.destroyed)this.viewState.state=i;else{if(i.facet(f.yy.phrases)!=this.state.facet(f.yy.phrases))return this.setState(i);t=new Ye(this,i,e);var s=this.viewState.scrollTarget;try{this.updateState=2;var l,u=(0,c.Z)(e);try{for(u.s();!(l=u.n()).done;){var h=l.value;if(s&&(s=s.map(h.changes)),h.scrollIntoView){var d=h.state.selection.main;s=new Ne(d.empty?d:f.jT.cursor(d.head,d.head>d.anchor?-1:1))}var p,m=(0,c.Z)(h.effects);try{for(m.s();!(p=m.n()).done;){var v=p.value;v.is(Re)?s=new Ne(v.value):v.is(ze)?s=new Ne(v.value,"center"):v.is(Le)&&(s=v.value)}}catch(k){m.e(k)}finally{m.f()}}}catch(k){u.e(k)}finally{u.f()}this.viewState.update(t,s),this.bidiCache=ir.update(this.bidiCache,t.changes),t.empty||(this.updatePlugins(t),this.inputState.update(t)),r=this.docView.update(t),this.state.facet(Ke)!=this.styleModules&&this.mountStyles(),this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(r,e.some((function(e){return e.isUserEvent("select.pointer")})))}finally{this.updateState=0}if(t.startState.facet(qn)!=t.state.facet(qn)&&(this.viewState.mustMeasureContent=!0),(r||s||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!t.empty){var g,y=(0,c.Z)(this.state.facet(Pe));try{for(y.s();!(g=y.n()).done;){(0,g.value)(t)}}catch(k){y.e(k)}finally{y.f()}}}}},{key:"setState",value:function(e){if(0!=this.updateState)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed)this.viewState.state=e;else{this.updateState=2;var t=this.hasFocus;try{var n,r=(0,c.Z)(this.plugins);try{for(r.s();!(n=r.n()).done;){n.value.destroy(this)}}catch(a){r.e(a)}finally{r.f()}this.viewState=new Pn(e),this.plugins=e.facet(Ve).map((function(e){return new He(e)})),this.pluginMap.clear();var i,o=(0,c.Z)(this.plugins);try{for(o.s();!(i=o.n()).done;){i.value.update(this)}}catch(a){o.e(a)}finally{o.f()}this.docView=new Ct(this),this.inputState.ensureHandlers(this),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}}},{key:"updatePlugins",value:function(e){var t=e.startState.facet(Ve),n=e.state.facet(Ve);if(t!=n){var r,i=[],o=(0,c.Z)(n);try{for(o.s();!(r=o.n()).done;){var a=r.value,s=t.indexOf(a);if(s<0)i.push(new He(a));else{var l=this.plugins[s];l.mustUpdate=e,i.push(l)}}}catch(v){o.e(v)}finally{o.f()}var u,h=(0,c.Z)(this.plugins);try{for(h.s();!(u=h.n()).done;){var f=u.value;f.mustUpdate!=e&&f.destroy(this)}}catch(v){h.e(v)}finally{h.f()}this.plugins=i,this.pluginMap.clear(),this.inputState.ensureHandlers(this)}else{var d,p=(0,c.Z)(this.plugins);try{for(p.s();!(d=p.n()).done;){d.value.mustUpdate=e}}catch(v){p.e(v)}finally{p.f()}}for(var m=0;m0&&void 0!==arguments[0])||arguments[0];if(!this.destroyed){this.measureScheduled>-1&&cancelAnimationFrame(this.measureScheduled),this.measureScheduled=0,t&&this.observer.flush();var n=null;try{for(var r=0;;r++){this.updateState=1;var i=this.viewport,o=this.viewState.measure(this);if(!o&&!this.measureRequests.length&&null==this.viewState.scrollTarget)break;if(r>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}var a=[];if(!(4&o)){var s=[a,this.measureRequests];this.measureRequests=s[0],a=s[1]}var l=a.map((function(t){try{return t.read(e)}catch(n){return Je(e.state,n),rr}})),u=new Ye(this,this.state),h=!1,f=!1;u.flags|=o,n?n.flags|=o:n=u,this.updateState=2,u.empty||(this.updatePlugins(u),this.inputState.update(u),this.updateAttrs(),h=this.docView.update(u));for(var d=0;d-1&&this.measure(!1)}},{key:"requestMeasure",value:function(e){var t=this;if(this.measureScheduled<0&&(this.measureScheduled=requestAnimationFrame((function(){return t.measure()}))),e){if(null!=e.key)for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:0;return this.lineBlockAt(e).moveY(t+this.viewState.paddingTop)}},{key:"lineBlockAt",value:function(e){return this.viewState.lineBlockAt(e)}},{key:"contentHeight",get:function(){return this.viewState.contentHeight}},{key:"moveByChar",value:function(e,t,n){return Wt(this,e,jt(this,e,t,n))}},{key:"moveByGroup",value:function(e,t){var n=this;return Wt(this,e,jt(this,e,t,(function(t){return function(e,t,n){var r=e.state.charCategorizer(t),i=r(n);return function(e){var t=r(e);return i==f.D0.Space&&(i=t),i==t}}(n,e.head,t)})))}},{key:"moveToLineBoundary",value:function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return Vt(this,e,t,n)}},{key:"moveVertically",value:function(e,t,n){return Wt(this,e,function(e,t,n,r){var i=t.head,o=n?1:-1;if(i==(n?e.state.doc.length:0))return f.jT.cursor(i,t.assoc);var a,s=t.goalColumn,l=e.contentDOM.getBoundingClientRect(),c=e.coordsAtPos(i),u=e.documentTop;if(c)null==s&&(s=c.left-l.left),a=o<0?c.top:c.bottom;else{var h=e.viewState.lineBlockAt(i-u);null==s&&(s=Math.min(l.right-l.left,e.defaultCharacterWidth*(i-h.from))),a=(o<0?h.top:h.bottom)+u}for(var d=l.left+s,p=null!==r&&void 0!==r?r:e.defaultLineHeight>>1,m=0;;m+=10){var v=a+(p+m)*o,g=qt(e,{x:d,y:v},!1,o);if(vl.bottom||(o<0?gi))return f.jT.cursor(g,t.assoc,void 0,s)}}(this,e,t,n))}},{key:"scrollPosIntoView",value:function(e){this.dispatch({effects:Re.of(f.jT.cursor(e))})}},{key:"domAtPos",value:function(e){return this.docView.domAtPos(e)}},{key:"posAtDOM",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this.docView.posFromDOM(e,t)}},{key:"posAtCoords",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return this.readMeasured(),qt(this,e,t)}},{key:"coordsAtPos",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;this.readMeasured();var n=this.docView.coordsAt(e,t);if(!n||n.left==n.right)return n;var r=this.state.doc.lineAt(e),i=this.bidiSpans(r),o=i[mt.find(i,e-r.from,-1,t)];return A(n,o.dir==et.LTR==t>0)}},{key:"defaultCharacterWidth",get:function(){return this.viewState.heightOracle.charWidth}},{key:"defaultLineHeight",get:function(){return this.viewState.heightOracle.lineHeight}},{key:"textDirection",get:function(){return this.viewState.heightOracle.direction}},{key:"lineWrapping",get:function(){return this.viewState.heightOracle.lineWrapping}},{key:"bidiSpans",value:function(e){if(e.length>tr)return yt(e.length);var t,n=this.textDirection,r=(0,c.Z)(this.bidiCache);try{for(r.s();!(t=r.n()).done;){var i=t.value;if(i.from==e.from&&i.dir==n)return i.order}}catch(a){r.e(a)}finally{r.f()}var o=gt(e.text,this.textDirection);return this.bidiCache.push(new ir(e.from,e.to,n,o)),o}},{key:"hasFocus",get:function(){var e;return(document.hasFocus()||ee.safari&&(null===(e=this.inputState)||void 0===e?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}},{key:"focus",value:function(){var e=this;this.observer.ignore((function(){M(e.contentDOM),e.docView.updateSelection()}))}},{key:"destroy",value:function(){var e,t=(0,c.Z)(this.plugins);try{for(t.s();!(e=t.n()).done;){e.value.destroy(this)}}catch(n){t.e(n)}finally{t.f()}this.plugins=[],this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}}],[{key:"scrollIntoView",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Le.of(new Ne("number"==typeof e?f.jT.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}},{key:"domEventHandlers",value:function(e){return je.define((function(){return{}}),{eventHandlers:e})}},{key:"theme",value:function(e,t){var n=p.V.newName(),r=[qn.of(n),Ke.of(Hn(".".concat(n),e))];return t&&t.dark&&r.push($n.of(!0)),r}},{key:"baseTheme",value:function(e){return f.Wl.lowest(Ke.of(Hn("."+Fn,e,Wn)))}}]),e}();er.scrollTo=Re,er.centerOn=ze,er.styleModule=Ke,er.inputHandler=Ie,er.exceptionSink=De,er.updateListener=Pe,er.editable=Be,er.mouseSelectionStyle=Me,er.dragMovesSelection=Ee,er.clickAddsSelectionRange=Ze,er.decorations=Ge,er.darkTheme=$n,er.contentAttributes=Qe,er.editorAttributes=Ue,er.lineWrapping=er.contentAttributes.of({class:"cm-lineWrapping"}),er.announce=f.Py.define();var tr=4096;function nr(e,t){return(null==e?t.contentDOM.getBoundingClientRect().top:e)+t.viewState.paddingTop}var rr={},ir=function(){function e(t,n,r,i){(0,u.Z)(this,e),this.from=t,this.to=n,this.dir=r,this.order=i}return(0,h.Z)(e,null,[{key:"update",value:function(t,n){if(n.empty)return t;for(var r=[],i=t.length?t[t.length-1].dir:et.LTR,o=Math.max(0,t.length-10);o=0;i--){var o=r[i],a="function"==typeof o?o(e):o;a&&fe(a,n)}return n}var ar=ee.mac?"mac":ee.windows?"win":ee.linux?"linux":"key";function sr(e,t){var n,r,i,o,a=e.split(/-(?!$)/),s=a[a.length-1];"Space"==s&&(s=" ");for(var l=0;l1&&void 0!==arguments[1]?arguments[1]:ar,r=Object.create(null),i=Object.create(null),o=function(e,t){var n=i[e];if(null==n)i[e]=t;else if(n!=t)throw new Error("Key binding "+e+" is used both as a regular binding and as a multi-stroke prefix")},a=function(e,t,i,a){for(var s=r[e]||(r[e]=Object.create(null)),l=t.split(/ (?!$)/).map((function(e){return sr(e,n)})),c=function(t){var n=l.slice(0,t).join(" ");o(n,!0),s[n]||(s[n]={preventDefault:!0,commands:[function(t){var r=pr={view:t,prefix:n,scope:e};return setTimeout((function(){pr==r&&(pr=null)}),mr),!0}]})},u=1;u0&&void 0!==arguments[0]?arguments[0]:{};return[yr.of(e),wr,Sr]}var br=function(){function e(t,n,r,i,o){(0,u.Z)(this,e),this.left=t,this.top=n,this.width=r,this.height=i,this.className=o}return(0,h.Z)(e,[{key:"draw",value:function(){var e=document.createElement("div");return e.className=this.className,this.adjust(e),e}},{key:"adjust",value:function(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width>=0&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}},{key:"eq",value:function(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}}]),e}(),wr=je.fromClass(function(){function e(t){(0,u.Z)(this,e),this.view=t,this.rangePieces=[],this.cursors=[],this.measureReq={read:this.readPos.bind(this),write:this.drawSel.bind(this)},this.selectionLayer=t.scrollDOM.appendChild(document.createElement("div")),this.selectionLayer.className="cm-selectionLayer",this.selectionLayer.setAttribute("aria-hidden","true"),this.cursorLayer=t.scrollDOM.appendChild(document.createElement("div")),this.cursorLayer.className="cm-cursorLayer",this.cursorLayer.setAttribute("aria-hidden","true"),t.requestMeasure(this.measureReq),this.setBlinkRate()}return(0,h.Z)(e,[{key:"setBlinkRate",value:function(){this.cursorLayer.style.animationDuration=this.view.state.facet(yr).cursorBlinkRate+"ms"}},{key:"update",value:function(e){var t=e.startState.facet(yr)!=e.state.facet(yr);(t||e.selectionSet||e.geometryChanged||e.viewportChanged)&&this.view.requestMeasure(this.measureReq),e.transactions.some((function(e){return e.scrollIntoView}))&&(this.cursorLayer.style.animationName="cm-blink"==this.cursorLayer.style.animationName?"cm-blink2":"cm-blink"),t&&this.setBlinkRate()}},{key:"readPos",value:function(){var e,t=this,n=this.view.state,r=n.facet(yr),i=n.selection.ranges.map((function(e){return e.empty?[]:function(e,t){if(t.to<=e.viewport.from||t.from>=e.viewport.to)return[];var n=Math.max(t.from,e.viewport.from),r=Math.min(t.to,e.viewport.to),i=e.textDirection==et.LTR,o=e.contentDOM,a=o.getBoundingClientRect(),s=_r(e),l=window.getComputedStyle(o.firstChild),u=a.left+parseInt(l.paddingLeft)+Math.min(0,parseInt(l.textIndent)),h=a.right-parseInt(l.paddingRight),f=Ar(e,n),d=Ar(e,r),p=f.type==ve.Text?f:null,m=d.type==ve.Text?d:null;e.lineWrapping&&(p&&(p=Cr(e,n,p)),m&&(m=Cr(e,r,m)));if(p&&m&&p.from==m.from)return b(w(t.from,t.to,p));var v=p?w(t.from,null,p):x(f,!1),g=m?w(null,t.to,m):x(d,!0),y=[];return(p||f).to<(m||d).from-1?y.push(k(u,v.bottom,h,g.top)):v.bottomd&&v.from=y)break;_>g&&l(Math.max(S,g),null==t&&S<=d,Math.min(_,y),null==n&&_>=p,x.dir)}}catch(C){w.e(C)}finally{w.f()}if((g=b.to+1)>=y)break}}}catch(C){m.e(C)}finally{m.f()}return 0==s.length&&l(d,null==t,p,null==n,e.textDirection),{top:o,bottom:a,horizontal:s}}function x(e,t){var n=a.top+(t?e.top:e.bottom);return{top:n,bottom:n,horizontal:[]}}}(t.view,e)})).reduce((function(e,t){return e.concat(t)})),o=[],a=(0,c.Z)(n.selection.ranges);try{for(a.s();!(e=a.n()).done;){var s=e.value,l=s==n.selection.main;if(s.empty?!l||gr:r.drawRangeCursor){var u=Or(this.view,s,l);u&&o.push(u)}}}catch(h){a.e(h)}finally{a.f()}return{rangePieces:i,cursors:o}}},{key:"drawSel",value:function(e){var t=this,n=e.rangePieces,r=e.cursors;if(n.length!=this.rangePieces.length||n.some((function(e,n){return!e.eq(t.rangePieces[n])}))){this.selectionLayer.textContent="";var i,o=(0,c.Z)(n);try{for(o.s();!(i=o.n()).done;){var a=i.value;this.selectionLayer.appendChild(a.draw())}}catch(f){o.e(f)}finally{o.f()}this.rangePieces=n}if(r.length!=this.cursors.length||r.some((function(e,n){return!e.eq(t.cursors[n])}))){var s=this.cursorLayer.children;if(s.length!==r.length){this.cursorLayer.textContent="";var l,u=(0,c.Z)(r);try{for(u.s();!(l=u.n()).done;){var h=l.value;this.cursorLayer.appendChild(h.draw())}}catch(f){u.e(f)}finally{u.f()}}else r.forEach((function(e,t){return e.adjust(s[t])}));this.cursors=r}}},{key:"destroy",value:function(){this.selectionLayer.remove(),this.cursorLayer.remove()}}]),e}()),xr={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};gr&&(xr[".cm-line"].caretColor="transparent !important");var Sr=f.Wl.highest(er.theme(xr));function _r(e){var t=e.scrollDOM.getBoundingClientRect();return{left:(e.textDirection==et.LTR?t.left:t.right-e.scrollDOM.clientWidth)-e.scrollDOM.scrollLeft,top:t.top-e.scrollDOM.scrollTop}}function Cr(e,t,n){var r=f.jT.cursor(t);return{from:Math.max(n.from,e.moveToLineBoundary(r,!1,!0).from),to:Math.min(n.to,e.moveToLineBoundary(r,!0,!0).from),type:ve.Text}}function Ar(e,t){var n=e.lineBlockAt(t);if(Array.isArray(n.type)){var r,i=(0,c.Z)(n.type);try{for(i.s();!(r=i.n()).done;){var o=r.value;if(o.to>t||o.to==t&&(o.to==n.to||o.type==ve.Text))return o}}catch(a){i.e(a)}finally{i.f()}}return n}function Or(e,t,n){var r=e.coordsAtPos(t.head,t.assoc||1);if(!r)return null;var i=_r(e);return new br(r.left-i.left,r.top-i.top,-1,r.bottom-r.top,n?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary")}var Tr=f.Py.define({map:function(e,t){return null==e?null:t.mapPos(e)}}),Zr=f.QQ.define({create:function(){return null},update:function(e,t){return null!=e&&(e=t.changes.mapPos(e)),t.effects.reduce((function(e,t){return t.is(Tr)?t.value:e}),e)}}),Er=je.fromClass(function(){function e(t){(0,u.Z)(this,e),this.view=t,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}return(0,h.Z)(e,[{key:"update",value:function(e){var t,n=e.state.field(Zr);null==n?null!=this.cursor&&(null===(t=this.cursor)||void 0===t||t.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(e.startState.field(Zr)!=n||e.docChanged||e.geometryChanged)&&this.view.requestMeasure(this.measureReq))}},{key:"readPos",value:function(){var e=this.view.state.field(Zr),t=null!=e&&this.view.coordsAtPos(e);if(!t)return null;var n=this.view.scrollDOM.getBoundingClientRect();return{left:t.left-n.left+this.view.scrollDOM.scrollLeft,top:t.top-n.top+this.view.scrollDOM.scrollTop,height:t.bottom-t.top}}},{key:"drawCursor",value:function(e){this.cursor&&(e?(this.cursor.style.left=e.left+"px",this.cursor.style.top=e.top+"px",this.cursor.style.height=e.height+"px"):this.cursor.style.left="-100000px")}},{key:"destroy",value:function(){this.cursor&&this.cursor.remove()}},{key:"setDropPos",value:function(e){this.view.state.field(Zr)!=e&&this.view.dispatch({effects:Tr.of(e)})}}]),e}(),{eventHandlers:{dragover:function(e){this.setDropPos(this.view.posAtCoords({x:e.clientX,y:e.clientY}))},dragleave:function(e){e.target!=this.view.contentDOM&&this.view.contentDOM.contains(e.relatedTarget)||this.setDropPos(null)},dragend:function(){this.setDropPos(null)},drop:function(){this.setDropPos(null)}}});function Mr(){return[Zr,Er]}function Dr(e,t,n,r,i){t.lastIndex=0;for(var o,a=e.iterRange(n,r),s=n;!a.next().done;s+=a.value.length)if(!a.lineBreak)for(;o=t.exec(a.value);)i(s+o.index,s+o.index+o[0].length,o)}var Pr=function(){function e(t){(0,u.Z)(this,e);var n=t.regexp,r=t.decoration,i=t.boundary,o=t.maxLength,a=void 0===o?1e3:o;if(!n.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");this.regexp=n,this.getDeco="function"==typeof r?r:function(){return r},this.boundary=i,this.maxLength=a}return(0,h.Z)(e,[{key:"createDeco",value:function(e){var t,n=this,r=new m.f_,i=(0,c.Z)(function(e,t){var n=e.visibleRanges;if(1==n.length&&n[0].from==e.viewport.from&&n[0].to==e.viewport.to)return n;var r,i=[],o=(0,c.Z)(n);try{for(o.s();!(r=o.n()).done;){var a=r.value,s=a.from,l=a.to;s=Math.max(e.state.doc.lineAt(s).from,s-t),l=Math.min(e.state.doc.lineAt(l).to,l+t),i.length&&i[i.length-1].to>=s?i[i.length-1].to=l:i.push({from:s,to:l})}}catch(u){o.e(u)}finally{o.f()}return i}(e,this.maxLength));try{for(i.s();!(t=i.n()).done;){var o=t.value,a=o.from,s=o.to;Dr(e.state.doc,this.regexp,a,s,(function(t,i,o){return r.add(t,i,n.getDeco(o,e,t))}))}}catch(l){i.e(l)}finally{i.f()}return r.finish()}},{key:"updateDeco",value:function(e,t){var n=1e9,r=-1;return e.docChanged&&e.changes.iterChanges((function(t,i,o,a){a>e.view.viewport.from&&o1e3?this.createDeco(e.view):r>-1?this.updateRange(e.view,t.map(e.changes),n,r):t}},{key:"updateRange",value:function(e,t,n,r){var i,o=this,a=(0,c.Z)(e.visibleRanges);try{for(a.s();!(i=a.n()).done;){var s=i.value,l=Math.max(s.from,n),u=Math.min(s.to,r);u>l&&function(){var n=e.state.doc.lineAt(l),r=n.ton.from;l--)if(o.boundary.test(n.text[l-1-n.from])){i=l;break}for(;ua},add:c})}()}}catch(h){a.e(h)}finally{a.f()}return t}}]),e}(),Ir=null!=/x/.unicode?"gu":"g",Rr=new RegExp("[\0-\b\n-\x1f\x7f-\x9f\xad\u061c\u200b\u200e\u200f\u2028\u2029\u202d\u202e\ufeff\ufff9-\ufffc]",Ir),zr={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",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"},Nr=null;var Lr=f.r$.define({combine:function(e){var t=(0,f.BO)(e,{render:null,specialChars:Rr,addSpecialChars:null});return(t.replaceTabs=!function(){var e;if(null==Nr&&"undefined"!=typeof document&&document.body){var t=document.body.style;Nr=null!=(null!==(e=t.tabSize)&&void 0!==e?e:t.MozTabSize)}return Nr||!1}())&&(t.specialChars=new RegExp("\t|"+t.specialChars.source,Ir)),t.addSpecialChars&&(t.specialChars=new RegExp(t.specialChars.source+"|"+t.addSpecialChars.source,Ir)),t}});function Jr(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return[Lr.of(e),qr()]}var Br=null;function qr(){return Br||(Br=je.fromClass(function(){function e(t){(0,u.Z)(this,e),this.view=t,this.decorations=ge.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(t.state.facet(Lr)),this.decorations=this.decorator.createDeco(t)}return(0,h.Z)(e,[{key:"makeDecorator",value:function(e){var t=this;return new Pr({regexp:e.specialChars,decoration:function(n,r,i){var o=r.state.doc,a=(0,d.gm)(n[0],0);if(9==a){var s=o.lineAt(i),l=r.state.tabSize,c=(0,d.IS)(s.text,l,i-s.from);return ge.replace({widget:new Fr((l-c%l)*t.view.defaultCharacterWidth)})}return t.decorationCache[a]||(t.decorationCache[a]=ge.replace({widget:new $r(e,a)}))},boundary:e.replaceTabs?void 0:/[^]/})}},{key:"update",value:function(e){var t=e.state.facet(Lr);e.startState.facet(Lr)!=t?(this.decorator=this.makeDecorator(t),this.decorations=this.decorator.createDeco(e.view)):this.decorations=this.decorator.updateDeco(e,this.decorations)}}]),e}(),{decorations:function(e){return e.decorations}}))}var $r=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e,r){var i;return(0,u.Z)(this,n),(i=t.call(this)).options=e,i.code=r,i}return(0,h.Z)(n,[{key:"eq",value:function(e){return e.code==this.code}},{key:"toDOM",value:function(e){var t,n=(t=this.code)>=32?"\u2022":10==t?"\u2424":String.fromCharCode(9216+t),r=e.state.phrase("Control character")+" "+(zr[this.code]||"0x"+this.code.toString(16)),i=this.options.render&&this.options.render(this.code,r,n);if(i)return i;var o=document.createElement("span");return o.textContent=n,o.title=r,o.setAttribute("aria-label",r),o.className="cm-specialChar",o}},{key:"ignoreEvent",value:function(){return!1}}]),n}(me),Fr=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e){var r;return(0,u.Z)(this,n),(r=t.call(this)).width=e,r}return(0,h.Z)(n,[{key:"eq",value:function(e){return e.width==this.width}},{key:"toDOM",value:function(){var e=document.createElement("span");return e.textContent="\t",e.className="cm-tab",e.style.width=this.width+"px",e}},{key:"ignoreEvent",value:function(){return!1}}]),n}(me);function Vr(){return Wr}var jr=ge.line({class:"cm-activeLine"}),Wr=je.fromClass(function(){function e(t){(0,u.Z)(this,e),this.decorations=this.getDeco(t)}return(0,h.Z)(e,[{key:"update",value:function(e){(e.docChanged||e.selectionSet)&&(this.decorations=this.getDeco(e.view))}},{key:"getDeco",value:function(e){var t,n=-1,r=[],i=(0,c.Z)(e.state.selection.ranges);try{for(i.s();!(t=i.n()).done;){var o=t.value;if(!o.empty)return ge.none;var a=e.lineBlockAt(o.head);a.from>n&&(r.push(jr.range(a.from)),n=a.from)}}catch(s){i.e(s)}finally{i.f()}return ge.set(r)}}]),e}(),{decorations:function(e){return e.decorations}}),Hr=function(e){(0,a.Z)(n,e);var t=(0,s.Z)(n);function n(e){var r;return(0,u.Z)(this,n),(r=t.call(this)).content=e,r}return(0,h.Z)(n,[{key:"toDOM",value:function(){var e=document.createElement("span");return e.className="cm-placeholder",e.style.pointerEvents="none",e.appendChild("string"==typeof this.content?document.createTextNode(this.content):this.content),"string"==typeof this.content?e.setAttribute("aria-label","placeholder "+this.content):e.setAttribute("aria-hidden","true"),e}},{key:"ignoreEvent",value:function(){return!1}}]),n}(me);function Ur(e){return je.fromClass(function(){function t(n){(0,u.Z)(this,t),this.view=n,this.placeholder=ge.set([ge.widget({widget:new Hr(e),side:1}).range(0)])}return(0,h.Z)(t,[{key:"decorations",get:function(){return this.view.state.doc.length?ge.none:this.placeholder}}]),t}(),{decorations:function(e){return e.decorations}})}}}]); -//# sourceMappingURL=codemirror-vendor.2a167f97.js.map \ No newline at end of file diff --git a/static/js/codemirror-vendor.2a167f97.js.map b/static/js/codemirror-vendor.2a167f97.js.map deleted file mode 100644 index fd676fba1..000000000 --- a/static/js/codemirror-vendor.2a167f97.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/codemirror-vendor.2a167f97.js","mappings":"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BACPxyD,KAAM,OACL,CACD9G,MAAO,kBACPs5D,MAAO,UACPxyD,KAAM,OACL,CACD9G,MAAO,SACPs5D,MAAO,yBACN,CACDt5D,MAAO,YACPs5D,MAAO,MACPxyD,KAAM,QACL,CACD9G,MAAO,YACPs5D,MAAO,MACPxyD,KAAM,SACL,CACD9G,MAAO,SACPs5D,MAAO,IACPxyD,KAAM,WACL,CACD9G,MAAO,SACPs5D,MAAO,IACPxyD,KAAM,YACL,CACD9G,MAAO,SACPs5D,MAAO,IACPxyD,KAAM,MACL,CACD9G,MAAO,SACPs5D,MAAO,OACPxyD,KAAM,SACL,CACD9G,MAAO,SACPs5D,MAAO,KACPxyD,KAAM,WACL,CACD9G,MAAO,SACPs5D,MAAO,kHACPxyD,KAAM,OACL,CACD9G,MAAO,SACPs5D,MAAO,+JACN,CACDt5D,MAAO,QACPs5D,MAAO,SACN,CACDt5D,MAAO,QACPs5D,MAAO,UACPxyD,KAAM,OACL,CACD9G,MAAO,kBACPs5D,MAAO,QACN,CACDt5D,MAAO,UACPs5D,MAAO,SAGX+H,QAAS,CACP,CACErhE,MAAO,SACPs5D,MAAO,qBACPxyD,KAAM,SACL,CACD9G,MAAO,SACPs5D,MAAO,UACN,CACDt5D,MAAO,UACPs5D,MAAO,gBACN,CACDt5D,MAAO,SACPs5D,MAAO,SAGX3vD,IAAK,CACH,CACE3J,MAAO,kBACPs5D,MAAO,WACN,CACDt5D,MAAO,eACPs5D,MAAOjb,EACPv3C,KAAM,SACL,CACD9G,MAAO,UACPs5D,MAAO,GACPxyD,KAAM,UAGVuyB,QAAS,CACP,CACEr5B,MAAO,aACPs5D,MAAO,UACPxyD,KAAM,SACL,CACD9G,MAAO,aACPs5D,MAAO,OAGXgI,KAAM,CACJ,CACEthE,MAAO,SACPs5D,MAAO,SACPxyD,KAAM,OACLs6D,GAELG,MAAO,CACL,CACEvhE,MAAO,SACPs5D,MAAO,SACPxyD,KAAM,OACLs6D,GAELI,QAAS,CACP,CACExhE,MAAO,SACPs5D,MAAO,gCACPxyD,KAAM,OACLs6D,GAELK,SAAU,CACR,CACEzhE,MAAO,SACPs5D,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","sources":["../node_modules/@codemirror/autocomplete/dist/index.js","../node_modules/@codemirror/history/dist/index.js","../node_modules/@codemirror/gutter/dist/index.js","../node_modules/@codemirror/fold/dist/index.js","../node_modules/@codemirror/closebrackets/dist/index.js","../node_modules/@codemirror/panel/dist/index.js","../node_modules/@codemirror/search/dist/index.js","../node_modules/@codemirror/comment/dist/index.js","../node_modules/@codemirror/rectangular-selection/dist/index.js","../node_modules/@codemirror/lint/dist/index.js","../node_modules/@codemirror/basic-setup/dist/index.js","../node_modules/@codemirror/commands/dist/index.js","../node_modules/@codemirror/highlight/dist/index.js","../node_modules/@codemirror/lang-cpp/dist/index.js","../node_modules/@codemirror/lang-css/dist/index.js","../node_modules/@codemirror/lang-html/dist/index.js","../node_modules/@codemirror/lang-java/dist/index.js","../node_modules/@codemirror/lang-javascript/dist/index.js","../node_modules/@codemirror/lang-json/dist/index.js","../node_modules/@codemirror/lang-lezer/dist/index.js","../node_modules/@codemirror/lang-markdown/dist/index.js","../node_modules/@codemirror/lang-php/dist/index.js","../node_modules/@codemirror/lang-python/dist/index.js","../node_modules/@codemirror/lang-rust/dist/index.js","../node_modules/@codemirror/lang-sql/dist/index.js","../node_modules/@codemirror/lang-xml/dist/index.js","../node_modules/@codemirror/language/dist/index.js","../node_modules/@codemirror/legacy-modes/mode/brainfuck.js","../node_modules/@codemirror/legacy-modes/mode/clojure.js","../node_modules/@codemirror/legacy-modes/mode/coffeescript.js","../node_modules/@codemirror/legacy-modes/mode/simple-mode.js","../node_modules/@codemirror/legacy-modes/mode/dockerfile.js","../node_modules/@codemirror/legacy-modes/mode/erlang.js","../node_modules/@codemirror/legacy-modes/mode/go.js","../node_modules/@codemirror/legacy-modes/mode/julia.js","../node_modules/@codemirror/legacy-modes/mode/livescript.js","../node_modules/@codemirror/legacy-modes/mode/lua.js","../node_modules/@codemirror/legacy-modes/mode/nginx.js","../node_modules/@codemirror/legacy-modes/mode/pascal.js","../node_modules/@codemirror/legacy-modes/mode/perl.js","../node_modules/@codemirror/legacy-modes/mode/powershell.js","../node_modules/@codemirror/legacy-modes/mode/r.js","../node_modules/@codemirror/legacy-modes/mode/ruby.js","../node_modules/@codemirror/legacy-modes/mode/scheme.js","../node_modules/@codemirror/legacy-modes/mode/shell.js","../node_modules/@codemirror/legacy-modes/mode/stylus.js","../node_modules/@codemirror/legacy-modes/mode/swift.js","../node_modules/@codemirror/legacy-modes/mode/tcl.js","../node_modules/@codemirror/legacy-modes/mode/toml.js","../node_modules/@codemirror/legacy-modes/mode/vb.js","../node_modules/@codemirror/legacy-modes/mode/vbscript.js","../node_modules/@codemirror/legacy-modes/mode/yaml.js","../node_modules/@codemirror/matchbrackets/dist/index.js","../node_modules/@codemirror/rangeset/dist/index.js","../node_modules/@codemirror/state/dist/index.js","../node_modules/@codemirror/stream-parser/dist/index.js","../node_modules/@codemirror/text/dist/index.js","../node_modules/@codemirror/theme-one-dark/dist/index.js","../node_modules/@codemirror/tooltip/dist/index.js","../node_modules/@codemirror/view/dist/index.js"],"sourcesContent":["import { Annotation, Facet, combineConfig, StateEffect, StateField, Prec, EditorSelection, Text, MapMode } from '@codemirror/state';\nimport { Direction, logException, EditorView, ViewPlugin, Decoration, WidgetType, keymap } from '@codemirror/view';\nimport { showTooltip, getTooltip } from '@codemirror/tooltip';\nimport { syntaxTree, indentUnit } from '@codemirror/language';\nimport { codePointAt, codePointSize, fromCodePoint } from '@codemirror/text';\n\n/**\nAn instance of this is passed to completion source functions.\n*/\nclass CompletionContext {\n /**\n Create a new completion context. (Mostly useful for testing\n completion sources—in the editor, the extension will create\n these for you.)\n */\n constructor(\n /**\n The editor state that the completion happens in.\n */\n state, \n /**\n The position at which the completion is happening.\n */\n pos, \n /**\n Indicates whether completion was activated explicitly, or\n implicitly by typing. The usual way to respond to this is to\n only return completions when either there is part of a\n completable entity before the cursor, or `explicit` is true.\n */\n explicit) {\n this.state = state;\n this.pos = pos;\n this.explicit = explicit;\n /**\n @internal\n */\n this.abortListeners = [];\n }\n /**\n Get the extent, content, and (if there is a token) type of the\n token before `this.pos`.\n */\n tokenBefore(types) {\n let token = syntaxTree(this.state).resolveInner(this.pos, -1);\n while (token && types.indexOf(token.name) < 0)\n token = token.parent;\n return token ? { from: token.from, to: this.pos,\n text: this.state.sliceDoc(token.from, this.pos),\n type: token.type } : null;\n }\n /**\n Get the match of the given expression directly before the\n cursor.\n */\n matchBefore(expr) {\n let line = this.state.doc.lineAt(this.pos);\n let start = Math.max(line.from, this.pos - 250);\n let str = line.text.slice(start - line.from, this.pos - line.from);\n let found = str.search(ensureAnchor(expr, false));\n return found < 0 ? null : { from: start + found, to: this.pos, text: str.slice(found) };\n }\n /**\n Yields true when the query has been aborted. Can be useful in\n asynchronous queries to avoid doing work that will be ignored.\n */\n get aborted() { return this.abortListeners == null; }\n /**\n Allows you to register abort handlers, which will be called when\n the query is\n [aborted](https://codemirror.net/6/docs/ref/#autocomplete.CompletionContext.aborted).\n */\n addEventListener(type, listener) {\n if (type == \"abort\" && this.abortListeners)\n this.abortListeners.push(listener);\n }\n}\nfunction toSet(chars) {\n let flat = Object.keys(chars).join(\"\");\n let words = /\\w/.test(flat);\n if (words)\n flat = flat.replace(/\\w/g, \"\");\n return `[${words ? \"\\\\w\" : \"\"}${flat.replace(/[^\\w\\s]/g, \"\\\\$&\")}]`;\n}\nfunction prefixMatch(options) {\n let first = Object.create(null), rest = Object.create(null);\n for (let { label } of options) {\n first[label[0]] = true;\n for (let i = 1; i < label.length; i++)\n rest[label[i]] = true;\n }\n let source = toSet(first) + toSet(rest) + \"*$\";\n return [new RegExp(\"^\" + source), new RegExp(source)];\n}\n/**\nGiven a a fixed array of options, return an autocompleter that\ncompletes them.\n*/\nfunction completeFromList(list) {\n let options = list.map(o => typeof o == \"string\" ? { label: o } : o);\n let [span, match] = options.every(o => /^\\w+$/.test(o.label)) ? [/\\w*$/, /\\w+$/] : prefixMatch(options);\n return (context) => {\n let token = context.matchBefore(match);\n return token || context.explicit ? { from: token ? token.from : context.pos, options, span } : null;\n };\n}\n/**\nWrap the given completion source so that it will only fire when the\ncursor is in a syntax node with one of the given names.\n*/\nfunction ifIn(nodes, source) {\n return (context) => {\n for (let pos = syntaxTree(context.state).resolveInner(context.pos, -1); pos; pos = pos.parent)\n if (nodes.indexOf(pos.name) > -1)\n return source(context);\n return null;\n };\n}\n/**\nWrap the given completion source so that it will not fire when the\ncursor is in a syntax node with one of the given names.\n*/\nfunction ifNotIn(nodes, source) {\n return (context) => {\n for (let pos = syntaxTree(context.state).resolveInner(context.pos, -1); pos; pos = pos.parent)\n if (nodes.indexOf(pos.name) > -1)\n return null;\n return source(context);\n };\n}\nclass Option {\n constructor(completion, source, match) {\n this.completion = completion;\n this.source = source;\n this.match = match;\n }\n}\nfunction cur(state) { return state.selection.main.head; }\n// Make sure the given regexp has a $ at its end and, if `start` is\n// true, a ^ at its start.\nfunction ensureAnchor(expr, start) {\n var _a;\n let { source } = expr;\n let addStart = start && source[0] != \"^\", addEnd = source[source.length - 1] != \"$\";\n if (!addStart && !addEnd)\n return expr;\n return new RegExp(`${addStart ? \"^\" : \"\"}(?:${source})${addEnd ? \"$\" : \"\"}`, (_a = expr.flags) !== null && _a !== void 0 ? _a : (expr.ignoreCase ? \"i\" : \"\"));\n}\n/**\nThis annotation is added to transactions that are produced by\npicking a completion.\n*/\nconst pickedCompletion = /*@__PURE__*/Annotation.define();\nfunction applyCompletion(view, option) {\n let apply = option.completion.apply || option.completion.label;\n let result = option.source;\n if (typeof apply == \"string\") {\n view.dispatch({\n changes: { from: result.from, to: result.to, insert: apply },\n selection: { anchor: result.from + apply.length },\n userEvent: \"input.complete\",\n annotations: pickedCompletion.of(option.completion)\n });\n }\n else {\n apply(view, option.completion, result.from, result.to);\n }\n}\nconst SourceCache = /*@__PURE__*/new WeakMap();\nfunction asSource(source) {\n if (!Array.isArray(source))\n return source;\n let known = SourceCache.get(source);\n if (!known)\n SourceCache.set(source, known = completeFromList(source));\n return known;\n}\n\n// A pattern matcher for fuzzy completion matching. Create an instance\n// once for a pattern, and then use that to match any number of\n// completions.\nclass FuzzyMatcher {\n constructor(pattern) {\n this.pattern = pattern;\n this.chars = [];\n this.folded = [];\n // Buffers reused by calls to `match` to track matched character\n // positions.\n this.any = [];\n this.precise = [];\n this.byWord = [];\n for (let p = 0; p < pattern.length;) {\n let char = codePointAt(pattern, p), size = codePointSize(char);\n this.chars.push(char);\n let part = pattern.slice(p, p + size), upper = part.toUpperCase();\n this.folded.push(codePointAt(upper == part ? part.toLowerCase() : upper, 0));\n p += size;\n }\n this.astral = pattern.length != this.chars.length;\n }\n // Matches a given word (completion) against the pattern (input).\n // Will return null for no match, and otherwise an array that starts\n // with the match score, followed by any number of `from, to` pairs\n // indicating the matched parts of `word`.\n //\n // The score is a number that is more negative the worse the match\n // is. See `Penalty` above.\n match(word) {\n if (this.pattern.length == 0)\n return [0];\n if (word.length < this.pattern.length)\n return null;\n let { chars, folded, any, precise, byWord } = this;\n // For single-character queries, only match when they occur right\n // at the start\n if (chars.length == 1) {\n let first = codePointAt(word, 0);\n return first == chars[0] ? [0, 0, codePointSize(first)]\n : first == folded[0] ? [-200 /* CaseFold */, 0, codePointSize(first)] : null;\n }\n let direct = word.indexOf(this.pattern);\n if (direct == 0)\n return [0, 0, this.pattern.length];\n let len = chars.length, anyTo = 0;\n if (direct < 0) {\n for (let i = 0, e = Math.min(word.length, 200); i < e && anyTo < len;) {\n let next = codePointAt(word, i);\n if (next == chars[anyTo] || next == folded[anyTo])\n any[anyTo++] = i;\n i += codePointSize(next);\n }\n // No match, exit immediately\n if (anyTo < len)\n return null;\n }\n // This tracks the extent of the precise (non-folded, not\n // necessarily adjacent) match\n let preciseTo = 0;\n // Tracks whether there is a match that hits only characters that\n // appear to be starting words. `byWordFolded` is set to true when\n // a case folded character is encountered in such a match\n let byWordTo = 0, byWordFolded = false;\n // If we've found a partial adjacent match, these track its state\n let adjacentTo = 0, adjacentStart = -1, adjacentEnd = -1;\n let hasLower = /[a-z]/.test(word), wordAdjacent = true;\n // Go over the option's text, scanning for the various kinds of matches\n for (let i = 0, e = Math.min(word.length, 200), prevType = 0 /* NonWord */; i < e && byWordTo < len;) {\n let next = codePointAt(word, i);\n if (direct < 0) {\n if (preciseTo < len && next == chars[preciseTo])\n precise[preciseTo++] = i;\n if (adjacentTo < len) {\n if (next == chars[adjacentTo] || next == folded[adjacentTo]) {\n if (adjacentTo == 0)\n adjacentStart = i;\n adjacentEnd = i + 1;\n adjacentTo++;\n }\n else {\n adjacentTo = 0;\n }\n }\n }\n let ch, type = next < 0xff\n ? (next >= 48 && next <= 57 || next >= 97 && next <= 122 ? 2 /* Lower */ : next >= 65 && next <= 90 ? 1 /* Upper */ : 0 /* NonWord */)\n : ((ch = fromCodePoint(next)) != ch.toLowerCase() ? 1 /* Upper */ : ch != ch.toUpperCase() ? 2 /* Lower */ : 0 /* NonWord */);\n if (!i || type == 1 /* Upper */ && hasLower || prevType == 0 /* NonWord */ && type != 0 /* NonWord */) {\n if (chars[byWordTo] == next || (folded[byWordTo] == next && (byWordFolded = true)))\n byWord[byWordTo++] = i;\n else if (byWord.length)\n wordAdjacent = false;\n }\n prevType = type;\n i += codePointSize(next);\n }\n if (byWordTo == len && byWord[0] == 0 && wordAdjacent)\n return this.result(-100 /* ByWord */ + (byWordFolded ? -200 /* CaseFold */ : 0), byWord, word);\n if (adjacentTo == len && adjacentStart == 0)\n return [-200 /* CaseFold */ - word.length, 0, adjacentEnd];\n if (direct > -1)\n return [-700 /* NotStart */ - word.length, direct, direct + this.pattern.length];\n if (adjacentTo == len)\n return [-200 /* CaseFold */ + -700 /* NotStart */ - word.length, adjacentStart, adjacentEnd];\n if (byWordTo == len)\n return this.result(-100 /* ByWord */ + (byWordFolded ? -200 /* CaseFold */ : 0) + -700 /* NotStart */ +\n (wordAdjacent ? 0 : -1100 /* Gap */), byWord, word);\n return chars.length == 2 ? null : this.result((any[0] ? -700 /* NotStart */ : 0) + -200 /* CaseFold */ + -1100 /* Gap */, any, word);\n }\n result(score, positions, word) {\n let result = [score - word.length], i = 1;\n for (let pos of positions) {\n let to = pos + (this.astral ? codePointSize(codePointAt(word, pos)) : 1);\n if (i > 1 && result[i - 1] == pos)\n result[i - 1] = to;\n else {\n result[i++] = pos;\n result[i++] = to;\n }\n }\n return result;\n }\n}\n\nconst completionConfig = /*@__PURE__*/Facet.define({\n combine(configs) {\n return combineConfig(configs, {\n activateOnTyping: true,\n override: null,\n maxRenderedOptions: 100,\n defaultKeymap: true,\n optionClass: () => \"\",\n aboveCursor: false,\n icons: true,\n addToOptions: []\n }, {\n defaultKeymap: (a, b) => a && b,\n icons: (a, b) => a && b,\n optionClass: (a, b) => c => joinClass(a(c), b(c)),\n addToOptions: (a, b) => a.concat(b)\n });\n }\n});\nfunction joinClass(a, b) {\n return a ? b ? a + \" \" + b : a : b;\n}\n\nfunction optionContent(config) {\n let content = config.addToOptions.slice();\n if (config.icons)\n content.push({\n render(completion) {\n let icon = document.createElement(\"div\");\n icon.classList.add(\"cm-completionIcon\");\n if (completion.type)\n icon.classList.add(...completion.type.split(/\\s+/g).map(cls => \"cm-completionIcon-\" + cls));\n icon.setAttribute(\"aria-hidden\", \"true\");\n return icon;\n },\n position: 20\n });\n content.push({\n render(completion, _s, match) {\n let labelElt = document.createElement(\"span\");\n labelElt.className = \"cm-completionLabel\";\n let { label } = completion, off = 0;\n for (let j = 1; j < match.length;) {\n let from = match[j++], to = match[j++];\n if (from > off)\n labelElt.appendChild(document.createTextNode(label.slice(off, from)));\n let span = labelElt.appendChild(document.createElement(\"span\"));\n span.appendChild(document.createTextNode(label.slice(from, to)));\n span.className = \"cm-completionMatchedText\";\n off = to;\n }\n if (off < label.length)\n labelElt.appendChild(document.createTextNode(label.slice(off)));\n return labelElt;\n },\n position: 50\n }, {\n render(completion) {\n if (!completion.detail)\n return null;\n let detailElt = document.createElement(\"span\");\n detailElt.className = \"cm-completionDetail\";\n detailElt.textContent = completion.detail;\n return detailElt;\n },\n position: 80\n });\n return content.sort((a, b) => a.position - b.position).map(a => a.render);\n}\nfunction createInfoDialog(option, view) {\n let dom = document.createElement(\"div\");\n dom.className = \"cm-tooltip cm-completionInfo\";\n let { info } = option.completion;\n if (typeof info == \"string\") {\n dom.textContent = info;\n }\n else {\n let content = info(option.completion);\n if (content.then)\n content.then(node => dom.appendChild(node), e => logException(view.state, e, \"completion info\"));\n else\n dom.appendChild(content);\n }\n return dom;\n}\nfunction rangeAroundSelected(total, selected, max) {\n if (total <= max)\n return { from: 0, to: total };\n if (selected <= (total >> 1)) {\n let off = Math.floor(selected / max);\n return { from: off * max, to: (off + 1) * max };\n }\n let off = Math.floor((total - selected) / max);\n return { from: total - (off + 1) * max, to: total - off * max };\n}\nclass CompletionTooltip {\n constructor(view, stateField) {\n this.view = view;\n this.stateField = stateField;\n this.info = null;\n this.placeInfo = {\n read: () => this.measureInfo(),\n write: (pos) => this.positionInfo(pos),\n key: this\n };\n let cState = view.state.field(stateField);\n let { options, selected } = cState.open;\n let config = view.state.facet(completionConfig);\n this.optionContent = optionContent(config);\n this.optionClass = config.optionClass;\n this.range = rangeAroundSelected(options.length, selected, config.maxRenderedOptions);\n this.dom = document.createElement(\"div\");\n this.dom.className = \"cm-tooltip-autocomplete\";\n this.dom.addEventListener(\"mousedown\", (e) => {\n for (let dom = e.target, match; dom && dom != this.dom; dom = dom.parentNode) {\n if (dom.nodeName == \"LI\" && (match = /-(\\d+)$/.exec(dom.id)) && +match[1] < options.length) {\n applyCompletion(view, options[+match[1]]);\n e.preventDefault();\n return;\n }\n }\n });\n this.list = this.dom.appendChild(this.createListBox(options, cState.id, this.range));\n this.list.addEventListener(\"scroll\", () => {\n if (this.info)\n this.view.requestMeasure(this.placeInfo);\n });\n }\n mount() { this.updateSel(); }\n update(update) {\n if (update.state.field(this.stateField) != update.startState.field(this.stateField))\n this.updateSel();\n }\n positioned() {\n if (this.info)\n this.view.requestMeasure(this.placeInfo);\n }\n updateSel() {\n let cState = this.view.state.field(this.stateField), open = cState.open;\n if (open.selected < this.range.from || open.selected >= this.range.to) {\n this.range = rangeAroundSelected(open.options.length, open.selected, this.view.state.facet(completionConfig).maxRenderedOptions);\n this.list.remove();\n this.list = this.dom.appendChild(this.createListBox(open.options, cState.id, this.range));\n this.list.addEventListener(\"scroll\", () => {\n if (this.info)\n this.view.requestMeasure(this.placeInfo);\n });\n }\n if (this.updateSelectedOption(open.selected)) {\n if (this.info) {\n this.info.remove();\n this.info = null;\n }\n let option = open.options[open.selected];\n if (option.completion.info) {\n this.info = this.dom.appendChild(createInfoDialog(option, this.view));\n this.view.requestMeasure(this.placeInfo);\n }\n }\n }\n updateSelectedOption(selected) {\n let set = null;\n for (let opt = this.list.firstChild, i = this.range.from; opt; opt = opt.nextSibling, i++) {\n if (i == selected) {\n if (!opt.hasAttribute(\"aria-selected\")) {\n opt.setAttribute(\"aria-selected\", \"true\");\n set = opt;\n }\n }\n else {\n if (opt.hasAttribute(\"aria-selected\"))\n opt.removeAttribute(\"aria-selected\");\n }\n }\n if (set)\n scrollIntoView(this.list, set);\n return set;\n }\n measureInfo() {\n let sel = this.dom.querySelector(\"[aria-selected]\");\n if (!sel || !this.info)\n return null;\n let listRect = this.dom.getBoundingClientRect();\n let infoRect = this.info.getBoundingClientRect();\n let selRect = sel.getBoundingClientRect();\n if (selRect.top > Math.min(innerHeight, listRect.bottom) - 10 || selRect.bottom < Math.max(0, listRect.top) + 10)\n return null;\n let top = Math.max(0, Math.min(selRect.top, innerHeight - infoRect.height)) - listRect.top;\n let left = this.view.textDirection == Direction.RTL;\n let spaceLeft = listRect.left, spaceRight = innerWidth - listRect.right;\n if (left && spaceLeft < Math.min(infoRect.width, spaceRight))\n left = false;\n else if (!left && spaceRight < Math.min(infoRect.width, spaceLeft))\n left = true;\n return { top, left };\n }\n positionInfo(pos) {\n if (this.info) {\n this.info.style.top = (pos ? pos.top : -1e6) + \"px\";\n if (pos) {\n this.info.classList.toggle(\"cm-completionInfo-left\", pos.left);\n this.info.classList.toggle(\"cm-completionInfo-right\", !pos.left);\n }\n }\n }\n createListBox(options, id, range) {\n const ul = document.createElement(\"ul\");\n ul.id = id;\n ul.setAttribute(\"role\", \"listbox\");\n ul.setAttribute(\"aria-expanded\", \"true\");\n for (let i = range.from; i < range.to; i++) {\n let { completion, match } = options[i];\n const li = ul.appendChild(document.createElement(\"li\"));\n li.id = id + \"-\" + i;\n li.setAttribute(\"role\", \"option\");\n let cls = this.optionClass(completion);\n if (cls)\n li.className = cls;\n for (let source of this.optionContent) {\n let node = source(completion, this.view.state, match);\n if (node)\n li.appendChild(node);\n }\n }\n if (range.from)\n ul.classList.add(\"cm-completionListIncompleteTop\");\n if (range.to < options.length)\n ul.classList.add(\"cm-completionListIncompleteBottom\");\n return ul;\n }\n}\n// We allocate a new function instance every time the completion\n// changes to force redrawing/repositioning of the tooltip\nfunction completionTooltip(stateField) {\n return (view) => new CompletionTooltip(view, stateField);\n}\nfunction scrollIntoView(container, element) {\n let parent = container.getBoundingClientRect();\n let self = element.getBoundingClientRect();\n if (self.top < parent.top)\n container.scrollTop -= parent.top - self.top;\n else if (self.bottom > parent.bottom)\n container.scrollTop += self.bottom - parent.bottom;\n}\n\nconst MaxOptions = 300;\n// Used to pick a preferred option when two options with the same\n// label occur in the result.\nfunction score(option) {\n return (option.boost || 0) * 100 + (option.apply ? 10 : 0) + (option.info ? 5 : 0) +\n (option.type ? 1 : 0);\n}\nfunction sortOptions(active, state) {\n let options = [], i = 0;\n for (let a of active)\n if (a.hasResult()) {\n if (a.result.filter === false) {\n for (let option of a.result.options)\n options.push(new Option(option, a, [1e9 - i++]));\n }\n else {\n let matcher = new FuzzyMatcher(state.sliceDoc(a.from, a.to)), match;\n for (let option of a.result.options)\n if (match = matcher.match(option.label)) {\n if (option.boost != null)\n match[0] += option.boost;\n options.push(new Option(option, a, match));\n }\n }\n }\n let result = [], prev = null;\n for (let opt of options.sort(cmpOption)) {\n if (result.length == MaxOptions)\n break;\n if (!prev || prev.label != opt.completion.label || prev.detail != opt.completion.detail ||\n prev.type != opt.completion.type || prev.apply != opt.completion.apply)\n result.push(opt);\n else if (score(opt.completion) > score(prev))\n result[result.length - 1] = opt;\n prev = opt.completion;\n }\n return result;\n}\nclass CompletionDialog {\n constructor(options, attrs, tooltip, timestamp, selected) {\n this.options = options;\n this.attrs = attrs;\n this.tooltip = tooltip;\n this.timestamp = timestamp;\n this.selected = selected;\n }\n setSelected(selected, id) {\n return selected == this.selected || selected >= this.options.length ? this\n : new CompletionDialog(this.options, makeAttrs(id, selected), this.tooltip, this.timestamp, selected);\n }\n static build(active, state, id, prev, conf) {\n let options = sortOptions(active, state);\n if (!options.length)\n return null;\n let selected = 0;\n if (prev && prev.selected) {\n let selectedValue = prev.options[prev.selected].completion;\n for (let i = 0; i < options.length; i++)\n if (options[i].completion == selectedValue) {\n selected = i;\n break;\n }\n }\n return new CompletionDialog(options, makeAttrs(id, selected), {\n pos: active.reduce((a, b) => b.hasResult() ? Math.min(a, b.from) : a, 1e8),\n create: completionTooltip(completionState),\n above: conf.aboveCursor,\n }, prev ? prev.timestamp : Date.now(), selected);\n }\n map(changes) {\n return new CompletionDialog(this.options, this.attrs, Object.assign(Object.assign({}, this.tooltip), { pos: changes.mapPos(this.tooltip.pos) }), this.timestamp, this.selected);\n }\n}\nclass CompletionState {\n constructor(active, id, open) {\n this.active = active;\n this.id = id;\n this.open = open;\n }\n static start() {\n return new CompletionState(none, \"cm-ac-\" + Math.floor(Math.random() * 2e6).toString(36), null);\n }\n update(tr) {\n let { state } = tr, conf = state.facet(completionConfig);\n let sources = conf.override ||\n state.languageDataAt(\"autocomplete\", cur(state)).map(asSource);\n let active = sources.map(source => {\n let value = this.active.find(s => s.source == source) ||\n new ActiveSource(source, this.active.some(a => a.state != 0 /* Inactive */) ? 1 /* Pending */ : 0 /* Inactive */);\n return value.update(tr, conf);\n });\n if (active.length == this.active.length && active.every((a, i) => a == this.active[i]))\n active = this.active;\n let open = tr.selection || active.some(a => a.hasResult() && tr.changes.touchesRange(a.from, a.to)) ||\n !sameResults(active, this.active) ? CompletionDialog.build(active, state, this.id, this.open, conf)\n : this.open && tr.docChanged ? this.open.map(tr.changes) : this.open;\n if (!open && active.every(a => a.state != 1 /* Pending */) && active.some(a => a.hasResult()))\n active = active.map(a => a.hasResult() ? new ActiveSource(a.source, 0 /* Inactive */) : a);\n for (let effect of tr.effects)\n if (effect.is(setSelectedEffect))\n open = open && open.setSelected(effect.value, this.id);\n return active == this.active && open == this.open ? this : new CompletionState(active, this.id, open);\n }\n get tooltip() { return this.open ? this.open.tooltip : null; }\n get attrs() { return this.open ? this.open.attrs : baseAttrs; }\n}\nfunction sameResults(a, b) {\n if (a == b)\n return true;\n for (let iA = 0, iB = 0;;) {\n while (iA < a.length && !a[iA].hasResult)\n iA++;\n while (iB < b.length && !b[iB].hasResult)\n iB++;\n let endA = iA == a.length, endB = iB == b.length;\n if (endA || endB)\n return endA == endB;\n if (a[iA++].result != b[iB++].result)\n return false;\n }\n}\nconst baseAttrs = {\n \"aria-autocomplete\": \"list\"\n};\nfunction makeAttrs(id, selected) {\n return {\n \"aria-autocomplete\": \"list\",\n \"aria-haspopup\": \"listbox\",\n \"aria-activedescendant\": id + \"-\" + selected,\n \"aria-controls\": id\n };\n}\nconst none = [];\nfunction cmpOption(a, b) {\n let dScore = b.match[0] - a.match[0];\n if (dScore)\n return dScore;\n return a.completion.label.localeCompare(b.completion.label);\n}\nfunction getUserEvent(tr) {\n return tr.isUserEvent(\"input.type\") ? \"input\" : tr.isUserEvent(\"delete.backward\") ? \"delete\" : null;\n}\nclass ActiveSource {\n constructor(source, state, explicitPos = -1) {\n this.source = source;\n this.state = state;\n this.explicitPos = explicitPos;\n }\n hasResult() { return false; }\n update(tr, conf) {\n let event = getUserEvent(tr), value = this;\n if (event)\n value = value.handleUserEvent(tr, event, conf);\n else if (tr.docChanged)\n value = value.handleChange(tr);\n else if (tr.selection && value.state != 0 /* Inactive */)\n value = new ActiveSource(value.source, 0 /* Inactive */);\n for (let effect of tr.effects) {\n if (effect.is(startCompletionEffect))\n value = new ActiveSource(value.source, 1 /* Pending */, effect.value ? cur(tr.state) : -1);\n else if (effect.is(closeCompletionEffect))\n value = new ActiveSource(value.source, 0 /* Inactive */);\n else if (effect.is(setActiveEffect))\n for (let active of effect.value)\n if (active.source == value.source)\n value = active;\n }\n return value;\n }\n handleUserEvent(tr, type, conf) {\n return type == \"delete\" || !conf.activateOnTyping ? this.map(tr.changes) : new ActiveSource(this.source, 1 /* Pending */);\n }\n handleChange(tr) {\n return tr.changes.touchesRange(cur(tr.startState)) ? new ActiveSource(this.source, 0 /* Inactive */) : this.map(tr.changes);\n }\n map(changes) {\n return changes.empty || this.explicitPos < 0 ? this : new ActiveSource(this.source, this.state, changes.mapPos(this.explicitPos));\n }\n}\nclass ActiveResult extends ActiveSource {\n constructor(source, explicitPos, result, from, to, span) {\n super(source, 2 /* Result */, explicitPos);\n this.result = result;\n this.from = from;\n this.to = to;\n this.span = span;\n }\n hasResult() { return true; }\n handleUserEvent(tr, type, conf) {\n let from = tr.changes.mapPos(this.from), to = tr.changes.mapPos(this.to, 1);\n let pos = cur(tr.state);\n if ((this.explicitPos < 0 ? pos <= from : pos < this.from) ||\n pos > to ||\n type == \"delete\" && cur(tr.startState) == this.from)\n return new ActiveSource(this.source, type == \"input\" && conf.activateOnTyping ? 1 /* Pending */ : 0 /* Inactive */);\n let explicitPos = this.explicitPos < 0 ? -1 : tr.changes.mapPos(this.explicitPos);\n if (this.span && (from == to || this.span.test(tr.state.sliceDoc(from, to))))\n return new ActiveResult(this.source, explicitPos, this.result, from, to, this.span);\n return new ActiveSource(this.source, 1 /* Pending */, explicitPos);\n }\n handleChange(tr) {\n return tr.changes.touchesRange(this.from, this.to) ? new ActiveSource(this.source, 0 /* Inactive */) : this.map(tr.changes);\n }\n map(mapping) {\n return mapping.empty ? this :\n new ActiveResult(this.source, this.explicitPos < 0 ? -1 : mapping.mapPos(this.explicitPos), this.result, mapping.mapPos(this.from), mapping.mapPos(this.to, 1), this.span);\n }\n}\nconst startCompletionEffect = /*@__PURE__*/StateEffect.define();\nconst closeCompletionEffect = /*@__PURE__*/StateEffect.define();\nconst setActiveEffect = /*@__PURE__*/StateEffect.define({\n map(sources, mapping) { return sources.map(s => s.map(mapping)); }\n});\nconst setSelectedEffect = /*@__PURE__*/StateEffect.define();\nconst completionState = /*@__PURE__*/StateField.define({\n create() { return CompletionState.start(); },\n update(value, tr) { return value.update(tr); },\n provide: f => [\n showTooltip.from(f, val => val.tooltip),\n EditorView.contentAttributes.from(f, state => state.attrs)\n ]\n});\n\nconst CompletionInteractMargin = 75;\n/**\nReturns a command that moves the completion selection forward or\nbackward by the given amount.\n*/\nfunction moveCompletionSelection(forward, by = \"option\") {\n return (view) => {\n let cState = view.state.field(completionState, false);\n if (!cState || !cState.open || Date.now() - cState.open.timestamp < CompletionInteractMargin)\n return false;\n let step = 1, tooltip;\n if (by == \"page\" && (tooltip = getTooltip(view, cState.open.tooltip)))\n step = Math.max(2, Math.floor(tooltip.dom.offsetHeight /\n tooltip.dom.querySelector(\"li\").offsetHeight) - 1);\n let selected = cState.open.selected + step * (forward ? 1 : -1), { length } = cState.open.options;\n if (selected < 0)\n selected = by == \"page\" ? 0 : length - 1;\n else if (selected >= length)\n selected = by == \"page\" ? length - 1 : 0;\n view.dispatch({ effects: setSelectedEffect.of(selected) });\n return true;\n };\n}\n/**\nAccept the current completion.\n*/\nconst acceptCompletion = (view) => {\n let cState = view.state.field(completionState, false);\n if (view.state.readOnly || !cState || !cState.open || Date.now() - cState.open.timestamp < CompletionInteractMargin)\n return false;\n applyCompletion(view, cState.open.options[cState.open.selected]);\n return true;\n};\n/**\nExplicitly start autocompletion.\n*/\nconst startCompletion = (view) => {\n let cState = view.state.field(completionState, false);\n if (!cState)\n return false;\n view.dispatch({ effects: startCompletionEffect.of(true) });\n return true;\n};\n/**\nClose the currently active completion.\n*/\nconst closeCompletion = (view) => {\n let cState = view.state.field(completionState, false);\n if (!cState || !cState.active.some(a => a.state != 0 /* Inactive */))\n return false;\n view.dispatch({ effects: closeCompletionEffect.of(null) });\n return true;\n};\nclass RunningQuery {\n constructor(active, context) {\n this.active = active;\n this.context = context;\n this.time = Date.now();\n this.updates = [];\n // Note that 'undefined' means 'not done yet', whereas 'null' means\n // 'query returned null'.\n this.done = undefined;\n }\n}\nconst DebounceTime = 50, MaxUpdateCount = 50, MinAbortTime = 1000;\nconst completionPlugin = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.debounceUpdate = -1;\n this.running = [];\n this.debounceAccept = -1;\n this.composing = 0 /* None */;\n for (let active of view.state.field(completionState).active)\n if (active.state == 1 /* Pending */)\n this.startQuery(active);\n }\n update(update) {\n let cState = update.state.field(completionState);\n if (!update.selectionSet && !update.docChanged && update.startState.field(completionState) == cState)\n return;\n let doesReset = update.transactions.some(tr => {\n return (tr.selection || tr.docChanged) && !getUserEvent(tr);\n });\n for (let i = 0; i < this.running.length; i++) {\n let query = this.running[i];\n if (doesReset ||\n query.updates.length + update.transactions.length > MaxUpdateCount && Date.now() - query.time > MinAbortTime) {\n for (let handler of query.context.abortListeners) {\n try {\n handler();\n }\n catch (e) {\n logException(this.view.state, e);\n }\n }\n query.context.abortListeners = null;\n this.running.splice(i--, 1);\n }\n else {\n query.updates.push(...update.transactions);\n }\n }\n if (this.debounceUpdate > -1)\n clearTimeout(this.debounceUpdate);\n this.debounceUpdate = cState.active.some(a => a.state == 1 /* Pending */ && !this.running.some(q => q.active.source == a.source))\n ? setTimeout(() => this.startUpdate(), DebounceTime) : -1;\n if (this.composing != 0 /* None */)\n for (let tr of update.transactions) {\n if (getUserEvent(tr) == \"input\")\n this.composing = 2 /* Changed */;\n else if (this.composing == 2 /* Changed */ && tr.selection)\n this.composing = 3 /* ChangedAndMoved */;\n }\n }\n startUpdate() {\n this.debounceUpdate = -1;\n let { state } = this.view, cState = state.field(completionState);\n for (let active of cState.active) {\n if (active.state == 1 /* Pending */ && !this.running.some(r => r.active.source == active.source))\n this.startQuery(active);\n }\n }\n startQuery(active) {\n let { state } = this.view, pos = cur(state);\n let context = new CompletionContext(state, pos, active.explicitPos == pos);\n let pending = new RunningQuery(active, context);\n this.running.push(pending);\n Promise.resolve(active.source(context)).then(result => {\n if (!pending.context.aborted) {\n pending.done = result || null;\n this.scheduleAccept();\n }\n }, err => {\n this.view.dispatch({ effects: closeCompletionEffect.of(null) });\n logException(this.view.state, err);\n });\n }\n scheduleAccept() {\n if (this.running.every(q => q.done !== undefined))\n this.accept();\n else if (this.debounceAccept < 0)\n this.debounceAccept = setTimeout(() => this.accept(), DebounceTime);\n }\n // For each finished query in this.running, try to create a result\n // or, if appropriate, restart the query.\n accept() {\n var _a;\n if (this.debounceAccept > -1)\n clearTimeout(this.debounceAccept);\n this.debounceAccept = -1;\n let updated = [];\n let conf = this.view.state.facet(completionConfig);\n for (let i = 0; i < this.running.length; i++) {\n let query = this.running[i];\n if (query.done === undefined)\n continue;\n this.running.splice(i--, 1);\n if (query.done) {\n let active = new ActiveResult(query.active.source, query.active.explicitPos, query.done, query.done.from, (_a = query.done.to) !== null && _a !== void 0 ? _a : cur(query.updates.length ? query.updates[0].startState : this.view.state), query.done.span && query.done.filter !== false ? ensureAnchor(query.done.span, true) : null);\n // Replay the transactions that happened since the start of\n // the request and see if that preserves the result\n for (let tr of query.updates)\n active = active.update(tr, conf);\n if (active.hasResult()) {\n updated.push(active);\n continue;\n }\n }\n let current = this.view.state.field(completionState).active.find(a => a.source == query.active.source);\n if (current && current.state == 1 /* Pending */) {\n if (query.done == null) {\n // Explicitly failed. Should clear the pending status if it\n // hasn't been re-set in the meantime.\n let active = new ActiveSource(query.active.source, 0 /* Inactive */);\n for (let tr of query.updates)\n active = active.update(tr, conf);\n if (active.state != 1 /* Pending */)\n updated.push(active);\n }\n else {\n // Cleared by subsequent transactions. Restart.\n this.startQuery(current);\n }\n }\n }\n if (updated.length)\n this.view.dispatch({ effects: setActiveEffect.of(updated) });\n }\n}, {\n eventHandlers: {\n compositionstart() {\n this.composing = 1 /* Started */;\n },\n compositionend() {\n if (this.composing == 3 /* ChangedAndMoved */) {\n // Safari fires compositionend events synchronously, possibly\n // from inside an update, so dispatch asynchronously to avoid reentrancy\n setTimeout(() => this.view.dispatch({ effects: startCompletionEffect.of(false) }), 20);\n }\n this.composing = 0 /* None */;\n }\n }\n});\n\nconst baseTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-tooltip.cm-tooltip-autocomplete\": {\n \"& > ul\": {\n fontFamily: \"monospace\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden auto\",\n maxWidth_fallback: \"700px\",\n maxWidth: \"min(700px, 95vw)\",\n minWidth: \"250px\",\n maxHeight: \"10em\",\n listStyle: \"none\",\n margin: 0,\n padding: 0,\n \"& > li\": {\n overflowX: \"hidden\",\n textOverflow: \"ellipsis\",\n cursor: \"pointer\",\n padding: \"1px 3px\",\n lineHeight: 1.2\n },\n }\n },\n \"&light .cm-tooltip-autocomplete ul li[aria-selected]\": {\n background: \"#17c\",\n color: \"white\",\n },\n \"&dark .cm-tooltip-autocomplete ul li[aria-selected]\": {\n background: \"#347\",\n color: \"white\",\n },\n \".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after\": {\n content: '\"···\"',\n opacity: 0.5,\n display: \"block\",\n textAlign: \"center\"\n },\n \".cm-tooltip.cm-completionInfo\": {\n position: \"absolute\",\n padding: \"3px 9px\",\n width: \"max-content\",\n maxWidth: \"300px\",\n },\n \".cm-completionInfo.cm-completionInfo-left\": { right: \"100%\" },\n \".cm-completionInfo.cm-completionInfo-right\": { left: \"100%\" },\n \"&light .cm-snippetField\": { backgroundColor: \"#00000022\" },\n \"&dark .cm-snippetField\": { backgroundColor: \"#ffffff22\" },\n \".cm-snippetFieldPosition\": {\n verticalAlign: \"text-top\",\n width: 0,\n height: \"1.15em\",\n margin: \"0 -0.7px -.7em\",\n borderLeft: \"1.4px dotted #888\"\n },\n \".cm-completionMatchedText\": {\n textDecoration: \"underline\"\n },\n \".cm-completionDetail\": {\n marginLeft: \"0.5em\",\n fontStyle: \"italic\"\n },\n \".cm-completionIcon\": {\n fontSize: \"90%\",\n width: \".8em\",\n display: \"inline-block\",\n textAlign: \"center\",\n paddingRight: \".6em\",\n opacity: \"0.6\"\n },\n \".cm-completionIcon-function, .cm-completionIcon-method\": {\n \"&:after\": { content: \"'ƒ'\" }\n },\n \".cm-completionIcon-class\": {\n \"&:after\": { content: \"'○'\" }\n },\n \".cm-completionIcon-interface\": {\n \"&:after\": { content: \"'◌'\" }\n },\n \".cm-completionIcon-variable\": {\n \"&:after\": { content: \"'𝑥'\" }\n },\n \".cm-completionIcon-constant\": {\n \"&:after\": { content: \"'𝐶'\" }\n },\n \".cm-completionIcon-type\": {\n \"&:after\": { content: \"'𝑡'\" }\n },\n \".cm-completionIcon-enum\": {\n \"&:after\": { content: \"'∪'\" }\n },\n \".cm-completionIcon-property\": {\n \"&:after\": { content: \"'□'\" }\n },\n \".cm-completionIcon-keyword\": {\n \"&:after\": { content: \"'🔑\\uFE0E'\" } // Disable emoji rendering\n },\n \".cm-completionIcon-namespace\": {\n \"&:after\": { content: \"'▢'\" }\n },\n \".cm-completionIcon-text\": {\n \"&:after\": { content: \"'abc'\", fontSize: \"50%\", verticalAlign: \"middle\" }\n }\n});\n\nclass FieldPos {\n constructor(field, line, from, to) {\n this.field = field;\n this.line = line;\n this.from = from;\n this.to = to;\n }\n}\nclass FieldRange {\n constructor(field, from, to) {\n this.field = field;\n this.from = from;\n this.to = to;\n }\n map(changes) {\n let from = changes.mapPos(this.from, -1, MapMode.TrackDel);\n let to = changes.mapPos(this.to, 1, MapMode.TrackDel);\n return from == null || to == null ? null : new FieldRange(this.field, from, to);\n }\n}\nclass Snippet {\n constructor(lines, fieldPositions) {\n this.lines = lines;\n this.fieldPositions = fieldPositions;\n }\n instantiate(state, pos) {\n let text = [], lineStart = [pos];\n let lineObj = state.doc.lineAt(pos), baseIndent = /^\\s*/.exec(lineObj.text)[0];\n for (let line of this.lines) {\n if (text.length) {\n let indent = baseIndent, tabs = /^\\t*/.exec(line)[0].length;\n for (let i = 0; i < tabs; i++)\n indent += state.facet(indentUnit);\n lineStart.push(pos + indent.length - tabs);\n line = indent + line.slice(tabs);\n }\n text.push(line);\n pos += line.length + 1;\n }\n let ranges = this.fieldPositions.map(pos => new FieldRange(pos.field, lineStart[pos.line] + pos.from, lineStart[pos.line] + pos.to));\n return { text, ranges };\n }\n static parse(template) {\n let fields = [];\n let lines = [], positions = [], m;\n for (let line of template.split(/\\r\\n?|\\n/)) {\n while (m = /[#$]\\{(?:(\\d+)(?::([^}]*))?|([^}]*))\\}/.exec(line)) {\n let seq = m[1] ? +m[1] : null, name = m[2] || m[3] || \"\", found = -1;\n for (let i = 0; i < fields.length; i++) {\n if (seq != null ? fields[i].seq == seq : name ? fields[i].name == name : false)\n found = i;\n }\n if (found < 0) {\n let i = 0;\n while (i < fields.length && (seq == null || (fields[i].seq != null && fields[i].seq < seq)))\n i++;\n fields.splice(i, 0, { seq, name });\n found = i;\n for (let pos of positions)\n if (pos.field >= found)\n pos.field++;\n }\n positions.push(new FieldPos(found, lines.length, m.index, m.index + name.length));\n line = line.slice(0, m.index) + name + line.slice(m.index + m[0].length);\n }\n lines.push(line);\n }\n return new Snippet(lines, positions);\n }\n}\nlet fieldMarker = /*@__PURE__*/Decoration.widget({ widget: /*@__PURE__*/new class extends WidgetType {\n toDOM() {\n let span = document.createElement(\"span\");\n span.className = \"cm-snippetFieldPosition\";\n return span;\n }\n ignoreEvent() { return false; }\n } });\nlet fieldRange = /*@__PURE__*/Decoration.mark({ class: \"cm-snippetField\" });\nclass ActiveSnippet {\n constructor(ranges, active) {\n this.ranges = ranges;\n this.active = active;\n this.deco = Decoration.set(ranges.map(r => (r.from == r.to ? fieldMarker : fieldRange).range(r.from, r.to)));\n }\n map(changes) {\n let ranges = [];\n for (let r of this.ranges) {\n let mapped = r.map(changes);\n if (!mapped)\n return null;\n ranges.push(mapped);\n }\n return new ActiveSnippet(ranges, this.active);\n }\n selectionInsideField(sel) {\n return sel.ranges.every(range => this.ranges.some(r => r.field == this.active && r.from <= range.from && r.to >= range.to));\n }\n}\nconst setActive = /*@__PURE__*/StateEffect.define({\n map(value, changes) { return value && value.map(changes); }\n});\nconst moveToField = /*@__PURE__*/StateEffect.define();\nconst snippetState = /*@__PURE__*/StateField.define({\n create() { return null; },\n update(value, tr) {\n for (let effect of tr.effects) {\n if (effect.is(setActive))\n return effect.value;\n if (effect.is(moveToField) && value)\n return new ActiveSnippet(value.ranges, effect.value);\n }\n if (value && tr.docChanged)\n value = value.map(tr.changes);\n if (value && tr.selection && !value.selectionInsideField(tr.selection))\n value = null;\n return value;\n },\n provide: f => EditorView.decorations.from(f, val => val ? val.deco : Decoration.none)\n});\nfunction fieldSelection(ranges, field) {\n return EditorSelection.create(ranges.filter(r => r.field == field).map(r => EditorSelection.range(r.from, r.to)));\n}\n/**\nConvert a snippet template to a function that can apply it.\nSnippets are written using syntax like this:\n\n \"for (let ${index} = 0; ${index} < ${end}; ${index}++) {\\n\\t${}\\n}\"\n\nEach `${}` placeholder (you may also use `#{}`) indicates a field\nthat the user can fill in. Its name, if any, will be the default\ncontent for the field.\n\nWhen the snippet is activated by calling the returned function,\nthe code is inserted at the given position. Newlines in the\ntemplate are indented by the indentation of the start line, plus\none [indent unit](https://codemirror.net/6/docs/ref/#language.indentUnit) per tab character after\nthe newline.\n\nOn activation, (all instances of) the first field are selected.\nThe user can move between fields with Tab and Shift-Tab as long as\nthe fields are active. Moving to the last field or moving the\ncursor out of the current field deactivates the fields.\n\nThe order of fields defaults to textual order, but you can add\nnumbers to placeholders (`${1}` or `${1:defaultText}`) to provide\na custom order.\n*/\nfunction snippet(template) {\n let snippet = Snippet.parse(template);\n return (editor, _completion, from, to) => {\n let { text, ranges } = snippet.instantiate(editor.state, from);\n let spec = { changes: { from, to, insert: Text.of(text) } };\n if (ranges.length)\n spec.selection = fieldSelection(ranges, 0);\n if (ranges.length > 1) {\n let active = new ActiveSnippet(ranges, 0);\n let effects = spec.effects = [setActive.of(active)];\n if (editor.state.field(snippetState, false) === undefined)\n effects.push(StateEffect.appendConfig.of([snippetState, addSnippetKeymap, snippetPointerHandler, baseTheme]));\n }\n editor.dispatch(editor.state.update(spec));\n };\n}\nfunction moveField(dir) {\n return ({ state, dispatch }) => {\n let active = state.field(snippetState, false);\n if (!active || dir < 0 && active.active == 0)\n return false;\n let next = active.active + dir, last = dir > 0 && !active.ranges.some(r => r.field == next + dir);\n dispatch(state.update({\n selection: fieldSelection(active.ranges, next),\n effects: setActive.of(last ? null : new ActiveSnippet(active.ranges, next))\n }));\n return true;\n };\n}\n/**\nA command that clears the active snippet, if any.\n*/\nconst clearSnippet = ({ state, dispatch }) => {\n let active = state.field(snippetState, false);\n if (!active)\n return false;\n dispatch(state.update({ effects: setActive.of(null) }));\n return true;\n};\n/**\nMove to the next snippet field, if available.\n*/\nconst nextSnippetField = /*@__PURE__*/moveField(1);\n/**\nMove to the previous snippet field, if available.\n*/\nconst prevSnippetField = /*@__PURE__*/moveField(-1);\nconst defaultSnippetKeymap = [\n { key: \"Tab\", run: nextSnippetField, shift: prevSnippetField },\n { key: \"Escape\", run: clearSnippet }\n];\n/**\nA facet that can be used to configure the key bindings used by\nsnippets. The default binds Tab to\n[`nextSnippetField`](https://codemirror.net/6/docs/ref/#autocomplete.nextSnippetField), Shift-Tab to\n[`prevSnippetField`](https://codemirror.net/6/docs/ref/#autocomplete.prevSnippetField), and Escape\nto [`clearSnippet`](https://codemirror.net/6/docs/ref/#autocomplete.clearSnippet).\n*/\nconst snippetKeymap = /*@__PURE__*/Facet.define({\n combine(maps) { return maps.length ? maps[0] : defaultSnippetKeymap; }\n});\nconst addSnippetKeymap = /*@__PURE__*/Prec.highest(/*@__PURE__*/keymap.compute([snippetKeymap], state => state.facet(snippetKeymap)));\n/**\nCreate a completion from a snippet. Returns an object with the\nproperties from `completion`, plus an `apply` function that\napplies the snippet.\n*/\nfunction snippetCompletion(template, completion) {\n return Object.assign(Object.assign({}, completion), { apply: snippet(template) });\n}\nconst snippetPointerHandler = /*@__PURE__*/EditorView.domEventHandlers({\n mousedown(event, view) {\n let active = view.state.field(snippetState, false), pos;\n if (!active || (pos = view.posAtCoords({ x: event.clientX, y: event.clientY })) == null)\n return false;\n let match = active.ranges.find(r => r.from <= pos && r.to >= pos);\n if (!match || match.field == active.active)\n return false;\n view.dispatch({\n selection: fieldSelection(active.ranges, match.field),\n effects: setActive.of(active.ranges.some(r => r.field > match.field) ? new ActiveSnippet(active.ranges, match.field) : null)\n });\n return true;\n }\n});\n\nfunction wordRE(wordChars) {\n let escaped = wordChars.replace(/[\\\\[.+*?(){|^$]/g, \"\\\\$&\");\n try {\n return new RegExp(`[\\\\p{Alphabetic}\\\\p{Number}_${escaped}]+`, \"ug\");\n }\n catch (_a) {\n return new RegExp(`[\\w${escaped}]`, \"g\");\n }\n}\nfunction mapRE(re, f) {\n return new RegExp(f(re.source), re.unicode ? \"u\" : \"\");\n}\nconst wordCaches = /*@__PURE__*/Object.create(null);\nfunction wordCache(wordChars) {\n return wordCaches[wordChars] || (wordCaches[wordChars] = new WeakMap);\n}\nfunction storeWords(doc, wordRE, result, seen, ignoreAt) {\n for (let lines = doc.iterLines(), pos = 0; !lines.next().done;) {\n let { value } = lines, m;\n wordRE.lastIndex = 0;\n while (m = wordRE.exec(value)) {\n if (!seen[m[0]] && pos + m.index != ignoreAt) {\n result.push({ type: \"text\", label: m[0] });\n seen[m[0]] = true;\n if (result.length >= 2000 /* MaxList */)\n return;\n }\n }\n pos += value.length + 1;\n }\n}\nfunction collectWords(doc, cache, wordRE, to, ignoreAt) {\n let big = doc.length >= 1000 /* MinCacheLen */;\n let cached = big && cache.get(doc);\n if (cached)\n return cached;\n let result = [], seen = Object.create(null);\n if (doc.children) {\n let pos = 0;\n for (let ch of doc.children) {\n if (ch.length >= 1000 /* MinCacheLen */) {\n for (let c of collectWords(ch, cache, wordRE, to - pos, ignoreAt - pos)) {\n if (!seen[c.label]) {\n seen[c.label] = true;\n result.push(c);\n }\n }\n }\n else {\n storeWords(ch, wordRE, result, seen, ignoreAt - pos);\n }\n pos += ch.length + 1;\n }\n }\n else {\n storeWords(doc, wordRE, result, seen, ignoreAt);\n }\n if (big && result.length < 2000 /* MaxList */)\n cache.set(doc, result);\n return result;\n}\n/**\nA completion source that will scan the document for words (using a\n[character categorizer](https://codemirror.net/6/docs/ref/#state.EditorState.charCategorizer)), and\nreturn those as completions.\n*/\nconst completeAnyWord = context => {\n let wordChars = context.state.languageDataAt(\"wordChars\", context.pos).join(\"\");\n let re = wordRE(wordChars);\n let token = context.matchBefore(mapRE(re, s => s + \"$\"));\n if (!token && !context.explicit)\n return null;\n let from = token ? token.from : context.pos;\n let options = collectWords(context.state.doc, wordCache(wordChars), re, 50000 /* Range */, from);\n return { from, options, span: mapRE(re, s => \"^\" + s) };\n};\n\n/**\nReturns an extension that enables autocompletion.\n*/\nfunction autocompletion(config = {}) {\n return [\n completionState,\n completionConfig.of(config),\n completionPlugin,\n completionKeymapExt,\n baseTheme\n ];\n}\n/**\nBasic keybindings for autocompletion.\n\n - Ctrl-Space: [`startCompletion`](https://codemirror.net/6/docs/ref/#autocomplete.startCompletion)\n - Escape: [`closeCompletion`](https://codemirror.net/6/docs/ref/#autocomplete.closeCompletion)\n - ArrowDown: [`moveCompletionSelection`](https://codemirror.net/6/docs/ref/#autocomplete.moveCompletionSelection)`(true)`\n - ArrowUp: [`moveCompletionSelection`](https://codemirror.net/6/docs/ref/#autocomplete.moveCompletionSelection)`(false)`\n - PageDown: [`moveCompletionSelection`](https://codemirror.net/6/docs/ref/#autocomplete.moveCompletionSelection)`(true, \"page\")`\n - PageDown: [`moveCompletionSelection`](https://codemirror.net/6/docs/ref/#autocomplete.moveCompletionSelection)`(true, \"page\")`\n - Enter: [`acceptCompletion`](https://codemirror.net/6/docs/ref/#autocomplete.acceptCompletion)\n*/\nconst completionKeymap = [\n { key: \"Ctrl-Space\", run: startCompletion },\n { key: \"Escape\", run: closeCompletion },\n { key: \"ArrowDown\", run: /*@__PURE__*/moveCompletionSelection(true) },\n { key: \"ArrowUp\", run: /*@__PURE__*/moveCompletionSelection(false) },\n { key: \"PageDown\", run: /*@__PURE__*/moveCompletionSelection(true, \"page\") },\n { key: \"PageUp\", run: /*@__PURE__*/moveCompletionSelection(false, \"page\") },\n { key: \"Enter\", run: acceptCompletion }\n];\nconst completionKeymapExt = /*@__PURE__*/Prec.highest(/*@__PURE__*/keymap.computeN([completionConfig], state => state.facet(completionConfig).defaultKeymap ? [completionKeymap] : []));\n/**\nGet the current completion status. When completions are available,\nthis will return `\"active\"`. When completions are pending (in the\nprocess of being queried), this returns `\"pending\"`. Otherwise, it\nreturns `null`.\n*/\nfunction completionStatus(state) {\n let cState = state.field(completionState, false);\n return cState && cState.active.some(a => a.state == 1 /* Pending */) ? \"pending\"\n : cState && cState.active.some(a => a.state != 0 /* Inactive */) ? \"active\" : null;\n}\n/**\nReturns the available completions as an array.\n*/\nfunction currentCompletions(state) {\n var _a;\n let open = (_a = state.field(completionState, false)) === null || _a === void 0 ? void 0 : _a.open;\n return open ? open.options.map(o => o.completion) : [];\n}\n/**\nReturn the currently selected completion, if any.\n*/\nfunction selectedCompletion(state) {\n var _a;\n let open = (_a = state.field(completionState, false)) === null || _a === void 0 ? void 0 : _a.open;\n return open ? open.options[open.selected].completion : null;\n}\n\nexport { CompletionContext, acceptCompletion, autocompletion, clearSnippet, closeCompletion, completeAnyWord, completeFromList, completionKeymap, completionStatus, currentCompletions, ifIn, ifNotIn, moveCompletionSelection, nextSnippetField, pickedCompletion, prevSnippetField, selectedCompletion, snippet, snippetCompletion, snippetKeymap, startCompletion };\n","import { Annotation, Facet, combineConfig, StateField, EditorSelection, Transaction, ChangeSet, ChangeDesc, StateEffect } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\n\nconst fromHistory = /*@__PURE__*/Annotation.define();\n/**\nTransaction annotation that will prevent that transaction from\nbeing combined with other transactions in the undo history. Given\n`\"before\"`, it'll prevent merging with previous transactions. With\n`\"after\"`, subsequent transactions won't be combined with this\none. With `\"full\"`, the transaction is isolated on both sides.\n*/\nconst isolateHistory = /*@__PURE__*/Annotation.define();\n/**\nThis facet provides a way to register functions that, given a\ntransaction, provide a set of effects that the history should\nstore when inverting the transaction. This can be used to\nintegrate some kinds of effects in the history, so that they can\nbe undone (and redone again).\n*/\nconst invertedEffects = /*@__PURE__*/Facet.define();\nconst historyConfig = /*@__PURE__*/Facet.define({\n combine(configs) {\n return combineConfig(configs, {\n minDepth: 100,\n newGroupDelay: 500\n }, { minDepth: Math.max, newGroupDelay: Math.min });\n }\n});\nfunction changeEnd(changes) {\n let end = 0;\n changes.iterChangedRanges((_, to) => end = to);\n return end;\n}\nconst historyField_ = /*@__PURE__*/StateField.define({\n create() {\n return HistoryState.empty;\n },\n update(state, tr) {\n let config = tr.state.facet(historyConfig);\n let fromHist = tr.annotation(fromHistory);\n if (fromHist) {\n let selection = tr.docChanged ? EditorSelection.single(changeEnd(tr.changes)) : undefined;\n let item = HistEvent.fromTransaction(tr, selection), from = fromHist.side;\n let other = from == 0 /* Done */ ? state.undone : state.done;\n if (item)\n other = updateBranch(other, other.length, config.minDepth, item);\n else\n other = addSelection(other, tr.startState.selection);\n return new HistoryState(from == 0 /* Done */ ? fromHist.rest : other, from == 0 /* Done */ ? other : fromHist.rest);\n }\n let isolate = tr.annotation(isolateHistory);\n if (isolate == \"full\" || isolate == \"before\")\n state = state.isolate();\n if (tr.annotation(Transaction.addToHistory) === false)\n return !tr.changes.empty ? state.addMapping(tr.changes.desc) : state;\n let event = HistEvent.fromTransaction(tr);\n let time = tr.annotation(Transaction.time), userEvent = tr.annotation(Transaction.userEvent);\n if (event)\n state = state.addChanges(event, time, userEvent, config.newGroupDelay, config.minDepth);\n else if (tr.selection)\n state = state.addSelection(tr.startState.selection, time, userEvent, config.newGroupDelay);\n if (isolate == \"full\" || isolate == \"after\")\n state = state.isolate();\n return state;\n },\n toJSON(value) {\n return { done: value.done.map(e => e.toJSON()), undone: value.undone.map(e => e.toJSON()) };\n },\n fromJSON(json) {\n return new HistoryState(json.done.map(HistEvent.fromJSON), json.undone.map(HistEvent.fromJSON));\n }\n});\n/**\nCreate a history extension with the given configuration.\n*/\nfunction history(config = {}) {\n return [\n historyField_,\n historyConfig.of(config),\n EditorView.domEventHandlers({\n beforeinput(e, view) {\n let command = e.inputType == \"historyUndo\" ? undo : e.inputType == \"historyRedo\" ? redo : null;\n if (!command)\n return false;\n e.preventDefault();\n return command(view);\n }\n })\n ];\n}\n/**\nThe state field used to store the history data. Should probably\nonly be used when you want to\n[serialize](https://codemirror.net/6/docs/ref/#state.EditorState.toJSON) or\n[deserialize](https://codemirror.net/6/docs/ref/#state.EditorState^fromJSON) state objects in a way\nthat preserves history.\n*/\nconst historyField = historyField_;\nfunction cmd(side, selection) {\n return function ({ state, dispatch }) {\n if (!selection && state.readOnly)\n return false;\n let historyState = state.field(historyField_, false);\n if (!historyState)\n return false;\n let tr = historyState.pop(side, state, selection);\n if (!tr)\n return false;\n dispatch(tr);\n return true;\n };\n}\n/**\nUndo a single group of history events. Returns false if no group\nwas available.\n*/\nconst undo = /*@__PURE__*/cmd(0 /* Done */, false);\n/**\nRedo a group of history events. Returns false if no group was\navailable.\n*/\nconst redo = /*@__PURE__*/cmd(1 /* Undone */, false);\n/**\nUndo a selection change.\n*/\nconst undoSelection = /*@__PURE__*/cmd(0 /* Done */, true);\n/**\nRedo a selection change.\n*/\nconst redoSelection = /*@__PURE__*/cmd(1 /* Undone */, true);\nfunction depth(side) {\n return function (state) {\n let histState = state.field(historyField_, false);\n if (!histState)\n return 0;\n let branch = side == 0 /* Done */ ? histState.done : histState.undone;\n return branch.length - (branch.length && !branch[0].changes ? 1 : 0);\n };\n}\n/**\nThe amount of undoable change events available in a given state.\n*/\nconst undoDepth = /*@__PURE__*/depth(0 /* Done */);\n/**\nThe amount of redoable change events available in a given state.\n*/\nconst redoDepth = /*@__PURE__*/depth(1 /* Undone */);\n// History events store groups of changes or effects that need to be\n// undone/redone together.\nclass HistEvent {\n constructor(\n // The changes in this event. Normal events hold at least one\n // change or effect. But it may be necessary to store selection\n // events before the first change, in which case a special type of\n // instance is created which doesn't hold any changes, with\n // changes == startSelection == undefined\n changes, \n // The effects associated with this event\n effects, mapped, \n // The selection before this event\n startSelection, \n // Stores selection changes after this event, to be used for\n // selection undo/redo.\n selectionsAfter) {\n this.changes = changes;\n this.effects = effects;\n this.mapped = mapped;\n this.startSelection = startSelection;\n this.selectionsAfter = selectionsAfter;\n }\n setSelAfter(after) {\n return new HistEvent(this.changes, this.effects, this.mapped, this.startSelection, after);\n }\n toJSON() {\n var _a, _b, _c;\n return {\n changes: (_a = this.changes) === null || _a === void 0 ? void 0 : _a.toJSON(),\n mapped: (_b = this.mapped) === null || _b === void 0 ? void 0 : _b.toJSON(),\n startSelection: (_c = this.startSelection) === null || _c === void 0 ? void 0 : _c.toJSON(),\n selectionsAfter: this.selectionsAfter.map(s => s.toJSON())\n };\n }\n static fromJSON(json) {\n return new HistEvent(json.changes && ChangeSet.fromJSON(json.changes), [], json.mapped && ChangeDesc.fromJSON(json.mapped), json.startSelection && EditorSelection.fromJSON(json.startSelection), json.selectionsAfter.map(EditorSelection.fromJSON));\n }\n // This does not check `addToHistory` and such, it assumes the\n // transaction needs to be converted to an item. Returns null when\n // there are no changes or effects in the transaction.\n static fromTransaction(tr, selection) {\n let effects = none;\n for (let invert of tr.startState.facet(invertedEffects)) {\n let result = invert(tr);\n if (result.length)\n effects = effects.concat(result);\n }\n if (!effects.length && tr.changes.empty)\n return null;\n return new HistEvent(tr.changes.invert(tr.startState.doc), effects, undefined, selection || tr.startState.selection, none);\n }\n static selection(selections) {\n return new HistEvent(undefined, none, undefined, undefined, selections);\n }\n}\nfunction updateBranch(branch, to, maxLen, newEvent) {\n let start = to + 1 > maxLen + 20 ? to - maxLen - 1 : 0;\n let newBranch = branch.slice(start, to);\n newBranch.push(newEvent);\n return newBranch;\n}\nfunction isAdjacent(a, b) {\n let ranges = [], isAdjacent = false;\n a.iterChangedRanges((f, t) => ranges.push(f, t));\n b.iterChangedRanges((_f, _t, f, t) => {\n for (let i = 0; i < ranges.length;) {\n let from = ranges[i++], to = ranges[i++];\n if (t >= from && f <= to)\n isAdjacent = true;\n }\n });\n return isAdjacent;\n}\nfunction eqSelectionShape(a, b) {\n return a.ranges.length == b.ranges.length &&\n a.ranges.filter((r, i) => r.empty != b.ranges[i].empty).length === 0;\n}\nfunction conc(a, b) {\n return !a.length ? b : !b.length ? a : a.concat(b);\n}\nconst none = [];\nconst MaxSelectionsPerEvent = 200;\nfunction addSelection(branch, selection) {\n if (!branch.length) {\n return [HistEvent.selection([selection])];\n }\n else {\n let lastEvent = branch[branch.length - 1];\n let sels = lastEvent.selectionsAfter.slice(Math.max(0, lastEvent.selectionsAfter.length - MaxSelectionsPerEvent));\n if (sels.length && sels[sels.length - 1].eq(selection))\n return branch;\n sels.push(selection);\n return updateBranch(branch, branch.length - 1, 1e9, lastEvent.setSelAfter(sels));\n }\n}\n// Assumes the top item has one or more selectionAfter values\nfunction popSelection(branch) {\n let last = branch[branch.length - 1];\n let newBranch = branch.slice();\n newBranch[branch.length - 1] = last.setSelAfter(last.selectionsAfter.slice(0, last.selectionsAfter.length - 1));\n return newBranch;\n}\n// Add a mapping to the top event in the given branch. If this maps\n// away all the changes and effects in that item, drop it and\n// propagate the mapping to the next item.\nfunction addMappingToBranch(branch, mapping) {\n if (!branch.length)\n return branch;\n let length = branch.length, selections = none;\n while (length) {\n let event = mapEvent(branch[length - 1], mapping, selections);\n if (event.changes && !event.changes.empty || event.effects.length) { // Event survived mapping\n let result = branch.slice(0, length);\n result[length - 1] = event;\n return result;\n }\n else { // Drop this event, since there's no changes or effects left\n mapping = event.mapped;\n length--;\n selections = event.selectionsAfter;\n }\n }\n return selections.length ? [HistEvent.selection(selections)] : none;\n}\nfunction mapEvent(event, mapping, extraSelections) {\n let selections = conc(event.selectionsAfter.length ? event.selectionsAfter.map(s => s.map(mapping)) : none, extraSelections);\n // Change-less events don't store mappings (they are always the last event in a branch)\n if (!event.changes)\n return HistEvent.selection(selections);\n let mappedChanges = event.changes.map(mapping), before = mapping.mapDesc(event.changes, true);\n let fullMapping = event.mapped ? event.mapped.composeDesc(before) : before;\n return new HistEvent(mappedChanges, StateEffect.mapEffects(event.effects, mapping), fullMapping, event.startSelection.map(before), selections);\n}\nconst joinableUserEvent = /^(input\\.type|delete)($|\\.)/;\nclass HistoryState {\n constructor(done, undone, prevTime = 0, prevUserEvent = undefined) {\n this.done = done;\n this.undone = undone;\n this.prevTime = prevTime;\n this.prevUserEvent = prevUserEvent;\n }\n isolate() {\n return this.prevTime ? new HistoryState(this.done, this.undone) : this;\n }\n addChanges(event, time, userEvent, newGroupDelay, maxLen) {\n let done = this.done, lastEvent = done[done.length - 1];\n if (lastEvent && lastEvent.changes && !lastEvent.changes.empty && event.changes &&\n (!userEvent || joinableUserEvent.test(userEvent)) &&\n ((!lastEvent.selectionsAfter.length &&\n time - this.prevTime < newGroupDelay &&\n isAdjacent(lastEvent.changes, event.changes)) ||\n // For compose (but not compose.start) events, always join with previous event\n userEvent == \"input.type.compose\")) {\n done = updateBranch(done, done.length - 1, maxLen, new HistEvent(event.changes.compose(lastEvent.changes), conc(event.effects, lastEvent.effects), lastEvent.mapped, lastEvent.startSelection, none));\n }\n else {\n done = updateBranch(done, done.length, maxLen, event);\n }\n return new HistoryState(done, none, time, userEvent);\n }\n addSelection(selection, time, userEvent, newGroupDelay) {\n let last = this.done.length ? this.done[this.done.length - 1].selectionsAfter : none;\n if (last.length > 0 &&\n time - this.prevTime < newGroupDelay &&\n userEvent == this.prevUserEvent && userEvent && /^select($|\\.)/.test(userEvent) &&\n eqSelectionShape(last[last.length - 1], selection))\n return this;\n return new HistoryState(addSelection(this.done, selection), this.undone, time, userEvent);\n }\n addMapping(mapping) {\n return new HistoryState(addMappingToBranch(this.done, mapping), addMappingToBranch(this.undone, mapping), this.prevTime, this.prevUserEvent);\n }\n pop(side, state, selection) {\n let branch = side == 0 /* Done */ ? this.done : this.undone;\n if (branch.length == 0)\n return null;\n let event = branch[branch.length - 1];\n if (selection && event.selectionsAfter.length) {\n return state.update({\n selection: event.selectionsAfter[event.selectionsAfter.length - 1],\n annotations: fromHistory.of({ side, rest: popSelection(branch) }),\n userEvent: side == 0 /* Done */ ? \"select.undo\" : \"select.redo\",\n scrollIntoView: true\n });\n }\n else if (!event.changes) {\n return null;\n }\n else {\n let rest = branch.length == 1 ? none : branch.slice(0, branch.length - 1);\n if (event.mapped)\n rest = addMappingToBranch(rest, event.mapped);\n return state.update({\n changes: event.changes,\n selection: event.startSelection,\n effects: event.effects,\n annotations: fromHistory.of({ side, rest }),\n filter: false,\n userEvent: side == 0 /* Done */ ? \"undo\" : \"redo\",\n scrollIntoView: true\n });\n }\n }\n}\nHistoryState.empty = /*@__PURE__*/new HistoryState(none, none);\n/**\nDefault key bindings for the undo history.\n\n- Mod-z: [`undo`](https://codemirror.net/6/docs/ref/#history.undo).\n- Mod-y (Mod-Shift-z on macOS): [`redo`](https://codemirror.net/6/docs/ref/#history.redo).\n- Mod-u: [`undoSelection`](https://codemirror.net/6/docs/ref/#history.undoSelection).\n- Alt-u (Mod-Shift-u on macOS): [`redoSelection`](https://codemirror.net/6/docs/ref/#history.redoSelection).\n*/\nconst historyKeymap = [\n { key: \"Mod-z\", run: undo, preventDefault: true },\n { key: \"Mod-y\", mac: \"Mod-Shift-z\", run: redo, preventDefault: true },\n { key: \"Mod-u\", run: undoSelection, preventDefault: true },\n { key: \"Alt-u\", mac: \"Mod-Shift-u\", run: redoSelection, preventDefault: true }\n];\n\nexport { history, historyField, historyKeymap, invertedEffects, isolateHistory, redo, redoDepth, redoSelection, undo, undoDepth, undoSelection };\n","import { EditorView, ViewPlugin, BlockType, PluginField, Direction } from '@codemirror/view';\nimport { RangeSet, RangeValue } from '@codemirror/rangeset';\nimport { MapMode, Facet, combineConfig } from '@codemirror/state';\n\n/**\nA gutter marker represents a bit of information attached to a line\nin a specific gutter. Your own custom markers have to extend this\nclass.\n*/\nclass GutterMarker extends RangeValue {\n /**\n @internal\n */\n compare(other) {\n return this == other || this.constructor == other.constructor && this.eq(other);\n }\n /**\n Compare this marker to another marker of the same type.\n */\n eq(other) { return false; }\n /**\n Called if the marker has a `toDOM` method and its representation\n was removed from a gutter.\n */\n destroy(dom) { }\n}\nGutterMarker.prototype.elementClass = \"\";\nGutterMarker.prototype.toDOM = undefined;\nGutterMarker.prototype.mapMode = MapMode.TrackBefore;\nGutterMarker.prototype.startSide = GutterMarker.prototype.endSide = -1;\nGutterMarker.prototype.point = true;\n/**\nFacet used to add a class to all gutter elements for a given line.\nMarkers given to this facet should _only_ define an\n[`elementclass`](https://codemirror.net/6/docs/ref/#gutter.GutterMarker.elementClass), not a\n[`toDOM`](https://codemirror.net/6/docs/ref/#gutter.GutterMarker.toDOM) (or the marker will appear\nin all gutters for the line).\n*/\nconst gutterLineClass = /*@__PURE__*/Facet.define();\nconst defaults = {\n class: \"\",\n renderEmptyElements: false,\n elementStyle: \"\",\n markers: () => RangeSet.empty,\n lineMarker: () => null,\n lineMarkerChange: null,\n initialSpacer: null,\n updateSpacer: null,\n domEventHandlers: {}\n};\nconst activeGutters = /*@__PURE__*/Facet.define();\n/**\nDefine an editor gutter. The order in which the gutters appear is\ndetermined by their extension priority.\n*/\nfunction gutter(config) {\n return [gutters(), activeGutters.of(Object.assign(Object.assign({}, defaults), config))];\n}\nconst baseTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-gutters\": {\n display: \"flex\",\n height: \"100%\",\n boxSizing: \"border-box\",\n left: 0,\n zIndex: 200\n },\n \"&light .cm-gutters\": {\n backgroundColor: \"#f5f5f5\",\n color: \"#999\",\n borderRight: \"1px solid #ddd\"\n },\n \"&dark .cm-gutters\": {\n backgroundColor: \"#333338\",\n color: \"#ccc\"\n },\n \".cm-gutter\": {\n display: \"flex !important\",\n flexDirection: \"column\",\n flexShrink: 0,\n boxSizing: \"border-box\",\n minHeight: \"100%\",\n overflow: \"hidden\"\n },\n \".cm-gutterElement\": {\n boxSizing: \"border-box\"\n },\n \".cm-lineNumbers .cm-gutterElement\": {\n padding: \"0 3px 0 5px\",\n minWidth: \"20px\",\n textAlign: \"right\",\n whiteSpace: \"nowrap\"\n },\n \"&light .cm-activeLineGutter\": {\n backgroundColor: \"#e2f2ff\"\n },\n \"&dark .cm-activeLineGutter\": {\n backgroundColor: \"#222227\"\n }\n});\nconst unfixGutters = /*@__PURE__*/Facet.define({\n combine: values => values.some(x => x)\n});\n/**\nThe gutter-drawing plugin is automatically enabled when you add a\ngutter, but you can use this function to explicitly configure it.\n\nUnless `fixed` is explicitly set to `false`, the gutters are\nfixed, meaning they don't scroll along with the content\nhorizontally (except on Internet Explorer, which doesn't support\nCSS [`position:\nsticky`](https://developer.mozilla.org/en-US/docs/Web/CSS/position#sticky)).\n*/\nfunction gutters(config) {\n let result = [\n gutterView,\n baseTheme\n ];\n if (config && config.fixed === false)\n result.push(unfixGutters.of(true));\n return result;\n}\nconst gutterView = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.prevViewport = view.viewport;\n this.dom = document.createElement(\"div\");\n this.dom.className = \"cm-gutters\";\n this.dom.setAttribute(\"aria-hidden\", \"true\");\n this.dom.style.minHeight = this.view.contentHeight + \"px\";\n this.gutters = view.state.facet(activeGutters).map(conf => new SingleGutterView(view, conf));\n for (let gutter of this.gutters)\n this.dom.appendChild(gutter.dom);\n this.fixed = !view.state.facet(unfixGutters);\n if (this.fixed) {\n // FIXME IE11 fallback, which doesn't support position: sticky,\n // by using position: relative + event handlers that realign the\n // gutter (or just force fixed=false on IE11?)\n this.dom.style.position = \"sticky\";\n }\n this.syncGutters(false);\n view.scrollDOM.insertBefore(this.dom, view.contentDOM);\n }\n update(update) {\n if (this.updateGutters(update)) {\n // Detach during sync when the viewport changed significantly\n // (such as during scrolling), since for large updates that is\n // faster.\n let vpA = this.prevViewport, vpB = update.view.viewport;\n let vpOverlap = Math.min(vpA.to, vpB.to) - Math.max(vpA.from, vpB.from);\n this.syncGutters(vpOverlap < (vpB.to - vpB.from) * 0.8);\n }\n if (update.geometryChanged)\n this.dom.style.minHeight = this.view.contentHeight + \"px\";\n if (this.view.state.facet(unfixGutters) != !this.fixed) {\n this.fixed = !this.fixed;\n this.dom.style.position = this.fixed ? \"sticky\" : \"\";\n }\n this.prevViewport = update.view.viewport;\n }\n syncGutters(detach) {\n let after = this.dom.nextSibling;\n if (detach)\n this.dom.remove();\n let lineClasses = RangeSet.iter(this.view.state.facet(gutterLineClass), this.view.viewport.from);\n let classSet = [];\n let contexts = this.gutters.map(gutter => new UpdateContext(gutter, this.view.viewport, -this.view.documentPadding.top));\n for (let line of this.view.viewportLineBlocks) {\n let text;\n if (Array.isArray(line.type)) {\n for (let b of line.type)\n if (b.type == BlockType.Text) {\n text = b;\n break;\n }\n }\n else {\n text = line.type == BlockType.Text ? line : undefined;\n }\n if (!text)\n continue;\n if (classSet.length)\n classSet = [];\n advanceCursor(lineClasses, classSet, line.from);\n for (let cx of contexts)\n cx.line(this.view, text, classSet);\n }\n for (let cx of contexts)\n cx.finish();\n if (detach)\n this.view.scrollDOM.insertBefore(this.dom, after);\n }\n updateGutters(update) {\n let prev = update.startState.facet(activeGutters), cur = update.state.facet(activeGutters);\n let change = update.docChanged || update.heightChanged || update.viewportChanged ||\n !RangeSet.eq(update.startState.facet(gutterLineClass), update.state.facet(gutterLineClass), update.view.viewport.from, update.view.viewport.to);\n if (prev == cur) {\n for (let gutter of this.gutters)\n if (gutter.update(update))\n change = true;\n }\n else {\n change = true;\n let gutters = [];\n for (let conf of cur) {\n let known = prev.indexOf(conf);\n if (known < 0) {\n gutters.push(new SingleGutterView(this.view, conf));\n }\n else {\n this.gutters[known].update(update);\n gutters.push(this.gutters[known]);\n }\n }\n for (let g of this.gutters) {\n g.dom.remove();\n if (gutters.indexOf(g) < 0)\n g.destroy();\n }\n for (let g of gutters)\n this.dom.appendChild(g.dom);\n this.gutters = gutters;\n }\n return change;\n }\n destroy() {\n for (let view of this.gutters)\n view.destroy();\n this.dom.remove();\n }\n}, {\n provide: /*@__PURE__*/PluginField.scrollMargins.from(value => {\n if (value.gutters.length == 0 || !value.fixed)\n return null;\n return value.view.textDirection == Direction.LTR ? { left: value.dom.offsetWidth } : { right: value.dom.offsetWidth };\n })\n});\nfunction asArray(val) { return (Array.isArray(val) ? val : [val]); }\nfunction advanceCursor(cursor, collect, pos) {\n while (cursor.value && cursor.from <= pos) {\n if (cursor.from == pos)\n collect.push(cursor.value);\n cursor.next();\n }\n}\nclass UpdateContext {\n constructor(gutter, viewport, height) {\n this.gutter = gutter;\n this.height = height;\n this.localMarkers = [];\n this.i = 0;\n this.cursor = RangeSet.iter(gutter.markers, viewport.from);\n }\n line(view, line, extraMarkers) {\n if (this.localMarkers.length)\n this.localMarkers = [];\n advanceCursor(this.cursor, this.localMarkers, line.from);\n let localMarkers = extraMarkers.length ? this.localMarkers.concat(extraMarkers) : this.localMarkers;\n let forLine = this.gutter.config.lineMarker(view, line, localMarkers);\n if (forLine)\n localMarkers.unshift(forLine);\n let gutter = this.gutter;\n if (localMarkers.length == 0 && !gutter.config.renderEmptyElements)\n return;\n let above = line.top - this.height;\n if (this.i == gutter.elements.length) {\n let newElt = new GutterElement(view, line.height, above, localMarkers);\n gutter.elements.push(newElt);\n gutter.dom.appendChild(newElt.dom);\n }\n else {\n gutter.elements[this.i].update(view, line.height, above, localMarkers);\n }\n this.height = line.bottom;\n this.i++;\n }\n finish() {\n let gutter = this.gutter;\n while (gutter.elements.length > this.i) {\n let last = gutter.elements.pop();\n gutter.dom.removeChild(last.dom);\n last.destroy();\n }\n }\n}\nclass SingleGutterView {\n constructor(view, config) {\n this.view = view;\n this.config = config;\n this.elements = [];\n this.spacer = null;\n this.dom = document.createElement(\"div\");\n this.dom.className = \"cm-gutter\" + (this.config.class ? \" \" + this.config.class : \"\");\n for (let prop in config.domEventHandlers) {\n this.dom.addEventListener(prop, (event) => {\n let line = view.lineBlockAtHeight(event.clientY - view.documentTop);\n if (config.domEventHandlers[prop](view, line, event))\n event.preventDefault();\n });\n }\n this.markers = asArray(config.markers(view));\n if (config.initialSpacer) {\n this.spacer = new GutterElement(view, 0, 0, [config.initialSpacer(view)]);\n this.dom.appendChild(this.spacer.dom);\n this.spacer.dom.style.cssText += \"visibility: hidden; pointer-events: none\";\n }\n }\n update(update) {\n let prevMarkers = this.markers;\n this.markers = asArray(this.config.markers(update.view));\n if (this.spacer && this.config.updateSpacer) {\n let updated = this.config.updateSpacer(this.spacer.markers[0], update);\n if (updated != this.spacer.markers[0])\n this.spacer.update(update.view, 0, 0, [updated]);\n }\n let vp = update.view.viewport;\n return !RangeSet.eq(this.markers, prevMarkers, vp.from, vp.to) ||\n (this.config.lineMarkerChange ? this.config.lineMarkerChange(update) : false);\n }\n destroy() {\n for (let elt of this.elements)\n elt.destroy();\n }\n}\nclass GutterElement {\n constructor(view, height, above, markers) {\n this.height = -1;\n this.above = 0;\n this.markers = [];\n this.dom = document.createElement(\"div\");\n this.update(view, height, above, markers);\n }\n update(view, height, above, markers) {\n if (this.height != height)\n this.dom.style.height = (this.height = height) + \"px\";\n if (this.above != above)\n this.dom.style.marginTop = (this.above = above) ? above + \"px\" : \"\";\n if (!sameMarkers(this.markers, markers))\n this.setMarkers(view, markers);\n }\n setMarkers(view, markers) {\n let cls = \"cm-gutterElement\", domPos = this.dom.firstChild;\n for (let iNew = 0, iOld = 0;;) {\n let skipTo = iOld, marker = iNew < markers.length ? markers[iNew++] : null, matched = false;\n if (marker) {\n let c = marker.elementClass;\n if (c)\n cls += \" \" + c;\n for (let i = iOld; i < this.markers.length; i++)\n if (this.markers[i].compare(marker)) {\n skipTo = i;\n matched = true;\n break;\n }\n }\n else {\n skipTo = this.markers.length;\n }\n while (iOld < skipTo) {\n let next = this.markers[iOld++];\n if (next.toDOM) {\n next.destroy(domPos);\n let after = domPos.nextSibling;\n domPos.remove();\n domPos = after;\n }\n }\n if (!marker)\n break;\n if (marker.toDOM) {\n if (matched)\n domPos = domPos.nextSibling;\n else\n this.dom.insertBefore(marker.toDOM(view), domPos);\n }\n if (matched)\n iOld++;\n }\n this.dom.className = cls;\n this.markers = markers;\n }\n destroy() {\n this.setMarkers(null, []); // First argument not used unless creating markers\n }\n}\nfunction sameMarkers(a, b) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!a[i].compare(b[i]))\n return false;\n return true;\n}\n/**\nFacet used to provide markers to the line number gutter.\n*/\nconst lineNumberMarkers = /*@__PURE__*/Facet.define();\nconst lineNumberConfig = /*@__PURE__*/Facet.define({\n combine(values) {\n return combineConfig(values, { formatNumber: String, domEventHandlers: {} }, {\n domEventHandlers(a, b) {\n let result = Object.assign({}, a);\n for (let event in b) {\n let exists = result[event], add = b[event];\n result[event] = exists ? (view, line, event) => exists(view, line, event) || add(view, line, event) : add;\n }\n return result;\n }\n });\n }\n});\nclass NumberMarker extends GutterMarker {\n constructor(number) {\n super();\n this.number = number;\n }\n eq(other) { return this.number == other.number; }\n toDOM() { return document.createTextNode(this.number); }\n}\nfunction formatNumber(view, number) {\n return view.state.facet(lineNumberConfig).formatNumber(number, view.state);\n}\nconst lineNumberGutter = /*@__PURE__*/activeGutters.compute([lineNumberConfig], state => ({\n class: \"cm-lineNumbers\",\n renderEmptyElements: false,\n markers(view) { return view.state.facet(lineNumberMarkers); },\n lineMarker(view, line, others) {\n if (others.some(m => m.toDOM))\n return null;\n return new NumberMarker(formatNumber(view, view.state.doc.lineAt(line.from).number));\n },\n lineMarkerChange: update => update.startState.facet(lineNumberConfig) != update.state.facet(lineNumberConfig),\n initialSpacer(view) {\n return new NumberMarker(formatNumber(view, maxLineNumber(view.state.doc.lines)));\n },\n updateSpacer(spacer, update) {\n let max = formatNumber(update.view, maxLineNumber(update.view.state.doc.lines));\n return max == spacer.number ? spacer : new NumberMarker(max);\n },\n domEventHandlers: state.facet(lineNumberConfig).domEventHandlers\n}));\n/**\nCreate a line number gutter extension.\n*/\nfunction lineNumbers(config = {}) {\n return [\n lineNumberConfig.of(config),\n gutters(),\n lineNumberGutter\n ];\n}\nfunction maxLineNumber(lines) {\n let last = 9;\n while (last < lines)\n last = last * 10 + 9;\n return last;\n}\nconst activeLineGutterMarker = /*@__PURE__*/new class extends GutterMarker {\n constructor() {\n super(...arguments);\n this.elementClass = \"cm-activeLineGutter\";\n }\n};\nconst activeLineGutterHighlighter = /*@__PURE__*/gutterLineClass.compute([\"selection\"], state => {\n let marks = [], last = -1;\n for (let range of state.selection.ranges)\n if (range.empty) {\n let linePos = state.doc.lineAt(range.head).from;\n if (linePos > last) {\n last = linePos;\n marks.push(activeLineGutterMarker.range(linePos));\n }\n }\n return RangeSet.of(marks);\n});\n/**\nReturns an extension that adds a `cm-activeLineGutter` class to\nall gutter elements on the [active\nline](https://codemirror.net/6/docs/ref/#view.highlightActiveLine).\n*/\nfunction highlightActiveLineGutter() {\n return activeLineGutterHighlighter;\n}\n\nexport { GutterMarker, gutter, gutterLineClass, gutters, highlightActiveLineGutter, lineNumberMarkers, lineNumbers };\n","import { StateEffect, StateField, Facet, combineConfig } from '@codemirror/state';\nimport { Decoration, EditorView, WidgetType, ViewPlugin } from '@codemirror/view';\nimport { foldable, language } from '@codemirror/language';\nimport { gutter, GutterMarker } from '@codemirror/gutter';\nimport { RangeSet, RangeSetBuilder } from '@codemirror/rangeset';\n\nfunction mapRange(range, mapping) {\n let from = mapping.mapPos(range.from, 1), to = mapping.mapPos(range.to, -1);\n return from >= to ? undefined : { from, to };\n}\n/**\nState effect that can be attached to a transaction to fold the\ngiven range. (You probably only need this in exceptional\ncircumstances—usually you'll just want to let\n[`foldCode`](https://codemirror.net/6/docs/ref/#fold.foldCode) and the [fold\ngutter](https://codemirror.net/6/docs/ref/#fold.foldGutter) create the transactions.)\n*/\nconst foldEffect = /*@__PURE__*/StateEffect.define({ map: mapRange });\n/**\nState effect that unfolds the given range (if it was folded).\n*/\nconst unfoldEffect = /*@__PURE__*/StateEffect.define({ map: mapRange });\nfunction selectedLines(view) {\n let lines = [];\n for (let { head } of view.state.selection.ranges) {\n if (lines.some(l => l.from <= head && l.to >= head))\n continue;\n lines.push(view.lineBlockAt(head));\n }\n return lines;\n}\nconst foldState = /*@__PURE__*/StateField.define({\n create() {\n return Decoration.none;\n },\n update(folded, tr) {\n folded = folded.map(tr.changes);\n for (let e of tr.effects) {\n if (e.is(foldEffect) && !foldExists(folded, e.value.from, e.value.to))\n folded = folded.update({ add: [foldWidget.range(e.value.from, e.value.to)] });\n else if (e.is(unfoldEffect))\n folded = folded.update({ filter: (from, to) => e.value.from != from || e.value.to != to,\n filterFrom: e.value.from, filterTo: e.value.to });\n }\n // Clear folded ranges that cover the selection head\n if (tr.selection) {\n let onSelection = false, { head } = tr.selection.main;\n folded.between(head, head, (a, b) => { if (a < head && b > head)\n onSelection = true; });\n if (onSelection)\n folded = folded.update({\n filterFrom: head,\n filterTo: head,\n filter: (a, b) => b <= head || a >= head\n });\n }\n return folded;\n },\n provide: f => EditorView.decorations.from(f)\n});\n/**\nGet a [range set](https://codemirror.net/6/docs/ref/#rangeset.RangeSet) containing the folded ranges\nin the given state.\n*/\nfunction foldedRanges(state) {\n return state.field(foldState, false) || RangeSet.empty;\n}\nfunction foldInside(state, from, to) {\n var _a;\n let found = null;\n (_a = state.field(foldState, false)) === null || _a === void 0 ? void 0 : _a.between(from, to, (from, to) => {\n if (!found || found.from > from)\n found = { from, to };\n });\n return found;\n}\nfunction foldExists(folded, from, to) {\n let found = false;\n folded.between(from, from, (a, b) => { if (a == from && b == to)\n found = true; });\n return found;\n}\nfunction maybeEnable(state, other) {\n return state.field(foldState, false) ? other : other.concat(StateEffect.appendConfig.of(codeFolding()));\n}\n/**\nFold the lines that are selected, if possible.\n*/\nconst foldCode = view => {\n for (let line of selectedLines(view)) {\n let range = foldable(view.state, line.from, line.to);\n if (range) {\n view.dispatch({ effects: maybeEnable(view.state, [foldEffect.of(range), announceFold(view, range)]) });\n return true;\n }\n }\n return false;\n};\n/**\nUnfold folded ranges on selected lines.\n*/\nconst unfoldCode = view => {\n if (!view.state.field(foldState, false))\n return false;\n let effects = [];\n for (let line of selectedLines(view)) {\n let folded = foldInside(view.state, line.from, line.to);\n if (folded)\n effects.push(unfoldEffect.of(folded), announceFold(view, folded, false));\n }\n if (effects.length)\n view.dispatch({ effects });\n return effects.length > 0;\n};\nfunction announceFold(view, range, fold = true) {\n let lineFrom = view.state.doc.lineAt(range.from).number, lineTo = view.state.doc.lineAt(range.to).number;\n return EditorView.announce.of(`${view.state.phrase(fold ? \"Folded lines\" : \"Unfolded lines\")} ${lineFrom} ${view.state.phrase(\"to\")} ${lineTo}.`);\n}\n/**\nFold all top-level foldable ranges.\n*/\nconst foldAll = view => {\n let { state } = view, effects = [];\n for (let pos = 0; pos < state.doc.length;) {\n let line = view.lineBlockAt(pos), range = foldable(state, line.from, line.to);\n if (range)\n effects.push(foldEffect.of(range));\n pos = (range ? view.lineBlockAt(range.to) : line).to + 1;\n }\n if (effects.length)\n view.dispatch({ effects: maybeEnable(view.state, effects) });\n return !!effects.length;\n};\n/**\nUnfold all folded code.\n*/\nconst unfoldAll = view => {\n let field = view.state.field(foldState, false);\n if (!field || !field.size)\n return false;\n let effects = [];\n field.between(0, view.state.doc.length, (from, to) => { effects.push(unfoldEffect.of({ from, to })); });\n view.dispatch({ effects });\n return true;\n};\n/**\nDefault fold-related key bindings.\n\n - Ctrl-Shift-[ (Cmd-Alt-[ on macOS): [`foldCode`](https://codemirror.net/6/docs/ref/#fold.foldCode).\n - Ctrl-Shift-] (Cmd-Alt-] on macOS): [`unfoldCode`](https://codemirror.net/6/docs/ref/#fold.unfoldCode).\n - Ctrl-Alt-[: [`foldAll`](https://codemirror.net/6/docs/ref/#fold.foldAll).\n - Ctrl-Alt-]: [`unfoldAll`](https://codemirror.net/6/docs/ref/#fold.unfoldAll).\n*/\nconst foldKeymap = [\n { key: \"Ctrl-Shift-[\", mac: \"Cmd-Alt-[\", run: foldCode },\n { key: \"Ctrl-Shift-]\", mac: \"Cmd-Alt-]\", run: unfoldCode },\n { key: \"Ctrl-Alt-[\", run: foldAll },\n { key: \"Ctrl-Alt-]\", run: unfoldAll }\n];\nconst defaultConfig = {\n placeholderDOM: null,\n placeholderText: \"…\"\n};\nconst foldConfig = /*@__PURE__*/Facet.define({\n combine(values) { return combineConfig(values, defaultConfig); }\n});\n/**\nCreate an extension that configures code folding.\n*/\nfunction codeFolding(config) {\n let result = [foldState, baseTheme];\n if (config)\n result.push(foldConfig.of(config));\n return result;\n}\nconst foldWidget = /*@__PURE__*/Decoration.replace({ widget: /*@__PURE__*/new class extends WidgetType {\n toDOM(view) {\n let { state } = view, conf = state.facet(foldConfig);\n let onclick = (event) => {\n let line = view.lineBlockAt(view.posAtDOM(event.target));\n let folded = foldInside(view.state, line.from, line.to);\n if (folded)\n view.dispatch({ effects: unfoldEffect.of(folded) });\n event.preventDefault();\n };\n if (conf.placeholderDOM)\n return conf.placeholderDOM(view, onclick);\n let element = document.createElement(\"span\");\n element.textContent = conf.placeholderText;\n element.setAttribute(\"aria-label\", state.phrase(\"folded code\"));\n element.title = state.phrase(\"unfold\");\n element.className = \"cm-foldPlaceholder\";\n element.onclick = onclick;\n return element;\n }\n } });\nconst foldGutterDefaults = {\n openText: \"⌄\",\n closedText: \"›\",\n markerDOM: null,\n domEventHandlers: {},\n};\nclass FoldMarker extends GutterMarker {\n constructor(config, open) {\n super();\n this.config = config;\n this.open = open;\n }\n eq(other) { return this.config == other.config && this.open == other.open; }\n toDOM(view) {\n if (this.config.markerDOM)\n return this.config.markerDOM(this.open);\n let span = document.createElement(\"span\");\n span.textContent = this.open ? this.config.openText : this.config.closedText;\n span.title = view.state.phrase(this.open ? \"Fold line\" : \"Unfold line\");\n return span;\n }\n}\n/**\nCreate an extension that registers a fold gutter, which shows a\nfold status indicator before foldable lines (which can be clicked\nto fold or unfold the line).\n*/\nfunction foldGutter(config = {}) {\n let fullConfig = Object.assign(Object.assign({}, foldGutterDefaults), config);\n let canFold = new FoldMarker(fullConfig, true), canUnfold = new FoldMarker(fullConfig, false);\n let markers = ViewPlugin.fromClass(class {\n constructor(view) {\n this.from = view.viewport.from;\n this.markers = this.buildMarkers(view);\n }\n update(update) {\n if (update.docChanged || update.viewportChanged ||\n update.startState.facet(language) != update.state.facet(language) ||\n update.startState.field(foldState, false) != update.state.field(foldState, false))\n this.markers = this.buildMarkers(update.view);\n }\n buildMarkers(view) {\n let builder = new RangeSetBuilder();\n for (let line of view.viewportLineBlocks) {\n let mark = foldInside(view.state, line.from, line.to) ? canUnfold\n : foldable(view.state, line.from, line.to) ? canFold : null;\n if (mark)\n builder.add(line.from, line.from, mark);\n }\n return builder.finish();\n }\n });\n let { domEventHandlers } = fullConfig;\n return [\n markers,\n gutter({\n class: \"cm-foldGutter\",\n markers(view) { var _a; return ((_a = view.plugin(markers)) === null || _a === void 0 ? void 0 : _a.markers) || RangeSet.empty; },\n initialSpacer() {\n return new FoldMarker(fullConfig, false);\n },\n domEventHandlers: Object.assign(Object.assign({}, domEventHandlers), { click: (view, line, event) => {\n if (domEventHandlers.click && domEventHandlers.click(view, line, event))\n return true;\n let folded = foldInside(view.state, line.from, line.to);\n if (folded) {\n view.dispatch({ effects: unfoldEffect.of(folded) });\n return true;\n }\n let range = foldable(view.state, line.from, line.to);\n if (range) {\n view.dispatch({ effects: foldEffect.of(range) });\n return true;\n }\n return false;\n } })\n }),\n codeFolding()\n ];\n}\nconst baseTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-foldPlaceholder\": {\n backgroundColor: \"#eee\",\n border: \"1px solid #ddd\",\n color: \"#888\",\n borderRadius: \".2em\",\n margin: \"0 1px\",\n padding: \"0 1px\",\n cursor: \"pointer\"\n },\n \".cm-foldGutter span\": {\n padding: \"0 1px\",\n cursor: \"pointer\"\n }\n});\n\nexport { codeFolding, foldAll, foldCode, foldEffect, foldGutter, foldKeymap, foldedRanges, unfoldAll, unfoldCode, unfoldEffect };\n","import { EditorView } from '@codemirror/view';\nimport { StateEffect, MapMode, StateField, EditorSelection, CharCategory } from '@codemirror/state';\nimport { RangeValue, RangeSet } from '@codemirror/rangeset';\nimport { codePointSize, codePointAt, fromCodePoint } from '@codemirror/text';\nimport { syntaxTree } from '@codemirror/language';\n\nconst defaults = {\n brackets: [\"(\", \"[\", \"{\", \"'\", '\"'],\n before: \")]}'\\\":;>\"\n};\nconst closeBracketEffect = /*@__PURE__*/StateEffect.define({\n map(value, mapping) {\n let mapped = mapping.mapPos(value, -1, MapMode.TrackAfter);\n return mapped == null ? undefined : mapped;\n }\n});\nconst skipBracketEffect = /*@__PURE__*/StateEffect.define({\n map(value, mapping) { return mapping.mapPos(value); }\n});\nconst closedBracket = /*@__PURE__*/new class extends RangeValue {\n};\nclosedBracket.startSide = 1;\nclosedBracket.endSide = -1;\nconst bracketState = /*@__PURE__*/StateField.define({\n create() { return RangeSet.empty; },\n update(value, tr) {\n if (tr.selection) {\n let lineStart = tr.state.doc.lineAt(tr.selection.main.head).from;\n let prevLineStart = tr.startState.doc.lineAt(tr.startState.selection.main.head).from;\n if (lineStart != tr.changes.mapPos(prevLineStart, -1))\n value = RangeSet.empty;\n }\n value = value.map(tr.changes);\n for (let effect of tr.effects) {\n if (effect.is(closeBracketEffect))\n value = value.update({ add: [closedBracket.range(effect.value, effect.value + 1)] });\n else if (effect.is(skipBracketEffect))\n value = value.update({ filter: from => from != effect.value });\n }\n return value;\n }\n});\n/**\nExtension to enable bracket-closing behavior. When a closeable\nbracket is typed, its closing bracket is immediately inserted\nafter the cursor. When closing a bracket directly in front of a\nclosing bracket inserted by the extension, the cursor moves over\nthat bracket.\n*/\nfunction closeBrackets() {\n return [inputHandler, bracketState];\n}\nconst definedClosing = \"()[]{}<>\";\nfunction closing(ch) {\n for (let i = 0; i < definedClosing.length; i += 2)\n if (definedClosing.charCodeAt(i) == ch)\n return definedClosing.charAt(i + 1);\n return fromCodePoint(ch < 128 ? ch : ch + 1);\n}\nfunction config(state, pos) {\n return state.languageDataAt(\"closeBrackets\", pos)[0] || defaults;\n}\nconst android = typeof navigator == \"object\" && /*@__PURE__*//Android\\b/.test(navigator.userAgent);\nconst inputHandler = /*@__PURE__*/EditorView.inputHandler.of((view, from, to, insert) => {\n if ((android ? view.composing : view.compositionStarted) || view.state.readOnly)\n return false;\n let sel = view.state.selection.main;\n if (insert.length > 2 || insert.length == 2 && codePointSize(codePointAt(insert, 0)) == 1 ||\n from != sel.from || to != sel.to)\n return false;\n let tr = insertBracket(view.state, insert);\n if (!tr)\n return false;\n view.dispatch(tr);\n return true;\n});\n/**\nCommand that implements deleting a pair of matching brackets when\nthe cursor is between them.\n*/\nconst deleteBracketPair = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let conf = config(state, state.selection.main.head);\n let tokens = conf.brackets || defaults.brackets;\n let dont = null, changes = state.changeByRange(range => {\n if (range.empty) {\n let before = prevChar(state.doc, range.head);\n for (let token of tokens) {\n if (token == before && nextChar(state.doc, range.head) == closing(codePointAt(token, 0)))\n return { changes: { from: range.head - token.length, to: range.head + token.length },\n range: EditorSelection.cursor(range.head - token.length),\n userEvent: \"delete.backward\" };\n }\n }\n return { range: dont = range };\n });\n if (!dont)\n dispatch(state.update(changes, { scrollIntoView: true }));\n return !dont;\n};\n/**\nClose-brackets related key bindings. Binds Backspace to\n[`deleteBracketPair`](https://codemirror.net/6/docs/ref/#closebrackets.deleteBracketPair).\n*/\nconst closeBracketsKeymap = [\n { key: \"Backspace\", run: deleteBracketPair }\n];\n/**\nImplements the extension's behavior on text insertion. If the\ngiven string counts as a bracket in the language around the\nselection, and replacing the selection with it requires custom\nbehavior (inserting a closing version or skipping past a\npreviously-closed bracket), this function returns a transaction\nrepresenting that custom behavior. (You only need this if you want\nto programmatically insert brackets—the\n[`closeBrackets`](https://codemirror.net/6/docs/ref/#closebrackets.closeBrackets) extension will\ntake care of running this for user input.)\n*/\nfunction insertBracket(state, bracket) {\n let conf = config(state, state.selection.main.head);\n let tokens = conf.brackets || defaults.brackets;\n for (let tok of tokens) {\n let closed = closing(codePointAt(tok, 0));\n if (bracket == tok)\n return closed == tok ? handleSame(state, tok, tokens.indexOf(tok + tok + tok) > -1)\n : handleOpen(state, tok, closed, conf.before || defaults.before);\n if (bracket == closed && closedBracketAt(state, state.selection.main.from))\n return handleClose(state, tok, closed);\n }\n return null;\n}\nfunction closedBracketAt(state, pos) {\n let found = false;\n state.field(bracketState).between(0, state.doc.length, from => {\n if (from == pos)\n found = true;\n });\n return found;\n}\nfunction nextChar(doc, pos) {\n let next = doc.sliceString(pos, pos + 2);\n return next.slice(0, codePointSize(codePointAt(next, 0)));\n}\nfunction prevChar(doc, pos) {\n let prev = doc.sliceString(pos - 2, pos);\n return codePointSize(codePointAt(prev, 0)) == prev.length ? prev : prev.slice(1);\n}\nfunction handleOpen(state, open, close, closeBefore) {\n let dont = null, changes = state.changeByRange(range => {\n if (!range.empty)\n return { changes: [{ insert: open, from: range.from }, { insert: close, from: range.to }],\n effects: closeBracketEffect.of(range.to + open.length),\n range: EditorSelection.range(range.anchor + open.length, range.head + open.length) };\n let next = nextChar(state.doc, range.head);\n if (!next || /\\s/.test(next) || closeBefore.indexOf(next) > -1)\n return { changes: { insert: open + close, from: range.head },\n effects: closeBracketEffect.of(range.head + open.length),\n range: EditorSelection.cursor(range.head + open.length) };\n return { range: dont = range };\n });\n return dont ? null : state.update(changes, {\n scrollIntoView: true,\n userEvent: \"input.type\"\n });\n}\nfunction handleClose(state, _open, close) {\n let dont = null, moved = state.selection.ranges.map(range => {\n if (range.empty && nextChar(state.doc, range.head) == close)\n return EditorSelection.cursor(range.head + close.length);\n return dont = range;\n });\n return dont ? null : state.update({\n selection: EditorSelection.create(moved, state.selection.mainIndex),\n scrollIntoView: true,\n effects: state.selection.ranges.map(({ from }) => skipBracketEffect.of(from))\n });\n}\n// Handles cases where the open and close token are the same, and\n// possibly triple quotes (as in `\"\"\"abc\"\"\"`-style quoting).\nfunction handleSame(state, token, allowTriple) {\n let dont = null, changes = state.changeByRange(range => {\n if (!range.empty)\n return { changes: [{ insert: token, from: range.from }, { insert: token, from: range.to }],\n effects: closeBracketEffect.of(range.to + token.length),\n range: EditorSelection.range(range.anchor + token.length, range.head + token.length) };\n let pos = range.head, next = nextChar(state.doc, pos);\n if (next == token) {\n if (nodeStart(state, pos)) {\n return { changes: { insert: token + token, from: pos },\n effects: closeBracketEffect.of(pos + token.length),\n range: EditorSelection.cursor(pos + token.length) };\n }\n else if (closedBracketAt(state, pos)) {\n let isTriple = allowTriple && state.sliceDoc(pos, pos + token.length * 3) == token + token + token;\n return { range: EditorSelection.cursor(pos + token.length * (isTriple ? 3 : 1)),\n effects: skipBracketEffect.of(pos) };\n }\n }\n else if (allowTriple && state.sliceDoc(pos - 2 * token.length, pos) == token + token &&\n nodeStart(state, pos - 2 * token.length)) {\n return { changes: { insert: token + token + token + token, from: pos },\n effects: closeBracketEffect.of(pos + token.length),\n range: EditorSelection.cursor(pos + token.length) };\n }\n else if (state.charCategorizer(pos)(next) != CharCategory.Word) {\n let prev = state.sliceDoc(pos - 1, pos);\n if (prev != token && state.charCategorizer(pos)(prev) != CharCategory.Word && !probablyInString(state, pos, token))\n return { changes: { insert: token + token, from: pos },\n effects: closeBracketEffect.of(pos + token.length),\n range: EditorSelection.cursor(pos + token.length) };\n }\n return { range: dont = range };\n });\n return dont ? null : state.update(changes, {\n scrollIntoView: true,\n userEvent: \"input.type\"\n });\n}\nfunction nodeStart(state, pos) {\n let tree = syntaxTree(state).resolveInner(pos + 1);\n return tree.parent && tree.from == pos;\n}\nfunction probablyInString(state, pos, quoteToken) {\n let node = syntaxTree(state).resolveInner(pos, -1);\n for (let i = 0; i < 5; i++) {\n if (state.sliceDoc(node.from, node.from + quoteToken.length) == quoteToken)\n return true;\n let parent = node.to == pos && node.parent;\n if (!parent)\n break;\n node = parent;\n }\n return false;\n}\n\nexport { closeBrackets, closeBracketsKeymap, deleteBracketPair, insertBracket };\n","import { ViewPlugin, PluginField, EditorView } from '@codemirror/view';\nimport { Facet } from '@codemirror/state';\n\nconst panelConfig = /*@__PURE__*/Facet.define({\n combine(configs) {\n let topContainer, bottomContainer;\n for (let c of configs) {\n topContainer = topContainer || c.topContainer;\n bottomContainer = bottomContainer || c.bottomContainer;\n }\n return { topContainer, bottomContainer };\n }\n});\n/**\nConfigures the panel-managing extension.\n*/\nfunction panels(config) {\n return config ? [panelConfig.of(config)] : [];\n}\n/**\nGet the active panel created by the given constructor, if any.\nThis can be useful when you need access to your panels' DOM\nstructure.\n*/\nfunction getPanel(view, panel) {\n let plugin = view.plugin(panelPlugin);\n let index = plugin ? plugin.specs.indexOf(panel) : -1;\n return index > -1 ? plugin.panels[index] : null;\n}\nconst panelPlugin = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.input = view.state.facet(showPanel);\n this.specs = this.input.filter(s => s);\n this.panels = this.specs.map(spec => spec(view));\n let conf = view.state.facet(panelConfig);\n this.top = new PanelGroup(view, true, conf.topContainer);\n this.bottom = new PanelGroup(view, false, conf.bottomContainer);\n this.top.sync(this.panels.filter(p => p.top));\n this.bottom.sync(this.panels.filter(p => !p.top));\n for (let p of this.panels) {\n p.dom.classList.add(\"cm-panel\");\n if (p.mount)\n p.mount();\n }\n }\n update(update) {\n let conf = update.state.facet(panelConfig);\n if (this.top.container != conf.topContainer) {\n this.top.sync([]);\n this.top = new PanelGroup(update.view, true, conf.topContainer);\n }\n if (this.bottom.container != conf.bottomContainer) {\n this.bottom.sync([]);\n this.bottom = new PanelGroup(update.view, false, conf.bottomContainer);\n }\n this.top.syncClasses();\n this.bottom.syncClasses();\n let input = update.state.facet(showPanel);\n if (input != this.input) {\n let specs = input.filter(x => x);\n let panels = [], top = [], bottom = [], mount = [];\n for (let spec of specs) {\n let known = this.specs.indexOf(spec), panel;\n if (known < 0) {\n panel = spec(update.view);\n mount.push(panel);\n }\n else {\n panel = this.panels[known];\n if (panel.update)\n panel.update(update);\n }\n panels.push(panel);\n (panel.top ? top : bottom).push(panel);\n }\n this.specs = specs;\n this.panels = panels;\n this.top.sync(top);\n this.bottom.sync(bottom);\n for (let p of mount) {\n p.dom.classList.add(\"cm-panel\");\n if (p.mount)\n p.mount();\n }\n }\n else {\n for (let p of this.panels)\n if (p.update)\n p.update(update);\n }\n }\n destroy() {\n this.top.sync([]);\n this.bottom.sync([]);\n }\n}, {\n provide: /*@__PURE__*/PluginField.scrollMargins.from(value => ({ top: value.top.scrollMargin(), bottom: value.bottom.scrollMargin() }))\n});\nclass PanelGroup {\n constructor(view, top, container) {\n this.view = view;\n this.top = top;\n this.container = container;\n this.dom = undefined;\n this.classes = \"\";\n this.panels = [];\n this.syncClasses();\n }\n sync(panels) {\n for (let p of this.panels)\n if (p.destroy && panels.indexOf(p) < 0)\n p.destroy();\n this.panels = panels;\n this.syncDOM();\n }\n syncDOM() {\n if (this.panels.length == 0) {\n if (this.dom) {\n this.dom.remove();\n this.dom = undefined;\n }\n return;\n }\n if (!this.dom) {\n this.dom = document.createElement(\"div\");\n this.dom.className = this.top ? \"cm-panels cm-panels-top\" : \"cm-panels cm-panels-bottom\";\n this.dom.style[this.top ? \"top\" : \"bottom\"] = \"0\";\n let parent = this.container || this.view.dom;\n parent.insertBefore(this.dom, this.top ? parent.firstChild : null);\n }\n let curDOM = this.dom.firstChild;\n for (let panel of this.panels) {\n if (panel.dom.parentNode == this.dom) {\n while (curDOM != panel.dom)\n curDOM = rm(curDOM);\n curDOM = curDOM.nextSibling;\n }\n else {\n this.dom.insertBefore(panel.dom, curDOM);\n }\n }\n while (curDOM)\n curDOM = rm(curDOM);\n }\n scrollMargin() {\n return !this.dom || this.container ? 0\n : Math.max(0, this.top ?\n this.dom.getBoundingClientRect().bottom - Math.max(0, this.view.scrollDOM.getBoundingClientRect().top) :\n Math.min(innerHeight, this.view.scrollDOM.getBoundingClientRect().bottom) - this.dom.getBoundingClientRect().top);\n }\n syncClasses() {\n if (!this.container || this.classes == this.view.themeClasses)\n return;\n for (let cls of this.classes.split(\" \"))\n if (cls)\n this.container.classList.remove(cls);\n for (let cls of (this.classes = this.view.themeClasses).split(\" \"))\n if (cls)\n this.container.classList.add(cls);\n }\n}\nfunction rm(node) {\n let next = node.nextSibling;\n node.remove();\n return next;\n}\nconst baseTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-panels\": {\n boxSizing: \"border-box\",\n position: \"sticky\",\n left: 0,\n right: 0\n },\n \"&light .cm-panels\": {\n backgroundColor: \"#f5f5f5\",\n color: \"black\"\n },\n \"&light .cm-panels-top\": {\n borderBottom: \"1px solid #ddd\"\n },\n \"&light .cm-panels-bottom\": {\n borderTop: \"1px solid #ddd\"\n },\n \"&dark .cm-panels\": {\n backgroundColor: \"#333338\",\n color: \"white\"\n }\n});\n/**\nOpening a panel is done by providing a constructor function for\nthe panel through this facet. (The panel is closed again when its\nconstructor is no longer provided.) Values of `null` are ignored.\n*/\nconst showPanel = /*@__PURE__*/Facet.define({\n enables: [panelPlugin, baseTheme]\n});\n\nexport { getPanel, panels, showPanel };\n","import { EditorView, Decoration, ViewPlugin, runScopeHandlers } from '@codemirror/view';\nimport { StateEffect, StateField, EditorSelection, Facet, combineConfig, CharCategory, Prec } from '@codemirror/state';\nimport { showPanel, getPanel } from '@codemirror/panel';\nimport { RangeSetBuilder } from '@codemirror/rangeset';\nimport elt from 'crelt';\nimport { codePointAt, fromCodePoint, codePointSize } from '@codemirror/text';\n\nconst basicNormalize = typeof String.prototype.normalize == \"function\"\n ? x => x.normalize(\"NFKD\") : x => x;\n/**\nA search cursor provides an iterator over text matches in a\ndocument.\n*/\nclass SearchCursor {\n /**\n Create a text cursor. The query is the search string, `from` to\n `to` provides the region to search.\n \n When `normalize` is given, it will be called, on both the query\n string and the content it is matched against, before comparing.\n You can, for example, create a case-insensitive search by\n passing `s => s.toLowerCase()`.\n \n Text is always normalized with\n [`.normalize(\"NFKD\")`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize)\n (when supported).\n */\n constructor(text, query, from = 0, to = text.length, normalize) {\n /**\n The current match (only holds a meaningful value after\n [`next`](https://codemirror.net/6/docs/ref/#search.SearchCursor.next) has been called and when\n `done` is false).\n */\n this.value = { from: 0, to: 0 };\n /**\n Whether the end of the iterated region has been reached.\n */\n this.done = false;\n this.matches = [];\n this.buffer = \"\";\n this.bufferPos = 0;\n this.iter = text.iterRange(from, to);\n this.bufferStart = from;\n this.normalize = normalize ? x => normalize(basicNormalize(x)) : basicNormalize;\n this.query = this.normalize(query);\n }\n peek() {\n if (this.bufferPos == this.buffer.length) {\n this.bufferStart += this.buffer.length;\n this.iter.next();\n if (this.iter.done)\n return -1;\n this.bufferPos = 0;\n this.buffer = this.iter.value;\n }\n return codePointAt(this.buffer, this.bufferPos);\n }\n /**\n Look for the next match. Updates the iterator's\n [`value`](https://codemirror.net/6/docs/ref/#search.SearchCursor.value) and\n [`done`](https://codemirror.net/6/docs/ref/#search.SearchCursor.done) properties. Should be called\n at least once before using the cursor.\n */\n next() {\n while (this.matches.length)\n this.matches.pop();\n return this.nextOverlapping();\n }\n /**\n The `next` method will ignore matches that partially overlap a\n previous match. This method behaves like `next`, but includes\n such matches.\n */\n nextOverlapping() {\n for (;;) {\n let next = this.peek();\n if (next < 0) {\n this.done = true;\n return this;\n }\n let str = fromCodePoint(next), start = this.bufferStart + this.bufferPos;\n this.bufferPos += codePointSize(next);\n let norm = this.normalize(str);\n for (let i = 0, pos = start;; i++) {\n let code = norm.charCodeAt(i);\n let match = this.match(code, pos);\n if (match) {\n this.value = match;\n return this;\n }\n if (i == norm.length - 1)\n break;\n if (pos == start && i < str.length && str.charCodeAt(i) == code)\n pos++;\n }\n }\n }\n match(code, pos) {\n let match = null;\n for (let i = 0; i < this.matches.length; i += 2) {\n let index = this.matches[i], keep = false;\n if (this.query.charCodeAt(index) == code) {\n if (index == this.query.length - 1) {\n match = { from: this.matches[i + 1], to: pos + 1 };\n }\n else {\n this.matches[i]++;\n keep = true;\n }\n }\n if (!keep) {\n this.matches.splice(i, 2);\n i -= 2;\n }\n }\n if (this.query.charCodeAt(0) == code) {\n if (this.query.length == 1)\n match = { from: pos, to: pos + 1 };\n else\n this.matches.push(1, pos);\n }\n return match;\n }\n}\nif (typeof Symbol != \"undefined\")\n SearchCursor.prototype[Symbol.iterator] = function () { return this; };\n\nconst empty = { from: -1, to: -1, match: /*@__PURE__*//.*/.exec(\"\") };\nconst baseFlags = \"gm\" + (/x/.unicode == null ? \"\" : \"u\");\n/**\nThis class is similar to [`SearchCursor`](https://codemirror.net/6/docs/ref/#search.SearchCursor)\nbut searches for a regular expression pattern instead of a plain\nstring.\n*/\nclass RegExpCursor {\n /**\n Create a cursor that will search the given range in the given\n document. `query` should be the raw pattern (as you'd pass it to\n `new RegExp`).\n */\n constructor(text, query, options, from = 0, to = text.length) {\n this.to = to;\n this.curLine = \"\";\n /**\n Set to `true` when the cursor has reached the end of the search\n range.\n */\n this.done = false;\n /**\n Will contain an object with the extent of the match and the\n match object when [`next`](https://codemirror.net/6/docs/ref/#search.RegExpCursor.next)\n sucessfully finds a match.\n */\n this.value = empty;\n if (/\\\\[sWDnr]|\\n|\\r|\\[\\^/.test(query))\n return new MultilineRegExpCursor(text, query, options, from, to);\n this.re = new RegExp(query, baseFlags + ((options === null || options === void 0 ? void 0 : options.ignoreCase) ? \"i\" : \"\"));\n this.iter = text.iter();\n let startLine = text.lineAt(from);\n this.curLineStart = startLine.from;\n this.matchPos = from;\n this.getLine(this.curLineStart);\n }\n getLine(skip) {\n this.iter.next(skip);\n if (this.iter.lineBreak) {\n this.curLine = \"\";\n }\n else {\n this.curLine = this.iter.value;\n if (this.curLineStart + this.curLine.length > this.to)\n this.curLine = this.curLine.slice(0, this.to - this.curLineStart);\n this.iter.next();\n }\n }\n nextLine() {\n this.curLineStart = this.curLineStart + this.curLine.length + 1;\n if (this.curLineStart > this.to)\n this.curLine = \"\";\n else\n this.getLine(0);\n }\n /**\n Move to the next match, if there is one.\n */\n next() {\n for (let off = this.matchPos - this.curLineStart;;) {\n this.re.lastIndex = off;\n let match = this.matchPos <= this.to && this.re.exec(this.curLine);\n if (match) {\n let from = this.curLineStart + match.index, to = from + match[0].length;\n this.matchPos = to + (from == to ? 1 : 0);\n if (from == this.curLine.length)\n this.nextLine();\n if (from < to || from > this.value.to) {\n this.value = { from, to, match };\n return this;\n }\n off = this.matchPos - this.curLineStart;\n }\n else if (this.curLineStart + this.curLine.length < this.to) {\n this.nextLine();\n off = 0;\n }\n else {\n this.done = true;\n return this;\n }\n }\n }\n}\nconst flattened = /*@__PURE__*/new WeakMap();\n// Reusable (partially) flattened document strings\nclass FlattenedDoc {\n constructor(from, text) {\n this.from = from;\n this.text = text;\n }\n get to() { return this.from + this.text.length; }\n static get(doc, from, to) {\n let cached = flattened.get(doc);\n if (!cached || cached.from >= to || cached.to <= from) {\n let flat = new FlattenedDoc(from, doc.sliceString(from, to));\n flattened.set(doc, flat);\n return flat;\n }\n if (cached.from == from && cached.to == to)\n return cached;\n let { text, from: cachedFrom } = cached;\n if (cachedFrom > from) {\n text = doc.sliceString(from, cachedFrom) + text;\n cachedFrom = from;\n }\n if (cached.to < to)\n text += doc.sliceString(cached.to, to);\n flattened.set(doc, new FlattenedDoc(cachedFrom, text));\n return new FlattenedDoc(from, text.slice(from - cachedFrom, to - cachedFrom));\n }\n}\nclass MultilineRegExpCursor {\n constructor(text, query, options, from, to) {\n this.text = text;\n this.to = to;\n this.done = false;\n this.value = empty;\n this.matchPos = from;\n this.re = new RegExp(query, baseFlags + ((options === null || options === void 0 ? void 0 : options.ignoreCase) ? \"i\" : \"\"));\n this.flat = FlattenedDoc.get(text, from, this.chunkEnd(from + 5000 /* Base */));\n }\n chunkEnd(pos) {\n return pos >= this.to ? this.to : this.text.lineAt(pos).to;\n }\n next() {\n for (;;) {\n let off = this.re.lastIndex = this.matchPos - this.flat.from;\n let match = this.re.exec(this.flat.text);\n // Skip empty matches directly after the last match\n if (match && !match[0] && match.index == off) {\n this.re.lastIndex = off + 1;\n match = this.re.exec(this.flat.text);\n }\n // If a match goes almost to the end of a noncomplete chunk, try\n // again, since it'll likely be able to match more\n if (match && this.flat.to < this.to && match.index + match[0].length > this.flat.text.length - 10)\n match = null;\n if (match) {\n let from = this.flat.from + match.index, to = from + match[0].length;\n this.value = { from, to, match };\n this.matchPos = to + (from == to ? 1 : 0);\n return this;\n }\n else {\n if (this.flat.to == this.to) {\n this.done = true;\n return this;\n }\n // Grow the flattened doc\n this.flat = FlattenedDoc.get(this.text, this.flat.from, this.chunkEnd(this.flat.from + this.flat.text.length * 2));\n }\n }\n }\n}\nif (typeof Symbol != \"undefined\") {\n RegExpCursor.prototype[Symbol.iterator] = MultilineRegExpCursor.prototype[Symbol.iterator] =\n function () { return this; };\n}\nfunction validRegExp(source) {\n try {\n new RegExp(source, baseFlags);\n return true;\n }\n catch (_a) {\n return false;\n }\n}\n\nfunction createLineDialog(view) {\n let input = elt(\"input\", { class: \"cm-textfield\", name: \"line\" });\n let dom = elt(\"form\", {\n class: \"cm-gotoLine\",\n onkeydown: (event) => {\n if (event.keyCode == 27) { // Escape\n event.preventDefault();\n view.dispatch({ effects: dialogEffect.of(false) });\n view.focus();\n }\n else if (event.keyCode == 13) { // Enter\n event.preventDefault();\n go();\n }\n },\n onsubmit: (event) => {\n event.preventDefault();\n go();\n }\n }, elt(\"label\", view.state.phrase(\"Go to line\"), \": \", input), \" \", elt(\"button\", { class: \"cm-button\", type: \"submit\" }, view.state.phrase(\"go\")));\n function go() {\n let match = /^([+-])?(\\d+)?(:\\d+)?(%)?$/.exec(input.value);\n if (!match)\n return;\n let { state } = view, startLine = state.doc.lineAt(state.selection.main.head);\n let [, sign, ln, cl, percent] = match;\n let col = cl ? +cl.slice(1) : 0;\n let line = ln ? +ln : startLine.number;\n if (ln && percent) {\n let pc = line / 100;\n if (sign)\n pc = pc * (sign == \"-\" ? -1 : 1) + (startLine.number / state.doc.lines);\n line = Math.round(state.doc.lines * pc);\n }\n else if (ln && sign) {\n line = line * (sign == \"-\" ? -1 : 1) + startLine.number;\n }\n let docLine = state.doc.line(Math.max(1, Math.min(state.doc.lines, line)));\n view.dispatch({\n effects: dialogEffect.of(false),\n selection: EditorSelection.cursor(docLine.from + Math.max(0, Math.min(col, docLine.length))),\n scrollIntoView: true\n });\n view.focus();\n }\n return { dom, pos: -10 };\n}\nconst dialogEffect = /*@__PURE__*/StateEffect.define();\nconst dialogField = /*@__PURE__*/StateField.define({\n create() { return true; },\n update(value, tr) {\n for (let e of tr.effects)\n if (e.is(dialogEffect))\n value = e.value;\n return value;\n },\n provide: f => showPanel.from(f, val => val ? createLineDialog : null)\n});\n/**\nCommand that shows a dialog asking the user for a line number, and\nwhen a valid position is provided, moves the cursor to that line.\n\nSupports line numbers, relative line offsets prefixed with `+` or\n`-`, document percentages suffixed with `%`, and an optional\ncolumn position by adding `:` and a second number after the line\nnumber.\n\nThe dialog can be styled with the `panel.gotoLine` theme\nselector.\n*/\nconst gotoLine = view => {\n let panel = getPanel(view, createLineDialog);\n if (!panel) {\n let effects = [dialogEffect.of(true)];\n if (view.state.field(dialogField, false) == null)\n effects.push(StateEffect.appendConfig.of([dialogField, baseTheme$1]));\n view.dispatch({ effects });\n panel = getPanel(view, createLineDialog);\n }\n if (panel)\n panel.dom.querySelector(\"input\").focus();\n return true;\n};\nconst baseTheme$1 = /*@__PURE__*/EditorView.baseTheme({\n \".cm-panel.cm-gotoLine\": {\n padding: \"2px 6px 4px\",\n \"& label\": { fontSize: \"80%\" }\n }\n});\n\nconst defaultHighlightOptions = {\n highlightWordAroundCursor: false,\n minSelectionLength: 1,\n maxMatches: 100,\n wholeWords: true\n};\nconst highlightConfig = /*@__PURE__*/Facet.define({\n combine(options) {\n return combineConfig(options, defaultHighlightOptions, {\n highlightWordAroundCursor: (a, b) => a || b,\n minSelectionLength: Math.min,\n maxMatches: Math.min\n });\n }\n});\n/**\nThis extension highlights text that matches the selection. It uses\nthe `\"cm-selectionMatch\"` class for the highlighting. When\n`highlightWordAroundCursor` is enabled, the word at the cursor\nitself will be highlighted with `\"cm-selectionMatch-main\"`.\n*/\nfunction highlightSelectionMatches(options) {\n let ext = [defaultTheme, matchHighlighter];\n if (options)\n ext.push(highlightConfig.of(options));\n return ext;\n}\nconst matchDeco = /*@__PURE__*/Decoration.mark({ class: \"cm-selectionMatch\" });\nconst mainMatchDeco = /*@__PURE__*/Decoration.mark({ class: \"cm-selectionMatch cm-selectionMatch-main\" });\n// Whether the characters directly outside the given positions are non-word characters\nfunction insideWordBoundaries(check, state, from, to) {\n return (from == 0 || check(state.sliceDoc(from - 1, from)) != CharCategory.Word) &&\n (to == state.doc.length || check(state.sliceDoc(to, to + 1)) != CharCategory.Word);\n}\n// Whether the characters directly at the given positions are word characters\nfunction insideWord(check, state, from, to) {\n return check(state.sliceDoc(from, from + 1)) == CharCategory.Word\n && check(state.sliceDoc(to - 1, to)) == CharCategory.Word;\n}\nconst matchHighlighter = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.decorations = this.getDeco(view);\n }\n update(update) {\n if (update.selectionSet || update.docChanged || update.viewportChanged)\n this.decorations = this.getDeco(update.view);\n }\n getDeco(view) {\n let conf = view.state.facet(highlightConfig);\n let { state } = view, sel = state.selection;\n if (sel.ranges.length > 1)\n return Decoration.none;\n let range = sel.main, query, check = null;\n if (range.empty) {\n if (!conf.highlightWordAroundCursor)\n return Decoration.none;\n let word = state.wordAt(range.head);\n if (!word)\n return Decoration.none;\n check = state.charCategorizer(range.head);\n query = state.sliceDoc(word.from, word.to);\n }\n else {\n let len = range.to - range.from;\n if (len < conf.minSelectionLength || len > 200)\n return Decoration.none;\n if (conf.wholeWords) {\n query = state.sliceDoc(range.from, range.to); // TODO: allow and include leading/trailing space?\n check = state.charCategorizer(range.head);\n if (!(insideWordBoundaries(check, state, range.from, range.to)\n && insideWord(check, state, range.from, range.to)))\n return Decoration.none;\n }\n else {\n query = state.sliceDoc(range.from, range.to).trim();\n if (!query)\n return Decoration.none;\n }\n }\n let deco = [];\n for (let part of view.visibleRanges) {\n let cursor = new SearchCursor(state.doc, query, part.from, part.to);\n while (!cursor.next().done) {\n let { from, to } = cursor.value;\n if (!check || insideWordBoundaries(check, state, from, to)) {\n if (range.empty && from <= range.from && to >= range.to)\n deco.push(mainMatchDeco.range(from, to));\n else if (from >= range.to || to <= range.from)\n deco.push(matchDeco.range(from, to));\n if (deco.length > conf.maxMatches)\n return Decoration.none;\n }\n }\n }\n return Decoration.set(deco);\n }\n}, {\n decorations: v => v.decorations\n});\nconst defaultTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-selectionMatch\": { backgroundColor: \"#99ff7780\" },\n \".cm-searchMatch .cm-selectionMatch\": { backgroundColor: \"transparent\" }\n});\n// Select the words around the cursors.\nconst selectWord = ({ state, dispatch }) => {\n let { selection } = state;\n let newSel = EditorSelection.create(selection.ranges.map(range => state.wordAt(range.head) || EditorSelection.cursor(range.head)), selection.mainIndex);\n if (newSel.eq(selection))\n return false;\n dispatch(state.update({ selection: newSel }));\n return true;\n};\n// Find next occurrence of query relative to last cursor. Wrap around\n// the document if there are no more matches.\nfunction findNextOccurrence(state, query) {\n let { main, ranges } = state.selection;\n let word = state.wordAt(main.head), fullWord = word && word.from == main.from && word.to == main.to;\n for (let cycled = false, cursor = new SearchCursor(state.doc, query, ranges[ranges.length - 1].to);;) {\n cursor.next();\n if (cursor.done) {\n if (cycled)\n return null;\n cursor = new SearchCursor(state.doc, query, 0, Math.max(0, ranges[ranges.length - 1].from - 1));\n cycled = true;\n }\n else {\n if (cycled && ranges.some(r => r.from == cursor.value.from))\n continue;\n if (fullWord) {\n let word = state.wordAt(cursor.value.from);\n if (!word || word.from != cursor.value.from || word.to != cursor.value.to)\n continue;\n }\n return cursor.value;\n }\n }\n}\n/**\nSelect next occurrence of the current selection.\nExpand selection to the word when selection range is empty.\n*/\nconst selectNextOccurrence = ({ state, dispatch }) => {\n let { ranges } = state.selection;\n if (ranges.some(sel => sel.from === sel.to))\n return selectWord({ state, dispatch });\n let searchedText = state.sliceDoc(ranges[0].from, ranges[0].to);\n if (state.selection.ranges.some(r => state.sliceDoc(r.from, r.to) != searchedText))\n return false;\n let range = findNextOccurrence(state, searchedText);\n if (!range)\n return false;\n dispatch(state.update({\n selection: state.selection.addRange(EditorSelection.range(range.from, range.to), false),\n effects: EditorView.scrollIntoView(range.to)\n }));\n return true;\n};\n\nconst searchConfigFacet = /*@__PURE__*/Facet.define({\n combine(configs) {\n var _a;\n return {\n top: configs.reduce((val, conf) => val !== null && val !== void 0 ? val : conf.top, undefined) || false,\n caseSensitive: configs.reduce((val, conf) => val !== null && val !== void 0 ? val : (conf.caseSensitive || conf.matchCase), undefined) || false,\n createPanel: ((_a = configs.find(c => c.createPanel)) === null || _a === void 0 ? void 0 : _a.createPanel) || (view => new SearchPanel(view))\n };\n }\n});\n/**\nAdd search state to the editor configuration, and optionally\nconfigure the search extension.\n([`openSearchPanel`](https://codemirror.net/6/docs/ref/#search.openSearchPanel) when automatically\nenable this if it isn't already on.)\n*/\nfunction search(config) {\n return config ? [searchConfigFacet.of(config), searchExtensions] : searchExtensions;\n}\n/**\n@internal\n*/\nconst searchConfig = search; // FIXME drop on next release\n/**\nA search query. Part of the editor's search state.\n*/\nclass SearchQuery {\n /**\n Create a query object.\n */\n constructor(config) {\n this.search = config.search;\n this.caseSensitive = !!config.caseSensitive;\n this.regexp = !!config.regexp;\n this.replace = config.replace || \"\";\n this.valid = !!this.search && (!this.regexp || validRegExp(this.search));\n this.unquoted = this.search.replace(/\\\\([nrt\\\\])/g, (_, ch) => ch == \"n\" ? \"\\n\" : ch == \"r\" ? \"\\r\" : ch == \"t\" ? \"\\t\" : \"\\\\\");\n }\n /**\n Compare this query to another query.\n */\n eq(other) {\n return this.search == other.search && this.replace == other.replace &&\n this.caseSensitive == other.caseSensitive && this.regexp == other.regexp;\n }\n /**\n @internal\n */\n create() {\n return this.regexp ? new RegExpQuery(this) : new StringQuery(this);\n }\n getCursor(doc, from = 0, to = doc.length) {\n return this.regexp ? regexpCursor(this, doc, from, to) : stringCursor(this, doc, from, to);\n }\n}\nclass QueryType {\n constructor(spec) {\n this.spec = spec;\n }\n}\nfunction stringCursor(spec, doc, from, to) {\n return new SearchCursor(doc, spec.unquoted, from, to, spec.caseSensitive ? undefined : x => x.toLowerCase());\n}\nclass StringQuery extends QueryType {\n constructor(spec) {\n super(spec);\n }\n nextMatch(doc, curFrom, curTo) {\n let cursor = stringCursor(this.spec, doc, curTo, doc.length).nextOverlapping();\n if (cursor.done)\n cursor = stringCursor(this.spec, doc, 0, curFrom).nextOverlapping();\n return cursor.done ? null : cursor.value;\n }\n // Searching in reverse is, rather than implementing inverted search\n // cursor, done by scanning chunk after chunk forward.\n prevMatchInRange(doc, from, to) {\n for (let pos = to;;) {\n let start = Math.max(from, pos - 10000 /* ChunkSize */ - this.spec.unquoted.length);\n let cursor = stringCursor(this.spec, doc, start, pos), range = null;\n while (!cursor.nextOverlapping().done)\n range = cursor.value;\n if (range)\n return range;\n if (start == from)\n return null;\n pos -= 10000 /* ChunkSize */;\n }\n }\n prevMatch(doc, curFrom, curTo) {\n return this.prevMatchInRange(doc, 0, curFrom) ||\n this.prevMatchInRange(doc, curTo, doc.length);\n }\n getReplacement(_result) { return this.spec.replace; }\n matchAll(doc, limit) {\n let cursor = stringCursor(this.spec, doc, 0, doc.length), ranges = [];\n while (!cursor.next().done) {\n if (ranges.length >= limit)\n return null;\n ranges.push(cursor.value);\n }\n return ranges;\n }\n highlight(doc, from, to, add) {\n let cursor = stringCursor(this.spec, doc, Math.max(0, from - this.spec.unquoted.length), Math.min(to + this.spec.unquoted.length, doc.length));\n while (!cursor.next().done)\n add(cursor.value.from, cursor.value.to);\n }\n}\nfunction regexpCursor(spec, doc, from, to) {\n return new RegExpCursor(doc, spec.search, spec.caseSensitive ? undefined : { ignoreCase: true }, from, to);\n}\nclass RegExpQuery extends QueryType {\n nextMatch(doc, curFrom, curTo) {\n let cursor = regexpCursor(this.spec, doc, curTo, doc.length).next();\n if (cursor.done)\n cursor = regexpCursor(this.spec, doc, 0, curFrom).next();\n return cursor.done ? null : cursor.value;\n }\n prevMatchInRange(doc, from, to) {\n for (let size = 1;; size++) {\n let start = Math.max(from, to - size * 10000 /* ChunkSize */);\n let cursor = regexpCursor(this.spec, doc, start, to), range = null;\n while (!cursor.next().done)\n range = cursor.value;\n if (range && (start == from || range.from > start + 10))\n return range;\n if (start == from)\n return null;\n }\n }\n prevMatch(doc, curFrom, curTo) {\n return this.prevMatchInRange(doc, 0, curFrom) ||\n this.prevMatchInRange(doc, curTo, doc.length);\n }\n getReplacement(result) {\n return this.spec.replace.replace(/\\$([$&\\d+])/g, (m, i) => i == \"$\" ? \"$\"\n : i == \"&\" ? result.match[0]\n : i != \"0\" && +i < result.match.length ? result.match[i]\n : m);\n }\n matchAll(doc, limit) {\n let cursor = regexpCursor(this.spec, doc, 0, doc.length), ranges = [];\n while (!cursor.next().done) {\n if (ranges.length >= limit)\n return null;\n ranges.push(cursor.value);\n }\n return ranges;\n }\n highlight(doc, from, to, add) {\n let cursor = regexpCursor(this.spec, doc, Math.max(0, from - 250 /* HighlightMargin */), Math.min(to + 250 /* HighlightMargin */, doc.length));\n while (!cursor.next().done)\n add(cursor.value.from, cursor.value.to);\n }\n}\n/**\nA state effect that updates the current search query. Note that\nthis only has an effect if the search state has been initialized\n(by including [`search`](https://codemirror.net/6/docs/ref/#search.search) in your configuration or\nby running [`openSearchPanel`](https://codemirror.net/6/docs/ref/#search.openSearchPanel) at least\nonce).\n*/\nconst setSearchQuery = /*@__PURE__*/StateEffect.define();\nconst togglePanel = /*@__PURE__*/StateEffect.define();\nconst searchState = /*@__PURE__*/StateField.define({\n create(state) {\n return new SearchState(defaultQuery(state).create(), null);\n },\n update(value, tr) {\n for (let effect of tr.effects) {\n if (effect.is(setSearchQuery))\n value = new SearchState(effect.value.create(), value.panel);\n else if (effect.is(togglePanel))\n value = new SearchState(value.query, effect.value ? createSearchPanel : null);\n }\n return value;\n },\n provide: f => showPanel.from(f, val => val.panel)\n});\n/**\nGet the current search query from an editor state.\n*/\nfunction getSearchQuery(state) {\n let curState = state.field(searchState, false);\n return curState ? curState.query.spec : defaultQuery(state);\n}\nclass SearchState {\n constructor(query, panel) {\n this.query = query;\n this.panel = panel;\n }\n}\nconst matchMark = /*@__PURE__*/Decoration.mark({ class: \"cm-searchMatch\" }), selectedMatchMark = /*@__PURE__*/Decoration.mark({ class: \"cm-searchMatch cm-searchMatch-selected\" });\nconst searchHighlighter = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.decorations = this.highlight(view.state.field(searchState));\n }\n update(update) {\n let state = update.state.field(searchState);\n if (state != update.startState.field(searchState) || update.docChanged || update.selectionSet)\n this.decorations = this.highlight(state);\n }\n highlight({ query, panel }) {\n if (!panel || !query.spec.valid)\n return Decoration.none;\n let { view } = this;\n let builder = new RangeSetBuilder();\n for (let i = 0, ranges = view.visibleRanges, l = ranges.length; i < l; i++) {\n let { from, to } = ranges[i];\n while (i < l - 1 && to > ranges[i + 1].from - 2 * 250 /* HighlightMargin */)\n to = ranges[++i].to;\n query.highlight(view.state.doc, from, to, (from, to) => {\n let selected = view.state.selection.ranges.some(r => r.from == from && r.to == to);\n builder.add(from, to, selected ? selectedMatchMark : matchMark);\n });\n }\n return builder.finish();\n }\n}, {\n decorations: v => v.decorations\n});\nfunction searchCommand(f) {\n return view => {\n let state = view.state.field(searchState, false);\n return state && state.query.spec.valid ? f(view, state) : openSearchPanel(view);\n };\n}\n/**\nOpen the search panel if it isn't already open, and move the\nselection to the first match after the current main selection.\nWill wrap around to the start of the document when it reaches the\nend.\n*/\nconst findNext = /*@__PURE__*/searchCommand((view, { query }) => {\n let { from, to } = view.state.selection.main;\n let next = query.nextMatch(view.state.doc, from, to);\n if (!next || next.from == from && next.to == to)\n return false;\n view.dispatch({\n selection: { anchor: next.from, head: next.to },\n scrollIntoView: true,\n effects: announceMatch(view, next),\n userEvent: \"select.search\"\n });\n return true;\n});\n/**\nMove the selection to the previous instance of the search query,\nbefore the current main selection. Will wrap past the start\nof the document to start searching at the end again.\n*/\nconst findPrevious = /*@__PURE__*/searchCommand((view, { query }) => {\n let { state } = view, { from, to } = state.selection.main;\n let range = query.prevMatch(state.doc, from, to);\n if (!range)\n return false;\n view.dispatch({\n selection: { anchor: range.from, head: range.to },\n scrollIntoView: true,\n effects: announceMatch(view, range),\n userEvent: \"select.search\"\n });\n return true;\n});\n/**\nSelect all instances of the search query.\n*/\nconst selectMatches = /*@__PURE__*/searchCommand((view, { query }) => {\n let ranges = query.matchAll(view.state.doc, 1000);\n if (!ranges || !ranges.length)\n return false;\n view.dispatch({\n selection: EditorSelection.create(ranges.map(r => EditorSelection.range(r.from, r.to))),\n userEvent: \"select.search.matches\"\n });\n return true;\n});\n/**\nSelect all instances of the currently selected text.\n*/\nconst selectSelectionMatches = ({ state, dispatch }) => {\n let sel = state.selection;\n if (sel.ranges.length > 1 || sel.main.empty)\n return false;\n let { from, to } = sel.main;\n let ranges = [], main = 0;\n for (let cur = new SearchCursor(state.doc, state.sliceDoc(from, to)); !cur.next().done;) {\n if (ranges.length > 1000)\n return false;\n if (cur.value.from == from)\n main = ranges.length;\n ranges.push(EditorSelection.range(cur.value.from, cur.value.to));\n }\n dispatch(state.update({\n selection: EditorSelection.create(ranges, main),\n userEvent: \"select.search.matches\"\n }));\n return true;\n};\n/**\nReplace the current match of the search query.\n*/\nconst replaceNext = /*@__PURE__*/searchCommand((view, { query }) => {\n let { state } = view, { from, to } = state.selection.main;\n if (state.readOnly)\n return false;\n let next = query.nextMatch(state.doc, from, from);\n if (!next)\n return false;\n let changes = [], selection, replacement;\n if (next.from == from && next.to == to) {\n replacement = state.toText(query.getReplacement(next));\n changes.push({ from: next.from, to: next.to, insert: replacement });\n next = query.nextMatch(state.doc, next.from, next.to);\n }\n if (next) {\n let off = changes.length == 0 || changes[0].from >= next.to ? 0 : next.to - next.from - replacement.length;\n selection = { anchor: next.from - off, head: next.to - off };\n }\n view.dispatch({\n changes, selection,\n scrollIntoView: !!selection,\n effects: next ? announceMatch(view, next) : undefined,\n userEvent: \"input.replace\"\n });\n return true;\n});\n/**\nReplace all instances of the search query with the given\nreplacement.\n*/\nconst replaceAll = /*@__PURE__*/searchCommand((view, { query }) => {\n if (view.state.readOnly)\n return false;\n let changes = query.matchAll(view.state.doc, 1e9).map(match => {\n let { from, to } = match;\n return { from, to, insert: query.getReplacement(match) };\n });\n if (!changes.length)\n return false;\n view.dispatch({\n changes,\n userEvent: \"input.replace.all\"\n });\n return true;\n});\nfunction createSearchPanel(view) {\n return view.state.facet(searchConfigFacet).createPanel(view);\n}\nfunction defaultQuery(state, fallback) {\n var _a;\n let sel = state.selection.main;\n let selText = sel.empty || sel.to > sel.from + 100 ? \"\" : state.sliceDoc(sel.from, sel.to);\n let caseSensitive = (_a = fallback === null || fallback === void 0 ? void 0 : fallback.caseSensitive) !== null && _a !== void 0 ? _a : state.facet(searchConfigFacet).caseSensitive;\n return fallback && !selText ? fallback : new SearchQuery({ search: selText.replace(/\\n/g, \"\\\\n\"), caseSensitive });\n}\n/**\nMake sure the search panel is open and focused.\n*/\nconst openSearchPanel = view => {\n let state = view.state.field(searchState, false);\n if (state && state.panel) {\n let panel = getPanel(view, createSearchPanel);\n if (!panel)\n return false;\n let searchInput = panel.dom.querySelector(\"[name=search]\");\n if (searchInput != view.root.activeElement) {\n let query = defaultQuery(view.state, state.query.spec);\n if (query.valid)\n view.dispatch({ effects: setSearchQuery.of(query) });\n searchInput.focus();\n searchInput.select();\n }\n }\n else {\n view.dispatch({ effects: [\n togglePanel.of(true),\n state ? setSearchQuery.of(defaultQuery(view.state, state.query.spec)) : StateEffect.appendConfig.of(searchExtensions)\n ] });\n }\n return true;\n};\n/**\nClose the search panel.\n*/\nconst closeSearchPanel = view => {\n let state = view.state.field(searchState, false);\n if (!state || !state.panel)\n return false;\n let panel = getPanel(view, createSearchPanel);\n if (panel && panel.dom.contains(view.root.activeElement))\n view.focus();\n view.dispatch({ effects: togglePanel.of(false) });\n return true;\n};\n/**\nDefault search-related key bindings.\n\n - Mod-f: [`openSearchPanel`](https://codemirror.net/6/docs/ref/#search.openSearchPanel)\n - F3, Mod-g: [`findNext`](https://codemirror.net/6/docs/ref/#search.findNext)\n - Shift-F3, Shift-Mod-g: [`findPrevious`](https://codemirror.net/6/docs/ref/#search.findPrevious)\n - Alt-g: [`gotoLine`](https://codemirror.net/6/docs/ref/#search.gotoLine)\n - Mod-d: [`selectNextOccurrence`](https://codemirror.net/6/docs/ref/#search.selectNextOccurrence)\n*/\nconst searchKeymap = [\n { key: \"Mod-f\", run: openSearchPanel, scope: \"editor search-panel\" },\n { key: \"F3\", run: findNext, shift: findPrevious, scope: \"editor search-panel\", preventDefault: true },\n { key: \"Mod-g\", run: findNext, shift: findPrevious, scope: \"editor search-panel\", preventDefault: true },\n { key: \"Escape\", run: closeSearchPanel, scope: \"editor search-panel\" },\n { key: \"Mod-Shift-l\", run: selectSelectionMatches },\n { key: \"Alt-g\", run: gotoLine },\n { key: \"Mod-d\", run: selectNextOccurrence, preventDefault: true },\n];\nclass SearchPanel {\n constructor(view) {\n this.view = view;\n let query = this.query = view.state.field(searchState).query.spec;\n this.commit = this.commit.bind(this);\n this.searchField = elt(\"input\", {\n value: query.search,\n placeholder: phrase(view, \"Find\"),\n \"aria-label\": phrase(view, \"Find\"),\n class: \"cm-textfield\",\n name: \"search\",\n onchange: this.commit,\n onkeyup: this.commit\n });\n this.replaceField = elt(\"input\", {\n value: query.replace,\n placeholder: phrase(view, \"Replace\"),\n \"aria-label\": phrase(view, \"Replace\"),\n class: \"cm-textfield\",\n name: \"replace\",\n onchange: this.commit,\n onkeyup: this.commit\n });\n this.caseField = elt(\"input\", {\n type: \"checkbox\",\n name: \"case\",\n checked: query.caseSensitive,\n onchange: this.commit\n });\n this.reField = elt(\"input\", {\n type: \"checkbox\",\n name: \"re\",\n checked: query.regexp,\n onchange: this.commit\n });\n function button(name, onclick, content) {\n return elt(\"button\", { class: \"cm-button\", name, onclick, type: \"button\" }, content);\n }\n this.dom = elt(\"div\", { onkeydown: (e) => this.keydown(e), class: \"cm-search\" }, [\n this.searchField,\n button(\"next\", () => findNext(view), [phrase(view, \"next\")]),\n button(\"prev\", () => findPrevious(view), [phrase(view, \"previous\")]),\n button(\"select\", () => selectMatches(view), [phrase(view, \"all\")]),\n elt(\"label\", null, [this.caseField, phrase(view, \"match case\")]),\n elt(\"label\", null, [this.reField, phrase(view, \"regexp\")]),\n ...view.state.readOnly ? [] : [\n elt(\"br\"),\n this.replaceField,\n button(\"replace\", () => replaceNext(view), [phrase(view, \"replace\")]),\n button(\"replaceAll\", () => replaceAll(view), [phrase(view, \"replace all\")]),\n elt(\"button\", {\n name: \"close\",\n onclick: () => closeSearchPanel(view),\n \"aria-label\": phrase(view, \"close\"),\n type: \"button\"\n }, [\"×\"])\n ]\n ]);\n }\n commit() {\n let query = new SearchQuery({\n search: this.searchField.value,\n caseSensitive: this.caseField.checked,\n regexp: this.reField.checked,\n replace: this.replaceField.value\n });\n if (!query.eq(this.query)) {\n this.query = query;\n this.view.dispatch({ effects: setSearchQuery.of(query) });\n }\n }\n keydown(e) {\n if (runScopeHandlers(this.view, e, \"search-panel\")) {\n e.preventDefault();\n }\n else if (e.keyCode == 13 && e.target == this.searchField) {\n e.preventDefault();\n (e.shiftKey ? findPrevious : findNext)(this.view);\n }\n else if (e.keyCode == 13 && e.target == this.replaceField) {\n e.preventDefault();\n replaceNext(this.view);\n }\n }\n update(update) {\n for (let tr of update.transactions)\n for (let effect of tr.effects) {\n if (effect.is(setSearchQuery) && !effect.value.eq(this.query))\n this.setQuery(effect.value);\n }\n }\n setQuery(query) {\n this.query = query;\n this.searchField.value = query.search;\n this.replaceField.value = query.replace;\n this.caseField.checked = query.caseSensitive;\n this.reField.checked = query.regexp;\n }\n mount() {\n this.searchField.select();\n }\n get pos() { return 80; }\n get top() { return this.view.state.facet(searchConfigFacet).top; }\n}\nfunction phrase(view, phrase) { return view.state.phrase(phrase); }\nconst AnnounceMargin = 30;\nconst Break = /[\\s\\.,:;?!]/;\nfunction announceMatch(view, { from, to }) {\n let lineStart = view.state.doc.lineAt(from).from, lineEnd = view.state.doc.lineAt(to).to;\n let start = Math.max(lineStart, from - AnnounceMargin), end = Math.min(lineEnd, to + AnnounceMargin);\n let text = view.state.sliceDoc(start, end);\n if (start != lineStart) {\n for (let i = 0; i < AnnounceMargin; i++)\n if (!Break.test(text[i + 1]) && Break.test(text[i])) {\n text = text.slice(i);\n break;\n }\n }\n if (end != lineEnd) {\n for (let i = text.length - 1; i > text.length - AnnounceMargin; i--)\n if (!Break.test(text[i - 1]) && Break.test(text[i])) {\n text = text.slice(0, i);\n break;\n }\n }\n return EditorView.announce.of(`${view.state.phrase(\"current match\")}. ${text} ${view.state.phrase(\"on line\")} ${view.state.doc.lineAt(from).number}`);\n}\nconst baseTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-panel.cm-search\": {\n padding: \"2px 6px 4px\",\n position: \"relative\",\n \"& [name=close]\": {\n position: \"absolute\",\n top: \"0\",\n right: \"4px\",\n backgroundColor: \"inherit\",\n border: \"none\",\n font: \"inherit\",\n padding: 0,\n margin: 0\n },\n \"& input, & button, & label\": {\n margin: \".2em .6em .2em 0\"\n },\n \"& input[type=checkbox]\": {\n marginRight: \".2em\"\n },\n \"& label\": {\n fontSize: \"80%\",\n whiteSpace: \"pre\"\n }\n },\n \"&light .cm-searchMatch\": { backgroundColor: \"#ffff0054\" },\n \"&dark .cm-searchMatch\": { backgroundColor: \"#00ffff8a\" },\n \"&light .cm-searchMatch-selected\": { backgroundColor: \"#ff6a0054\" },\n \"&dark .cm-searchMatch-selected\": { backgroundColor: \"#ff00ff8a\" }\n});\nconst searchExtensions = [\n searchState,\n /*@__PURE__*/Prec.lowest(searchHighlighter),\n baseTheme\n];\n\nexport { RegExpCursor, SearchCursor, SearchQuery, closeSearchPanel, findNext, findPrevious, getSearchQuery, gotoLine, highlightSelectionMatches, openSearchPanel, replaceAll, replaceNext, search, searchConfig, searchKeymap, selectMatches, selectNextOccurrence, selectSelectionMatches, setSearchQuery };\n","/**\nComment or uncomment the current selection. Will use line comments\nif available, otherwise falling back to block comments.\n*/\nconst toggleComment = target => {\n let config = getConfig(target.state);\n return config.line ? toggleLineComment(target) : config.block ? toggleBlockCommentByLine(target) : false;\n};\nfunction command(f, option) {\n return ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let tr = f(option, state);\n if (!tr)\n return false;\n dispatch(state.update(tr));\n return true;\n };\n}\n/**\nComment or uncomment the current selection using line comments.\nThe line comment syntax is taken from the\n[`commentTokens`](https://codemirror.net/6/docs/ref/#comment.CommentTokens) [language\ndata](https://codemirror.net/6/docs/ref/#state.EditorState.languageDataAt).\n*/\nconst toggleLineComment = /*@__PURE__*/command(changeLineComment, 0 /* Toggle */);\n/**\nComment the current selection using line comments.\n*/\nconst lineComment = /*@__PURE__*/command(changeLineComment, 1 /* Comment */);\n/**\nUncomment the current selection using line comments.\n*/\nconst lineUncomment = /*@__PURE__*/command(changeLineComment, 2 /* Uncomment */);\n/**\nComment or uncomment the current selection using block comments.\nThe block comment syntax is taken from the\n[`commentTokens`](https://codemirror.net/6/docs/ref/#comment.CommentTokens) [language\ndata](https://codemirror.net/6/docs/ref/#state.EditorState.languageDataAt).\n*/\nconst toggleBlockComment = /*@__PURE__*/command(changeBlockComment, 0 /* Toggle */);\n/**\nComment the current selection using block comments.\n*/\nconst blockComment = /*@__PURE__*/command(changeBlockComment, 1 /* Comment */);\n/**\nUncomment the current selection using block comments.\n*/\nconst blockUncomment = /*@__PURE__*/command(changeBlockComment, 2 /* Uncomment */);\n/**\nComment or uncomment the lines around the current selection using\nblock comments.\n*/\nconst toggleBlockCommentByLine = /*@__PURE__*/command((o, s) => changeBlockComment(o, s, selectedLineRanges(s)), 0 /* Toggle */);\n/**\nDefault key bindings for this package.\n\n - Ctrl-/ (Cmd-/ on macOS): [`toggleComment`](https://codemirror.net/6/docs/ref/#comment.toggleComment).\n - Shift-Alt-a: [`toggleBlockComment`](https://codemirror.net/6/docs/ref/#comment.toggleBlockComment).\n*/\nconst commentKeymap = [\n { key: \"Mod-/\", run: toggleComment },\n { key: \"Alt-A\", run: toggleBlockComment }\n];\nfunction getConfig(state, pos = state.selection.main.head) {\n let data = state.languageDataAt(\"commentTokens\", pos);\n return data.length ? data[0] : {};\n}\nconst SearchMargin = 50;\n/**\nDetermines if the given range is block-commented in the given\nstate.\n*/\nfunction findBlockComment(state, { open, close }, from, to) {\n let textBefore = state.sliceDoc(from - SearchMargin, from);\n let textAfter = state.sliceDoc(to, to + SearchMargin);\n let spaceBefore = /\\s*$/.exec(textBefore)[0].length, spaceAfter = /^\\s*/.exec(textAfter)[0].length;\n let beforeOff = textBefore.length - spaceBefore;\n if (textBefore.slice(beforeOff - open.length, beforeOff) == open &&\n textAfter.slice(spaceAfter, spaceAfter + close.length) == close) {\n return { open: { pos: from - spaceBefore, margin: spaceBefore && 1 },\n close: { pos: to + spaceAfter, margin: spaceAfter && 1 } };\n }\n let startText, endText;\n if (to - from <= 2 * SearchMargin) {\n startText = endText = state.sliceDoc(from, to);\n }\n else {\n startText = state.sliceDoc(from, from + SearchMargin);\n endText = state.sliceDoc(to - SearchMargin, to);\n }\n let startSpace = /^\\s*/.exec(startText)[0].length, endSpace = /\\s*$/.exec(endText)[0].length;\n let endOff = endText.length - endSpace - close.length;\n if (startText.slice(startSpace, startSpace + open.length) == open &&\n endText.slice(endOff, endOff + close.length) == close) {\n return { open: { pos: from + startSpace + open.length,\n margin: /\\s/.test(startText.charAt(startSpace + open.length)) ? 1 : 0 },\n close: { pos: to - endSpace - close.length,\n margin: /\\s/.test(endText.charAt(endOff - 1)) ? 1 : 0 } };\n }\n return null;\n}\nfunction selectedLineRanges(state) {\n let ranges = [];\n for (let r of state.selection.ranges) {\n let fromLine = state.doc.lineAt(r.from);\n let toLine = r.to <= fromLine.to ? fromLine : state.doc.lineAt(r.to);\n let last = ranges.length - 1;\n if (last >= 0 && ranges[last].to > fromLine.from)\n ranges[last].to = toLine.to;\n else\n ranges.push({ from: fromLine.from, to: toLine.to });\n }\n return ranges;\n}\n// Performs toggle, comment and uncomment of block comments in\n// languages that support them.\nfunction changeBlockComment(option, state, ranges = state.selection.ranges) {\n let tokens = ranges.map(r => getConfig(state, r.from).block);\n if (!tokens.every(c => c))\n return null;\n let comments = ranges.map((r, i) => findBlockComment(state, tokens[i], r.from, r.to));\n if (option != 2 /* Uncomment */ && !comments.every(c => c)) {\n return { changes: state.changes(ranges.map((range, i) => {\n if (comments[i])\n return [];\n return [{ from: range.from, insert: tokens[i].open + \" \" }, { from: range.to, insert: \" \" + tokens[i].close }];\n })) };\n }\n else if (option != 1 /* Comment */ && comments.some(c => c)) {\n let changes = [];\n for (let i = 0, comment; i < comments.length; i++)\n if (comment = comments[i]) {\n let token = tokens[i], { open, close } = comment;\n changes.push({ from: open.pos - token.open.length, to: open.pos + open.margin }, { from: close.pos - close.margin, to: close.pos + token.close.length });\n }\n return { changes };\n }\n return null;\n}\n// Performs toggle, comment and uncomment of line comments.\nfunction changeLineComment(option, state, ranges = state.selection.ranges) {\n let lines = [];\n let prevLine = -1;\n for (let { from, to } of ranges) {\n let startI = lines.length, minIndent = 1e9;\n for (let pos = from; pos <= to;) {\n let line = state.doc.lineAt(pos);\n if (line.from > prevLine && (from == to || to > line.from)) {\n prevLine = line.from;\n let token = getConfig(state, pos).line;\n if (!token)\n continue;\n let indent = /^\\s*/.exec(line.text)[0].length;\n let empty = indent == line.length;\n let comment = line.text.slice(indent, indent + token.length) == token ? indent : -1;\n if (indent < line.text.length && indent < minIndent)\n minIndent = indent;\n lines.push({ line, comment, token, indent, empty, single: false });\n }\n pos = line.to + 1;\n }\n if (minIndent < 1e9)\n for (let i = startI; i < lines.length; i++)\n if (lines[i].indent < lines[i].line.text.length)\n lines[i].indent = minIndent;\n if (lines.length == startI + 1)\n lines[startI].single = true;\n }\n if (option != 2 /* Uncomment */ && lines.some(l => l.comment < 0 && (!l.empty || l.single))) {\n let changes = [];\n for (let { line, token, indent, empty, single } of lines)\n if (single || !empty)\n changes.push({ from: line.from + indent, insert: token + \" \" });\n let changeSet = state.changes(changes);\n return { changes: changeSet, selection: state.selection.map(changeSet, 1) };\n }\n else if (option != 1 /* Comment */ && lines.some(l => l.comment >= 0)) {\n let changes = [];\n for (let { line, comment, token } of lines)\n if (comment >= 0) {\n let from = line.from + comment, to = from + token.length;\n if (line.text[to - line.from] == \" \")\n to++;\n changes.push({ from, to });\n }\n return { changes };\n }\n return null;\n}\n\nexport { blockComment, blockUncomment, commentKeymap, lineComment, lineUncomment, toggleBlockComment, toggleBlockCommentByLine, toggleComment, toggleLineComment };\n","import { EditorSelection } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { findColumn, countColumn } from '@codemirror/text';\n\n// Don't compute precise column positions for line offsets above this\n// (since it could get expensive). Assume offset==column for them.\nconst MaxOff = 2000;\nfunction rectangleFor(state, a, b) {\n let startLine = Math.min(a.line, b.line), endLine = Math.max(a.line, b.line);\n let ranges = [];\n if (a.off > MaxOff || b.off > MaxOff || a.col < 0 || b.col < 0) {\n let startOff = Math.min(a.off, b.off), endOff = Math.max(a.off, b.off);\n for (let i = startLine; i <= endLine; i++) {\n let line = state.doc.line(i);\n if (line.length <= endOff)\n ranges.push(EditorSelection.range(line.from + startOff, line.to + endOff));\n }\n }\n else {\n let startCol = Math.min(a.col, b.col), endCol = Math.max(a.col, b.col);\n for (let i = startLine; i <= endLine; i++) {\n let line = state.doc.line(i);\n let start = findColumn(line.text, startCol, state.tabSize, true);\n if (start > -1) {\n let end = findColumn(line.text, endCol, state.tabSize);\n ranges.push(EditorSelection.range(line.from + start, line.from + end));\n }\n }\n }\n return ranges;\n}\nfunction absoluteColumn(view, x) {\n let ref = view.coordsAtPos(view.viewport.from);\n return ref ? Math.round(Math.abs((ref.left - x) / view.defaultCharacterWidth)) : -1;\n}\nfunction getPos(view, event) {\n let offset = view.posAtCoords({ x: event.clientX, y: event.clientY }, false);\n let line = view.state.doc.lineAt(offset), off = offset - line.from;\n let col = off > MaxOff ? -1\n : off == line.length ? absoluteColumn(view, event.clientX)\n : countColumn(line.text, view.state.tabSize, offset - line.from);\n return { line: line.number, col, off };\n}\nfunction rectangleSelectionStyle(view, event) {\n let start = getPos(view, event), startSel = view.state.selection;\n if (!start)\n return null;\n return {\n update(update) {\n if (update.docChanged) {\n let newStart = update.changes.mapPos(update.startState.doc.line(start.line).from);\n let newLine = update.state.doc.lineAt(newStart);\n start = { line: newLine.number, col: start.col, off: Math.min(start.off, newLine.length) };\n startSel = startSel.map(update.changes);\n }\n },\n get(event, _extend, multiple) {\n let cur = getPos(view, event);\n if (!cur)\n return startSel;\n let ranges = rectangleFor(view.state, start, cur);\n if (!ranges.length)\n return startSel;\n if (multiple)\n return EditorSelection.create(ranges.concat(startSel.ranges));\n else\n return EditorSelection.create(ranges);\n }\n };\n}\n/**\nCreate an extension that enables rectangular selections. By\ndefault, it will react to left mouse drag with the Alt key held\ndown. When such a selection occurs, the text within the rectangle\nthat was dragged over will be selected, as one selection\n[range](https://codemirror.net/6/docs/ref/#state.SelectionRange) per line.\n*/\nfunction rectangularSelection(options) {\n let filter = (options === null || options === void 0 ? void 0 : options.eventFilter) || (e => e.altKey && e.button == 0);\n return EditorView.mouseSelectionStyle.of((view, event) => filter(event) ? rectangleSelectionStyle(view, event) : null);\n}\n\nexport { rectangularSelection };\n","import { Decoration, EditorView, ViewPlugin, logException, WidgetType } from '@codemirror/view';\nimport { StateEffect, StateField, Facet, combineConfig } from '@codemirror/state';\nimport { hoverTooltip, showTooltip } from '@codemirror/tooltip';\nimport { showPanel, getPanel } from '@codemirror/panel';\nimport { gutter, GutterMarker } from '@codemirror/gutter';\nimport { RangeSet } from '@codemirror/rangeset';\nimport elt from 'crelt';\n\nclass SelectedDiagnostic {\n constructor(from, to, diagnostic) {\n this.from = from;\n this.to = to;\n this.diagnostic = diagnostic;\n }\n}\nclass LintState {\n constructor(diagnostics, panel, selected) {\n this.diagnostics = diagnostics;\n this.panel = panel;\n this.selected = selected;\n }\n static init(diagnostics, panel, state) {\n let ranges = Decoration.set(diagnostics.map((d) => {\n // For zero-length ranges or ranges covering only a line break, create a widget\n return d.from == d.to || (d.from == d.to - 1 && state.doc.lineAt(d.from).to == d.from)\n ? Decoration.widget({\n widget: new DiagnosticWidget(d),\n diagnostic: d\n }).range(d.from)\n : Decoration.mark({\n attributes: { class: \"cm-lintRange cm-lintRange-\" + d.severity },\n diagnostic: d\n }).range(d.from, d.to);\n }), true);\n return new LintState(ranges, panel, findDiagnostic(ranges));\n }\n}\nfunction findDiagnostic(diagnostics, diagnostic = null, after = 0) {\n let found = null;\n diagnostics.between(after, 1e9, (from, to, { spec }) => {\n if (diagnostic && spec.diagnostic != diagnostic)\n return;\n found = new SelectedDiagnostic(from, to, spec.diagnostic);\n return false;\n });\n return found;\n}\nfunction maybeEnableLint(state, effects) {\n return state.field(lintState, false) ? effects : effects.concat(StateEffect.appendConfig.of([\n lintState,\n EditorView.decorations.compute([lintState], state => {\n let { selected, panel } = state.field(lintState);\n return !selected || !panel || selected.from == selected.to ? Decoration.none : Decoration.set([\n activeMark.range(selected.from, selected.to)\n ]);\n }),\n hoverTooltip(lintTooltip),\n baseTheme\n ]));\n}\n/**\nReturns a transaction spec which updates the current set of\ndiagnostics, and enables the lint extension if if wasn't already\nactive.\n*/\nfunction setDiagnostics(state, diagnostics) {\n return {\n effects: maybeEnableLint(state, [setDiagnosticsEffect.of(diagnostics)])\n };\n}\n/**\nThe state effect that updates the set of active diagnostics. Can\nbe useful when writing an extension that needs to track these.\n*/\nconst setDiagnosticsEffect = /*@__PURE__*/StateEffect.define();\nconst togglePanel = /*@__PURE__*/StateEffect.define();\nconst movePanelSelection = /*@__PURE__*/StateEffect.define();\nconst lintState = /*@__PURE__*/StateField.define({\n create() {\n return new LintState(Decoration.none, null, null);\n },\n update(value, tr) {\n if (tr.docChanged) {\n let mapped = value.diagnostics.map(tr.changes), selected = null;\n if (value.selected) {\n let selPos = tr.changes.mapPos(value.selected.from, 1);\n selected = findDiagnostic(mapped, value.selected.diagnostic, selPos) || findDiagnostic(mapped, null, selPos);\n }\n value = new LintState(mapped, value.panel, selected);\n }\n for (let effect of tr.effects) {\n if (effect.is(setDiagnosticsEffect)) {\n value = LintState.init(effect.value, value.panel, tr.state);\n }\n else if (effect.is(togglePanel)) {\n value = new LintState(value.diagnostics, effect.value ? LintPanel.open : null, value.selected);\n }\n else if (effect.is(movePanelSelection)) {\n value = new LintState(value.diagnostics, value.panel, effect.value);\n }\n }\n return value;\n },\n provide: f => [showPanel.from(f, val => val.panel),\n EditorView.decorations.from(f, s => s.diagnostics)]\n});\n/**\nReturns the number of active lint diagnostics in the given state.\n*/\nfunction diagnosticCount(state) {\n let lint = state.field(lintState, false);\n return lint ? lint.diagnostics.size : 0;\n}\nconst activeMark = /*@__PURE__*/Decoration.mark({ class: \"cm-lintRange cm-lintRange-active\" });\nfunction lintTooltip(view, pos, side) {\n let { diagnostics } = view.state.field(lintState);\n let found = [], stackStart = 2e8, stackEnd = 0;\n diagnostics.between(pos - (side < 0 ? 1 : 0), pos + (side > 0 ? 1 : 0), (from, to, { spec }) => {\n if (pos >= from && pos <= to &&\n (from == to || ((pos > from || side > 0) && (pos < to || side < 0)))) {\n found.push(spec.diagnostic);\n stackStart = Math.min(from, stackStart);\n stackEnd = Math.max(to, stackEnd);\n }\n });\n if (!found.length)\n return null;\n return {\n pos: stackStart,\n end: stackEnd,\n above: view.state.doc.lineAt(stackStart).to < stackEnd,\n create() {\n return { dom: diagnosticsTooltip(view, found) };\n }\n };\n}\nfunction diagnosticsTooltip(view, diagnostics) {\n return elt(\"ul\", { class: \"cm-tooltip-lint\" }, diagnostics.map(d => renderDiagnostic(view, d, false)));\n}\n/**\nCommand to open and focus the lint panel.\n*/\nconst openLintPanel = (view) => {\n let field = view.state.field(lintState, false);\n if (!field || !field.panel)\n view.dispatch({ effects: maybeEnableLint(view.state, [togglePanel.of(true)]) });\n let panel = getPanel(view, LintPanel.open);\n if (panel)\n panel.dom.querySelector(\".cm-panel-lint ul\").focus();\n return true;\n};\n/**\nCommand to close the lint panel, when open.\n*/\nconst closeLintPanel = (view) => {\n let field = view.state.field(lintState, false);\n if (!field || !field.panel)\n return false;\n view.dispatch({ effects: togglePanel.of(false) });\n return true;\n};\n/**\nMove the selection to the next diagnostic.\n*/\nconst nextDiagnostic = (view) => {\n let field = view.state.field(lintState, false);\n if (!field)\n return false;\n let sel = view.state.selection.main, next = field.diagnostics.iter(sel.to + 1);\n if (!next.value) {\n next = field.diagnostics.iter(0);\n if (!next.value || next.from == sel.from && next.to == sel.to)\n return false;\n }\n view.dispatch({ selection: { anchor: next.from, head: next.to }, scrollIntoView: true });\n return true;\n};\n/**\nA set of default key bindings for the lint functionality.\n\n- Ctrl-Shift-m (Cmd-Shift-m on macOS): [`openLintPanel`](https://codemirror.net/6/docs/ref/#lint.openLintPanel)\n- F8: [`nextDiagnostic`](https://codemirror.net/6/docs/ref/#lint.nextDiagnostic)\n*/\nconst lintKeymap = [\n { key: \"Mod-Shift-m\", run: openLintPanel },\n { key: \"F8\", run: nextDiagnostic }\n];\nconst lintPlugin = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.timeout = -1;\n this.set = true;\n let { delay } = view.state.facet(lintSource);\n this.lintTime = Date.now() + delay;\n this.run = this.run.bind(this);\n this.timeout = setTimeout(this.run, delay);\n }\n run() {\n let now = Date.now();\n if (now < this.lintTime - 10) {\n setTimeout(this.run, this.lintTime - now);\n }\n else {\n this.set = false;\n let { state } = this.view, { sources } = state.facet(lintSource);\n Promise.all(sources.map(source => Promise.resolve(source(this.view)))).then(annotations => {\n let all = annotations.reduce((a, b) => a.concat(b));\n if (this.view.state.doc == state.doc)\n this.view.dispatch(setDiagnostics(this.view.state, all));\n }, error => { logException(this.view.state, error); });\n }\n }\n update(update) {\n let source = update.state.facet(lintSource);\n if (update.docChanged || source != update.startState.facet(lintSource)) {\n this.lintTime = Date.now() + source.delay;\n if (!this.set) {\n this.set = true;\n this.timeout = setTimeout(this.run, source.delay);\n }\n }\n }\n force() {\n if (this.set) {\n this.lintTime = Date.now();\n this.run();\n }\n }\n destroy() {\n clearTimeout(this.timeout);\n }\n});\nconst lintSource = /*@__PURE__*/Facet.define({\n combine(input) {\n return { sources: input.map(i => i.source), delay: input.length ? Math.max(...input.map(i => i.delay)) : 750 };\n },\n enables: lintPlugin\n});\n/**\nGiven a diagnostic source, this function returns an extension that\nenables linting with that source. It will be called whenever the\neditor is idle (after its content changed).\n*/\nfunction linter(source, config = {}) {\n var _a;\n return lintSource.of({ source, delay: (_a = config.delay) !== null && _a !== void 0 ? _a : 750 });\n}\n/**\nForces any linters [configured](https://codemirror.net/6/docs/ref/#lint.linter) to run when the\neditor is idle to run right away.\n*/\nfunction forceLinting(view) {\n let plugin = view.plugin(lintPlugin);\n if (plugin)\n plugin.force();\n}\nfunction assignKeys(actions) {\n let assigned = [];\n if (actions)\n actions: for (let { name } of actions) {\n for (let i = 0; i < name.length; i++) {\n let ch = name[i];\n if (/[a-zA-Z]/.test(ch) && !assigned.some(c => c.toLowerCase() == ch.toLowerCase())) {\n assigned.push(ch);\n continue actions;\n }\n }\n assigned.push(\"\");\n }\n return assigned;\n}\nfunction renderDiagnostic(view, diagnostic, inPanel) {\n var _a;\n let keys = inPanel ? assignKeys(diagnostic.actions) : [];\n return elt(\"li\", { class: \"cm-diagnostic cm-diagnostic-\" + diagnostic.severity }, elt(\"span\", { class: \"cm-diagnosticText\" }, diagnostic.message), (_a = diagnostic.actions) === null || _a === void 0 ? void 0 : _a.map((action, i) => {\n let click = (e) => {\n e.preventDefault();\n let found = findDiagnostic(view.state.field(lintState).diagnostics, diagnostic);\n if (found)\n action.apply(view, found.from, found.to);\n };\n let { name } = action, keyIndex = keys[i] ? name.indexOf(keys[i]) : -1;\n let nameElt = keyIndex < 0 ? name : [name.slice(0, keyIndex),\n elt(\"u\", name.slice(keyIndex, keyIndex + 1)),\n name.slice(keyIndex + 1)];\n return elt(\"button\", {\n type: \"button\",\n class: \"cm-diagnosticAction\",\n onclick: click,\n onmousedown: click,\n \"aria-label\": ` Action: ${name}${keyIndex < 0 ? \"\" : ` (access key \"${keys[i]})\"`}.`\n }, nameElt);\n }), diagnostic.source && elt(\"div\", { class: \"cm-diagnosticSource\" }, diagnostic.source));\n}\nclass DiagnosticWidget extends WidgetType {\n constructor(diagnostic) {\n super();\n this.diagnostic = diagnostic;\n }\n eq(other) { return other.diagnostic == this.diagnostic; }\n toDOM() {\n return elt(\"span\", { class: \"cm-lintPoint cm-lintPoint-\" + this.diagnostic.severity });\n }\n}\nclass PanelItem {\n constructor(view, diagnostic) {\n this.diagnostic = diagnostic;\n this.id = \"item_\" + Math.floor(Math.random() * 0xffffffff).toString(16);\n this.dom = renderDiagnostic(view, diagnostic, true);\n this.dom.id = this.id;\n this.dom.setAttribute(\"role\", \"option\");\n }\n}\nclass LintPanel {\n constructor(view) {\n this.view = view;\n this.items = [];\n let onkeydown = (event) => {\n if (event.keyCode == 27) { // Escape\n closeLintPanel(this.view);\n this.view.focus();\n }\n else if (event.keyCode == 38 || event.keyCode == 33) { // ArrowUp, PageUp\n this.moveSelection((this.selectedIndex - 1 + this.items.length) % this.items.length);\n }\n else if (event.keyCode == 40 || event.keyCode == 34) { // ArrowDown, PageDown\n this.moveSelection((this.selectedIndex + 1) % this.items.length);\n }\n else if (event.keyCode == 36) { // Home\n this.moveSelection(0);\n }\n else if (event.keyCode == 35) { // End\n this.moveSelection(this.items.length - 1);\n }\n else if (event.keyCode == 13) { // Enter\n this.view.focus();\n }\n else if (event.keyCode >= 65 && event.keyCode <= 90 && this.selectedIndex >= 0) { // A-Z\n let { diagnostic } = this.items[this.selectedIndex], keys = assignKeys(diagnostic.actions);\n for (let i = 0; i < keys.length; i++)\n if (keys[i].toUpperCase().charCodeAt(0) == event.keyCode) {\n let found = findDiagnostic(this.view.state.field(lintState).diagnostics, diagnostic);\n if (found)\n diagnostic.actions[i].apply(view, found.from, found.to);\n }\n }\n else {\n return;\n }\n event.preventDefault();\n };\n let onclick = (event) => {\n for (let i = 0; i < this.items.length; i++) {\n if (this.items[i].dom.contains(event.target))\n this.moveSelection(i);\n }\n };\n this.list = elt(\"ul\", {\n tabIndex: 0,\n role: \"listbox\",\n \"aria-label\": this.view.state.phrase(\"Diagnostics\"),\n onkeydown,\n onclick\n });\n this.dom = elt(\"div\", { class: \"cm-panel-lint\" }, this.list, elt(\"button\", {\n type: \"button\",\n name: \"close\",\n \"aria-label\": this.view.state.phrase(\"close\"),\n onclick: () => closeLintPanel(this.view)\n }, \"×\"));\n this.update();\n }\n get selectedIndex() {\n let selected = this.view.state.field(lintState).selected;\n if (!selected)\n return -1;\n for (let i = 0; i < this.items.length; i++)\n if (this.items[i].diagnostic == selected.diagnostic)\n return i;\n return -1;\n }\n update() {\n let { diagnostics, selected } = this.view.state.field(lintState);\n let i = 0, needsSync = false, newSelectedItem = null;\n diagnostics.between(0, this.view.state.doc.length, (_start, _end, { spec }) => {\n let found = -1, item;\n for (let j = i; j < this.items.length; j++)\n if (this.items[j].diagnostic == spec.diagnostic) {\n found = j;\n break;\n }\n if (found < 0) {\n item = new PanelItem(this.view, spec.diagnostic);\n this.items.splice(i, 0, item);\n needsSync = true;\n }\n else {\n item = this.items[found];\n if (found > i) {\n this.items.splice(i, found - i);\n needsSync = true;\n }\n }\n if (selected && item.diagnostic == selected.diagnostic) {\n if (!item.dom.hasAttribute(\"aria-selected\")) {\n item.dom.setAttribute(\"aria-selected\", \"true\");\n newSelectedItem = item;\n }\n }\n else if (item.dom.hasAttribute(\"aria-selected\")) {\n item.dom.removeAttribute(\"aria-selected\");\n }\n i++;\n });\n while (i < this.items.length && !(this.items.length == 1 && this.items[0].diagnostic.from < 0)) {\n needsSync = true;\n this.items.pop();\n }\n if (this.items.length == 0) {\n this.items.push(new PanelItem(this.view, {\n from: -1, to: -1,\n severity: \"info\",\n message: this.view.state.phrase(\"No diagnostics\")\n }));\n needsSync = true;\n }\n if (newSelectedItem) {\n this.list.setAttribute(\"aria-activedescendant\", newSelectedItem.id);\n this.view.requestMeasure({\n key: this,\n read: () => ({ sel: newSelectedItem.dom.getBoundingClientRect(), panel: this.list.getBoundingClientRect() }),\n write: ({ sel, panel }) => {\n if (sel.top < panel.top)\n this.list.scrollTop -= panel.top - sel.top;\n else if (sel.bottom > panel.bottom)\n this.list.scrollTop += sel.bottom - panel.bottom;\n }\n });\n }\n else if (this.selectedIndex < 0) {\n this.list.removeAttribute(\"aria-activedescendant\");\n }\n if (needsSync)\n this.sync();\n }\n sync() {\n let domPos = this.list.firstChild;\n function rm() {\n let prev = domPos;\n domPos = prev.nextSibling;\n prev.remove();\n }\n for (let item of this.items) {\n if (item.dom.parentNode == this.list) {\n while (domPos != item.dom)\n rm();\n domPos = item.dom.nextSibling;\n }\n else {\n this.list.insertBefore(item.dom, domPos);\n }\n }\n while (domPos)\n rm();\n }\n moveSelection(selectedIndex) {\n if (this.selectedIndex < 0)\n return;\n let field = this.view.state.field(lintState);\n let selection = findDiagnostic(field.diagnostics, this.items[selectedIndex].diagnostic);\n if (!selection)\n return;\n this.view.dispatch({\n selection: { anchor: selection.from, head: selection.to },\n scrollIntoView: true,\n effects: movePanelSelection.of(selection)\n });\n }\n static open(view) { return new LintPanel(view); }\n}\nfunction svg(content, attrs = `viewBox=\"0 0 40 40\"`) {\n return `url('data:image/svg+xml,${encodeURIComponent(content)}')`;\n}\nfunction underline(color) {\n return svg(``, `width=\"6\" height=\"3\"`);\n}\nconst baseTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-diagnostic\": {\n padding: \"3px 6px 3px 8px\",\n marginLeft: \"-1px\",\n display: \"block\",\n whiteSpace: \"pre-wrap\"\n },\n \".cm-diagnostic-error\": { borderLeft: \"5px solid #d11\" },\n \".cm-diagnostic-warning\": { borderLeft: \"5px solid orange\" },\n \".cm-diagnostic-info\": { borderLeft: \"5px solid #999\" },\n \".cm-diagnosticAction\": {\n font: \"inherit\",\n border: \"none\",\n padding: \"2px 4px\",\n backgroundColor: \"#444\",\n color: \"white\",\n borderRadius: \"3px\",\n marginLeft: \"8px\"\n },\n \".cm-diagnosticSource\": {\n fontSize: \"70%\",\n opacity: .7\n },\n \".cm-lintRange\": {\n backgroundPosition: \"left bottom\",\n backgroundRepeat: \"repeat-x\",\n paddingBottom: \"0.7px\",\n },\n \".cm-lintRange-error\": { backgroundImage: /*@__PURE__*/underline(\"#d11\") },\n \".cm-lintRange-warning\": { backgroundImage: /*@__PURE__*/underline(\"orange\") },\n \".cm-lintRange-info\": { backgroundImage: /*@__PURE__*/underline(\"#999\") },\n \".cm-lintRange-active\": { backgroundColor: \"#ffdd9980\" },\n \".cm-tooltip-lint\": {\n padding: 0,\n margin: 0\n },\n \".cm-lintPoint\": {\n position: \"relative\",\n \"&:after\": {\n content: '\"\"',\n position: \"absolute\",\n bottom: 0,\n left: \"-2px\",\n borderLeft: \"3px solid transparent\",\n borderRight: \"3px solid transparent\",\n borderBottom: \"4px solid #d11\"\n }\n },\n \".cm-lintPoint-warning\": {\n \"&:after\": { borderBottomColor: \"orange\" }\n },\n \".cm-lintPoint-info\": {\n \"&:after\": { borderBottomColor: \"#999\" }\n },\n \".cm-panel.cm-panel-lint\": {\n position: \"relative\",\n \"& ul\": {\n maxHeight: \"100px\",\n overflowY: \"auto\",\n \"& [aria-selected]\": {\n backgroundColor: \"#ddd\",\n \"& u\": { textDecoration: \"underline\" }\n },\n \"&:focus [aria-selected]\": {\n background_fallback: \"#bdf\",\n backgroundColor: \"Highlight\",\n color_fallback: \"white\",\n color: \"HighlightText\"\n },\n \"& u\": { textDecoration: \"none\" },\n padding: 0,\n margin: 0\n },\n \"& [name=close]\": {\n position: \"absolute\",\n top: \"0\",\n right: \"2px\",\n background: \"inherit\",\n border: \"none\",\n font: \"inherit\",\n padding: 0,\n margin: 0\n }\n }\n});\nclass LintGutterMarker extends GutterMarker {\n constructor(diagnostics) {\n super();\n this.diagnostics = diagnostics;\n this.severity = diagnostics.reduce((max, d) => {\n let s = d.severity;\n return s == \"error\" || s == \"warning\" && max == \"info\" ? s : max;\n }, \"info\");\n }\n toDOM(view) {\n let elt = document.createElement(\"div\");\n elt.className = \"cm-lint-marker cm-lint-marker-\" + this.severity;\n elt.onmouseover = () => gutterMarkerMouseOver(view, elt, this.diagnostics);\n return elt;\n }\n}\nfunction trackHoverOn(view, marker) {\n let mousemove = (event) => {\n let rect = marker.getBoundingClientRect();\n if (event.clientX > rect.left - 10 /* Margin */ && event.clientX < rect.right + 10 /* Margin */ &&\n event.clientY > rect.top - 10 /* Margin */ && event.clientY < rect.bottom + 10 /* Margin */)\n return;\n for (let target = event.target; target; target = target.parentNode) {\n if (target.nodeType == 1 && target.classList.contains(\"cm-tooltip-lint\"))\n return;\n }\n window.removeEventListener(\"mousemove\", mousemove);\n if (view.state.field(lintGutterTooltip))\n view.dispatch({ effects: setLintGutterTooltip.of(null) });\n };\n window.addEventListener(\"mousemove\", mousemove);\n}\nfunction gutterMarkerMouseOver(view, marker, diagnostics) {\n function hovered() {\n let line = view.elementAtHeight(marker.getBoundingClientRect().top + 5 - view.documentTop);\n const linePos = view.coordsAtPos(line.from);\n if (linePos) {\n view.dispatch({ effects: setLintGutterTooltip.of({\n pos: line.from,\n above: false,\n create() {\n return {\n dom: diagnosticsTooltip(view, diagnostics),\n getCoords: () => marker.getBoundingClientRect()\n };\n }\n }) });\n }\n marker.onmouseout = marker.onmousemove = null;\n trackHoverOn(view, marker);\n }\n let { hoverTime } = view.state.facet(lintGutterConfig);\n let hoverTimeout = setTimeout(hovered, hoverTime);\n marker.onmouseout = () => {\n clearTimeout(hoverTimeout);\n marker.onmouseout = marker.onmousemove = null;\n };\n marker.onmousemove = () => {\n clearTimeout(hoverTimeout);\n hoverTimeout = setTimeout(hovered, hoverTime);\n };\n}\nfunction markersForDiagnostics(doc, diagnostics) {\n let byLine = Object.create(null);\n for (let diagnostic of diagnostics) {\n let line = doc.lineAt(diagnostic.from);\n (byLine[line.from] || (byLine[line.from] = [])).push(diagnostic);\n }\n let markers = [];\n for (let line in byLine) {\n markers.push(new LintGutterMarker(byLine[line]).range(+line));\n }\n return RangeSet.of(markers, true);\n}\nconst lintGutterExtension = /*@__PURE__*/gutter({\n class: \"cm-gutter-lint\",\n markers: view => view.state.field(lintGutterMarkers),\n});\nconst lintGutterMarkers = /*@__PURE__*/StateField.define({\n create() {\n return RangeSet.empty;\n },\n update(markers, tr) {\n markers = markers.map(tr.changes);\n for (let effect of tr.effects)\n if (effect.is(setDiagnosticsEffect)) {\n markers = markersForDiagnostics(tr.state.doc, effect.value);\n }\n return markers;\n }\n});\nconst setLintGutterTooltip = /*@__PURE__*/StateEffect.define();\nconst lintGutterTooltip = /*@__PURE__*/StateField.define({\n create() { return null; },\n update(tooltip, tr) {\n if (tooltip && tr.docChanged)\n tooltip = Object.assign(Object.assign({}, tooltip), { pos: tr.changes.mapPos(tooltip.pos) });\n return tr.effects.reduce((t, e) => e.is(setLintGutterTooltip) ? e.value : t, tooltip);\n },\n provide: field => showTooltip.from(field)\n});\nconst lintGutterTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-gutter-lint\": {\n width: \"1.4em\",\n \"& .cm-gutterElement\": {\n padding: \".2em\"\n }\n },\n \".cm-lint-marker\": {\n width: \"1em\",\n height: \"1em\"\n },\n \".cm-lint-marker-info\": {\n content: /*@__PURE__*/svg(``)\n },\n \".cm-lint-marker-warning\": {\n content: /*@__PURE__*/svg(``),\n },\n \".cm-lint-marker-error:before\": {\n content: /*@__PURE__*/svg(``)\n },\n});\nconst lintGutterConfig = /*@__PURE__*/Facet.define({\n combine(configs) {\n return combineConfig(configs, {\n hoverTime: 300 /* Time */,\n });\n }\n});\n/**\nReturns an extension that installs a gutter showing markers for\neach line that has diagnostics, which can be hovered over to see\nthe diagnostics.\n*/\nfunction lintGutter(config = {}) {\n return [lintGutterConfig.of(config), lintGutterMarkers, lintGutterExtension, lintGutterTheme, lintGutterTooltip];\n}\n\nexport { closeLintPanel, diagnosticCount, forceLinting, lintGutter, lintKeymap, linter, nextDiagnostic, openLintPanel, setDiagnostics, setDiagnosticsEffect };\n","import { highlightSpecialChars, drawSelection, dropCursor, highlightActiveLine, keymap } from '@codemirror/view';\nexport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nexport { EditorState } from '@codemirror/state';\nimport { history, historyKeymap } from '@codemirror/history';\nimport { foldGutter, foldKeymap } from '@codemirror/fold';\nimport { indentOnInput } from '@codemirror/language';\nimport { lineNumbers, highlightActiveLineGutter } from '@codemirror/gutter';\nimport { defaultKeymap } from '@codemirror/commands';\nimport { bracketMatching } from '@codemirror/matchbrackets';\nimport { closeBrackets, closeBracketsKeymap } from '@codemirror/closebrackets';\nimport { highlightSelectionMatches, searchKeymap } from '@codemirror/search';\nimport { autocompletion, completionKeymap } from '@codemirror/autocomplete';\nimport { commentKeymap } from '@codemirror/comment';\nimport { rectangularSelection } from '@codemirror/rectangular-selection';\nimport { defaultHighlightStyle } from '@codemirror/highlight';\nimport { lintKeymap } from '@codemirror/lint';\n\n/**\nThis is an extension value that just pulls together a whole lot of\nextensions that you might want in a basic editor. It is meant as a\nconvenient helper to quickly set up CodeMirror without installing\nand importing a lot of packages.\n\nSpecifically, it includes...\n\n - [the default command bindings](https://codemirror.net/6/docs/ref/#commands.defaultKeymap)\n - [line numbers](https://codemirror.net/6/docs/ref/#gutter.lineNumbers)\n - [special character highlighting](https://codemirror.net/6/docs/ref/#view.highlightSpecialChars)\n - [the undo history](https://codemirror.net/6/docs/ref/#history.history)\n - [a fold gutter](https://codemirror.net/6/docs/ref/#fold.foldGutter)\n - [custom selection drawing](https://codemirror.net/6/docs/ref/#view.drawSelection)\n - [drop cursor](https://codemirror.net/6/docs/ref/#view.dropCursor)\n - [multiple selections](https://codemirror.net/6/docs/ref/#state.EditorState^allowMultipleSelections)\n - [reindentation on input](https://codemirror.net/6/docs/ref/#language.indentOnInput)\n - [the default highlight style](https://codemirror.net/6/docs/ref/#highlight.defaultHighlightStyle) (as fallback)\n - [bracket matching](https://codemirror.net/6/docs/ref/#matchbrackets.bracketMatching)\n - [bracket closing](https://codemirror.net/6/docs/ref/#closebrackets.closeBrackets)\n - [autocompletion](https://codemirror.net/6/docs/ref/#autocomplete.autocompletion)\n - [rectangular selection](https://codemirror.net/6/docs/ref/#rectangular-selection.rectangularSelection)\n - [active line highlighting](https://codemirror.net/6/docs/ref/#view.highlightActiveLine)\n - [active line gutter highlighting](https://codemirror.net/6/docs/ref/#gutter.highlightActiveLineGutter)\n - [selection match highlighting](https://codemirror.net/6/docs/ref/#search.highlightSelectionMatches)\n - [search](https://codemirror.net/6/docs/ref/#search.searchKeymap)\n - [commenting](https://codemirror.net/6/docs/ref/#comment.commentKeymap)\n - [linting](https://codemirror.net/6/docs/ref/#lint.lintKeymap)\n\n(You'll probably want to add some language package to your setup\ntoo.)\n\nThis package does not allow customization. The idea is that, once\nyou decide you want to configure your editor more precisely, you\ntake this package's source (which is just a bunch of imports and\nan array literal), copy it into your own code, and adjust it as\ndesired.\n*/\nconst basicSetup = [\n /*@__PURE__*/lineNumbers(),\n /*@__PURE__*/highlightActiveLineGutter(),\n /*@__PURE__*/highlightSpecialChars(),\n /*@__PURE__*/history(),\n /*@__PURE__*/foldGutter(),\n /*@__PURE__*/drawSelection(),\n /*@__PURE__*/dropCursor(),\n /*@__PURE__*/EditorState.allowMultipleSelections.of(true),\n /*@__PURE__*/indentOnInput(),\n defaultHighlightStyle.fallback,\n /*@__PURE__*/bracketMatching(),\n /*@__PURE__*/closeBrackets(),\n /*@__PURE__*/autocompletion(),\n /*@__PURE__*/rectangularSelection(),\n /*@__PURE__*/highlightActiveLine(),\n /*@__PURE__*/highlightSelectionMatches(),\n /*@__PURE__*/keymap.of([\n ...closeBracketsKeymap,\n ...defaultKeymap,\n ...searchKeymap,\n ...historyKeymap,\n ...foldKeymap,\n ...commentKeymap,\n ...completionKeymap,\n ...lintKeymap\n ])\n];\n\nexport { basicSetup };\n","import { EditorSelection, CharCategory } from '@codemirror/state';\nimport { Text, findClusterBreak, countColumn } from '@codemirror/text';\nimport { Direction, EditorView, PluginField } from '@codemirror/view';\nimport { matchBrackets } from '@codemirror/matchbrackets';\nimport { IndentContext, getIndentation, indentString, indentUnit, getIndentUnit, syntaxTree } from '@codemirror/language';\nimport { NodeProp } from '@lezer/common';\n\nfunction updateSel(sel, by) {\n return EditorSelection.create(sel.ranges.map(by), sel.mainIndex);\n}\nfunction setSel(state, selection) {\n return state.update({ selection, scrollIntoView: true, userEvent: \"select\" });\n}\nfunction moveSel({ state, dispatch }, how) {\n let selection = updateSel(state.selection, how);\n if (selection.eq(state.selection))\n return false;\n dispatch(setSel(state, selection));\n return true;\n}\nfunction rangeEnd(range, forward) {\n return EditorSelection.cursor(forward ? range.to : range.from);\n}\nfunction cursorByChar(view, forward) {\n return moveSel(view, range => range.empty ? view.moveByChar(range, forward) : rangeEnd(range, forward));\n}\n/**\nMove the selection one character to the left (which is backward in\nleft-to-right text, forward in right-to-left text).\n*/\nconst cursorCharLeft = view => cursorByChar(view, view.textDirection != Direction.LTR);\n/**\nMove the selection one character to the right.\n*/\nconst cursorCharRight = view => cursorByChar(view, view.textDirection == Direction.LTR);\n/**\nMove the selection one character forward.\n*/\nconst cursorCharForward = view => cursorByChar(view, true);\n/**\nMove the selection one character backward.\n*/\nconst cursorCharBackward = view => cursorByChar(view, false);\nfunction cursorByGroup(view, forward) {\n return moveSel(view, range => range.empty ? view.moveByGroup(range, forward) : rangeEnd(range, forward));\n}\n/**\nMove the selection to the left across one group of word or\nnon-word (but also non-space) characters.\n*/\nconst cursorGroupLeft = view => cursorByGroup(view, view.textDirection != Direction.LTR);\n/**\nMove the selection one group to the right.\n*/\nconst cursorGroupRight = view => cursorByGroup(view, view.textDirection == Direction.LTR);\n/**\nMove the selection one group forward.\n*/\nconst cursorGroupForward = view => cursorByGroup(view, true);\n/**\nMove the selection one group backward.\n*/\nconst cursorGroupBackward = view => cursorByGroup(view, false);\nfunction moveBySubword(view, range, forward) {\n let categorize = view.state.charCategorizer(range.from);\n return view.moveByChar(range, forward, start => {\n let cat = CharCategory.Space, pos = range.from;\n let done = false, sawUpper = false, sawLower = false;\n let step = (next) => {\n if (done)\n return false;\n pos += forward ? next.length : -next.length;\n let nextCat = categorize(next), ahead;\n if (cat == CharCategory.Space)\n cat = nextCat;\n if (cat != nextCat)\n return false;\n if (cat == CharCategory.Word) {\n if (next.toLowerCase() == next) {\n if (!forward && sawUpper)\n return false;\n sawLower = true;\n }\n else if (sawLower) {\n if (forward)\n return false;\n done = true;\n }\n else {\n if (sawUpper && forward && categorize(ahead = view.state.sliceDoc(pos, pos + 1)) == CharCategory.Word &&\n ahead.toLowerCase() == ahead)\n return false;\n sawUpper = true;\n }\n }\n return true;\n };\n step(start);\n return step;\n });\n}\nfunction cursorBySubword(view, forward) {\n return moveSel(view, range => range.empty ? moveBySubword(view, range, forward) : rangeEnd(range, forward));\n}\n/**\nMove the selection one group or camel-case subword forward.\n*/\nconst cursorSubwordForward = view => cursorBySubword(view, true);\n/**\nMove the selection one group or camel-case subword backward.\n*/\nconst cursorSubwordBackward = view => cursorBySubword(view, false);\nfunction interestingNode(state, node, bracketProp) {\n if (node.type.prop(bracketProp))\n return true;\n let len = node.to - node.from;\n return len && (len > 2 || /[^\\s,.;:]/.test(state.sliceDoc(node.from, node.to))) || node.firstChild;\n}\nfunction moveBySyntax(state, start, forward) {\n let pos = syntaxTree(state).resolveInner(start.head);\n let bracketProp = forward ? NodeProp.closedBy : NodeProp.openedBy;\n // Scan forward through child nodes to see if there's an interesting\n // node ahead.\n for (let at = start.head;;) {\n let next = forward ? pos.childAfter(at) : pos.childBefore(at);\n if (!next)\n break;\n if (interestingNode(state, next, bracketProp))\n pos = next;\n else\n at = forward ? next.to : next.from;\n }\n let bracket = pos.type.prop(bracketProp), match, newPos;\n if (bracket && (match = forward ? matchBrackets(state, pos.from, 1) : matchBrackets(state, pos.to, -1)) && match.matched)\n newPos = forward ? match.end.to : match.end.from;\n else\n newPos = forward ? pos.to : pos.from;\n return EditorSelection.cursor(newPos, forward ? -1 : 1);\n}\n/**\nMove the cursor over the next syntactic element to the left.\n*/\nconst cursorSyntaxLeft = view => moveSel(view, range => moveBySyntax(view.state, range, view.textDirection != Direction.LTR));\n/**\nMove the cursor over the next syntactic element to the right.\n*/\nconst cursorSyntaxRight = view => moveSel(view, range => moveBySyntax(view.state, range, view.textDirection == Direction.LTR));\nfunction cursorByLine(view, forward) {\n return moveSel(view, range => {\n if (!range.empty)\n return rangeEnd(range, forward);\n let moved = view.moveVertically(range, forward);\n return moved.head != range.head ? moved : view.moveToLineBoundary(range, forward);\n });\n}\n/**\nMove the selection one line up.\n*/\nconst cursorLineUp = view => cursorByLine(view, false);\n/**\nMove the selection one line down.\n*/\nconst cursorLineDown = view => cursorByLine(view, true);\nfunction cursorByPage(view, forward) {\n let { state } = view, selection = updateSel(state.selection, range => {\n return range.empty ? view.moveVertically(range, forward, view.dom.clientHeight) : rangeEnd(range, forward);\n });\n if (selection.eq(state.selection))\n return false;\n let startPos = view.coordsAtPos(state.selection.main.head);\n let scrollRect = view.scrollDOM.getBoundingClientRect();\n view.dispatch(setSel(state, selection), {\n effects: startPos && startPos.top > scrollRect.top && startPos.bottom < scrollRect.bottom\n ? EditorView.scrollIntoView(selection.main.head, { y: \"start\", yMargin: startPos.top - scrollRect.top })\n : undefined\n });\n return true;\n}\n/**\nMove the selection one page up.\n*/\nconst cursorPageUp = view => cursorByPage(view, false);\n/**\nMove the selection one page down.\n*/\nconst cursorPageDown = view => cursorByPage(view, true);\nfunction moveByLineBoundary(view, start, forward) {\n let line = view.lineBlockAt(start.head), moved = view.moveToLineBoundary(start, forward);\n if (moved.head == start.head && moved.head != (forward ? line.to : line.from))\n moved = view.moveToLineBoundary(start, forward, false);\n if (!forward && moved.head == line.from && line.length) {\n let space = /^\\s*/.exec(view.state.sliceDoc(line.from, Math.min(line.from + 100, line.to)))[0].length;\n if (space && start.head != line.from + space)\n moved = EditorSelection.cursor(line.from + space);\n }\n return moved;\n}\n/**\nMove the selection to the next line wrap point, or to the end of\nthe line if there isn't one left on this line.\n*/\nconst cursorLineBoundaryForward = view => moveSel(view, range => moveByLineBoundary(view, range, true));\n/**\nMove the selection to previous line wrap point, or failing that to\nthe start of the line. If the line is indented, and the cursor\nisn't already at the end of the indentation, this will move to the\nend of the indentation instead of the start of the line.\n*/\nconst cursorLineBoundaryBackward = view => moveSel(view, range => moveByLineBoundary(view, range, false));\n/**\nMove the selection to the start of the line.\n*/\nconst cursorLineStart = view => moveSel(view, range => EditorSelection.cursor(view.lineBlockAt(range.head).from, 1));\n/**\nMove the selection to the end of the line.\n*/\nconst cursorLineEnd = view => moveSel(view, range => EditorSelection.cursor(view.lineBlockAt(range.head).to, -1));\nfunction toMatchingBracket(state, dispatch, extend) {\n let found = false, selection = updateSel(state.selection, range => {\n let matching = matchBrackets(state, range.head, -1)\n || matchBrackets(state, range.head, 1)\n || (range.head > 0 && matchBrackets(state, range.head - 1, 1))\n || (range.head < state.doc.length && matchBrackets(state, range.head + 1, -1));\n if (!matching || !matching.end)\n return range;\n found = true;\n let head = matching.start.from == range.head ? matching.end.to : matching.end.from;\n return extend ? EditorSelection.range(range.anchor, head) : EditorSelection.cursor(head);\n });\n if (!found)\n return false;\n dispatch(setSel(state, selection));\n return true;\n}\n/**\nMove the selection to the bracket matching the one it is currently\non, if any.\n*/\nconst cursorMatchingBracket = ({ state, dispatch }) => toMatchingBracket(state, dispatch, false);\n/**\nExtend the selection to the bracket matching the one the selection\nhead is currently on, if any.\n*/\nconst selectMatchingBracket = ({ state, dispatch }) => toMatchingBracket(state, dispatch, true);\nfunction extendSel(view, how) {\n let selection = updateSel(view.state.selection, range => {\n let head = how(range);\n return EditorSelection.range(range.anchor, head.head, head.goalColumn);\n });\n if (selection.eq(view.state.selection))\n return false;\n view.dispatch(setSel(view.state, selection));\n return true;\n}\nfunction selectByChar(view, forward) {\n return extendSel(view, range => view.moveByChar(range, forward));\n}\n/**\nMove the selection head one character to the left, while leaving\nthe anchor in place.\n*/\nconst selectCharLeft = view => selectByChar(view, view.textDirection != Direction.LTR);\n/**\nMove the selection head one character to the right.\n*/\nconst selectCharRight = view => selectByChar(view, view.textDirection == Direction.LTR);\n/**\nMove the selection head one character forward.\n*/\nconst selectCharForward = view => selectByChar(view, true);\n/**\nMove the selection head one character backward.\n*/\nconst selectCharBackward = view => selectByChar(view, false);\nfunction selectByGroup(view, forward) {\n return extendSel(view, range => view.moveByGroup(range, forward));\n}\n/**\nMove the selection head one [group](https://codemirror.net/6/docs/ref/#commands.cursorGroupLeft) to\nthe left.\n*/\nconst selectGroupLeft = view => selectByGroup(view, view.textDirection != Direction.LTR);\n/**\nMove the selection head one group to the right.\n*/\nconst selectGroupRight = view => selectByGroup(view, view.textDirection == Direction.LTR);\n/**\nMove the selection head one group forward.\n*/\nconst selectGroupForward = view => selectByGroup(view, true);\n/**\nMove the selection head one group backward.\n*/\nconst selectGroupBackward = view => selectByGroup(view, false);\nfunction selectBySubword(view, forward) {\n return extendSel(view, range => moveBySubword(view, range, forward));\n}\n/**\nMove the selection head one group or camel-case subword forward.\n*/\nconst selectSubwordForward = view => selectBySubword(view, true);\n/**\nMove the selection head one group or subword backward.\n*/\nconst selectSubwordBackward = view => selectBySubword(view, false);\n/**\nMove the selection head over the next syntactic element to the left.\n*/\nconst selectSyntaxLeft = view => extendSel(view, range => moveBySyntax(view.state, range, view.textDirection != Direction.LTR));\n/**\nMove the selection head over the next syntactic element to the right.\n*/\nconst selectSyntaxRight = view => extendSel(view, range => moveBySyntax(view.state, range, view.textDirection == Direction.LTR));\nfunction selectByLine(view, forward) {\n return extendSel(view, range => view.moveVertically(range, forward));\n}\n/**\nMove the selection head one line up.\n*/\nconst selectLineUp = view => selectByLine(view, false);\n/**\nMove the selection head one line down.\n*/\nconst selectLineDown = view => selectByLine(view, true);\nfunction selectByPage(view, forward) {\n return extendSel(view, range => view.moveVertically(range, forward, view.dom.clientHeight));\n}\n/**\nMove the selection head one page up.\n*/\nconst selectPageUp = view => selectByPage(view, false);\n/**\nMove the selection head one page down.\n*/\nconst selectPageDown = view => selectByPage(view, true);\n/**\nMove the selection head to the next line boundary.\n*/\nconst selectLineBoundaryForward = view => extendSel(view, range => moveByLineBoundary(view, range, true));\n/**\nMove the selection head to the previous line boundary.\n*/\nconst selectLineBoundaryBackward = view => extendSel(view, range => moveByLineBoundary(view, range, false));\n/**\nMove the selection head to the start of the line.\n*/\nconst selectLineStart = view => extendSel(view, range => EditorSelection.cursor(view.lineBlockAt(range.head).from));\n/**\nMove the selection head to the end of the line.\n*/\nconst selectLineEnd = view => extendSel(view, range => EditorSelection.cursor(view.lineBlockAt(range.head).to));\n/**\nMove the selection to the start of the document.\n*/\nconst cursorDocStart = ({ state, dispatch }) => {\n dispatch(setSel(state, { anchor: 0 }));\n return true;\n};\n/**\nMove the selection to the end of the document.\n*/\nconst cursorDocEnd = ({ state, dispatch }) => {\n dispatch(setSel(state, { anchor: state.doc.length }));\n return true;\n};\n/**\nMove the selection head to the start of the document.\n*/\nconst selectDocStart = ({ state, dispatch }) => {\n dispatch(setSel(state, { anchor: state.selection.main.anchor, head: 0 }));\n return true;\n};\n/**\nMove the selection head to the end of the document.\n*/\nconst selectDocEnd = ({ state, dispatch }) => {\n dispatch(setSel(state, { anchor: state.selection.main.anchor, head: state.doc.length }));\n return true;\n};\n/**\nSelect the entire document.\n*/\nconst selectAll = ({ state, dispatch }) => {\n dispatch(state.update({ selection: { anchor: 0, head: state.doc.length }, userEvent: \"select\" }));\n return true;\n};\n/**\nExpand the selection to cover entire lines.\n*/\nconst selectLine = ({ state, dispatch }) => {\n let ranges = selectedLineBlocks(state).map(({ from, to }) => EditorSelection.range(from, Math.min(to + 1, state.doc.length)));\n dispatch(state.update({ selection: EditorSelection.create(ranges), userEvent: \"select\" }));\n return true;\n};\n/**\nSelect the next syntactic construct that is larger than the\nselection. Note that this will only work insofar as the language\n[provider](https://codemirror.net/6/docs/ref/#language.language) you use builds up a full\nsyntax tree.\n*/\nconst selectParentSyntax = ({ state, dispatch }) => {\n let selection = updateSel(state.selection, range => {\n var _a;\n let context = syntaxTree(state).resolveInner(range.head, 1);\n while (!((context.from < range.from && context.to >= range.to) ||\n (context.to > range.to && context.from <= range.from) ||\n !((_a = context.parent) === null || _a === void 0 ? void 0 : _a.parent)))\n context = context.parent;\n return EditorSelection.range(context.to, context.from);\n });\n dispatch(setSel(state, selection));\n return true;\n};\n/**\nSimplify the current selection. When multiple ranges are selected,\nreduce it to its main range. Otherwise, if the selection is\nnon-empty, convert it to a cursor selection.\n*/\nconst simplifySelection = ({ state, dispatch }) => {\n let cur = state.selection, selection = null;\n if (cur.ranges.length > 1)\n selection = EditorSelection.create([cur.main]);\n else if (!cur.main.empty)\n selection = EditorSelection.create([EditorSelection.cursor(cur.main.head)]);\n if (!selection)\n return false;\n dispatch(setSel(state, selection));\n return true;\n};\nfunction deleteBy({ state, dispatch }, by) {\n if (state.readOnly)\n return false;\n let event = \"delete.selection\";\n let changes = state.changeByRange(range => {\n let { from, to } = range;\n if (from == to) {\n let towards = by(from);\n if (towards < from)\n event = \"delete.backward\";\n else if (towards > from)\n event = \"delete.forward\";\n from = Math.min(from, towards);\n to = Math.max(to, towards);\n }\n return from == to ? { range } : { changes: { from, to }, range: EditorSelection.cursor(from) };\n });\n if (changes.changes.empty)\n return false;\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: event }));\n return true;\n}\nfunction skipAtomic(target, pos, forward) {\n if (target instanceof EditorView)\n for (let ranges of target.pluginField(PluginField.atomicRanges))\n ranges.between(pos, pos, (from, to) => {\n if (from < pos && to > pos)\n pos = forward ? to : from;\n });\n return pos;\n}\nconst deleteByChar = (target, forward) => deleteBy(target, pos => {\n let { state } = target, line = state.doc.lineAt(pos), before, targetPos;\n if (!forward && pos > line.from && pos < line.from + 200 &&\n !/[^ \\t]/.test(before = line.text.slice(0, pos - line.from))) {\n if (before[before.length - 1] == \"\\t\")\n return pos - 1;\n let col = countColumn(before, state.tabSize), drop = col % getIndentUnit(state) || getIndentUnit(state);\n for (let i = 0; i < drop && before[before.length - 1 - i] == \" \"; i++)\n pos--;\n targetPos = pos;\n }\n else {\n targetPos = findClusterBreak(line.text, pos - line.from, forward, forward) + line.from;\n if (targetPos == pos && line.number != (forward ? state.doc.lines : 1))\n targetPos += forward ? 1 : -1;\n }\n return skipAtomic(target, targetPos, forward);\n});\n/**\nDelete the selection, or, for cursor selections, the character\nbefore the cursor.\n*/\nconst deleteCharBackward = view => deleteByChar(view, false);\n/**\nDelete the selection or the character after the cursor.\n*/\nconst deleteCharForward = view => deleteByChar(view, true);\nconst deleteByGroup = (target, forward) => deleteBy(target, start => {\n let pos = start, { state } = target, line = state.doc.lineAt(pos);\n let categorize = state.charCategorizer(pos);\n for (let cat = null;;) {\n if (pos == (forward ? line.to : line.from)) {\n if (pos == start && line.number != (forward ? state.doc.lines : 1))\n pos += forward ? 1 : -1;\n break;\n }\n let next = findClusterBreak(line.text, pos - line.from, forward) + line.from;\n let nextChar = line.text.slice(Math.min(pos, next) - line.from, Math.max(pos, next) - line.from);\n let nextCat = categorize(nextChar);\n if (cat != null && nextCat != cat)\n break;\n if (nextChar != \" \" || pos != start)\n cat = nextCat;\n pos = next;\n }\n return skipAtomic(target, pos, forward);\n});\n/**\nDelete the selection or backward until the end of the next\n[group](https://codemirror.net/6/docs/ref/#view.EditorView.moveByGroup), only skipping groups of\nwhitespace when they consist of a single space.\n*/\nconst deleteGroupBackward = target => deleteByGroup(target, false);\n/**\nDelete the selection or forward until the end of the next group.\n*/\nconst deleteGroupForward = target => deleteByGroup(target, true);\n/**\nDelete the selection, or, if it is a cursor selection, delete to\nthe end of the line. If the cursor is directly at the end of the\nline, delete the line break after it.\n*/\nconst deleteToLineEnd = view => deleteBy(view, pos => {\n let lineEnd = view.lineBlockAt(pos).to;\n return skipAtomic(view, pos < lineEnd ? lineEnd : Math.min(view.state.doc.length, pos + 1), true);\n});\n/**\nDelete the selection, or, if it is a cursor selection, delete to\nthe start of the line. If the cursor is directly at the start of the\nline, delete the line break before it.\n*/\nconst deleteToLineStart = view => deleteBy(view, pos => {\n let lineStart = view.lineBlockAt(pos).from;\n return skipAtomic(view, pos > lineStart ? lineStart : Math.max(0, pos - 1), false);\n});\n/**\nDelete all whitespace directly before a line end from the\ndocument.\n*/\nconst deleteTrailingWhitespace = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let changes = [];\n for (let pos = 0, prev = \"\", iter = state.doc.iter();;) {\n iter.next();\n if (iter.lineBreak || iter.done) {\n let trailing = prev.search(/\\s+$/);\n if (trailing > -1)\n changes.push({ from: pos - (prev.length - trailing), to: pos });\n if (iter.done)\n break;\n prev = \"\";\n }\n else {\n prev = iter.value;\n }\n pos += iter.value.length;\n }\n if (!changes.length)\n return false;\n dispatch(state.update({ changes, userEvent: \"delete\" }));\n return true;\n};\n/**\nReplace each selection range with a line break, leaving the cursor\non the line before the break.\n*/\nconst splitLine = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let changes = state.changeByRange(range => {\n return { changes: { from: range.from, to: range.to, insert: Text.of([\"\", \"\"]) },\n range: EditorSelection.cursor(range.from) };\n });\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: \"input\" }));\n return true;\n};\n/**\nFlip the characters before and after the cursor(s).\n*/\nconst transposeChars = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let changes = state.changeByRange(range => {\n if (!range.empty || range.from == 0 || range.from == state.doc.length)\n return { range };\n let pos = range.from, line = state.doc.lineAt(pos);\n let from = pos == line.from ? pos - 1 : findClusterBreak(line.text, pos - line.from, false) + line.from;\n let to = pos == line.to ? pos + 1 : findClusterBreak(line.text, pos - line.from, true) + line.from;\n return { changes: { from, to, insert: state.doc.slice(pos, to).append(state.doc.slice(from, pos)) },\n range: EditorSelection.cursor(to) };\n });\n if (changes.changes.empty)\n return false;\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: \"move.character\" }));\n return true;\n};\nfunction selectedLineBlocks(state) {\n let blocks = [], upto = -1;\n for (let range of state.selection.ranges) {\n let startLine = state.doc.lineAt(range.from), endLine = state.doc.lineAt(range.to);\n if (!range.empty && range.to == endLine.from)\n endLine = state.doc.lineAt(range.to - 1);\n if (upto >= startLine.number) {\n let prev = blocks[blocks.length - 1];\n prev.to = endLine.to;\n prev.ranges.push(range);\n }\n else {\n blocks.push({ from: startLine.from, to: endLine.to, ranges: [range] });\n }\n upto = endLine.number + 1;\n }\n return blocks;\n}\nfunction moveLine(state, dispatch, forward) {\n if (state.readOnly)\n return false;\n let changes = [], ranges = [];\n for (let block of selectedLineBlocks(state)) {\n if (forward ? block.to == state.doc.length : block.from == 0)\n continue;\n let nextLine = state.doc.lineAt(forward ? block.to + 1 : block.from - 1);\n let size = nextLine.length + 1;\n if (forward) {\n changes.push({ from: block.to, to: nextLine.to }, { from: block.from, insert: nextLine.text + state.lineBreak });\n for (let r of block.ranges)\n ranges.push(EditorSelection.range(Math.min(state.doc.length, r.anchor + size), Math.min(state.doc.length, r.head + size)));\n }\n else {\n changes.push({ from: nextLine.from, to: block.from }, { from: block.to, insert: state.lineBreak + nextLine.text });\n for (let r of block.ranges)\n ranges.push(EditorSelection.range(r.anchor - size, r.head - size));\n }\n }\n if (!changes.length)\n return false;\n dispatch(state.update({\n changes,\n scrollIntoView: true,\n selection: EditorSelection.create(ranges, state.selection.mainIndex),\n userEvent: \"move.line\"\n }));\n return true;\n}\n/**\nMove the selected lines up one line.\n*/\nconst moveLineUp = ({ state, dispatch }) => moveLine(state, dispatch, false);\n/**\nMove the selected lines down one line.\n*/\nconst moveLineDown = ({ state, dispatch }) => moveLine(state, dispatch, true);\nfunction copyLine(state, dispatch, forward) {\n if (state.readOnly)\n return false;\n let changes = [];\n for (let block of selectedLineBlocks(state)) {\n if (forward)\n changes.push({ from: block.from, insert: state.doc.slice(block.from, block.to) + state.lineBreak });\n else\n changes.push({ from: block.to, insert: state.lineBreak + state.doc.slice(block.from, block.to) });\n }\n dispatch(state.update({ changes, scrollIntoView: true, userEvent: \"input.copyline\" }));\n return true;\n}\n/**\nCreate a copy of the selected lines. Keep the selection in the top copy.\n*/\nconst copyLineUp = ({ state, dispatch }) => copyLine(state, dispatch, false);\n/**\nCreate a copy of the selected lines. Keep the selection in the bottom copy.\n*/\nconst copyLineDown = ({ state, dispatch }) => copyLine(state, dispatch, true);\n/**\nDelete selected lines.\n*/\nconst deleteLine = view => {\n if (view.state.readOnly)\n return false;\n let { state } = view, changes = state.changes(selectedLineBlocks(state).map(({ from, to }) => {\n if (from > 0)\n from--;\n else if (to < state.doc.length)\n to++;\n return { from, to };\n }));\n let selection = updateSel(state.selection, range => view.moveVertically(range, true)).map(changes);\n view.dispatch({ changes, selection, scrollIntoView: true, userEvent: \"delete.line\" });\n return true;\n};\n/**\nReplace the selection with a newline.\n*/\nconst insertNewline = ({ state, dispatch }) => {\n dispatch(state.update(state.replaceSelection(state.lineBreak), { scrollIntoView: true, userEvent: \"input\" }));\n return true;\n};\nfunction isBetweenBrackets(state, pos) {\n if (/\\(\\)|\\[\\]|\\{\\}/.test(state.sliceDoc(pos - 1, pos + 1)))\n return { from: pos, to: pos };\n let context = syntaxTree(state).resolveInner(pos);\n let before = context.childBefore(pos), after = context.childAfter(pos), closedBy;\n if (before && after && before.to <= pos && after.from >= pos &&\n (closedBy = before.type.prop(NodeProp.closedBy)) && closedBy.indexOf(after.name) > -1 &&\n state.doc.lineAt(before.to).from == state.doc.lineAt(after.from).from)\n return { from: before.to, to: after.from };\n return null;\n}\n/**\nReplace the selection with a newline and indent the newly created\nline(s). If the current line consists only of whitespace, this\nwill also delete that whitespace. When the cursor is between\nmatching brackets, an additional newline will be inserted after\nthe cursor.\n*/\nconst insertNewlineAndIndent = /*@__PURE__*/newlineAndIndent(false);\n/**\nCreate a blank, indented line below the current line.\n*/\nconst insertBlankLine = /*@__PURE__*/newlineAndIndent(true);\nfunction newlineAndIndent(atEof) {\n return ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let changes = state.changeByRange(range => {\n let { from, to } = range, line = state.doc.lineAt(from);\n let explode = !atEof && from == to && isBetweenBrackets(state, from);\n if (atEof)\n from = to = (to <= line.to ? line : state.doc.lineAt(to)).to;\n let cx = new IndentContext(state, { simulateBreak: from, simulateDoubleBreak: !!explode });\n let indent = getIndentation(cx, from);\n if (indent == null)\n indent = /^\\s*/.exec(state.doc.lineAt(from).text)[0].length;\n while (to < line.to && /\\s/.test(line.text[to - line.from]))\n to++;\n if (explode)\n ({ from, to } = explode);\n else if (from > line.from && from < line.from + 100 && !/\\S/.test(line.text.slice(0, from)))\n from = line.from;\n let insert = [\"\", indentString(state, indent)];\n if (explode)\n insert.push(indentString(state, cx.lineIndent(line.from, -1)));\n return { changes: { from, to, insert: Text.of(insert) },\n range: EditorSelection.cursor(from + 1 + insert[1].length) };\n });\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: \"input\" }));\n return true;\n };\n}\nfunction changeBySelectedLine(state, f) {\n let atLine = -1;\n return state.changeByRange(range => {\n let changes = [];\n for (let pos = range.from; pos <= range.to;) {\n let line = state.doc.lineAt(pos);\n if (line.number > atLine && (range.empty || range.to > line.from)) {\n f(line, changes, range);\n atLine = line.number;\n }\n pos = line.to + 1;\n }\n let changeSet = state.changes(changes);\n return { changes,\n range: EditorSelection.range(changeSet.mapPos(range.anchor, 1), changeSet.mapPos(range.head, 1)) };\n });\n}\n/**\nAuto-indent the selected lines. This uses the [indentation service\nfacet](https://codemirror.net/6/docs/ref/#language.indentService) as source for auto-indent\ninformation.\n*/\nconst indentSelection = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let updated = Object.create(null);\n let context = new IndentContext(state, { overrideIndentation: start => {\n let found = updated[start];\n return found == null ? -1 : found;\n } });\n let changes = changeBySelectedLine(state, (line, changes, range) => {\n let indent = getIndentation(context, line.from);\n if (indent == null)\n return;\n if (!/\\S/.test(line.text))\n indent = 0;\n let cur = /^\\s*/.exec(line.text)[0];\n let norm = indentString(state, indent);\n if (cur != norm || range.from < line.from + cur.length) {\n updated[line.from] = indent;\n changes.push({ from: line.from, to: line.from + cur.length, insert: norm });\n }\n });\n if (!changes.changes.empty)\n dispatch(state.update(changes, { userEvent: \"indent\" }));\n return true;\n};\n/**\nAdd a [unit](https://codemirror.net/6/docs/ref/#language.indentUnit) of indentation to all selected\nlines.\n*/\nconst indentMore = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n dispatch(state.update(changeBySelectedLine(state, (line, changes) => {\n changes.push({ from: line.from, insert: state.facet(indentUnit) });\n }), { userEvent: \"input.indent\" }));\n return true;\n};\n/**\nRemove a [unit](https://codemirror.net/6/docs/ref/#language.indentUnit) of indentation from all\nselected lines.\n*/\nconst indentLess = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n dispatch(state.update(changeBySelectedLine(state, (line, changes) => {\n let space = /^\\s*/.exec(line.text)[0];\n if (!space)\n return;\n let col = countColumn(space, state.tabSize), keep = 0;\n let insert = indentString(state, Math.max(0, col - getIndentUnit(state)));\n while (keep < space.length && keep < insert.length && space.charCodeAt(keep) == insert.charCodeAt(keep))\n keep++;\n changes.push({ from: line.from + keep, to: line.from + space.length, insert: insert.slice(keep) });\n }), { userEvent: \"delete.dedent\" }));\n return true;\n};\n/**\nInsert a tab character at the cursor or, if something is selected,\nuse [`indentMore`](https://codemirror.net/6/docs/ref/#commands.indentMore) to indent the entire\nselection.\n*/\nconst insertTab = ({ state, dispatch }) => {\n if (state.selection.ranges.some(r => !r.empty))\n return indentMore({ state, dispatch });\n dispatch(state.update(state.replaceSelection(\"\\t\"), { scrollIntoView: true, userEvent: \"input\" }));\n return true;\n};\n/**\nArray of key bindings containing the Emacs-style bindings that are\navailable on macOS by default.\n\n - Ctrl-b: [`cursorCharLeft`](https://codemirror.net/6/docs/ref/#commands.cursorCharLeft) ([`selectCharLeft`](https://codemirror.net/6/docs/ref/#commands.selectCharLeft) with Shift)\n - Ctrl-f: [`cursorCharRight`](https://codemirror.net/6/docs/ref/#commands.cursorCharRight) ([`selectCharRight`](https://codemirror.net/6/docs/ref/#commands.selectCharRight) with Shift)\n - Ctrl-p: [`cursorLineUp`](https://codemirror.net/6/docs/ref/#commands.cursorLineUp) ([`selectLineUp`](https://codemirror.net/6/docs/ref/#commands.selectLineUp) with Shift)\n - Ctrl-n: [`cursorLineDown`](https://codemirror.net/6/docs/ref/#commands.cursorLineDown) ([`selectLineDown`](https://codemirror.net/6/docs/ref/#commands.selectLineDown) with Shift)\n - Ctrl-a: [`cursorLineStart`](https://codemirror.net/6/docs/ref/#commands.cursorLineStart) ([`selectLineStart`](https://codemirror.net/6/docs/ref/#commands.selectLineStart) with Shift)\n - Ctrl-e: [`cursorLineEnd`](https://codemirror.net/6/docs/ref/#commands.cursorLineEnd) ([`selectLineEnd`](https://codemirror.net/6/docs/ref/#commands.selectLineEnd) with Shift)\n - Ctrl-d: [`deleteCharForward`](https://codemirror.net/6/docs/ref/#commands.deleteCharForward)\n - Ctrl-h: [`deleteCharBackward`](https://codemirror.net/6/docs/ref/#commands.deleteCharBackward)\n - Ctrl-k: [`deleteToLineEnd`](https://codemirror.net/6/docs/ref/#commands.deleteToLineEnd)\n - Ctrl-Alt-h: [`deleteGroupBackward`](https://codemirror.net/6/docs/ref/#commands.deleteGroupBackward)\n - Ctrl-o: [`splitLine`](https://codemirror.net/6/docs/ref/#commands.splitLine)\n - Ctrl-t: [`transposeChars`](https://codemirror.net/6/docs/ref/#commands.transposeChars)\n - Ctrl-v: [`cursorPageDown`](https://codemirror.net/6/docs/ref/#commands.cursorPageDown)\n - Alt-v: [`cursorPageUp`](https://codemirror.net/6/docs/ref/#commands.cursorPageUp)\n*/\nconst emacsStyleKeymap = [\n { key: \"Ctrl-b\", run: cursorCharLeft, shift: selectCharLeft, preventDefault: true },\n { key: \"Ctrl-f\", run: cursorCharRight, shift: selectCharRight },\n { key: \"Ctrl-p\", run: cursorLineUp, shift: selectLineUp },\n { key: \"Ctrl-n\", run: cursorLineDown, shift: selectLineDown },\n { key: \"Ctrl-a\", run: cursorLineStart, shift: selectLineStart },\n { key: \"Ctrl-e\", run: cursorLineEnd, shift: selectLineEnd },\n { key: \"Ctrl-d\", run: deleteCharForward },\n { key: \"Ctrl-h\", run: deleteCharBackward },\n { key: \"Ctrl-k\", run: deleteToLineEnd },\n { key: \"Ctrl-Alt-h\", run: deleteGroupBackward },\n { key: \"Ctrl-o\", run: splitLine },\n { key: \"Ctrl-t\", run: transposeChars },\n { key: \"Ctrl-v\", run: cursorPageDown },\n];\n/**\nAn array of key bindings closely sticking to platform-standard or\nwidely used bindings. (This includes the bindings from\n[`emacsStyleKeymap`](https://codemirror.net/6/docs/ref/#commands.emacsStyleKeymap), with their `key`\nproperty changed to `mac`.)\n\n - ArrowLeft: [`cursorCharLeft`](https://codemirror.net/6/docs/ref/#commands.cursorCharLeft) ([`selectCharLeft`](https://codemirror.net/6/docs/ref/#commands.selectCharLeft) with Shift)\n - ArrowRight: [`cursorCharRight`](https://codemirror.net/6/docs/ref/#commands.cursorCharRight) ([`selectCharRight`](https://codemirror.net/6/docs/ref/#commands.selectCharRight) with Shift)\n - Ctrl-ArrowLeft (Alt-ArrowLeft on macOS): [`cursorGroupLeft`](https://codemirror.net/6/docs/ref/#commands.cursorGroupLeft) ([`selectGroupLeft`](https://codemirror.net/6/docs/ref/#commands.selectGroupLeft) with Shift)\n - Ctrl-ArrowRight (Alt-ArrowRight on macOS): [`cursorGroupRight`](https://codemirror.net/6/docs/ref/#commands.cursorGroupRight) ([`selectGroupRight`](https://codemirror.net/6/docs/ref/#commands.selectGroupRight) with Shift)\n - Cmd-ArrowLeft (on macOS): [`cursorLineStart`](https://codemirror.net/6/docs/ref/#commands.cursorLineStart) ([`selectLineStart`](https://codemirror.net/6/docs/ref/#commands.selectLineStart) with Shift)\n - Cmd-ArrowRight (on macOS): [`cursorLineEnd`](https://codemirror.net/6/docs/ref/#commands.cursorLineEnd) ([`selectLineEnd`](https://codemirror.net/6/docs/ref/#commands.selectLineEnd) with Shift)\n - ArrowUp: [`cursorLineUp`](https://codemirror.net/6/docs/ref/#commands.cursorLineUp) ([`selectLineUp`](https://codemirror.net/6/docs/ref/#commands.selectLineUp) with Shift)\n - ArrowDown: [`cursorLineDown`](https://codemirror.net/6/docs/ref/#commands.cursorLineDown) ([`selectLineDown`](https://codemirror.net/6/docs/ref/#commands.selectLineDown) with Shift)\n - Cmd-ArrowUp (on macOS): [`cursorDocStart`](https://codemirror.net/6/docs/ref/#commands.cursorDocStart) ([`selectDocStart`](https://codemirror.net/6/docs/ref/#commands.selectDocStart) with Shift)\n - Cmd-ArrowDown (on macOS): [`cursorDocEnd`](https://codemirror.net/6/docs/ref/#commands.cursorDocEnd) ([`selectDocEnd`](https://codemirror.net/6/docs/ref/#commands.selectDocEnd) with Shift)\n - Ctrl-ArrowUp (on macOS): [`cursorPageUp`](https://codemirror.net/6/docs/ref/#commands.cursorPageUp) ([`selectPageUp`](https://codemirror.net/6/docs/ref/#commands.selectPageUp) with Shift)\n - Ctrl-ArrowDown (on macOS): [`cursorPageDown`](https://codemirror.net/6/docs/ref/#commands.cursorPageDown) ([`selectPageDown`](https://codemirror.net/6/docs/ref/#commands.selectPageDown) with Shift)\n - PageUp: [`cursorPageUp`](https://codemirror.net/6/docs/ref/#commands.cursorPageUp) ([`selectPageUp`](https://codemirror.net/6/docs/ref/#commands.selectPageUp) with Shift)\n - PageDown: [`cursorPageDown`](https://codemirror.net/6/docs/ref/#commands.cursorPageDown) ([`selectPageDown`](https://codemirror.net/6/docs/ref/#commands.selectPageDown) with Shift)\n - Home: [`cursorLineBoundaryBackward`](https://codemirror.net/6/docs/ref/#commands.cursorLineBoundaryBackward) ([`selectLineBoundaryBackward`](https://codemirror.net/6/docs/ref/#commands.selectLineBoundaryBackward) with Shift)\n - End: [`cursorLineBoundaryForward`](https://codemirror.net/6/docs/ref/#commands.cursorLineBoundaryForward) ([`selectLineBoundaryForward`](https://codemirror.net/6/docs/ref/#commands.selectLineBoundaryForward) with Shift)\n - Ctrl-Home (Cmd-Home on macOS): [`cursorDocStart`](https://codemirror.net/6/docs/ref/#commands.cursorDocStart) ([`selectDocStart`](https://codemirror.net/6/docs/ref/#commands.selectDocStart) with Shift)\n - Ctrl-End (Cmd-Home on macOS): [`cursorDocEnd`](https://codemirror.net/6/docs/ref/#commands.cursorDocEnd) ([`selectDocEnd`](https://codemirror.net/6/docs/ref/#commands.selectDocEnd) with Shift)\n - Enter: [`insertNewlineAndIndent`](https://codemirror.net/6/docs/ref/#commands.insertNewlineAndIndent)\n - Ctrl-a (Cmd-a on macOS): [`selectAll`](https://codemirror.net/6/docs/ref/#commands.selectAll)\n - Backspace: [`deleteCharBackward`](https://codemirror.net/6/docs/ref/#commands.deleteCharBackward)\n - Delete: [`deleteCharForward`](https://codemirror.net/6/docs/ref/#commands.deleteCharForward)\n - Ctrl-Backspace (Alt-Backspace on macOS): [`deleteGroupBackward`](https://codemirror.net/6/docs/ref/#commands.deleteGroupBackward)\n - Ctrl-Delete (Alt-Delete on macOS): [`deleteGroupForward`](https://codemirror.net/6/docs/ref/#commands.deleteGroupForward)\n - Cmd-Backspace (macOS): [`deleteToLineStart`](https://codemirror.net/6/docs/ref/#commands.deleteToLineStart).\n - Cmd-Delete (macOS): [`deleteToLineEnd`](https://codemirror.net/6/docs/ref/#commands.deleteToLineEnd).\n*/\nconst standardKeymap = /*@__PURE__*/[\n { key: \"ArrowLeft\", run: cursorCharLeft, shift: selectCharLeft, preventDefault: true },\n { key: \"Mod-ArrowLeft\", mac: \"Alt-ArrowLeft\", run: cursorGroupLeft, shift: selectGroupLeft },\n { mac: \"Cmd-ArrowLeft\", run: cursorLineBoundaryBackward, shift: selectLineBoundaryBackward },\n { key: \"ArrowRight\", run: cursorCharRight, shift: selectCharRight, preventDefault: true },\n { key: \"Mod-ArrowRight\", mac: \"Alt-ArrowRight\", run: cursorGroupRight, shift: selectGroupRight },\n { mac: \"Cmd-ArrowRight\", run: cursorLineBoundaryForward, shift: selectLineBoundaryForward },\n { key: \"ArrowUp\", run: cursorLineUp, shift: selectLineUp, preventDefault: true },\n { mac: \"Cmd-ArrowUp\", run: cursorDocStart, shift: selectDocStart },\n { mac: \"Ctrl-ArrowUp\", run: cursorPageUp, shift: selectPageUp },\n { key: \"ArrowDown\", run: cursorLineDown, shift: selectLineDown, preventDefault: true },\n { mac: \"Cmd-ArrowDown\", run: cursorDocEnd, shift: selectDocEnd },\n { mac: \"Ctrl-ArrowDown\", run: cursorPageDown, shift: selectPageDown },\n { key: \"PageUp\", run: cursorPageUp, shift: selectPageUp },\n { key: \"PageDown\", run: cursorPageDown, shift: selectPageDown },\n { key: \"Home\", run: cursorLineBoundaryBackward, shift: selectLineBoundaryBackward },\n { key: \"Mod-Home\", run: cursorDocStart, shift: selectDocStart },\n { key: \"End\", run: cursorLineBoundaryForward, shift: selectLineBoundaryForward },\n { key: \"Mod-End\", run: cursorDocEnd, shift: selectDocEnd },\n { key: \"Enter\", run: insertNewlineAndIndent },\n { key: \"Mod-a\", run: selectAll },\n { key: \"Backspace\", run: deleteCharBackward, shift: deleteCharBackward },\n { key: \"Delete\", run: deleteCharForward },\n { key: \"Mod-Backspace\", mac: \"Alt-Backspace\", run: deleteGroupBackward },\n { key: \"Mod-Delete\", mac: \"Alt-Delete\", run: deleteGroupForward },\n { mac: \"Mod-Backspace\", run: deleteToLineStart },\n { mac: \"Mod-Delete\", run: deleteToLineEnd }\n].concat(/*@__PURE__*/emacsStyleKeymap.map(b => ({ mac: b.key, run: b.run, shift: b.shift })));\n/**\nThe default keymap. Includes all bindings from\n[`standardKeymap`](https://codemirror.net/6/docs/ref/#commands.standardKeymap) plus the following:\n\n- Alt-ArrowLeft (Ctrl-ArrowLeft on macOS): [`cursorSyntaxLeft`](https://codemirror.net/6/docs/ref/#commands.cursorSyntaxLeft) ([`selectSyntaxLeft`](https://codemirror.net/6/docs/ref/#commands.selectSyntaxLeft) with Shift)\n- Alt-ArrowRight (Ctrl-ArrowRight on macOS): [`cursorSyntaxRight`](https://codemirror.net/6/docs/ref/#commands.cursorSyntaxRight) ([`selectSyntaxRight`](https://codemirror.net/6/docs/ref/#commands.selectSyntaxRight) with Shift)\n- Alt-ArrowUp: [`moveLineUp`](https://codemirror.net/6/docs/ref/#commands.moveLineUp)\n- Alt-ArrowDown: [`moveLineDown`](https://codemirror.net/6/docs/ref/#commands.moveLineDown)\n- Shift-Alt-ArrowUp: [`copyLineUp`](https://codemirror.net/6/docs/ref/#commands.copyLineUp)\n- Shift-Alt-ArrowDown: [`copyLineDown`](https://codemirror.net/6/docs/ref/#commands.copyLineDown)\n- Escape: [`simplifySelection`](https://codemirror.net/6/docs/ref/#commands.simplifySelection)\n- Ctrl-Enter (Comd-Enter on macOS): [`insertBlankLine`](https://codemirror.net/6/docs/ref/#commands.insertBlankLine)\n- Alt-l (Ctrl-l on macOS): [`selectLine`](https://codemirror.net/6/docs/ref/#commands.selectLine)\n- Ctrl-i (Cmd-i on macOS): [`selectParentSyntax`](https://codemirror.net/6/docs/ref/#commands.selectParentSyntax)\n- Ctrl-[ (Cmd-[ on macOS): [`indentLess`](https://codemirror.net/6/docs/ref/#commands.indentLess)\n- Ctrl-] (Cmd-] on macOS): [`indentMore`](https://codemirror.net/6/docs/ref/#commands.indentMore)\n- Ctrl-Alt-\\\\ (Cmd-Alt-\\\\ on macOS): [`indentSelection`](https://codemirror.net/6/docs/ref/#commands.indentSelection)\n- Shift-Ctrl-k (Shift-Cmd-k on macOS): [`deleteLine`](https://codemirror.net/6/docs/ref/#commands.deleteLine)\n- Shift-Ctrl-\\\\ (Shift-Cmd-\\\\ on macOS): [`cursorMatchingBracket`](https://codemirror.net/6/docs/ref/#commands.cursorMatchingBracket)\n*/\nconst defaultKeymap = /*@__PURE__*/[\n { key: \"Alt-ArrowLeft\", mac: \"Ctrl-ArrowLeft\", run: cursorSyntaxLeft, shift: selectSyntaxLeft },\n { key: \"Alt-ArrowRight\", mac: \"Ctrl-ArrowRight\", run: cursorSyntaxRight, shift: selectSyntaxRight },\n { key: \"Alt-ArrowUp\", run: moveLineUp },\n { key: \"Shift-Alt-ArrowUp\", run: copyLineUp },\n { key: \"Alt-ArrowDown\", run: moveLineDown },\n { key: \"Shift-Alt-ArrowDown\", run: copyLineDown },\n { key: \"Escape\", run: simplifySelection },\n { key: \"Mod-Enter\", run: insertBlankLine },\n { key: \"Alt-l\", mac: \"Ctrl-l\", run: selectLine },\n { key: \"Mod-i\", run: selectParentSyntax, preventDefault: true },\n { key: \"Mod-[\", run: indentLess },\n { key: \"Mod-]\", run: indentMore },\n { key: \"Mod-Alt-\\\\\", run: indentSelection },\n { key: \"Shift-Mod-k\", run: deleteLine },\n { key: \"Shift-Mod-\\\\\", run: cursorMatchingBracket }\n].concat(standardKeymap);\n/**\nA binding that binds Tab to [`indentMore`](https://codemirror.net/6/docs/ref/#commands.indentMore) and\nShift-Tab to [`indentLess`](https://codemirror.net/6/docs/ref/#commands.indentLess).\nPlease see the [Tab example](../../examples/tab/) before using\nthis.\n*/\nconst indentWithTab = { key: \"Tab\", run: indentMore, shift: indentLess };\n\nexport { copyLineDown, copyLineUp, cursorCharBackward, cursorCharForward, cursorCharLeft, cursorCharRight, cursorDocEnd, cursorDocStart, cursorGroupBackward, cursorGroupForward, cursorGroupLeft, cursorGroupRight, cursorLineBoundaryBackward, cursorLineBoundaryForward, cursorLineDown, cursorLineEnd, cursorLineStart, cursorLineUp, cursorMatchingBracket, cursorPageDown, cursorPageUp, cursorSubwordBackward, cursorSubwordForward, cursorSyntaxLeft, cursorSyntaxRight, defaultKeymap, deleteCharBackward, deleteCharForward, deleteGroupBackward, deleteGroupForward, deleteLine, deleteToLineEnd, deleteToLineStart, deleteTrailingWhitespace, emacsStyleKeymap, indentLess, indentMore, indentSelection, indentWithTab, insertBlankLine, insertNewline, insertNewlineAndIndent, insertTab, moveLineDown, moveLineUp, selectAll, selectCharBackward, selectCharForward, selectCharLeft, selectCharRight, selectDocEnd, selectDocStart, selectGroupBackward, selectGroupForward, selectGroupLeft, selectGroupRight, selectLine, selectLineBoundaryBackward, selectLineBoundaryForward, selectLineDown, selectLineEnd, selectLineStart, selectLineUp, selectMatchingBracket, selectPageDown, selectPageUp, selectParentSyntax, selectSubwordBackward, selectSubwordForward, selectSyntaxLeft, selectSyntaxRight, simplifySelection, splitLine, standardKeymap, transposeChars };\n","import { NodeProp, NodeType } from '@lezer/common';\nimport { StyleModule } from 'style-mod';\nimport { EditorView, ViewPlugin, Decoration } from '@codemirror/view';\nimport { Facet, Prec } from '@codemirror/state';\nimport { syntaxTree } from '@codemirror/language';\nimport { RangeSetBuilder } from '@codemirror/rangeset';\n\nlet nextTagID = 0;\n/**\nHighlighting tags are markers that denote a highlighting category.\nThey are [associated](https://codemirror.net/6/docs/ref/#highlight.styleTags) with parts of a syntax\ntree by a language mode, and then mapped to an actual CSS style by\na [highlight style](https://codemirror.net/6/docs/ref/#highlight.HighlightStyle).\n\nBecause syntax tree node types and highlight styles have to be\nable to talk the same language, CodeMirror uses a mostly _closed_\n[vocabulary](https://codemirror.net/6/docs/ref/#highlight.tags) of syntax tags (as opposed to\ntraditional open string-based systems, which make it hard for\nhighlighting themes to cover all the tokens produced by the\nvarious languages).\n\nIt _is_ possible to [define](https://codemirror.net/6/docs/ref/#highlight.Tag^define) your own\nhighlighting tags for system-internal use (where you control both\nthe language package and the highlighter), but such tags will not\nbe picked up by regular highlighters (though you can derive them\nfrom standard tags to allow highlighters to fall back to those).\n*/\nclass Tag {\n /**\n @internal\n */\n constructor(\n /**\n The set of tags that match this tag, starting with this one\n itself, sorted in order of decreasing specificity. @internal\n */\n set, \n /**\n The base unmodified tag that this one is based on, if it's\n modified @internal\n */\n base, \n /**\n The modifiers applied to this.base @internal\n */\n modified) {\n this.set = set;\n this.base = base;\n this.modified = modified;\n /**\n @internal\n */\n this.id = nextTagID++;\n }\n /**\n Define a new tag. If `parent` is given, the tag is treated as a\n sub-tag of that parent, and [highlight\n styles](https://codemirror.net/6/docs/ref/#highlight.HighlightStyle) that don't mention this tag\n will try to fall back to the parent tag (or grandparent tag,\n etc).\n */\n static define(parent) {\n if (parent === null || parent === void 0 ? void 0 : parent.base)\n throw new Error(\"Can not derive from a modified tag\");\n let tag = new Tag([], null, []);\n tag.set.push(tag);\n if (parent)\n for (let t of parent.set)\n tag.set.push(t);\n return tag;\n }\n /**\n Define a tag _modifier_, which is a function that, given a tag,\n will return a tag that is a subtag of the original. Applying the\n same modifier to a twice tag will return the same value (`m1(t1)\n == m1(t1)`) and applying multiple modifiers will, regardless or\n order, produce the same tag (`m1(m2(t1)) == m2(m1(t1))`).\n \n When multiple modifiers are applied to a given base tag, each\n smaller set of modifiers is registered as a parent, so that for\n example `m1(m2(m3(t1)))` is a subtype of `m1(m2(t1))`,\n `m1(m3(t1)`, and so on.\n */\n static defineModifier() {\n let mod = new Modifier;\n return (tag) => {\n if (tag.modified.indexOf(mod) > -1)\n return tag;\n return Modifier.get(tag.base || tag, tag.modified.concat(mod).sort((a, b) => a.id - b.id));\n };\n }\n}\nlet nextModifierID = 0;\nclass Modifier {\n constructor() {\n this.instances = [];\n this.id = nextModifierID++;\n }\n static get(base, mods) {\n if (!mods.length)\n return base;\n let exists = mods[0].instances.find(t => t.base == base && sameArray(mods, t.modified));\n if (exists)\n return exists;\n let set = [], tag = new Tag(set, base, mods);\n for (let m of mods)\n m.instances.push(tag);\n let configs = permute(mods);\n for (let parent of base.set)\n for (let config of configs)\n set.push(Modifier.get(parent, config));\n return tag;\n }\n}\nfunction sameArray(a, b) {\n return a.length == b.length && a.every((x, i) => x == b[i]);\n}\nfunction permute(array) {\n let result = [array];\n for (let i = 0; i < array.length; i++) {\n for (let a of permute(array.slice(0, i).concat(array.slice(i + 1))))\n result.push(a);\n }\n return result;\n}\n/**\nThis function is used to add a set of tags to a language syntax\nvia\n[`LRParser.configure`](https://lezer.codemirror.net/docs/ref#lr.LRParser.configure).\n\nThe argument object maps node selectors to [highlighting\ntags](https://codemirror.net/6/docs/ref/#highlight.Tag) or arrays of tags.\n\nNode selectors may hold one or more (space-separated) node paths.\nSuch a path can be a [node\nname](https://lezer.codemirror.net/docs/ref#common.NodeType.name),\nor multiple node names (or `*` wildcards) separated by slash\ncharacters, as in `\"Block/Declaration/VariableName\"`. Such a path\nmatches the final node but only if its direct parent nodes are the\nother nodes mentioned. A `*` in such a path matches any parent,\nbut only a single level—wildcards that match multiple parents\naren't supported, both for efficiency reasons and because Lezer\ntrees make it rather hard to reason about what they would match.)\n\nA path can be ended with `/...` to indicate that the tag assigned\nto the node should also apply to all child nodes, even if they\nmatch their own style (by default, only the innermost style is\nused).\n\nWhen a path ends in `!`, as in `Attribute!`, no further matching\nhappens for the node's child nodes, and the entire node gets the\ngiven style.\n\nIn this notation, node names that contain `/`, `!`, `*`, or `...`\nmust be quoted as JSON strings.\n\nFor example:\n\n```javascript\nparser.withProps(\n styleTags({\n // Style Number and BigNumber nodes\n \"Number BigNumber\": tags.number,\n // Style Escape nodes whose parent is String\n \"String/Escape\": tags.escape,\n // Style anything inside Attributes nodes\n \"Attributes!\": tags.meta,\n // Add a style to all content inside Italic nodes\n \"Italic/...\": tags.emphasis,\n // Style InvalidString nodes as both `string` and `invalid`\n \"InvalidString\": [tags.string, tags.invalid],\n // Style the node named \"/\" as punctuation\n '\"/\"': tags.punctuation\n })\n)\n```\n*/\nfunction styleTags(spec) {\n let byName = Object.create(null);\n for (let prop in spec) {\n let tags = spec[prop];\n if (!Array.isArray(tags))\n tags = [tags];\n for (let part of prop.split(\" \"))\n if (part) {\n let pieces = [], mode = 2 /* Normal */, rest = part;\n for (let pos = 0;;) {\n if (rest == \"...\" && pos > 0 && pos + 3 == part.length) {\n mode = 1 /* Inherit */;\n break;\n }\n let m = /^\"(?:[^\"\\\\]|\\\\.)*?\"|[^\\/!]+/.exec(rest);\n if (!m)\n throw new RangeError(\"Invalid path: \" + part);\n pieces.push(m[0] == \"*\" ? null : m[0][0] == '\"' ? JSON.parse(m[0]) : m[0]);\n pos += m[0].length;\n if (pos == part.length)\n break;\n let next = part[pos++];\n if (pos == part.length && next == \"!\") {\n mode = 0 /* Opaque */;\n break;\n }\n if (next != \"/\")\n throw new RangeError(\"Invalid path: \" + part);\n rest = part.slice(pos);\n }\n let last = pieces.length - 1, inner = pieces[last];\n if (!inner)\n throw new RangeError(\"Invalid path: \" + part);\n let rule = new Rule(tags, mode, last > 0 ? pieces.slice(0, last) : null);\n byName[inner] = rule.sort(byName[inner]);\n }\n }\n return ruleNodeProp.add(byName);\n}\nconst ruleNodeProp = /*@__PURE__*/new NodeProp();\nconst highlightStyle = /*@__PURE__*/Facet.define({\n combine(stylings) { return stylings.length ? HighlightStyle.combinedMatch(stylings) : null; }\n});\nconst fallbackHighlightStyle = /*@__PURE__*/Facet.define({\n combine(values) { return values.length ? values[0].match : null; }\n});\nfunction getHighlightStyle(state) {\n return state.facet(highlightStyle) || state.facet(fallbackHighlightStyle);\n}\nclass Rule {\n constructor(tags, mode, context, next) {\n this.tags = tags;\n this.mode = mode;\n this.context = context;\n this.next = next;\n }\n sort(other) {\n if (!other || other.depth < this.depth) {\n this.next = other;\n return this;\n }\n other.next = this.sort(other.next);\n return other;\n }\n get depth() { return this.context ? this.context.length : 0; }\n}\n/**\nA highlight style associates CSS styles with higlighting\n[tags](https://codemirror.net/6/docs/ref/#highlight.Tag).\n*/\nclass HighlightStyle {\n constructor(spec, options) {\n this.map = Object.create(null);\n let modSpec;\n function def(spec) {\n let cls = StyleModule.newName();\n (modSpec || (modSpec = Object.create(null)))[\".\" + cls] = spec;\n return cls;\n }\n this.all = typeof options.all == \"string\" ? options.all : options.all ? def(options.all) : null;\n for (let style of spec) {\n let cls = (style.class || def(Object.assign({}, style, { tag: null }))) +\n (this.all ? \" \" + this.all : \"\");\n let tags = style.tag;\n if (!Array.isArray(tags))\n this.map[tags.id] = cls;\n else\n for (let tag of tags)\n this.map[tag.id] = cls;\n }\n this.module = modSpec ? new StyleModule(modSpec) : null;\n this.scope = options.scope || null;\n this.match = this.match.bind(this);\n let ext = [treeHighlighter];\n if (this.module)\n ext.push(EditorView.styleModule.of(this.module));\n this.extension = ext.concat(highlightStyle.of(this));\n this.fallback = ext.concat(fallbackHighlightStyle.of(this));\n }\n /**\n Returns the CSS class associated with the given tag, if any.\n This method is bound to the instance by the constructor.\n */\n match(tag, scope) {\n if (this.scope && scope != this.scope)\n return null;\n for (let t of tag.set) {\n let match = this.map[t.id];\n if (match !== undefined) {\n if (t != tag)\n this.map[tag.id] = match;\n return match;\n }\n }\n return this.map[tag.id] = this.all;\n }\n /**\n Combines an array of highlight styles into a single match\n function that returns all of the classes assigned by the styles\n for a given tag.\n */\n static combinedMatch(styles) {\n if (styles.length == 1)\n return styles[0].match;\n let cache = styles.some(s => s.scope) ? undefined : Object.create(null);\n return (tag, scope) => {\n let cached = cache && cache[tag.id];\n if (cached !== undefined)\n return cached;\n let result = null;\n for (let style of styles) {\n let value = style.match(tag, scope);\n if (value)\n result = result ? result + \" \" + value : value;\n }\n if (cache)\n cache[tag.id] = result;\n return result;\n };\n }\n /**\n Create a highlighter style that associates the given styles to\n the given tags. The spec must be objects that hold a style tag\n or array of tags in their `tag` property, and either a single\n `class` property providing a static CSS class (for highlighters\n like [`classHighlightStyle`](https://codemirror.net/6/docs/ref/#highlight.classHighlightStyle)\n that rely on external styling), or a\n [`style-mod`](https://github.com/marijnh/style-mod#documentation)-style\n set of CSS properties (which define the styling for those tags).\n \n The CSS rules created for a highlighter will be emitted in the\n order of the spec's properties. That means that for elements that\n have multiple tags associated with them, styles defined further\n down in the list will have a higher CSS precedence than styles\n defined earlier.\n */\n static define(specs, options) {\n return new HighlightStyle(specs, options || {});\n }\n /**\n Returns the CSS classes (if any) that the highlight styles\n active in the given state would assign to the given a style\n [tag](https://codemirror.net/6/docs/ref/#highlight.Tag) and (optional) language\n [scope](https://codemirror.net/6/docs/ref/#highlight.HighlightStyle^define^options.scope).\n */\n static get(state, tag, scope) {\n let style = getHighlightStyle(state);\n return style && style(tag, scope || NodeType.none);\n }\n}\n/**\nRun the tree highlighter over the given tree.\n*/\nfunction highlightTree(tree, \n/**\nGet the CSS classes used to style a given [tag](https://codemirror.net/6/docs/ref/#highlight.Tag),\nor `null` if it isn't styled. (You'll often want to pass a\nhighlight style's [`match`](https://codemirror.net/6/docs/ref/#highlight.HighlightStyle.match)\nmethod here.)\n*/\ngetStyle, \n/**\nAssign styling to a region of the text. Will be called, in order\nof position, for any ranges where more than zero classes apply.\n`classes` is a space separated string of CSS classes.\n*/\nputStyle, \n/**\nThe start of the range to highlight.\n*/\nfrom = 0, \n/**\nThe end of the range.\n*/\nto = tree.length) {\n highlightTreeRange(tree, from, to, getStyle, putStyle);\n}\nclass TreeHighlighter {\n constructor(view) {\n this.markCache = Object.create(null);\n this.tree = syntaxTree(view.state);\n this.decorations = this.buildDeco(view, getHighlightStyle(view.state));\n }\n update(update) {\n let tree = syntaxTree(update.state), style = getHighlightStyle(update.state);\n let styleChange = style != update.startState.facet(highlightStyle);\n if (tree.length < update.view.viewport.to && !styleChange && tree.type == this.tree.type) {\n this.decorations = this.decorations.map(update.changes);\n }\n else if (tree != this.tree || update.viewportChanged || styleChange) {\n this.tree = tree;\n this.decorations = this.buildDeco(update.view, style);\n }\n }\n buildDeco(view, match) {\n if (!match || !this.tree.length)\n return Decoration.none;\n let builder = new RangeSetBuilder();\n for (let { from, to } of view.visibleRanges) {\n highlightTreeRange(this.tree, from, to, match, (from, to, style) => {\n builder.add(from, to, this.markCache[style] || (this.markCache[style] = Decoration.mark({ class: style })));\n });\n }\n return builder.finish();\n }\n}\n// This extension installs a highlighter that highlights based on the\n// syntax tree and highlight style.\nconst treeHighlighter = /*@__PURE__*/Prec.high(/*@__PURE__*/ViewPlugin.fromClass(TreeHighlighter, {\n decorations: v => v.decorations\n}));\nconst nodeStack = [\"\"];\nclass HighlightBuilder {\n constructor(at, style, span) {\n this.at = at;\n this.style = style;\n this.span = span;\n this.class = \"\";\n }\n startSpan(at, cls) {\n if (cls != this.class) {\n this.flush(at);\n if (at > this.at)\n this.at = at;\n this.class = cls;\n }\n }\n flush(to) {\n if (to > this.at && this.class)\n this.span(this.at, to, this.class);\n }\n highlightRange(cursor, from, to, inheritedClass, depth, scope) {\n let { type, from: start, to: end } = cursor;\n if (start >= to || end <= from)\n return;\n nodeStack[depth] = type.name;\n if (type.isTop)\n scope = type;\n let cls = inheritedClass;\n let rule = type.prop(ruleNodeProp), opaque = false;\n while (rule) {\n if (!rule.context || matchContext(rule.context, nodeStack, depth)) {\n for (let tag of rule.tags) {\n let st = this.style(tag, scope);\n if (st) {\n if (cls)\n cls += \" \";\n cls += st;\n if (rule.mode == 1 /* Inherit */)\n inheritedClass += (inheritedClass ? \" \" : \"\") + st;\n else if (rule.mode == 0 /* Opaque */)\n opaque = true;\n }\n }\n break;\n }\n rule = rule.next;\n }\n this.startSpan(cursor.from, cls);\n if (opaque)\n return;\n let mounted = cursor.tree && cursor.tree.prop(NodeProp.mounted);\n if (mounted && mounted.overlay) {\n let inner = cursor.node.enter(mounted.overlay[0].from + start, 1);\n let hasChild = cursor.firstChild();\n for (let i = 0, pos = start;; i++) {\n let next = i < mounted.overlay.length ? mounted.overlay[i] : null;\n let nextPos = next ? next.from + start : end;\n let rangeFrom = Math.max(from, pos), rangeTo = Math.min(to, nextPos);\n if (rangeFrom < rangeTo && hasChild) {\n while (cursor.from < rangeTo) {\n this.highlightRange(cursor, rangeFrom, rangeTo, inheritedClass, depth + 1, scope);\n this.startSpan(Math.min(to, cursor.to), cls);\n if (cursor.to >= nextPos || !cursor.nextSibling())\n break;\n }\n }\n if (!next || nextPos > to)\n break;\n pos = next.to + start;\n if (pos > from) {\n this.highlightRange(inner.cursor, Math.max(from, next.from + start), Math.min(to, pos), inheritedClass, depth, mounted.tree.type);\n this.startSpan(pos, cls);\n }\n }\n if (hasChild)\n cursor.parent();\n }\n else if (cursor.firstChild()) {\n do {\n if (cursor.to <= from)\n continue;\n if (cursor.from >= to)\n break;\n this.highlightRange(cursor, from, to, inheritedClass, depth + 1, scope);\n this.startSpan(Math.min(to, cursor.to), cls);\n } while (cursor.nextSibling());\n cursor.parent();\n }\n }\n}\nfunction highlightTreeRange(tree, from, to, style, span) {\n let builder = new HighlightBuilder(from, style, span);\n builder.highlightRange(tree.cursor(), from, to, \"\", 0, tree.type);\n builder.flush(to);\n}\nfunction matchContext(context, stack, depth) {\n if (context.length > depth - 1)\n return false;\n for (let d = depth - 1, i = context.length - 1; i >= 0; i--, d--) {\n let check = context[i];\n if (check && check != stack[d])\n return false;\n }\n return true;\n}\nconst t = Tag.define;\nconst comment = /*@__PURE__*/t(), name = /*@__PURE__*/t(), typeName = /*@__PURE__*/t(name), propertyName = /*@__PURE__*/t(name), literal = /*@__PURE__*/t(), string = /*@__PURE__*/t(literal), number = /*@__PURE__*/t(literal), content = /*@__PURE__*/t(), heading = /*@__PURE__*/t(content), keyword = /*@__PURE__*/t(), operator = /*@__PURE__*/t(), punctuation = /*@__PURE__*/t(), bracket = /*@__PURE__*/t(punctuation), meta = /*@__PURE__*/t();\n/**\nThe default set of highlighting [tags](https://codemirror.net/6/docs/ref/#highlight.Tag^define) used\nby regular language packages and themes.\n\nThis collection is heavily biased towards programming languages,\nand necessarily incomplete. A full ontology of syntactic\nconstructs would fill a stack of books, and be impractical to\nwrite themes for. So try to make do with this set. If all else\nfails, [open an\nissue](https://github.com/codemirror/codemirror.next) to propose a\nnew tag, or [define](https://codemirror.net/6/docs/ref/#highlight.Tag^define) a local custom tag for\nyour use case.\n\nNote that it is not obligatory to always attach the most specific\ntag possible to an element—if your grammar can't easily\ndistinguish a certain type of element (such as a local variable),\nit is okay to style it as its more general variant (a variable).\n\nFor tags that extend some parent tag, the documentation links to\nthe parent.\n*/\nconst tags = {\n /**\n A comment.\n */\n comment,\n /**\n A line [comment](https://codemirror.net/6/docs/ref/#highlight.tags.comment).\n */\n lineComment: /*@__PURE__*/t(comment),\n /**\n A block [comment](https://codemirror.net/6/docs/ref/#highlight.tags.comment).\n */\n blockComment: /*@__PURE__*/t(comment),\n /**\n A documentation [comment](https://codemirror.net/6/docs/ref/#highlight.tags.comment).\n */\n docComment: /*@__PURE__*/t(comment),\n /**\n Any kind of identifier.\n */\n name,\n /**\n The [name](https://codemirror.net/6/docs/ref/#highlight.tags.name) of a variable.\n */\n variableName: /*@__PURE__*/t(name),\n /**\n A type [name](https://codemirror.net/6/docs/ref/#highlight.tags.name).\n */\n typeName: typeName,\n /**\n A tag name (subtag of [`typeName`](https://codemirror.net/6/docs/ref/#highlight.tags.typeName)).\n */\n tagName: /*@__PURE__*/t(typeName),\n /**\n A property or field [name](https://codemirror.net/6/docs/ref/#highlight.tags.name).\n */\n propertyName: propertyName,\n /**\n An attribute name (subtag of [`propertyName`](https://codemirror.net/6/docs/ref/#highlight.tags.propertyName)).\n */\n attributeName: /*@__PURE__*/t(propertyName),\n /**\n The [name](https://codemirror.net/6/docs/ref/#highlight.tags.name) of a class.\n */\n className: /*@__PURE__*/t(name),\n /**\n A label [name](https://codemirror.net/6/docs/ref/#highlight.tags.name).\n */\n labelName: /*@__PURE__*/t(name),\n /**\n A namespace [name](https://codemirror.net/6/docs/ref/#highlight.tags.name).\n */\n namespace: /*@__PURE__*/t(name),\n /**\n The [name](https://codemirror.net/6/docs/ref/#highlight.tags.name) of a macro.\n */\n macroName: /*@__PURE__*/t(name),\n /**\n A literal value.\n */\n literal,\n /**\n A string [literal](https://codemirror.net/6/docs/ref/#highlight.tags.literal).\n */\n string,\n /**\n A documentation [string](https://codemirror.net/6/docs/ref/#highlight.tags.string).\n */\n docString: /*@__PURE__*/t(string),\n /**\n A character literal (subtag of [string](https://codemirror.net/6/docs/ref/#highlight.tags.string)).\n */\n character: /*@__PURE__*/t(string),\n /**\n An attribute value (subtag of [string](https://codemirror.net/6/docs/ref/#highlight.tags.string)).\n */\n attributeValue: /*@__PURE__*/t(string),\n /**\n A number [literal](https://codemirror.net/6/docs/ref/#highlight.tags.literal).\n */\n number,\n /**\n An integer [number](https://codemirror.net/6/docs/ref/#highlight.tags.number) literal.\n */\n integer: /*@__PURE__*/t(number),\n /**\n A floating-point [number](https://codemirror.net/6/docs/ref/#highlight.tags.number) literal.\n */\n float: /*@__PURE__*/t(number),\n /**\n A boolean [literal](https://codemirror.net/6/docs/ref/#highlight.tags.literal).\n */\n bool: /*@__PURE__*/t(literal),\n /**\n Regular expression [literal](https://codemirror.net/6/docs/ref/#highlight.tags.literal).\n */\n regexp: /*@__PURE__*/t(literal),\n /**\n An escape [literal](https://codemirror.net/6/docs/ref/#highlight.tags.literal), for example a\n backslash escape in a string.\n */\n escape: /*@__PURE__*/t(literal),\n /**\n A color [literal](https://codemirror.net/6/docs/ref/#highlight.tags.literal).\n */\n color: /*@__PURE__*/t(literal),\n /**\n A URL [literal](https://codemirror.net/6/docs/ref/#highlight.tags.literal).\n */\n url: /*@__PURE__*/t(literal),\n /**\n A language keyword.\n */\n keyword,\n /**\n The [keyword](https://codemirror.net/6/docs/ref/#highlight.tags.keyword) for the self or this\n object.\n */\n self: /*@__PURE__*/t(keyword),\n /**\n The [keyword](https://codemirror.net/6/docs/ref/#highlight.tags.keyword) for null.\n */\n null: /*@__PURE__*/t(keyword),\n /**\n A [keyword](https://codemirror.net/6/docs/ref/#highlight.tags.keyword) denoting some atomic value.\n */\n atom: /*@__PURE__*/t(keyword),\n /**\n A [keyword](https://codemirror.net/6/docs/ref/#highlight.tags.keyword) that represents a unit.\n */\n unit: /*@__PURE__*/t(keyword),\n /**\n A modifier [keyword](https://codemirror.net/6/docs/ref/#highlight.tags.keyword).\n */\n modifier: /*@__PURE__*/t(keyword),\n /**\n A [keyword](https://codemirror.net/6/docs/ref/#highlight.tags.keyword) that acts as an operator.\n */\n operatorKeyword: /*@__PURE__*/t(keyword),\n /**\n A control-flow related [keyword](https://codemirror.net/6/docs/ref/#highlight.tags.keyword).\n */\n controlKeyword: /*@__PURE__*/t(keyword),\n /**\n A [keyword](https://codemirror.net/6/docs/ref/#highlight.tags.keyword) that defines something.\n */\n definitionKeyword: /*@__PURE__*/t(keyword),\n /**\n A [keyword](https://codemirror.net/6/docs/ref/#highlight.tags.keyword) related to defining or\n interfacing with modules.\n */\n moduleKeyword: /*@__PURE__*/t(keyword),\n /**\n An operator.\n */\n operator,\n /**\n An [operator](https://codemirror.net/6/docs/ref/#highlight.tags.operator) that defines something.\n */\n derefOperator: /*@__PURE__*/t(operator),\n /**\n Arithmetic-related [operator](https://codemirror.net/6/docs/ref/#highlight.tags.operator).\n */\n arithmeticOperator: /*@__PURE__*/t(operator),\n /**\n Logical [operator](https://codemirror.net/6/docs/ref/#highlight.tags.operator).\n */\n logicOperator: /*@__PURE__*/t(operator),\n /**\n Bit [operator](https://codemirror.net/6/docs/ref/#highlight.tags.operator).\n */\n bitwiseOperator: /*@__PURE__*/t(operator),\n /**\n Comparison [operator](https://codemirror.net/6/docs/ref/#highlight.tags.operator).\n */\n compareOperator: /*@__PURE__*/t(operator),\n /**\n [Operator](https://codemirror.net/6/docs/ref/#highlight.tags.operator) that updates its operand.\n */\n updateOperator: /*@__PURE__*/t(operator),\n /**\n [Operator](https://codemirror.net/6/docs/ref/#highlight.tags.operator) that defines something.\n */\n definitionOperator: /*@__PURE__*/t(operator),\n /**\n Type-related [operator](https://codemirror.net/6/docs/ref/#highlight.tags.operator).\n */\n typeOperator: /*@__PURE__*/t(operator),\n /**\n Control-flow [operator](https://codemirror.net/6/docs/ref/#highlight.tags.operator).\n */\n controlOperator: /*@__PURE__*/t(operator),\n /**\n Program or markup punctuation.\n */\n punctuation,\n /**\n [Punctuation](https://codemirror.net/6/docs/ref/#highlight.tags.punctuation) that separates\n things.\n */\n separator: /*@__PURE__*/t(punctuation),\n /**\n Bracket-style [punctuation](https://codemirror.net/6/docs/ref/#highlight.tags.punctuation).\n */\n bracket,\n /**\n Angle [brackets](https://codemirror.net/6/docs/ref/#highlight.tags.bracket) (usually `<` and `>`\n tokens).\n */\n angleBracket: /*@__PURE__*/t(bracket),\n /**\n Square [brackets](https://codemirror.net/6/docs/ref/#highlight.tags.bracket) (usually `[` and `]`\n tokens).\n */\n squareBracket: /*@__PURE__*/t(bracket),\n /**\n Parentheses (usually `(` and `)` tokens). Subtag of\n [bracket](https://codemirror.net/6/docs/ref/#highlight.tags.bracket).\n */\n paren: /*@__PURE__*/t(bracket),\n /**\n Braces (usually `{` and `}` tokens). Subtag of\n [bracket](https://codemirror.net/6/docs/ref/#highlight.tags.bracket).\n */\n brace: /*@__PURE__*/t(bracket),\n /**\n Content, for example plain text in XML or markup documents.\n */\n content,\n /**\n [Content](https://codemirror.net/6/docs/ref/#highlight.tags.content) that represents a heading.\n */\n heading,\n /**\n A level 1 [heading](https://codemirror.net/6/docs/ref/#highlight.tags.heading).\n */\n heading1: /*@__PURE__*/t(heading),\n /**\n A level 2 [heading](https://codemirror.net/6/docs/ref/#highlight.tags.heading).\n */\n heading2: /*@__PURE__*/t(heading),\n /**\n A level 3 [heading](https://codemirror.net/6/docs/ref/#highlight.tags.heading).\n */\n heading3: /*@__PURE__*/t(heading),\n /**\n A level 4 [heading](https://codemirror.net/6/docs/ref/#highlight.tags.heading).\n */\n heading4: /*@__PURE__*/t(heading),\n /**\n A level 5 [heading](https://codemirror.net/6/docs/ref/#highlight.tags.heading).\n */\n heading5: /*@__PURE__*/t(heading),\n /**\n A level 6 [heading](https://codemirror.net/6/docs/ref/#highlight.tags.heading).\n */\n heading6: /*@__PURE__*/t(heading),\n /**\n A prose separator (such as a horizontal rule).\n */\n contentSeparator: /*@__PURE__*/t(content),\n /**\n [Content](https://codemirror.net/6/docs/ref/#highlight.tags.content) that represents a list.\n */\n list: /*@__PURE__*/t(content),\n /**\n [Content](https://codemirror.net/6/docs/ref/#highlight.tags.content) that represents a quote.\n */\n quote: /*@__PURE__*/t(content),\n /**\n [Content](https://codemirror.net/6/docs/ref/#highlight.tags.content) that is emphasized.\n */\n emphasis: /*@__PURE__*/t(content),\n /**\n [Content](https://codemirror.net/6/docs/ref/#highlight.tags.content) that is styled strong.\n */\n strong: /*@__PURE__*/t(content),\n /**\n [Content](https://codemirror.net/6/docs/ref/#highlight.tags.content) that is part of a link.\n */\n link: /*@__PURE__*/t(content),\n /**\n [Content](https://codemirror.net/6/docs/ref/#highlight.tags.content) that is styled as code or\n monospace.\n */\n monospace: /*@__PURE__*/t(content),\n /**\n [Content](https://codemirror.net/6/docs/ref/#highlight.tags.content) that has a strike-through\n style.\n */\n strikethrough: /*@__PURE__*/t(content),\n /**\n Inserted text in a change-tracking format.\n */\n inserted: /*@__PURE__*/t(),\n /**\n Deleted text.\n */\n deleted: /*@__PURE__*/t(),\n /**\n Changed text.\n */\n changed: /*@__PURE__*/t(),\n /**\n An invalid or unsyntactic element.\n */\n invalid: /*@__PURE__*/t(),\n /**\n Metadata or meta-instruction.\n */\n meta,\n /**\n [Metadata](https://codemirror.net/6/docs/ref/#highlight.tags.meta) that applies to the entire\n document.\n */\n documentMeta: /*@__PURE__*/t(meta),\n /**\n [Metadata](https://codemirror.net/6/docs/ref/#highlight.tags.meta) that annotates or adds\n attributes to a given syntactic element.\n */\n annotation: /*@__PURE__*/t(meta),\n /**\n Processing instruction or preprocessor directive. Subtag of\n [meta](https://codemirror.net/6/docs/ref/#highlight.tags.meta).\n */\n processingInstruction: /*@__PURE__*/t(meta),\n /**\n [Modifier](https://codemirror.net/6/docs/ref/#highlight.Tag^defineModifier) that indicates that a\n given element is being defined. Expected to be used with the\n various [name](https://codemirror.net/6/docs/ref/#highlight.tags.name) tags.\n */\n definition: /*@__PURE__*/Tag.defineModifier(),\n /**\n [Modifier](https://codemirror.net/6/docs/ref/#highlight.Tag^defineModifier) that indicates that\n something is constant. Mostly expected to be used with\n [variable names](https://codemirror.net/6/docs/ref/#highlight.tags.variableName).\n */\n constant: /*@__PURE__*/Tag.defineModifier(),\n /**\n [Modifier](https://codemirror.net/6/docs/ref/#highlight.Tag^defineModifier) used to indicate that\n a [variable](https://codemirror.net/6/docs/ref/#highlight.tags.variableName) or [property\n name](https://codemirror.net/6/docs/ref/#highlight.tags.propertyName) is being called or defined\n as a function.\n */\n function: /*@__PURE__*/Tag.defineModifier(),\n /**\n [Modifier](https://codemirror.net/6/docs/ref/#highlight.Tag^defineModifier) that can be applied to\n [names](https://codemirror.net/6/docs/ref/#highlight.tags.name) to indicate that they belong to\n the language's standard environment.\n */\n standard: /*@__PURE__*/Tag.defineModifier(),\n /**\n [Modifier](https://codemirror.net/6/docs/ref/#highlight.Tag^defineModifier) that indicates a given\n [names](https://codemirror.net/6/docs/ref/#highlight.tags.name) is local to some scope.\n */\n local: /*@__PURE__*/Tag.defineModifier(),\n /**\n A generic variant [modifier](https://codemirror.net/6/docs/ref/#highlight.Tag^defineModifier) that\n can be used to tag language-specific alternative variants of\n some common tag. It is recommended for themes to define special\n forms of at least the [string](https://codemirror.net/6/docs/ref/#highlight.tags.string) and\n [variable name](https://codemirror.net/6/docs/ref/#highlight.tags.variableName) tags, since those\n come up a lot.\n */\n special: /*@__PURE__*/Tag.defineModifier()\n};\n/**\nA default highlight style (works well with light themes).\n*/\nconst defaultHighlightStyle = /*@__PURE__*/HighlightStyle.define([\n { tag: tags.link,\n textDecoration: \"underline\" },\n { tag: tags.heading,\n textDecoration: \"underline\",\n fontWeight: \"bold\" },\n { tag: tags.emphasis,\n fontStyle: \"italic\" },\n { tag: tags.strong,\n fontWeight: \"bold\" },\n { tag: tags.strikethrough,\n textDecoration: \"line-through\" },\n { tag: tags.keyword,\n color: \"#708\" },\n { tag: [tags.atom, tags.bool, tags.url, tags.contentSeparator, tags.labelName],\n color: \"#219\" },\n { tag: [tags.literal, tags.inserted],\n color: \"#164\" },\n { tag: [tags.string, tags.deleted],\n color: \"#a11\" },\n { tag: [tags.regexp, tags.escape, /*@__PURE__*/tags.special(tags.string)],\n color: \"#e40\" },\n { tag: /*@__PURE__*/tags.definition(tags.variableName),\n color: \"#00f\" },\n { tag: /*@__PURE__*/tags.local(tags.variableName),\n color: \"#30a\" },\n { tag: [tags.typeName, tags.namespace],\n color: \"#085\" },\n { tag: tags.className,\n color: \"#167\" },\n { tag: [/*@__PURE__*/tags.special(tags.variableName), tags.macroName],\n color: \"#256\" },\n { tag: /*@__PURE__*/tags.definition(tags.propertyName),\n color: \"#00c\" },\n { tag: tags.comment,\n color: \"#940\" },\n { tag: tags.meta,\n color: \"#7a757a\" },\n { tag: tags.invalid,\n color: \"#f00\" }\n]);\n/**\nThis is a highlight style that adds stable, predictable classes to\ntokens, for styling with external CSS.\n\nThese tags are mapped to their name prefixed with `\"cmt-\"` (for\nexample `\"cmt-comment\"`):\n\n* [`link`](https://codemirror.net/6/docs/ref/#highlight.tags.link)\n* [`heading`](https://codemirror.net/6/docs/ref/#highlight.tags.heading)\n* [`emphasis`](https://codemirror.net/6/docs/ref/#highlight.tags.emphasis)\n* [`strong`](https://codemirror.net/6/docs/ref/#highlight.tags.strong)\n* [`keyword`](https://codemirror.net/6/docs/ref/#highlight.tags.keyword)\n* [`atom`](https://codemirror.net/6/docs/ref/#highlight.tags.atom) [`bool`](https://codemirror.net/6/docs/ref/#highlight.tags.bool)\n* [`url`](https://codemirror.net/6/docs/ref/#highlight.tags.url)\n* [`labelName`](https://codemirror.net/6/docs/ref/#highlight.tags.labelName)\n* [`inserted`](https://codemirror.net/6/docs/ref/#highlight.tags.inserted)\n* [`deleted`](https://codemirror.net/6/docs/ref/#highlight.tags.deleted)\n* [`literal`](https://codemirror.net/6/docs/ref/#highlight.tags.literal)\n* [`string`](https://codemirror.net/6/docs/ref/#highlight.tags.string)\n* [`number`](https://codemirror.net/6/docs/ref/#highlight.tags.number)\n* [`variableName`](https://codemirror.net/6/docs/ref/#highlight.tags.variableName)\n* [`typeName`](https://codemirror.net/6/docs/ref/#highlight.tags.typeName)\n* [`namespace`](https://codemirror.net/6/docs/ref/#highlight.tags.namespace)\n* [`className`](https://codemirror.net/6/docs/ref/#highlight.tags.className)\n* [`macroName`](https://codemirror.net/6/docs/ref/#highlight.tags.macroName)\n* [`propertyName`](https://codemirror.net/6/docs/ref/#highlight.tags.propertyName)\n* [`operator`](https://codemirror.net/6/docs/ref/#highlight.tags.operator)\n* [`comment`](https://codemirror.net/6/docs/ref/#highlight.tags.comment)\n* [`meta`](https://codemirror.net/6/docs/ref/#highlight.tags.meta)\n* [`punctuation`](https://codemirror.net/6/docs/ref/#highlight.tags.puncutation)\n* [`invalid`](https://codemirror.net/6/docs/ref/#highlight.tags.invalid)\n\nIn addition, these mappings are provided:\n\n* [`regexp`](https://codemirror.net/6/docs/ref/#highlight.tags.regexp),\n [`escape`](https://codemirror.net/6/docs/ref/#highlight.tags.escape), and\n [`special`](https://codemirror.net/6/docs/ref/#highlight.tags.special)[`(string)`](https://codemirror.net/6/docs/ref/#highlight.tags.string)\n are mapped to `\"cmt-string2\"`\n* [`special`](https://codemirror.net/6/docs/ref/#highlight.tags.special)[`(variableName)`](https://codemirror.net/6/docs/ref/#highlight.tags.variableName)\n to `\"cmt-variableName2\"`\n* [`local`](https://codemirror.net/6/docs/ref/#highlight.tags.local)[`(variableName)`](https://codemirror.net/6/docs/ref/#highlight.tags.variableName)\n to `\"cmt-variableName cmt-local\"`\n* [`definition`](https://codemirror.net/6/docs/ref/#highlight.tags.definition)[`(variableName)`](https://codemirror.net/6/docs/ref/#highlight.tags.variableName)\n to `\"cmt-variableName cmt-definition\"`\n* [`definition`](https://codemirror.net/6/docs/ref/#highlight.tags.definition)[`(propertyName)`](https://codemirror.net/6/docs/ref/#highlight.tags.propertyName)\n to `\"cmt-propertyName cmt-definition\"`\n*/\nconst classHighlightStyle = /*@__PURE__*/HighlightStyle.define([\n { tag: tags.link, class: \"cmt-link\" },\n { tag: tags.heading, class: \"cmt-heading\" },\n { tag: tags.emphasis, class: \"cmt-emphasis\" },\n { tag: tags.strong, class: \"cmt-strong\" },\n { tag: tags.keyword, class: \"cmt-keyword\" },\n { tag: tags.atom, class: \"cmt-atom\" },\n { tag: tags.bool, class: \"cmt-bool\" },\n { tag: tags.url, class: \"cmt-url\" },\n { tag: tags.labelName, class: \"cmt-labelName\" },\n { tag: tags.inserted, class: \"cmt-inserted\" },\n { tag: tags.deleted, class: \"cmt-deleted\" },\n { tag: tags.literal, class: \"cmt-literal\" },\n { tag: tags.string, class: \"cmt-string\" },\n { tag: tags.number, class: \"cmt-number\" },\n { tag: [tags.regexp, tags.escape, /*@__PURE__*/tags.special(tags.string)], class: \"cmt-string2\" },\n { tag: tags.variableName, class: \"cmt-variableName\" },\n { tag: /*@__PURE__*/tags.local(tags.variableName), class: \"cmt-variableName cmt-local\" },\n { tag: /*@__PURE__*/tags.definition(tags.variableName), class: \"cmt-variableName cmt-definition\" },\n { tag: /*@__PURE__*/tags.special(tags.variableName), class: \"cmt-variableName2\" },\n { tag: /*@__PURE__*/tags.definition(tags.propertyName), class: \"cmt-propertyName cmt-definition\" },\n { tag: tags.typeName, class: \"cmt-typeName\" },\n { tag: tags.namespace, class: \"cmt-namespace\" },\n { tag: tags.className, class: \"cmt-className\" },\n { tag: tags.macroName, class: \"cmt-macroName\" },\n { tag: tags.propertyName, class: \"cmt-propertyName\" },\n { tag: tags.operator, class: \"cmt-operator\" },\n { tag: tags.comment, class: \"cmt-comment\" },\n { tag: tags.meta, class: \"cmt-meta\" },\n { tag: tags.invalid, class: \"cmt-invalid\" },\n { tag: tags.punctuation, class: \"cmt-punctuation\" }\n]);\n\nexport { HighlightStyle, Tag, classHighlightStyle, defaultHighlightStyle, highlightTree, styleTags, tags };\n","import { parser } from '@lezer/cpp';\nimport { LRLanguage, indentNodeProp, continuedIndent, flatIndent, foldNodeProp, foldInside, LanguageSupport } from '@codemirror/language';\nimport { styleTags, tags } from '@codemirror/highlight';\n\n/**\nA language provider based on the [Lezer C++\nparser](https://github.com/lezer-parser/cpp), extended with\nhighlighting and indentation information.\n*/\nconst cppLanguage = /*@__PURE__*/LRLanguage.define({\n parser: /*@__PURE__*/parser.configure({\n props: [\n /*@__PURE__*/indentNodeProp.add({\n IfStatement: /*@__PURE__*/continuedIndent({ except: /^\\s*({|else\\b)/ }),\n TryStatement: /*@__PURE__*/continuedIndent({ except: /^\\s*({|catch)\\b/ }),\n LabeledStatement: flatIndent,\n CaseStatement: context => context.baseIndent + context.unit,\n BlockComment: () => -1,\n Statement: /*@__PURE__*/continuedIndent({ except: /^{/ })\n }),\n /*@__PURE__*/foldNodeProp.add({\n \"DeclarationList CompoundStatement EnumeratorList FieldDeclarationList InitializerList\": foldInside,\n BlockComment(tree) { return { from: tree.from + 2, to: tree.to - 2 }; }\n }),\n /*@__PURE__*/styleTags({\n \"typedef struct union enum class typename decltype auto template operator friend noexcept namespace using __attribute__ __declspec __based\": tags.definitionKeyword,\n \"extern MsCallModifier MsPointerModifier extern static register inline const volatile restrict _Atomic mutable constexpr virtual explicit VirtualSpecifier Access\": tags.modifier,\n \"if else switch for while do case default return break continue goto throw try catch\": tags.controlKeyword,\n \"new sizeof delete static_assert\": tags.operatorKeyword,\n \"NULL nullptr\": tags.null,\n this: tags.self,\n \"True False\": tags.bool,\n \"TypeSize PrimitiveType\": /*@__PURE__*/tags.standard(tags.typeName),\n TypeIdentifier: tags.typeName,\n FieldIdentifier: tags.propertyName,\n \"CallExpression/FieldExpression/FieldIdentifier\": /*@__PURE__*/tags.function(tags.propertyName),\n StatementIdentifier: tags.labelName,\n Identifier: tags.variableName,\n \"CallExpression/Identifier\": /*@__PURE__*/tags.function(tags.variableName),\n \"CallExpression/ScopedIdentifier/Identifier\": /*@__PURE__*/tags.function(tags.variableName),\n DestructorName: tags.name,\n NamespaceIdentifier: tags.namespace,\n OperatorName: tags.operator,\n ArithOp: tags.arithmeticOperator,\n LogicOp: tags.logicOperator,\n BitOp: tags.bitwiseOperator,\n CompareOp: tags.compareOperator,\n AssignOp: tags.definitionOperator,\n UpdateOp: tags.updateOperator,\n LineComment: tags.lineComment,\n BlockComment: tags.blockComment,\n Number: tags.number,\n String: tags.string,\n \"RawString SystemLibString\": /*@__PURE__*/tags.special(tags.string),\n CharLiteral: tags.character,\n EscapeSequence: tags.escape,\n PreProcArg: tags.meta,\n \"PreprocDirectiveName #include #ifdef #ifndef #if #define #else #endif #elif\": tags.processingInstruction,\n MacroName: /*@__PURE__*/tags.special(tags.name),\n \"( )\": tags.paren,\n \"[ ]\": tags.squareBracket,\n \"{ }\": tags.brace,\n \"< >\": tags.angleBracket,\n \". ->\": tags.derefOperator,\n \", ;\": tags.separator\n })\n ]\n }),\n languageData: {\n commentTokens: { line: \"//\", block: { open: \"/*\", close: \"*/\" } },\n indentOnInput: /^\\s*(?:case |default:|\\{|\\})$/\n }\n});\n/**\nLanguage support for C++.\n*/\nfunction cpp() {\n return new LanguageSupport(cppLanguage);\n}\n\nexport { cpp, cppLanguage };\n","import { parser } from '@lezer/css';\nimport { syntaxTree, LRLanguage, indentNodeProp, continuedIndent, foldNodeProp, foldInside, LanguageSupport } from '@codemirror/language';\nimport { styleTags, tags as tags$1 } from '@codemirror/highlight';\n\nlet _properties = null;\nfunction properties() {\n if (!_properties && typeof document == \"object\" && document.body) {\n let names = [];\n for (let prop in document.body.style) {\n if (!/[A-Z]|^-|^(item|length)$/.test(prop))\n names.push(prop);\n }\n _properties = names.sort().map(name => ({ type: \"property\", label: name }));\n }\n return _properties || [];\n}\nconst pseudoClasses = /*@__PURE__*/[\n \"active\", \"after\", \"before\", \"checked\", \"default\",\n \"disabled\", \"empty\", \"enabled\", \"first-child\", \"first-letter\",\n \"first-line\", \"first-of-type\", \"focus\", \"hover\", \"in-range\",\n \"indeterminate\", \"invalid\", \"lang\", \"last-child\", \"last-of-type\",\n \"link\", \"not\", \"nth-child\", \"nth-last-child\", \"nth-last-of-type\",\n \"nth-of-type\", \"only-of-type\", \"only-child\", \"optional\", \"out-of-range\",\n \"placeholder\", \"read-only\", \"read-write\", \"required\", \"root\",\n \"selection\", \"target\", \"valid\", \"visited\"\n].map(name => ({ type: \"class\", label: name }));\nconst values = /*@__PURE__*/[\n \"above\", \"absolute\", \"activeborder\", \"additive\", \"activecaption\", \"after-white-space\",\n \"ahead\", \"alias\", \"all\", \"all-scroll\", \"alphabetic\", \"alternate\", \"always\",\n \"antialiased\", \"appworkspace\", \"asterisks\", \"attr\", \"auto\", \"auto-flow\", \"avoid\", \"avoid-column\",\n \"avoid-page\", \"avoid-region\", \"axis-pan\", \"background\", \"backwards\", \"baseline\", \"below\",\n \"bidi-override\", \"blink\", \"block\", \"block-axis\", \"bold\", \"bolder\", \"border\", \"border-box\",\n \"both\", \"bottom\", \"break\", \"break-all\", \"break-word\", \"bullets\", \"button\", \"button-bevel\",\n \"buttonface\", \"buttonhighlight\", \"buttonshadow\", \"buttontext\", \"calc\", \"capitalize\",\n \"caps-lock-indicator\", \"caption\", \"captiontext\", \"caret\", \"cell\", \"center\", \"checkbox\", \"circle\",\n \"cjk-decimal\", \"clear\", \"clip\", \"close-quote\", \"col-resize\", \"collapse\", \"color\", \"color-burn\",\n \"color-dodge\", \"column\", \"column-reverse\", \"compact\", \"condensed\", \"contain\", \"content\",\n \"contents\", \"content-box\", \"context-menu\", \"continuous\", \"copy\", \"counter\", \"counters\", \"cover\",\n \"crop\", \"cross\", \"crosshair\", \"currentcolor\", \"cursive\", \"cyclic\", \"darken\", \"dashed\", \"decimal\",\n \"decimal-leading-zero\", \"default\", \"default-button\", \"dense\", \"destination-atop\", \"destination-in\",\n \"destination-out\", \"destination-over\", \"difference\", \"disc\", \"discard\", \"disclosure-closed\",\n \"disclosure-open\", \"document\", \"dot-dash\", \"dot-dot-dash\", \"dotted\", \"double\", \"down\", \"e-resize\",\n \"ease\", \"ease-in\", \"ease-in-out\", \"ease-out\", \"element\", \"ellipse\", \"ellipsis\", \"embed\", \"end\",\n \"ethiopic-abegede-gez\", \"ethiopic-halehame-aa-er\", \"ethiopic-halehame-gez\", \"ew-resize\", \"exclusion\",\n \"expanded\", \"extends\", \"extra-condensed\", \"extra-expanded\", \"fantasy\", \"fast\", \"fill\", \"fill-box\",\n \"fixed\", \"flat\", \"flex\", \"flex-end\", \"flex-start\", \"footnotes\", \"forwards\", \"from\",\n \"geometricPrecision\", \"graytext\", \"grid\", \"groove\", \"hand\", \"hard-light\", \"help\", \"hidden\", \"hide\",\n \"higher\", \"highlight\", \"highlighttext\", \"horizontal\", \"hsl\", \"hsla\", \"hue\", \"icon\", \"ignore\",\n \"inactiveborder\", \"inactivecaption\", \"inactivecaptiontext\", \"infinite\", \"infobackground\", \"infotext\",\n \"inherit\", \"initial\", \"inline\", \"inline-axis\", \"inline-block\", \"inline-flex\", \"inline-grid\",\n \"inline-table\", \"inset\", \"inside\", \"intrinsic\", \"invert\", \"italic\", \"justify\", \"keep-all\",\n \"landscape\", \"large\", \"larger\", \"left\", \"level\", \"lighter\", \"lighten\", \"line-through\", \"linear\",\n \"linear-gradient\", \"lines\", \"list-item\", \"listbox\", \"listitem\", \"local\", \"logical\", \"loud\", \"lower\",\n \"lower-hexadecimal\", \"lower-latin\", \"lower-norwegian\", \"lowercase\", \"ltr\", \"luminosity\", \"manipulation\",\n \"match\", \"matrix\", \"matrix3d\", \"medium\", \"menu\", \"menutext\", \"message-box\", \"middle\", \"min-intrinsic\",\n \"mix\", \"monospace\", \"move\", \"multiple\", \"multiple_mask_images\", \"multiply\", \"n-resize\", \"narrower\",\n \"ne-resize\", \"nesw-resize\", \"no-close-quote\", \"no-drop\", \"no-open-quote\", \"no-repeat\", \"none\",\n \"normal\", \"not-allowed\", \"nowrap\", \"ns-resize\", \"numbers\", \"numeric\", \"nw-resize\", \"nwse-resize\",\n \"oblique\", \"opacity\", \"open-quote\", \"optimizeLegibility\", \"optimizeSpeed\", \"outset\", \"outside\",\n \"outside-shape\", \"overlay\", \"overline\", \"padding\", \"padding-box\", \"painted\", \"page\", \"paused\",\n \"perspective\", \"pinch-zoom\", \"plus-darker\", \"plus-lighter\", \"pointer\", \"polygon\", \"portrait\",\n \"pre\", \"pre-line\", \"pre-wrap\", \"preserve-3d\", \"progress\", \"push-button\", \"radial-gradient\", \"radio\",\n \"read-only\", \"read-write\", \"read-write-plaintext-only\", \"rectangle\", \"region\", \"relative\", \"repeat\",\n \"repeating-linear-gradient\", \"repeating-radial-gradient\", \"repeat-x\", \"repeat-y\", \"reset\", \"reverse\",\n \"rgb\", \"rgba\", \"ridge\", \"right\", \"rotate\", \"rotate3d\", \"rotateX\", \"rotateY\", \"rotateZ\", \"round\",\n \"row\", \"row-resize\", \"row-reverse\", \"rtl\", \"run-in\", \"running\", \"s-resize\", \"sans-serif\", \"saturation\",\n \"scale\", \"scale3d\", \"scaleX\", \"scaleY\", \"scaleZ\", \"screen\", \"scroll\", \"scrollbar\", \"scroll-position\",\n \"se-resize\", \"self-start\", \"self-end\", \"semi-condensed\", \"semi-expanded\", \"separate\", \"serif\", \"show\",\n \"single\", \"skew\", \"skewX\", \"skewY\", \"skip-white-space\", \"slide\", \"slider-horizontal\",\n \"slider-vertical\", \"sliderthumb-horizontal\", \"sliderthumb-vertical\", \"slow\", \"small\", \"small-caps\",\n \"small-caption\", \"smaller\", \"soft-light\", \"solid\", \"source-atop\", \"source-in\", \"source-out\",\n \"source-over\", \"space\", \"space-around\", \"space-between\", \"space-evenly\", \"spell-out\", \"square\", \"start\",\n \"static\", \"status-bar\", \"stretch\", \"stroke\", \"stroke-box\", \"sub\", \"subpixel-antialiased\", \"svg_masks\",\n \"super\", \"sw-resize\", \"symbolic\", \"symbols\", \"system-ui\", \"table\", \"table-caption\", \"table-cell\",\n \"table-column\", \"table-column-group\", \"table-footer-group\", \"table-header-group\", \"table-row\",\n \"table-row-group\", \"text\", \"text-bottom\", \"text-top\", \"textarea\", \"textfield\", \"thick\", \"thin\",\n \"threeddarkshadow\", \"threedface\", \"threedhighlight\", \"threedlightshadow\", \"threedshadow\", \"to\", \"top\",\n \"transform\", \"translate\", \"translate3d\", \"translateX\", \"translateY\", \"translateZ\", \"transparent\",\n \"ultra-condensed\", \"ultra-expanded\", \"underline\", \"unidirectional-pan\", \"unset\", \"up\", \"upper-latin\",\n \"uppercase\", \"url\", \"var\", \"vertical\", \"vertical-text\", \"view-box\", \"visible\", \"visibleFill\",\n \"visiblePainted\", \"visibleStroke\", \"visual\", \"w-resize\", \"wait\", \"wave\", \"wider\", \"window\", \"windowframe\",\n \"windowtext\", \"words\", \"wrap\", \"wrap-reverse\", \"x-large\", \"x-small\", \"xor\", \"xx-large\", \"xx-small\"\n].map(name => ({ type: \"keyword\", label: name })).concat(/*@__PURE__*/[\n \"aliceblue\", \"antiquewhite\", \"aqua\", \"aquamarine\", \"azure\", \"beige\",\n \"bisque\", \"black\", \"blanchedalmond\", \"blue\", \"blueviolet\", \"brown\",\n \"burlywood\", \"cadetblue\", \"chartreuse\", \"chocolate\", \"coral\", \"cornflowerblue\",\n \"cornsilk\", \"crimson\", \"cyan\", \"darkblue\", \"darkcyan\", \"darkgoldenrod\",\n \"darkgray\", \"darkgreen\", \"darkkhaki\", \"darkmagenta\", \"darkolivegreen\",\n \"darkorange\", \"darkorchid\", \"darkred\", \"darksalmon\", \"darkseagreen\",\n \"darkslateblue\", \"darkslategray\", \"darkturquoise\", \"darkviolet\",\n \"deeppink\", \"deepskyblue\", \"dimgray\", \"dodgerblue\", \"firebrick\",\n \"floralwhite\", \"forestgreen\", \"fuchsia\", \"gainsboro\", \"ghostwhite\",\n \"gold\", \"goldenrod\", \"gray\", \"grey\", \"green\", \"greenyellow\", \"honeydew\",\n \"hotpink\", \"indianred\", \"indigo\", \"ivory\", \"khaki\", \"lavender\",\n \"lavenderblush\", \"lawngreen\", \"lemonchiffon\", \"lightblue\", \"lightcoral\",\n \"lightcyan\", \"lightgoldenrodyellow\", \"lightgray\", \"lightgreen\", \"lightpink\",\n \"lightsalmon\", \"lightseagreen\", \"lightskyblue\", \"lightslategray\",\n \"lightsteelblue\", \"lightyellow\", \"lime\", \"limegreen\", \"linen\", \"magenta\",\n \"maroon\", \"mediumaquamarine\", \"mediumblue\", \"mediumorchid\", \"mediumpurple\",\n \"mediumseagreen\", \"mediumslateblue\", \"mediumspringgreen\", \"mediumturquoise\",\n \"mediumvioletred\", \"midnightblue\", \"mintcream\", \"mistyrose\", \"moccasin\",\n \"navajowhite\", \"navy\", \"oldlace\", \"olive\", \"olivedrab\", \"orange\", \"orangered\",\n \"orchid\", \"palegoldenrod\", \"palegreen\", \"paleturquoise\", \"palevioletred\",\n \"papayawhip\", \"peachpuff\", \"peru\", \"pink\", \"plum\", \"powderblue\",\n \"purple\", \"rebeccapurple\", \"red\", \"rosybrown\", \"royalblue\", \"saddlebrown\",\n \"salmon\", \"sandybrown\", \"seagreen\", \"seashell\", \"sienna\", \"silver\", \"skyblue\",\n \"slateblue\", \"slategray\", \"snow\", \"springgreen\", \"steelblue\", \"tan\",\n \"teal\", \"thistle\", \"tomato\", \"turquoise\", \"violet\", \"wheat\", \"white\",\n \"whitesmoke\", \"yellow\", \"yellowgreen\"\n].map(name => ({ type: \"constant\", label: name })));\nconst tags = /*@__PURE__*/[\n \"a\", \"abbr\", \"address\", \"article\", \"aside\", \"b\", \"bdi\", \"bdo\", \"blockquote\", \"body\",\n \"br\", \"button\", \"canvas\", \"caption\", \"cite\", \"code\", \"col\", \"colgroup\", \"dd\", \"del\",\n \"details\", \"dfn\", \"dialog\", \"div\", \"dl\", \"dt\", \"em\", \"figcaption\", \"figure\", \"footer\",\n \"form\", \"header\", \"hgroup\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"hr\", \"html\", \"i\", \"iframe\",\n \"img\", \"input\", \"ins\", \"kbd\", \"label\", \"legend\", \"li\", \"main\", \"meter\", \"nav\", \"ol\", \"output\",\n \"p\", \"pre\", \"ruby\", \"section\", \"select\", \"small\", \"source\", \"span\", \"strong\", \"sub\", \"summary\",\n \"sup\", \"table\", \"tbody\", \"td\", \"template\", \"textarea\", \"tfoot\", \"th\", \"thead\", \"tr\", \"u\", \"ul\"\n].map(name => ({ type: \"type\", label: name }));\nconst span = /^[\\w-]*/;\n/**\nCSS property and value keyword completion source.\n*/\nconst cssCompletionSource = context => {\n let { state, pos } = context, node = syntaxTree(state).resolveInner(pos, -1);\n if (node.name == \"PropertyName\")\n return { from: node.from, options: properties(), span };\n if (node.name == \"ValueName\")\n return { from: node.from, options: values, span };\n if (node.name == \"PseudoClassName\")\n return { from: node.from, options: pseudoClasses, span };\n if (node.name == \"TagName\") {\n for (let { parent } = node; parent; parent = parent.parent)\n if (parent.name == \"Block\")\n return { from: node.from, options: properties(), span };\n return { from: node.from, options: tags, span };\n }\n if (!context.explicit)\n return null;\n let above = node.resolve(pos), before = above.childBefore(pos);\n if (before && before.name == \":\" && above.name == \"PseudoClassSelector\")\n return { from: pos, options: pseudoClasses, span };\n if (before && before.name == \":\" && above.name == \"Declaration\" || above.name == \"ArgList\")\n return { from: pos, options: values, span };\n if (above.name == \"Block\")\n return { from: pos, options: properties(), span };\n return null;\n};\n\n/**\nA language provider based on the [Lezer CSS\nparser](https://github.com/lezer-parser/css), extended with\nhighlighting and indentation information.\n*/\nconst cssLanguage = /*@__PURE__*/LRLanguage.define({\n parser: /*@__PURE__*/parser.configure({\n props: [\n /*@__PURE__*/indentNodeProp.add({\n Declaration: /*@__PURE__*/continuedIndent()\n }),\n /*@__PURE__*/foldNodeProp.add({\n Block: foldInside\n }),\n /*@__PURE__*/styleTags({\n \"import charset namespace keyframes\": tags$1.definitionKeyword,\n \"media supports\": tags$1.controlKeyword,\n \"from to selector\": tags$1.keyword,\n NamespaceName: tags$1.namespace,\n KeyframeName: tags$1.labelName,\n TagName: tags$1.tagName,\n ClassName: tags$1.className,\n PseudoClassName: /*@__PURE__*/tags$1.constant(tags$1.className),\n IdName: tags$1.labelName,\n \"FeatureName PropertyName\": tags$1.propertyName,\n AttributeName: tags$1.attributeName,\n NumberLiteral: tags$1.number,\n KeywordQuery: tags$1.keyword,\n UnaryQueryOp: tags$1.operatorKeyword,\n \"CallTag ValueName\": tags$1.atom,\n VariableName: tags$1.variableName,\n Callee: tags$1.operatorKeyword,\n Unit: tags$1.unit,\n \"UniversalSelector NestingSelector\": tags$1.definitionOperator,\n AtKeyword: tags$1.keyword,\n MatchOp: tags$1.compareOperator,\n \"ChildOp SiblingOp, LogicOp\": tags$1.logicOperator,\n BinOp: tags$1.arithmeticOperator,\n Important: tags$1.modifier,\n Comment: tags$1.blockComment,\n ParenthesizedContent: /*@__PURE__*/tags$1.special(tags$1.name),\n ColorLiteral: tags$1.color,\n StringLiteral: tags$1.string,\n \":\": tags$1.punctuation,\n \"PseudoOp #\": tags$1.derefOperator,\n \"; ,\": tags$1.separator,\n \"( )\": tags$1.paren,\n \"[ ]\": tags$1.squareBracket,\n \"{ }\": tags$1.brace\n })\n ]\n }),\n languageData: {\n commentTokens: { block: { open: \"/*\", close: \"*/\" } },\n indentOnInput: /^\\s*\\}$/,\n wordChars: \"-\"\n }\n});\n// FIXME remove on next major version\nconst cssCompletion = /*@__PURE__*/cssLanguage.data.of({ autocomplete: cssCompletionSource });\n/**\nLanguage support for CSS.\n*/\nfunction css() {\n return new LanguageSupport(cssLanguage, cssCompletion);\n}\n\nexport { css, cssCompletion, cssCompletionSource, cssLanguage };\n","import { parser, configureNesting } from '@lezer/html';\nimport { cssLanguage, css } from '@codemirror/lang-css';\nimport { javascriptLanguage, javascript } from '@codemirror/lang-javascript';\nimport { EditorView } from '@codemirror/view';\nimport { EditorSelection } from '@codemirror/state';\nimport { syntaxTree, LRLanguage, indentNodeProp, foldNodeProp, LanguageSupport } from '@codemirror/language';\nimport { styleTags, tags } from '@codemirror/highlight';\n\nconst Targets = [\"_blank\", \"_self\", \"_top\", \"_parent\"];\nconst Charsets = [\"ascii\", \"utf-8\", \"utf-16\", \"latin1\", \"latin1\"];\nconst Methods = [\"get\", \"post\", \"put\", \"delete\"];\nconst Encs = [\"application/x-www-form-urlencoded\", \"multipart/form-data\", \"text/plain\"];\nconst Bool = [\"true\", \"false\"];\nconst S = {}; // Empty tag spec\nconst Tags = {\n a: {\n attrs: {\n href: null, ping: null, type: null,\n media: null,\n target: Targets,\n hreflang: null\n }\n },\n abbr: S,\n acronym: S,\n address: S,\n applet: S,\n area: {\n attrs: {\n alt: null, coords: null, href: null, target: null, ping: null,\n media: null, hreflang: null, type: null,\n shape: [\"default\", \"rect\", \"circle\", \"poly\"]\n }\n },\n article: S,\n aside: S,\n audio: {\n attrs: {\n src: null, mediagroup: null,\n crossorigin: [\"anonymous\", \"use-credentials\"],\n preload: [\"none\", \"metadata\", \"auto\"],\n autoplay: [\"autoplay\"],\n loop: [\"loop\"],\n controls: [\"controls\"]\n }\n },\n b: S,\n base: { attrs: { href: null, target: Targets } },\n basefont: S,\n bdi: S,\n bdo: S,\n big: S,\n blockquote: { attrs: { cite: null } },\n body: S,\n br: S,\n button: {\n attrs: {\n form: null, formaction: null, name: null, value: null,\n autofocus: [\"autofocus\"],\n disabled: [\"autofocus\"],\n formenctype: Encs,\n formmethod: Methods,\n formnovalidate: [\"novalidate\"],\n formtarget: Targets,\n type: [\"submit\", \"reset\", \"button\"]\n }\n },\n canvas: { attrs: { width: null, height: null } },\n caption: S,\n center: S,\n cite: S,\n code: S,\n col: { attrs: { span: null } },\n colgroup: { attrs: { span: null } },\n command: {\n attrs: {\n type: [\"command\", \"checkbox\", \"radio\"],\n label: null, icon: null, radiogroup: null, command: null, title: null,\n disabled: [\"disabled\"],\n checked: [\"checked\"]\n }\n },\n data: { attrs: { value: null } },\n datagrid: { attrs: { disabled: [\"disabled\"], multiple: [\"multiple\"] } },\n datalist: { attrs: { data: null } },\n dd: S,\n del: { attrs: { cite: null, datetime: null } },\n details: { attrs: { open: [\"open\"] } },\n dfn: S,\n dir: S,\n div: S,\n dl: S,\n dt: S,\n em: S,\n embed: { attrs: { src: null, type: null, width: null, height: null } },\n eventsource: { attrs: { src: null } },\n fieldset: { attrs: { disabled: [\"disabled\"], form: null, name: null } },\n figcaption: S,\n figure: S,\n font: S,\n footer: S,\n form: {\n attrs: {\n action: null, name: null,\n \"accept-charset\": Charsets,\n autocomplete: [\"on\", \"off\"],\n enctype: Encs,\n method: Methods,\n novalidate: [\"novalidate\"],\n target: Targets\n }\n },\n frame: S,\n frameset: S,\n h1: S, h2: S, h3: S, h4: S, h5: S, h6: S,\n head: {\n children: [\"title\", \"base\", \"link\", \"style\", \"meta\", \"script\", \"noscript\", \"command\"]\n },\n header: S,\n hgroup: S,\n hr: S,\n html: {\n attrs: { manifest: null }\n },\n i: S,\n iframe: {\n attrs: {\n src: null, srcdoc: null, name: null, width: null, height: null,\n sandbox: [\"allow-top-navigation\", \"allow-same-origin\", \"allow-forms\", \"allow-scripts\"],\n seamless: [\"seamless\"]\n }\n },\n img: {\n attrs: {\n alt: null, src: null, ismap: null, usemap: null, width: null, height: null,\n crossorigin: [\"anonymous\", \"use-credentials\"]\n }\n },\n input: {\n attrs: {\n alt: null, dirname: null, form: null, formaction: null,\n height: null, list: null, max: null, maxlength: null, min: null,\n name: null, pattern: null, placeholder: null, size: null, src: null,\n step: null, value: null, width: null,\n accept: [\"audio/*\", \"video/*\", \"image/*\"],\n autocomplete: [\"on\", \"off\"],\n autofocus: [\"autofocus\"],\n checked: [\"checked\"],\n disabled: [\"disabled\"],\n formenctype: Encs,\n formmethod: Methods,\n formnovalidate: [\"novalidate\"],\n formtarget: Targets,\n multiple: [\"multiple\"],\n readonly: [\"readonly\"],\n required: [\"required\"],\n type: [\"hidden\", \"text\", \"search\", \"tel\", \"url\", \"email\", \"password\", \"datetime\", \"date\", \"month\",\n \"week\", \"time\", \"datetime-local\", \"number\", \"range\", \"color\", \"checkbox\", \"radio\",\n \"file\", \"submit\", \"image\", \"reset\", \"button\"]\n }\n },\n ins: { attrs: { cite: null, datetime: null } },\n kbd: S,\n keygen: {\n attrs: {\n challenge: null, form: null, name: null,\n autofocus: [\"autofocus\"],\n disabled: [\"disabled\"],\n keytype: [\"RSA\"]\n }\n },\n label: { attrs: { for: null, form: null } },\n legend: S,\n li: { attrs: { value: null } },\n link: {\n attrs: {\n href: null, type: null,\n hreflang: null,\n media: null,\n sizes: [\"all\", \"16x16\", \"16x16 32x32\", \"16x16 32x32 64x64\"]\n }\n },\n map: { attrs: { name: null } },\n mark: S,\n menu: { attrs: { label: null, type: [\"list\", \"context\", \"toolbar\"] } },\n meta: {\n attrs: {\n content: null,\n charset: Charsets,\n name: [\"viewport\", \"application-name\", \"author\", \"description\", \"generator\", \"keywords\"],\n \"http-equiv\": [\"content-language\", \"content-type\", \"default-style\", \"refresh\"]\n }\n },\n meter: { attrs: { value: null, min: null, low: null, high: null, max: null, optimum: null } },\n nav: S,\n noframes: S,\n noscript: S,\n object: {\n attrs: {\n data: null, type: null, name: null, usemap: null, form: null, width: null, height: null,\n typemustmatch: [\"typemustmatch\"]\n }\n },\n ol: { attrs: { reversed: [\"reversed\"], start: null, type: [\"1\", \"a\", \"A\", \"i\", \"I\"] },\n children: [\"li\", \"script\", \"template\", \"ul\", \"ol\"] },\n optgroup: { attrs: { disabled: [\"disabled\"], label: null } },\n option: { attrs: { disabled: [\"disabled\"], label: null, selected: [\"selected\"], value: null } },\n output: { attrs: { for: null, form: null, name: null } },\n p: S,\n param: { attrs: { name: null, value: null } },\n pre: S,\n progress: { attrs: { value: null, max: null } },\n q: { attrs: { cite: null } },\n rp: S,\n rt: S,\n ruby: S,\n s: S,\n samp: S,\n script: {\n attrs: {\n type: [\"text/javascript\"],\n src: null,\n async: [\"async\"],\n defer: [\"defer\"],\n charset: Charsets\n }\n },\n section: S,\n select: {\n attrs: {\n form: null, name: null, size: null,\n autofocus: [\"autofocus\"],\n disabled: [\"disabled\"],\n multiple: [\"multiple\"]\n }\n },\n small: S,\n source: { attrs: { src: null, type: null, media: null } },\n span: S,\n strike: S,\n strong: S,\n style: {\n attrs: {\n type: [\"text/css\"],\n media: null,\n scoped: null\n }\n },\n sub: S,\n summary: S,\n sup: S,\n table: S,\n tbody: S,\n td: { attrs: { colspan: null, rowspan: null, headers: null } },\n textarea: {\n attrs: {\n dirname: null, form: null, maxlength: null, name: null, placeholder: null,\n rows: null, cols: null,\n autofocus: [\"autofocus\"],\n disabled: [\"disabled\"],\n readonly: [\"readonly\"],\n required: [\"required\"],\n wrap: [\"soft\", \"hard\"]\n }\n },\n tfoot: S,\n th: { attrs: { colspan: null, rowspan: null, headers: null, scope: [\"row\", \"col\", \"rowgroup\", \"colgroup\"] } },\n thead: S,\n time: { attrs: { datetime: null } },\n title: S,\n tr: S,\n track: {\n attrs: {\n src: null, label: null, default: null,\n kind: [\"subtitles\", \"captions\", \"descriptions\", \"chapters\", \"metadata\"],\n srclang: null\n }\n },\n tt: S,\n u: S,\n ul: { children: [\"li\", \"script\", \"template\", \"ul\", \"ol\"] },\n var: S,\n video: {\n attrs: {\n src: null, poster: null, width: null, height: null,\n crossorigin: [\"anonymous\", \"use-credentials\"],\n preload: [\"auto\", \"metadata\", \"none\"],\n autoplay: [\"autoplay\"],\n mediagroup: [\"movie\"],\n muted: [\"muted\"],\n controls: [\"controls\"]\n }\n },\n wbr: S\n};\nconst GlobalAttrs = {\n accesskey: null,\n class: null,\n contenteditable: Bool,\n contextmenu: null,\n dir: [\"ltr\", \"rtl\", \"auto\"],\n draggable: [\"true\", \"false\", \"auto\"],\n dropzone: [\"copy\", \"move\", \"link\", \"string:\", \"file:\"],\n hidden: [\"hidden\"],\n id: null,\n inert: [\"inert\"],\n itemid: null,\n itemprop: null,\n itemref: null,\n itemscope: [\"itemscope\"],\n itemtype: null,\n lang: [\"ar\", \"bn\", \"de\", \"en-GB\", \"en-US\", \"es\", \"fr\", \"hi\", \"id\", \"ja\", \"pa\", \"pt\", \"ru\", \"tr\", \"zh\"],\n spellcheck: Bool,\n autocorrect: Bool,\n autocapitalize: Bool,\n style: null,\n tabindex: null,\n title: null,\n translate: [\"yes\", \"no\"],\n onclick: null,\n rel: [\"stylesheet\", \"alternate\", \"author\", \"bookmark\", \"help\", \"license\", \"next\", \"nofollow\", \"noreferrer\", \"prefetch\", \"prev\", \"search\", \"tag\"],\n role: /*@__PURE__*/\"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer\".split(\" \"),\n \"aria-activedescendant\": null,\n \"aria-atomic\": Bool,\n \"aria-autocomplete\": [\"inline\", \"list\", \"both\", \"none\"],\n \"aria-busy\": Bool,\n \"aria-checked\": [\"true\", \"false\", \"mixed\", \"undefined\"],\n \"aria-controls\": null,\n \"aria-describedby\": null,\n \"aria-disabled\": Bool,\n \"aria-dropeffect\": null,\n \"aria-expanded\": [\"true\", \"false\", \"undefined\"],\n \"aria-flowto\": null,\n \"aria-grabbed\": [\"true\", \"false\", \"undefined\"],\n \"aria-haspopup\": Bool,\n \"aria-hidden\": Bool,\n \"aria-invalid\": [\"true\", \"false\", \"grammar\", \"spelling\"],\n \"aria-label\": null,\n \"aria-labelledby\": null,\n \"aria-level\": null,\n \"aria-live\": [\"off\", \"polite\", \"assertive\"],\n \"aria-multiline\": Bool,\n \"aria-multiselectable\": Bool,\n \"aria-owns\": null,\n \"aria-posinset\": null,\n \"aria-pressed\": [\"true\", \"false\", \"mixed\", \"undefined\"],\n \"aria-readonly\": Bool,\n \"aria-relevant\": null,\n \"aria-required\": Bool,\n \"aria-selected\": [\"true\", \"false\", \"undefined\"],\n \"aria-setsize\": null,\n \"aria-sort\": [\"ascending\", \"descending\", \"none\", \"other\"],\n \"aria-valuemax\": null,\n \"aria-valuemin\": null,\n \"aria-valuenow\": null,\n \"aria-valuetext\": null\n};\nconst AllTags = /*@__PURE__*/Object.keys(Tags);\nconst GlobalAttrNames = /*@__PURE__*/Object.keys(GlobalAttrs);\nfunction elementName(doc, tree, max = doc.length) {\n if (!tree)\n return \"\";\n let tag = tree.firstChild;\n let name = tag && tag.getChild(\"TagName\");\n return name ? doc.sliceString(name.from, Math.min(name.to, max)) : \"\";\n}\nfunction findParentElement(tree, skip = false) {\n for (let cur = tree.parent; cur; cur = cur.parent)\n if (cur.name == \"Element\") {\n if (skip)\n skip = false;\n else\n return cur;\n }\n return null;\n}\nfunction allowedChildren(doc, tree) {\n let parentInfo = Tags[elementName(doc, findParentElement(tree, true))];\n return (parentInfo === null || parentInfo === void 0 ? void 0 : parentInfo.children) || AllTags;\n}\nfunction openTags(doc, tree) {\n let open = [];\n for (let parent = tree; parent = findParentElement(parent);) {\n let tagName = elementName(doc, parent);\n if (tagName && parent.lastChild.name == \"CloseTag\")\n break;\n if (tagName && open.indexOf(tagName) < 0 && (tree.name == \"EndTag\" || tree.from >= parent.firstChild.to))\n open.push(tagName);\n }\n return open;\n}\nconst identifier = /^[:\\-\\.\\w\\u00b7-\\uffff]+$/;\nfunction completeTag(state, tree, from, to) {\n let end = /\\s*>/.test(state.sliceDoc(to, to + 5)) ? \"\" : \">\";\n return { from, to,\n options: allowedChildren(state.doc, tree).map(tagName => ({ label: tagName, type: \"type\" })).concat(openTags(state.doc, tree).map((tag, i) => ({ label: \"/\" + tag, apply: \"/\" + tag + end, type: \"type\", boost: 99 - i }))),\n span: /^\\/?[:\\-\\.\\w\\u00b7-\\uffff]*$/ };\n}\nfunction completeCloseTag(state, tree, from, to) {\n let end = /\\s*>/.test(state.sliceDoc(to, to + 5)) ? \"\" : \">\";\n return { from, to,\n options: openTags(state.doc, tree).map((tag, i) => ({ label: tag, apply: tag + end, type: \"type\", boost: 99 - i })),\n span: identifier };\n}\nfunction completeStartTag(state, tree, pos) {\n let options = [], level = 0;\n for (let tagName of allowedChildren(state.doc, tree))\n options.push({ label: \"<\" + tagName, type: \"type\" });\n for (let open of openTags(state.doc, tree))\n options.push({ label: \"\", type: \"type\", boost: 99 - level++ });\n return { from: pos, to: pos, options, span: /^<\\/?[:\\-\\.\\w\\u00b7-\\uffff]*$/ };\n}\nfunction completeAttrName(state, tree, from, to) {\n let elt = findParentElement(tree), info = elt ? Tags[elementName(state.doc, elt)] : null;\n let names = (info && info.attrs ? Object.keys(info.attrs).concat(GlobalAttrNames) : GlobalAttrNames);\n return { from, to,\n options: names.map(attrName => ({ label: attrName, type: \"property\" })),\n span: identifier };\n}\nfunction completeAttrValue(state, tree, from, to) {\n var _a;\n let nameNode = (_a = tree.parent) === null || _a === void 0 ? void 0 : _a.getChild(\"AttributeName\");\n let options = [], span = undefined;\n if (nameNode) {\n let attrName = state.sliceDoc(nameNode.from, nameNode.to);\n let attrs = GlobalAttrs[attrName];\n if (!attrs) {\n let elt = findParentElement(tree), info = elt ? Tags[elementName(state.doc, elt)] : null;\n attrs = (info === null || info === void 0 ? void 0 : info.attrs) && info.attrs[attrName];\n }\n if (attrs) {\n let base = state.sliceDoc(from, to).toLowerCase(), quoteStart = '\"', quoteEnd = '\"';\n if (/^['\"]/.test(base)) {\n span = base[0] == '\"' ? /^[^\"]*$/ : /^[^']*$/;\n quoteStart = \"\";\n quoteEnd = state.sliceDoc(to, to + 1) == base[0] ? \"\" : base[0];\n base = base.slice(1);\n from++;\n }\n else {\n span = /^[^\\s<>='\"]*$/;\n }\n for (let value of attrs)\n options.push({ label: value, apply: quoteStart + value + quoteEnd, type: \"constant\" });\n }\n }\n return { from, to, options, span };\n}\n/**\nHTML tag completion. Opens and closes tags and attributes in a\ncontext-aware way.\n*/\nfunction htmlCompletionSource(context) {\n let { state, pos } = context, around = syntaxTree(state).resolveInner(pos), tree = around.resolve(pos, -1);\n for (let scan = pos, before; around == tree && (before = tree.childBefore(scan));) {\n let last = before.lastChild;\n if (!last || !last.type.isError || last.from < last.to)\n break;\n around = tree = before;\n scan = last.from;\n }\n if (tree.name == \"TagName\") {\n return tree.parent && /CloseTag$/.test(tree.parent.name) ? completeCloseTag(state, tree, tree.from, pos)\n : completeTag(state, tree, tree.from, pos);\n }\n else if (tree.name == \"StartTag\") {\n return completeTag(state, tree, pos, pos);\n }\n else if (tree.name == \"StartCloseTag\" || tree.name == \"IncompleteCloseTag\") {\n return completeCloseTag(state, tree, pos, pos);\n }\n else if (context.explicit && (tree.name == \"OpenTag\" || tree.name == \"SelfClosingTag\") || tree.name == \"AttributeName\") {\n return completeAttrName(state, tree, tree.name == \"AttributeName\" ? tree.from : pos, pos);\n }\n else if (tree.name == \"Is\" || tree.name == \"AttributeValue\" || tree.name == \"UnquotedAttributeValue\") {\n return completeAttrValue(state, tree, tree.name == \"Is\" ? pos : tree.from, pos);\n }\n else if (context.explicit && (around.name == \"Element\" || around.name == \"Text\" || around.name == \"Document\")) {\n return completeStartTag(state, tree, pos);\n }\n else {\n return null;\n }\n}\n\n/**\nA language provider based on the [Lezer HTML\nparser](https://github.com/lezer-parser/html), extended with the\nJavaScript and CSS parsers to parse the content of `\n * ```\n *\n * Elements by their ID are made available in browsers on the `window` object.\n * Using a prefix prevents this from being a problem.\n * @property {string} [footnoteLabel='Footnotes']\n * Label to use for the footnotes section.\n * Affects screen reader users.\n * Change it if you’re authoring in a different language.\n * @property {string} [footnoteBackLabel='Back to content']\n * Label to use from backreferences back to their footnote call.\n * Affects screen reader users.\n * Change it if you’re authoring in a different language.\n * @property {Handlers} [handlers]\n * Object mapping mdast nodes to functions handling them\n * @property {Array} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast\n * @property {Handler} [unknownHandler]\n * Handler for all unknown nodes.\n *\n * @typedef {Record} Handlers\n * Map of node types to handlers\n * @typedef {HFunctionProps & HFunctionNoProps & HFields} H\n * Handle context\n */\n\nimport {u} from 'unist-builder'\nimport {visit} from 'unist-util-visit'\nimport {pointStart, pointEnd} from 'unist-util-position'\nimport {generated} from 'unist-util-generated'\nimport {definitions} from 'mdast-util-definitions'\nimport {one} from './traverse.js'\nimport {footer} from './footer.js'\nimport {handlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Factory to transform.\n * @param {MdastNode} tree mdast node\n * @param {Options} [options] Configuration\n * @returns {H} `h` function\n */\nfunction factory(tree, options) {\n const settings = options || {}\n const dangerous = settings.allowDangerousHtml || false\n /** @type {Record} */\n const footnoteById = {}\n\n h.dangerous = dangerous\n h.clobberPrefix =\n settings.clobberPrefix === undefined || settings.clobberPrefix === null\n ? 'user-content-'\n : settings.clobberPrefix\n h.footnoteLabel = settings.footnoteLabel || 'Footnotes'\n h.footnoteBackLabel = settings.footnoteBackLabel || 'Back to content'\n h.definition = definitions(tree)\n h.footnoteById = footnoteById\n /** @type {Array} */\n h.footnoteOrder = []\n /** @type {Record} */\n h.footnoteCounts = {}\n h.augment = augment\n h.handlers = {...handlers, ...settings.handlers}\n h.unknownHandler = settings.unknownHandler\n h.passThrough = settings.passThrough\n\n visit(tree, 'footnoteDefinition', (definition) => {\n const id = String(definition.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: .\n if (!own.call(footnoteById, id)) {\n footnoteById[id] = definition\n }\n })\n\n // @ts-expect-error Hush, it’s fine!\n return h\n\n /**\n * Finalise the created `right`, a hast node, from `left`, an mdast node.\n * @param {(NodeWithData|PositionLike)?} left\n * @param {Content} right\n * @returns {Content}\n */\n function augment(left, right) {\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (left && 'data' in left && left.data) {\n /** @type {Data} */\n const data = left.data\n\n if (data.hName) {\n if (right.type !== 'element') {\n right = {\n type: 'element',\n tagName: '',\n properties: {},\n children: []\n }\n }\n\n right.tagName = data.hName\n }\n\n if (right.type === 'element' && data.hProperties) {\n right.properties = {...right.properties, ...data.hProperties}\n }\n\n if ('children' in right && right.children && data.hChildren) {\n right.children = data.hChildren\n }\n }\n\n if (left) {\n const ctx = 'type' in left ? left : {position: left}\n\n if (!generated(ctx)) {\n right.position = {start: pointStart(ctx), end: pointEnd(ctx)}\n }\n }\n\n return right\n }\n\n /**\n * Create an element for `node`.\n *\n * @type {HFunctionProps}\n */\n function h(node, tagName, props, children) {\n if (Array.isArray(props)) {\n children = props\n props = {}\n }\n\n // @ts-expect-error augmenting an element yields an element.\n return augment(node, {\n type: 'element',\n tagName,\n properties: props || {},\n children: children || []\n })\n }\n}\n\n/**\n * Transform `tree` (an mdast node) to a hast node.\n *\n * @param {MdastNode} tree mdast node\n * @param {Options} [options] Configuration\n * @returns {HastNode|null|undefined} hast node\n */\nexport function toHast(tree, options) {\n const h = factory(tree, options)\n const node = one(h, tree, null)\n const foot = footer(h)\n\n if (foot) {\n // @ts-expect-error If there’s a footer, there were definitions, meaning block\n // content.\n // So assume `node` is a parent node.\n node.children.push(u('text', '\\n'), foot)\n }\n\n return Array.isArray(node) ? {type: 'root', children: node} : node\n}\n\nexport {handlers as defaultHandlers} from './handlers/index.js'\n","/**\n * @typedef {Object} PointLike\n * @property {number} [line]\n * @property {number} [column]\n * @property {number} [offset]\n *\n * @typedef {Object} PositionLike\n * @property {PointLike} [start]\n * @property {PointLike} [end]\n *\n * @typedef {Object} NodeLike\n * @property {PositionLike} [position]\n */\n\n/**\n * Check if `node` is *generated*.\n *\n * @param {NodeLike} [node]\n * @returns {boolean}\n */\nexport function generated(node) {\n return (\n !node ||\n !node.position ||\n !node.position.start ||\n !node.position.start.line ||\n !node.position.start.column ||\n !node.position.end ||\n !node.position.end.line ||\n !node.position.end.column\n )\n}\n","/**\n * @typedef {import('mdast').BlockContent} BlockContent\n * @typedef {import('mdast').FootnoteDefinition} FootnoteDefinition\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('./index.js').H} H\n */\n\nimport {sanitizeUri} from 'micromark-util-sanitize-uri'\nimport {u} from 'unist-builder'\nimport {all} from './traverse.js'\nimport {wrap} from './wrap.js'\n\n/**\n * @param {H} h\n */\nexport function footer(h) {\n let index = -1\n /** @type {Array} */\n const listItems = []\n\n while (++index < h.footnoteOrder.length) {\n const def = h.footnoteById[h.footnoteOrder[index].toUpperCase()]\n\n if (!def) {\n continue\n }\n\n const content = all(h, def)\n const id = String(def.identifier)\n const safeId = sanitizeUri(id.toLowerCase())\n let referenceIndex = 0\n /** @type {Array} */\n const backReferences = []\n\n while (++referenceIndex <= h.footnoteCounts[id]) {\n /** @type {Element} */\n const backReference = {\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n h.clobberPrefix +\n 'fnref-' +\n safeId +\n (referenceIndex > 1 ? '-' + referenceIndex : ''),\n dataFootnoteBackref: true,\n className: ['data-footnote-backref'],\n ariaLabel: h.footnoteBackLabel\n },\n children: [{type: 'text', value: '↩'}]\n }\n\n if (referenceIndex > 1) {\n backReference.children.push({\n type: 'element',\n tagName: 'sup',\n children: [{type: 'text', value: String(referenceIndex)}]\n })\n }\n\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n backReferences.push(backReference)\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: h.clobberPrefix + 'fn-' + safeId},\n children: wrap(content, true)\n }\n\n if (def.position) {\n listItem.position = def.position\n }\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return null\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: 'h2',\n properties: {id: 'footnote-label', className: ['sr-only']},\n children: [u('text', h.footnoteLabel)]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} Options\n * @typedef {import('unified').Processor} Processor\n *\n * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n// Note: the `` overload doesn’t seem to work :'(\n\n/**\n * Plugin that turns markdown into HTML to support rehype.\n *\n * * If a destination processor is given, that processor runs with a new HTML\n * (hast) tree (bridge-mode).\n * As the given processor runs with a hast tree, and rehype plugins support\n * hast, that means rehype plugins can be used with the given processor.\n * The hast tree is discarded in the end.\n * It’s highly unlikely that you want to do this.\n * * The common case is to not pass a destination processor, in which case the\n * current processor continues running with a new HTML (hast) tree\n * (mutate-mode).\n * As the current processor continues with a hast tree, and rehype plugins\n * support hast, that means rehype plugins can be used after\n * `remark-rehype`.\n * It’s likely that this is what you want to do.\n *\n * @param destination\n * Optional unified processor.\n * @param options\n * Options passed to `mdast-util-to-hast`.\n */\nconst remarkRehype =\n /** @type {(import('unified').Plugin<[Processor, Options?]|[null|undefined, Options?]|[Options]|[], MdastRoot>)} */\n (\n function (destination, options) {\n return destination && 'run' in destination\n ? bridge(destination, options)\n : mutate(destination || options)\n }\n )\n\nexport default remarkRehype\n\n/**\n * Bridge-mode.\n * Runs the destination with the new hast tree.\n *\n * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}\n */\nfunction bridge(destination, options) {\n return (node, file, next) => {\n destination.run(toHast(node, options), file, (error) => {\n next(error)\n })\n }\n}\n\n/**\n * Mutate-mode.\n * Further plugins run on the hast tree.\n *\n * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}\n */\nfunction mutate(options) {\n // @ts-expect-error: assume a corresponding node is returned by `toHast`.\n return (node) => toHast(node, options)\n}\n","import {visit} from 'unist-util-visit'\n\n/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Element} Element\n *\n * @callback AllowElement\n * @param {Element} element\n * @param {number} index\n * @param {Element|Root} parent\n * @returns {boolean|undefined}\n *\n * @typedef Options\n * @property {Array} [allowedElements]\n * @property {Array} [disallowedElements=[]]\n * @property {AllowElement} [allowElement]\n * @property {boolean} [unwrapDisallowed=false]\n */\n\n/**\n * @type {import('unified').Plugin<[Options], Root>}\n */\nexport default function rehypeFilter(options) {\n if (options.allowedElements && options.disallowedElements) {\n throw new TypeError(\n 'Only one of `allowedElements` and `disallowedElements` should be defined'\n )\n }\n\n if (\n options.allowedElements ||\n options.disallowedElements ||\n options.allowElement\n ) {\n return (tree) => {\n visit(tree, 'element', (node, index, parent_) => {\n const parent = /** @type {Element|Root} */ (parent_)\n /** @type {boolean|undefined} */\n let remove\n\n if (options.allowedElements) {\n remove = !options.allowedElements.includes(node.tagName)\n } else if (options.disallowedElements) {\n remove = options.disallowedElements.includes(node.tagName)\n }\n\n if (!remove && options.allowElement && typeof index === 'number') {\n remove = !options.allowElement(node, index, parent)\n }\n\n if (remove && typeof index === 'number') {\n if (options.unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children)\n } else {\n parent.children.splice(index, 1)\n }\n\n return index\n }\n\n return undefined\n })\n }\n }\n}\n","const protocols = ['http', 'https', 'mailto', 'tel']\n\n/**\n * @param {string} uri\n * @returns {string}\n */\nexport function uriTransformer(uri) {\n const url = (uri || '').trim()\n const first = url.charAt(0)\n\n if (first === '#' || first === '/') {\n return url\n }\n\n const colon = url.indexOf(':')\n if (colon === -1) {\n return url\n }\n\n let index = -1\n\n while (++index < protocols.length) {\n const protocol = protocols[index]\n\n if (\n colon === protocol.length &&\n url.slice(0, protocol.length).toLowerCase() === protocol\n ) {\n return url\n }\n }\n\n index = url.indexOf('?')\n if (index !== -1 && colon > index) {\n return url\n }\n\n index = url.indexOf('#')\n if (index !== -1 && colon > index) {\n return url\n }\n\n // eslint-disable-next-line no-script-url\n return 'javascript:void(0)'\n}\n","/**\n * @param {unknown} thing\n * @returns {boolean}\n */\nexport function whitespace(thing) {\n /** @type {string} */\n var value =\n // @ts-ignore looks like a node.\n thing && typeof thing === 'object' && thing.type === 'text'\n ? // @ts-ignore looks like a text.\n thing.value || ''\n : thing\n\n // HTML whitespace expression.\n // See .\n return typeof value === 'string' && value.replace(/[ \\t\\n\\f\\r]/g, '') === ''\n}\n","export const hastToReact = {\n classId: 'classID',\n dataType: 'datatype',\n itemId: 'itemID',\n strokeDashArray: 'strokeDasharray',\n strokeDashOffset: 'strokeDashoffset',\n strokeLineCap: 'strokeLinecap',\n strokeLineJoin: 'strokeLinejoin',\n strokeMiterLimit: 'strokeMiterlimit',\n typeOf: 'typeof',\n xLinkActuate: 'xlinkActuate',\n xLinkArcRole: 'xlinkArcrole',\n xLinkHref: 'xlinkHref',\n xLinkRole: 'xlinkRole',\n xLinkShow: 'xlinkShow',\n xLinkTitle: 'xlinkTitle',\n xLinkType: 'xlinkType',\n xmlnsXLink: 'xmlnsXlink'\n}\n","/**\n * @template T\n * @typedef {import('react').ComponentType} ComponentType\n */\n\n/**\n * @template T\n * @typedef {import('react').ComponentPropsWithoutRef} ComponentPropsWithoutRef\n */\n\n/**\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('unist').Position} Position\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('property-information').Info} Info\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('./complex-types').ReactMarkdownProps} ReactMarkdownProps\n *\n * @typedef Raw\n * @property {'raw'} type\n * @property {string} value\n *\n * @typedef Context\n * @property {Options} options\n * @property {Schema} schema\n * @property {number} listDepth\n *\n * @callback TransformLink\n * @param {string} href\n * @param {Array} children\n * @param {string?} title\n * @returns {string}\n *\n * @callback TransformImage\n * @param {string} src\n * @param {string} alt\n * @param {string?} title\n * @returns {string}\n *\n * @typedef {import('react').HTMLAttributeAnchorTarget} TransformLinkTargetType\n *\n * @callback TransformLinkTarget\n * @param {string} href\n * @param {Array} children\n * @param {string?} title\n * @returns {TransformLinkTargetType|undefined}\n *\n * @typedef {keyof JSX.IntrinsicElements} ReactMarkdownNames\n *\n * To do: is `data-sourcepos` typeable?\n *\n * @typedef {ComponentPropsWithoutRef<'code'> & ReactMarkdownProps & {inline?: boolean}} CodeProps\n * @typedef {ComponentPropsWithoutRef<'h1'> & ReactMarkdownProps & {level: number}} HeadingProps\n * @typedef {ComponentPropsWithoutRef<'li'> & ReactMarkdownProps & {checked: boolean|null, index: number, ordered: boolean}} LiProps\n * @typedef {ComponentPropsWithoutRef<'ol'> & ReactMarkdownProps & {depth: number, ordered: true}} OrderedListProps\n * @typedef {ComponentPropsWithoutRef<'table'> & ReactMarkdownProps & {style?: Record, isHeader: boolean}} TableCellProps\n * @typedef {ComponentPropsWithoutRef<'tr'> & ReactMarkdownProps & {isHeader: boolean}} TableRowProps\n * @typedef {ComponentPropsWithoutRef<'ul'> & ReactMarkdownProps & {depth: number, ordered: false}} UnorderedListProps\n *\n * @typedef {ComponentType} CodeComponent\n * @typedef {ComponentType} HeadingComponent\n * @typedef {ComponentType} LiComponent\n * @typedef {ComponentType} OrderedListComponent\n * @typedef {ComponentType} TableCellComponent\n * @typedef {ComponentType} TableRowComponent\n * @typedef {ComponentType} UnorderedListComponent\n *\n * @typedef SpecialComponents\n * @property {CodeComponent|ReactMarkdownNames} code\n * @property {HeadingComponent|ReactMarkdownNames} h1\n * @property {HeadingComponent|ReactMarkdownNames} h2\n * @property {HeadingComponent|ReactMarkdownNames} h3\n * @property {HeadingComponent|ReactMarkdownNames} h4\n * @property {HeadingComponent|ReactMarkdownNames} h5\n * @property {HeadingComponent|ReactMarkdownNames} h6\n * @property {LiComponent|ReactMarkdownNames} li\n * @property {OrderedListComponent|ReactMarkdownNames} ol\n * @property {TableCellComponent|ReactMarkdownNames} td\n * @property {TableCellComponent|ReactMarkdownNames} th\n * @property {TableRowComponent|ReactMarkdownNames} tr\n * @property {UnorderedListComponent|ReactMarkdownNames} ul\n *\n * @typedef {Partial & SpecialComponents>} Components\n *\n * @typedef Options\n * @property {boolean} [sourcePos=false]\n * @property {boolean} [rawSourcePos=false]\n * @property {boolean} [skipHtml=false]\n * @property {boolean} [includeElementIndex=false]\n * @property {null|false|TransformLink} [transformLinkUri]\n * @property {TransformImage} [transformImageUri]\n * @property {TransformLinkTargetType|TransformLinkTarget} [linkTarget]\n * @property {Components} [components]\n */\n\nimport React from 'react'\nimport ReactIs from 'react-is'\nimport {whitespace} from 'hast-util-whitespace'\nimport {svg, find, hastToReact} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {stringify as commas} from 'comma-separated-tokens'\nimport style from 'style-to-object'\n\nconst own = {}.hasOwnProperty\n\n// The table-related elements that must not contain whitespace text according\n// to React.\nconst tableElements = new Set(['table', 'thead', 'tbody', 'tfoot', 'tr'])\n\n/**\n * @param {Context} context\n * @param {Element|Root} node\n */\nexport function childrenToReact(context, node) {\n /** @type {Array} */\n const children = []\n let childIndex = -1\n /** @type {Comment|Doctype|Element|Raw|Text} */\n let child\n\n while (++childIndex < node.children.length) {\n child = node.children[childIndex]\n\n if (child.type === 'element') {\n children.push(toReact(context, child, childIndex, node))\n } else if (child.type === 'text') {\n // Currently, a warning is triggered by react for *any* white space in\n // tables.\n // So we drop it.\n // See: .\n // See: .\n // See: .\n // See: .\n if (\n node.type !== 'element' ||\n !tableElements.has(node.tagName) ||\n !whitespace(child)\n ) {\n children.push(child.value)\n }\n } else if (child.type === 'raw' && !context.options.skipHtml) {\n // Default behavior is to show (encoded) HTML.\n children.push(child.value)\n }\n }\n\n return children\n}\n\n/**\n * @param {Context} context\n * @param {Element} node\n * @param {number} index\n * @param {Element|Root} parent\n */\nfunction toReact(context, node, index, parent) {\n const options = context.options\n const parentSchema = context.schema\n /** @type {ReactMarkdownNames} */\n // @ts-expect-error assume a known HTML/SVG element.\n const name = node.tagName\n /** @type {Record} */\n const properties = {}\n let schema = parentSchema\n /** @type {string} */\n let property\n\n if (parentSchema.space === 'html' && name === 'svg') {\n schema = svg\n context.schema = schema\n }\n\n if (node.properties) {\n for (property in node.properties) {\n if (own.call(node.properties, property)) {\n addProperty(properties, property, node.properties[property], context)\n }\n }\n }\n\n if (name === 'ol' || name === 'ul') {\n context.listDepth++\n }\n\n const children = childrenToReact(context, node)\n\n if (name === 'ol' || name === 'ul') {\n context.listDepth--\n }\n\n // Restore parent schema.\n context.schema = parentSchema\n\n // Nodes created by plugins do not have positional info, in which case we use\n // an object that matches the position interface.\n const position = node.position || {\n start: {line: null, column: null, offset: null},\n end: {line: null, column: null, offset: null}\n }\n const component =\n options.components && own.call(options.components, name)\n ? options.components[name]\n : name\n const basic = typeof component === 'string' || component === React.Fragment\n\n if (!ReactIs.isValidElementType(component)) {\n throw new TypeError(\n `Component for name \\`${name}\\` not defined or is not renderable`\n )\n }\n\n properties.key = [\n name,\n position.start.line,\n position.start.column,\n index\n ].join('-')\n\n if (name === 'a' && options.linkTarget) {\n properties.target =\n typeof options.linkTarget === 'function'\n ? options.linkTarget(\n String(properties.href || ''),\n node.children,\n typeof properties.title === 'string' ? properties.title : null\n )\n : options.linkTarget\n }\n\n if (name === 'a' && options.transformLinkUri) {\n properties.href = options.transformLinkUri(\n String(properties.href || ''),\n node.children,\n typeof properties.title === 'string' ? properties.title : null\n )\n }\n\n if (\n !basic &&\n name === 'code' &&\n parent.type === 'element' &&\n parent.tagName !== 'pre'\n ) {\n properties.inline = true\n }\n\n if (\n !basic &&\n (name === 'h1' ||\n name === 'h2' ||\n name === 'h3' ||\n name === 'h4' ||\n name === 'h5' ||\n name === 'h6')\n ) {\n properties.level = Number.parseInt(name.charAt(1), 10)\n }\n\n if (name === 'img' && options.transformImageUri) {\n properties.src = options.transformImageUri(\n String(properties.src || ''),\n String(properties.alt || ''),\n typeof properties.title === 'string' ? properties.title : null\n )\n }\n\n if (!basic && name === 'li' && parent.type === 'element') {\n const input = getInputElement(node)\n properties.checked =\n input && input.properties ? Boolean(input.properties.checked) : null\n properties.index = getElementsBeforeCount(parent, node)\n properties.ordered = parent.tagName === 'ol'\n }\n\n if (!basic && (name === 'ol' || name === 'ul')) {\n properties.ordered = name === 'ol'\n properties.depth = context.listDepth\n }\n\n if (name === 'td' || name === 'th') {\n if (properties.align) {\n if (!properties.style) properties.style = {}\n // @ts-expect-error assume `style` is an object\n properties.style.textAlign = properties.align\n delete properties.align\n }\n\n if (!basic) {\n properties.isHeader = name === 'th'\n }\n }\n\n if (!basic && name === 'tr' && parent.type === 'element') {\n properties.isHeader = Boolean(parent.tagName === 'thead')\n }\n\n // If `sourcePos` is given, pass source information (line/column info from markdown source).\n if (options.sourcePos) {\n properties['data-sourcepos'] = flattenPosition(position)\n }\n\n if (!basic && options.rawSourcePos) {\n properties.sourcePosition = node.position\n }\n\n // If `includeElementIndex` is given, pass node index info to components.\n if (!basic && options.includeElementIndex) {\n properties.index = getElementsBeforeCount(parent, node)\n properties.siblingCount = getElementsBeforeCount(parent)\n }\n\n if (!basic) {\n properties.node = node\n }\n\n // Ensure no React warnings are emitted for void elements w/ children.\n return children.length > 0\n ? React.createElement(component, properties, children)\n : React.createElement(component, properties)\n}\n\n/**\n * @param {Element|Root} node\n * @returns {Element?}\n */\nfunction getInputElement(node) {\n let index = -1\n\n while (++index < node.children.length) {\n const child = node.children[index]\n\n if (child.type === 'element' && child.tagName === 'input') {\n return child\n }\n }\n\n return null\n}\n\n/**\n * @param {Element|Root} parent\n * @param {Element} [node]\n * @returns {number}\n */\nfunction getElementsBeforeCount(parent, node) {\n let index = -1\n let count = 0\n\n while (++index < parent.children.length) {\n if (parent.children[index] === node) break\n if (parent.children[index].type === 'element') count++\n }\n\n return count\n}\n\n/**\n * @param {Record} props\n * @param {string} prop\n * @param {unknown} value\n * @param {Context} ctx\n */\nfunction addProperty(props, prop, value, ctx) {\n const info = find(ctx.schema, prop)\n let result = value\n\n // Ignore nullish and `NaN` values.\n // eslint-disable-next-line no-self-compare\n if (result === null || result === undefined || result !== result) {\n return\n }\n\n // Accept `array`.\n // Most props are space-separated.\n if (Array.isArray(result)) {\n result = info.commaSeparated ? commas(result) : spaces(result)\n }\n\n if (info.property === 'style' && typeof result === 'string') {\n result = parseStyle(result)\n }\n\n if (info.space && info.property) {\n props[\n own.call(hastToReact, info.property)\n ? hastToReact[info.property]\n : info.property\n ] = result\n } else if (info.attribute) {\n props[info.attribute] = result\n }\n}\n\n/**\n * @param {string} value\n * @returns {Record}\n */\nfunction parseStyle(value) {\n /** @type {Record} */\n const result = {}\n\n try {\n style(value, iterator)\n } catch {\n // Silent.\n }\n\n return result\n\n /**\n * @param {string} name\n * @param {string} v\n */\n function iterator(name, v) {\n const k = name.slice(0, 4) === '-ms-' ? `ms-${name.slice(4)}` : name\n result[k.replace(/-([a-z])/g, styleReplacer)] = v\n }\n}\n\n/**\n * @param {unknown} _\n * @param {string} $1\n */\nfunction styleReplacer(_, $1) {\n return $1.toUpperCase()\n}\n\n/**\n * @param {Position|{start: {line: null, column: null, offset: null}, end: {line: null, column: null, offset: null}}} pos\n * @returns {string}\n */\nfunction flattenPosition(pos) {\n return [\n pos.start.line,\n ':',\n pos.start.column,\n '-',\n pos.end.line,\n ':',\n pos.end.column\n ]\n .map((d) => String(d))\n .join('')\n}\n","/**\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('react').ReactElement<{}>} ReactElement\n * @typedef {import('unified').PluggableList} PluggableList\n * @typedef {import('hast').Root} Root\n * @typedef {import('./rehype-filter.js').Options} FilterOptions\n * @typedef {import('./ast-to-react.js').Options} TransformOptions\n *\n * @typedef CoreOptions\n * @property {string} children\n *\n * @typedef PluginOptions\n * @property {PluggableList} [remarkPlugins=[]]\n * @property {PluggableList} [rehypePlugins=[]]\n * @property {import('remark-rehype').Options} [remarkRehypeOptions={}]\n *\n * @typedef LayoutOptions\n * @property {string} [className]\n *\n * @typedef {CoreOptions & PluginOptions & LayoutOptions & FilterOptions & TransformOptions} ReactMarkdownOptions\n *\n * @typedef Deprecation\n * @property {string} id\n * @property {string} [to]\n */\n\nimport React from 'react'\nimport {VFile} from 'vfile'\nimport {unified} from 'unified'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport PropTypes from 'prop-types'\nimport {html} from 'property-information'\nimport rehypeFilter from './rehype-filter.js'\nimport {uriTransformer} from './uri-transformer.js'\nimport {childrenToReact} from './ast-to-react.js'\n\nconst own = {}.hasOwnProperty\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {Record} */\nconst deprecated = {\n plugins: {to: 'plugins', id: 'change-plugins-to-remarkplugins'},\n renderers: {to: 'components', id: 'change-renderers-to-components'},\n astPlugins: {id: 'remove-buggy-html-in-markdown-parser'},\n allowDangerousHtml: {id: 'remove-buggy-html-in-markdown-parser'},\n escapeHtml: {id: 'remove-buggy-html-in-markdown-parser'},\n source: {to: 'children', id: 'change-source-to-children'},\n allowNode: {\n to: 'allowElement',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n allowedTypes: {\n to: 'allowedElements',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n disallowedTypes: {\n to: 'disallowedElements',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n includeNodeIndex: {\n to: 'includeElementIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n }\n}\n\n/**\n * React component to render markdown.\n *\n * @param {ReactMarkdownOptions} options\n * @returns {ReactElement}\n */\nexport function ReactMarkdown(options) {\n for (const key in deprecated) {\n if (own.call(deprecated, key) && own.call(options, key)) {\n const deprecation = deprecated[key]\n console.warn(\n `[react-markdown] Warning: please ${\n deprecation.to ? `use \\`${deprecation.to}\\` instead of` : 'remove'\n } \\`${key}\\` (see <${changelog}#${deprecation.id}> for more info)`\n )\n delete deprecated[key]\n }\n }\n\n const processor = unified()\n .use(remarkParse)\n .use(options.remarkPlugins || [])\n .use(remarkRehype, {\n ...options.remarkRehypeOptions,\n allowDangerousHtml: true\n })\n .use(options.rehypePlugins || [])\n .use(rehypeFilter, options)\n\n const file = new VFile()\n\n if (typeof options.children === 'string') {\n file.value = options.children\n } else if (options.children !== undefined && options.children !== null) {\n console.warn(\n `[react-markdown] Warning: please pass a string as \\`children\\` (not: \\`${options.children}\\`)`\n )\n }\n\n const hastNode = processor.runSync(processor.parse(file), file)\n\n if (hastNode.type !== 'root') {\n throw new TypeError('Expected a `root` node')\n }\n\n /** @type {ReactElement} */\n let result = React.createElement(\n React.Fragment,\n {},\n childrenToReact({options, schema: html, listDepth: 0}, hastNode)\n )\n\n if (options.className) {\n result = React.createElement('div', {className: options.className}, result)\n }\n\n return result\n}\n\nReactMarkdown.defaultProps = {transformLinkUri: uriTransformer}\n\nReactMarkdown.propTypes = {\n // Core options:\n children: PropTypes.string,\n // Layout options:\n className: PropTypes.string,\n // Filter options:\n allowElement: PropTypes.func,\n allowedElements: PropTypes.arrayOf(PropTypes.string),\n disallowedElements: PropTypes.arrayOf(PropTypes.string),\n unwrapDisallowed: PropTypes.bool,\n // Plugin options:\n remarkPlugins: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.object, PropTypes.func]))\n ])\n ),\n rehypePlugins: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.object, PropTypes.func]))\n ])\n ),\n // Transform options:\n sourcePos: PropTypes.bool,\n rawSourcePos: PropTypes.bool,\n skipHtml: PropTypes.bool,\n includeElementIndex: PropTypes.bool,\n transformLinkUri: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n linkTarget: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n transformImageUri: PropTypes.func,\n components: PropTypes.object\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiControl,\n asciiDigit,\n markdownLineEndingOrSpace,\n markdownLineEnding,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\nconst www = {\n tokenize: tokenizeWww,\n partial: true\n}\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n}\nconst path = {\n tokenize: tokenizePath,\n partial: true\n}\nconst punctuation = {\n tokenize: tokenizePunctuation,\n partial: true\n}\nconst namedCharacterReference = {\n tokenize: tokenizeNamedCharacterReference,\n partial: true\n}\nconst wwwAutolink = {\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n}\nconst httpAutolink = {\n tokenize: tokenizeHttpAutolink,\n previous: previousHttp\n}\nconst emailAutolink = {\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n}\n/** @type {ConstructRecord} */\n\nconst text = {}\n/** @type {Extension} */\n\nexport const gfmAutolinkLiteral = {\n text\n}\nlet code = 48 // Add alphanumerics.\n\nwhile (code < 123) {\n text[code] = emailAutolink\n code++\n if (code === 58) code = 65\n else if (code === 91) code = 97\n}\n\ntext[43] = emailAutolink\ntext[45] = emailAutolink\ntext[46] = emailAutolink\ntext[95] = emailAutolink\ntext[72] = [emailAutolink, httpAutolink]\ntext[104] = [emailAutolink, httpAutolink]\ntext[87] = [emailAutolink, wwwAutolink]\ntext[119] = [emailAutolink, wwwAutolink]\n/** @type {Tokenizer} */\n\nfunction tokenizeEmailAutolink(effects, ok, nok) {\n const self = this\n /** @type {boolean} */\n\n let hasDot\n /** @type {boolean|undefined} */\n\n let hasDigitInLastSegment\n return start\n /** @type {State} */\n\n function start(code) {\n if (\n !gfmAtext(code) ||\n !previousEmail(self.previous) ||\n previousUnbalanced(self.events)\n ) {\n return nok(code)\n }\n\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkEmail')\n return atext(code)\n }\n /** @type {State} */\n\n function atext(code) {\n if (gfmAtext(code)) {\n effects.consume(code)\n return atext\n }\n\n if (code === 64) {\n effects.consume(code)\n return label\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function label(code) {\n if (code === 46) {\n return effects.check(punctuation, done, dotContinuation)(code)\n }\n\n if (code === 45 || code === 95) {\n return effects.check(punctuation, nok, dashOrUnderscoreContinuation)(code)\n }\n\n if (asciiAlphanumeric(code)) {\n if (!hasDigitInLastSegment && asciiDigit(code)) {\n hasDigitInLastSegment = true\n }\n\n effects.consume(code)\n return label\n }\n\n return done(code)\n }\n /** @type {State} */\n\n function dotContinuation(code) {\n effects.consume(code)\n hasDot = true\n hasDigitInLastSegment = undefined\n return label\n }\n /** @type {State} */\n\n function dashOrUnderscoreContinuation(code) {\n effects.consume(code)\n return afterDashOrUnderscore\n }\n /** @type {State} */\n\n function afterDashOrUnderscore(code) {\n if (code === 46) {\n return effects.check(punctuation, nok, dotContinuation)(code)\n }\n\n return label(code)\n }\n /** @type {State} */\n\n function done(code) {\n if (hasDot && !hasDigitInLastSegment) {\n effects.exit('literalAutolinkEmail')\n effects.exit('literalAutolink')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeWwwAutolink(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n if (\n (code !== 87 && code !== 119) ||\n !previousWww(self.previous) ||\n previousUnbalanced(self.events)\n ) {\n return nok(code)\n }\n\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkWww') // For `www.` we check instead of attempt, because when it matches, GH\n // treats it as part of a domain (yes, it says a valid domain must come\n // after `www.`, but that’s not how it’s implemented by them).\n\n return effects.check(\n www,\n effects.attempt(domain, effects.attempt(path, done), nok),\n nok\n )(code)\n }\n /** @type {State} */\n\n function done(code) {\n effects.exit('literalAutolinkWww')\n effects.exit('literalAutolink')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHttpAutolink(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n if (\n (code !== 72 && code !== 104) ||\n !previousHttp(self.previous) ||\n previousUnbalanced(self.events)\n ) {\n return nok(code)\n }\n\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkHttp')\n effects.consume(code)\n return t1\n }\n /** @type {State} */\n\n function t1(code) {\n if (code === 84 || code === 116) {\n effects.consume(code)\n return t2\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function t2(code) {\n if (code === 84 || code === 116) {\n effects.consume(code)\n return p\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function p(code) {\n if (code === 80 || code === 112) {\n effects.consume(code)\n return s\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function s(code) {\n if (code === 83 || code === 115) {\n effects.consume(code)\n return colon\n }\n\n return colon(code)\n }\n /** @type {State} */\n\n function colon(code) {\n if (code === 58) {\n effects.consume(code)\n return slash1\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function slash1(code) {\n if (code === 47) {\n effects.consume(code)\n return slash2\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function slash2(code) {\n if (code === 47) {\n effects.consume(code)\n return after\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n return code === null ||\n asciiControl(code) ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)\n ? nok(code)\n : effects.attempt(domain, effects.attempt(path, done), nok)(code)\n }\n /** @type {State} */\n\n function done(code) {\n effects.exit('literalAutolinkHttp')\n effects.exit('literalAutolink')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeWww(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.consume(code)\n return w2\n }\n /** @type {State} */\n\n function w2(code) {\n if (code === 87 || code === 119) {\n effects.consume(code)\n return w3\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function w3(code) {\n if (code === 87 || code === 119) {\n effects.consume(code)\n return dot\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function dot(code) {\n if (code === 46) {\n effects.consume(code)\n return after\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? nok(code) : ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDomain(effects, ok, nok) {\n /** @type {boolean|undefined} */\n let hasUnderscoreInLastSegment\n /** @type {boolean|undefined} */\n\n let hasUnderscoreInLastLastSegment\n return domain\n /** @type {State} */\n\n function domain(code) {\n if (code === 38) {\n return effects.check(\n namedCharacterReference,\n done,\n punctuationContinuation\n )(code)\n }\n\n if (code === 46 || code === 95) {\n return effects.check(punctuation, done, punctuationContinuation)(code)\n } // GH documents that only alphanumerics (other than `-`, `.`, and `_`) can\n // occur, which sounds like ASCII only, but they also support `www.點看.com`,\n // so that’s Unicode.\n // Instead of some new production for Unicode alphanumerics, markdown\n // already has that for Unicode punctuation and whitespace, so use those.\n\n if (\n code === null ||\n asciiControl(code) ||\n unicodeWhitespace(code) ||\n (code !== 45 && unicodePunctuation(code))\n ) {\n return done(code)\n }\n\n effects.consume(code)\n return domain\n }\n /** @type {State} */\n\n function punctuationContinuation(code) {\n if (code === 46) {\n hasUnderscoreInLastLastSegment = hasUnderscoreInLastSegment\n hasUnderscoreInLastSegment = undefined\n effects.consume(code)\n return domain\n }\n\n if (code === 95) hasUnderscoreInLastSegment = true\n effects.consume(code)\n return domain\n }\n /** @type {State} */\n\n function done(code) {\n if (!hasUnderscoreInLastLastSegment && !hasUnderscoreInLastSegment) {\n return ok(code)\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizePath(effects, ok) {\n let balance = 0\n return inPath\n /** @type {State} */\n\n function inPath(code) {\n if (code === 38) {\n return effects.check(\n namedCharacterReference,\n ok,\n continuedPunctuation\n )(code)\n }\n\n if (code === 40) {\n balance++\n }\n\n if (code === 41) {\n return effects.check(\n punctuation,\n parenAtPathEnd,\n continuedPunctuation\n )(code)\n }\n\n if (pathEnd(code)) {\n return ok(code)\n }\n\n if (trailingPunctuation(code)) {\n return effects.check(punctuation, ok, continuedPunctuation)(code)\n }\n\n effects.consume(code)\n return inPath\n }\n /** @type {State} */\n\n function continuedPunctuation(code) {\n effects.consume(code)\n return inPath\n }\n /** @type {State} */\n\n function parenAtPathEnd(code) {\n balance--\n return balance < 0 ? ok(code) : continuedPunctuation(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeNamedCharacterReference(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.consume(code)\n return inside\n }\n /** @type {State} */\n\n function inside(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return inside\n }\n\n if (code === 59) {\n effects.consume(code)\n return after\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n // If the named character reference is followed by the end of the path, it’s\n // not continued punctuation.\n return pathEnd(code) ? ok(code) : nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizePunctuation(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.consume(code)\n return after\n }\n /** @type {State} */\n\n function after(code) {\n // Check the next.\n if (trailingPunctuation(code)) {\n effects.consume(code)\n return after\n } // If the punctuation marker is followed by the end of the path, it’s not\n // continued punctuation.\n\n return pathEnd(code) ? ok(code) : nok(code)\n }\n}\n/**\n * @param {Code} code\n * @returns {boolean}\n */\n\nfunction trailingPunctuation(code) {\n return (\n code === 33 ||\n code === 34 ||\n code === 39 ||\n code === 41 ||\n code === 42 ||\n code === 44 ||\n code === 46 ||\n code === 58 ||\n code === 59 ||\n code === 60 ||\n code === 63 ||\n code === 95 ||\n code === 126\n )\n}\n/**\n * @param {Code} code\n * @returns {boolean}\n */\n\nfunction pathEnd(code) {\n return code === null || code === 60 || markdownLineEndingOrSpace(code)\n}\n/**\n * @param {Code} code\n * @returns {boolean}\n */\n\nfunction gfmAtext(code) {\n return (\n code === 43 ||\n code === 45 ||\n code === 46 ||\n code === 95 ||\n asciiAlphanumeric(code)\n )\n}\n/** @type {Previous} */\n\nfunction previousWww(code) {\n return (\n code === null ||\n code === 40 ||\n code === 42 ||\n code === 95 ||\n code === 126 ||\n markdownLineEndingOrSpace(code)\n )\n}\n/** @type {Previous} */\n\nfunction previousHttp(code) {\n return code === null || !asciiAlpha(code)\n}\n/** @type {Previous} */\n\nfunction previousEmail(code) {\n return code !== 47 && previousHttp(code)\n}\n/**\n * @param {Array} events\n * @returns {boolean}\n */\n\nfunction previousUnbalanced(events) {\n let index = events.length\n let result = false\n\n while (index--) {\n const token = events[index][1]\n\n if (\n (token.type === 'labelLink' || token.type === 'labelImage') &&\n !token._balanced\n ) {\n result = true\n break\n } // @ts-expect-error If we’ve seen this token, and it was marked as not\n // having any unbalanced bracket before it, we can exit.\n\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false\n break\n }\n }\n\n if (events.length > 0 && !result) {\n // @ts-expect-error Mark the last token as “walked into” w/o finding\n // anything.\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true\n }\n\n return result\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {blankLine} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace\n} from 'micromark-util-character'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n}\n/**\n * @returns {Extension}\n */\n\nexport function gfmFootnote() {\n /** @type {Extension} */\n return {\n document: {\n [91]: {\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [91]: {\n tokenize: tokenizeGfmFootnoteCall\n },\n [93]: {\n add: 'after',\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizePotentialGfmFootnoteCall(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Array} */\n // @ts-expect-error It’s fine!\n\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n /** @type {Token} */\n\n let labelStart // Find an opening.\n\n while (index--) {\n const token = self.events[index][1]\n\n if (token.type === 'labelImage') {\n labelStart = token\n break\n } // Exit if we’ve walked far enough.\n\n if (\n token.type === 'gfmFootnoteCall' ||\n token.type === 'labelLink' ||\n token.type === 'label' ||\n token.type === 'image' ||\n token.type === 'link'\n ) {\n break\n }\n }\n\n return start\n /** @type {State} */\n\n function start(code) {\n if (!labelStart || !labelStart._balanced) {\n return nok(code)\n }\n\n const id = normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n\n if (id.charCodeAt(0) !== 94 || !defined.includes(id.slice(1))) {\n return nok(code)\n }\n\n effects.enter('gfmFootnoteCallLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallLabelMarker')\n return ok(code)\n }\n}\n/** @type {Resolver} */\n\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length\n /** @type {Token|undefined} */\n\n let labelStart // Find an opening.\n\n while (index--) {\n if (\n events[index][1].type === 'labelImage' &&\n events[index][0] === 'enter'\n ) {\n labelStart = events[index][1]\n break\n }\n }\n\n // Change the `labelImageMarker` to a `data`.\n events[index + 1][1].type = 'data'\n events[index + 3][1].type = 'gfmFootnoteCallLabelMarker' // The whole (without `!`):\n\n const call = {\n type: 'gfmFootnoteCall',\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n } // The `^` marker\n\n const marker = {\n type: 'gfmFootnoteCallMarker',\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n } // Increment the end 1 character.\n\n marker.end.column++\n marker.end.offset++\n marker.end._bufferIndex++\n const string = {\n type: 'gfmFootnoteCallString',\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n }\n const chunk = {\n type: 'chunkString',\n contentType: 'string',\n start: Object.assign({}, string.start),\n end: Object.assign({}, string.end)\n }\n /** @type {Array} */\n\n const replacement = [\n // Take the `labelImageMarker` (now `data`, the `!`)\n events[index + 1],\n events[index + 2],\n ['enter', call, context], // The `[`\n events[index + 3],\n events[index + 4], // The `^`.\n ['enter', marker, context],\n ['exit', marker, context], // Everything in between.\n ['enter', string, context],\n ['enter', chunk, context],\n ['exit', chunk, context],\n ['exit', string, context], // The ending (`]`, properly parsed and labelled).\n events[events.length - 2],\n events[events.length - 1],\n ['exit', call, context]\n ]\n events.splice(index, events.length - index + 1, ...replacement)\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeGfmFootnoteCall(effects, ok, nok) {\n const self = this\n /** @type {Array} */\n // @ts-expect-error It’s fine!\n\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n let size = 0\n /** @type {boolean} */\n\n let data\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('gfmFootnoteCall')\n effects.enter('gfmFootnoteCallLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallLabelMarker')\n return callStart\n }\n /** @type {State} */\n\n function callStart(code) {\n if (code !== 94) return nok(code)\n effects.enter('gfmFootnoteCallMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallMarker')\n effects.enter('gfmFootnoteCallString')\n effects.enter('chunkString').contentType = 'string'\n return callData\n }\n /** @type {State} */\n\n function callData(code) {\n /** @type {Token} */\n let token\n\n if (code === null || code === 91 || size++ > 999) {\n return nok(code)\n }\n\n if (code === 93) {\n if (!data) {\n return nok(code)\n }\n\n effects.exit('chunkString')\n token = effects.exit('gfmFootnoteCallString')\n return defined.includes(normalizeIdentifier(self.sliceSerialize(token)))\n ? end(code)\n : nok(code)\n }\n\n effects.consume(code)\n\n if (!markdownLineEndingOrSpace(code)) {\n data = true\n }\n\n return code === 92 ? callEscape : callData\n }\n /** @type {State} */\n\n function callEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return callData\n }\n\n return callData(code)\n }\n /** @type {State} */\n\n function end(code) {\n effects.enter('gfmFootnoteCallLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallLabelMarker')\n effects.exit('gfmFootnoteCall')\n return ok\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDefinitionStart(effects, ok, nok) {\n const self = this\n /** @type {Array} */\n // @ts-expect-error It’s fine!\n\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n /** @type {string} */\n\n let identifier\n let size = 0\n /** @type {boolean|undefined} */\n\n let data\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('gfmFootnoteDefinition')._container = true\n effects.enter('gfmFootnoteDefinitionLabel')\n effects.enter('gfmFootnoteDefinitionLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteDefinitionLabelMarker')\n return labelStart\n }\n /** @type {State} */\n\n function labelStart(code) {\n if (code === 94) {\n effects.enter('gfmFootnoteDefinitionMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteDefinitionMarker')\n effects.enter('gfmFootnoteDefinitionLabelString')\n return atBreak\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function atBreak(code) {\n /** @type {Token} */\n let token\n\n if (code === null || code === 91 || size > 999) {\n return nok(code)\n }\n\n if (code === 93) {\n if (!data) {\n return nok(code)\n }\n\n token = effects.exit('gfmFootnoteDefinitionLabelString')\n identifier = normalizeIdentifier(self.sliceSerialize(token))\n effects.enter('gfmFootnoteDefinitionLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteDefinitionLabelMarker')\n effects.exit('gfmFootnoteDefinitionLabel')\n return labelAfter\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n size++\n return atBreak\n }\n\n effects.enter('chunkString').contentType = 'string'\n return label(code)\n }\n /** @type {State} */\n\n function label(code) {\n if (\n code === null ||\n markdownLineEnding(code) ||\n code === 91 ||\n code === 93 ||\n size > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n\n if (!markdownLineEndingOrSpace(code)) {\n data = true\n }\n\n size++\n effects.consume(code)\n return code === 92 ? labelEscape : label\n }\n /** @type {State} */\n\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return label\n }\n\n return label(code)\n }\n /** @type {State} */\n\n function labelAfter(code) {\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker') // Any whitespace after the marker is eaten, forming indented code\n // is not possible.\n // No space is also fine, just like a block quote marker.\n\n return factorySpace(effects, done, 'gfmFootnoteDefinitionWhitespace')\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function done(code) {\n if (!defined.includes(identifier)) {\n defined.push(identifier)\n }\n\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDefinitionContinuation(effects, ok, nok) {\n // Either a blank line, which is okay, or an indented thing.\n return effects.check(blankLine, ok, effects.attempt(indent, ok, nok))\n}\n/** @type {Exiter} */\n\nfunction gfmFootnoteDefinitionEnd(effects) {\n effects.exit('gfmFootnoteDefinition')\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'gfmFootnoteDefinitionIndent',\n 4 + 1\n )\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'gfmFootnoteDefinitionIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === 4\n ? ok(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Event} Event\n */\n\n/**\n * @typedef Options\n * Configuration (optional).\n * @property {boolean} [singleTilde=true]\n * Whether to support strikethrough with a single tilde (`boolean`, default:\n * `true`).\n * Single tildes work on github.com, but are technically prohibited by the\n * GFM spec.\n */\nimport {splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/**\n * @param {Options} [options]\n * @returns {Extension}\n */\nexport function gfmStrikethrough(options = {}) {\n let single = options.singleTilde\n const tokenizer = {\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n }\n\n if (single === null || single === undefined) {\n single = true\n }\n\n return {\n text: {\n [126]: tokenizer\n },\n insideSpan: {\n null: [tokenizer]\n },\n attentionMarkers: {\n null: [126]\n }\n }\n /**\n * Take events and resolve strikethrough.\n *\n * @type {Resolver}\n */\n\n function resolveAllStrikethrough(events, context) {\n let index = -1 // Walk through all events.\n\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'strikethroughSequenceTemporary' &&\n events[index][1]._close\n ) {\n let open = index // Now walk back to find an opener.\n\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'strikethroughSequenceTemporary' &&\n events[open][1]._open && // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset ===\n events[open][1].end.offset - events[open][1].start.offset\n ) {\n events[index][1].type = 'strikethroughSequence'\n events[open][1].type = 'strikethroughSequence'\n const strikethrough = {\n type: 'strikethrough',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n }\n const text = {\n type: 'strikethroughText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n } // Opening.\n\n const nextEvents = [\n ['enter', strikethrough, context],\n ['enter', events[open][1], context],\n ['exit', events[open][1], context],\n ['enter', text, context]\n ] // Between.\n\n splice(\n nextEvents,\n nextEvents.length,\n 0,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n ) // Closing.\n\n splice(nextEvents, nextEvents.length, 0, [\n ['exit', text, context],\n ['enter', events[index][1], context],\n ['exit', events[index][1], context],\n ['exit', strikethrough, context]\n ])\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - 2\n break\n }\n }\n }\n }\n\n index = -1\n\n while (++index < events.length) {\n if (events[index][1].type === 'strikethroughSequenceTemporary') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n }\n /** @type {Tokenizer} */\n\n function tokenizeStrikethrough(effects, ok, nok) {\n const previous = this.previous\n const events = this.events\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n if (\n previous === 126 &&\n events[events.length - 1][1].type !== 'characterEscape'\n ) {\n return nok(code)\n }\n\n effects.enter('strikethroughSequenceTemporary')\n return more(code)\n }\n /** @type {State} */\n\n function more(code) {\n const before = classifyCharacter(previous)\n\n if (code === 126) {\n // If this is the third marker, exit.\n if (size > 1) return nok(code)\n effects.consume(code)\n size++\n return more\n }\n\n if (size < 2 && !single) return nok(code)\n const token = effects.exit('strikethroughSequenceTemporary')\n const after = classifyCharacter(code)\n token._open = !after || (after === 2 && Boolean(before))\n token._close = !before || (before === 2 && Boolean(after))\n return ok(code)\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n */\n\n/**\n * @typedef {'left'|'center'|'right'|'none'} Align\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n\n/** @type {Extension} */\nexport const gfmTable = {\n flow: {\n null: {\n tokenize: tokenizeTable,\n resolve: resolveTable\n }\n }\n}\nconst nextPrefixedOrBlank = {\n tokenize: tokenizeNextPrefixedOrBlank,\n partial: true\n}\n/** @type {Resolver} */\n\nfunction resolveTable(events, context) {\n let index = -1\n /** @type {boolean|undefined} */\n\n let inHead\n /** @type {boolean|undefined} */\n\n let inDelimiterRow\n /** @type {boolean|undefined} */\n\n let inRow\n /** @type {number|undefined} */\n\n let contentStart\n /** @type {number|undefined} */\n\n let contentEnd\n /** @type {number|undefined} */\n\n let cellStart\n /** @type {boolean|undefined} */\n\n let seenCellInRow\n\n while (++index < events.length) {\n const token = events[index][1]\n\n if (inRow) {\n if (token.type === 'temporaryTableCellContent') {\n contentStart = contentStart || index\n contentEnd = index\n }\n\n if (\n // Combine separate content parts into one.\n (token.type === 'tableCellDivider' || token.type === 'tableRow') &&\n contentEnd\n ) {\n const content = {\n type: 'tableContent',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n /** @type {Token} */\n\n const text = {\n type: 'chunkText',\n start: content.start,\n end: content.end,\n // @ts-expect-error It’s fine.\n contentType: 'text'\n }\n events.splice(\n contentStart,\n contentEnd - contentStart + 1,\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n )\n index -= contentEnd - contentStart - 3\n contentStart = undefined\n contentEnd = undefined\n }\n }\n\n if (\n events[index][0] === 'exit' &&\n cellStart !== undefined &&\n cellStart + (seenCellInRow ? 0 : 1) < index &&\n (token.type === 'tableCellDivider' ||\n (token.type === 'tableRow' &&\n (cellStart + 3 < index ||\n events[cellStart][1].type !== 'whitespace')))\n ) {\n const cell = {\n type: inDelimiterRow\n ? 'tableDelimiter'\n : inHead\n ? 'tableHeader'\n : 'tableData',\n start: events[cellStart][1].start,\n end: events[index][1].end\n }\n events.splice(index + (token.type === 'tableCellDivider' ? 1 : 0), 0, [\n 'exit',\n cell,\n context\n ])\n events.splice(cellStart, 0, ['enter', cell, context])\n index += 2\n cellStart = index + 1\n seenCellInRow = true\n }\n\n if (token.type === 'tableRow') {\n inRow = events[index][0] === 'enter'\n\n if (inRow) {\n cellStart = index + 1\n seenCellInRow = false\n }\n }\n\n if (token.type === 'tableDelimiterRow') {\n inDelimiterRow = events[index][0] === 'enter'\n\n if (inDelimiterRow) {\n cellStart = index + 1\n seenCellInRow = false\n }\n }\n\n if (token.type === 'tableHead') {\n inHead = events[index][0] === 'enter'\n }\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeTable(effects, ok, nok) {\n const self = this\n /** @type {Array} */\n\n const align = []\n let tableHeaderCount = 0\n /** @type {boolean|undefined} */\n\n let seenDelimiter\n /** @type {boolean|undefined} */\n\n let hasDash\n return start\n /** @type {State} */\n\n function start(code) {\n // @ts-expect-error Custom.\n effects.enter('table')._align = align\n effects.enter('tableHead')\n effects.enter('tableRow') // If we start with a pipe, we open a cell marker.\n\n if (code === 124) {\n return cellDividerHead(code)\n }\n\n tableHeaderCount++\n effects.enter('temporaryTableCellContent') // Can’t be space or eols at the start of a construct, so we’re in a cell.\n\n return inCellContentHead(code)\n }\n /** @type {State} */\n\n function cellDividerHead(code) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n seenDelimiter = true\n return cellBreakHead\n }\n /** @type {State} */\n\n function cellBreakHead(code) {\n if (code === null || markdownLineEnding(code)) {\n return atRowEndHead(code)\n }\n\n if (markdownSpace(code)) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceHead\n }\n\n if (seenDelimiter) {\n seenDelimiter = undefined\n tableHeaderCount++\n }\n\n if (code === 124) {\n return cellDividerHead(code)\n } // Anything else is cell content.\n\n effects.enter('temporaryTableCellContent')\n return inCellContentHead(code)\n }\n /** @type {State} */\n\n function inWhitespaceHead(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return inWhitespaceHead\n }\n\n effects.exit('whitespace')\n return cellBreakHead(code)\n }\n /** @type {State} */\n\n function inCellContentHead(code) {\n // EOF, whitespace, pipe\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit('temporaryTableCellContent')\n return cellBreakHead(code)\n }\n\n effects.consume(code)\n return code === 92 ? inCellContentEscapeHead : inCellContentHead\n }\n /** @type {State} */\n\n function inCellContentEscapeHead(code) {\n if (code === 92 || code === 124) {\n effects.consume(code)\n return inCellContentHead\n } // Anything else.\n\n return inCellContentHead(code)\n }\n /** @type {State} */\n\n function atRowEndHead(code) {\n if (code === null) {\n return nok(code)\n }\n\n effects.exit('tableRow')\n effects.exit('tableHead')\n const originalInterrupt = self.interrupt\n self.interrupt = true\n return effects.attempt(\n {\n tokenize: tokenizeRowEnd,\n partial: true\n },\n function (code) {\n self.interrupt = originalInterrupt\n effects.enter('tableDelimiterRow')\n return atDelimiterRowBreak(code)\n },\n function (code) {\n self.interrupt = originalInterrupt\n return nok(code)\n }\n )(code)\n }\n /** @type {State} */\n\n function atDelimiterRowBreak(code) {\n if (code === null || markdownLineEnding(code)) {\n return rowEndDelimiter(code)\n }\n\n if (markdownSpace(code)) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceDelimiter\n }\n\n if (code === 45) {\n effects.enter('tableDelimiterFiller')\n effects.consume(code)\n hasDash = true\n align.push('none')\n return inFillerDelimiter\n }\n\n if (code === 58) {\n effects.enter('tableDelimiterAlignment')\n effects.consume(code)\n effects.exit('tableDelimiterAlignment')\n align.push('left')\n return afterLeftAlignment\n } // If we start with a pipe, we open a cell marker.\n\n if (code === 124) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return atDelimiterRowBreak\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function inWhitespaceDelimiter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return inWhitespaceDelimiter\n }\n\n effects.exit('whitespace')\n return atDelimiterRowBreak(code)\n }\n /** @type {State} */\n\n function inFillerDelimiter(code) {\n if (code === 45) {\n effects.consume(code)\n return inFillerDelimiter\n }\n\n effects.exit('tableDelimiterFiller')\n\n if (code === 58) {\n effects.enter('tableDelimiterAlignment')\n effects.consume(code)\n effects.exit('tableDelimiterAlignment')\n align[align.length - 1] =\n align[align.length - 1] === 'left' ? 'center' : 'right'\n return afterRightAlignment\n }\n\n return atDelimiterRowBreak(code)\n }\n /** @type {State} */\n\n function afterLeftAlignment(code) {\n if (code === 45) {\n effects.enter('tableDelimiterFiller')\n effects.consume(code)\n hasDash = true\n return inFillerDelimiter\n } // Anything else is not ok.\n\n return nok(code)\n }\n /** @type {State} */\n\n function afterRightAlignment(code) {\n if (code === null || markdownLineEnding(code)) {\n return rowEndDelimiter(code)\n }\n\n if (markdownSpace(code)) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceDelimiter\n } // `|`\n\n if (code === 124) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return atDelimiterRowBreak\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function rowEndDelimiter(code) {\n effects.exit('tableDelimiterRow') // Exit if there was no dash at all, or if the header cell count is not the\n // delimiter cell count.\n\n if (!hasDash || tableHeaderCount !== align.length) {\n return nok(code)\n }\n\n if (code === null) {\n return tableClose(code)\n }\n\n return effects.check(\n nextPrefixedOrBlank,\n tableClose,\n effects.attempt(\n {\n tokenize: tokenizeRowEnd,\n partial: true\n },\n factorySpace(effects, bodyStart, 'linePrefix', 4),\n tableClose\n )\n )(code)\n }\n /** @type {State} */\n\n function tableClose(code) {\n effects.exit('table')\n return ok(code)\n }\n /** @type {State} */\n\n function bodyStart(code) {\n effects.enter('tableBody')\n return rowStartBody(code)\n }\n /** @type {State} */\n\n function rowStartBody(code) {\n effects.enter('tableRow') // If we start with a pipe, we open a cell marker.\n\n if (code === 124) {\n return cellDividerBody(code)\n }\n\n effects.enter('temporaryTableCellContent') // Can’t be space or eols at the start of a construct, so we’re in a cell.\n\n return inCellContentBody(code)\n }\n /** @type {State} */\n\n function cellDividerBody(code) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return cellBreakBody\n }\n /** @type {State} */\n\n function cellBreakBody(code) {\n if (code === null || markdownLineEnding(code)) {\n return atRowEndBody(code)\n }\n\n if (markdownSpace(code)) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceBody\n } // `|`\n\n if (code === 124) {\n return cellDividerBody(code)\n } // Anything else is cell content.\n\n effects.enter('temporaryTableCellContent')\n return inCellContentBody(code)\n }\n /** @type {State} */\n\n function inWhitespaceBody(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return inWhitespaceBody\n }\n\n effects.exit('whitespace')\n return cellBreakBody(code)\n }\n /** @type {State} */\n\n function inCellContentBody(code) {\n // EOF, whitespace, pipe\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit('temporaryTableCellContent')\n return cellBreakBody(code)\n }\n\n effects.consume(code)\n return code === 92 ? inCellContentEscapeBody : inCellContentBody\n }\n /** @type {State} */\n\n function inCellContentEscapeBody(code) {\n if (code === 92 || code === 124) {\n effects.consume(code)\n return inCellContentBody\n } // Anything else.\n\n return inCellContentBody(code)\n }\n /** @type {State} */\n\n function atRowEndBody(code) {\n effects.exit('tableRow')\n\n if (code === null) {\n return tableBodyClose(code)\n }\n\n return effects.check(\n nextPrefixedOrBlank,\n tableBodyClose,\n effects.attempt(\n {\n tokenize: tokenizeRowEnd,\n partial: true\n },\n factorySpace(effects, rowStartBody, 'linePrefix', 4),\n tableBodyClose\n )\n )(code)\n }\n /** @type {State} */\n\n function tableBodyClose(code) {\n effects.exit('tableBody')\n return tableClose(code)\n }\n /** @type {Tokenizer} */\n\n function tokenizeRowEnd(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n /** @type {State} */\n\n function prefixed(code) {\n // Blank or interrupting line.\n if (\n self.parser.lazy[self.now().line] ||\n code === null ||\n markdownLineEnding(code)\n ) {\n return nok(code)\n }\n\n const tail = self.events[self.events.length - 1] // Indented code can interrupt delimiter and body rows.\n\n if (\n !self.parser.constructs.disable.null.includes('codeIndented') &&\n tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ) {\n return nok(code)\n }\n\n self._gfmTableDynamicInterruptHack = true\n return effects.check(\n self.parser.constructs.flow,\n function (code) {\n self._gfmTableDynamicInterruptHack = false\n return nok(code)\n },\n function (code) {\n self._gfmTableDynamicInterruptHack = false\n return ok(code)\n }\n )(code)\n }\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeNextPrefixedOrBlank(effects, ok, nok) {\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n // This is a check, so we don’t care about tokens, but we open a bogus one\n // so we’re valid.\n effects.enter('check') // EOL.\n\n effects.consume(code)\n return whitespace\n }\n /** @type {State} */\n\n function whitespace(code) {\n if (code === -1 || code === 32) {\n effects.consume(code)\n size++\n return size === 4 ? ok : whitespace\n } // EOF or whitespace\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n return ok(code)\n } // Anything else.\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEndingOrSpace,\n markdownLineEnding\n} from 'micromark-util-character'\nconst tasklistCheck = {\n tokenize: tokenizeTasklistCheck\n}\nexport const gfmTaskListItem = {\n text: {\n [91]: tasklistCheck\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeTasklistCheck(effects, ok, nok) {\n const self = this\n return open\n /** @type {State} */\n\n function open(code) {\n if (\n // Exit if there’s stuff before.\n self.previous !== null || // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem\n ) {\n return nok(code)\n }\n\n effects.enter('taskListCheck')\n effects.enter('taskListCheckMarker')\n effects.consume(code)\n effects.exit('taskListCheckMarker')\n return inside\n }\n /** @type {State} */\n\n function inside(code) {\n // To match how GH works in comments, use `markdownSpace` (`[ \\t]`) instead\n // of `markdownLineEndingOrSpace` (`[ \\t\\r\\n]`).\n if (markdownLineEndingOrSpace(code)) {\n effects.enter('taskListCheckValueUnchecked')\n effects.consume(code)\n effects.exit('taskListCheckValueUnchecked')\n return close\n }\n\n if (code === 88 || code === 120) {\n effects.enter('taskListCheckValueChecked')\n effects.consume(code)\n effects.exit('taskListCheckValueChecked')\n return close\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function close(code) {\n if (code === 93) {\n effects.enter('taskListCheckMarker')\n effects.consume(code)\n effects.exit('taskListCheckMarker')\n effects.exit('taskListCheck')\n return effects.check(\n {\n tokenize: spaceThenNonSpace\n },\n ok,\n nok\n )\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction spaceThenNonSpace(effects, ok, nok) {\n const self = this\n return factorySpace(effects, after, 'whitespace')\n /** @type {State} */\n\n function after(code) {\n const tail = self.events[self.events.length - 1]\n return (\n // We either found spaces…\n ((tail && tail[1].type === 'whitespace') || // …or it was followed by a line ending, in which case, there has to be\n // non-whitespace after that line ending, because otherwise we’d get an\n // EOF as the content is closed with blank lines.\n markdownLineEnding(code)) &&\n code !== null\n ? ok(code)\n : nok(code)\n )\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-extension-gfm-strikethrough').Options} Options\n * @typedef {import('micromark-extension-gfm-footnote').HtmlOptions} HtmlOptions\n */\n\nimport {\n combineExtensions,\n combineHtmlExtensions\n} from 'micromark-util-combine-extensions'\nimport {\n gfmAutolinkLiteral,\n gfmAutolinkLiteralHtml\n} from 'micromark-extension-gfm-autolink-literal'\nimport {gfmFootnote, gfmFootnoteHtml} from 'micromark-extension-gfm-footnote'\nimport {\n gfmStrikethrough,\n gfmStrikethroughHtml\n} from 'micromark-extension-gfm-strikethrough'\nimport {gfmTable, gfmTableHtml} from 'micromark-extension-gfm-table'\nimport {gfmTagfilterHtml} from 'micromark-extension-gfm-tagfilter'\nimport {\n gfmTaskListItem,\n gfmTaskListItemHtml\n} from 'micromark-extension-gfm-task-list-item'\n\n/**\n * Support GFM or markdown on github.com.\n *\n * @param {Options} [options]\n * @returns {Extension}\n */\nexport function gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral,\n gfmFootnote(),\n gfmStrikethrough(options),\n gfmTable,\n gfmTaskListItem\n ])\n}\n\n/**\n * Support to compile GFM to HTML.\n *\n * @param {HtmlOptions} [options]\n * @returns {HtmlExtension}\n */\nexport function gfmHtml(options) {\n return combineHtmlExtensions([\n gfmAutolinkLiteralHtml,\n gfmFootnoteHtml(options),\n gfmStrikethroughHtml,\n gfmTableHtml,\n gfmTagfilterHtml,\n gfmTaskListItemHtml\n ])\n}\n","/**\n * Count how often a character (or substring) is used in a string.\n *\n * @param {string} value\n * Value to search in.\n * @param {string} character\n * Character (or substring) to look for.\n * @return {number}\n * Number of times `character` occurred in `value`.\n */\nexport function ccount(value, character) {\n const source = String(value)\n\n if (typeof character !== 'string') {\n throw new TypeError('Expected character')\n }\n\n let count = 0\n let index = source.indexOf(character)\n\n while (index !== -1) {\n count++\n index = source.indexOf(character, index + character.length)\n }\n\n return count\n}\n","/**\n * @typedef Options Configuration.\n * @property {Test} [ignore] `unist-util-is` test used to assert parents\n *\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Text} Text\n * @typedef {Content|Root} Node\n * @typedef {Extract} Parent\n *\n * @typedef {import('unist-util-visit-parents').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n *\n * @typedef RegExpMatchObject\n * @property {number} index\n * @property {string} input\n *\n * @typedef {string|RegExp} Find\n * @typedef {string|ReplaceFunction} Replace\n *\n * @typedef {[Find, Replace]} FindAndReplaceTuple\n * @typedef {Object.} FindAndReplaceSchema\n * @typedef {Array.} FindAndReplaceList\n *\n * @typedef {[RegExp, ReplaceFunction]} Pair\n * @typedef {Array.} Pairs\n */\n\n/**\n * @callback ReplaceFunction\n * @param {...any} parameters\n * @returns {Array.|PhrasingContent|string|false|undefined|null}\n */\n\nimport escape from 'escape-string-regexp'\nimport {visitParents} from 'unist-util-visit-parents'\nimport {convert} from 'unist-util-is'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param tree mdast tree\n * @param find Value to find and remove. When `string`, escaped and made into a global `RegExp`\n * @param [replace] Value to insert.\n * * When `string`, turned into a Text node.\n * * When `Function`, called with the results of calling `RegExp.exec` as\n * arguments, in which case it can return a single or a list of `Node`,\n * a `string` (which is wrapped in a `Text` node), or `false` to not replace\n * @param [options] Configuration.\n */\nexport const findAndReplace =\n /**\n * @type {(\n * ((tree: Node, find: Find, replace?: Replace, options?: Options) => Node) &\n * ((tree: Node, schema: FindAndReplaceSchema|FindAndReplaceList, options?: Options) => Node)\n * )}\n **/\n (\n /**\n * @param {Node} tree\n * @param {Find|FindAndReplaceSchema|FindAndReplaceList} find\n * @param {Replace|Options} [replace]\n * @param {Options} [options]\n */\n function (tree, find, replace, options) {\n /** @type {Options|undefined} */\n let settings\n /** @type {FindAndReplaceSchema|FindAndReplaceList} */\n let schema\n\n if (typeof find === 'string' || find instanceof RegExp) {\n // @ts-expect-error don’t expect options twice.\n schema = [[find, replace]]\n settings = options\n } else {\n schema = find\n // @ts-expect-error don’t expect replace twice.\n settings = replace\n }\n\n if (!settings) {\n settings = {}\n }\n\n const ignored = convert(settings.ignore || [])\n const pairs = toPairs(schema)\n let pairIndex = -1\n\n while (++pairIndex < pairs.length) {\n visitParents(tree, 'text', visitor)\n }\n\n return tree\n\n /** @type {import('unist-util-visit-parents').Visitor} */\n function visitor(node, parents) {\n let index = -1\n /** @type {Parent|undefined} */\n let grandparent\n\n while (++index < parents.length) {\n const parent = /** @type {Parent} */ (parents[index])\n\n if (\n ignored(\n parent,\n // @ts-expect-error mdast vs. unist parent.\n grandparent ? grandparent.children.indexOf(parent) : undefined,\n grandparent\n )\n ) {\n return\n }\n\n grandparent = parent\n }\n\n if (grandparent) {\n return handler(node, grandparent)\n }\n }\n\n /**\n * @param {Text} node\n * @param {Parent} parent\n * @returns {VisitorResult}\n */\n function handler(node, parent) {\n const find = pairs[pairIndex][0]\n const replace = pairs[pairIndex][1]\n let start = 0\n // @ts-expect-error: TS is wrong, some of these children can be text.\n let index = parent.children.indexOf(node)\n /** @type {Array.} */\n let nodes = []\n /** @type {number|undefined} */\n let position\n\n find.lastIndex = 0\n\n let match = find.exec(node.value)\n\n while (match) {\n position = match.index\n // @ts-expect-error this is perfectly fine, typescript.\n let value = replace(...match, {\n index: match.index,\n input: match.input\n })\n\n if (typeof value === 'string') {\n value = value.length > 0 ? {type: 'text', value} : undefined\n }\n\n if (value !== false) {\n if (start !== position) {\n nodes.push({\n type: 'text',\n value: node.value.slice(start, position)\n })\n }\n\n if (Array.isArray(value)) {\n nodes.push(...value)\n } else if (value) {\n nodes.push(value)\n }\n\n start = position + match[0].length\n }\n\n if (!find.global) {\n break\n }\n\n match = find.exec(node.value)\n }\n\n if (position === undefined) {\n nodes = [node]\n index--\n } else {\n if (start < node.value.length) {\n nodes.push({type: 'text', value: node.value.slice(start)})\n }\n\n parent.children.splice(index, 1, ...nodes)\n }\n\n return index + nodes.length + 1\n }\n }\n )\n\n/**\n * @param {FindAndReplaceSchema|FindAndReplaceList} schema\n * @returns {Pairs}\n */\nfunction toPairs(schema) {\n /** @type {Pairs} */\n const result = []\n\n if (typeof schema !== 'object') {\n throw new TypeError('Expected array or object as schema')\n }\n\n if (Array.isArray(schema)) {\n let index = -1\n\n while (++index < schema.length) {\n result.push([\n toExpression(schema[index][0]),\n toFunction(schema[index][1])\n ])\n }\n } else {\n /** @type {string} */\n let key\n\n for (key in schema) {\n if (own.call(schema, key)) {\n result.push([toExpression(key), toFunction(schema[key])])\n }\n }\n }\n\n return result\n}\n\n/**\n * @param {Find} find\n * @returns {RegExp}\n */\nfunction toExpression(find) {\n return typeof find === 'string' ? new RegExp(escape(find), 'g') : find\n}\n\n/**\n * @param {Replace} replace\n * @returns {ReplaceFunction}\n */\nfunction toFunction(replace) {\n return typeof replace === 'function' ? replace : () => replace\n}\n","export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Transform} FromMarkdownTransform\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown/lib/types.js').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-find-and-replace').ReplaceFunction} ReplaceFunction\n * @typedef {import('mdast-util-find-and-replace').RegExpMatchObject} RegExpMatchObject\n * @typedef {import('mdast-util-find-and-replace').PhrasingContent} PhrasingContent\n */\n\nimport {ccount} from 'ccount'\nimport {findAndReplace} from 'mdast-util-find-and-replace'\nimport {unicodePunctuation, unicodeWhitespace} from 'micromark-util-character'\n\nconst inConstruct = 'phrasing'\nconst notInConstruct = ['autolink', 'link', 'image', 'label']\n\n/** @type {FromMarkdownExtension} */\nexport const gfmAutolinkLiteralFromMarkdown = {\n transforms: [transformGfmAutolinkLiterals],\n enter: {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n },\n exit: {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n }\n}\n\n/** @type {ToMarkdownExtension} */\nexport const gfmAutolinkLiteralToMarkdown = {\n unsafe: [\n {\n character: '@',\n before: '[+\\\\-.\\\\w]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {\n character: '.',\n before: '[Ww]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {character: ':', before: '[ps]', after: '\\\\/', inConstruct, notInConstruct}\n ]\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterLiteralAutolink(token) {\n this.enter({type: 'link', title: null, url: '', children: []}, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token)\n const node = /** @type {Link} */ (this.stack[this.stack.length - 1])\n node.url = 'http://' + this.sliceSerialize(token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitLiteralAutolink(token) {\n this.exit(token)\n}\n\n/** @type {FromMarkdownTransform} */\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n [/([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/g, findEmail]\n ],\n {ignore: ['link', 'linkReference']}\n )\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} protocol\n * @param {string} domain\n * @param {string} path\n * @param {RegExpMatchObject} match\n */\n// eslint-disable-next-line max-params\nfunction findUrl(_, protocol, domain, path, match) {\n let prefix = ''\n\n // Not an expected previous character.\n if (!previous(match)) {\n return false\n }\n\n // Treat `www` as part of the domain.\n if (/^w/i.test(protocol)) {\n domain = protocol + domain\n protocol = ''\n prefix = 'http://'\n }\n\n if (!isCorrectDomain(domain)) {\n return false\n }\n\n const parts = splitUrl(domain + path)\n\n if (!parts[0]) return false\n\n /** @type {PhrasingContent} */\n const result = {\n type: 'link',\n title: null,\n url: prefix + protocol + parts[0],\n children: [{type: 'text', value: protocol + parts[0]}]\n }\n\n if (parts[1]) {\n return [result, {type: 'text', value: parts[1]}]\n }\n\n return result\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} atext\n * @param {string} label\n * @param {RegExpMatchObject} match\n */\nfunction findEmail(_, atext, label, match) {\n if (\n // Not an expected previous character.\n !previous(match, true) ||\n // Label ends in not allowed character.\n /[_-\\d]$/.test(label)\n ) {\n return false\n }\n\n return {\n type: 'link',\n title: null,\n url: 'mailto:' + atext + '@' + label,\n children: [{type: 'text', value: atext + '@' + label}]\n }\n}\n\n/**\n * @param {string} domain\n * @returns {boolean}\n */\nfunction isCorrectDomain(domain) {\n const parts = domain.split('.')\n\n if (\n parts.length < 2 ||\n (parts[parts.length - 1] &&\n (/_/.test(parts[parts.length - 1]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 1]))) ||\n (parts[parts.length - 2] &&\n (/_/.test(parts[parts.length - 2]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 2])))\n ) {\n return false\n }\n\n return true\n}\n\n/**\n * @param {string} url\n * @returns {[string, string|undefined]}\n */\nfunction splitUrl(url) {\n const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url)\n /** @type {number} */\n let closingParenIndex\n /** @type {number} */\n let openingParens\n /** @type {number} */\n let closingParens\n /** @type {string|undefined} */\n let trail\n\n if (trailExec) {\n url = url.slice(0, trailExec.index)\n trail = trailExec[0]\n closingParenIndex = trail.indexOf(')')\n openingParens = ccount(url, '(')\n closingParens = ccount(url, ')')\n\n while (closingParenIndex !== -1 && openingParens > closingParens) {\n url += trail.slice(0, closingParenIndex + 1)\n trail = trail.slice(closingParenIndex + 1)\n closingParenIndex = trail.indexOf(')')\n closingParens++\n }\n }\n\n return [url, trail]\n}\n\n/**\n * @param {RegExpMatchObject} match\n * @param {boolean} [email=false]\n * @returns {boolean}\n */\nfunction previous(match, email) {\n const code = match.input.charCodeAt(match.index - 1)\n\n return (\n (match.index === 0 ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)) &&\n (!email || code !== 47)\n )\n}\n","/**\n * @typedef {import('mdast').Association} Association\n */\n\nimport {decodeString} from 'micromark-util-decode-string'\n\n/**\n * The `label` of an association is the string value: character escapes and\n * references work, and casing is intact.\n * The `identifier` is used to match one association to another: controversially,\n * character escapes and references don’t work in this matching: `©` does\n * not match `©`, and `\\+` does not match `+`.\n * But casing is ignored (and whitespace) is trimmed and collapsed: ` A\\nb`\n * matches `a b`.\n * So, we do prefer the label when figuring out how we’re going to serialize:\n * it has whitespace, casing, and we can ignore most useless character escapes\n * and all character references.\n *\n * @param {Association} node\n * @returns {string}\n */\nexport function association(node) {\n if (node.label || !node.identifier) {\n return node.label || ''\n }\n\n return decodeString(node.identifier)\n}\n","/**\n * @typedef {import('unist').Point} Point\n * @typedef {import('../types.js').TrackFields} TrackFields\n */\n\n/**\n * Functions to track output positions.\n * This info isn’t used yet but suchs functionality allows line wrapping,\n * and theoretically source maps (though, is there practical use in that?).\n *\n * @param {TrackFields} options_\n */\nexport function track(options_) {\n // Defaults are used to prevent crashes when older utilities somehow activate\n // this code.\n /* c8 ignore next 5 */\n const options = options_ || {}\n const now = options.now || {}\n let lineShift = options.lineShift || 0\n let line = now.line || 1\n let column = now.column || 1\n\n return {move, current, shift}\n\n /**\n * Get the current tracked info.\n *\n * @returns {{now: Point, lineShift: number}}\n */\n function current() {\n return {now: {line, column}, lineShift}\n }\n\n /**\n * Define an increased line shift (the typical indent for lines).\n *\n * @param {number} value\n */\n function shift(value) {\n lineShift += value\n }\n\n /**\n * Move past a string.\n *\n * @param {string} value\n * @returns {string}\n */\n function move(value = '') {\n const chunks = value.split(/\\r?\\n|\\r/g)\n const tail = chunks[chunks.length - 1]\n line += chunks.length - 1\n column =\n chunks.length === 1 ? column + tail.length : 1 + tail.length + lineShift\n return value\n }\n}\n","/**\n * @typedef {import('../types.js').Node} Node\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').Join} Join\n * @typedef {import('../types.js').Context} Context\n * @typedef {import('../types.js').TrackFields} TrackFields\n */\n\nimport {track} from './track.js'\n\n/**\n * @param {Parent} parent\n * @param {Context} context\n * @param {TrackFields} safeOptions\n * @returns {string}\n */\nexport function containerFlow(parent, context, safeOptions) {\n const indexStack = context.indexStack\n const children = parent.children || []\n const tracker = track(safeOptions)\n /** @type {Array} */\n const results = []\n let index = -1\n\n indexStack.push(-1)\n\n while (++index < children.length) {\n const child = children[index]\n\n indexStack[indexStack.length - 1] = index\n\n results.push(\n tracker.move(\n context.handle(child, parent, context, {\n before: '\\n',\n after: '\\n',\n ...tracker.current()\n })\n )\n )\n\n if (child.type !== 'list') {\n context.bulletLastUsed = undefined\n }\n\n if (index < children.length - 1) {\n results.push(tracker.move(between(child, children[index + 1])))\n }\n }\n\n indexStack.pop()\n\n return results.join('')\n\n /**\n * @param {Node} left\n * @param {Node} right\n * @returns {string}\n */\n function between(left, right) {\n let index = context.join.length\n\n while (index--) {\n const result = context.join[index](left, right, parent, context)\n\n if (result === true || result === 1) {\n break\n }\n\n if (typeof result === 'number') {\n return '\\n'.repeat(1 + result)\n }\n\n if (result === false) {\n return '\\n\\n\\n\\n'\n }\n }\n\n return '\\n\\n'\n }\n}\n","/**\n * @callback Map\n * @param {string} value\n * @param {number} line\n * @param {boolean} blank\n * @returns {string}\n */\n\nconst eol = /\\r?\\n|\\r/g\n\n/**\n * @param {string} value\n * @param {Map} map\n * @returns {string}\n */\nexport function indentLines(value, map) {\n /** @type {Array} */\n const result = []\n let start = 0\n let line = 0\n /** @type {RegExpExecArray|null} */\n let match\n\n while ((match = eol.exec(value))) {\n one(value.slice(start, match.index))\n result.push(match[0])\n start = match.index + match[0].length\n line++\n }\n\n one(value.slice(start))\n\n return result.join('')\n\n /**\n * @param {string} value\n */\n function one(value) {\n result.push(map(value, line, !value))\n }\n}\n","/**\n * @typedef {import('../types.js').Unsafe} Unsafe\n */\n\n/**\n * @param {Unsafe} pattern\n * @returns {RegExp}\n */\nexport function patternCompile(pattern) {\n if (!pattern._compiled) {\n const before =\n (pattern.atBreak ? '[\\\\r\\\\n][\\\\t ]*' : '') +\n (pattern.before ? '(?:' + pattern.before + ')' : '')\n\n pattern._compiled = new RegExp(\n (before ? '(' + before + ')' : '') +\n (/[|\\\\{}()[\\]^$+*?.-]/.test(pattern.character) ? '\\\\' : '') +\n pattern.character +\n (pattern.after ? '(?:' + pattern.after + ')' : ''),\n 'g'\n )\n }\n\n return pattern._compiled\n}\n","/**\n * @typedef {import('../types.js').Unsafe} Unsafe\n */\n\n/**\n * @param {Array} stack\n * @param {Unsafe} pattern\n * @returns {boolean}\n */\nexport function patternInScope(stack, pattern) {\n return (\n listInScope(stack, pattern.inConstruct, true) &&\n !listInScope(stack, pattern.notInConstruct, false)\n )\n}\n\n/**\n * @param {Array} stack\n * @param {Unsafe['inConstruct']} list\n * @param {boolean} none\n * @returns {boolean}\n */\nfunction listInScope(stack, list, none) {\n if (!list) {\n return none\n }\n\n if (typeof list === 'string') {\n list = [list]\n }\n\n let index = -1\n\n while (++index < list.length) {\n if (stack.includes(list[index])) {\n return true\n }\n }\n\n return false\n}\n","/**\n * @typedef {import('../types.js').Context} Context\n * @typedef {import('../types.js').SafeOptions} SafeOptions\n */\n\nimport {patternCompile} from './pattern-compile.js'\nimport {patternInScope} from './pattern-in-scope.js'\n\n/**\n * @param {Context} context\n * @param {string|null|undefined} input\n * @param {SafeOptions & {encode?: Array}} config\n * @returns {string}\n */\nexport function safe(context, input, config) {\n const value = (config.before || '') + (input || '') + (config.after || '')\n /** @type {Array} */\n const positions = []\n /** @type {Array} */\n const result = []\n /** @type {Record} */\n const infos = {}\n let index = -1\n\n while (++index < context.unsafe.length) {\n const pattern = context.unsafe[index]\n\n if (!patternInScope(context.stack, pattern)) {\n continue\n }\n\n const expression = patternCompile(pattern)\n /** @type {RegExpExecArray|null} */\n let match\n\n while ((match = expression.exec(value))) {\n const before = 'before' in pattern || Boolean(pattern.atBreak)\n const after = 'after' in pattern\n const position = match.index + (before ? match[1].length : 0)\n\n if (positions.includes(position)) {\n if (infos[position].before && !before) {\n infos[position].before = false\n }\n\n if (infos[position].after && !after) {\n infos[position].after = false\n }\n } else {\n positions.push(position)\n infos[position] = {before, after}\n }\n }\n }\n\n positions.sort(numerical)\n\n let start = config.before ? config.before.length : 0\n const end = value.length - (config.after ? config.after.length : 0)\n index = -1\n\n while (++index < positions.length) {\n const position = positions[index]\n\n // Character before or after matched:\n if (position < start || position >= end) {\n continue\n }\n\n // If this character is supposed to be escaped because it has a condition on\n // the next character, and the next character is definitly being escaped,\n // then skip this escape.\n if (\n (position + 1 < end &&\n positions[index + 1] === position + 1 &&\n infos[position].after &&\n !infos[position + 1].before &&\n !infos[position + 1].after) ||\n (positions[index - 1] === position - 1 &&\n infos[position].before &&\n !infos[position - 1].before &&\n !infos[position - 1].after)\n ) {\n continue\n }\n\n if (start !== position) {\n // If we have to use a character reference, an ampersand would be more\n // correct, but as backslashes only care about punctuation, either will\n // do the trick\n result.push(escapeBackslashes(value.slice(start, position), '\\\\'))\n }\n\n start = position\n\n if (\n /[!-/:-@[-`{-~]/.test(value.charAt(position)) &&\n (!config.encode || !config.encode.includes(value.charAt(position)))\n ) {\n // Character escape.\n result.push('\\\\')\n } else {\n // Character reference.\n result.push(\n '&#x' + value.charCodeAt(position).toString(16).toUpperCase() + ';'\n )\n start++\n }\n }\n\n result.push(escapeBackslashes(value.slice(start, end), config.after))\n\n return result.join('')\n}\n\n/**\n * @param {number} a\n * @param {number} b\n * @returns {number}\n */\nfunction numerical(a, b) {\n return a - b\n}\n\n/**\n * @param {string} value\n * @param {string} after\n * @returns {string}\n */\nfunction escapeBackslashes(value, after) {\n const expression = /\\\\(?=[!-/:-@[-`{-~])/g\n /** @type {Array} */\n const positions = []\n /** @type {Array} */\n const results = []\n const whole = value + after\n let index = -1\n let start = 0\n /** @type {RegExpExecArray|null} */\n let match\n\n while ((match = expression.exec(whole))) {\n positions.push(match.index)\n }\n\n while (++index < positions.length) {\n if (start !== positions[index]) {\n results.push(value.slice(start, positions[index]))\n }\n\n results.push('\\\\')\n start = positions[index]\n }\n\n results.push(value.slice(start))\n\n return results.join('')\n}\n","/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('mdast').FootnoteDefinition} FootnoteDefinition\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Map} Map\n */\n\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {association} from 'mdast-util-to-markdown/lib/util/association.js'\nimport {containerFlow} from 'mdast-util-to-markdown/lib/util/container-flow.js'\nimport {indentLines} from 'mdast-util-to-markdown/lib/util/indent-lines.js'\nimport {safe} from 'mdast-util-to-markdown/lib/util/safe.js'\nimport {track} from 'mdast-util-to-markdown/lib/util/track.js'\n\n/**\n * @returns {FromMarkdownExtension}\n */\nexport function gfmFootnoteFromMarkdown() {\n return {\n enter: {\n gfmFootnoteDefinition: enterFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n gfmFootnoteCall: enterFootnoteCall,\n gfmFootnoteCallString: enterFootnoteCallString\n },\n exit: {\n gfmFootnoteDefinition: exitFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n gfmFootnoteCall: exitFootnoteCall,\n gfmFootnoteCallString: exitFootnoteCallString\n }\n }\n\n /** @type {FromMarkdownHandle} */\n function enterFootnoteDefinition(token) {\n this.enter(\n {type: 'footnoteDefinition', identifier: '', label: '', children: []},\n token\n )\n }\n\n /** @type {FromMarkdownHandle} */\n function enterFootnoteDefinitionLabelString() {\n this.buffer()\n }\n\n /** @type {FromMarkdownHandle} */\n function exitFootnoteDefinitionLabelString(token) {\n const label = this.resume()\n const node = /** @type {FootnoteDefinition} */ (\n this.stack[this.stack.length - 1]\n )\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n /** @type {FromMarkdownHandle} */\n function exitFootnoteDefinition(token) {\n this.exit(token)\n }\n\n /** @type {FromMarkdownHandle} */\n function enterFootnoteCall(token) {\n this.enter({type: 'footnoteReference', identifier: '', label: ''}, token)\n }\n\n /** @type {FromMarkdownHandle} */\n function enterFootnoteCallString() {\n this.buffer()\n }\n\n /** @type {FromMarkdownHandle} */\n function exitFootnoteCallString(token) {\n const label = this.resume()\n const node = /** @type {FootnoteDefinition} */ (\n this.stack[this.stack.length - 1]\n )\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n /** @type {FromMarkdownHandle} */\n function exitFootnoteCall(token) {\n this.exit(token)\n }\n}\n\n/**\n * @returns {ToMarkdownExtension}\n */\nexport function gfmFootnoteToMarkdown() {\n footnoteReference.peek = footnoteReferencePeek\n\n return {\n // This is on by default already.\n unsafe: [{character: '[', inConstruct: ['phrasing', 'label', 'reference']}],\n handlers: {footnoteDefinition, footnoteReference}\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {FootnoteReference} node\n */\n function footnoteReference(node, _, context, safeOptions) {\n const tracker = track(safeOptions)\n let value = tracker.move('[^')\n const exit = context.enter('footnoteReference')\n const subexit = context.enter('reference')\n value += tracker.move(\n safe(context, association(node), {\n ...tracker.current(),\n before: value,\n after: ']'\n })\n )\n subexit()\n exit()\n value += tracker.move(']')\n return value\n }\n\n /** @type {ToMarkdownHandle} */\n function footnoteReferencePeek() {\n return '['\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {FootnoteDefinition} node\n */\n function footnoteDefinition(node, _, context, safeOptions) {\n const tracker = track(safeOptions)\n let value = tracker.move('[^')\n const exit = context.enter('footnoteDefinition')\n const subexit = context.enter('label')\n value += tracker.move(\n safe(context, association(node), {\n ...tracker.current(),\n before: value,\n after: ']'\n })\n )\n subexit()\n value += tracker.move(\n ']:' + (node.children && node.children.length > 0 ? ' ' : '')\n )\n tracker.shift(4)\n value += tracker.move(\n indentLines(containerFlow(node, context, tracker.current()), map)\n )\n exit()\n\n return value\n\n /** @type {Map} */\n function map(line, index, blank) {\n if (index) {\n return (blank ? '' : ' ') + line\n }\n\n return line\n }\n }\n}\n","/**\n * @typedef {import('../types.js').Node} Node\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').SafeOptions} SafeOptions\n * @typedef {import('../types.js').Context} Context\n */\n\nimport {track} from './track.js'\n\n/**\n * @param {Parent} parent\n * @param {Context} context\n * @param {SafeOptions} safeOptions\n * @returns {string}\n */\nexport function containerPhrasing(parent, context, safeOptions) {\n const indexStack = context.indexStack\n const children = parent.children || []\n /** @type {Array} */\n const results = []\n let index = -1\n let before = safeOptions.before\n\n indexStack.push(-1)\n let tracker = track(safeOptions)\n\n while (++index < children.length) {\n const child = children[index]\n /** @type {string} */\n let after\n\n indexStack[indexStack.length - 1] = index\n\n if (index + 1 < children.length) {\n // @ts-expect-error: hush, it’s actually a `zwitch`.\n let handle = context.handle.handlers[children[index + 1].type]\n if (handle && handle.peek) handle = handle.peek\n after = handle\n ? handle(children[index + 1], parent, context, {\n before: '',\n after: '',\n ...tracker.current()\n }).charAt(0)\n : ''\n } else {\n after = safeOptions.after\n }\n\n // In some cases, html (text) can be found in phrasing right after an eol.\n // When we’d serialize that, in most cases that would be seen as html\n // (flow).\n // As we can’t escape or so to prevent it from happening, we take a somewhat\n // reasonable approach: replace that eol with a space.\n // See: \n if (\n results.length > 0 &&\n (before === '\\r' || before === '\\n') &&\n child.type === 'html'\n ) {\n results[results.length - 1] = results[results.length - 1].replace(\n /(\\r?\\n|\\r)$/,\n ' '\n )\n before = ' '\n\n // To do: does this work to reset tracker?\n tracker = track(safeOptions)\n tracker.move(results.join(''))\n }\n\n results.push(\n tracker.move(\n context.handle(child, parent, context, {\n ...tracker.current(),\n before,\n after\n })\n )\n )\n\n before = results[results.length - 1].slice(-1)\n }\n\n indexStack.pop()\n\n return results.join('')\n}\n","/**\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */\n\nimport {containerPhrasing} from 'mdast-util-to-markdown/lib/util/container-phrasing.js'\nimport {track} from 'mdast-util-to-markdown/lib/util/track.js'\n\n/** @type {FromMarkdownExtension} */\nexport const gfmStrikethroughFromMarkdown = {\n canContainEols: ['delete'],\n enter: {strikethrough: enterStrikethrough},\n exit: {strikethrough: exitStrikethrough}\n}\n\n/** @type {ToMarkdownExtension} */\nexport const gfmStrikethroughToMarkdown = {\n unsafe: [{character: '~', inConstruct: 'phrasing'}],\n handlers: {delete: handleDelete}\n}\n\nhandleDelete.peek = peekDelete\n\n/** @type {FromMarkdownHandle} */\nfunction enterStrikethrough(token) {\n this.enter({type: 'delete', children: []}, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitStrikethrough(token) {\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {Delete} node\n */\nfunction handleDelete(node, _, context, safeOptions) {\n const tracker = track(safeOptions)\n const exit = context.enter('emphasis')\n let value = tracker.move('~~')\n value += containerPhrasing(node, context, {\n ...tracker.current(),\n before: value,\n after: '~'\n })\n value += tracker.move('~~')\n exit()\n return value\n}\n\n/** @type {ToMarkdownHandle} */\nfunction peekDelete() {\n return '~'\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../types.js').Handle} Handle\n */\n\nimport {patternCompile} from '../util/pattern-compile.js'\n\ninlineCode.peek = inlineCodePeek\n\n/**\n * @type {Handle}\n * @param {InlineCode} node\n */\nexport function inlineCode(node, _, context) {\n let value = node.value || ''\n let sequence = '`'\n let index = -1\n\n // If there is a single grave accent on its own in the code, use a fence of\n // two.\n // If there are two in a row, use one.\n while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) {\n sequence += '`'\n }\n\n // If this is not just spaces or eols (tabs don’t count), and either the\n // first or last character are a space, eol, or tick, then pad with spaces.\n if (\n /[^ \\r\\n]/.test(value) &&\n ((/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value)) || /^`|`$/.test(value))\n ) {\n value = ' ' + value + ' '\n }\n\n // We have a potential problem: certain characters after eols could result in\n // blocks being seen.\n // For example, if someone injected the string `'\\n# b'`, then that would\n // result in an ATX heading.\n // We can’t escape characters in `inlineCode`, but because eols are\n // transformed to spaces when going from markdown to HTML anyway, we can swap\n // them out.\n while (++index < context.unsafe.length) {\n const pattern = context.unsafe[index]\n const expression = patternCompile(pattern)\n /** @type {RegExpExecArray|null} */\n let match\n\n // Only look for `atBreak`s.\n // Btw: note that `atBreak` patterns will always start the regex at LF or\n // CR.\n if (!pattern.atBreak) continue\n\n while ((match = expression.exec(value))) {\n let position = match.index\n\n // Support CRLF (patterns only look for one of the characters).\n if (\n value.charCodeAt(position) === 10 /* `\\n` */ &&\n value.charCodeAt(position - 1) === 13 /* `\\r` */\n ) {\n position--\n }\n\n value = value.slice(0, position) + ' ' + value.slice(match.index + 1)\n }\n }\n\n return sequence + value + sequence\n}\n\n/**\n * @type {Handle}\n */\nfunction inlineCodePeek() {\n return '`'\n}\n","/**\n * @typedef Options\n * Configuration (optional).\n * @property {string|null|Array} [align]\n * One style for all columns, or styles for their respective columns.\n * Each style is either `'l'` (left), `'r'` (right), or `'c'` (center).\n * Other values are treated as `''`, which doesn’t place the colon in the\n * alignment row but does align left.\n * *Only the lowercased first character is used, so `Right` is fine.*\n * @property {boolean} [padding=true]\n * Whether to add a space of padding between delimiters and cells.\n *\n * When `true`, there is padding:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there is no padding:\n *\n * ```markdown\n * |Alpha|B |\n * |-----|-----|\n * |C |Delta|\n * ```\n * @property {boolean} [delimiterStart=true]\n * Whether to begin each row with the delimiter.\n *\n * > 👉 **Note**: please don’t use this: it could create fragile structures\n * > that aren’t understandable to some markdown parsers.\n *\n * When `true`, there are starting delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no starting delimiters:\n *\n * ```markdown\n * Alpha | B |\n * ----- | ----- |\n * C | Delta |\n * ```\n * @property {boolean} [delimiterEnd=true]\n * Whether to end each row with the delimiter.\n *\n * > 👉 **Note**: please don’t use this: it could create fragile structures\n * > that aren’t understandable to some markdown parsers.\n *\n * When `true`, there are ending delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no ending delimiters:\n *\n * ```markdown\n * | Alpha | B\n * | ----- | -----\n * | C | Delta\n * ```\n * @property {boolean} [alignDelimiters=true]\n * Whether to align the delimiters.\n * By default, they are aligned:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * Pass `false` to make them staggered:\n *\n * ```markdown\n * | Alpha | B |\n * | - | - |\n * | C | Delta |\n * ```\n * @property {(value: string) => number} [stringLength]\n * Function to detect the length of table cell content.\n * This is used when aligning the delimiters (`|`) between table cells.\n * Full-width characters and emoji mess up delimiter alignment when viewing\n * the markdown source.\n * To fix this, you can pass this function, which receives the cell content\n * and returns its “visible” size.\n * Note that what is and isn’t visible depends on where the text is displayed.\n *\n * Without such a function, the following:\n *\n * ```js\n * markdownTable([\n * ['Alpha', 'Bravo'],\n * ['中文', 'Charlie'],\n * ['👩‍❤️‍👩', 'Delta']\n * ])\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | - | - |\n * | 中文 | Charlie |\n * | 👩‍❤️‍👩 | Delta |\n * ```\n *\n * With [`string-width`](https://github.com/sindresorhus/string-width):\n *\n * ```js\n * import stringWidth from 'string-width'\n *\n * markdownTable(\n * [\n * ['Alpha', 'Bravo'],\n * ['中文', 'Charlie'],\n * ['👩‍❤️‍👩', 'Delta']\n * ],\n * {stringLength: stringWidth}\n * )\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | ----- | ------- |\n * | 中文 | Charlie |\n * | 👩‍❤️‍👩 | Delta |\n * ```\n */\n\n/**\n * @typedef {Options} MarkdownTableOptions\n * @todo\n * Remove next major.\n */\n\n/**\n * Generate a markdown ([GFM](https://docs.github.com/en/github/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables)) table..\n *\n * @param {Array>} table\n * Table data (matrix of strings).\n * @param {Options} [options]\n * Configuration (optional).\n * @returns {string}\n */\nexport function markdownTable(table, options = {}) {\n const align = (options.align || []).concat()\n const stringLength = options.stringLength || defaultStringLength\n /** @type {Array} Character codes as symbols for alignment per column. */\n const alignments = []\n /** @type {Array>} Cells per row. */\n const cellMatrix = []\n /** @type {Array>} Sizes of each cell per row. */\n const sizeMatrix = []\n /** @type {Array} */\n const longestCellByColumn = []\n let mostCellsPerRow = 0\n let rowIndex = -1\n\n // This is a superfluous loop if we don’t align delimiters, but otherwise we’d\n // do superfluous work when aligning, so optimize for aligning.\n while (++rowIndex < table.length) {\n /** @type {Array} */\n const row = []\n /** @type {Array} */\n const sizes = []\n let columnIndex = -1\n\n if (table[rowIndex].length > mostCellsPerRow) {\n mostCellsPerRow = table[rowIndex].length\n }\n\n while (++columnIndex < table[rowIndex].length) {\n const cell = serialize(table[rowIndex][columnIndex])\n\n if (options.alignDelimiters !== false) {\n const size = stringLength(cell)\n sizes[columnIndex] = size\n\n if (\n longestCellByColumn[columnIndex] === undefined ||\n size > longestCellByColumn[columnIndex]\n ) {\n longestCellByColumn[columnIndex] = size\n }\n }\n\n row.push(cell)\n }\n\n cellMatrix[rowIndex] = row\n sizeMatrix[rowIndex] = sizes\n }\n\n // Figure out which alignments to use.\n let columnIndex = -1\n\n if (typeof align === 'object' && 'length' in align) {\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = toAlignment(align[columnIndex])\n }\n } else {\n const code = toAlignment(align)\n\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = code\n }\n }\n\n // Inject the alignment row.\n columnIndex = -1\n /** @type {Array} */\n const row = []\n /** @type {Array} */\n const sizes = []\n\n while (++columnIndex < mostCellsPerRow) {\n const code = alignments[columnIndex]\n let before = ''\n let after = ''\n\n if (code === 99 /* `c` */) {\n before = ':'\n after = ':'\n } else if (code === 108 /* `l` */) {\n before = ':'\n } else if (code === 114 /* `r` */) {\n after = ':'\n }\n\n // There *must* be at least one hyphen-minus in each alignment cell.\n let size =\n options.alignDelimiters === false\n ? 1\n : Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n )\n\n const cell = before + '-'.repeat(size) + after\n\n if (options.alignDelimiters !== false) {\n size = before.length + size + after.length\n\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size\n }\n\n sizes[columnIndex] = size\n }\n\n row[columnIndex] = cell\n }\n\n // Inject the alignment row.\n cellMatrix.splice(1, 0, row)\n sizeMatrix.splice(1, 0, sizes)\n\n rowIndex = -1\n /** @type {Array} */\n const lines = []\n\n while (++rowIndex < cellMatrix.length) {\n const row = cellMatrix[rowIndex]\n const sizes = sizeMatrix[rowIndex]\n columnIndex = -1\n /** @type {Array} */\n const line = []\n\n while (++columnIndex < mostCellsPerRow) {\n const cell = row[columnIndex] || ''\n let before = ''\n let after = ''\n\n if (options.alignDelimiters !== false) {\n const size =\n longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0)\n const code = alignments[columnIndex]\n\n if (code === 114 /* `r` */) {\n before = ' '.repeat(size)\n } else if (code === 99 /* `c` */) {\n if (size % 2) {\n before = ' '.repeat(size / 2 + 0.5)\n after = ' '.repeat(size / 2 - 0.5)\n } else {\n before = ' '.repeat(size / 2)\n after = before\n }\n } else {\n after = ' '.repeat(size)\n }\n }\n\n if (options.delimiterStart !== false && !columnIndex) {\n line.push('|')\n }\n\n if (\n options.padding !== false &&\n // Don’t add the opening space if we’re not aligning and the cell is\n // empty: there will be a closing space.\n !(options.alignDelimiters === false && cell === '') &&\n (options.delimiterStart !== false || columnIndex)\n ) {\n line.push(' ')\n }\n\n if (options.alignDelimiters !== false) {\n line.push(before)\n }\n\n line.push(cell)\n\n if (options.alignDelimiters !== false) {\n line.push(after)\n }\n\n if (options.padding !== false) {\n line.push(' ')\n }\n\n if (\n options.delimiterEnd !== false ||\n columnIndex !== mostCellsPerRow - 1\n ) {\n line.push('|')\n }\n }\n\n lines.push(\n options.delimiterEnd === false\n ? line.join('').replace(/ +$/, '')\n : line.join('')\n )\n }\n\n return lines.join('\\n')\n}\n\n/**\n * @param {string|null|undefined} [value]\n * @returns {string}\n */\nfunction serialize(value) {\n return value === null || value === undefined ? '' : String(value)\n}\n\n/**\n * @param {string} value\n * @returns {number}\n */\nfunction defaultStringLength(value) {\n return value.length\n}\n\n/**\n * @param {string|null|undefined} value\n * @returns {number}\n */\nfunction toAlignment(value) {\n const code = typeof value === 'string' ? value.codePointAt(0) : 0\n\n return code === 67 /* `C` */ || code === 99 /* `c` */\n ? 99 /* `c` */\n : code === 76 /* `L` */ || code === 108 /* `l` */\n ? 108 /* `l` */\n : code === 82 /* `R` */ || code === 114 /* `r` */\n ? 114 /* `r` */\n : 0\n}\n","/**\n * @typedef {import('mdast').AlignType} AlignType\n * @typedef {import('mdast').Table} Table\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('markdown-table').MarkdownTableOptions} MarkdownTableOptions\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Context} ToMarkdownContext\n * @typedef {import('mdast-util-to-markdown').SafeOptions} SafeOptions\n *\n * @typedef Options\n * @property {boolean} [tableCellPadding=true]\n * @property {boolean} [tablePipeAlign=true]\n * @property {MarkdownTableOptions['stringLength']} [stringLength]\n */\n\nimport {containerPhrasing} from 'mdast-util-to-markdown/lib/util/container-phrasing.js'\nimport {inlineCode} from 'mdast-util-to-markdown/lib/handle/inline-code.js'\nimport {markdownTable} from 'markdown-table'\n\n/** @type {FromMarkdownExtension} */\nexport const gfmTableFromMarkdown = {\n enter: {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n },\n exit: {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n }\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterTable(token) {\n /** @type {Array<'left'|'right'|'center'|'none'>} */\n // @ts-expect-error: `align` is custom.\n const align = token._align\n this.enter(\n {\n type: 'table',\n align: align.map((d) => (d === 'none' ? null : d)),\n children: []\n },\n token\n )\n this.setData('inTable', true)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitTable(token) {\n this.exit(token)\n this.setData('inTable')\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterRow(token) {\n this.enter({type: 'tableRow', children: []}, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exit(token) {\n this.exit(token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterCell(token) {\n this.enter({type: 'tableCell', children: []}, token)\n}\n\n// Overwrite the default code text data handler to unescape escaped pipes when\n// they are in tables.\n/** @type {FromMarkdownHandle} */\nfunction exitCodeText(token) {\n let value = this.resume()\n\n if (this.getData('inTable')) {\n value = value.replace(/\\\\([\\\\|])/g, replace)\n }\n\n const node = /** @type {InlineCode} */ (this.stack[this.stack.length - 1])\n node.value = value\n this.exit(token)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @returns {string}\n */\nfunction replace($0, $1) {\n // Pipes work, backslashes don’t (but can’t escape pipes).\n return $1 === '|' ? $1 : $0\n}\n\n/**\n * @param {Options} [options]\n * @returns {ToMarkdownExtension}\n */\nexport function gfmTableToMarkdown(options) {\n const settings = options || {}\n const padding = settings.tableCellPadding\n const alignDelimiters = settings.tablePipeAlign\n const stringLength = settings.stringLength\n const around = padding ? ' ' : '|'\n\n return {\n unsafe: [\n {character: '\\r', inConstruct: 'tableCell'},\n {character: '\\n', inConstruct: 'tableCell'},\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n {atBreak: true, character: '|', after: '[\\t :-]'},\n // A pipe in a cell must be encoded.\n {character: '|', inConstruct: 'tableCell'},\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n {atBreak: true, character: ':', after: '-'},\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // \n {atBreak: true, character: '-', after: '[:|-]'}\n ],\n handlers: {\n table: handleTable,\n tableRow: handleTableRow,\n tableCell: handleTableCell,\n inlineCode: inlineCodeWithTable\n }\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {Table} node\n */\n function handleTable(node, _, context, safeOptions) {\n return serializeData(\n handleTableAsData(node, context, safeOptions),\n // @ts-expect-error: fixed in `markdown-table@3.0.1`.\n node.align\n )\n }\n\n /**\n * This function isn’t really used normally, because we handle rows at the\n * table level.\n * But, if someone passes in a table row, this ensures we make somewhat sense.\n *\n * @type {ToMarkdownHandle}\n * @param {TableRow} node\n */\n function handleTableRow(node, _, context, safeOptions) {\n const row = handleTableRowAsData(node, context, safeOptions)\n // `markdown-table` will always add an align row\n const value = serializeData([row])\n return value.slice(0, value.indexOf('\\n'))\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {TableCell} node\n */\n function handleTableCell(node, _, context, safeOptions) {\n const exit = context.enter('tableCell')\n const subexit = context.enter('phrasing')\n const value = containerPhrasing(node, context, {\n ...safeOptions,\n before: around,\n after: around\n })\n subexit()\n exit()\n return value\n }\n\n /**\n * @param {Array>} matrix\n * @param {Array} [align]\n */\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align,\n alignDelimiters,\n padding,\n stringLength\n })\n }\n\n /**\n * @param {Table} node\n * @param {ToMarkdownContext} context\n * @param {SafeOptions} safeOptions\n */\n function handleTableAsData(node, context, safeOptions) {\n const children = node.children\n let index = -1\n /** @type {Array>} */\n const result = []\n const subexit = context.enter('table')\n\n while (++index < children.length) {\n result[index] = handleTableRowAsData(\n children[index],\n context,\n safeOptions\n )\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @param {TableRow} node\n * @param {ToMarkdownContext} context\n * @param {SafeOptions} safeOptions\n */\n function handleTableRowAsData(node, context, safeOptions) {\n const children = node.children\n let index = -1\n /** @type {Array} */\n const result = []\n const subexit = context.enter('tableRow')\n\n while (++index < children.length) {\n // Note: the positional info as used here is incorrect.\n // Making it correct would be impossible due to aligning cells?\n // And it would need copy/pasting `markdown-table` into this project.\n result[index] = handleTableCell(\n children[index],\n node,\n context,\n safeOptions\n )\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {InlineCode} node\n */\n function inlineCodeWithTable(node, parent, context) {\n let value = inlineCode(node, parent, context)\n\n if (context.stack.includes('tableCell')) {\n value = value.replace(/\\|/g, '\\\\$&')\n }\n\n return value\n }\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').List} List\n * @typedef {import('../util/indent-lines.js').Map} Map\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').Handle} Handle\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkListItemIndent} from '../util/check-list-item-indent.js'\nimport {containerFlow} from '../util/container-flow.js'\nimport {indentLines} from '../util/indent-lines.js'\nimport {track} from '../util/track.js'\n\n/**\n * @type {Handle}\n * @param {ListItem} node\n */\nexport function listItem(node, parent, context, safeOptions) {\n const listItemIndent = checkListItemIndent(context)\n let bullet = context.bulletCurrent || checkBullet(context)\n\n // Add the marker value for ordered lists.\n if (parent && parent.type === 'list' && parent.ordered) {\n bullet =\n (typeof parent.start === 'number' && parent.start > -1\n ? parent.start\n : 1) +\n (context.options.incrementListMarker === false\n ? 0\n : parent.children.indexOf(node)) +\n bullet\n }\n\n let size = bullet.length + 1\n\n if (\n listItemIndent === 'tab' ||\n (listItemIndent === 'mixed' &&\n ((parent && parent.type === 'list' && parent.spread) || node.spread))\n ) {\n size = Math.ceil(size / 4) * 4\n }\n\n const tracker = track(safeOptions)\n tracker.move(bullet + ' '.repeat(size - bullet.length))\n tracker.shift(size)\n const exit = context.enter('listItem')\n const value = indentLines(\n containerFlow(node, context, tracker.current()),\n map\n )\n exit()\n\n return value\n\n /** @type {Map} */\n function map(line, index, blank) {\n if (index) {\n return (blank ? '' : ' '.repeat(size)) + line\n }\n\n return (blank ? bullet : bullet + ' '.repeat(size - bullet.length)) + line\n }\n}\n","/**\n * @typedef {import('../types.js').Context} Context\n * @typedef {import('../types.js').Options} Options\n */\n\n/**\n * @param {Context} context\n * @returns {Exclude}\n */\nexport function checkListItemIndent(context) {\n const style = context.options.listItemIndent || 'tab'\n\n // To do: remove in a major.\n // @ts-expect-error: deprecated.\n if (style === 1 || style === '1') {\n return 'one'\n }\n\n if (style !== 'tab' && style !== 'one' && style !== 'mixed') {\n throw new Error(\n 'Cannot serialize items with `' +\n style +\n '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`'\n )\n }\n\n return style\n}\n","/**\n * @typedef {import('../types.js').Context} Context\n * @typedef {import('../types.js').Options} Options\n */\n\n/**\n * @param {Context} context\n * @returns {Exclude}\n */\nexport function checkBullet(context) {\n const marker = context.options.bullet || '*'\n\n if (marker !== '*' && marker !== '+' && marker !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bullet`, expected `*`, `+`, or `-`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {Extract} Parent\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').BlockContent} BlockContent\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */\n\nimport {listItem} from 'mdast-util-to-markdown/lib/handle/list-item.js'\nimport {track} from 'mdast-util-to-markdown/lib/util/track.js'\n\n/** @type {FromMarkdownExtension} */\nexport const gfmTaskListItemFromMarkdown = {\n exit: {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n }\n}\n\n/** @type {ToMarkdownExtension} */\nexport const gfmTaskListItemToMarkdown = {\n unsafe: [{atBreak: true, character: '-', after: '[:|-]'}],\n handlers: {listItem: listItemWithTaskListItem}\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitCheck(token) {\n const node = /** @type {ListItem} */ (this.stack[this.stack.length - 2])\n // We’re always in a paragraph, in a list item.\n node.checked = token.type === 'taskListCheckValueChecked'\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitParagraphWithTaskListItem(token) {\n const parent = /** @type {Parent} */ (this.stack[this.stack.length - 2])\n const node = /** @type {Paragraph} */ (this.stack[this.stack.length - 1])\n const siblings = parent.children\n const head = node.children[0]\n let index = -1\n /** @type {Paragraph|undefined} */\n let firstParaghraph\n\n if (\n parent &&\n parent.type === 'listItem' &&\n typeof parent.checked === 'boolean' &&\n head &&\n head.type === 'text'\n ) {\n while (++index < siblings.length) {\n const sibling = siblings[index]\n if (sibling.type === 'paragraph') {\n firstParaghraph = sibling\n break\n }\n }\n\n if (firstParaghraph === node) {\n // Must start with a space or a tab.\n head.value = head.value.slice(1)\n\n if (head.value.length === 0) {\n node.children.shift()\n } else if (\n node.position &&\n head.position &&\n typeof head.position.start.offset === 'number'\n ) {\n head.position.start.column++\n head.position.start.offset++\n node.position.start = Object.assign({}, head.position.start)\n }\n }\n }\n\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {ListItem} node\n */\nfunction listItemWithTaskListItem(node, parent, context, safeOptions) {\n const head = node.children[0]\n const checkable =\n typeof node.checked === 'boolean' && head && head.type === 'paragraph'\n const checkbox = '[' + (node.checked ? 'x' : ' ') + '] '\n const tracker = track(safeOptions)\n\n if (checkable) {\n tracker.move(checkbox)\n }\n\n let value = listItem(node, parent, context, {\n ...safeOptions,\n ...tracker.current()\n })\n\n if (checkable) {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check)\n }\n\n return value\n\n /**\n * @param {string} $0\n * @returns {string}\n */\n function check($0) {\n return $0 + checkbox\n }\n}\n","/**\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n *\n * @typedef {import('mdast-util-gfm-table').Options} Options\n */\n\nimport {\n gfmAutolinkLiteralFromMarkdown,\n gfmAutolinkLiteralToMarkdown\n} from 'mdast-util-gfm-autolink-literal'\nimport {\n gfmFootnoteFromMarkdown,\n gfmFootnoteToMarkdown\n} from 'mdast-util-gfm-footnote'\nimport {\n gfmStrikethroughFromMarkdown,\n gfmStrikethroughToMarkdown\n} from 'mdast-util-gfm-strikethrough'\nimport {gfmTableFromMarkdown, gfmTableToMarkdown} from 'mdast-util-gfm-table'\nimport {\n gfmTaskListItemFromMarkdown,\n gfmTaskListItemToMarkdown\n} from 'mdast-util-gfm-task-list-item'\n\n/**\n * @returns {Array}\n */\nexport function gfmFromMarkdown() {\n return [\n gfmAutolinkLiteralFromMarkdown,\n gfmFootnoteFromMarkdown(),\n gfmStrikethroughFromMarkdown,\n gfmTableFromMarkdown,\n gfmTaskListItemFromMarkdown\n ]\n}\n\n/**\n * @param {Options} [options]\n * @returns {ToMarkdownExtension}\n */\nexport function gfmToMarkdown(options) {\n return {\n extensions: [\n gfmAutolinkLiteralToMarkdown,\n gfmFootnoteToMarkdown(),\n gfmStrikethroughToMarkdown,\n gfmTableToMarkdown(options),\n gfmTaskListItemToMarkdown\n ]\n }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('micromark-extension-gfm').Options & import('mdast-util-gfm').Options} Options\n */\n\nimport {gfm} from 'micromark-extension-gfm'\nimport {gfmFromMarkdown, gfmToMarkdown} from 'mdast-util-gfm'\n\n/**\n * Plugin to support GFM (autolink literals, footnotes, strikethrough, tables, tasklists).\n *\n * @type {import('unified').Plugin<[Options?]|void[], Root>}\n */\nexport default function remarkGfm(options = {}) {\n const data = this.data()\n\n add('micromarkExtensions', gfm(options))\n add('fromMarkdownExtensions', gfmFromMarkdown())\n add('toMarkdownExtensions', gfmToMarkdown(options))\n\n /**\n * @param {string} field\n * @param {unknown} value\n */\n function add(field, value) {\n const list = /** @type {unknown[]} */ (\n // Other extensions\n /* c8 ignore next 2 */\n data[field] ? data[field] : (data[field] = [])\n )\n\n list.push(value)\n }\n}\n","var own = {}.hasOwnProperty\n\n/**\n * Check if `node` has a set `name` property.\n *\n * @param {unknown} node\n * @param {string} name\n * @returns {boolean}\n */\nexport function hasProperty(node, name) {\n /** @type {unknown} */\n var value =\n name &&\n node &&\n typeof node === 'object' &&\n // @ts-ignore Looks like a node.\n node.type === 'element' &&\n // @ts-ignore Looks like an element.\n node.properties &&\n // @ts-ignore Looks like an element.\n own.call(node.properties, name) &&\n // @ts-ignore Looks like an element.\n node.properties[name]\n\n return value !== null && value !== undefined && value !== false\n}\n","/**\n * @typedef {import('hast').Parent} Parent\n * @typedef {import('hast').Root} Root\n * @typedef {Root|Parent['children'][number]} Node\n */\n\n/**\n * Rank of a heading: H1 -> 1, H2 -> 2, etc.\n *\n * @param {Node} node\n * @returns {number|null}\n */\nexport function headingRank(node) {\n var name =\n (node && node.type === 'element' && node.tagName.toLowerCase()) || ''\n var code =\n name.length === 2 && name.charCodeAt(0) === 104 /* `h` */\n ? name.charCodeAt(1)\n : 0\n return code > 48 /* `0` */ && code < 55 /* `7` */ ? code - 48 /* `0` */ : null\n}\n","/**\n * @fileoverview\n * Get the plain-text value of a hast node.\n * @longdescription\n * ## Use\n *\n * ```js\n * import {h} from 'hastscript'\n * import {toString} from 'hast-util-to-string'\n *\n * toString(h('p', 'Alpha'))\n * //=> 'Alpha'\n * toString(h('div', [h('b', 'Bold'), ' and ', h('i', 'italic'), '.']))\n * //=> 'Bold and italic.'\n * ```\n *\n * ## API\n *\n * ### `toString(node)`\n *\n * Transform a node to a string.\n */\n\n/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Element} Element\n * @typedef {Root|Root['children'][number]} Node\n */\n\n/**\n * Get the plain-text value of a hast node.\n *\n * @param {Node} node\n * @returns {string}\n */\nexport function toString(node) {\n // “The concatenation of data of all the Text node descendants of the context\n // object, in tree order.”\n if ('children' in node) {\n return all(node)\n }\n\n // “Context object’s data.”\n return 'value' in node ? node.value : ''\n}\n\n/**\n * @param {Node} node\n * @returns {string}\n */\nfunction one(node) {\n if (node.type === 'text') {\n return node.value\n }\n\n return 'children' in node ? all(node) : ''\n}\n\n/**\n * @param {Root|Element} node\n * @returns {string}\n */\nfunction all(node) {\n let index = -1\n /** @type {string[]} */\n const result = []\n\n while (++index < node.children.length) {\n result[index] = one(node.children[index])\n }\n\n return result.join('')\n}\n","/**\n * @typedef {import('hast').Root} Root\n */\n\nimport Slugger from 'github-slugger'\nimport {hasProperty} from 'hast-util-has-property'\nimport {headingRank} from 'hast-util-heading-rank'\nimport {toString} from 'hast-util-to-string'\nimport {visit} from 'unist-util-visit'\n\nconst slugs = new Slugger()\n\n/**\n * Plugin to add `id`s to headings.\n *\n * @type {import('unified').Plugin, Root>}\n */\nexport default function rehypeSlug() {\n return (tree) => {\n slugs.reset()\n\n visit(tree, 'element', (node) => {\n if (headingRank(node) && node.properties && !hasProperty(node, 'id')) {\n node.properties.id = slugs.slug(toString(node))\n }\n })\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('hast').Element} Element\n *\n * @typedef {string} TagName\n * @typedef {null|undefined|TagName|TestFunctionAnything|Array.} Test\n */\n\n/**\n * @template {Element} T\n * @typedef {null|undefined|T['tagName']|TestFunctionPredicate|Array.>} PredicateTest\n */\n\n/**\n * Check if an element passes a test\n *\n * @callback TestFunctionAnything\n * @param {Element} element\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean|void}\n */\n\n/**\n * Check if an element passes a certain node test\n *\n * @template {Element} X\n * @callback TestFunctionPredicate\n * @param {Element} element\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {element is X}\n */\n\n/**\n * Check if a node is an element and passes a certain node test\n *\n * @callback AssertAnything\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean}\n */\n\n/**\n * Check if a node is an element and passes a certain node test\n *\n * @template {Element} Y\n * @callback AssertPredicate\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is Y}\n */\n\n// Check if `node` is an `element` and whether it passes the given test.\nexport const isElement =\n /**\n * Check if a node is an element and passes a test.\n * When a `parent` node is known the `index` of node should also be given.\n *\n * @type {(\n * (() => false) &\n * ((node: unknown, test?: PredicateTest, index?: number, parent?: Parent, context?: unknown) => node is T) &\n * ((node: unknown, test: Test, index?: number, parent?: Parent, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * Check if a node passes a test.\n * When a `parent` node is known the `index` of node should also be given.\n *\n * @param {unknown} [node] Node to check\n * @param {Test} [test] When nullish, checks if `node` is a `Node`.\n * When `string`, works like passing `function (node) {return node.type === test}`.\n * When `function` checks if function passed the node is true.\n * When `array`, checks any one of the subtests pass.\n * @param {number} [index] Position of `node` in `parent`\n * @param {Parent} [parent] Parent of `node`\n * @param {unknown} [context] Context object to invoke `test` with\n * @returns {boolean} Whether test passed and `node` is an `Element` (object with `type` set to `element` and `tagName` set to a non-empty string).\n */\n // eslint-disable-next-line max-params\n function (node, test, index, parent, context) {\n const check = convertElement(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index for child node')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!parent.type || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n // @ts-expect-error Looks like a node.\n if (!node || !node.type || typeof node.type !== 'string') {\n return false\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n return check.call(context, node, index, parent)\n }\n )\n\nexport const convertElement =\n /**\n * @type {(\n * ((test: T['tagName']|TestFunctionPredicate) => AssertPredicate) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * Generate an assertion from a check.\n * @param {Test} [test]\n * When nullish, checks if `node` is a `Node`.\n * When `string`, works like passing `function (node) {return node.type === test}`.\n * When `function` checks if function passed the node is true.\n * When `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * When `array`, checks any one of the subtests pass.\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return element\n }\n\n if (typeof test === 'string') {\n return tagNameFactory(test)\n }\n\n if (typeof test === 'object') {\n return anyFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or array as test')\n }\n )\n\n/**\n * @param {Array.} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array.} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convertElement(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @param {unknown[]} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) {\n return true\n }\n }\n\n return false\n }\n}\n\n/**\n * Utility to convert a string into a function which checks a given node’s tag\n * name for said string.\n *\n * @param {TagName} check\n * @returns {AssertAnything}\n */\nfunction tagNameFactory(check) {\n return tagName\n\n /**\n * @param {unknown} node\n * @returns {boolean}\n */\n function tagName(node) {\n return element(node) && node.tagName === check\n }\n}\n\n/**\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {unknown} node\n * @param {Array.} parameters\n * @returns {boolean}\n */\n function assertion(node, ...parameters) {\n // @ts-expect-error: fine.\n return element(node) && Boolean(check.call(this, node, ...parameters))\n }\n}\n\n/**\n * Utility to return true if this is an element.\n * @param {unknown} node\n * @returns {node is Element}\n */\nfunction element(node) {\n return Boolean(\n node &&\n typeof node === 'object' &&\n // @ts-expect-error Looks like a node.\n node.type === 'element' &&\n // @ts-expect-error Looks like an element.\n typeof node.tagName === 'string'\n )\n}\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Parent} Parent\n * @typedef {import('hast').Element} Element\n * @typedef {Element['children'][number]} ElementChild\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast-util-is-element').Test} Test\n *\n * @typedef {'prepend'|'append'|'wrap'|'before'|'after'} Behavior\n *\n * @callback Build\n * @param {Element} node\n * @returns {ElementChild|ElementChild[]}\n *\n * @typedef Options\n * Configuration.\n * @property {Behavior} [behavior='prepend']\n * How to create links.\n * @property {Behavior} [behaviour]\n * Please use `behavior` instead\n * @property {Properties} [properties]\n * Extra properties to set on the link when injecting.\n * Defaults to `{ariaHidden: true, tabIndex: -1}` when `'prepend'` or\n * `'append'`.\n * @property {ElementChild|ElementChild[]|Build} [content={type: 'element', tagName: 'span', properties: {className: ['icon', 'icon-link']}, children: []}]\n * hast nodes to insert in the link.\n * @property {ElementChild|ElementChild[]|Build} [group]\n * hast node to wrap the heading and link with, if `behavior` is `'before'` or\n * `'after'`.\n * There is no default.\n * @property {Test} [test]\n * Test to define which heading elements are linked.\n * Any test that can be given to `hast-util-is-element` is supported.\n * The default (no test) is to link all headings.\n * Can be used to link only h1-h3, or for example all except h1.\n */\n\nimport extend from 'extend'\nimport {hasProperty} from 'hast-util-has-property'\nimport {headingRank} from 'hast-util-heading-rank'\nimport {convertElement} from 'hast-util-is-element'\nimport {visit, SKIP} from 'unist-util-visit'\n\n/** @type {Element} */\nconst contentDefaults = {\n type: 'element',\n tagName: 'span',\n properties: {className: ['icon', 'icon-link']},\n children: []\n}\n\n/**\n * Plugin to automatically add links to headings (h1-h6).\n *\n * @type {import('unified').Plugin<[Options?]|void[], Root>}\n */\nexport default function rehypeAutolinkHeadings(options = {}) {\n let props = options.properties\n const behavior = options.behaviour || options.behavior || 'prepend'\n const content = options.content || contentDefaults\n const group = options.group\n const is = convertElement(options.test)\n\n /** @type {import('unist-util-visit/complex-types').Visitor} */\n let method\n\n if (behavior === 'wrap') {\n method = wrap\n } else if (behavior === 'before' || behavior === 'after') {\n method = around\n } else {\n if (!props) {\n props = {ariaHidden: 'true', tabIndex: -1}\n }\n\n method = inject\n }\n\n return (tree) => {\n visit(tree, 'element', (node, index, parent) => {\n if (\n headingRank(node) &&\n hasProperty(node, 'id') &&\n is(node, index, parent)\n ) {\n return method(node, index, parent)\n }\n })\n }\n\n /** @type {import('unist-util-visit/complex-types').Visitor} */\n function inject(node) {\n node.children[behavior === 'prepend' ? 'unshift' : 'push'](\n create(node, extend(true, {}, props), toChildren(content, node))\n )\n\n return [SKIP]\n }\n\n /** @type {import('unist-util-visit/complex-types').Visitor} */\n function around(node, index, parent) {\n // Uncommon.\n /* c8 ignore next */\n if (typeof index !== 'number' || !parent) return\n\n const link = create(\n node,\n extend(true, {}, props),\n toChildren(content, node)\n )\n let nodes = behavior === 'before' ? [link, node] : [node, link]\n\n if (group) {\n const grouping = toNode(group, node)\n\n if (grouping && !Array.isArray(grouping) && grouping.type === 'element') {\n grouping.children = nodes\n nodes = [grouping]\n }\n }\n\n parent.children.splice(index, 1, ...nodes)\n\n return [SKIP, index + nodes.length]\n }\n\n /** @type {import('unist-util-visit/complex-types').Visitor} */\n function wrap(node) {\n node.children = [create(node, extend(true, {}, props), node.children)]\n return [SKIP]\n }\n\n /**\n * @param {ElementChild|ElementChild[]|Build} value\n * @param {Element} node\n * @returns {ElementChild[]}\n */\n function toChildren(value, node) {\n const result = toNode(value, node)\n return Array.isArray(result) ? result : [result]\n }\n\n /**\n * @param {ElementChild|ElementChild[]|Build} value\n * @param {Element} node\n * @returns {ElementChild|ElementChild[]}\n */\n function toNode(value, node) {\n if (typeof value === 'function') return value(node)\n return extend(true, Array.isArray(value) ? [] : {}, value)\n }\n\n /**\n * @param {Element} node\n * @param {Properties} props\n * @param {ElementChild[]} children\n * @returns {Element}\n */\n function create(node, props, children) {\n return {\n type: 'element',\n tagName: 'a',\n properties: Object.assign({}, props, {\n // Fix hast types and make them required.\n /* c8 ignore next */\n href: '#' + (node.properties || {}).id\n }),\n children\n }\n }\n}\n","/**\n * @typedef {import('./core.js').HChild} Child Acceptable child value\n * @typedef {import('./core.js').HProperties} Properties Acceptable properties value.\n *\n * @typedef {import('./jsx-classic').Element} s.JSX.Element\n * @typedef {import('./jsx-classic').IntrinsicAttributes} s.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic').IntrinsicElements} s.JSX.IntrinsicElements\n * @typedef {import('./jsx-classic').ElementChildrenAttribute} s.JSX.ElementChildrenAttribute\n */\n\nimport {svg} from 'property-information'\nimport {core} from './core.js'\nimport {svgCaseSensitiveTagNames} from './svg-case-sensitive-tag-names.js'\n\nexport const s = core(svg, 'g', svgCaseSensitiveTagNames)\n","export const svgCaseSensitiveTagNames = [\n 'altGlyph',\n 'altGlyphDef',\n 'altGlyphItem',\n 'animateColor',\n 'animateMotion',\n 'animateTransform',\n 'clipPath',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDistantLight',\n 'feDropShadow',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n 'foreignObject',\n 'glyphRef',\n 'linearGradient',\n 'radialGradient',\n 'solidColor',\n 'textArea',\n 'textPath'\n]\n","/**\n * Map of web namespaces.\n *\n * @type {Record}\n */\nexport const webNamespaces = {\n html: 'http://www.w3.org/1999/xhtml',\n mathml: 'http://www.w3.org/1998/Math/MathML',\n svg: 'http://www.w3.org/2000/svg',\n xlink: 'http://www.w3.org/1999/xlink',\n xml: 'http://www.w3.org/XML/1998/namespace',\n xmlns: 'http://www.w3.org/2000/xmlns/'\n}\n","/**\n * @typedef {import('vfile').VFile} VFile\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {import('hast').Parent} Parent\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').DocType} Doctype\n * @typedef {Parent['children'][number]} Child\n * @typedef {Element['children'][number]} ElementChild\n * @typedef {Child|Root} Node\n * @typedef {import('parse5').Document} P5Document\n * @typedef {import('parse5').DocumentType} P5Doctype\n * @typedef {import('parse5').CommentNode} P5Comment\n * @typedef {import('parse5').TextNode} P5Text\n * @typedef {import('parse5').Element} P5Element\n * @typedef {import('parse5').ElementLocation} P5ElementLocation\n * @typedef {import('parse5').Location} P5Location\n * @typedef {import('parse5').Attribute} P5Attribute\n * @typedef {import('parse5').Node} P5Node\n *\n * @typedef {'html'|'svg'} Space\n *\n * @callback Handler\n * @param {Context} ctx\n * @param {P5Node} node\n * @param {Array.} [children]\n * @returns {Node}\n *\n * @typedef Options\n * @property {Space} [space='html'] Whether the root of the tree is in the `'html'` or `'svg'` space. If an element in with the SVG namespace is found in `ast`, `fromParse5` automatically switches to the SVG space when entering the element, and switches back when leaving\n * @property {VFile} [file] `VFile`, used to add positional information to nodes. If given, the file should have the original HTML source as its contents\n * @property {boolean} [verbose=false] Whether to add extra positional information about starting tags, closing tags, and attributes to elements. Note: not used without `file`\n *\n * @typedef Context\n * @property {Schema} schema\n * @property {VFile|undefined} file\n * @property {boolean|undefined} verbose\n * @property {boolean} location\n */\n\nimport {h, s} from 'hastscript'\nimport {html, svg, find} from 'property-information'\nimport {location} from 'vfile-location'\nimport {webNamespaces} from 'web-namespaces'\n\nconst own = {}.hasOwnProperty\n\n// Handlers.\nconst map = {\n '#document': root,\n '#document-fragment': root,\n '#text': text,\n '#comment': comment,\n '#documentType': doctype\n}\n\n/**\n * Transform Parse5’s AST to a hast tree.\n *\n * @param {P5Node} ast\n * @param {Options|VFile} [options]\n */\nexport function fromParse5(ast, options = {}) {\n /** @type {Options} */\n let settings\n /** @type {VFile|undefined} */\n let file\n\n if (isFile(options)) {\n file = options\n settings = {}\n } else {\n file = options.file\n settings = options\n }\n\n return transform(\n {\n schema: settings.space === 'svg' ? svg : html,\n file,\n verbose: settings.verbose,\n location: false\n },\n ast\n )\n}\n\n/**\n * Transform children.\n *\n * @param {Context} ctx\n * @param {P5Node} ast\n * @returns {Node}\n */\nfunction transform(ctx, ast) {\n const schema = ctx.schema\n /** @type {Handler} */\n // @ts-expect-error: index is fine.\n const fn = own.call(map, ast.nodeName) ? map[ast.nodeName] : element\n /** @type {Array.|undefined} */\n let children\n\n // Element.\n if ('tagName' in ast) {\n ctx.schema = ast.namespaceURI === webNamespaces.svg ? svg : html\n }\n\n if ('childNodes' in ast) {\n children = nodes(ctx, ast.childNodes)\n }\n\n const result = fn(ctx, ast, children)\n\n if ('sourceCodeLocation' in ast && ast.sourceCodeLocation && ctx.file) {\n // @ts-expect-error It’s fine.\n const position = createLocation(ctx, result, ast.sourceCodeLocation)\n\n if (position) {\n ctx.location = true\n result.position = position\n }\n }\n\n ctx.schema = schema\n\n return result\n}\n\n/**\n * Transform children.\n *\n * @param {Context} ctx\n * @param {Array.} children\n * @returns {Array.}\n */\nfunction nodes(ctx, children) {\n let index = -1\n /** @type {Array.} */\n const result = []\n\n while (++index < children.length) {\n // @ts-expect-error Assume no roots in children.\n result[index] = transform(ctx, children[index])\n }\n\n return result\n}\n\n/**\n * Transform a document.\n * Stores `ast.quirksMode` in `node.data.quirksMode`.\n *\n * @type {Handler}\n * @param {P5Document} ast\n * @param {Array.} children\n * @returns {Root}\n */\nfunction root(ctx, ast, children) {\n /** @type {Root} */\n const result = {\n type: 'root',\n children,\n data: {quirksMode: ast.mode === 'quirks' || ast.mode === 'limited-quirks'}\n }\n\n if (ctx.file && ctx.location) {\n const doc = String(ctx.file)\n const loc = location(doc)\n result.position = {\n start: loc.toPoint(0),\n end: loc.toPoint(doc.length)\n }\n }\n\n return result\n}\n\n/**\n * Transform a doctype.\n *\n * @type {Handler}\n * @returns {Doctype}\n */\nfunction doctype() {\n // @ts-expect-error Types are out of date.\n return {type: 'doctype'}\n}\n\n/**\n * Transform a text.\n *\n * @type {Handler}\n * @param {P5Text} ast\n * @returns {Text}\n */\nfunction text(_, ast) {\n return {type: 'text', value: ast.value}\n}\n\n/**\n * Transform a comment.\n *\n * @type {Handler}\n * @param {P5Comment} ast\n * @returns {Comment}\n */\nfunction comment(_, ast) {\n return {type: 'comment', value: ast.data}\n}\n\n/**\n * Transform an element.\n *\n * @type {Handler}\n * @param {P5Element} ast\n * @param {Array.} children\n * @returns {Element}\n */\nfunction element(ctx, ast, children) {\n const fn = ctx.schema.space === 'svg' ? s : h\n let index = -1\n /** @type {Object.} */\n const props = {}\n\n while (++index < ast.attrs.length) {\n const attribute = ast.attrs[index]\n props[(attribute.prefix ? attribute.prefix + ':' : '') + attribute.name] =\n attribute.value\n }\n\n const result = fn(ast.tagName, props, children)\n\n if (result.tagName === 'template' && 'content' in ast) {\n const pos = ast.sourceCodeLocation\n const startTag = pos && pos.startTag && position(pos.startTag)\n const endTag = pos && pos.endTag && position(pos.endTag)\n\n /** @type {Root} */\n // @ts-expect-error Types are wrong.\n const content = transform(ctx, ast.content)\n\n if (startTag && endTag && ctx.file) {\n content.position = {start: startTag.end, end: endTag.start}\n }\n\n result.content = content\n }\n\n return result\n}\n\n/**\n * Create clean positional information.\n *\n * @param {Context} ctx\n * @param {Node} node\n * @param {P5ElementLocation} location\n * @returns {Position|null}\n */\nfunction createLocation(ctx, node, location) {\n const result = position(location)\n\n if (node.type === 'element') {\n const tail = node.children[node.children.length - 1]\n\n // Bug for unclosed with children.\n // See: .\n if (\n result &&\n !location.endTag &&\n tail &&\n tail.position &&\n tail.position.end\n ) {\n result.end = Object.assign({}, tail.position.end)\n }\n\n if (ctx.verbose) {\n /** @type {Object.} */\n const props = {}\n /** @type {string} */\n let key\n\n for (key in location.attrs) {\n if (own.call(location.attrs, key)) {\n props[find(ctx.schema, key).property] = position(location.attrs[key])\n }\n }\n\n node.data = {\n position: {\n opening: position(location.startTag),\n closing: location.endTag ? position(location.endTag) : null,\n properties: props\n }\n }\n }\n }\n\n return result\n}\n\n/**\n * @param {P5Location} loc\n * @returns {Position|null}\n */\nfunction position(loc) {\n const start = point({\n line: loc.startLine,\n column: loc.startCol,\n offset: loc.startOffset\n })\n const end = point({\n line: loc.endLine,\n column: loc.endCol,\n offset: loc.endOffset\n })\n // @ts-expect-error `null` is fine.\n return start || end ? {start, end} : null\n}\n\n/**\n * @param {Point} point\n * @returns {Point|null}\n */\nfunction point(point) {\n return point.line && point.column ? point : null\n}\n\n/**\n * @param {VFile|Options} value\n * @returns {value is VFile}\n */\nfunction isFile(value) {\n return 'messages' in value\n}\n","/**\n * @typedef {import('unist').Point} Point\n * @typedef {import('vfile').VFile} VFile\n *\n * @typedef {Pick} PositionalPoint\n * @typedef {Required} FullPoint\n * @typedef {NonNullable} Offset\n */\n\n/**\n * Get transform functions for the given `document`.\n *\n * @param {string|Uint8Array|VFile} file\n */\nexport function location(file) {\n var value = String(file)\n /** @type {Array.} */\n var indices = []\n var search = /\\r?\\n|\\r/g\n\n while (search.test(value)) {\n indices.push(search.lastIndex)\n }\n\n indices.push(value.length + 1)\n\n return {toPoint, toOffset}\n\n /**\n * Get the line and column-based `point` for `offset` in the bound indices.\n * Returns a point with `undefined` values when given invalid or out of bounds\n * input.\n *\n * @param {Offset} offset\n * @returns {FullPoint}\n */\n function toPoint(offset) {\n var index = -1\n\n if (offset > -1 && offset < indices[indices.length - 1]) {\n while (++index < indices.length) {\n if (indices[index] > offset) {\n return {\n line: index + 1,\n column: offset - (indices[index - 1] || 0) + 1,\n offset\n }\n }\n }\n }\n\n return {line: undefined, column: undefined, offset: undefined}\n }\n\n /**\n * Get the `offset` for a line and column-based `point` in the bound indices.\n * Returns `-1` when given invalid or out of bounds input.\n *\n * @param {PositionalPoint} point\n * @returns {Offset}\n */\n function toOffset(point) {\n var line = point && point.line\n var column = point && point.column\n /** @type {number} */\n var offset\n\n if (\n typeof line === 'number' &&\n typeof column === 'number' &&\n !Number.isNaN(line) &&\n !Number.isNaN(column) &&\n line - 1 in indices\n ) {\n offset = (indices[line - 2] || 0) + column - 1 || 0\n }\n\n return offset > -1 && offset < indices[indices.length - 1] ? offset : -1\n }\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n *\n * @typedef {import('unist-util-is').AssertPredicate} AssertElement\n * @typedef {import('unist-util-is').AssertPredicate} AssertText\n * @typedef {import('unist-util-is').AssertPredicate} AssertRoot\n *\n * @callback CreateElementLike\n * @param {string} name\n * @param {any} attributes\n * @param {Array.} [children]\n * @returns {any}\n *\n * @typedef Context\n * @property {html|svg} schema\n * @property {string|null} prefix\n * @property {number} key\n * @property {boolean} react\n * @property {boolean} vue\n * @property {boolean} vdom\n * @property {boolean} hyperscript\n *\n * @typedef Options\n * @property {string|null} [prefix]\n * @property {'html'|'svg'} [space]\n */\n\nimport {html, svg, find, hastToReact} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {stringify as commas} from 'comma-separated-tokens'\nimport style from 'style-to-object'\nimport {webNamespaces} from 'web-namespaces'\nimport {convert} from 'unist-util-is'\n\nconst ns = /** @type {Record} */ (webNamespaces)\nconst toReact = /** @type {Record} */ (hastToReact)\n\nconst own = {}.hasOwnProperty\n\n/** @type {AssertRoot} */\n// @ts-expect-error it’s correct.\nconst root = convert('root')\n/** @type {AssertElement} */\n// @ts-expect-error it’s correct.\nconst element = convert('element')\n/** @type {AssertText} */\n// @ts-expect-error it’s correct.\nconst text = convert('text')\n\n/**\n * @template {CreateElementLike} H\n * @param {H} h\n * @param {Element|Root} tree\n * @param {string|boolean|Options} [options]\n * @returns {ReturnType}\n */\nexport function toH(h, tree, options) {\n if (typeof h !== 'function') {\n throw new TypeError('h is not a function')\n }\n\n const r = react(h)\n const v = vue(h)\n const vd = vdom(h)\n /** @type {string|boolean|null|undefined} */\n let prefix\n /** @type {Element} */\n let node\n\n if (typeof options === 'string' || typeof options === 'boolean') {\n prefix = options\n options = {}\n } else {\n if (!options) options = {}\n prefix = options.prefix\n }\n\n if (root(tree)) {\n // @ts-expect-error Allow `doctypes` in there, we’ll filter them out later.\n node =\n tree.children.length === 1 && element(tree.children[0])\n ? tree.children[0]\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: tree.children\n }\n } else if (element(tree)) {\n node = tree\n } else {\n throw new Error(\n // @ts-expect-error runtime.\n 'Expected root or element, not `' + ((tree && tree.type) || tree) + '`'\n )\n }\n\n return transform(h, node, {\n schema: options.space === 'svg' ? svg : html,\n prefix:\n prefix === undefined || prefix === null\n ? r || v || vd\n ? 'h-'\n : null\n : typeof prefix === 'string'\n ? prefix\n : prefix\n ? 'h-'\n : null,\n key: 0,\n react: r,\n vue: v,\n vdom: vd,\n hyperscript: hyperscript(h)\n })\n}\n\n/**\n * Transform a hast node through a hyperscript interface to *anything*!\n *\n * @template {CreateElementLike} H\n * @param {H} h\n * @param {Element} node\n * @param {Context} ctx\n */\nfunction transform(h, node, ctx) {\n const parentSchema = ctx.schema\n let schema = parentSchema\n let name = node.tagName\n /** @type {Record} */\n const attributes = {}\n /** @type {Array.|string>} */\n const nodes = []\n let index = -1\n /** @type {string} */\n let key\n\n if (parentSchema.space === 'html' && name.toLowerCase() === 'svg') {\n schema = svg\n ctx.schema = schema\n }\n\n for (key in node.properties) {\n if (node.properties && own.call(node.properties, key)) {\n addAttribute(attributes, key, node.properties[key], ctx, name)\n }\n }\n\n if (ctx.vdom) {\n if (schema.space === 'html') {\n name = name.toUpperCase()\n } else if (schema.space) {\n attributes.namespace = ns[schema.space]\n }\n }\n\n if (ctx.prefix) {\n ctx.key++\n attributes.key = ctx.prefix + ctx.key\n }\n\n if (node.children) {\n while (++index < node.children.length) {\n const value = node.children[index]\n\n if (element(value)) {\n nodes.push(transform(h, value, ctx))\n } else if (text(value)) {\n nodes.push(value.value)\n }\n }\n }\n\n // Restore parent schema.\n ctx.schema = parentSchema\n\n // Ensure no React warnings are triggered for void elements having children\n // passed in.\n return nodes.length > 0\n ? h.call(node, name, attributes, nodes)\n : h.call(node, name, attributes)\n}\n\n/**\n * @param {Record} props\n * @param {string} prop\n * @param {unknown} value\n * @param {Context} ctx\n * @param {string} name\n */\n// eslint-disable-next-line complexity, max-params\nfunction addAttribute(props, prop, value, ctx, name) {\n const info = find(ctx.schema, prop)\n /** @type {string|undefined} */\n let subprop\n\n // Ignore nullish and `NaN` values.\n // Ignore `false` and falsey known booleans for hyperlike DSLs.\n if (\n value === undefined ||\n value === null ||\n (typeof value === 'number' && Number.isNaN(value)) ||\n (value === false && (ctx.vue || ctx.vdom || ctx.hyperscript)) ||\n (!value && info.boolean && (ctx.vue || ctx.vdom || ctx.hyperscript))\n ) {\n return\n }\n\n if (Array.isArray(value)) {\n // Accept `array`.\n // Most props are space-separated.\n value = info.commaSeparated ? commas(value) : spaces(value)\n }\n\n // Treat `true` and truthy known booleans.\n if (info.boolean && ctx.hyperscript) {\n value = ''\n }\n\n // VDOM, Vue, and React accept `style` as object.\n if (\n info.property === 'style' &&\n typeof value === 'string' &&\n (ctx.react || ctx.vue || ctx.vdom)\n ) {\n value = parseStyle(value, name)\n }\n\n if (ctx.vue) {\n if (info.property !== 'style') subprop = 'attrs'\n } else if (!info.mustUseProperty) {\n if (ctx.vdom) {\n if (info.property !== 'style') subprop = 'attributes'\n } else if (ctx.hyperscript) {\n subprop = 'attrs'\n }\n }\n\n if (subprop) {\n props[subprop] = Object.assign(props[subprop] || {}, {\n [info.attribute]: value\n })\n } else if (info.space && ctx.react) {\n props[toReact[info.property] || info.property] = value\n } else {\n props[info.attribute] = value\n }\n}\n\n/**\n * Check if `h` is `react.createElement`.\n *\n * @param {CreateElementLike} h\n * @returns {boolean}\n */\nfunction react(h) {\n /** @type {unknown} */\n const node = h('div', {})\n return Boolean(\n node &&\n // @ts-expect-error Looks like a React node.\n ('_owner' in node || '_store' in node) &&\n // @ts-expect-error Looks like a React node.\n (node.key === undefined || node.key === null)\n )\n}\n\n/**\n * Check if `h` is `hyperscript`.\n *\n * @param {CreateElementLike} h\n * @returns {boolean}\n */\nfunction hyperscript(h) {\n return 'context' in h && 'cleanup' in h\n}\n\n/**\n * Check if `h` is `virtual-dom/h`.\n *\n * @param {CreateElementLike} h\n * @returns {boolean}\n */\nfunction vdom(h) {\n /** @type {unknown} */\n const node = h('div', {})\n // @ts-expect-error Looks like a vnode.\n return node.type === 'VirtualNode'\n}\n\n/**\n * Check if `h` is Vue.\n *\n * @param {CreateElementLike} h\n * @returns {boolean}\n */\nfunction vue(h) {\n /** @type {unknown} */\n const node = h('div', {})\n // @ts-expect-error Looks like a Vue node.\n return Boolean(node && node.context && node.context._isVue)\n}\n\n/**\n * @param {string} value\n * @param {string} tagName\n * @returns {Record}\n */\nfunction parseStyle(value, tagName) {\n /** @type {Record} */\n const result = {}\n\n try {\n style(value, (name, value) => {\n if (name.slice(0, 4) === '-ms-') name = 'ms-' + name.slice(4)\n\n result[\n name.replace(\n /-([a-z])/g,\n /**\n * @param {string} _\n * @param {string} $1\n * @returns {string}\n */ (_, $1) => $1.toUpperCase()\n )\n ] = value\n })\n } catch (error) {\n error.message =\n tagName + '[style]' + error.message.slice('undefined'.length)\n throw error\n }\n\n return result\n}\n","var own = {}.hasOwnProperty\n\n/**\n * @callback Handler\n * @param {...unknown} value\n * @return {unknown}\n *\n * @typedef {Record} Handlers\n *\n * @typedef {Object} Options\n * @property {Handler} [unknown]\n * @property {Handler} [invalid]\n * @property {Handlers} [handlers]\n */\n\n/**\n * Handle values based on a property.\n *\n * @param {string} key\n * @param {Options} [options]\n */\nexport function zwitch(key, options) {\n var settings = options || {}\n\n /**\n * Handle one value.\n * Based on the bound `key`, a respective handler will be called.\n * If `value` is not an object, or doesn’t have a `key` property, the special\n * “invalid” handler will be called.\n * If `value` has an unknown `key`, the special “unknown” handler will be\n * called.\n *\n * All arguments, and the context object, are passed through to the handler,\n * and it’s result is returned.\n *\n * @param {...unknown} [value]\n * @this {unknown}\n * @returns {unknown}\n * @property {Handler} invalid\n * @property {Handler} unknown\n * @property {Handlers} handlers\n */\n function one(value) {\n var fn = one.invalid\n var handlers = one.handlers\n\n if (value && own.call(value, key)) {\n fn = own.call(handlers, value[key]) ? handlers[value[key]] : one.unknown\n }\n\n if (fn) {\n return fn.apply(this, arguments)\n }\n }\n\n one.handlers = settings.handlers || {}\n one.invalid = settings.invalid\n one.unknown = settings.unknown\n\n return one\n}\n","/**\n * @typedef {import('parse5').Node} P5Node\n * @typedef {import('parse5').Document} P5Document\n * @typedef {import('parse5').DocumentFragment} P5Fragment\n * @typedef {import('parse5').DocumentType} P5Doctype\n * @typedef {import('parse5').CommentNode} P5Comment\n * @typedef {import('parse5').TextNode} P5Text\n * @typedef {import('parse5').Element} P5Element\n * @typedef {import('parse5').Attribute} P5Attribute\n * @typedef {import('parse5').ParentNode} P5Parent\n * @typedef {Exclude} P5Child\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('property-information').Info} Info\n * @typedef {'html'|'svg'} Space\n * @typedef {import('hast').Parent} Parent\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {Parent['children'][number]} Child\n * @typedef {Child|Root} Node\n *\n * @callback Handle\n * @param {Node} node\n * @param {Schema} schema\n * @returns {P5Node}\n */\n\nimport {html, svg, find} from 'property-information'\nimport {toH} from 'hast-to-hyperscript'\nimport {webNamespaces} from 'web-namespaces'\nimport {zwitch} from 'zwitch'\n\nvar own = {}.hasOwnProperty\n\nvar one = zwitch('type', {handlers: {root, element, text, comment, doctype}})\n\n/**\n * Transform a tree from hast to Parse5’s AST.\n *\n * @param {Node} tree\n * @param {Space} [space='html']\n * @returns {P5Node}\n */\nexport function toParse5(tree, space) {\n // @ts-ignore Types are wrong.\n return one(tree, space === 'svg' ? svg : html)\n}\n\n/**\n * @type {Handle}\n * @param {Root} node\n * @returns {P5Document}\n */\nfunction root(node, schema) {\n /** @type {P5Document} */\n var p5 = {\n nodeName: '#document',\n mode: (node.data || {}).quirksMode ? 'quirks' : 'no-quirks',\n childNodes: []\n }\n // @ts-ignore Assume correct children.\n p5.childNodes = all(node.children, p5, schema)\n return patch(node, p5)\n}\n\n/**\n * @type {Handle}\n * @param {Root} node\n * @returns {P5Fragment}\n */\nfunction fragment(node, schema) {\n /** @type {P5Fragment} */\n var p5 = {nodeName: '#document-fragment', childNodes: []}\n // @ts-ignore Assume correct children.\n p5.childNodes = all(node.children, p5, schema)\n return patch(node, p5)\n}\n\n/**\n * @type {Handle}\n * @param {Doctype} node\n * @returns {P5Doctype}\n */\nfunction doctype(node) {\n return patch(node, {\n nodeName: '#documentType',\n name: 'html',\n publicId: '',\n systemId: '',\n parentNode: undefined\n })\n}\n\n/**\n * @type {Handle}\n * @param {Text} node\n * @returns {P5Text}\n */\nfunction text(node) {\n return patch(node, {\n nodeName: '#text',\n value: node.value,\n parentNode: undefined\n })\n}\n\n/**\n * @type {Handle}\n * @param {Comment} node\n * @returns {P5Comment}\n */\nfunction comment(node) {\n return patch(node, {\n nodeName: '#comment',\n data: node.value,\n parentNode: undefined\n })\n}\n\n/**\n * @type {Handle}\n * @param {Element} node\n * @returns {P5Element}\n */\nfunction element(node, schema) {\n /** @type {Space} */\n // @ts-ignore Assume space.\n var space = schema.space\n return toH(h, Object.assign({}, node, {children: []}), {space})\n\n /**\n * @param {string} name\n * @param {Object.} attrs\n */\n function h(name, attrs) {\n /** @type {Array.} */\n var values = []\n /** @type {Info} */\n var info\n /** @type {P5Attribute} */\n var value\n /** @type {string} */\n var key\n /** @type {number} */\n var index\n /** @type {P5Element} */\n var p5\n\n for (key in attrs) {\n if (!own.call(attrs, key) || attrs[key] === false) {\n continue\n }\n\n info = find(schema, key)\n\n if (info.boolean && !attrs[key]) {\n continue\n }\n\n value = {name: key, value: attrs[key] === true ? '' : String(attrs[key])}\n\n if (info.space && info.space !== 'html' && info.space !== 'svg') {\n index = key.indexOf(':')\n\n if (index < 0) {\n value.prefix = ''\n } else {\n value.name = key.slice(index + 1)\n value.prefix = key.slice(0, index)\n }\n\n value.namespace = webNamespaces[info.space]\n }\n\n values.push(value)\n }\n\n if (schema.space === 'html' && node.tagName === 'svg') schema = svg\n\n p5 = patch(node, {\n nodeName: name,\n tagName: name,\n attrs: values,\n namespaceURI: webNamespaces[schema.space],\n childNodes: [],\n parentNode: undefined\n })\n\n // @ts-ignore Assume correct children.\n p5.childNodes = all(node.children, p5, schema)\n\n // @ts-ignore Types are wrong.\n if (name === 'template') p5.content = fragment(node.content, schema)\n\n return p5\n }\n}\n\n/**\n * @param {Array.} children\n * @param {P5Parent} p5\n * @param {Schema} schema\n * @returns {Array.}\n */\nfunction all(children, p5, schema) {\n var index = -1\n /** @type {Array.} */\n var result = []\n /** @type {P5Child} */\n var child\n\n if (children) {\n while (++index < children.length) {\n // @ts-ignore Assume child.\n child = one(children[index], schema)\n\n // @ts-ignore types are wrong.\n child.parentNode = p5\n\n result.push(child)\n }\n }\n\n return result\n}\n\n/**\n * Patch specific properties.\n *\n * @template {P5Node} T\n * @param {Node} node\n * @param {T} p5\n * @returns {T}\n */\nfunction patch(node, p5) {\n var position = node.position\n\n if (position && position.start && position.end) {\n // @ts-ignore Types are wrong.\n p5.sourceCodeLocation = {\n startLine: position.start.line,\n startCol: position.start.column,\n startOffset: position.start.offset,\n endLine: position.end.line,\n endCol: position.end.column,\n endOffset: position.end.offset\n }\n }\n\n return p5\n}\n","/**\n * List of HTML void tag names.\n *\n * @type {Array}\n */\nexport const htmlVoidElements = [\n 'area',\n 'base',\n 'basefont',\n 'bgsound',\n 'br',\n 'col',\n 'command',\n 'embed',\n 'frame',\n 'hr',\n 'image',\n 'img',\n 'input',\n 'isindex',\n 'keygen',\n 'link',\n 'menuitem',\n 'meta',\n 'nextid',\n 'param',\n 'source',\n 'track',\n 'wbr'\n]\n","/**\n * @typedef {import('vfile').VFile} VFile\n * @typedef {import('parse5').Document} P5Document\n * @typedef {import('parse5').DocumentFragment} P5Fragment\n * @typedef {Omit} P5Element\n * @typedef {import('parse5').Attribute} P5Attribute\n * @typedef {Omit & {startOffset: number|undefined, endOffset: number|undefined}} P5Location\n * @typedef {import('parse5').ParserOptions} P5ParserOptions\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Content} Content\n * @typedef {Root|Content} Node\n * @typedef {import('../complex-types').Raw} Raw\n *\n * @typedef {Omit & {value: {stitch: Node}}} Stitch\n *\n * @typedef Options\n * @property {Array.} [passThrough]\n * List of custom hast node types to pass through (keep) in hast.\n * If the passed through nodes have children, those children are expected to\n * be hast and will be handled.\n *\n * @typedef HiddenTokenizer\n * @property {Array.} __mixins\n * Way too simple, but works for us.\n * @property {HiddenPreprocessor} preprocessor\n * @property {(value: string) => void} write\n * @property {() => number} _consume\n * @property {Array.} tokenQueue\n * @property {string} state\n * @property {string} returnState\n * @property {number} charRefCode\n * @property {Array.} tempBuff\n * @property {Function} _flushCodePointsConsumedAsCharacterReference\n * @property {string} lastStartTagName\n * @property {number} consumedAfterSnapshot\n * @property {boolean} active\n * @property {HiddenToken|undefined} currentCharacterToken\n * @property {HiddenToken|undefined} currentToken\n * @property {unknown} currentAttr\n * @property {Function} NAMED_CHARACTER_REFERENCE_STATE\n * @property {Function} NUMERIC_CHARACTER_REFERENCE_END_STATE\n *\n * @typedef {Object. & {location: P5Location}} HiddenToken\n *\n * @typedef HiddenPreprocessor\n * @property {string|undefined} html\n * @property {number} pos\n * @property {number} lastGapPos\n * @property {number} lastCharPos\n * @property {Array.} gapStack\n * @property {boolean} skipNextNewLine\n * @property {boolean} lastChunkWritten\n * @property {boolean} endOfChunkHit\n *\n * @typedef HiddenLocationTracker\n * @property {P5Location|undefined} currentAttrLocation\n * @property {P5Location} ctLoc\n * @property {HiddenPosTracker} posTracker\n *\n * @typedef HiddenPosTracker\n * @property {boolean} isEol\n * @property {number} lineStartPos\n * @property {number} droppedBufferSize\n * @property {number} offset\n * @property {number} col\n * @property {number} line\n */\n\n// @ts-expect-error: untyped.\nimport Parser from 'parse5/lib/parser/index.js'\nimport {pointStart, pointEnd} from 'unist-util-position'\nimport {visit} from 'unist-util-visit'\nimport {fromParse5} from 'hast-util-from-parse5'\nimport {toParse5} from 'hast-util-to-parse5'\nimport {htmlVoidElements} from 'html-void-elements'\nimport {webNamespaces} from 'web-namespaces'\nimport {zwitch} from 'zwitch'\n\nconst inTemplateMode = 'IN_TEMPLATE_MODE'\nconst dataState = 'DATA_STATE'\nconst characterToken = 'CHARACTER_TOKEN'\nconst startTagToken = 'START_TAG_TOKEN'\nconst endTagToken = 'END_TAG_TOKEN'\nconst commentToken = 'COMMENT_TOKEN'\nconst doctypeToken = 'DOCTYPE_TOKEN'\n\n/** @type {P5ParserOptions} */\nconst parseOptions = {sourceCodeLocationInfo: true, scriptingEnabled: false}\n\n/**\n * Given a hast tree and an optional vfile (for positional info), return a new\n * parsed-again hast tree.\n *\n * @param tree\n * Original hast tree.\n * @param file\n * Virtual file for positional info, optional.\n * @param options\n * Configuration.\n */\nexport const raw =\n /**\n * @type {(\n * ((tree: Node, file: VFile|undefined, options?: Options) => Node) &\n * ((tree: Node, options?: Options) => Node)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {VFile} [file]\n * @param {Options} [options]\n */\n function (tree, file, options) {\n let index = -1\n const parser = new Parser(parseOptions)\n const one = zwitch('type', {\n // @ts-expect-error: hush.\n handlers: {root, element, text, comment, doctype, raw: handleRaw},\n // @ts-expect-error: hush.\n unknown\n })\n /** @type {boolean|undefined} */\n let stitches\n /** @type {HiddenTokenizer|undefined} */\n let tokenizer\n /** @type {HiddenPreprocessor|undefined} */\n let preprocessor\n /** @type {HiddenPosTracker|undefined} */\n let posTracker\n /** @type {HiddenLocationTracker|undefined} */\n let locationTracker\n\n if (isOptions(file)) {\n options = file\n file = undefined\n }\n\n if (options && options.passThrough) {\n while (++index < options.passThrough.length) {\n // @ts-expect-error: hush.\n one.handlers[options.passThrough[index]] = stitch\n }\n }\n\n const result = fromParse5(\n documentMode(tree) ? document() : fragment(),\n file\n )\n\n if (stitches) {\n visit(result, 'comment', (node, index, parent) => {\n const stitch = /** @type {Stitch} */ (/** @type {unknown} */ (node))\n if (stitch.value.stitch && parent !== null && index !== null) {\n // @ts-expect-error: assume the stitch is allowed.\n parent.children[index] = stitch.value.stitch\n return index\n }\n })\n }\n\n // Unpack if possible and when not given a `root`.\n if (\n tree.type !== 'root' &&\n result.type === 'root' &&\n result.children.length === 1\n ) {\n return result.children[0]\n }\n\n return result\n\n /**\n * @returns {P5Fragment}\n */\n function fragment() {\n /** @type {P5Element} */\n const context = {\n nodeName: 'template',\n tagName: 'template',\n attrs: [],\n namespaceURI: webNamespaces.html,\n childNodes: []\n }\n /** @type {P5Element} */\n const mock = {\n nodeName: 'documentmock',\n tagName: 'documentmock',\n attrs: [],\n namespaceURI: webNamespaces.html,\n childNodes: []\n }\n /** @type {P5Fragment} */\n const doc = {nodeName: '#document-fragment', childNodes: []}\n\n parser._bootstrap(mock, context)\n parser._pushTmplInsertionMode(inTemplateMode)\n parser._initTokenizerForFragmentParsing()\n parser._insertFakeRootElement()\n parser._resetInsertionMode()\n parser._findFormInFragmentContext()\n\n tokenizer = parser.tokenizer\n /* c8 ignore next */\n if (!tokenizer) throw new Error('Expected `tokenizer`')\n preprocessor = tokenizer.preprocessor\n locationTracker = tokenizer.__mixins[0]\n posTracker = locationTracker.posTracker\n\n one(tree)\n\n parser._adoptNodes(mock.childNodes[0], doc)\n\n return doc\n }\n\n /**\n * @returns {P5Document}\n */\n function document() {\n /** @type {P5Document} */\n const doc = parser.treeAdapter.createDocument()\n\n parser._bootstrap(doc, undefined)\n tokenizer = parser.tokenizer\n /* c8 ignore next */\n if (!tokenizer) throw new Error('Expected `tokenizer`')\n preprocessor = tokenizer.preprocessor\n locationTracker = tokenizer.__mixins[0]\n posTracker = locationTracker.posTracker\n\n one(tree)\n\n return doc\n }\n\n /**\n * @param {Content[]} nodes\n * @returns {void}\n */\n function all(nodes) {\n let index = -1\n\n /* istanbul ignore else - invalid nodes, see rehypejs/rehype-raw#7. */\n if (nodes) {\n while (++index < nodes.length) {\n one(nodes[index])\n }\n }\n }\n\n /**\n * @param {Root} node\n * @returns {void}\n */\n function root(node) {\n all(node.children)\n }\n\n /**\n * @param {Element} node\n * @returns {void}\n */\n function element(node) {\n resetTokenizer()\n parser._processToken(startTag(node), webNamespaces.html)\n\n all(node.children)\n\n if (!htmlVoidElements.includes(node.tagName)) {\n resetTokenizer()\n parser._processToken(endTag(node))\n }\n }\n\n /**\n * @param {Text} node\n * @returns {void}\n */\n function text(node) {\n resetTokenizer()\n parser._processToken({\n type: characterToken,\n chars: node.value,\n location: createParse5Location(node)\n })\n }\n\n /**\n * @param {Doctype} node\n * @returns {void}\n */\n function doctype(node) {\n resetTokenizer()\n parser._processToken({\n type: doctypeToken,\n name: 'html',\n forceQuirks: false,\n publicId: '',\n systemId: '',\n location: createParse5Location(node)\n })\n }\n\n /**\n * @param {Comment|Stitch} node\n * @returns {void}\n */\n function comment(node) {\n resetTokenizer()\n parser._processToken({\n type: commentToken,\n data: node.value,\n location: createParse5Location(node)\n })\n }\n\n /**\n * @param {Raw} node\n * @returns {void}\n */\n function handleRaw(node) {\n const start = pointStart(node)\n const line = start.line || 1\n const column = start.column || 1\n const offset = start.offset || 0\n\n /* c8 ignore next 4 */\n if (!preprocessor) throw new Error('Expected `preprocessor`')\n if (!tokenizer) throw new Error('Expected `tokenizer`')\n if (!posTracker) throw new Error('Expected `posTracker`')\n if (!locationTracker) throw new Error('Expected `locationTracker`')\n\n // Reset preprocessor:\n // See: .\n preprocessor.html = undefined\n preprocessor.pos = -1\n preprocessor.lastGapPos = -1\n preprocessor.lastCharPos = -1\n preprocessor.gapStack = []\n preprocessor.skipNextNewLine = false\n preprocessor.lastChunkWritten = false\n preprocessor.endOfChunkHit = false\n\n // Reset preprocessor mixin:\n // See: .\n posTracker.isEol = false\n posTracker.lineStartPos = -column + 1 // Looks weird, but ensures we get correct positional info.\n posTracker.droppedBufferSize = offset\n posTracker.offset = 0\n posTracker.col = 1\n posTracker.line = line\n\n // Reset location tracker:\n // See: .\n locationTracker.currentAttrLocation = undefined\n locationTracker.ctLoc = createParse5Location(node)\n\n // See the code for `parse` and `parseFragment`:\n // See: .\n tokenizer.write(node.value)\n parser._runParsingLoop(null)\n\n // Character references hang, so if we ended there, we need to flush\n // those too.\n // We reset the preprocessor as if the document ends here.\n // Then one single call to the relevant state does the trick, parse5\n // consumes the whole token.\n if (\n tokenizer.state === 'NAMED_CHARACTER_REFERENCE_STATE' ||\n tokenizer.state === 'NUMERIC_CHARACTER_REFERENCE_END_STATE'\n ) {\n preprocessor.lastChunkWritten = true\n tokenizer[tokenizer.state](tokenizer._consume())\n }\n\n // Process final characters if they’re still there after hibernating.\n // Similar to:\n // See: .\n const token = tokenizer.currentCharacterToken\n\n if (token) {\n token.location.endLine = posTracker.line\n token.location.endCol = posTracker.col + 1\n token.location.endOffset = posTracker.offset + 1\n parser._processToken(token)\n }\n }\n\n /**\n * @param {Node} node\n */\n function stitch(node) {\n stitches = true\n\n /** @type {Node} */\n let clone\n\n // Recurse, because to somewhat handle `[]` (where `[]` denotes the\n // passed through node).\n if ('children' in node) {\n clone = {\n ...node,\n children: raw(\n {type: 'root', children: node.children},\n file,\n options\n // @ts-expect-error Assume a given parent yields a parent.\n ).children\n }\n } else {\n clone = {...node}\n }\n\n // Hack: `value` is supposed to be a string, but as none of the tools\n // (`parse5` or `hast-util-from-parse5`) looks at it, we can pass nodes\n // through.\n comment({type: 'comment', value: {stitch: clone}})\n }\n\n function resetTokenizer() {\n /* c8 ignore next */\n if (!tokenizer) throw new Error('Expected `tokenizer`')\n\n // Reset tokenizer:\n // See: .\n // Especially putting it back in the `data` state is useful: some elements,\n // like textareas and iframes, change the state.\n // See GH-7.\n // But also if broken HTML is in `raw`, and then a correct element is given.\n // See GH-11.\n tokenizer.tokenQueue = []\n tokenizer.state = dataState\n tokenizer.returnState = ''\n tokenizer.charRefCode = -1\n tokenizer.tempBuff = []\n tokenizer.lastStartTagName = ''\n tokenizer.consumedAfterSnapshot = -1\n tokenizer.active = false\n tokenizer.currentCharacterToken = undefined\n tokenizer.currentToken = undefined\n tokenizer.currentAttr = undefined\n }\n }\n )\n/**\n * @param {Element} node\n * @returns {HiddenToken}\n */\nfunction startTag(node) {\n /** @type {P5Location} */\n const location = Object.assign(createParse5Location(node))\n // @ts-expect-error extra positional info.\n location.startTag = Object.assign({}, location)\n\n // Untyped token.\n return {\n type: startTagToken,\n tagName: node.tagName,\n selfClosing: false,\n attrs: attributes(node),\n location\n }\n}\n\n/**\n * @param {Element} node\n * @returns {Array.}\n */\nfunction attributes(node) {\n return toParse5({\n tagName: node.tagName,\n type: 'element',\n properties: node.properties,\n children: []\n // @ts-expect-error Assume element.\n }).attrs\n}\n\n/**\n * @param {Element} node\n * @returns {HiddenToken}\n */\nfunction endTag(node) {\n /** @type {P5Location} */\n const location = Object.assign(createParse5Location(node))\n // @ts-expect-error extra positional info.\n location.startTag = Object.assign({}, location)\n\n // Untyped token.\n return {\n type: endTagToken,\n tagName: node.tagName,\n attrs: [],\n location\n }\n}\n\n/**\n * @param {Node} node\n */\nfunction unknown(node) {\n throw new Error('Cannot compile `' + node.type + '` node')\n}\n\n/**\n * @param {Node} node\n * @returns {boolean}\n */\nfunction documentMode(node) {\n const head = node.type === 'root' ? node.children[0] : node\n return Boolean(\n head &&\n (head.type === 'doctype' ||\n (head.type === 'element' && head.tagName === 'html'))\n )\n}\n\n/**\n * @param {Node|Stitch} node\n * @returns {P5Location}\n */\nfunction createParse5Location(node) {\n const start = pointStart(node)\n const end = pointEnd(node)\n\n return {\n startLine: start.line,\n startCol: start.column,\n startOffset: start.offset,\n endLine: end.line,\n endCol: end.column,\n endOffset: end.offset\n }\n}\n\n/**\n * @param {VFile|Options|undefined} value\n * @return {value is Options}\n */\nfunction isOptions(value) {\n return Boolean(value && !('message' in value && 'messages' in value))\n}\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-raw').Options} Options\n * @typedef {import('hast-util-raw')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {raw} from 'hast-util-raw'\n\n/**\n * Plugin to parse the tree again (and raw nodes).\n * Keeping positional info OK. 🙌\n *\n * @type {import('unified').Plugin<[Options?] | Array, Root>}\n */\nexport default function rehypeRaw(options = {}) {\n return (tree, file) => {\n // Assume that when a root was given, it’s also returned.\n const result = /** @type {Root} */ (raw(tree, file, options))\n return result\n }\n}\n","import { Element, Comment, Literal, ElementContent, RootContent, Properties } from 'hast';\nimport { RehypeAttrsOptions } from './';\n\nexport const getURLParameters = (url: string): Record =>\n(url.match(/([^?=&]+)(=([^&]*))/g) || []).reduce(\n (a: Record, v: string) => (\n (a[v.slice(0, v.indexOf('='))] = v.slice(v.indexOf('=') + 1)), a\n ),\n {},\n);\n\nexport const prevChild = (data: Literal[] = [], index: number): Comment | undefined => {\n let i = index;\n while (i > -1) {\n i--;\n if (!data[i]) return\n if ((data[i] && data[i].value && (data[i].value as string).replace(/(\\n|\\s)/g, '') !== '') || data[i].type !== 'text') {\n if (!/^rehype:/.test(data[i].value as string) || (data[i].type as string) !== 'comment') return;\n return data[i] as unknown as Comment;\n }\n }\n return;\n}\n\nexport const nextChild = (data: RootContent[] | ElementContent[] = [], index: number, tagName?: string): ElementContent | undefined => {\n let i = index;\n while (i < data.length) {\n i++;\n if (tagName) {\n const element = data[i] as Literal & Element;\n if (element && element.value && (element.value as string).replace(/(\\n|\\s)/g, '') !== '' || data[i] && (data[i].type as string) === 'element') {\n return element.tagName === tagName ? element : undefined\n }\n } else {\n const element = data[i] as ElementContent & Literal;\n if (!element || (element.type !== 'text' && (element.type as string) !== 'comment') || (element.type === 'text' && (element.value as string).replace(/(\\n|\\s)/g, '') !== '')) return;\n if ((element.type as string) === 'comment') {\n if (!/^rehype:/.test(element.value as string)) return;\n const nextNode = nextChild(data, i, 'pre')\n if (nextNode) return;\n return element;\n }\n }\n }\n return\n}\n\n/**\n * 获取代码注视的位置\n * @param data 数据\n * @param index 当前数据所在的位置\n * @returns 返回 当前参数数据 Object,`{}`\n */\nexport const getCommentObject = ({ value = '' }: Comment): Properties => {\n const param = getURLParameters(value.replace(/^rehype:/, ''));\n Object.keys(param).forEach((keyName: string) => {\n if (param[keyName] === 'true') {\n param[keyName] = true;\n }\n if (param[keyName] === 'false') {\n param[keyName] = false;\n }\n if (typeof param[keyName] === 'string' && !/^0/.test(param[keyName] as string) && !isNaN(+param[keyName])) {\n param[keyName] = +param[keyName];\n }\n })\n return param;\n}\n\nexport type DataConfig = {\n 'data-config': Properties\n}\n\nexport const propertiesHandle = (defaultAttrs?: Properties | null, attrs?: Properties, type?: RehypeAttrsOptions['properties']): Properties | DataConfig => {\n if (type === 'string') {\n return { ...defaultAttrs, 'data-config': JSON.stringify({ ...attrs, rehyp: true })}\n } else if (type === 'attr') {\n return { ...defaultAttrs, ...attrs}\n }\n return { ...defaultAttrs, 'data-config': { ...attrs, rehyp: true }}\n}","import { Plugin } from 'unified';\nimport { Root, Element, Comment, Properties, Literal } from 'hast';\nimport { visit } from 'unist-util-visit';\nimport { propertiesHandle, nextChild, prevChild, getCommentObject } from './utils';\n\nexport type RehypeAttrsOptions = {\n /**\n * ## `data`\n * \n * ```markdown\n * text\n * \n * ```\n * \n * ⇣⇣⇣⇣⇣⇣\n * \n * ```html\n *

text

\n * ```\n * \n * ## `string`\n * \n * ```markdown\n * text\n * \n * ```\n * \n * ⇣⇣⇣⇣⇣⇣\n * \n * ```html\n *

text

\n * ```\n * \n * ## attr\n * \n * ```markdown\n * text\n * \n * ```\n * ⇣⇣⇣⇣⇣⇣\n * ```html\n *

text

\n * ```\n */\n properties: 'data' | 'string' | 'attr';\n}\n\nconst defaultOptions: RehypeAttrsOptions = {\n properties: 'data',\n}\n\nconst rehypeAttrs: Plugin<[RehypeAttrsOptions?], Root> = (options) => {\n const opts = { ...defaultOptions, ...options }\n return (tree) => {\n visit(tree, 'element', (node, index, parent) => {\n if (node.tagName === 'pre' && node && Array.isArray(node.children) && parent && Array.isArray(parent.children) && parent.children.length > 1) {\n const firstChild = node.children[0] as Element;\n if (firstChild && firstChild.tagName === 'code' && typeof index === 'number') {\n const child = prevChild(parent.children as Literal[], index);\n if (child) {\n const attr = getCommentObject(child);\n if (Object.keys(attr).length > 0) {\n node.properties = { ...node.properties, ...{ 'data-type': 'rehyp' } }\n firstChild.properties = propertiesHandle(firstChild.properties, attr, opts.properties) as Properties\n }\n }\n }\n }\n\n if (/^(em|strong|b|a|i|p|pre|kbd|blockquote|h(1|2|3|4|5|6)|code|table|img|del|ul|ol)$/.test(node.tagName) && parent && Array.isArray(parent.children) && typeof index === 'number') {\n const child = nextChild(parent.children, index)\n if (child) {\n const attr = getCommentObject(child as Comment)\n if (Object.keys(attr).length > 0) {\n node.properties = propertiesHandle(node.properties, attr, opts.properties) as Properties\n }\n }\n }\n });\n }\n}\n\n\nexport default rehypeAttrs\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n */\n\n/**\n * Options for unist util filter\n *\n * @typedef {Object} FilterOptions\n * @property {boolean} [cascade=true] Whether to drop parent nodes if they had children, but all their children were filtered out.\n */\n\nimport {convert} from 'unist-util-is'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Create a new tree consisting of copies of all nodes that pass test.\n * The tree is walked in preorder (NLR), visiting the node itself, then its head, etc.\n *\n * @param tree Tree to filter.\n * @param options Configuration (optional).\n * @param test is-compatible test (such as a type).\n * @returns Given `tree` or `null` if it didn’t pass `test`.\n */\nexport const filter =\n /**\n * @type {(\n * ((node: Tree, options: FilterOptions, test: Check) => import('./complex-types').Matches) &\n * ((node: Tree, test: Check) => import('./complex-types').Matches) &\n * ((node: Tree, options?: FilterOptions) => Tree)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {FilterOptions} options\n * @param {Test} test\n * @returns {Node|null}\n */\n function (tree, options, test) {\n const is = convert(test || options)\n const cascade =\n options.cascade === undefined || options.cascade === null\n ? true\n : options.cascade\n\n return preorder(tree)\n\n /**\n * @param {Node} node\n * @param {number|undefined} [index]\n * @param {Parent|undefined} [parent]\n * @returns {Node|null}\n */\n function preorder(node, index, parent) {\n /** @type {Array.} */\n const children = []\n /** @type {number} */\n let childIndex\n /** @type {Node} */\n let result\n /** @type {string} */\n let key\n\n if (!is(node, index, parent)) return null\n\n // @ts-expect-error: Looks like a parent.\n if (node.children) {\n childIndex = -1\n\n // @ts-expect-error Looks like a parent.\n while (++childIndex < node.children.length) {\n // @ts-expect-error Looks like a parent.\n result = preorder(node.children[childIndex], childIndex, node)\n\n if (result) {\n children.push(result)\n }\n }\n\n // @ts-expect-error Looks like a parent.\n if (cascade && node.children.length > 0 && children.length === 0)\n return null\n }\n\n // Create a shallow clone, using the new children.\n /** @type {typeof node} */\n // @ts-expect-error all the fields will be copied over.\n const next = {}\n\n for (key in node) {\n if (own.call(node, key)) {\n // @ts-expect-error: Looks like a record.\n next[key] = key === 'children' ? children : node[key]\n }\n }\n\n return next\n }\n }\n )\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Root} Root\n * @typedef Options options\n * Configuration.\n * @property {boolean} [showLineNumbers]\n * Set `showLineNumbers` to `true` to always display line number\n * @property {boolean} [ignoreMissing]\n * Set `ignoreMissing` to `true` to ignore unsupported languages and line highlighting when no language is specified\n */\n\nimport { visit } from 'unist-util-visit'\nimport { toString } from 'hast-util-to-string'\nimport { filter } from 'unist-util-filter'\nimport rangeParser from 'parse-numeric-range'\n\n/**\n * @param {Element} node\n * @return {string|null}\n */\nconst getLanguage = (node) => {\n const className = node.properties.className\n //@ts-ignore\n for (const classListItem of className) {\n if (classListItem.slice(0, 9) === 'language-') {\n return classListItem.slice(9).toLowerCase()\n }\n }\n return null\n}\n\n/**\n * Create a closure that determines if we have to highlight the given index\n *\n * @param {string} meta\n * @return { (index:number) => boolean }\n */\nconst calculateLinesToHighlight = (meta) => {\n const RE = /{([\\d,-]+)}/\n // Remove space between {} e.g. {1, 3}\n const parsedMeta = meta\n .split(',')\n .map((str) => str.trim())\n .join()\n if (RE.test(parsedMeta)) {\n const strlineNumbers = RE.exec(parsedMeta)[1]\n const lineNumbers = rangeParser(strlineNumbers)\n return (index) => lineNumbers.includes(index + 1)\n } else {\n return () => false\n }\n}\n\n/**\n * Check if we want to start the line numbering from a given number or 1\n * showLineNumbers=5, will start the numbering from 5\n * @param {string} meta\n * @returns {number}\n */\nconst calculateStartingLine = (meta) => {\n const RE = /showLineNumbers=(?\\d+)/i\n // pick the line number after = using a named capturing group\n if (RE.test(meta)) {\n const {\n groups: { lines },\n } = RE.exec(meta)\n return Number(lines)\n }\n return 1\n}\n\n/**\n * Split line to div node with className `code-line`\n *\n * @param {string} text\n * @return {Element[]}\n */\nconst splitLine = (text) => {\n // Xdm Markdown parses every code line with \\n\n const textArray = text.split(/\\n/)\n\n // Remove last line \\n which results in empty array\n if (textArray[textArray.length - 1].trim() === '') {\n textArray.pop()\n }\n\n // Empty array are actually line segments so we convert them back to newlines\n return textArray.map((line) => {\n return {\n type: 'element',\n tagName: 'span',\n properties: { className: ['code-line'] },\n children: [{ type: 'text', value: line }],\n }\n })\n}\n\n/**\n * Add a node start and end line position information for each text node\n *\n * @return { (ast:Element['children']) => Element['children'] }\n *\n */\nconst addNodePositionClosure = () => {\n let startLineNum = 1\n /**\n * @param {Element['children']} ast\n * @return {Element['children']}\n */\n const addNodePosition = (ast) => {\n // @ts-ignore\n return ast.reduce((result, node) => {\n if (node.type === 'text') {\n const value = /** @type {string} */ (node.value)\n const numLines = (value.match(/\\n/g) || '').length\n node.position = {\n // column: 0 is to make the ts compiler happy but we do not use this field\n start: { line: startLineNum, column: 0 },\n end: { line: startLineNum + numLines, column: 0 },\n }\n startLineNum = startLineNum + numLines\n result.push(node)\n return result\n }\n\n if (Object.prototype.hasOwnProperty.call(node, 'children')) {\n const initialLineNum = startLineNum\n // @ts-ignore\n node.children = addNodePosition(node.children, startLineNum)\n result.push(node)\n node.position = {\n start: { line: initialLineNum, column: 0 },\n end: { line: startLineNum, column: 0 },\n }\n return result\n }\n\n result.push(node)\n return result\n }, [])\n }\n return addNodePosition\n}\n\n/**\n * Split multiline text nodes into individual nodes with positioning\n *\n * @param {Element['children']} ast\n * @return {Element['children']}\n */\nconst splitTextByLine = (ast) => {\n //@ts-ignore\n return ast.reduce((result, node) => {\n if (node.type === 'text') {\n if (node.value.indexOf('\\n') === -1) {\n result.push(node)\n return result\n }\n\n const lines = node.value.split('\\n')\n for (const [i, line] of lines.entries()) {\n result.push({\n type: 'text',\n value: i === lines.length - 1 ? line : line + '\\n',\n position: {\n start: { line: node.position.start.line + i },\n end: { line: node.position.start.line + i },\n },\n })\n }\n\n return result\n }\n\n if (Object.prototype.hasOwnProperty.call(node, 'children')) {\n // @ts-ignore\n node.children = splitTextByLine(node.children)\n result.push(node)\n return result\n }\n\n result.push(node)\n return result\n }, [])\n}\n\n/**\n * Rehype prism plugin generator that highlights code blocks with refractor (prismjs)\n *\n * Pass in your own refractor object with the required languages registered:\n * https://github.com/wooorm/refractor#refractorregistersyntax\n *\n * @param {import('refractor/lib/core').Refractor} refractor\n * @return {import('unified').Plugin<[Options?], Root>}\n */\nconst rehypePrismGenerator = (refractor) => {\n return (options = {}) => {\n return (tree) => {\n visit(tree, 'element', visitor)\n }\n\n /**\n * @param {Element} node\n * @param {number} index\n * @param {Element} parent\n */\n function visitor(node, index, parent) {\n if (!parent || parent.tagName !== 'pre' || node.tagName !== 'code') {\n return\n }\n\n let meta = node.data && node.data.meta ? /** @type {string} */ (node.data.meta) : ''\n // Coerce className to array\n if (node.properties.className) {\n if (typeof node.properties.className === 'boolean') {\n node.properties.className = []\n } else if (!Array.isArray(node.properties.className)) {\n node.properties.className = [node.properties.className]\n }\n } else {\n node.properties.className = []\n }\n node.properties.className.push('code-highlight')\n const lang = getLanguage(node)\n\n /** @type {Element} */\n let refractorRoot\n let langError = false\n\n // Syntax highlight\n if (lang) {\n try {\n // @ts-ignore\n refractorRoot = refractor.highlight(toString(node), lang)\n // @ts-ignore className is already an array\n parent.properties.className = (parent.properties.className || []).concat(\n 'language-' + lang\n )\n } catch (err) {\n if (options.ignoreMissing && /Unknown language/.test(err.message)) {\n langError = true\n refractorRoot = node\n } else {\n throw err\n }\n }\n } else {\n refractorRoot = node\n }\n\n const nodeWithPosition = addNodePositionClosure()(refractorRoot.children)\n refractorRoot.children = splitTextByLine(nodeWithPosition)\n\n if (refractorRoot.children.length > 0) {\n refractorRoot.position = {\n start: { line: refractorRoot.children[0].position.start.line, column: 0 },\n end: {\n line: refractorRoot.children[refractorRoot.children.length - 1].position.end.line,\n column: 0,\n },\n }\n }\n const shouldHighlightLine = calculateLinesToHighlight(meta)\n const startingLineNumber = calculateStartingLine(meta)\n const codeLineArray = splitLine(toString(node))\n\n for (const [i, line] of codeLineArray.entries()) {\n // Code lines\n if (\n meta.toLowerCase().includes('showLineNumbers'.toLowerCase()) ||\n options.showLineNumbers\n ) {\n line.properties.line = [(i + startingLineNumber).toString()]\n // @ts-ignore\n line.properties.className.push('line-number')\n }\n\n // Line highlight\n if (shouldHighlightLine(i)) {\n // @ts-ignore\n line.properties.className.push('highlight-line')\n }\n\n if (lang === 'diff' && toString(line).substring(0, 1) === '-') {\n // @ts-ignore\n line.properties.className.push('deleted')\n } else if (lang === 'diff' && toString(line).substring(0, 1) === '+') {\n // @ts-ignore\n line.properties.className.push('inserted')\n }\n\n // Syntax highlight\n const treeExtract = filter(\n refractorRoot,\n (node) => node.position.start.line <= i + 1 && node.position.end.line >= i + 1\n )\n line.children = treeExtract.children\n }\n\n node.children = codeLineArray\n }\n }\n}\n\nexport default rehypePrismGenerator\n","import { refractor as refractorAll } from 'refractor/lib/all.js'\nimport rehypePrismGenerator from './generator.js'\n\n/**\n * Rehype prism plugin that highlights code blocks with refractor (prismjs)\n * This supports all the languages and should be used on the server side.\n *\n * Consider using rehypePrismCommon or rehypePrismGenerator to generate a plugin\n * that supports your required languages.\n */\nconst rehypePrismAll = rehypePrismGenerator(refractorAll)\n\nexport default rehypePrismAll\n","import { refractor as refractorCommon } from 'refractor/lib/common.js'\nimport rehypePrismGenerator from './generator.js'\n\n/**\n * Rehype prism plugin that highlights code blocks with refractor (prismjs)\n * Supported languages: https://github.com/wooorm/refractor#data\n *\n * Consider using rehypePrismGenerator to generate a plugin\n * that supports your required languages.\n */\nconst rehypePrismCommon = rehypePrismGenerator(refractorCommon)\n\nexport default rehypePrismCommon\n","const rtlRange = '\\u0591-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC'\nconst ltrRange =\n 'A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6' +\n '\\u00F8-\\u02B8\\u0300-\\u0590\\u0800-\\u1FFF\\u200E\\u2C00-\\uFB1C' +\n '\\uFE00-\\uFE6F\\uFEFD-\\uFFFF'\n\n/* eslint-disable no-misleading-character-class */\nconst rtl = new RegExp('^[^' + ltrRange + ']*[' + rtlRange + ']')\nconst ltr = new RegExp('^[^' + rtlRange + ']*[' + ltrRange + ']')\n/* eslint-enable no-misleading-character-class */\n\n/**\n * Detect the direction of text: left-to-right, right-to-left, or neutral\n *\n * @param {string} value\n * @returns {'rtl'|'ltr'|'neutral'}\n */\nexport function direction(value) {\n const source = String(value || '')\n return rtl.test(source) ? 'rtl' : ltr.test(source) ? 'ltr' : 'neutral'\n}\n","/**\n * @typedef {import('./types.js').Node} Node\n * @typedef {import('./types.js').Element} Element\n * @typedef {import('./types.js').Parent} Parent\n * @typedef {import('hast-util-is-element').AssertPredicate} IsElement\n */\n\nimport {convertElement} from 'hast-util-is-element'\n\n/**\n * @param {Node} node\n * @returns {node is Parent}\n */\nexport function parent(node) {\n // @ts-expect-error: hush.\n return Array.isArray(node.children)\n}\n\n/** @type {IsElement} */\n// @ts-expect-error it works.\nexport const element = convertElement()\n","/**\n * @typedef {import('./types.js').SelectState} SelectState\n * @typedef {import('./types.js').HastNode} HastNode\n * @typedef {import('./types.js').ElementChild} ElementChild\n * @typedef {import('./types.js').Direction} Direction\n * @typedef {import('unist-util-visit').Visitor} Visitor\n */\n\nimport {direction} from 'direction'\nimport {isElement} from 'hast-util-is-element'\nimport {toString} from 'hast-util-to-string'\nimport {svg} from 'property-information'\nimport {visit, EXIT, SKIP} from 'unist-util-visit'\nimport {element} from './util.js'\n\n/**\n * @param {SelectState} state\n * @param {HastNode} node\n * @returns {() => void}\n */\n// eslint-disable-next-line complexity\nexport function enterState(state, node) {\n const schema = state.schema\n const language = state.language\n const currentDirection = state.direction\n const editableOrEditingHost = state.editableOrEditingHost\n /** @type {Direction|undefined} */\n let dirInferred\n /** @type {boolean|undefined} */\n let found\n\n if (element(node) && node.properties) {\n const lang = node.properties.xmlLang || node.properties.lang\n const type = node.properties.type || 'text'\n const dir = dirProperty(node)\n\n if (lang !== undefined && lang !== null) {\n state.language = String(lang)\n found = true\n }\n\n if (schema && schema.space === 'html') {\n if (node.properties.contentEditable === 'true') {\n state.editableOrEditingHost = true\n found = true\n }\n\n if (isElement(node, 'svg')) {\n state.schema = svg\n found = true\n }\n\n // See: .\n // Explicit `[dir=rtl]`.\n if (dir === 'rtl') {\n dirInferred = dir\n } else if (\n // Explicit `[dir=ltr]`.\n dir === 'ltr' ||\n // HTML with an invalid or no `[dir]`.\n (dir !== 'auto' && isElement(node, 'html')) ||\n // `input[type=tel]` with an invalid or no `[dir]`.\n (dir !== 'auto' && isElement(node, 'input') && type === 'tel')\n ) {\n dirInferred = 'ltr'\n // `[dir=auto]` or `bdi` with an invalid or no `[dir]`.\n } else if (dir === 'auto' || isElement(node, 'bdi')) {\n if (isElement(node, 'textarea')) {\n // Check contents of `