@nocobase/plugin-block-lowcode
Version:
A block for executing custom JavaScript code and dynamically updating HTML content.
10 lines (9 loc) • 612 kB
JavaScript
/**
* This file is part of the NocoBase (R) project.
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
* Authors: NocoBase Team.
*
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
* For more information, please refer to: https://www.nocobase.com/agreement.
*/
"use strict";(self.webpackChunk_nocobase_plugin_block_lowcode=self.webpackChunk_nocobase_plugin_block_lowcode||[]).push([["762"],{490:function(t,e,i){i.d(e,{B1:function(){return tQ},GA:function(){return tx},Gn:function(){return ta},Mb:function(){return l},eC:function(){return h},vQ:function(){return tf},ys:function(){return tk}});var s=i(55),n=i(990),r=i(858);class o{constructor(t,e,i,s){this.state=t,this.pos=e,this.explicit=i,this.view=s,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(t){let e=(0,r.qz)(this.state).resolveInner(this.pos,-1);for(;e&&0>t.indexOf(e.name);)e=e.parent;return e?{from:e.from,to:this.pos,text:this.state.sliceDoc(e.from,this.pos),type:e.type}:null}matchBefore(t){let e=this.state.doc.lineAt(this.pos),i=Math.max(e.from,this.pos-250),s=e.text.slice(i-e.from,this.pos-e.from),n=s.search(p(t,!1));return n<0?null:{from:i+n,to:this.pos,text:s.slice(n)}}get aborted(){return null==this.abortListeners}addEventListener(t,e,i){"abort"==t&&this.abortListeners&&(this.abortListeners.push(e),i&&i.onDocChange&&(this.abortOnDocChange=!0))}}function a(t){let e=Object.keys(t).join(""),i=/\w/.test(e);return i&&(e=e.replace(/\w/g,"")),`[${i?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function l(t){let e=t.map(t=>"string"==typeof t?{label:t}:t),[i,s]=e.every(t=>/^\w+$/.test(t.label))?[/\w*$/,/\w+$/]:function(t){let e=Object.create(null),i=Object.create(null);for(let{label:s}of t){e[s[0]]=!0;for(let t=1;t<s.length;t++)i[s[t]]=!0}let s=a(e)+a(i)+"*$";return[RegExp("^"+s),new RegExp(s)]}(e);return t=>{let n=t.matchBefore(s);return n||t.explicit?{from:n?n.from:t.pos,options:e,validFor:i}:null}}function h(t,e){return i=>{for(let e=(0,r.qz)(i.state).resolveInner(i.pos,-1);e;e=e.parent){if(t.indexOf(e.name)>-1)return null;if(e.type.isTop)break}return e(i)}}class c{constructor(t,e,i,s){this.completion=t,this.source=e,this.match=i,this.score=s}}function u(t){return t.selection.main.from}function p(t,e){var i;let{source:s}=t,n=e&&"^"!=s[0],r="$"!=s[s.length-1];return n||r?RegExp(`${n?"^":""}(?:${s})${r?"$":""}`,null!=(i=t.flags)?i:t.ignoreCase?"i":""):t}let f=s.q6.define(),d=new WeakMap;function O(t){if(!Array.isArray(t))return t;let e=d.get(t);return e||d.set(t,e=l(t)),e}let m=s.Py.define(),g=s.Py.define();class v{constructor(t){this.pattern=t,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let e=0;e<t.length;){let i=(0,s.gm)(t,e),n=(0,s.nZ)(i);this.chars.push(i);let r=t.slice(e,e+n),o=r.toUpperCase();this.folded.push((0,s.gm)(o==r?r.toLowerCase():o,0)),e+=n}this.astral=t.length!=this.chars.length}ret(t,e){return this.score=t,this.matched=e,this}match(t){if(0==this.pattern.length)return this.ret(-100,[]);if(t.length<this.pattern.length)return null;let{chars:e,folded:i,any:n,precise:r,byWord:o}=this;if(1==e.length){let n=(0,s.gm)(t,0),r=(0,s.nZ)(n),o=r==t.length?0:-100;if(n==e[0]);else{if(n!=i[0])return null;o+=-200}return this.ret(o,[0,r])}let a=t.indexOf(this.pattern);if(0==a)return this.ret(t.length==this.pattern.length?0:-100,[0,this.pattern.length]);let l=e.length,h=0;if(a<0){for(let r=0,o=Math.min(t.length,200);r<o&&h<l;){let o=(0,s.gm)(t,r);(o==e[h]||o==i[h])&&(n[h++]=r),r+=(0,s.nZ)(o)}if(h<l)return null}let c=0,u=0,p=!1,f=0,d=-1,O=-1,m=/[a-z]/.test(t),g=!0;for(let n=0,h=Math.min(t.length,200),v=0;n<h&&u<l;){let h=(0,s.gm)(t,n);a<0&&(c<l&&h==e[c]&&(r[c++]=n),f<l&&(h==e[f]||h==i[f]?(0==f&&(d=n),O=n+1,f++):f=0));let x,y=h<255?h>=48&&h<=57||h>=97&&h<=122?2:+(h>=65&&h<=90):(x=(0,s.bg)(h))!=x.toLowerCase()?1:2*(x!=x.toUpperCase());(!n||1==y&&m||0==v&&0!=y)&&(e[u]==h||i[u]==h&&(p=!0)?o[u++]=n:o.length&&(g=!1)),v=y,n+=(0,s.nZ)(h)}return u==l&&0==o[0]&&g?this.result(-100+(p?-200:0),o,t):f==l&&0==d?this.ret(-200-t.length+(O==t.length?0:-100),[0,O]):a>-1?this.ret(-700-t.length,[a,a+this.pattern.length]):f==l?this.ret(-900-t.length,[d,O]):u==l?this.result(-100+(p?-200:0)+-700+(g?0:-1100),o,t):2==e.length?null:this.result((n[0]?-700:0)+-200+-1100,n,t)}result(t,e,i){let n=[],r=0;for(let t of e){let e=t+(this.astral?(0,s.nZ)((0,s.gm)(i,t)):1);r&&n[r-1]==t?n[r-1]=e:(n[r++]=t,n[r++]=e)}return this.ret(t-i.length,n)}}class x{constructor(t){this.pattern=t,this.matched=[],this.score=0,this.folded=t.toLowerCase()}match(t){if(t.length<this.pattern.length)return null;let e=t.slice(0,this.pattern.length),i=e==this.pattern?0:e.toLowerCase()==this.folded?-200:null;return null==i?null:(this.matched=[0,e.length],this.score=i+(t.length==this.pattern.length?0:-100),this)}}let y=s.r$.define({combine:t=>(0,s.BO)(t,{activateOnTyping:!0,activateOnCompletion:()=>!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:w,filterStrict:!1,compareCompletions:(t,e)=>t.label.localeCompare(e.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(t,e)=>t&&e,closeOnBlur:(t,e)=>t&&e,icons:(t,e)=>t&&e,tooltipClass:(t,e)=>i=>b(t(i),e(i)),optionClass:(t,e)=>i=>b(t(i),e(i)),addToOptions:(t,e)=>t.concat(e),filterStrict:(t,e)=>t||e})});function b(t,e){return t?e?t+" "+e:t:e}function w(t,e,i,s,r,o){let a=t.textDirection==n.Nm.RTL,l=a,h=!1,c="top",u,p,f=e.left-r.left,d=r.right-e.right,O=s.right-s.left,m=s.bottom-s.top;if(l&&f<Math.min(O,d)?l=!1:!l&&d<Math.min(O,f)&&(l=!0),O<=(l?f:d))u=Math.max(r.top,Math.min(i.top,r.bottom-m))-e.top,p=Math.min(400,l?f:d);else{h=!0,p=Math.min(400,(a?e.right:r.right-e.left)-30);let t=r.bottom-e.bottom;t>=m||t>e.top?u=i.bottom-e.top:(c="bottom",u=e.bottom-i.top)}let g=(e.bottom-e.top)/o.offsetHeight,v=(e.right-e.left)/o.offsetWidth;return{style:`${c}: ${u/g}px; max-width: ${p/v}px`,class:"cm-completionInfo-"+(h?a?"left-narrow":"right-narrow":l?"left":"right")}}function S(t,e,i){if(t<=i)return{from:0,to:t};if(e<0&&(e=0),e<=t>>1){let t=Math.floor(e/i);return{from:t*i,to:(t+1)*i}}let s=Math.floor((t-e)/i);return{from:t-(s+1)*i,to:t-s*i}}class k{constructor(t,e,i){let s;this.view=t,this.stateField=e,this.applyCompletion=i,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:t=>this.placeInfo(t),key:this},this.space=null,this.currentClass="";let n=t.state.field(e),{options:r,selected:o}=n.open,a=t.state.facet(y);this.optionContent=(s=a.addToOptions.slice(),a.icons&&s.push({render(t){let e=document.createElement("div");return e.classList.add("cm-completionIcon"),t.type&&e.classList.add(...t.type.split(/\s+/g).map(t=>"cm-completionIcon-"+t)),e.setAttribute("aria-hidden","true"),e},position:20}),s.push({render(t,e,i,s){let n=document.createElement("span");n.className="cm-completionLabel";let r=t.displayLabel||t.label,o=0;for(let t=0;t<s.length;){let e=s[t++],i=s[t++];e>o&&n.appendChild(document.createTextNode(r.slice(o,e)));let a=n.appendChild(document.createElement("span"));a.appendChild(document.createTextNode(r.slice(e,i))),a.className="cm-completionMatchedText",o=i}return o<r.length&&n.appendChild(document.createTextNode(r.slice(o))),n},position:50},{render(t){if(!t.detail)return null;let e=document.createElement("span");return e.className="cm-completionDetail",e.textContent=t.detail,e},position:80}),s.sort((t,e)=>t.position-e.position).map(t=>t.render)),this.optionClass=a.optionClass,this.tooltipClass=a.tooltipClass,this.range=S(r.length,o,a.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(t.state),this.dom.addEventListener("mousedown",i=>{let{options:s}=t.state.field(e).open;for(let e=i.target,n;e&&e!=this.dom;e=e.parentNode)if("LI"==e.nodeName&&(n=/-(\d+)$/.exec(e.id))&&+n[1]<s.length){this.applyCompletion(t,s[+n[1]]),i.preventDefault();return}}),this.dom.addEventListener("focusout",e=>{let i=t.state.field(this.stateField,!1);i&&i.tooltip&&t.state.facet(y).closeOnBlur&&e.relatedTarget!=t.contentDOM&&t.dispatch({effects:g.of(null)})}),this.showOptions(r,n.id)}mount(){this.updateSel()}showOptions(t,e){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(t,e,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(t){var e;let i=t.state.field(this.stateField),s=t.startState.field(this.stateField);if(this.updateTooltipClass(t.state),i!=s){let{options:n,selected:r,disabled:o}=i.open;s.open&&s.open.options==n||(this.range=S(n.length,r,t.state.facet(y).maxRenderedOptions),this.showOptions(n,i.id)),this.updateSel(),o!=(null==(e=s.open)?void 0:e.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!o)}}updateTooltipClass(t){let e=this.tooltipClass(t);if(e!=this.currentClass){for(let t of this.currentClass.split(" "))t&&this.dom.classList.remove(t);for(let t of e.split(" "))t&&this.dom.classList.add(t);this.currentClass=e}}positioned(t){this.space=t,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let t=this.view.state.field(this.stateField),e=t.open;if((e.selected>-1&&e.selected<this.range.from||e.selected>=this.range.to)&&(this.range=S(e.options.length,e.selected,this.view.state.facet(y).maxRenderedOptions),this.showOptions(e.options,t.id)),this.updateSelectedOption(e.selected)){this.destroyInfo();let{completion:i}=e.options[e.selected],{info:s}=i;if(!s)return;let r="string"==typeof s?document.createTextNode(s):s(i);if(!r)return;"then"in r?r.then(e=>{e&&this.view.state.field(this.stateField,!1)==t&&this.addInfoPane(e,i)}).catch(t=>(0,n.OO)(this.view.state,t,"completion info")):this.addInfoPane(r,i)}}addInfoPane(t,e){this.destroyInfo();let i=this.info=document.createElement("div");if(i.className="cm-tooltip cm-completionInfo",null!=t.nodeType)i.appendChild(t),this.infoDestroy=null;else{let{dom:e,destroy:s}=t;i.appendChild(e),this.infoDestroy=s||null}this.dom.appendChild(i),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(t){var e,i;let s,n,r,o=null;for(let e=this.list.firstChild,i=this.range.from;e;e=e.nextSibling,i++)"LI"==e.nodeName&&e.id?i==t?e.hasAttribute("aria-selected")||(e.setAttribute("aria-selected","true"),o=e):e.hasAttribute("aria-selected")&&e.removeAttribute("aria-selected"):i--;return o&&(e=this.list,i=o,s=e.getBoundingClientRect(),n=i.getBoundingClientRect(),r=s.height/e.offsetHeight,n.top<s.top?e.scrollTop-=(s.top-n.top)/r:n.bottom>s.bottom&&(e.scrollTop+=(n.bottom-s.bottom)/r)),o}measureInfo(){let t=this.dom.querySelector("[aria-selected]");if(!t||!this.info)return null;let e=this.dom.getBoundingClientRect(),i=this.info.getBoundingClientRect(),s=t.getBoundingClientRect(),n=this.space;if(!n){let t=this.dom.ownerDocument.documentElement;n={left:0,top:0,right:t.clientWidth,bottom:t.clientHeight}}return s.top>Math.min(n.bottom,e.bottom)-10||s.bottom<Math.max(n.top,e.top)+10?null:this.view.state.facet(y).positionInfo(this.view,e,s,i,n,this.dom)}placeInfo(t){this.info&&(t?(t.style&&(this.info.style.cssText=t.style),this.info.className="cm-tooltip cm-completionInfo "+(t.class||"")):this.info.style.cssText="top: -1e6px")}createListBox(t,e,i){let s=document.createElement("ul");s.id=e,s.setAttribute("role","listbox"),s.setAttribute("aria-expanded","true"),s.setAttribute("aria-label",this.view.state.phrase("Completions")),s.addEventListener("mousedown",t=>{t.target==s&&t.preventDefault()});let n=null;for(let r=i.from;r<i.to;r++){let{completion:o,match:a}=t[r],{section:l}=o;if(l){let t="string"==typeof l?l:l.name;t!=n&&(r>i.from||0==i.from)&&(n=t,"string"!=typeof l&&l.header?s.appendChild(l.header(l)):s.appendChild(document.createElement("completion-section")).textContent=t)}let h=s.appendChild(document.createElement("li"));h.id=e+"-"+r,h.setAttribute("role","option");let c=this.optionClass(o);for(let t of(c&&(h.className=c),this.optionContent)){let e=t(o,this.view.state,this.view,a);e&&h.appendChild(e)}}return i.from&&s.classList.add("cm-completionListIncompleteTop"),i.to<t.length&&s.classList.add("cm-completionListIncompleteBottom"),s}destroyInfo(){this.info&&(this.infoDestroy&&this.infoDestroy(),this.info.remove(),this.info=null)}destroy(){this.destroyInfo()}}function Q(t){return 100*(t.boost||0)+10*!!t.apply+5*!!t.info+ +!!t.type}class P{constructor(t,e,i,s,n,r){this.options=t,this.attrs=e,this.tooltip=i,this.timestamp=s,this.selected=n,this.disabled=r}setSelected(t,e){return t==this.selected||t>=this.options.length?this:new P(this.options,A(e,t),this.tooltip,this.timestamp,t,this.disabled)}static build(t,e,i,s,n,r){if(s&&!r&&t.some(t=>t.isPending))return s.setDisabled();let o=function(t,e){let i=[],s=null,n=t=>{i.push(t);let{section:e}=t.completion;if(e){s||(s=[]);let t="string"==typeof e?e:e.name;s.some(e=>e.name==t)||s.push("string"==typeof e?{name:t}:e)}},r=e.facet(y);for(let s of t)if(s.hasResult()){let t=s.result.getMatch;if(!1===s.result.filter)for(let e of s.result.options)n(new c(e,s.source,t?t(e):[],1e9-i.length));else{let i=e.sliceDoc(s.from,s.to),o,a=r.filterStrict?new x(i):new v(i);for(let e of s.result.options)if(o=a.match(e.label)){let i=e.displayLabel?t?t(e,o.matched):[]:o.matched;n(new c(e,s.source,i,o.score+(e.boost||0)))}}}if(s){let t=Object.create(null),e=0;for(let i of s.sort((t,e)=>{var i,s;return(null!=(i=t.rank)?i:1e9)-(null!=(s=e.rank)?s:1e9)||(t.name<e.name?-1:1)}))e-=1e5,t[i.name]=e;for(let e of i){let{section:i}=e.completion;i&&(e.score+=t["string"==typeof i?i:i.name])}}let o=[],a=null,l=r.compareCompletions;for(let t of i.sort((t,e)=>e.score-t.score||l(t.completion,e.completion))){let e=t.completion;a&&a.label==e.label&&a.detail==e.detail&&(null==a.type||null==e.type||a.type==e.type)&&a.apply==e.apply&&a.boost==e.boost?Q(t.completion)>Q(a)&&(o[o.length-1]=t):o.push(t),a=t.completion}return o}(t,e);if(!o.length)return s&&t.some(t=>t.isPending)?s.setDisabled():null;let a=e.facet(y).selectOnOpen?0:-1;if(s&&s.selected!=a&&-1!=s.selected){let t=s.options[s.selected].completion;for(let e=0;e<o.length;e++)if(o[e].completion==t){a=e;break}}return new P(o,A(i,a),{pos:t.reduce((t,e)=>e.hasResult()?Math.min(t,e.from):t,1e8),create:q,above:n.aboveCursor},s?s.timestamp:Date.now(),a,!1)}map(t){return new P(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:t.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}setDisabled(){return new P(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}}class ${constructor(t,e,i){this.active=t,this.id=e,this.open=i}static start(){return new $(_,"cm-ac-"+Math.floor(2e6*Math.random()).toString(36),null)}update(t){let{state:e}=t,i=e.facet(y),s=(i.override||e.languageDataAt("autocomplete",u(e)).map(O)).map(e=>(this.active.find(t=>t.source==e)||new M(e,+!!this.active.some(t=>0!=t.state))).update(t,i));s.length==this.active.length&&s.every((t,e)=>t==this.active[e])&&(s=this.active);let n=this.open,r=t.effects.some(t=>t.is(E));for(let o of(n&&t.docChanged&&(n=n.map(t.changes)),t.selection||s.some(e=>e.hasResult()&&t.changes.touchesRange(e.from,e.to))||!function(t,e){if(t==e)return!0;for(let i=0,s=0;;){for(;i<t.length&&!t[i].hasResult();)i++;for(;s<e.length&&!e[s].hasResult();)s++;let n=i==t.length,r=s==e.length;if(n||r)return n==r;if(t[i++].result!=e[s++].result)return!1}}(s,this.active)||r?n=P.build(s,e,this.id,n,i,r):n&&n.disabled&&!s.some(t=>t.isPending)&&(n=null),!n&&s.every(t=>!t.isPending)&&s.some(t=>t.hasResult())&&(s=s.map(t=>t.hasResult()?new M(t.source,0):t)),t.effects))o.is(X)&&(n=n&&n.setSelected(o.value,this.id));return s==this.active&&n==this.open?this:new $(s,this.id,n)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?C:T}}let C={"aria-autocomplete":"list"},T={};function A(t,e){let i={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":t};return e>-1&&(i["aria-activedescendant"]=t+"-"+e),i}let _=[];function Z(t,e){if(t.isUserEvent("input.complete")){let i=t.annotation(f);if(i&&e.activateOnCompletion(i))return 12}let i=t.isUserEvent("input.type");return i&&e.activateOnTyping?5:i?1:t.isUserEvent("delete.backward")?2:t.selection?8:16*!!t.docChanged}class M{constructor(t,e,i=!1){this.source=t,this.state=e,this.explicit=i}hasResult(){return!1}get isPending(){return 1==this.state}update(t,e){let i=Z(t,e),s=this;for(let e of((8&i||16&i&&this.touches(t))&&(s=new M(s.source,0)),4&i&&0==s.state&&(s=new M(this.source,1)),s=s.updateFor(t,i),t.effects))if(e.is(m))s=new M(s.source,1,e.value);else if(e.is(g))s=new M(s.source,0);else if(e.is(E))for(let t of e.value)t.source==s.source&&(s=t);return s}updateFor(t,e){return this.map(t.changes)}map(t){return this}touches(t){return t.changes.touchesRange(u(t.state))}}class R extends M{constructor(t,e,i,s,n,r){super(t,3,e),this.limit=i,this.result=s,this.from=n,this.to=r}hasResult(){return!0}updateFor(t,e){var i;if(!(3&e))return this.map(t.changes);let s=this.result;s.map&&!t.changes.empty&&(s=s.map(s,t.changes));let n=t.changes.mapPos(this.from),r=t.changes.mapPos(this.to,1),a=u(t.state);if(a>r||!s||2&e&&(u(t.startState)==this.from||a<this.limit))return new M(this.source,4&e?1:0);let l=t.changes.mapPos(this.limit);return!function(t,e,i,s){if(!t)return!1;let n=e.sliceDoc(i,s);return"function"==typeof t?t(n,i,s,e):p(t,!0).test(n)}(s.validFor,t.state,n,r)?s.update&&(s=s.update(s,n,r,new o(t.state,a,!1)))?new R(this.source,this.explicit,l,s,s.from,null!=(i=s.to)?i:u(t.state)):new M(this.source,1,this.explicit):new R(this.source,this.explicit,l,s,n,r)}map(t){return t.empty?this:(this.result.map?this.result.map(this.result,t):this.result)?new R(this.source,this.explicit,t.mapPos(this.limit),this.result,t.mapPos(this.from),t.mapPos(this.to,1)):new M(this.source,0)}touches(t){return t.changes.touchesRange(this.from,this.to)}}let E=s.Py.define({map:(t,e)=>t.map(t=>t.map(e))}),X=s.Py.define(),V=s.QQ.define({create:()=>$.start(),update:(t,e)=>t.update(e),provide:t=>[n.hJ.from(t,t=>t.tooltip),n.tk.contentAttributes.from(t,t=>t.attrs)]});function D(t,e){let i=e.completion.apply||e.completion.label,n=t.state.field(V).active.find(t=>t.source==e.source);return n instanceof R&&("string"==typeof i?t.dispatch(Object.assign(Object.assign({},function(t,e,i,n){let{main:r}=t.selection,o=i-r.from,a=n-r.from;return Object.assign(Object.assign({},t.changeByRange(l=>{if(l!=r&&i!=n&&t.sliceDoc(l.from+o,l.from+a)!=t.sliceDoc(i,n))return{range:l};let h=t.toText(e);return{changes:{from:l.from+o,to:n==r.from?l.to:l.from+a,insert:h},range:s.jT.cursor(l.from+o+h.length)}})),{scrollIntoView:!0,userEvent:"input.complete"})}(t.state,i,n.from,n.to)),{annotations:f.of(e.completion)})):i(t,e.completion,n.from,n.to),!0)}let q=t=>new k(t,V,D);function L(t,e="option"){return i=>{let s=i.state.field(V,!1);if(!s||!s.open||s.open.disabled||Date.now()-s.open.timestamp<i.state.facet(y).interactionDelay)return!1;let r=1,o;"page"==e&&(o=(0,n.gB)(i,s.open.tooltip))&&(r=Math.max(2,Math.floor(o.dom.offsetHeight/o.dom.querySelector("li").offsetHeight)-1));let{length:a}=s.open.options,l=s.open.selected>-1?s.open.selected+r*(t?1:-1):t?0:a-1;return l<0?l="page"==e?0:a-1:l>=a&&(l="page"==e?a-1:0),i.dispatch({effects:X.of(l)}),!0}}let I=t=>!!t.state.field(V,!1)&&(t.dispatch({effects:m.of(!0)}),!0);class Y{constructor(t,e){this.active=t,this.context=e,this.time=Date.now(),this.updates=[],this.done=void 0}}let j=n.lg.fromClass(class{constructor(t){for(let e of(this.view=t,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0,t.state.field(V).active))e.isPending&&this.startQuery(e)}update(t){let e=t.state.field(V),i=t.state.facet(y);if(!t.selectionSet&&!t.docChanged&&t.startState.field(V)==e)return;let s=t.transactions.some(t=>{let e=Z(t,i);return 8&e||(t.selection||t.docChanged)&&!(3&e)});for(let e=0;e<this.running.length;e++){let i=this.running[e];if(s||i.context.abortOnDocChange&&t.docChanged||i.updates.length+t.transactions.length>50&&Date.now()-i.time>1e3){for(let t of i.context.abortListeners)try{t()}catch(t){(0,n.OO)(this.view.state,t)}i.context.abortListeners=null,this.running.splice(e--,1)}else i.updates.push(...t.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),t.transactions.some(t=>t.effects.some(t=>t.is(m)))&&(this.pendingStart=!0);let r=this.pendingStart?50:i.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(t=>t.isPending&&!this.running.some(e=>e.active.source==t.source))?setTimeout(()=>this.startUpdate(),r):-1,0!=this.composing)for(let e of t.transactions)e.isUserEvent("input.type")?this.composing=2:2==this.composing&&e.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:t}=this.view,e=t.field(V);for(let t of e.active)t.isPending&&!this.running.some(e=>e.active.source==t.source)&&this.startQuery(t);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(y).updateSyncTime))}startQuery(t){let{state:e}=this.view,i=u(e),s=new o(e,i,t.explicit,this.view),r=new Y(t,s);this.running.push(r),Promise.resolve(t.source(s)).then(t=>{r.context.aborted||(r.done=t||null,this.scheduleAccept())},t=>{this.view.dispatch({effects:g.of(null)}),(0,n.OO)(this.view.state,t)})}scheduleAccept(){this.running.every(t=>void 0!==t.done)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(y).updateSyncTime))}accept(){var t;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],i=this.view.state.facet(y),s=this.view.state.field(V);for(let n=0;n<this.running.length;n++){let r=this.running[n];if(void 0===r.done)continue;if(this.running.splice(n--,1),r.done){let s=u(r.updates.length?r.updates[0].startState:this.view.state),n=Math.min(s,r.done.from+ +!r.active.explicit),o=new R(r.active.source,r.active.explicit,n,r.done,r.done.from,null!=(t=r.done.to)?t:s);for(let t of r.updates)o=o.update(t,i);if(o.hasResult()){e.push(o);continue}}let o=s.active.find(t=>t.source==r.active.source);if(o&&o.isPending)if(null==r.done){let t=new M(r.active.source,0);for(let e of r.updates)t=t.update(e,i);t.isPending||e.push(t)}else this.startQuery(o)}(e.length||s.open&&s.open.disabled)&&this.view.dispatch({effects:E.of(e)})}},{eventHandlers:{blur(t){let e=this.view.state.field(V,!1);if(e&&e.tooltip&&this.view.state.facet(y).closeOnBlur){let i=e.open&&(0,n.gB)(this.view,e.open.tooltip);i&&i.dom.contains(t.relatedTarget)||setTimeout(()=>this.view.dispatch({effects:g.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){3==this.composing&&setTimeout(()=>this.view.dispatch({effects:m.of(!1)}),20),this.composing=0}}}),N="object"==typeof navigator&&/Win/.test(navigator.platform),B=s.Wl.highest(n.tk.domEventHandlers({keydown(t,e){let i=e.state.field(V,!1);if(!i||!i.open||i.open.disabled||i.open.selected<0||t.key.length>1||t.ctrlKey&&!(N&&t.altKey)||t.metaKey)return!1;let s=i.open.options[i.open.selected],n=i.active.find(t=>t.source==s.source),r=s.completion.commitCharacters||n.result.commitCharacters;return r&&r.indexOf(t.key)>-1&&D(e,s),!1}})),z=n.tk.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xb7\xb7\xb7"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".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:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\uD83D\uDD11︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class W{constructor(t,e,i,s){this.field=t,this.line=e,this.from=i,this.to=s}}class G{constructor(t,e,i){this.field=t,this.from=e,this.to=i}map(t){let e=t.mapPos(this.from,-1,s.gc.TrackDel),i=t.mapPos(this.to,1,s.gc.TrackDel);return null==e||null==i?null:new G(this.field,e,i)}}class U{constructor(t,e){this.lines=t,this.fieldPositions=e}instantiate(t,e){let i=[],s=[e],n=t.doc.lineAt(e),o=/^\s*/.exec(n.text)[0];for(let n of this.lines){if(i.length){let i=o,a=/^\t*/.exec(n)[0].length;for(let e=0;e<a;e++)i+=t.facet(r.c);s.push(e+i.length-a),n=i+n.slice(a)}i.push(n),e+=n.length+1}return{text:i,ranges:this.fieldPositions.map(t=>new G(t.field,s[t.line]+t.from,s[t.line]+t.to))}}static parse(t){let e=[],i=[],s=[],n;for(let r of t.split(/\r\n?|\n/)){for(;n=/[#$]\{(?:(\d+)(?::([^}]*))?|((?:\\[{}]|[^}])*))\}/.exec(r);){let t=n[1]?+n[1]:null,o=n[2]||n[3]||"",a=-1,l=o.replace(/\\[{}]/g,t=>t[1]);for(let i=0;i<e.length;i++)(null!=t?e[i].seq==t:l&&e[i].name==l)&&(a=i);if(a<0){let i=0;for(;i<e.length&&(null==t||null!=e[i].seq&&e[i].seq<t);)i++;for(let n of(e.splice(i,0,{seq:t,name:l}),a=i,s))n.field>=a&&n.field++}s.push(new W(a,i.length,n.index,n.index+l.length)),r=r.slice(0,n.index)+o+r.slice(n.index+n[0].length)}r=r.replace(/\\([{}])/g,(t,e,n)=>{for(let t of s)t.line==i.length&&t.from>n&&(t.from--,t.to--);return e}),i.push(r)}return new U(i,s)}}let F=n.p.widget({widget:new class extends n.l9{toDOM(){let t=document.createElement("span");return t.className="cm-snippetFieldPosition",t}ignoreEvent(){return!1}}}),J=n.p.mark({class:"cm-snippetField"});class H{constructor(t,e){this.ranges=t,this.active=e,this.deco=n.p.set(t.map(t=>(t.from==t.to?F:J).range(t.from,t.to)))}map(t){let e=[];for(let i of this.ranges){let s=i.map(t);if(!s)return null;e.push(s)}return new H(e,this.active)}selectionInsideField(t){return t.ranges.every(t=>this.ranges.some(e=>e.field==this.active&&e.from<=t.from&&e.to>=t.to))}}let K=s.Py.define({map:(t,e)=>t&&t.map(e)}),tt=s.Py.define(),te=s.QQ.define({create:()=>null,update(t,e){for(let i of e.effects){if(i.is(K))return i.value;if(i.is(tt)&&t)return new H(t.ranges,i.value)}return t&&e.docChanged&&(t=t.map(e.changes)),t&&e.selection&&!t.selectionInsideField(e.selection)&&(t=null),t},provide:t=>n.tk.decorations.from(t,t=>t?t.deco:n.p.none)});function ti(t,e){return s.jT.create(t.filter(t=>t.field==e).map(t=>s.jT.range(t.from,t.to)))}function ts(t){return({state:e,dispatch:i})=>{let s=e.field(te,!1);if(!s||t<0&&0==s.active)return!1;let n=s.active+t,r=t>0&&!s.ranges.some(e=>e.field==n+t);return i(e.update({selection:ti(s.ranges,n),effects:K.of(r?null:new H(s.ranges,n)),scrollIntoView:!0})),!0}}let tn=[{key:"Tab",run:ts(1),shift:ts(-1)},{key:"Escape",run:({state:t,dispatch:e})=>!!t.field(te,!1)&&(e(t.update({effects:K.of(null)})),!0)}],tr=s.r$.define({combine:t=>t.length?t[0]:tn}),to=s.Wl.highest(n.$f.compute([tr],t=>t.facet(tr)));function ta(t,e){let i;return Object.assign(Object.assign({},e),{apply:(i=U.parse(t),(t,e,n,r)=>{let{text:o,ranges:a}=i.instantiate(t.state,n),{main:l}=t.state.selection,h={changes:{from:n,to:r==l.from?l.to:r,insert:s.xv.of(o)},scrollIntoView:!0,annotations:e?[f.of(e),s.YW.userEvent.of("input.complete")]:void 0};if(a.length&&(h.selection=ti(a,0)),a.some(t=>t.field>0)){let e=new H(a,0),i=h.effects=[K.of(e)];void 0===t.state.field(te,!1)&&i.push(s.Py.appendConfig.of([te,to,tl,z]))}t.dispatch(t.state.update(h))})})}let tl=n.tk.domEventHandlers({mousedown(t,e){let i=e.state.field(te,!1),s;if(!i||null==(s=e.posAtCoords({x:t.clientX,y:t.clientY})))return!1;let n=i.ranges.find(t=>t.from<=s&&t.to>=s);return!!n&&n.field!=i.active&&(e.dispatch({selection:ti(i.ranges,n.field),effects:K.of(i.ranges.some(t=>t.field>n.field)?new H(i.ranges,n.field):null),scrollIntoView:!0}),!0)}}),th={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},tc=s.Py.define({map(t,e){let i=e.mapPos(t,-1,s.gc.TrackAfter);return null==i?void 0:i}}),tu=new class extends s.uU{};tu.startSide=1,tu.endSide=-1;let tp=s.QQ.define({create:()=>s.Xs.empty,update(t,e){if(t=t.map(e.changes),e.selection){let i=e.state.doc.lineAt(e.selection.main.head);t=t.update({filter:t=>t>=i.from&&t<=i.to})}for(let i of e.effects)i.is(tc)&&(t=t.update({add:[tu.range(i.value,i.value+1)]}));return t}});function tf(){return[tv,tp]}let td="()[]{}<>\xab\xbb\xbb\xab[]{}";function tO(t){for(let e=0;e<td.length;e+=2)if(td.charCodeAt(e)==t)return td.charAt(e+1);return(0,s.bg)(t<128?t:t+1)}function tm(t,e){return t.languageDataAt("closeBrackets",e)[0]||th}let tg="object"==typeof navigator&&/Android\b/.test(navigator.userAgent),tv=n.tk.inputHandler.of((t,e,i,n)=>{if((tg?t.composing:t.compositionStarted)||t.state.readOnly)return!1;let o=t.state.selection.main;if(n.length>2||2==n.length&&1==(0,s.nZ)((0,s.gm)(n,0))||e!=o.from||i!=o.to)return!1;let a=function(t,e){let i=tm(t,t.selection.main.head),n=i.brackets||th.brackets;for(let o of n){let a=tO((0,s.gm)(o,0));if(e==o)return a==o?function(t,e,i,n){let o=n.stringPrefixes||th.stringPrefixes,a=null,l=t.changeByRange(n=>{if(!n.empty)return{changes:[{insert:e,from:n.from},{insert:e,from:n.to}],effects:tc.of(n.to+e.length),range:s.jT.range(n.anchor+e.length,n.head+e.length)};let l=n.head,h=tb(t.doc,l),c;if(h==e){if(tw(t,l))return{changes:{insert:e+e,from:l},effects:tc.of(l+e.length),range:s.jT.cursor(l+e.length)};else if(ty(t,l)){let n=i&&t.sliceDoc(l,l+3*e.length)==e+e+e?e+e+e:e;return{changes:{from:l,to:l+n.length,insert:n},range:s.jT.cursor(l+n.length)}}}else if(i&&t.sliceDoc(l-2*e.length,l)==e+e&&(c=tS(t,l-2*e.length,o))>-1&&tw(t,c))return{changes:{insert:e+e+e+e,from:l},effects:tc.of(l+e.length),range:s.jT.cursor(l+e.length)};else if(t.charCategorizer(l)(h)!=s.D0.Word&&tS(t,l,o)>-1&&!function(t,e,i,s){let n=(0,r.qz)(t).resolveInner(e,-1),o=s.reduce((t,e)=>Math.max(t,e.length),0);for(let r=0;r<5;r++){let r=t.sliceDoc(n.from,Math.min(n.to,n.from+i.length+o)),a=r.indexOf(i);if(!a||a>-1&&s.indexOf(r.slice(0,a))>-1){let e=n.firstChild;for(;e&&e.from==n.from&&e.to-e.from>i.length+a;){if(t.sliceDoc(e.to-i.length,e.to)==i)return!1;e=e.firstChild}return!0}let l=n.to==e&&n.parent;if(!l)break;n=l}return!1}(t,l,e,o))return{changes:{insert:e+e,from:l},effects:tc.of(l+e.length),range:s.jT.cursor(l+e.length)};return{range:a=n}});return a?null:t.update(l,{scrollIntoView:!0,userEvent:"input.type"})}(t,o,n.indexOf(o+o+o)>-1,i):function(t,e,i,n){let r=null,o=t.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:i,from:o.to}],effects:tc.of(o.to+e.length),range:s.jT.range(o.anchor+e.length,o.head+e.length)};let a=tb(t.doc,o.head);return!a||/\s/.test(a)||n.indexOf(a)>-1?{changes:{insert:e+i,from:o.head},effects:tc.of(o.head+e.length),range:s.jT.cursor(o.head+e.length)}:{range:r=o}});return r?null:t.update(o,{scrollIntoView:!0,userEvent:"input.type"})}(t,o,a,i.before||th.before);if(e==a&&ty(t,t.selection.main.from))return function(t,e,i){let n=null,r=t.changeByRange(e=>e.empty&&tb(t.doc,e.head)==i?{changes:{from:e.head,to:e.head+i.length,insert:i},range:s.jT.cursor(e.head+i.length)}:n={range:e});return n?null:t.update(r,{scrollIntoView:!0,userEvent:"input.type"})}(t,0,a)}return null}(t.state,n);return!!a&&(t.dispatch(a),!0)}),tx=[{key:"Backspace",run:({state:t,dispatch:e})=>{if(t.readOnly)return!1;let i=tm(t,t.selection.main.head).brackets||th.brackets,n=null,r=t.changeByRange(e=>{if(e.empty){var r,o;let n,a=(r=t.doc,o=e.head,n=r.sliceString(o-2,o),(0,s.nZ)((0,s.gm)(n,0))==n.length?n:n.slice(1));for(let n of i)if(n==a&&tb(t.doc,e.head)==tO((0,s.gm)(n,0)))return{changes:{from:e.head-n.length,to:e.head+n.length},range:s.jT.cursor(e.head-n.length)}}return{range:n=e}});return n||e(t.update(r,{scrollIntoView:!0,userEvent:"delete.backward"})),!n}}];function ty(t,e){let i=!1;return t.field(tp).between(0,t.doc.length,t=>{t==e&&(i=!0)}),i}function tb(t,e){let i=t.sliceString(e,e+2);return i.slice(0,(0,s.nZ)((0,s.gm)(i,0)))}function tw(t,e){let i=(0,r.qz)(t).resolveInner(e+1);return i.parent&&i.from==e}function tS(t,e,i){let n=t.charCategorizer(e);if(n(t.sliceDoc(e-1,e))!=s.D0.Word)return e;for(let r of i){let i=e-r.length;if(t.sliceDoc(i,e)==r&&n(t.sliceDoc(i-1,i))!=s.D0.Word)return i}return -1}function tk(t={}){return[B,V,y.of(t),j,tP,z]}let tQ=[{key:"Ctrl-Space",run:I},{mac:"Alt-`",run:I},{key:"Escape",run:t=>{let e=t.state.field(V,!1);return!!e&&!!e.active.some(t=>0!=t.state)&&(t.dispatch({effects:g.of(null)}),!0)}},{key:"ArrowDown",run:L(!0)},{key:"ArrowUp",run:L(!1)},{key:"PageDown",run:L(!0,"page")},{key:"PageUp",run:L(!1,"page")},{key:"Enter",run:t=>{let e=t.state.field(V,!1);return!(t.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestamp<t.state.facet(y).interactionDelay)&&D(t,e.open.options[e.open.selected])}}],tP=s.Wl.highest(n.$f.computeN([y],t=>t.facet(y).defaultKeymap?[tQ]:[]))},402:function(t,e,i){i.d(e,{eJ:function(){return tu}});var s=i(419);class n{constructor(t,e,i,s,n,r,o,a,l,h=0,c){this.p=t,this.stack=e,this.state=i,this.reducePos=s,this.pos=n,this.score=r,this.buffer=o,this.bufferBase=a,this.curContext=l,this.lookAhead=h,this.parent=c}toString(){return`[${this.stack.filter((t,e)=>e%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(t,e,i=0){let s=t.parser.context;return new n(t,[],e,i,i,0,[],0,s?new r(s,s.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(t,e){this.stack.push(this.state,e,this.bufferBase+this.buffer.length),this.state=t}reduce(t){var e;let i=t>>19,s=65535&t,{parser:n}=this.p,r=this.reducePos<this.pos-25;r&&this.setLookAhead(this.pos);let o=n.dynamicPrecedence(s);if(o&&(this.score+=o),0==i){this.pushState(n.getGoto(this.state,s,!0),this.reducePos),s<n.minRepeatTerm&&this.storeNode(s,this.reducePos,this.reducePos,r?8:4,!0),this.reduceContext(s,this.reducePos);return}let a=this.stack.length-(i-1)*3-(262144&t?6:0),l=a?this.stack[a-2]:this.p.ranges[0].from,h=this.reducePos-l;h>=2e3&&!(null==(e=this.p.parser.nodeSet.types[s])?void 0:e.isAnonymous)&&(l==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=h):this.p.lastBigReductionSize<h&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=l,this.p.lastBigReductionSize=h));let c=a?this.stack[a-1]:0,u=this.bufferBase+this.buffer.length-c;if(s<n.minRepeatTerm||131072&t){let t=n.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(s,l,t,u+4,!0)}if(262144&t)this.state=this.stack[a];else{let t=this.stack[a-3];this.state=n.getGoto(t,s,!0)}for(;this.stack.length>a;)this.stack.pop();this.reduceContext(s,l)}storeNode(t,e,i,s=4,n=!1){if(0==t&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let t=this,s=this.buffer.length;if(0==s&&t.parent&&(s=t.bufferBase-t.parent.bufferBase,t=t.parent),s>0&&0==t.buffer[s-4]&&t.buffer[s-1]>-1){if(e==i)return;if(t.buffer[s-2]>=e){t.buffer[s-2]=i;return}}}if(n&&this.pos!=i){let n=this.buffer.length;if(n>0&&0!=this.buffer[n-4]){let t=!1;for(let e=n;e>0&&this.buffer[e-2]>i;e-=4)if(this.buffer[e-1]>=0){t=!0;break}if(t)for(;n>0&&this.buffer[n-2]>i;)this.buffer[n]=this.buffer[n-4],this.buffer[n+1]=this.buffer[n-3],this.buffer[n+2]=this.buffer[n-2],this.buffer[n+3]=this.buffer[n-1],n-=4,s>4&&(s-=4)}this.buffer[n]=t,this.buffer[n+1]=e,this.buffer[n+2]=i,this.buffer[n+3]=s}else this.buffer.push(t,e,i,s)}shift(t,e,i,s){if(131072&t)this.pushState(65535&t,this.pos);else if((262144&t)==0){let{parser:n}=this.p;(s>this.pos||e<=n.maxNode)&&(this.pos=s,n.stateFlag(t,1)||(this.reducePos=s)),this.pushState(t,i),this.shiftContext(e,i),e<=n.maxNode&&this.buffer.push(e,i,s,4)}else this.pos=s,this.shiftContext(e,i),e<=this.p.parser.maxNode&&this.buffer.push(e,i,s,4)}apply(t,e,i,s){65536&t?this.reduce(t):this.shift(t,e,i,s)}useNode(t,e){let i=this.p.reused.length-1;(i<0||this.p.reused[i]!=t)&&(this.p.reused.push(t),i++);let s=this.pos;this.reducePos=this.pos=s+t.length,this.pushState(e,s),this.buffer.push(i,s,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,t,this,this.p.stream.reset(this.pos-t.length)))}split(){let t=this,e=t.buffer.length;for(;e>0&&t.buffer[e-2]>t.reducePos;)e-=4;let i=t.buffer.slice(e),s=t.bufferBase+e;for(;t&&s==t.bufferBase;)t=t.parent;return new n(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,i,s,this.curContext,this.lookAhead,t)}recoverByDelete(t,e){let i=t<=this.p.parser.maxNode;i&&this.storeNode(t,this.pos,e,4),this.storeNode(0,this.pos,e,i?8:4),this.pos=this.reducePos=e,this.score-=190}canShift(t){for(let e=new o(this);;){let i=this.p.parser.stateSlot(e.state,4)||this.p.parser.hasAction(e.state,t);if(0==i)return!1;if((65536&i)==0)return!0;e.reduce(i)}}recoverByInsert(t){if(this.stack.length>=300)return[];let e=this.p.parser.nextStates(this.state);if(e.length>8||this.stack.length>=120){let i=[];for(let s=0,n;s<e.length;s+=2)(n=e[s+1])!=this.state&&this.p.parser.hasAction(n,t)&&i.push(e[s],n);if(this.stack.length<120)for(let t=0;i.length<8&&t<e.length;t+=2){let s=e[t+1];i.some((t,e)=>1&e&&t==s)||i.push(e[t],s)}e=i}let i=[];for(let t=0;t<e.length&&i.length<4;t+=2){let s=e[t+1];if(s==this.state)continue;let n=this.split();n.pushState(s,this.pos),n.storeNode(0,n.pos,n.pos,4,!0),n.shiftContext(e[t],this.pos),n.reducePos=this.pos,n.score-=200,i.push(n)}return i}forceReduce(){let{parser:t}=this.p,e=t.stateSlot(this.state,5);if((65536&e)==0)return!1;if(!t.validAction(this.state,e)){let i=e>>19,s=65535&e,n=this.stack.length-3*i;if(n<0||0>t.getGoto(this.stack[n],s,!1)){let t=this.findForcedReduction();if(null==t)return!1;e=t}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(e),!0}findForcedReduction(){let{parser:t}=this.p,e=[],i=(s,n)=>{if(!e.includes(s))return e.push(s),t.allActions(s,e=>{if(393216&e);else if(65536&e){let i=(e>>19)-n;if(i>1){let s=65535&e,n=this.stack.length-3*i;if(n>=0&&t.getGoto(this.stack[n],s,!1)>=0)return i<<19|65536|s}}else{let t=i(e,n+1);if(null!=t)return t}})};return i(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(3!=this.stack.length)return!1;let{parser:t}=this.p;return 65535==t.data[t.stateSlot(this.state,1)]&&!t.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(t){if(this.state!=t.state||this.stack.length!=t.stack.length)return!1;for(let e=0;e<this.stack.length;e+=3)if(this.stack[e]!=t.stack[e])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(t){return this.p.parser.dialect.flags[t]}shiftContext(t,e){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,t,this,this.p.stream.reset(e)))}reduceContext(t,e){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,t,this,this.p.stream.reset(e)))}emitContext(){let t=this.buffer.length-1;(t<0||-3!=this.buffer[t])&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let t=this.buffer.length-1;(t<0||-4!=this.buffer[t])&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(t){if(t!=this.curContext.context){let e=new r(this.curContext.tracker,t);e.hash!=this.curContext.hash&&this.emitContext(),this.curContext=e}}setLookAhead(t){t>this.lookAhead&&(this.emitLookAhead(),this.lookAhead=t)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class r{constructor(t,e){this.tracker=t,this.context=e,this.hash=t.strict?t.hash(e):0}}class o{constructor(t){this.start=t,this.state=t.state,this.stack=t.stack,this.base=this.stack.length}reduce(t){let e=t>>19;0==e?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(e-1)*3;let i=this.start.p.parser.getGoto(this.stack[this.base-3],65535&t,!0);this.state=i}}class a{constructor(t,e,i){this.stack=t,this.pos=e,this.index=i,this.buffer=t.buffer,0==this.index&&this.maybeNext()}static create(t,e=t.bufferBase+t.buffer.length){return new a(t,e,e-t.bufferBase)}maybeNext(){let t=this.stack.parent;null!=t&&(this.index=this.stack.bufferBase-t.bufferBase,this.stack=t,this.buffer=t.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,0==this.index&&this.maybeNext()}fork(){return new a(this.stack,this.pos,this.index)}}function l(t,e=Uint16Array){if("string"!=typeof t)return t;let i=null;for(let s=0,n=0;s<t.length;){let r=0;for(;;){let e=t.charCodeAt(s++),i=!1;if(126==e){r=65535;break}e>=92&&e--,e>=34&&e--;let n=e-32;if(n>=46&&(n-=46,i=!0),r+=n,i)break;r*=46}i?i[n++]=r:i=new e(r)}return i}class h{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}let c=new h;class u{constructor(t,e){this.input=t,this.ranges=e,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=c,this.rangeIndex=0,this.pos=this.chunkPos=e[0].from,this.range=e[0],this.end=e[e.length-1].to,this.readNext()}resolveOffset(t,e){let i=this.range,s=this.rangeIndex,n=this.pos+t;for(;n<i.from;){if(!s)return null;let t=this.ranges[--s];n-=i.from-t.to,i=t}for(;e<0?n>i.to:n>=i.to;){if(s==this.ranges.length-1)return null;let t=this.ranges[++s];n+=t.from-i.to,i=t}return n}clipPos(t){if(t>=this.range.from&&t<this.range.to)return t;for(let e of this.ranges)if(e.to>t)return Math.max(t,e.from);return this.end}peek(t){let e=this.chunkOff+t,i,s;if(e>=0&&e<this.chunk.length)i=this.pos+t,s=this.chunk.charCodeAt(e);else{let e=this.resolveOffset(t,1);if(null==e)return -1;if((i=e)>=this.chunk2Pos&&i<this.chunk2Pos+this.chunk2.length)s=this.chunk2.charCodeAt(i-this.chunk2Pos);else{let t=this.rangeIndex,e=this.range;for(;e.to<=i;)e=this.ranges[++t];this.chunk2=this.input.chunk(this.chunk2Pos=i),i+this.chunk2.length>e.to&&(this.chunk2=this.chunk2.slice(0,e.to-i)),s=this.chunk2.charCodeAt(0)}}return i>=this.token.lookAhead&&(this.token.lookAhead=i+1),s}acceptToken(t,e=0){let i=e?this.resolveOffset(e,-1):this.pos;if(null==i||i<this.token.start)throw RangeError("Token end out of bounds");this.token.value=t,this.token.end=i}acceptTokenTo(t,e){this.token.value=t,this.token.end=e}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:t,chunkPos:e}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=t,this.chunk2Pos=e,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let t=this.input.chunk(this.pos),e=this.pos+t.length;this.chunk=e>this.range.to?t.slice(0,this.range.to-this.pos):t,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(t=1){for(this.chunkOff+=t;this.pos+t>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();t-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=t,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(t,e){if(e?(this.token=e,e.start=t,e.lookAhead=t+1,e.value=e.extended=-1):this.token=c,this.pos!=t){if(this.pos=t,t==this.end)return this.setDone(),this;for(;t<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;t>=this.range.to;)this.range=this.ranges[++this.rangeIndex];t>=this.chunkPos&&t<this.chunkPos+this.chunk.length?this.chunkOff=t-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(t,e){if(t>=this.chunkPos&&e<=this.chunkPos+this.chunk.length)return this.chunk.slice(t-this.chunkPos,e-this.chunkPos);if(t>=this.chunk2Pos&&e<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(t-this.chunk2Pos,e-this.chunk2Pos);if(t>=this.range.from&&e<=this.range.to)return this.input.read(t,e);let i="";for(let s of this.ranges){if(s.from>=e)break;s.to>t&&(i+=this.input.read(Math.max(s.from,t),Math.min(s.to,e)))}return i}}class p{constructor(t,e){this.data=t,this.id=e}token(t,e){let{parser:i}=e.p;O(this.data,t,e,this.id,i.data,i.tokenPrecTable)}}p.prototype.contextual=p.prototype.fallback=p.prototype.extend=!1;class f{constructor(t,e,i){this.precTable=e,this.elseToken=i,this.data="string"==typeof t?l(t):t}token(t,e){let i=t.pos,s=0;for(;;){let i=t.next<0,n=t.resolveOffset(1,1);if(O(this.data,t,e,0,this.data,this.precTable),t.token.value>-1)break;if(null==this.elseToken)return;if(!i&&s++,null==n)break;t.reset(n,t.token)}s&&(t.reset(i,t.token),t.acceptToken(this.elseToken,s))}}f.prototype.contextual=p.prototype.fallback=p.prototype.extend=!1;class d{constructor(t,e={}){this.token=t,this.contextual=!!e.contextual,this.fallback=!!e.fallback,this.extend=!!e.extend}}function O(t,e,i,s,n,r){let o=0,a=1<<s,{dialect:l}=i.p.parser;t:for(;(a&t[o])!=0;){let i=t[o+1];for(let s=o+3;s<i;s+=2)if((t[s+1]&a)>0){let i=t[s];if(l.allows(i)&&(-1==e.token.value||e.token.value==i||function(t,e,i,s){let n=m(i,s,e);return n<0||m(i,s,t)<n}(i,e.token.value,n,r))){e.acceptToken(i);break}}let s=e.next,h=0,c=t[o+2];if(e.next<0&&c>h&&65535==t[i+3*c-3]){o=t[i+3*c-1];continue}for(;h<c;){let n=h+c>>1,r=i+n+(n<<1),a=t[r],l=t[r+1]||65536;if(s<a)c=n;else if(s>=l)h=n+1;else{o=t[r+2],e.advance();continue t}}break}}function m(t,e,i){for(let s=e,n;65535!=(n=t[s]);s++)if(n==i)return s-e;return -1}let g="undefined"!=typeof process&&process.env&&/\bparse\b/.test(process.env.LOG),v=null;function x(t,e,i){let n=t.cursor(s.vj.IncludeAnonymous);for(n.moveTo(e);;)if(!(i<0?n.childBefore(e):n.childAfter(e)))for(;;){if((i<0?n.to<e:n.from>e)&&!n.type.isError)return i<0?Math.max(0,Math.min(n.to-1,e-25)):Math.min(t.length,Math.max(n.from+1,e+25));if(i<0?n.prevSibling():n.nextSibling())break;if(!n.parent())return i<0?0:t.length}}class y{constructor(t,e){this.fragments=t,this.nodeSet=e,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let t=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(t){for(this.safeFrom=t.openStart?x(t.tree,t.from+t.offset,1)-t.offset:t.from,this.safeTo=t.openEnd?x(t.tree,t.to+t.offset,-1)-t.offset:t.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(t.tree),this.start.push(-t.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(t){if(t<this.nextStart)return null;for(;this.fragment&&this.safeTo<=t;)this.nextFragment();if(!this.fragment)return null;for(;;){let e=this.trees.length-1;if(e<0)return this.nextFragment(),null;let i=this.trees[e],n=this.index[e];if(n==i.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let r=i.children[n],o=this.start[e]+i.positions[n];if(o>t)return this.nextStart=o,null;if(r instanceof s.mp){if(o==t){if(o<this.safeFrom)return null;let t=o+r.length;if(t<=this.safeTo){let e=r.prop(s.md.lookAhead);if(!e||t+e<this.fragment.to)return r}}this.index[e]++,o+r.length>=Math.max(this.safeFrom,t)&&(this.trees.push(r),this.start.push(o),this.index.push(0))}else this.index[e]++,this.nextStart=o+r.length}}}class b{constructor(t,e){this.stream=e,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=t.tokenizers.map(t=>new h)}getActions(t){let e=0,i=null,{parser:s}=t.p,{tokenizers:n}=s,r=s.stateSlot(t.state,3),o=t.curContext?t.curContext.hash:0,a=0;for(let s=0;s<n.length;s++){if((1<<s&r)==0)continue;let l=n[s],h=this.tokens[s];if((!i||l.fallback)&&((l.contextual||h.start!=t.pos||h.mask!=r||h.context!=o)&&(this.updateCachedToken(h,l,t),h.mask=r,h.context=o),h.lookAhead>h.end+25&&(a=Math.max(h.lookAhead,a)),0!=h.value)){let s=e;if(h.extended>-1&&(e=this.addActions(t,h.extended,h.end,e