rails-playground 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +2 -0
- data/app/assets/javascripts/{application.js → playground.js} +0 -1
- data/app/controllers/playground/consoles_controller.rb +2 -0
- data/app/views/layouts/playground/editor.html.erb +14 -0
- data/lib/playground/version.rb +1 -1
- data/vendor/javascripts/playground/{application.js → playground.js} +3 -3
- data/vendor/stylesheets/playground/{application.css → playground.css} +1 -1
- data/vendor/stylesheets/playground/playground.css.map +1 -0
- metadata +9 -9
- data/app/views/layouts/playground/application.html.erb +0 -14
- data/vendor/stylesheets/playground/application.css.map +0 -1
- /data/app/assets/stylesheets/{application.scss → playground.scss} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 75eca87790e754ff85bdd69ac8cec2ed41f79093b953b6a49aad42ca3f99d7d2
|
4
|
+
data.tar.gz: 2700d6ea9fe192f32d0aeb38f4f36d2652c575a14caf86539ae29c4b3c16caaa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d1d852ccc52366efbb3cd30a6ab749db65d1ad1d564c653f1a5861d16228d009dced489a39bdf250d102ff75b6179942adea83e398391ec00effeda7d2443a0
|
7
|
+
data.tar.gz: 419f85490fb138e8c36214cdca58e5aa9e1580b8c60e45b77a77f3be64b37df6532db23f4e7abe43a7731ed26e9d6c4457883904ca0ca61c074b8a9023f7f1d5
|
data/README.md
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Playground</title>
|
5
|
+
<%= csrf_meta_tags %>
|
6
|
+
<%= csp_meta_tag %>
|
7
|
+
|
8
|
+
<%= javascript_include_tag "playground/playground", skip_pipeline: true, nonce: true, media: "all" %>
|
9
|
+
<%= stylesheet_link_tag "/stylesheets/playground/playground", media: "all" %>
|
10
|
+
</head>
|
11
|
+
<body id="playground">
|
12
|
+
<%= yield %>
|
13
|
+
</body>
|
14
|
+
</html>
|
data/lib/playground/version.rb
CHANGED
@@ -23,11 +23,11 @@
|
|
23
23
|
|
24
24
|
——
|
25
25
|
Suppress this warning by adding a "data-turbo-suppress-warning" attribute to: %s
|
26
|
-
`,n.outerHTML)}})();window.Turbo=am;ha();var wa;async function pm(){return wa||va(mm().then(va))}function va(n){return wa=n}async function mm(){let{createConsumer:n}=await Promise.resolve().then(()=>(ya(),ba));return n()}async function Sa(n,e){let{subscriptions:t}=await pm();return t.create(n,e)}var xa=class extends HTMLElement{async connectedCallback(){cr(this),this.subscription=await Sa(this.channel,{received:this.dispatchMessageEvent.bind(this)})}disconnectedCallback(){ur(this),this.subscription&&this.subscription.unsubscribe()}dispatchMessageEvent(e){let t=new MessageEvent("message",{data:e});return this.dispatchEvent(t)}get channel(){let e=this.getAttribute("channel"),t=this.getAttribute("signed-stream-name");return{channel:e,signed_stream_name:t}}};customElements.define("turbo-cable-stream-source",xa);var jn=class{constructor(e){this.response=e}get statusCode(){return this.response.status}get redirected(){return this.response.redirected}get ok(){return this.response.ok}get unauthenticated(){return this.statusCode===401}get unprocessableEntity(){return this.statusCode===422}get authenticationURL(){return this.response.headers.get("WWW-Authenticate")}get contentType(){return(this.response.headers.get("Content-Type")||"").replace(/;.*$/,"")}get headers(){return this.response.headers}get html(){return this.contentType.match(/^(application|text)\/(html|xhtml\+xml)$/)?this.text:Promise.reject(new Error(`Expected an HTML response but got "${this.contentType}" instead`))}get json(){return this.contentType.match(/^application\/.*json$/)?this.responseJson||(this.responseJson=this.response.json()):Promise.reject(new Error(`Expected a JSON response but got "${this.contentType}" instead`))}get text(){return this.responseText||(this.responseText=this.response.text())}get isTurboStream(){return this.contentType.match(/^text\/vnd\.turbo-stream\.html/)}async renderTurboStream(){if(this.isTurboStream)window.Turbo?await window.Turbo.renderStreamMessage(await this.text):console.warn("You must set `window.Turbo = Turbo` to automatically process Turbo Stream events with request.js");else return Promise.reject(new Error(`Expected a Turbo Stream response but got "${this.contentType}" instead`))}};var Un=class{static register(e){this.interceptor=e}static get(){return this.interceptor}static reset(){this.interceptor=void 0}};function ka(n){let e=document.cookie?document.cookie.split("; "):[],t=`${encodeURIComponent(n)}=`,i=e.find(s=>s.startsWith(t));if(i){let s=i.split("=").slice(1).join("=");if(s)return decodeURIComponent(s)}}function Ca(n){let e={};for(let t in n){let i=n[t];i!==void 0&&(e[t]=i)}return e}function vr(n){let e=document.head.querySelector(`meta[name="${n}"]`);return e&&e.content}function Aa(n){return[...n].reduce((e,[t,i])=>e.concat(typeof i=="string"?[[t,i]]:[]),[])}function Ea(n,e){for(let[t,i]of e)i instanceof window.File||(n.has(t)?(n.delete(t),n.set(t,i)):n.append(t,i))}var Kn=class{constructor(e,t,i={}){this.method=e,this.options=i,this.originalUrl=t.toString()}async perform(){try{let t=Un.get();t&&await t(this)}catch(t){console.error(t)}let e=new jn(await window.fetch(this.url,this.fetchOptions));return e.unauthenticated&&e.authenticationURL?Promise.reject(window.location.href=e.authenticationURL):(e.ok&&e.isTurboStream&&await e.renderTurboStream(),e)}addHeader(e,t){let i=this.additionalHeaders;i[e]=t,this.options.headers=i}get fetchOptions(){return{method:this.method.toUpperCase(),headers:this.headers,body:this.formattedBody,signal:this.signal,credentials:"same-origin",redirect:this.redirect}}get headers(){return Ca(Object.assign({"X-Requested-With":"XMLHttpRequest","X-CSRF-Token":this.csrfToken,"Content-Type":this.contentType,Accept:this.accept},this.additionalHeaders))}get csrfToken(){return ka(vr("csrf-param"))||vr("csrf-token")}get contentType(){return this.options.contentType?this.options.contentType:this.body==null||this.body instanceof window.FormData?void 0:this.body instanceof window.File?this.body.type:"application/json"}get accept(){switch(this.responseKind){case"html":return"text/html, application/xhtml+xml";case"turbo-stream":return"text/vnd.turbo-stream.html, text/html, application/xhtml+xml";case"json":return"application/json, application/vnd.api+json";default:return"*/*"}}get body(){return this.options.body}get query(){let e=(this.originalUrl.split("?")[1]||"").split("#")[0],t=new URLSearchParams(e),i=this.options.query;i instanceof window.FormData?i=Aa(i):i instanceof window.URLSearchParams?i=i.entries():i=Object.entries(i||{}),Ea(t,i);let s=t.toString();return s.length>0?`?${s}`:""}get url(){return this.originalUrl.split("?")[0].split("#")[0]+this.query}get responseKind(){return this.options.responseKind||"html"}get signal(){return this.options.signal}get redirect(){return this.options.redirect||"follow"}get additionalHeaders(){return this.options.headers||{}}get formattedBody(){let e=Object.prototype.toString.call(this.body)==="[object String]";return this.headers["Content-Type"]==="application/json"&&!e?JSON.stringify(this.body):this.body}};async function zi(n,e){return new Kn("get",n,e).perform()}var Ra=class{constructor(e,t,i){this.eventTarget=e,this.eventName=t,this.eventOptions=i,this.unorderedBindings=new Set}connect(){this.eventTarget.addEventListener(this.eventName,this,this.eventOptions)}disconnect(){this.eventTarget.removeEventListener(this.eventName,this,this.eventOptions)}bindingConnected(e){this.unorderedBindings.add(e)}bindingDisconnected(e){this.unorderedBindings.delete(e)}handleEvent(e){let t=bm(e);for(let i of this.bindings){if(t.immediatePropagationStopped)break;i.handleEvent(t)}}get bindings(){return Array.from(this.unorderedBindings).sort((e,t)=>{let i=e.index,s=t.index;return i<s?-1:i>s?1:0})}};function bm(n){if("immediatePropagationStopped"in n)return n;{let{stopImmediatePropagation:e}=n;return Object.assign(n,{immediatePropagationStopped:!1,stopImmediatePropagation(){this.immediatePropagationStopped=!0,e.call(this)}})}}var Pa=class{constructor(e){this.application=e,this.eventListenerMaps=new Map,this.started=!1}start(){this.started||(this.started=!0,this.eventListeners.forEach(e=>e.connect()))}stop(){this.started&&(this.started=!1,this.eventListeners.forEach(e=>e.disconnect()))}get eventListeners(){return Array.from(this.eventListenerMaps.values()).reduce((e,t)=>e.concat(Array.from(t.values())),[])}bindingConnected(e){this.fetchEventListenerForBinding(e).bindingConnected(e)}bindingDisconnected(e){this.fetchEventListenerForBinding(e).bindingDisconnected(e)}handleError(e,t,i={}){this.application.handleError(e,`Error ${t}`,i)}fetchEventListenerForBinding(e){let{eventTarget:t,eventName:i,eventOptions:s}=e;return this.fetchEventListener(t,i,s)}fetchEventListener(e,t,i){let s=this.fetchEventListenerMapForEventTarget(e),r=this.cacheKey(t,i),o=s.get(r);return o||(o=this.createEventListener(e,t,i),s.set(r,o)),o}createEventListener(e,t,i){let s=new Ra(e,t,i);return this.started&&s.connect(),s}fetchEventListenerMapForEventTarget(e){let t=this.eventListenerMaps.get(e);return t||(t=new Map,this.eventListenerMaps.set(e,t)),t}cacheKey(e,t){let i=[e];return Object.keys(t).sort().forEach(s=>{i.push(`${t[s]?"":"!"}${s}`)}),i.join(":")}},ym=/^((.+?)(@(window|document))?->)?(.+?)(#([^:]+?))(:(.+))?$/;function vm(n){let t=n.trim().match(ym)||[];return{eventTarget:wm(t[4]),eventName:t[2],eventOptions:t[9]?Sm(t[9]):{},identifier:t[5],methodName:t[7]}}function wm(n){if(n=="window")return window;if(n=="document")return document}function Sm(n){return n.split(":").reduce((e,t)=>Object.assign(e,{[t.replace(/^!/,"")]:!/^!/.test(t)}),{})}function xm(n){if(n==window)return"window";if(n==document)return"document"}function Oa(n){return n.replace(/(?:[_-])([a-z0-9])/g,(e,t)=>t.toUpperCase())}function _n(n){return n.charAt(0).toUpperCase()+n.slice(1)}function Da(n){return n.replace(/([A-Z])/g,(e,t)=>`-${t.toLowerCase()}`)}function km(n){return n.match(/[^\s]+/g)||[]}var Ba=class{constructor(e,t,i){this.element=e,this.index=t,this.eventTarget=i.eventTarget||e,this.eventName=i.eventName||Cm(e)||wr("missing event name"),this.eventOptions=i.eventOptions||{},this.identifier=i.identifier||wr("missing identifier"),this.methodName=i.methodName||wr("missing method name")}static forToken(e){return new this(e.element,e.index,vm(e.content))}toString(){let e=this.eventTargetName?`@${this.eventTargetName}`:"";return`${this.eventName}${e}->${this.identifier}#${this.methodName}`}get params(){return this.eventTarget instanceof Element?this.getParamsFromEventTargetAttributes(this.eventTarget):{}}getParamsFromEventTargetAttributes(e){let t={},i=new RegExp(`^data-${this.identifier}-(.+)-param$`);return Array.from(e.attributes).forEach(({name:r,value:o})=>{let l=r.match(i),a=l&&l[1];a&&Object.assign(t,{[Oa(a)]:Am(o)})}),t}get eventTargetName(){return xm(this.eventTarget)}},Ma={a:n=>"click",button:n=>"click",form:n=>"submit",details:n=>"toggle",input:n=>n.getAttribute("type")=="submit"?"click":"input",select:n=>"change",textarea:n=>"input"};function Cm(n){let e=n.tagName.toLowerCase();if(e in Ma)return Ma[e](n)}function wr(n){throw new Error(n)}function Am(n){try{return JSON.parse(n)}catch{return n}}var Ia=class{constructor(e,t){this.context=e,this.action=t}get index(){return this.action.index}get eventTarget(){return this.action.eventTarget}get eventOptions(){return this.action.eventOptions}get identifier(){return this.context.identifier}handleEvent(e){this.willBeInvokedByEvent(e)&&this.invokeWithEvent(e)}get eventName(){return this.action.eventName}get method(){let e=this.controller[this.methodName];if(typeof e=="function")return e;throw new Error(`Action "${this.action}" references undefined method "${this.methodName}"`)}invokeWithEvent(e){let{target:t,currentTarget:i}=e;try{let{params:s}=this.action,r=Object.assign(e,{params:s});this.method.call(this.controller,r),this.context.logDebugActivity(this.methodName,{event:e,target:t,currentTarget:i,action:this.methodName})}catch(s){let{identifier:r,controller:o,element:l,index:a}=this,h={identifier:r,controller:o,element:l,index:a,event:e};this.context.handleError(s,`invoking action "${this.action}"`,h)}}willBeInvokedByEvent(e){let t=e.target;return this.element===t?!0:t instanceof Element&&this.element.contains(t)?this.scope.containsElement(t):this.scope.containsElement(this.action.element)}get controller(){return this.context.controller}get methodName(){return this.action.methodName}get element(){return this.scope.element}get scope(){return this.context.scope}},Na=class{constructor(e,t){this.mutationObserverInit={attributes:!0,childList:!0,subtree:!0},this.element=e,this.started=!1,this.delegate=t,this.elements=new Set,this.mutationObserver=new MutationObserver(i=>this.processMutations(i))}start(){this.started||(this.started=!0,this.mutationObserver.observe(this.element,this.mutationObserverInit),this.refresh())}pause(e){this.started&&(this.mutationObserver.disconnect(),this.started=!1),e(),this.started||(this.mutationObserver.observe(this.element,this.mutationObserverInit),this.started=!0)}stop(){this.started&&(this.mutationObserver.takeRecords(),this.mutationObserver.disconnect(),this.started=!1)}refresh(){if(this.started){let e=new Set(this.matchElementsInTree());for(let t of Array.from(this.elements))e.has(t)||this.removeElement(t);for(let t of Array.from(e))this.addElement(t)}}processMutations(e){if(this.started)for(let t of e)this.processMutation(t)}processMutation(e){e.type=="attributes"?this.processAttributeChange(e.target,e.attributeName):e.type=="childList"&&(this.processRemovedNodes(e.removedNodes),this.processAddedNodes(e.addedNodes))}processAttributeChange(e,t){let i=e;this.elements.has(i)?this.delegate.elementAttributeChanged&&this.matchElement(i)?this.delegate.elementAttributeChanged(i,t):this.removeElement(i):this.matchElement(i)&&this.addElement(i)}processRemovedNodes(e){for(let t of Array.from(e)){let i=this.elementFromNode(t);i&&this.processTree(i,this.removeElement)}}processAddedNodes(e){for(let t of Array.from(e)){let i=this.elementFromNode(t);i&&this.elementIsActive(i)&&this.processTree(i,this.addElement)}}matchElement(e){return this.delegate.matchElement(e)}matchElementsInTree(e=this.element){return this.delegate.matchElementsInTree(e)}processTree(e,t){for(let i of this.matchElementsInTree(e))t.call(this,i)}elementFromNode(e){if(e.nodeType==Node.ELEMENT_NODE)return e}elementIsActive(e){return e.isConnected!=this.element.isConnected?!1:this.element.contains(e)}addElement(e){this.elements.has(e)||this.elementIsActive(e)&&(this.elements.add(e),this.delegate.elementMatched&&this.delegate.elementMatched(e))}removeElement(e){this.elements.has(e)&&(this.elements.delete(e),this.delegate.elementUnmatched&&this.delegate.elementUnmatched(e))}},Fa=class{constructor(e,t,i){this.attributeName=t,this.delegate=i,this.elementObserver=new Na(e,this)}get element(){return this.elementObserver.element}get selector(){return`[${this.attributeName}]`}start(){this.elementObserver.start()}pause(e){this.elementObserver.pause(e)}stop(){this.elementObserver.stop()}refresh(){this.elementObserver.refresh()}get started(){return this.elementObserver.started}matchElement(e){return e.hasAttribute(this.attributeName)}matchElementsInTree(e){let t=this.matchElement(e)?[e]:[],i=Array.from(e.querySelectorAll(this.selector));return t.concat(i)}elementMatched(e){this.delegate.elementMatchedAttribute&&this.delegate.elementMatchedAttribute(e,this.attributeName)}elementUnmatched(e){this.delegate.elementUnmatchedAttribute&&this.delegate.elementUnmatchedAttribute(e,this.attributeName)}elementAttributeChanged(e,t){this.delegate.elementAttributeValueChanged&&this.attributeName==t&&this.delegate.elementAttributeValueChanged(e,t)}},Va=class{constructor(e,t){this.element=e,this.delegate=t,this.started=!1,this.stringMap=new Map,this.mutationObserver=new MutationObserver(i=>this.processMutations(i))}start(){this.started||(this.started=!0,this.mutationObserver.observe(this.element,{attributes:!0,attributeOldValue:!0}),this.refresh())}stop(){this.started&&(this.mutationObserver.takeRecords(),this.mutationObserver.disconnect(),this.started=!1)}refresh(){if(this.started)for(let e of this.knownAttributeNames)this.refreshAttribute(e,null)}processMutations(e){if(this.started)for(let t of e)this.processMutation(t)}processMutation(e){let t=e.attributeName;t&&this.refreshAttribute(t,e.oldValue)}refreshAttribute(e,t){let i=this.delegate.getStringMapKeyForAttribute(e);if(i!=null){this.stringMap.has(e)||this.stringMapKeyAdded(i,e);let s=this.element.getAttribute(e);if(this.stringMap.get(e)!=s&&this.stringMapValueChanged(s,i,t),s==null){let r=this.stringMap.get(e);this.stringMap.delete(e),r&&this.stringMapKeyRemoved(i,e,r)}else this.stringMap.set(e,s)}}stringMapKeyAdded(e,t){this.delegate.stringMapKeyAdded&&this.delegate.stringMapKeyAdded(e,t)}stringMapValueChanged(e,t,i){this.delegate.stringMapValueChanged&&this.delegate.stringMapValueChanged(e,t,i)}stringMapKeyRemoved(e,t,i){this.delegate.stringMapKeyRemoved&&this.delegate.stringMapKeyRemoved(e,t,i)}get knownAttributeNames(){return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)))}get currentAttributeNames(){return Array.from(this.element.attributes).map(e=>e.name)}get recordedAttributeNames(){return Array.from(this.stringMap.keys())}};function Em(n,e,t){Ha(n,e).add(t)}function Mm(n,e,t){Ha(n,e).delete(t),Tm(n,e)}function Ha(n,e){let t=n.get(e);return t||(t=new Set,n.set(e,t)),t}function Tm(n,e){let t=n.get(e);t!=null&&t.size==0&&n.delete(e)}var Gn=class{constructor(){this.valuesByKey=new Map}get keys(){return Array.from(this.valuesByKey.keys())}get values(){return Array.from(this.valuesByKey.values()).reduce((t,i)=>t.concat(Array.from(i)),[])}get size(){return Array.from(this.valuesByKey.values()).reduce((t,i)=>t+i.size,0)}add(e,t){Em(this.valuesByKey,e,t)}delete(e,t){Mm(this.valuesByKey,e,t)}has(e,t){let i=this.valuesByKey.get(e);return i!=null&&i.has(t)}hasKey(e){return this.valuesByKey.has(e)}hasValue(e){return Array.from(this.valuesByKey.values()).some(i=>i.has(e))}getValuesForKey(e){let t=this.valuesByKey.get(e);return t?Array.from(t):[]}getKeysForValue(e){return Array.from(this.valuesByKey).filter(([t,i])=>i.has(e)).map(([t,i])=>t)}};var xr=class{constructor(e,t,i){this.attributeObserver=new Fa(e,t,this),this.delegate=i,this.tokensByElement=new Gn}get started(){return this.attributeObserver.started}start(){this.attributeObserver.start()}pause(e){this.attributeObserver.pause(e)}stop(){this.attributeObserver.stop()}refresh(){this.attributeObserver.refresh()}get element(){return this.attributeObserver.element}get attributeName(){return this.attributeObserver.attributeName}elementMatchedAttribute(e){this.tokensMatched(this.readTokensForElement(e))}elementAttributeValueChanged(e){let[t,i]=this.refreshTokensForElement(e);this.tokensUnmatched(t),this.tokensMatched(i)}elementUnmatchedAttribute(e){this.tokensUnmatched(this.tokensByElement.getValuesForKey(e))}tokensMatched(e){e.forEach(t=>this.tokenMatched(t))}tokensUnmatched(e){e.forEach(t=>this.tokenUnmatched(t))}tokenMatched(e){this.delegate.tokenMatched(e),this.tokensByElement.add(e.element,e)}tokenUnmatched(e){this.delegate.tokenUnmatched(e),this.tokensByElement.delete(e.element,e)}refreshTokensForElement(e){let t=this.tokensByElement.getValuesForKey(e),i=this.readTokensForElement(e),s=Rm(t,i).findIndex(([r,o])=>!Pm(r,o));return s==-1?[[],[]]:[t.slice(s),i.slice(s)]}readTokensForElement(e){let t=this.attributeName,i=e.getAttribute(t)||"";return Lm(i,e,t)}};function Lm(n,e,t){return n.trim().split(/\s+/).filter(i=>i.length).map((i,s)=>({element:e,attributeName:t,content:i,index:s}))}function Rm(n,e){let t=Math.max(n.length,e.length);return Array.from({length:t},(i,s)=>[n[s],e[s]])}function Pm(n,e){return n&&e&&n.index==e.index&&n.content==e.content}var kr=class{constructor(e,t,i){this.tokenListObserver=new xr(e,t,this),this.delegate=i,this.parseResultsByToken=new WeakMap,this.valuesByTokenByElement=new WeakMap}get started(){return this.tokenListObserver.started}start(){this.tokenListObserver.start()}stop(){this.tokenListObserver.stop()}refresh(){this.tokenListObserver.refresh()}get element(){return this.tokenListObserver.element}get attributeName(){return this.tokenListObserver.attributeName}tokenMatched(e){let{element:t}=e,{value:i}=this.fetchParseResultForToken(e);i&&(this.fetchValuesByTokenForElement(t).set(e,i),this.delegate.elementMatchedValue(t,i))}tokenUnmatched(e){let{element:t}=e,{value:i}=this.fetchParseResultForToken(e);i&&(this.fetchValuesByTokenForElement(t).delete(e),this.delegate.elementUnmatchedValue(t,i))}fetchParseResultForToken(e){let t=this.parseResultsByToken.get(e);return t||(t=this.parseToken(e),this.parseResultsByToken.set(e,t)),t}fetchValuesByTokenForElement(e){let t=this.valuesByTokenByElement.get(e);return t||(t=new Map,this.valuesByTokenByElement.set(e,t)),t}parseToken(e){try{return{value:this.delegate.parseValueForToken(e)}}catch(t){return{error:t}}}},qa=class{constructor(e,t){this.context=e,this.delegate=t,this.bindingsByAction=new Map}start(){this.valueListObserver||(this.valueListObserver=new kr(this.element,this.actionAttribute,this),this.valueListObserver.start())}stop(){this.valueListObserver&&(this.valueListObserver.stop(),delete this.valueListObserver,this.disconnectAllActions())}get element(){return this.context.element}get identifier(){return this.context.identifier}get actionAttribute(){return this.schema.actionAttribute}get schema(){return this.context.schema}get bindings(){return Array.from(this.bindingsByAction.values())}connectAction(e){let t=new Ia(this.context,e);this.bindingsByAction.set(e,t),this.delegate.bindingConnected(t)}disconnectAction(e){let t=this.bindingsByAction.get(e);t&&(this.bindingsByAction.delete(e),this.delegate.bindingDisconnected(t))}disconnectAllActions(){this.bindings.forEach(e=>this.delegate.bindingDisconnected(e)),this.bindingsByAction.clear()}parseValueForToken(e){let t=Ba.forToken(e);if(t.identifier==this.identifier)return t}elementMatchedValue(e,t){this.connectAction(t)}elementUnmatchedValue(e,t){this.disconnectAction(t)}},Wa=class{constructor(e,t){this.context=e,this.receiver=t,this.stringMapObserver=new Va(this.element,this),this.valueDescriptorMap=this.controller.valueDescriptorMap,this.invokeChangedCallbacksForDefaultValues()}start(){this.stringMapObserver.start()}stop(){this.stringMapObserver.stop()}get element(){return this.context.element}get controller(){return this.context.controller}getStringMapKeyForAttribute(e){if(e in this.valueDescriptorMap)return this.valueDescriptorMap[e].name}stringMapKeyAdded(e,t){let i=this.valueDescriptorMap[t];this.hasValue(e)||this.invokeChangedCallback(e,i.writer(this.receiver[e]),i.writer(i.defaultValue))}stringMapValueChanged(e,t,i){let s=this.valueDescriptorNameMap[t];e!==null&&(i===null&&(i=s.writer(s.defaultValue)),this.invokeChangedCallback(t,e,i))}stringMapKeyRemoved(e,t,i){let s=this.valueDescriptorNameMap[e];this.hasValue(e)?this.invokeChangedCallback(e,s.writer(this.receiver[e]),i):this.invokeChangedCallback(e,s.writer(s.defaultValue),i)}invokeChangedCallbacksForDefaultValues(){for(let{key:e,name:t,defaultValue:i,writer:s}of this.valueDescriptors)i!=null&&!this.controller.data.has(e)&&this.invokeChangedCallback(t,s(i),void 0)}invokeChangedCallback(e,t,i){let s=`${e}Changed`,r=this.receiver[s];if(typeof r=="function"){let o=this.valueDescriptorNameMap[e],l=o.reader(t),a=i;i&&(a=o.reader(i)),r.call(this.receiver,l,a)}}get valueDescriptors(){let{valueDescriptorMap:e}=this;return Object.keys(e).map(t=>e[t])}get valueDescriptorNameMap(){let e={};return Object.keys(this.valueDescriptorMap).forEach(t=>{let i=this.valueDescriptorMap[t];e[i.name]=i}),e}hasValue(e){let t=this.valueDescriptorNameMap[e],i=`has${_n(t.name)}`;return this.receiver[i]}},za=class{constructor(e,t){this.context=e,this.delegate=t,this.targetsByName=new Gn}start(){this.tokenListObserver||(this.tokenListObserver=new xr(this.element,this.attributeName,this),this.tokenListObserver.start())}stop(){this.tokenListObserver&&(this.disconnectAllTargets(),this.tokenListObserver.stop(),delete this.tokenListObserver)}tokenMatched({element:e,content:t}){this.scope.containsElement(e)&&this.connectTarget(e,t)}tokenUnmatched({element:e,content:t}){this.disconnectTarget(e,t)}connectTarget(e,t){var i;this.targetsByName.has(t,e)||(this.targetsByName.add(t,e),(i=this.tokenListObserver)===null||i===void 0||i.pause(()=>this.delegate.targetConnected(e,t)))}disconnectTarget(e,t){var i;this.targetsByName.has(t,e)&&(this.targetsByName.delete(t,e),(i=this.tokenListObserver)===null||i===void 0||i.pause(()=>this.delegate.targetDisconnected(e,t)))}disconnectAllTargets(){for(let e of this.targetsByName.keys)for(let t of this.targetsByName.getValuesForKey(e))this.disconnectTarget(t,e)}get attributeName(){return`data-${this.context.identifier}-target`}get element(){return this.context.element}get scope(){return this.context.scope}},$a=class{constructor(e,t){this.logDebugActivity=(i,s={})=>{let{identifier:r,controller:o,element:l}=this;s=Object.assign({identifier:r,controller:o,element:l},s),this.application.logDebugActivity(this.identifier,i,s)},this.module=e,this.scope=t,this.controller=new e.controllerConstructor(this),this.bindingObserver=new qa(this,this.dispatcher),this.valueObserver=new Wa(this,this.controller),this.targetObserver=new za(this,this);try{this.controller.initialize(),this.logDebugActivity("initialize")}catch(i){this.handleError(i,"initializing controller")}}connect(){this.bindingObserver.start(),this.valueObserver.start(),this.targetObserver.start();try{this.controller.connect(),this.logDebugActivity("connect")}catch(e){this.handleError(e,"connecting controller")}}disconnect(){try{this.controller.disconnect(),this.logDebugActivity("disconnect")}catch(e){this.handleError(e,"disconnecting controller")}this.targetObserver.stop(),this.valueObserver.stop(),this.bindingObserver.stop()}get application(){return this.module.application}get identifier(){return this.module.identifier}get schema(){return this.application.schema}get dispatcher(){return this.application.dispatcher}get element(){return this.scope.element}get parentElement(){return this.element.parentElement}handleError(e,t,i={}){let{identifier:s,controller:r,element:o}=this;i=Object.assign({identifier:s,controller:r,element:o},i),this.application.handleError(e,`Error ${t}`,i)}targetConnected(e,t){this.invokeControllerMethod(`${t}TargetConnected`,e)}targetDisconnected(e,t){this.invokeControllerMethod(`${t}TargetDisconnected`,e)}invokeControllerMethod(e,...t){let i=this.controller;typeof i[e]=="function"&&i[e](...t)}};function Cr(n,e){let t=ja(n);return Array.from(t.reduce((i,s)=>(Dm(s,e).forEach(r=>i.add(r)),i),new Set))}function Om(n,e){return ja(n).reduce((i,s)=>(i.push(...Bm(s,e)),i),[])}function ja(n){let e=[];for(;n;)e.push(n),n=Object.getPrototypeOf(n);return e.reverse()}function Dm(n,e){let t=n[e];return Array.isArray(t)?t:[]}function Bm(n,e){let t=n[e];return t?Object.keys(t).map(i=>[i,t[i]]):[]}function Im(n){return Nm(n,Fm(n))}function Nm(n,e){let t=Wm(n),i=Vm(n.prototype,e);return Object.defineProperties(t.prototype,i),t}function Fm(n){return Cr(n,"blessings").reduce((t,i)=>{let s=i(n);for(let r in s){let o=t[r]||{};t[r]=Object.assign(o,s[r])}return t},{})}function Vm(n,e){return qm(e).reduce((t,i)=>{let s=Hm(n,e,i);return s&&Object.assign(t,{[i]:s}),t},{})}function Hm(n,e,t){let i=Object.getOwnPropertyDescriptor(n,t);if(!(i&&"value"in i)){let r=Object.getOwnPropertyDescriptor(e,t).value;return i&&(r.get=i.get||r.get,r.set=i.set||r.set),r}}var qm=(()=>typeof Object.getOwnPropertySymbols=="function"?n=>[...Object.getOwnPropertyNames(n),...Object.getOwnPropertySymbols(n)]:Object.getOwnPropertyNames)(),Wm=(()=>{function n(t){function i(){return Reflect.construct(t,arguments,new.target)}return i.prototype=Object.create(t.prototype,{constructor:{value:i}}),Reflect.setPrototypeOf(i,t),i}function e(){let i=n(function(){this.a.call(this)});return i.prototype.a=function(){},new i}try{return e(),n}catch{return i=>class extends i{}}})();function zm(n){return{identifier:n.identifier,controllerConstructor:Im(n.controllerConstructor)}}var Ua=class{constructor(e,t){this.application=e,this.definition=zm(t),this.contextsByScope=new WeakMap,this.connectedContexts=new Set}get identifier(){return this.definition.identifier}get controllerConstructor(){return this.definition.controllerConstructor}get contexts(){return Array.from(this.connectedContexts)}connectContextForScope(e){let t=this.fetchContextForScope(e);this.connectedContexts.add(t),t.connect()}disconnectContextForScope(e){let t=this.contextsByScope.get(e);t&&(this.connectedContexts.delete(t),t.disconnect())}fetchContextForScope(e){let t=this.contextsByScope.get(e);return t||(t=new $a(this,e),this.contextsByScope.set(e,t)),t}},Ka=class{constructor(e){this.scope=e}has(e){return this.data.has(this.getDataKey(e))}get(e){return this.getAll(e)[0]}getAll(e){let t=this.data.get(this.getDataKey(e))||"";return km(t)}getAttributeName(e){return this.data.getAttributeNameForKey(this.getDataKey(e))}getDataKey(e){return`${e}-class`}get data(){return this.scope.data}},_a=class{constructor(e){this.scope=e}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get(e){let t=this.getAttributeNameForKey(e);return this.element.getAttribute(t)}set(e,t){let i=this.getAttributeNameForKey(e);return this.element.setAttribute(i,t),this.get(e)}has(e){let t=this.getAttributeNameForKey(e);return this.element.hasAttribute(t)}delete(e){if(this.has(e)){let t=this.getAttributeNameForKey(e);return this.element.removeAttribute(t),!0}else return!1}getAttributeNameForKey(e){return`data-${this.identifier}-${Da(e)}`}},Ga=class{constructor(e){this.warnedKeysByObject=new WeakMap,this.logger=e}warn(e,t,i){let s=this.warnedKeysByObject.get(e);s||(s=new Set,this.warnedKeysByObject.set(e,s)),s.has(t)||(s.add(t),this.logger.warn(i,e))}};function Sr(n,e){return`[${n}~="${e}"]`}var Ja=class{constructor(e){this.scope=e}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get schema(){return this.scope.schema}has(e){return this.find(e)!=null}find(...e){return e.reduce((t,i)=>t||this.findTarget(i)||this.findLegacyTarget(i),void 0)}findAll(...e){return e.reduce((t,i)=>[...t,...this.findAllTargets(i),...this.findAllLegacyTargets(i)],[])}findTarget(e){let t=this.getSelectorForTargetName(e);return this.scope.findElement(t)}findAllTargets(e){let t=this.getSelectorForTargetName(e);return this.scope.findAllElements(t)}getSelectorForTargetName(e){let t=this.schema.targetAttributeForScope(this.identifier);return Sr(t,e)}findLegacyTarget(e){let t=this.getLegacySelectorForTargetName(e);return this.deprecate(this.scope.findElement(t),e)}findAllLegacyTargets(e){let t=this.getLegacySelectorForTargetName(e);return this.scope.findAllElements(t).map(i=>this.deprecate(i,e))}getLegacySelectorForTargetName(e){let t=`${this.identifier}.${e}`;return Sr(this.schema.targetAttribute,t)}deprecate(e,t){if(e){let{identifier:i}=this,s=this.schema.targetAttribute,r=this.schema.targetAttributeForScope(i);this.guide.warn(e,`target:${t}`,`Please replace ${s}="${i}.${t}" with ${r}="${t}". The ${s} attribute is deprecated and will be removed in a future version of Stimulus.`)}return e}get guide(){return this.scope.guide}},Ya=class{constructor(e,t,i,s){this.targets=new Ja(this),this.classes=new Ka(this),this.data=new _a(this),this.containsElement=r=>r.closest(this.controllerSelector)===this.element,this.schema=e,this.element=t,this.identifier=i,this.guide=new Ga(s)}findElement(e){return this.element.matches(e)?this.element:this.queryElements(e).find(this.containsElement)}findAllElements(e){return[...this.element.matches(e)?[this.element]:[],...this.queryElements(e).filter(this.containsElement)]}queryElements(e){return Array.from(this.element.querySelectorAll(e))}get controllerSelector(){return Sr(this.schema.controllerAttribute,this.identifier)}},Xa=class{constructor(e,t,i){this.element=e,this.schema=t,this.delegate=i,this.valueListObserver=new kr(this.element,this.controllerAttribute,this),this.scopesByIdentifierByElement=new WeakMap,this.scopeReferenceCounts=new WeakMap}start(){this.valueListObserver.start()}stop(){this.valueListObserver.stop()}get controllerAttribute(){return this.schema.controllerAttribute}parseValueForToken(e){let{element:t,content:i}=e,s=this.fetchScopesByIdentifierForElement(t),r=s.get(i);return r||(r=this.delegate.createScopeForElementAndIdentifier(t,i),s.set(i,r)),r}elementMatchedValue(e,t){let i=(this.scopeReferenceCounts.get(t)||0)+1;this.scopeReferenceCounts.set(t,i),i==1&&this.delegate.scopeConnected(t)}elementUnmatchedValue(e,t){let i=this.scopeReferenceCounts.get(t);i&&(this.scopeReferenceCounts.set(t,i-1),i==1&&this.delegate.scopeDisconnected(t))}fetchScopesByIdentifierForElement(e){let t=this.scopesByIdentifierByElement.get(e);return t||(t=new Map,this.scopesByIdentifierByElement.set(e,t)),t}},Qa=class{constructor(e){this.application=e,this.scopeObserver=new Xa(this.element,this.schema,this),this.scopesByIdentifier=new Gn,this.modulesByIdentifier=new Map}get element(){return this.application.element}get schema(){return this.application.schema}get logger(){return this.application.logger}get controllerAttribute(){return this.schema.controllerAttribute}get modules(){return Array.from(this.modulesByIdentifier.values())}get contexts(){return this.modules.reduce((e,t)=>e.concat(t.contexts),[])}start(){this.scopeObserver.start()}stop(){this.scopeObserver.stop()}loadDefinition(e){this.unloadIdentifier(e.identifier);let t=new Ua(this.application,e);this.connectModule(t)}unloadIdentifier(e){let t=this.modulesByIdentifier.get(e);t&&this.disconnectModule(t)}getContextForElementAndIdentifier(e,t){let i=this.modulesByIdentifier.get(t);if(i)return i.contexts.find(s=>s.element==e)}handleError(e,t,i){this.application.handleError(e,t,i)}createScopeForElementAndIdentifier(e,t){return new Ya(this.schema,e,t,this.logger)}scopeConnected(e){this.scopesByIdentifier.add(e.identifier,e);let t=this.modulesByIdentifier.get(e.identifier);t&&t.connectContextForScope(e)}scopeDisconnected(e){this.scopesByIdentifier.delete(e.identifier,e);let t=this.modulesByIdentifier.get(e.identifier);t&&t.disconnectContextForScope(e)}connectModule(e){this.modulesByIdentifier.set(e.identifier,e),this.scopesByIdentifier.getValuesForKey(e.identifier).forEach(i=>e.connectContextForScope(i))}disconnectModule(e){this.modulesByIdentifier.delete(e.identifier),this.scopesByIdentifier.getValuesForKey(e.identifier).forEach(i=>e.disconnectContextForScope(i))}},$m={controllerAttribute:"data-controller",actionAttribute:"data-action",targetAttribute:"data-target",targetAttributeForScope:n=>`data-${n}-target`},$i=class{constructor(e=document.documentElement,t=$m){this.logger=console,this.debug=!1,this.logDebugActivity=(i,s,r={})=>{this.debug&&this.logFormattedMessage(i,s,r)},this.element=e,this.schema=t,this.dispatcher=new Pa(this),this.router=new Qa(this)}static start(e,t){let i=new $i(e,t);return i.start(),i}async start(){await jm(),this.logDebugActivity("application","starting"),this.dispatcher.start(),this.router.start(),this.logDebugActivity("application","start")}stop(){this.logDebugActivity("application","stopping"),this.dispatcher.stop(),this.router.stop(),this.logDebugActivity("application","stop")}register(e,t){t.shouldLoad&&this.load({identifier:e,controllerConstructor:t})}load(e,...t){(Array.isArray(e)?e:[e,...t]).forEach(s=>this.router.loadDefinition(s))}unload(e,...t){(Array.isArray(e)?e:[e,...t]).forEach(s=>this.router.unloadIdentifier(s))}get controllers(){return this.router.contexts.map(e=>e.controller)}getControllerForElementAndIdentifier(e,t){let i=this.router.getContextForElementAndIdentifier(e,t);return i?i.controller:null}handleError(e,t,i){var s;this.logger.error(`%s
|
26
|
+
`,n.outerHTML)}})();window.Turbo=am;ha();var wa;async function pm(){return wa||va(mm().then(va))}function va(n){return wa=n}async function mm(){let{createConsumer:n}=await Promise.resolve().then(()=>(ya(),ba));return n()}async function Sa(n,e){let{subscriptions:t}=await pm();return t.create(n,e)}var xa=class extends HTMLElement{async connectedCallback(){cr(this),this.subscription=await Sa(this.channel,{received:this.dispatchMessageEvent.bind(this)})}disconnectedCallback(){ur(this),this.subscription&&this.subscription.unsubscribe()}dispatchMessageEvent(e){let t=new MessageEvent("message",{data:e});return this.dispatchEvent(t)}get channel(){let e=this.getAttribute("channel"),t=this.getAttribute("signed-stream-name");return{channel:e,signed_stream_name:t}}};customElements.define("turbo-cable-stream-source",xa);var Ea=class{constructor(e,t,i){this.eventTarget=e,this.eventName=t,this.eventOptions=i,this.unorderedBindings=new Set}connect(){this.eventTarget.addEventListener(this.eventName,this,this.eventOptions)}disconnect(){this.eventTarget.removeEventListener(this.eventName,this,this.eventOptions)}bindingConnected(e){this.unorderedBindings.add(e)}bindingDisconnected(e){this.unorderedBindings.delete(e)}handleEvent(e){let t=bm(e);for(let i of this.bindings){if(t.immediatePropagationStopped)break;i.handleEvent(t)}}get bindings(){return Array.from(this.unorderedBindings).sort((e,t)=>{let i=e.index,s=t.index;return i<s?-1:i>s?1:0})}};function bm(n){if("immediatePropagationStopped"in n)return n;{let{stopImmediatePropagation:e}=n;return Object.assign(n,{immediatePropagationStopped:!1,stopImmediatePropagation(){this.immediatePropagationStopped=!0,e.call(this)}})}}var Ma=class{constructor(e){this.application=e,this.eventListenerMaps=new Map,this.started=!1}start(){this.started||(this.started=!0,this.eventListeners.forEach(e=>e.connect()))}stop(){this.started&&(this.started=!1,this.eventListeners.forEach(e=>e.disconnect()))}get eventListeners(){return Array.from(this.eventListenerMaps.values()).reduce((e,t)=>e.concat(Array.from(t.values())),[])}bindingConnected(e){this.fetchEventListenerForBinding(e).bindingConnected(e)}bindingDisconnected(e){this.fetchEventListenerForBinding(e).bindingDisconnected(e)}handleError(e,t,i={}){this.application.handleError(e,`Error ${t}`,i)}fetchEventListenerForBinding(e){let{eventTarget:t,eventName:i,eventOptions:s}=e;return this.fetchEventListener(t,i,s)}fetchEventListener(e,t,i){let s=this.fetchEventListenerMapForEventTarget(e),r=this.cacheKey(t,i),o=s.get(r);return o||(o=this.createEventListener(e,t,i),s.set(r,o)),o}createEventListener(e,t,i){let s=new Ea(e,t,i);return this.started&&s.connect(),s}fetchEventListenerMapForEventTarget(e){let t=this.eventListenerMaps.get(e);return t||(t=new Map,this.eventListenerMaps.set(e,t)),t}cacheKey(e,t){let i=[e];return Object.keys(t).sort().forEach(s=>{i.push(`${t[s]?"":"!"}${s}`)}),i.join(":")}},ym=/^((.+?)(@(window|document))?->)?(.+?)(#([^:]+?))(:(.+))?$/;function vm(n){let t=n.trim().match(ym)||[];return{eventTarget:wm(t[4]),eventName:t[2],eventOptions:t[9]?Sm(t[9]):{},identifier:t[5],methodName:t[7]}}function wm(n){if(n=="window")return window;if(n=="document")return document}function Sm(n){return n.split(":").reduce((e,t)=>Object.assign(e,{[t.replace(/^!/,"")]:!/^!/.test(t)}),{})}function xm(n){if(n==window)return"window";if(n==document)return"document"}function Ta(n){return n.replace(/(?:[_-])([a-z0-9])/g,(e,t)=>t.toUpperCase())}function jn(n){return n.charAt(0).toUpperCase()+n.slice(1)}function La(n){return n.replace(/([A-Z])/g,(e,t)=>`-${t.toLowerCase()}`)}function km(n){return n.match(/[^\s]+/g)||[]}var Ra=class{constructor(e,t,i){this.element=e,this.index=t,this.eventTarget=i.eventTarget||e,this.eventName=i.eventName||Cm(e)||vr("missing event name"),this.eventOptions=i.eventOptions||{},this.identifier=i.identifier||vr("missing identifier"),this.methodName=i.methodName||vr("missing method name")}static forToken(e){return new this(e.element,e.index,vm(e.content))}toString(){let e=this.eventTargetName?`@${this.eventTargetName}`:"";return`${this.eventName}${e}->${this.identifier}#${this.methodName}`}get params(){return this.eventTarget instanceof Element?this.getParamsFromEventTargetAttributes(this.eventTarget):{}}getParamsFromEventTargetAttributes(e){let t={},i=new RegExp(`^data-${this.identifier}-(.+)-param$`);return Array.from(e.attributes).forEach(({name:r,value:o})=>{let l=r.match(i),a=l&&l[1];a&&Object.assign(t,{[Ta(a)]:Am(o)})}),t}get eventTargetName(){return xm(this.eventTarget)}},ka={a:n=>"click",button:n=>"click",form:n=>"submit",details:n=>"toggle",input:n=>n.getAttribute("type")=="submit"?"click":"input",select:n=>"change",textarea:n=>"input"};function Cm(n){let e=n.tagName.toLowerCase();if(e in ka)return ka[e](n)}function vr(n){throw new Error(n)}function Am(n){try{return JSON.parse(n)}catch{return n}}var Pa=class{constructor(e,t){this.context=e,this.action=t}get index(){return this.action.index}get eventTarget(){return this.action.eventTarget}get eventOptions(){return this.action.eventOptions}get identifier(){return this.context.identifier}handleEvent(e){this.willBeInvokedByEvent(e)&&this.invokeWithEvent(e)}get eventName(){return this.action.eventName}get method(){let e=this.controller[this.methodName];if(typeof e=="function")return e;throw new Error(`Action "${this.action}" references undefined method "${this.methodName}"`)}invokeWithEvent(e){let{target:t,currentTarget:i}=e;try{let{params:s}=this.action,r=Object.assign(e,{params:s});this.method.call(this.controller,r),this.context.logDebugActivity(this.methodName,{event:e,target:t,currentTarget:i,action:this.methodName})}catch(s){let{identifier:r,controller:o,element:l,index:a}=this,h={identifier:r,controller:o,element:l,index:a,event:e};this.context.handleError(s,`invoking action "${this.action}"`,h)}}willBeInvokedByEvent(e){let t=e.target;return this.element===t?!0:t instanceof Element&&this.element.contains(t)?this.scope.containsElement(t):this.scope.containsElement(this.action.element)}get controller(){return this.context.controller}get methodName(){return this.action.methodName}get element(){return this.scope.element}get scope(){return this.context.scope}},Oa=class{constructor(e,t){this.mutationObserverInit={attributes:!0,childList:!0,subtree:!0},this.element=e,this.started=!1,this.delegate=t,this.elements=new Set,this.mutationObserver=new MutationObserver(i=>this.processMutations(i))}start(){this.started||(this.started=!0,this.mutationObserver.observe(this.element,this.mutationObserverInit),this.refresh())}pause(e){this.started&&(this.mutationObserver.disconnect(),this.started=!1),e(),this.started||(this.mutationObserver.observe(this.element,this.mutationObserverInit),this.started=!0)}stop(){this.started&&(this.mutationObserver.takeRecords(),this.mutationObserver.disconnect(),this.started=!1)}refresh(){if(this.started){let e=new Set(this.matchElementsInTree());for(let t of Array.from(this.elements))e.has(t)||this.removeElement(t);for(let t of Array.from(e))this.addElement(t)}}processMutations(e){if(this.started)for(let t of e)this.processMutation(t)}processMutation(e){e.type=="attributes"?this.processAttributeChange(e.target,e.attributeName):e.type=="childList"&&(this.processRemovedNodes(e.removedNodes),this.processAddedNodes(e.addedNodes))}processAttributeChange(e,t){let i=e;this.elements.has(i)?this.delegate.elementAttributeChanged&&this.matchElement(i)?this.delegate.elementAttributeChanged(i,t):this.removeElement(i):this.matchElement(i)&&this.addElement(i)}processRemovedNodes(e){for(let t of Array.from(e)){let i=this.elementFromNode(t);i&&this.processTree(i,this.removeElement)}}processAddedNodes(e){for(let t of Array.from(e)){let i=this.elementFromNode(t);i&&this.elementIsActive(i)&&this.processTree(i,this.addElement)}}matchElement(e){return this.delegate.matchElement(e)}matchElementsInTree(e=this.element){return this.delegate.matchElementsInTree(e)}processTree(e,t){for(let i of this.matchElementsInTree(e))t.call(this,i)}elementFromNode(e){if(e.nodeType==Node.ELEMENT_NODE)return e}elementIsActive(e){return e.isConnected!=this.element.isConnected?!1:this.element.contains(e)}addElement(e){this.elements.has(e)||this.elementIsActive(e)&&(this.elements.add(e),this.delegate.elementMatched&&this.delegate.elementMatched(e))}removeElement(e){this.elements.has(e)&&(this.elements.delete(e),this.delegate.elementUnmatched&&this.delegate.elementUnmatched(e))}},Da=class{constructor(e,t,i){this.attributeName=t,this.delegate=i,this.elementObserver=new Oa(e,this)}get element(){return this.elementObserver.element}get selector(){return`[${this.attributeName}]`}start(){this.elementObserver.start()}pause(e){this.elementObserver.pause(e)}stop(){this.elementObserver.stop()}refresh(){this.elementObserver.refresh()}get started(){return this.elementObserver.started}matchElement(e){return e.hasAttribute(this.attributeName)}matchElementsInTree(e){let t=this.matchElement(e)?[e]:[],i=Array.from(e.querySelectorAll(this.selector));return t.concat(i)}elementMatched(e){this.delegate.elementMatchedAttribute&&this.delegate.elementMatchedAttribute(e,this.attributeName)}elementUnmatched(e){this.delegate.elementUnmatchedAttribute&&this.delegate.elementUnmatchedAttribute(e,this.attributeName)}elementAttributeChanged(e,t){this.delegate.elementAttributeValueChanged&&this.attributeName==t&&this.delegate.elementAttributeValueChanged(e,t)}},Ba=class{constructor(e,t){this.element=e,this.delegate=t,this.started=!1,this.stringMap=new Map,this.mutationObserver=new MutationObserver(i=>this.processMutations(i))}start(){this.started||(this.started=!0,this.mutationObserver.observe(this.element,{attributes:!0,attributeOldValue:!0}),this.refresh())}stop(){this.started&&(this.mutationObserver.takeRecords(),this.mutationObserver.disconnect(),this.started=!1)}refresh(){if(this.started)for(let e of this.knownAttributeNames)this.refreshAttribute(e,null)}processMutations(e){if(this.started)for(let t of e)this.processMutation(t)}processMutation(e){let t=e.attributeName;t&&this.refreshAttribute(t,e.oldValue)}refreshAttribute(e,t){let i=this.delegate.getStringMapKeyForAttribute(e);if(i!=null){this.stringMap.has(e)||this.stringMapKeyAdded(i,e);let s=this.element.getAttribute(e);if(this.stringMap.get(e)!=s&&this.stringMapValueChanged(s,i,t),s==null){let r=this.stringMap.get(e);this.stringMap.delete(e),r&&this.stringMapKeyRemoved(i,e,r)}else this.stringMap.set(e,s)}}stringMapKeyAdded(e,t){this.delegate.stringMapKeyAdded&&this.delegate.stringMapKeyAdded(e,t)}stringMapValueChanged(e,t,i){this.delegate.stringMapValueChanged&&this.delegate.stringMapValueChanged(e,t,i)}stringMapKeyRemoved(e,t,i){this.delegate.stringMapKeyRemoved&&this.delegate.stringMapKeyRemoved(e,t,i)}get knownAttributeNames(){return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)))}get currentAttributeNames(){return Array.from(this.element.attributes).map(e=>e.name)}get recordedAttributeNames(){return Array.from(this.stringMap.keys())}};function Em(n,e,t){Ia(n,e).add(t)}function Mm(n,e,t){Ia(n,e).delete(t),Tm(n,e)}function Ia(n,e){let t=n.get(e);return t||(t=new Set,n.set(e,t)),t}function Tm(n,e){let t=n.get(e);t!=null&&t.size==0&&n.delete(e)}var Un=class{constructor(){this.valuesByKey=new Map}get keys(){return Array.from(this.valuesByKey.keys())}get values(){return Array.from(this.valuesByKey.values()).reduce((t,i)=>t.concat(Array.from(i)),[])}get size(){return Array.from(this.valuesByKey.values()).reduce((t,i)=>t+i.size,0)}add(e,t){Em(this.valuesByKey,e,t)}delete(e,t){Mm(this.valuesByKey,e,t)}has(e,t){let i=this.valuesByKey.get(e);return i!=null&&i.has(t)}hasKey(e){return this.valuesByKey.has(e)}hasValue(e){return Array.from(this.valuesByKey.values()).some(i=>i.has(e))}getValuesForKey(e){let t=this.valuesByKey.get(e);return t?Array.from(t):[]}getKeysForValue(e){return Array.from(this.valuesByKey).filter(([t,i])=>i.has(e)).map(([t,i])=>t)}};var Sr=class{constructor(e,t,i){this.attributeObserver=new Da(e,t,this),this.delegate=i,this.tokensByElement=new Un}get started(){return this.attributeObserver.started}start(){this.attributeObserver.start()}pause(e){this.attributeObserver.pause(e)}stop(){this.attributeObserver.stop()}refresh(){this.attributeObserver.refresh()}get element(){return this.attributeObserver.element}get attributeName(){return this.attributeObserver.attributeName}elementMatchedAttribute(e){this.tokensMatched(this.readTokensForElement(e))}elementAttributeValueChanged(e){let[t,i]=this.refreshTokensForElement(e);this.tokensUnmatched(t),this.tokensMatched(i)}elementUnmatchedAttribute(e){this.tokensUnmatched(this.tokensByElement.getValuesForKey(e))}tokensMatched(e){e.forEach(t=>this.tokenMatched(t))}tokensUnmatched(e){e.forEach(t=>this.tokenUnmatched(t))}tokenMatched(e){this.delegate.tokenMatched(e),this.tokensByElement.add(e.element,e)}tokenUnmatched(e){this.delegate.tokenUnmatched(e),this.tokensByElement.delete(e.element,e)}refreshTokensForElement(e){let t=this.tokensByElement.getValuesForKey(e),i=this.readTokensForElement(e),s=Rm(t,i).findIndex(([r,o])=>!Pm(r,o));return s==-1?[[],[]]:[t.slice(s),i.slice(s)]}readTokensForElement(e){let t=this.attributeName,i=e.getAttribute(t)||"";return Lm(i,e,t)}};function Lm(n,e,t){return n.trim().split(/\s+/).filter(i=>i.length).map((i,s)=>({element:e,attributeName:t,content:i,index:s}))}function Rm(n,e){let t=Math.max(n.length,e.length);return Array.from({length:t},(i,s)=>[n[s],e[s]])}function Pm(n,e){return n&&e&&n.index==e.index&&n.content==e.content}var xr=class{constructor(e,t,i){this.tokenListObserver=new Sr(e,t,this),this.delegate=i,this.parseResultsByToken=new WeakMap,this.valuesByTokenByElement=new WeakMap}get started(){return this.tokenListObserver.started}start(){this.tokenListObserver.start()}stop(){this.tokenListObserver.stop()}refresh(){this.tokenListObserver.refresh()}get element(){return this.tokenListObserver.element}get attributeName(){return this.tokenListObserver.attributeName}tokenMatched(e){let{element:t}=e,{value:i}=this.fetchParseResultForToken(e);i&&(this.fetchValuesByTokenForElement(t).set(e,i),this.delegate.elementMatchedValue(t,i))}tokenUnmatched(e){let{element:t}=e,{value:i}=this.fetchParseResultForToken(e);i&&(this.fetchValuesByTokenForElement(t).delete(e),this.delegate.elementUnmatchedValue(t,i))}fetchParseResultForToken(e){let t=this.parseResultsByToken.get(e);return t||(t=this.parseToken(e),this.parseResultsByToken.set(e,t)),t}fetchValuesByTokenForElement(e){let t=this.valuesByTokenByElement.get(e);return t||(t=new Map,this.valuesByTokenByElement.set(e,t)),t}parseToken(e){try{return{value:this.delegate.parseValueForToken(e)}}catch(t){return{error:t}}}},Na=class{constructor(e,t){this.context=e,this.delegate=t,this.bindingsByAction=new Map}start(){this.valueListObserver||(this.valueListObserver=new xr(this.element,this.actionAttribute,this),this.valueListObserver.start())}stop(){this.valueListObserver&&(this.valueListObserver.stop(),delete this.valueListObserver,this.disconnectAllActions())}get element(){return this.context.element}get identifier(){return this.context.identifier}get actionAttribute(){return this.schema.actionAttribute}get schema(){return this.context.schema}get bindings(){return Array.from(this.bindingsByAction.values())}connectAction(e){let t=new Pa(this.context,e);this.bindingsByAction.set(e,t),this.delegate.bindingConnected(t)}disconnectAction(e){let t=this.bindingsByAction.get(e);t&&(this.bindingsByAction.delete(e),this.delegate.bindingDisconnected(t))}disconnectAllActions(){this.bindings.forEach(e=>this.delegate.bindingDisconnected(e)),this.bindingsByAction.clear()}parseValueForToken(e){let t=Ra.forToken(e);if(t.identifier==this.identifier)return t}elementMatchedValue(e,t){this.connectAction(t)}elementUnmatchedValue(e,t){this.disconnectAction(t)}},Fa=class{constructor(e,t){this.context=e,this.receiver=t,this.stringMapObserver=new Ba(this.element,this),this.valueDescriptorMap=this.controller.valueDescriptorMap,this.invokeChangedCallbacksForDefaultValues()}start(){this.stringMapObserver.start()}stop(){this.stringMapObserver.stop()}get element(){return this.context.element}get controller(){return this.context.controller}getStringMapKeyForAttribute(e){if(e in this.valueDescriptorMap)return this.valueDescriptorMap[e].name}stringMapKeyAdded(e,t){let i=this.valueDescriptorMap[t];this.hasValue(e)||this.invokeChangedCallback(e,i.writer(this.receiver[e]),i.writer(i.defaultValue))}stringMapValueChanged(e,t,i){let s=this.valueDescriptorNameMap[t];e!==null&&(i===null&&(i=s.writer(s.defaultValue)),this.invokeChangedCallback(t,e,i))}stringMapKeyRemoved(e,t,i){let s=this.valueDescriptorNameMap[e];this.hasValue(e)?this.invokeChangedCallback(e,s.writer(this.receiver[e]),i):this.invokeChangedCallback(e,s.writer(s.defaultValue),i)}invokeChangedCallbacksForDefaultValues(){for(let{key:e,name:t,defaultValue:i,writer:s}of this.valueDescriptors)i!=null&&!this.controller.data.has(e)&&this.invokeChangedCallback(t,s(i),void 0)}invokeChangedCallback(e,t,i){let s=`${e}Changed`,r=this.receiver[s];if(typeof r=="function"){let o=this.valueDescriptorNameMap[e],l=o.reader(t),a=i;i&&(a=o.reader(i)),r.call(this.receiver,l,a)}}get valueDescriptors(){let{valueDescriptorMap:e}=this;return Object.keys(e).map(t=>e[t])}get valueDescriptorNameMap(){let e={};return Object.keys(this.valueDescriptorMap).forEach(t=>{let i=this.valueDescriptorMap[t];e[i.name]=i}),e}hasValue(e){let t=this.valueDescriptorNameMap[e],i=`has${jn(t.name)}`;return this.receiver[i]}},Va=class{constructor(e,t){this.context=e,this.delegate=t,this.targetsByName=new Un}start(){this.tokenListObserver||(this.tokenListObserver=new Sr(this.element,this.attributeName,this),this.tokenListObserver.start())}stop(){this.tokenListObserver&&(this.disconnectAllTargets(),this.tokenListObserver.stop(),delete this.tokenListObserver)}tokenMatched({element:e,content:t}){this.scope.containsElement(e)&&this.connectTarget(e,t)}tokenUnmatched({element:e,content:t}){this.disconnectTarget(e,t)}connectTarget(e,t){var i;this.targetsByName.has(t,e)||(this.targetsByName.add(t,e),(i=this.tokenListObserver)===null||i===void 0||i.pause(()=>this.delegate.targetConnected(e,t)))}disconnectTarget(e,t){var i;this.targetsByName.has(t,e)&&(this.targetsByName.delete(t,e),(i=this.tokenListObserver)===null||i===void 0||i.pause(()=>this.delegate.targetDisconnected(e,t)))}disconnectAllTargets(){for(let e of this.targetsByName.keys)for(let t of this.targetsByName.getValuesForKey(e))this.disconnectTarget(t,e)}get attributeName(){return`data-${this.context.identifier}-target`}get element(){return this.context.element}get scope(){return this.context.scope}},Ha=class{constructor(e,t){this.logDebugActivity=(i,s={})=>{let{identifier:r,controller:o,element:l}=this;s=Object.assign({identifier:r,controller:o,element:l},s),this.application.logDebugActivity(this.identifier,i,s)},this.module=e,this.scope=t,this.controller=new e.controllerConstructor(this),this.bindingObserver=new Na(this,this.dispatcher),this.valueObserver=new Fa(this,this.controller),this.targetObserver=new Va(this,this);try{this.controller.initialize(),this.logDebugActivity("initialize")}catch(i){this.handleError(i,"initializing controller")}}connect(){this.bindingObserver.start(),this.valueObserver.start(),this.targetObserver.start();try{this.controller.connect(),this.logDebugActivity("connect")}catch(e){this.handleError(e,"connecting controller")}}disconnect(){try{this.controller.disconnect(),this.logDebugActivity("disconnect")}catch(e){this.handleError(e,"disconnecting controller")}this.targetObserver.stop(),this.valueObserver.stop(),this.bindingObserver.stop()}get application(){return this.module.application}get identifier(){return this.module.identifier}get schema(){return this.application.schema}get dispatcher(){return this.application.dispatcher}get element(){return this.scope.element}get parentElement(){return this.element.parentElement}handleError(e,t,i={}){let{identifier:s,controller:r,element:o}=this;i=Object.assign({identifier:s,controller:r,element:o},i),this.application.handleError(e,`Error ${t}`,i)}targetConnected(e,t){this.invokeControllerMethod(`${t}TargetConnected`,e)}targetDisconnected(e,t){this.invokeControllerMethod(`${t}TargetDisconnected`,e)}invokeControllerMethod(e,...t){let i=this.controller;typeof i[e]=="function"&&i[e](...t)}};function kr(n,e){let t=qa(n);return Array.from(t.reduce((i,s)=>(Dm(s,e).forEach(r=>i.add(r)),i),new Set))}function Om(n,e){return qa(n).reduce((i,s)=>(i.push(...Bm(s,e)),i),[])}function qa(n){let e=[];for(;n;)e.push(n),n=Object.getPrototypeOf(n);return e.reverse()}function Dm(n,e){let t=n[e];return Array.isArray(t)?t:[]}function Bm(n,e){let t=n[e];return t?Object.keys(t).map(i=>[i,t[i]]):[]}function Im(n){return Nm(n,Fm(n))}function Nm(n,e){let t=Wm(n),i=Vm(n.prototype,e);return Object.defineProperties(t.prototype,i),t}function Fm(n){return kr(n,"blessings").reduce((t,i)=>{let s=i(n);for(let r in s){let o=t[r]||{};t[r]=Object.assign(o,s[r])}return t},{})}function Vm(n,e){return qm(e).reduce((t,i)=>{let s=Hm(n,e,i);return s&&Object.assign(t,{[i]:s}),t},{})}function Hm(n,e,t){let i=Object.getOwnPropertyDescriptor(n,t);if(!(i&&"value"in i)){let r=Object.getOwnPropertyDescriptor(e,t).value;return i&&(r.get=i.get||r.get,r.set=i.set||r.set),r}}var qm=(()=>typeof Object.getOwnPropertySymbols=="function"?n=>[...Object.getOwnPropertyNames(n),...Object.getOwnPropertySymbols(n)]:Object.getOwnPropertyNames)(),Wm=(()=>{function n(t){function i(){return Reflect.construct(t,arguments,new.target)}return i.prototype=Object.create(t.prototype,{constructor:{value:i}}),Reflect.setPrototypeOf(i,t),i}function e(){let i=n(function(){this.a.call(this)});return i.prototype.a=function(){},new i}try{return e(),n}catch{return i=>class extends i{}}})();function zm(n){return{identifier:n.identifier,controllerConstructor:Im(n.controllerConstructor)}}var Wa=class{constructor(e,t){this.application=e,this.definition=zm(t),this.contextsByScope=new WeakMap,this.connectedContexts=new Set}get identifier(){return this.definition.identifier}get controllerConstructor(){return this.definition.controllerConstructor}get contexts(){return Array.from(this.connectedContexts)}connectContextForScope(e){let t=this.fetchContextForScope(e);this.connectedContexts.add(t),t.connect()}disconnectContextForScope(e){let t=this.contextsByScope.get(e);t&&(this.connectedContexts.delete(t),t.disconnect())}fetchContextForScope(e){let t=this.contextsByScope.get(e);return t||(t=new Ha(this,e),this.contextsByScope.set(e,t)),t}},za=class{constructor(e){this.scope=e}has(e){return this.data.has(this.getDataKey(e))}get(e){return this.getAll(e)[0]}getAll(e){let t=this.data.get(this.getDataKey(e))||"";return km(t)}getAttributeName(e){return this.data.getAttributeNameForKey(this.getDataKey(e))}getDataKey(e){return`${e}-class`}get data(){return this.scope.data}},$a=class{constructor(e){this.scope=e}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get(e){let t=this.getAttributeNameForKey(e);return this.element.getAttribute(t)}set(e,t){let i=this.getAttributeNameForKey(e);return this.element.setAttribute(i,t),this.get(e)}has(e){let t=this.getAttributeNameForKey(e);return this.element.hasAttribute(t)}delete(e){if(this.has(e)){let t=this.getAttributeNameForKey(e);return this.element.removeAttribute(t),!0}else return!1}getAttributeNameForKey(e){return`data-${this.identifier}-${La(e)}`}},ja=class{constructor(e){this.warnedKeysByObject=new WeakMap,this.logger=e}warn(e,t,i){let s=this.warnedKeysByObject.get(e);s||(s=new Set,this.warnedKeysByObject.set(e,s)),s.has(t)||(s.add(t),this.logger.warn(i,e))}};function wr(n,e){return`[${n}~="${e}"]`}var Ua=class{constructor(e){this.scope=e}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get schema(){return this.scope.schema}has(e){return this.find(e)!=null}find(...e){return e.reduce((t,i)=>t||this.findTarget(i)||this.findLegacyTarget(i),void 0)}findAll(...e){return e.reduce((t,i)=>[...t,...this.findAllTargets(i),...this.findAllLegacyTargets(i)],[])}findTarget(e){let t=this.getSelectorForTargetName(e);return this.scope.findElement(t)}findAllTargets(e){let t=this.getSelectorForTargetName(e);return this.scope.findAllElements(t)}getSelectorForTargetName(e){let t=this.schema.targetAttributeForScope(this.identifier);return wr(t,e)}findLegacyTarget(e){let t=this.getLegacySelectorForTargetName(e);return this.deprecate(this.scope.findElement(t),e)}findAllLegacyTargets(e){let t=this.getLegacySelectorForTargetName(e);return this.scope.findAllElements(t).map(i=>this.deprecate(i,e))}getLegacySelectorForTargetName(e){let t=`${this.identifier}.${e}`;return wr(this.schema.targetAttribute,t)}deprecate(e,t){if(e){let{identifier:i}=this,s=this.schema.targetAttribute,r=this.schema.targetAttributeForScope(i);this.guide.warn(e,`target:${t}`,`Please replace ${s}="${i}.${t}" with ${r}="${t}". The ${s} attribute is deprecated and will be removed in a future version of Stimulus.`)}return e}get guide(){return this.scope.guide}},Ka=class{constructor(e,t,i,s){this.targets=new Ua(this),this.classes=new za(this),this.data=new $a(this),this.containsElement=r=>r.closest(this.controllerSelector)===this.element,this.schema=e,this.element=t,this.identifier=i,this.guide=new ja(s)}findElement(e){return this.element.matches(e)?this.element:this.queryElements(e).find(this.containsElement)}findAllElements(e){return[...this.element.matches(e)?[this.element]:[],...this.queryElements(e).filter(this.containsElement)]}queryElements(e){return Array.from(this.element.querySelectorAll(e))}get controllerSelector(){return wr(this.schema.controllerAttribute,this.identifier)}},_a=class{constructor(e,t,i){this.element=e,this.schema=t,this.delegate=i,this.valueListObserver=new xr(this.element,this.controllerAttribute,this),this.scopesByIdentifierByElement=new WeakMap,this.scopeReferenceCounts=new WeakMap}start(){this.valueListObserver.start()}stop(){this.valueListObserver.stop()}get controllerAttribute(){return this.schema.controllerAttribute}parseValueForToken(e){let{element:t,content:i}=e,s=this.fetchScopesByIdentifierForElement(t),r=s.get(i);return r||(r=this.delegate.createScopeForElementAndIdentifier(t,i),s.set(i,r)),r}elementMatchedValue(e,t){let i=(this.scopeReferenceCounts.get(t)||0)+1;this.scopeReferenceCounts.set(t,i),i==1&&this.delegate.scopeConnected(t)}elementUnmatchedValue(e,t){let i=this.scopeReferenceCounts.get(t);i&&(this.scopeReferenceCounts.set(t,i-1),i==1&&this.delegate.scopeDisconnected(t))}fetchScopesByIdentifierForElement(e){let t=this.scopesByIdentifierByElement.get(e);return t||(t=new Map,this.scopesByIdentifierByElement.set(e,t)),t}},Ga=class{constructor(e){this.application=e,this.scopeObserver=new _a(this.element,this.schema,this),this.scopesByIdentifier=new Un,this.modulesByIdentifier=new Map}get element(){return this.application.element}get schema(){return this.application.schema}get logger(){return this.application.logger}get controllerAttribute(){return this.schema.controllerAttribute}get modules(){return Array.from(this.modulesByIdentifier.values())}get contexts(){return this.modules.reduce((e,t)=>e.concat(t.contexts),[])}start(){this.scopeObserver.start()}stop(){this.scopeObserver.stop()}loadDefinition(e){this.unloadIdentifier(e.identifier);let t=new Wa(this.application,e);this.connectModule(t)}unloadIdentifier(e){let t=this.modulesByIdentifier.get(e);t&&this.disconnectModule(t)}getContextForElementAndIdentifier(e,t){let i=this.modulesByIdentifier.get(t);if(i)return i.contexts.find(s=>s.element==e)}handleError(e,t,i){this.application.handleError(e,t,i)}createScopeForElementAndIdentifier(e,t){return new Ka(this.schema,e,t,this.logger)}scopeConnected(e){this.scopesByIdentifier.add(e.identifier,e);let t=this.modulesByIdentifier.get(e.identifier);t&&t.connectContextForScope(e)}scopeDisconnected(e){this.scopesByIdentifier.delete(e.identifier,e);let t=this.modulesByIdentifier.get(e.identifier);t&&t.disconnectContextForScope(e)}connectModule(e){this.modulesByIdentifier.set(e.identifier,e),this.scopesByIdentifier.getValuesForKey(e.identifier).forEach(i=>e.connectContextForScope(i))}disconnectModule(e){this.modulesByIdentifier.delete(e.identifier),this.scopesByIdentifier.getValuesForKey(e.identifier).forEach(i=>e.disconnectContextForScope(i))}},$m={controllerAttribute:"data-controller",actionAttribute:"data-action",targetAttribute:"data-target",targetAttributeForScope:n=>`data-${n}-target`},zi=class{constructor(e=document.documentElement,t=$m){this.logger=console,this.debug=!1,this.logDebugActivity=(i,s,r={})=>{this.debug&&this.logFormattedMessage(i,s,r)},this.element=e,this.schema=t,this.dispatcher=new Ma(this),this.router=new Ga(this)}static start(e,t){let i=new zi(e,t);return i.start(),i}async start(){await jm(),this.logDebugActivity("application","starting"),this.dispatcher.start(),this.router.start(),this.logDebugActivity("application","start")}stop(){this.logDebugActivity("application","stopping"),this.dispatcher.stop(),this.router.stop(),this.logDebugActivity("application","stop")}register(e,t){t.shouldLoad&&this.load({identifier:e,controllerConstructor:t})}load(e,...t){(Array.isArray(e)?e:[e,...t]).forEach(s=>this.router.loadDefinition(s))}unload(e,...t){(Array.isArray(e)?e:[e,...t]).forEach(s=>this.router.unloadIdentifier(s))}get controllers(){return this.router.contexts.map(e=>e.controller)}getControllerForElementAndIdentifier(e,t){let i=this.router.getContextForElementAndIdentifier(e,t);return i?i.controller:null}handleError(e,t,i){var s;this.logger.error(`%s
|
27
27
|
|
28
28
|
%o
|
29
29
|
|
30
|
-
%o`,t,e,i),(s=window.onerror)===null||s===void 0||s.call(window,t,"",0,0,e)}logFormattedMessage(e,t,i={}){i=Object.assign({application:this},i),this.logger.groupCollapsed(`${e} #${t}`),this.logger.log("details:",Object.assign({},i)),this.logger.groupEnd()}};function jm(){return new Promise(n=>{document.readyState=="loading"?document.addEventListener("DOMContentLoaded",()=>n()):n()})}function Um(n){return Cr(n,"classes").reduce((t,i)=>Object.assign(t,Km(i)),{})}function Km(n){return{[`${n}Class`]:{get(){let{classes:e}=this;if(e.has(n))return e.get(n);{let t=e.getAttributeName(n);throw new Error(`Missing attribute "${t}"`)}}},[`${n}Classes`]:{get(){return this.classes.getAll(n)}},[`has${_n(n)}Class`]:{get(){return this.classes.has(n)}}}}function _m(n){return Cr(n,"targets").reduce((t,i)=>Object.assign(t,Gm(i)),{})}function Gm(n){return{[`${n}Target`]:{get(){let e=this.targets.find(n);if(e)return e;throw new Error(`Missing target element "${n}" for "${this.identifier}" controller`)}},[`${n}Targets`]:{get(){return this.targets.findAll(n)}},[`has${_n(n)}Target`]:{get(){return this.targets.has(n)}}}}function Jm(n){let e=Om(n,"values"),t={valueDescriptorMap:{get(){return e.reduce((i,s)=>{let r=Za(s),o=this.data.getAttributeNameForKey(r.key);return Object.assign(i,{[o]:r})},{})}}};return e.reduce((i,s)=>Object.assign(i,Ym(s)),t)}function Ym(n){let e=Za(n),{key:t,name:i,reader:s,writer:r}=e;return{[i]:{get(){let o=this.data.get(t);return o!==null?s(o):e.defaultValue},set(o){o===void 0?this.data.delete(t):this.data.set(t,r(o))}},[`has${_n(i)}`]:{get(){return this.data.has(t)||e.hasCustomDefaultValue}}}}function Za([n,e]){return eg(n,e)}function Ar(n){switch(n){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function Er(n){switch(typeof n){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray(n))return"array";if(Object.prototype.toString.call(n)==="[object Object]")return"object"}function Xm(n){let e=Ar(n.type);if(e){let t=Er(n.default);if(e!==t)throw new Error(`Type "${e}" must match the type of the default value. Given default value: "${n.default}" as "${t}"`);return e}}function Qm(n){let e=Xm(n),t=Er(n),i=Ar(n),s=e||t||i;if(s)return s;throw new Error(`Unknown value type "${n}"`)}function Zm(n){let e=Ar(n);if(e)return tg[e];let t=n.default;return t!==void 0?t:n}function eg(n,e){let t=`${Da(n)}-value`,i=Qm(e);return{type:i,key:t,name:Oa(t),get defaultValue(){return Zm(e)},get hasCustomDefaultValue(){return Er(e)!==void 0},reader:ig[i],writer:Ta[i]||Ta.default}}var tg={get array(){return[]},boolean:!1,number:0,get object(){return{}},string:""},ig={array(n){let e=JSON.parse(n);if(!Array.isArray(e))throw new TypeError("Expected array");return e},boolean(n){return!(n=="0"||n=="false")},number(n){return Number(n)},object(n){let e=JSON.parse(n);if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("Expected object");return e},string(n){return n}},Ta={default:ng,array:La,object:La};function La(n){return JSON.stringify(n)}function ng(n){return`${n}`}var Me=class{constructor(e){this.context=e}static get shouldLoad(){return!0}get application(){return this.context.application}get scope(){return this.context.scope}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get targets(){return this.scope.targets}get classes(){return this.scope.classes}get data(){return this.scope.data}initialize(){}connect(){}disconnect(){}dispatch(e,{target:t=this.element,detail:i={},prefix:s=this.identifier,bubbles:r=!0,cancelable:o=!0}={}){let l=s?`${s}:${e}`:e,a=new CustomEvent(l,{detail:i,bubbles:r,cancelable:o});return t.dispatchEvent(a),a}};Me.blessings=[Um,_m,Jm];Me.targets=[];Me.values={};var Mr=class extends Me{connect(){console.log("Hello World!",this.element)}};var Tr=class extends Me{connect(){this.console=REPLConsole.installInto("console")}runCode(n){this.console.setInput(n.detail.selection),this.console.onEnterKey()}};var ji=class extends Me{debounce(n,e){window.clearTimeout(this.debounceTimer),this.debounceTimer=window.setTimeout(n,e)}getScripts(n){let e=()=>zi(this.urlValue,{query:{name:n.target.value}});this.debounce(e,500)}};Bi(ji,"targets",["input"]),Bi(ji,"values",{url:String});var Lr=class extends Me{getScript(n){zi(n.target.value)}};var di="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(n=>n?parseInt(n,36):1);for(let n=1;n<di.length;n++)di[n]+=di[n-1];function sg(n){for(let e=1;e<di.length;e+=2)if(di[e]>n)return di[e-1]<=n;return!1}function eh(n){return n>=127462&&n<=127487}var th=8205;function de(n,e,t=!0,i=!0){return(t?nh:rg)(n,e,i)}function nh(n,e,t){if(e==n.length)return e;e&&sh(n.charCodeAt(e))&&rh(n.charCodeAt(e-1))&&e--;let i=ne(n,e);for(e+=Se(i);e<n.length;){let s=ne(n,e);if(i==th||s==th||t&&sg(s))e+=Se(s),i=s;else if(eh(s)){let r=0,o=e-2;for(;o>=0&&eh(ne(n,o));)r++,o-=2;if(r%2==0)break;e+=2}else break}return e}function rg(n,e,t){for(;e>0;){let i=nh(n,e-2,t);if(i<e)return i;e--}return 0}function sh(n){return n>=56320&&n<57344}function rh(n){return n>=55296&&n<56320}function ne(n,e){let t=n.charCodeAt(e);if(!rh(t)||e+1==n.length)return t;let i=n.charCodeAt(e+1);return sh(i)?(t-55296<<10)+(i-56320)+65536:t}function mi(n){return n<=65535?String.fromCharCode(n):(n-=65536,String.fromCharCode((n>>10)+55296,(n&1023)+56320))}function Se(n){return n<65536?1:2}function pt(n,e,t=n.length){let i=0;for(let s=0;s<t;)n.charCodeAt(s)==9?(i+=e-i%e,s++):(i++,s=de(n,s));return i}function Ui(n,e,t,i){for(let s=0,r=0;;){if(r>=e)return s;if(s==n.length)break;r+=n.charCodeAt(s)==9?t-r%t:1,s=de(n,s)}return i===!0?-1:n.length}var N=class{constructor(){}lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){let s=[];return this.decompose(0,e,s,2),i.length&&i.decompose(0,i.length,s,3),this.decompose(t,this.length,s,1),qe.from(s,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){let i=[];return this.decompose(e,t,i,0),qe.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),s=new pi(this),r=new pi(e);for(let o=t,l=t;;){if(s.next(o),r.next(o),o=0,s.lineBreak!=r.lineBreak||s.done!=r.done||s.value!=r.value)return!1;if(l+=s.value.length,s.done||l>=i)return!0}}iter(e=1){return new pi(this,e)}iterRange(e,t=this.length){return new Rr(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let s=this.line(e).from;i=this.iterRange(s,Math.max(s,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new Pr(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?N.empty:e.length<=32?new X(e):qe.from(X.split(e,[]))}},X=class extends N{constructor(e,t=og(e)){super();this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,s){for(let r=0;;r++){let o=this.text[r],l=s+o.length;if((t?i:l)>=e)return new oh(s,l,i,o);s=l+1,i++}}decompose(e,t,i,s){let r=e<=0&&t>=this.length?this:new X(ih(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(s&1){let o=i.pop(),l=Jn(r.text,o.text.slice(),0,r.length);if(l.length<=32)i.push(new X(l,o.length+r.length));else{let a=l.length>>1;i.push(new X(l.slice(0,a)),new X(l.slice(a)))}}else i.push(r)}replace(e,t,i){if(!(i instanceof X))return super.replace(e,t,i);let s=Jn(this.text,Jn(i.text,ih(this.text,0,e)),t),r=this.length+i.length-(t-e);return s.length<=32?new X(s,r):qe.from(X.split(s,[]),r)}sliceString(e,t=this.length,i=`
|
30
|
+
%o`,t,e,i),(s=window.onerror)===null||s===void 0||s.call(window,t,"",0,0,e)}logFormattedMessage(e,t,i={}){i=Object.assign({application:this},i),this.logger.groupCollapsed(`${e} #${t}`),this.logger.log("details:",Object.assign({},i)),this.logger.groupEnd()}};function jm(){return new Promise(n=>{document.readyState=="loading"?document.addEventListener("DOMContentLoaded",()=>n()):n()})}function Um(n){return kr(n,"classes").reduce((t,i)=>Object.assign(t,Km(i)),{})}function Km(n){return{[`${n}Class`]:{get(){let{classes:e}=this;if(e.has(n))return e.get(n);{let t=e.getAttributeName(n);throw new Error(`Missing attribute "${t}"`)}}},[`${n}Classes`]:{get(){return this.classes.getAll(n)}},[`has${jn(n)}Class`]:{get(){return this.classes.has(n)}}}}function _m(n){return kr(n,"targets").reduce((t,i)=>Object.assign(t,Gm(i)),{})}function Gm(n){return{[`${n}Target`]:{get(){let e=this.targets.find(n);if(e)return e;throw new Error(`Missing target element "${n}" for "${this.identifier}" controller`)}},[`${n}Targets`]:{get(){return this.targets.findAll(n)}},[`has${jn(n)}Target`]:{get(){return this.targets.has(n)}}}}function Jm(n){let e=Om(n,"values"),t={valueDescriptorMap:{get(){return e.reduce((i,s)=>{let r=Ja(s),o=this.data.getAttributeNameForKey(r.key);return Object.assign(i,{[o]:r})},{})}}};return e.reduce((i,s)=>Object.assign(i,Ym(s)),t)}function Ym(n){let e=Ja(n),{key:t,name:i,reader:s,writer:r}=e;return{[i]:{get(){let o=this.data.get(t);return o!==null?s(o):e.defaultValue},set(o){o===void 0?this.data.delete(t):this.data.set(t,r(o))}},[`has${jn(i)}`]:{get(){return this.data.has(t)||e.hasCustomDefaultValue}}}}function Ja([n,e]){return eg(n,e)}function Cr(n){switch(n){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function Ar(n){switch(typeof n){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray(n))return"array";if(Object.prototype.toString.call(n)==="[object Object]")return"object"}function Xm(n){let e=Cr(n.type);if(e){let t=Ar(n.default);if(e!==t)throw new Error(`Type "${e}" must match the type of the default value. Given default value: "${n.default}" as "${t}"`);return e}}function Qm(n){let e=Xm(n),t=Ar(n),i=Cr(n),s=e||t||i;if(s)return s;throw new Error(`Unknown value type "${n}"`)}function Zm(n){let e=Cr(n);if(e)return tg[e];let t=n.default;return t!==void 0?t:n}function eg(n,e){let t=`${La(n)}-value`,i=Qm(e);return{type:i,key:t,name:Ta(t),get defaultValue(){return Zm(e)},get hasCustomDefaultValue(){return Ar(e)!==void 0},reader:ig[i],writer:Ca[i]||Ca.default}}var tg={get array(){return[]},boolean:!1,number:0,get object(){return{}},string:""},ig={array(n){let e=JSON.parse(n);if(!Array.isArray(e))throw new TypeError("Expected array");return e},boolean(n){return!(n=="0"||n=="false")},number(n){return Number(n)},object(n){let e=JSON.parse(n);if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("Expected object");return e},string(n){return n}},Ca={default:ng,array:Aa,object:Aa};function Aa(n){return JSON.stringify(n)}function ng(n){return`${n}`}var Me=class{constructor(e){this.context=e}static get shouldLoad(){return!0}get application(){return this.context.application}get scope(){return this.context.scope}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get targets(){return this.scope.targets}get classes(){return this.scope.classes}get data(){return this.scope.data}initialize(){}connect(){}disconnect(){}dispatch(e,{target:t=this.element,detail:i={},prefix:s=this.identifier,bubbles:r=!0,cancelable:o=!0}={}){let l=s?`${s}:${e}`:e,a=new CustomEvent(l,{detail:i,bubbles:r,cancelable:o});return t.dispatchEvent(a),a}};Me.blessings=[Um,_m,Jm];Me.targets=[];Me.values={};var Er=class extends Me{connect(){console.log("Hello World!",this.element)}};var Mr=class extends Me{connect(){this.console=REPLConsole.installInto("console")}runCode(n){this.console.setInput(n.detail.selection),this.console.onEnterKey()}};var Kn=class{constructor(e){this.response=e}get statusCode(){return this.response.status}get redirected(){return this.response.redirected}get ok(){return this.response.ok}get unauthenticated(){return this.statusCode===401}get unprocessableEntity(){return this.statusCode===422}get authenticationURL(){return this.response.headers.get("WWW-Authenticate")}get contentType(){return(this.response.headers.get("Content-Type")||"").replace(/;.*$/,"")}get headers(){return this.response.headers}get html(){return this.contentType.match(/^(application|text)\/(html|xhtml\+xml)$/)?this.text:Promise.reject(new Error(`Expected an HTML response but got "${this.contentType}" instead`))}get json(){return this.contentType.match(/^application\/.*json$/)?this.responseJson||(this.responseJson=this.response.json()):Promise.reject(new Error(`Expected a JSON response but got "${this.contentType}" instead`))}get text(){return this.responseText||(this.responseText=this.response.text())}get isTurboStream(){return this.contentType.match(/^text\/vnd\.turbo-stream\.html/)}async renderTurboStream(){if(this.isTurboStream)window.Turbo?await window.Turbo.renderStreamMessage(await this.text):console.warn("You must set `window.Turbo = Turbo` to automatically process Turbo Stream events with request.js");else return Promise.reject(new Error(`Expected a Turbo Stream response but got "${this.contentType}" instead`))}};var _n=class{static register(e){this.interceptor=e}static get(){return this.interceptor}static reset(){this.interceptor=void 0}};function Ya(n){let e=document.cookie?document.cookie.split("; "):[],t=`${encodeURIComponent(n)}=`,i=e.find(s=>s.startsWith(t));if(i){let s=i.split("=").slice(1).join("=");if(s)return decodeURIComponent(s)}}function Xa(n){let e={};for(let t in n){let i=n[t];i!==void 0&&(e[t]=i)}return e}function Tr(n){let e=document.head.querySelector(`meta[name="${n}"]`);return e&&e.content}function Qa(n){return[...n].reduce((e,[t,i])=>e.concat(typeof i=="string"?[[t,i]]:[]),[])}function Za(n,e){for(let[t,i]of e)i instanceof window.File||(n.has(t)?(n.delete(t),n.set(t,i)):n.append(t,i))}var Gn=class{constructor(e,t,i={}){this.method=e,this.options=i,this.originalUrl=t.toString()}async perform(){try{let t=_n.get();t&&await t(this)}catch(t){console.error(t)}let e=new Kn(await window.fetch(this.url,this.fetchOptions));return e.unauthenticated&&e.authenticationURL?Promise.reject(window.location.href=e.authenticationURL):(e.ok&&e.isTurboStream&&await e.renderTurboStream(),e)}addHeader(e,t){let i=this.additionalHeaders;i[e]=t,this.options.headers=i}get fetchOptions(){return{method:this.method.toUpperCase(),headers:this.headers,body:this.formattedBody,signal:this.signal,credentials:"same-origin",redirect:this.redirect}}get headers(){return Xa(Object.assign({"X-Requested-With":"XMLHttpRequest","X-CSRF-Token":this.csrfToken,"Content-Type":this.contentType,Accept:this.accept},this.additionalHeaders))}get csrfToken(){return Ya(Tr("csrf-param"))||Tr("csrf-token")}get contentType(){return this.options.contentType?this.options.contentType:this.body==null||this.body instanceof window.FormData?void 0:this.body instanceof window.File?this.body.type:"application/json"}get accept(){switch(this.responseKind){case"html":return"text/html, application/xhtml+xml";case"turbo-stream":return"text/vnd.turbo-stream.html, text/html, application/xhtml+xml";case"json":return"application/json, application/vnd.api+json";default:return"*/*"}}get body(){return this.options.body}get query(){let e=(this.originalUrl.split("?")[1]||"").split("#")[0],t=new URLSearchParams(e),i=this.options.query;i instanceof window.FormData?i=Qa(i):i instanceof window.URLSearchParams?i=i.entries():i=Object.entries(i||{}),Za(t,i);let s=t.toString();return s.length>0?`?${s}`:""}get url(){return this.originalUrl.split("?")[0].split("#")[0]+this.query}get responseKind(){return this.options.responseKind||"html"}get signal(){return this.options.signal}get redirect(){return this.options.redirect||"follow"}get additionalHeaders(){return this.options.headers||{}}get formattedBody(){let e=Object.prototype.toString.call(this.body)==="[object String]";return this.headers["Content-Type"]==="application/json"&&!e?JSON.stringify(this.body):this.body}};async function $i(n,e){return new Gn("get",n,e).perform()}var ji=class extends Me{debounce(n,e){window.clearTimeout(this.debounceTimer),this.debounceTimer=window.setTimeout(n,e)}getScripts(n){let e=()=>$i(this.urlValue,{query:{name:n.target.value}});this.debounce(e,500)}};Bi(ji,"targets",["input"]),Bi(ji,"values",{url:String});var Lr=class extends Me{getScript(n){$i(n.target.value)}};var di="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(n=>n?parseInt(n,36):1);for(let n=1;n<di.length;n++)di[n]+=di[n-1];function sg(n){for(let e=1;e<di.length;e+=2)if(di[e]>n)return di[e-1]<=n;return!1}function eh(n){return n>=127462&&n<=127487}var th=8205;function de(n,e,t=!0,i=!0){return(t?nh:rg)(n,e,i)}function nh(n,e,t){if(e==n.length)return e;e&&sh(n.charCodeAt(e))&&rh(n.charCodeAt(e-1))&&e--;let i=ne(n,e);for(e+=Se(i);e<n.length;){let s=ne(n,e);if(i==th||s==th||t&&sg(s))e+=Se(s),i=s;else if(eh(s)){let r=0,o=e-2;for(;o>=0&&eh(ne(n,o));)r++,o-=2;if(r%2==0)break;e+=2}else break}return e}function rg(n,e,t){for(;e>0;){let i=nh(n,e-2,t);if(i<e)return i;e--}return 0}function sh(n){return n>=56320&&n<57344}function rh(n){return n>=55296&&n<56320}function ne(n,e){let t=n.charCodeAt(e);if(!rh(t)||e+1==n.length)return t;let i=n.charCodeAt(e+1);return sh(i)?(t-55296<<10)+(i-56320)+65536:t}function mi(n){return n<=65535?String.fromCharCode(n):(n-=65536,String.fromCharCode((n>>10)+55296,(n&1023)+56320))}function Se(n){return n<65536?1:2}function pt(n,e,t=n.length){let i=0;for(let s=0;s<t;)n.charCodeAt(s)==9?(i+=e-i%e,s++):(i++,s=de(n,s));return i}function Ui(n,e,t,i){for(let s=0,r=0;;){if(r>=e)return s;if(s==n.length)break;r+=n.charCodeAt(s)==9?t-r%t:1,s=de(n,s)}return i===!0?-1:n.length}var N=class{constructor(){}lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){let s=[];return this.decompose(0,e,s,2),i.length&&i.decompose(0,i.length,s,3),this.decompose(t,this.length,s,1),qe.from(s,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){let i=[];return this.decompose(e,t,i,0),qe.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),s=new pi(this),r=new pi(e);for(let o=t,l=t;;){if(s.next(o),r.next(o),o=0,s.lineBreak!=r.lineBreak||s.done!=r.done||s.value!=r.value)return!1;if(l+=s.value.length,s.done||l>=i)return!0}}iter(e=1){return new pi(this,e)}iterRange(e,t=this.length){return new Rr(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let s=this.line(e).from;i=this.iterRange(s,Math.max(s,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new Pr(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?N.empty:e.length<=32?new X(e):qe.from(X.split(e,[]))}},X=class extends N{constructor(e,t=og(e)){super();this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,s){for(let r=0;;r++){let o=this.text[r],l=s+o.length;if((t?i:l)>=e)return new oh(s,l,i,o);s=l+1,i++}}decompose(e,t,i,s){let r=e<=0&&t>=this.length?this:new X(ih(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(s&1){let o=i.pop(),l=Jn(r.text,o.text.slice(),0,r.length);if(l.length<=32)i.push(new X(l,o.length+r.length));else{let a=l.length>>1;i.push(new X(l.slice(0,a)),new X(l.slice(a)))}}else i.push(r)}replace(e,t,i){if(!(i instanceof X))return super.replace(e,t,i);let s=Jn(this.text,Jn(i.text,ih(this.text,0,e)),t),r=this.length+i.length-(t-e);return s.length<=32?new X(s,r):qe.from(X.split(s,[]),r)}sliceString(e,t=this.length,i=`
|
31
31
|
`){let s="";for(let r=0,o=0;r<=t&&o<this.text.length;o++){let l=this.text[o],a=r+l.length;r>e&&o&&(s+=i),e<a&&t>r&&(s+=l.slice(Math.max(0,e-r),t-r)),r=a+1}return s}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let i=[],s=-1;for(let r of e)i.push(r),s+=r.length+1,i.length==32&&(t.push(new X(i,s)),i=[],s=-1);return s>-1&&t.push(new X(i,s)),t}},qe=class extends N{constructor(e,t){super();this.children=e,this.length=t,this.lines=0;for(let i of e)this.lines+=i.lines}lineInner(e,t,i,s){for(let r=0;;r++){let o=this.children[r],l=s+o.length,a=i+o.lines-1;if((t?a:l)>=e)return o.lineInner(e,t,i,s);s=l+1,i=a+1}}decompose(e,t,i,s){for(let r=0,o=0;o<=t&&r<this.children.length;r++){let l=this.children[r],a=o+l.length;if(e<=a&&t>=o){let h=s&((o<=e?1:0)|(a>=t?2:0));o>=e&&a<=t&&!h?i.push(l):l.decompose(e-o,t-o,i,h)}o=a+1}}replace(e,t,i){if(i.lines<this.lines)for(let s=0,r=0;s<this.children.length;s++){let o=this.children[s],l=r+o.length;if(e>=r&&t<=l){let a=o.replace(e-r,t-r,i),h=this.lines-o.lines+a.lines;if(a.lines<h>>5-1&&a.lines>h>>5+1){let c=this.children.slice();return c[s]=a,new qe(c,this.length-(t-e)+i.length)}return super.replace(r,l,a)}r=l+1}return super.replace(e,t,i)}sliceString(e,t=this.length,i=`
|
32
32
|
`){let s="";for(let r=0,o=0;r<this.children.length&&o<=t;r++){let l=this.children[r],a=o+l.length;o>e&&r&&(s+=i),e<a&&t>o&&(s+=l.sliceString(e-o,t-o,i)),o=a+1}return s}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof qe))return 0;let i=0,[s,r,o,l]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;s+=t,r+=t){if(s==o||r==l)return i;let a=this.children[s],h=e.children[r];if(a!=h)return i+a.scanIdentical(h,t);i+=a.length+1}}static from(e,t=e.reduce((i,s)=>i+s.length+1,-1)){let i=0;for(let d of e)i+=d.lines;if(i<32){let d=[];for(let p of e)p.flatten(d);return new X(d,t)}let s=Math.max(32,i>>5),r=s<<1,o=s>>1,l=[],a=0,h=-1,c=[];function u(d){let p;if(d.lines>r&&d instanceof qe)for(let g of d.children)u(g);else d.lines>o&&(a>o||!a)?(f(),l.push(d)):d instanceof X&&a&&(p=c[c.length-1])instanceof X&&d.lines+p.lines<=32?(a+=d.lines,h+=d.length+1,c[c.length-1]=new X(p.text.concat(d.text),p.length+1+d.length)):(a+d.lines>s&&f(),a+=d.lines,h+=d.length+1,c.push(d))}function f(){a!=0&&(l.push(c.length==1?c[0]:qe.from(c,h)),h=-1,a=c.length=0)}for(let d of e)u(d);return f(),l.length==1?l[0]:new qe(l,t)}};N.empty=new X([""],0);function og(n){let e=-1;for(let t of n)e+=t.length+1;return e}function Jn(n,e,t=0,i=1e9){for(let s=0,r=0,o=!0;r<n.length&&s<=i;r++){let l=n[r],a=s+l.length;a>=t&&(a>i&&(l=l.slice(0,i-s)),s<t&&(l=l.slice(t-s)),o?(e[e.length-1]+=l,o=!1):e.push(l)),s=a+1}return e}function ih(n,e,t){return Jn(n,[""],e,t)}var pi=class{constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[t>0?1:(e instanceof X?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,s=this.nodes[i],r=this.offsets[i],o=r>>1,l=s instanceof X?s.text.length:s.children.length;if(o==(t>0?l:0)){if(i==0)return this.done=!0,this.value="",this;t>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((r&1)==(t>0?0:1)){if(this.offsets[i]+=t,e==0)return this.lineBreak=!0,this.value=`
|
33
33
|
`,this;e--}else if(s instanceof X){let a=s.text[o+(t<0?-1:0)];if(this.offsets[i]+=t,a.length>Math.max(0,e))return this.value=e==0?a:t>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=s.children[o+(t<0?-1:0)];e>a.length?(e-=a.length,this.offsets[i]+=t):(t<0&&this.offsets[i]--,this.nodes.push(a),this.offsets.push(t>0?1:(a instanceof X?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},Rr=class{constructor(e,t,i){this.value="",this.done=!1,this.cursor=new pi(e,t>i?-1:1),this.pos=t>i?e.length:0,this.from=Math.min(t,i),this.to=Math.max(t,i)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let i=t<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:s}=this.cursor.next(e);return this.pos+=(s.length+e)*t,this.value=s.length<=i?s:t<0?s.slice(s.length-i):s.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},Pr=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:i,value:s}=this.inner.next(e);return t?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=s,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol<"u"&&(N.prototype[Symbol.iterator]=function(){return this.iter()},pi.prototype[Symbol.iterator]=Rr.prototype[Symbol.iterator]=Pr.prototype[Symbol.iterator]=function(){return this});var oh=class{constructor(e,t,i,s){this.from=e,this.to=t,this.number=i,this.text=s}get length(){return this.to-this.from}};var Or=/\r\n?|\n/,Z=function(n){return n[n.Simple=0]="Simple",n[n.TrackDel=1]="TrackDel",n[n.TrackBefore=2]="TrackBefore",n[n.TrackAfter=3]="TrackAfter",n}(Z||(Z={})),We=class{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let i=this.sections[t+1];e+=i<0?this.sections[t]:i}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,i=0,s=0;t<this.sections.length;){let r=this.sections[t++],o=this.sections[t++];o<0?(e(i,s,r),s+=r):s+=o,i+=r}}iterChangedRanges(e,t=!1){Dr(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let i=this.sections[t++],s=this.sections[t++];s<0?e.push(i,s):e.push(s,i)}return new We(e)}composeDesc(e){return this.empty?e:e.empty?this:hh(this,e)}mapDesc(e,t=!1){return e.empty?this:Br(this,e,t)}mapPos(e,t=-1,i=Z.Simple){let s=0,r=0;for(let o=0;o<this.sections.length;){let l=this.sections[o++],a=this.sections[o++],h=s+l;if(a<0){if(h>e)return r+(e-s);r+=l}else{if(i!=Z.Simple&&h>=e&&(i==Z.TrackDel&&s<e&&h>e||i==Z.TrackBefore&&s<e||i==Z.TrackAfter&&h>e))return null;if(h>e||h==e&&t<0&&!l)return e==s||t<0?r:r+a;r+=a}s=h}if(e>s)throw new RangeError(`Position ${e} is out of range for changeset of length ${s}`);return r}touchesRange(e,t=e){for(let i=0,s=0;i<this.sections.length&&s<=t;){let r=this.sections[i++],o=this.sections[i++],l=s+r;if(o>=0&&s<=t&&l>=e)return s<e&&l>t?"cover":!0;s=l}return!1}toString(){let e="";for(let t=0;t<this.sections.length;){let i=this.sections[t++],s=this.sections[t++];e+=(e?" ":"")+i+(s>=0?":"+s:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new We(e)}},Q=class extends We{constructor(e,t){super(e);this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return Dr(this,(t,i,s,r,o)=>e=e.replace(s,s+(i-t),o),!1),e}mapDesc(e,t=!1){return Br(this,e,t,!0)}invert(e){let t=this.sections.slice(),i=[];for(let s=0,r=0;s<t.length;s+=2){let o=t[s],l=t[s+1];if(l>=0){t[s]=l,t[s+1]=o;let a=s>>1;for(;i.length<a;)i.push(N.empty);i.push(o?e.slice(r,r+o):N.empty)}r+=o}return new Q(t,i)}compose(e){return this.empty?e:e.empty?this:hh(this,e,!0)}map(e,t=!1){return e.empty?this:Br(this,e,t,!0)}iterChanges(e,t=!1){Dr(this,e,t)}get desc(){return new We(this.sections)}filter(e){let t=[],i=[],s=[],r=new bi(this);e:for(let o=0,l=0;;){let a=o==e.length?1e9:e[o++];for(;l<a||l==a&&r.len==0;){if(r.done)break e;let c=Math.min(r.len,a-l);xe(s,c,-1);let u=r.ins==-1?-1:r.off==0?r.ins:0;xe(t,c,u),u>0&&zt(i,t,r.text),r.forward(c),l+=c}let h=e[o++];for(;l<h;){if(r.done)break e;let c=Math.min(r.len,h-l);xe(t,c,-1),xe(s,c,r.ins==-1?-1:r.off==0?r.ins:0),r.forward(c),l+=c}}return{changes:new Q(t,i),filtered:new We(s)}}toJSON(){let e=[];for(let t=0;t<this.sections.length;t+=2){let i=this.sections[t],s=this.sections[t+1];s<0?e.push(i):s==0?e.push([i]):e.push([i].concat(this.inserted[t>>1].toJSON()))}return e}static of(e,t,i){let s=[],r=[],o=0,l=null;function a(c=!1){if(!c&&!s.length)return;o<t&&xe(s,t-o,-1);let u=new Q(s,r);l=l?l.compose(u.map(l)):u,s=[],r=[],o=0}function h(c){if(Array.isArray(c))for(let u of c)h(u);else if(c instanceof Q){if(c.length!=t)throw new RangeError(`Mismatched change set length (got ${c.length}, expected ${t})`);a(),l=l?l.compose(c.map(l)):c}else{let{from:u,to:f=u,insert:d}=c;if(u>f||u<0||f>t)throw new RangeError(`Invalid change range ${u} to ${f} (in doc of length ${t})`);let p=d?typeof d=="string"?N.of(d.split(i||Or)):d:N.empty,g=p.length;if(u==f&&g==0)return;u<o&&a(),u>o&&xe(s,u-o,-1),xe(s,f-u,g),zt(r,s,p),o=f}}return h(e),a(!l),l}static empty(e){return new Q(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],i=[];for(let s=0;s<e.length;s++){let r=e[s];if(typeof r=="number")t.push(r,-1);else{if(!Array.isArray(r)||typeof r[0]!="number"||r.some((o,l)=>l&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(r.length==1)t.push(r[0],0);else{for(;i.length<s;)i.push(N.empty);i[s]=N.of(r.slice(1)),t.push(r[0],i[s].length)}}}return new Q(t,i)}};function xe(n,e,t,i=!1){if(e==0&&t<=0)return;let s=n.length-2;s>=0&&t<=0&&t==n[s+1]?n[s]+=e:e==0&&n[s]==0?n[s+1]+=t:i?(n[s]+=e,n[s+1]+=t):n.push(e,t)}function zt(n,e,t){if(t.length==0)return;let i=e.length-2>>1;if(i<n.length)n[n.length-1]=n[n.length-1].append(t);else{for(;n.length<i;)n.push(N.empty);n.push(t)}}function Dr(n,e,t){let i=n.inserted;for(let s=0,r=0,o=0;o<n.sections.length;){let l=n.sections[o++],a=n.sections[o++];if(a<0)s+=l,r+=l;else{let h=s,c=r,u=N.empty;for(;h+=l,c+=a,a&&i&&(u=u.append(i[o-2>>1])),!(t||o==n.sections.length||n.sections[o+1]<0);)l=n.sections[o++],a=n.sections[o++];e(s,h,r,c,u),s=h,r=c}}}function Br(n,e,t,i=!1){let s=[],r=i?[]:null,o=new bi(n),l=new bi(e);for(let a=0,h=0;;)if(o.ins==-1)a+=o.len,o.next();else if(l.ins==-1&&h<a){let c=Math.min(l.len,a-h);l.forward(c),xe(s,c,-1),h+=c}else if(l.ins>=0&&(o.done||h<a||h==a&&(l.len<o.len||l.len==o.len&&!t))){for(xe(s,l.ins,-1);a>h&&!o.done&&a+o.len<h+l.len;)a+=o.len,o.next();h+=l.len,l.next()}else if(o.ins>=0){let c=0,u=a+o.len;for(;;)if(l.ins>=0&&h>a&&h+l.len<u)c+=l.ins,h+=l.len,l.next();else if(l.ins==-1&&h<u){let f=Math.min(l.len,u-h);c+=f,l.forward(f),h+=f}else break;xe(s,c,o.ins),r&&zt(r,s,o.text),a=u,o.next()}else{if(o.done&&l.done)return r?new Q(s,r):new We(s);throw new Error("Mismatched change set lengths")}}function hh(n,e,t=!1){let i=[],s=t?[]:null,r=new bi(n),o=new bi(e);for(let l=!1;;){if(r.done&&o.done)return s?new Q(i,s):new We(i);if(r.ins==0)xe(i,r.len,0,l),r.next();else if(o.len==0&&!o.done)xe(i,0,o.ins,l),s&&zt(s,i,o.text),o.next();else{if(r.done||o.done)throw new Error("Mismatched change set lengths");{let a=Math.min(r.len2,o.len),h=i.length;if(r.ins==-1){let c=o.ins==-1?-1:o.off?0:o.ins;xe(i,a,c,l),s&&c&&zt(s,i,o.text)}else o.ins==-1?(xe(i,r.off?0:r.len,a,l),s&&zt(s,i,r.textBit(a))):(xe(i,r.off?0:r.len,o.off?0:o.ins,l),s&&!o.off&&zt(s,i,o.text));l=(r.ins>a||o.ins>=0&&o.len>a)&&(l||i.length>h),r.forward2(a),o.forward(a)}}}}var bi=class{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i<e.length?(this.len=e[this.i++],this.ins=e[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:e}=this.set,t=this.i-2>>1;return t>=e.length?N.empty:e[t]}textBit(e){let{inserted:t}=this.set,i=this.i-2>>1;return i>=t.length&&!e?N.empty:t[i].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}},$t=class{constructor(e,t,i){this.from=e,this.to=t,this.flags=i}get anchor(){return this.flags&16?this.to:this.from}get head(){return this.flags&16?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&4?-1:this.flags&8?1:0}get bidiLevel(){let e=this.flags&3;return e==3?null:e}get goalColumn(){let e=this.flags>>5;return e==33554431?void 0:e}map(e,t=-1){let i,s;return this.empty?i=s=e.mapPos(this.from,t):(i=e.mapPos(this.from,1),s=e.mapPos(this.to,-1)),i==this.from&&s==this.to?this:new $t(i,s,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return m.range(e,t);let i=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return m.range(this.anchor,i)}eq(e){return this.anchor==e.anchor&&this.head==e.head}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return m.range(e.anchor,e.head)}},m=class{constructor(e,t=0){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:m.create(this.ranges.map(i=>i.map(e,t)),this.mainIndex)}eq(e){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let t=0;t<this.ranges.length;t++)if(!this.ranges[t].eq(e.ranges[t]))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new m([this.main])}addRange(e,t=!0){return m.create([e].concat(this.ranges),t?0:this.mainIndex+1)}replaceRange(e,t=this.mainIndex){let i=this.ranges.slice();return i[t]=e,m.create(i,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(e=>e.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new m(e.ranges.map(t=>$t.fromJSON(t)),e.main)}static single(e,t=e){return new m([m.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,s=0;s<e.length;s++){let r=e[s];if(r.empty?r.from<=i:r.from<i)return lg(e.slice(),t);i=r.to}return new m(e,t)}static cursor(e,t=0,i,s){return new $t(e,e,(t==0?0:t<0?4:8)|(i==null?3:Math.min(2,i))|(s??33554431)<<5)}static range(e,t,i){let s=(i??33554431)<<5;return t<e?new $t(t,e,16|s|8):new $t(e,t,s|(t>e?4:0))}};function lg(n,e=0){let t=n[e];n.sort((i,s)=>i.from-s.from),e=n.indexOf(t);for(let i=1;i<n.length;i++){let s=n[i],r=n[i-1];if(s.empty?s.from<=r.to:s.from<r.to){let o=r.from,l=Math.max(s.to,r.to);i<=e&&e--,n.splice(--i,2,s.anchor>s.head?m.range(l,o):m.range(o,l))}}return new m(n,e)}function ch(n,e){for(let t of n.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}var Fr=0,S=class{constructor(e,t,i,s,r){this.combine=e,this.compareInput=t,this.compare=i,this.isStatic=s,this.extensions=r,this.id=Fr++,this.default=e([])}static define(e={}){return new S(e.combine||(t=>t),e.compareInput||((t,i)=>t===i),e.compare||(e.combine?(t,i)=>t===i:Vr),!!e.static,e.enables)}of(e){return new Ki([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Ki(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Ki(e,this,2,t)}from(e,t){return t||(t=i=>i),this.compute([e],i=>t(i.field(e)))}};function Vr(n,e){return n==e||n.length==e.length&&n.every((t,i)=>t===e[i])}var Ki=class{constructor(e,t,i,s){this.dependencies=e,this.facet=t,this.type=i,this.value=s,this.id=Fr++}dynamicSlot(e){var t;let i=this.value,s=this.facet.compareInput,r=this.id,o=e[r]>>1,l=this.type==2,a=!1,h=!1,c=[];for(let u of this.dependencies)u=="doc"?a=!0:u=="selection"?h=!0:(((t=e[u.id])!==null&&t!==void 0?t:1)&1)==0&&c.push(e[u.id]);return{create(u){return u.values[o]=i(u),1},update(u,f){if(a&&f.docChanged||h&&(f.docChanged||f.selection)||c.some(d=>(jt(u,d)&1)>0)){let d=i(u);if(l?!lh(d,u.values[o],s):!s(d,u.values[o]))return u.values[o]=d,1}return 0},reconfigure(u,f){let d=i(u),p=f.config.address[r];if(p!=null){let g=Xn(f,p);if(l?lh(d,g,s):s(d,g))return u.values[o]=g,0}return u.values[o]=d,1}}}};function lh(n,e,t){if(n.length!=e.length)return!1;for(let i=0;i<n.length;i++)if(!t(n[i],e[i]))return!1;return!0}function ag(n,e,t){let i=t.map(a=>n[a.id]),s=t.map(a=>a.type),r=i.filter(a=>!(a&1)),o=n[e.id]>>1;function l(a){let h=[];for(let c=0;c<i.length;c++){let u=Xn(a,i[c]);if(s[c]==2)for(let f of u)h.push(f);else h.push(u)}return e.combine(h)}return{create(a){for(let h of i)jt(a,h);return a.values[o]=l(a),1},update(a,h){if(!r.some(u=>jt(a,u)&1))return 0;let c=l(a);return e.compare(c,a.values[o])?0:(a.values[o]=c,1)},reconfigure(a,h){let c=i.some(p=>jt(a,p)&1),u=h.config.facets[e.id],f=h.facet(e);if(u&&!c&&Vr(t,u))return a.values[o]=f,0;let d=l(a);return e.compare(d,f)?(a.values[o]=f,0):(a.values[o]=d,1)}}}var ah=S.define({static:!0}),z=class{constructor(e,t,i,s,r){this.id=e,this.createF=t,this.updateF=i,this.compareF=s,this.spec=r,this.provides=void 0}static define(e){let t=new z(Fr++,e.create,e.update,e.compare||((i,s)=>i===s),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(ah).find(i=>i.field==this);return(t?.create||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:i=>(i.values[t]=this.create(i),1),update:(i,s)=>{let r=i.values[t],o=this.updateF(r,s);return this.compareF(r,o)?0:(i.values[t]=o,1)},reconfigure:(i,s)=>s.config.address[this.id]!=null?(i.values[t]=s.field(this),0):(i.values[t]=this.create(i),1)}}init(e){return[this,ah.of({field:this,create:e})]}get extension(){return this}},mt={lowest:4,low:3,default:2,high:1,highest:0};function Lt(n){return e=>new Hr(e,n)}var ze={lowest:Lt(mt.lowest),low:Lt(mt.low),default:Lt(mt.default),high:Lt(mt.high),highest:Lt(mt.highest),fallback:Lt(mt.lowest),extend:Lt(mt.high),override:Lt(mt.highest)},Hr=class{constructor(e,t){this.inner=e,this.prec=t}},Gi=class{of(e){return new Yn(this,e)}reconfigure(e){return Gi.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}},Yn=class{constructor(e,t){this.compartment=e,this.inner=t}},_i=class{constructor(e,t,i,s,r,o){for(this.base=e,this.compartments=t,this.dynamicSlots=i,this.address=s,this.staticValues=r,this.facets=o,this.statusTemplate=[];this.statusTemplate.length<i.length;)this.statusTemplate.push(0)}staticFacet(e){let t=this.address[e.id];return t==null?e.default:this.staticValues[t>>1]}static resolve(e,t,i){let s=[],r=Object.create(null),o=new Map;for(let f of hg(e,t,o))f instanceof z?s.push(f):(r[f.facet.id]||(r[f.facet.id]=[])).push(f);let l=Object.create(null),a=[],h=[];for(let f of s)l[f.id]=h.length<<1,h.push(d=>f.slot(d));let c=i?.config.facets;for(let f in r){let d=r[f],p=d[0].facet,g=c&&c[f]||[];if(d.every(y=>y.type==0))if(l[p.id]=a.length<<1|1,Vr(g,d))a.push(i.facet(p));else{let y=p.combine(d.map(b=>b.value));a.push(i&&p.compare(y,i.facet(p))?i.facet(p):y)}else{for(let y of d)y.type==0?(l[y.id]=a.length<<1|1,a.push(y.value)):(l[y.id]=h.length<<1,h.push(b=>y.dynamicSlot(b)));l[p.id]=h.length<<1,h.push(y=>ag(y,p,d))}}let u=h.map(f=>f(l));return new _i(e,o,u,l,a,r)}};function hg(n,e,t){let i=[[],[],[],[],[]],s=new Map;function r(o,l){let a=s.get(o);if(a!=null){if(a>=l)return;let h=i[a].indexOf(o);h>-1&&i[a].splice(h,1),o instanceof Yn&&t.delete(o.compartment)}if(s.set(o,l),Array.isArray(o))for(let h of o)r(h,l);else if(o instanceof Yn){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let h=e.get(o.compartment)||o.inner;t.set(o.compartment,h),r(h,l)}else if(o instanceof Hr)r(o.inner,o.prec);else if(o instanceof z)i[l].push(o),o.provides&&r(o.provides,l);else if(o instanceof Ki)i[l].push(o),o.facet.extensions&&r(o.facet.extensions,l);else{let h=o.extension;if(!h)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);r(h,l)}}return r(n,mt.default),i.reduce((o,l)=>o.concat(l))}function jt(n,e){if(e&1)return 2;let t=e>>1,i=n.status[t];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;n.status[t]=4;let s=n.computeSlot(n,n.config.dynamicSlots[t]);return n.status[t]=2|s}function Xn(n,e){return e&1?n.config.staticValues[e>>1]:n.values[e>>1]}var uh=S.define(),fh=S.define({combine:n=>n.some(e=>e),static:!0}),dh=S.define({combine:n=>n.length?n[0]:void 0,static:!0}),ph=S.define(),mh=S.define(),gh=S.define(),bh=S.define({combine:n=>n.length?n[0]:!1}),$e=class{constructor(e,t){this.type=e,this.value=t}static define(){return new yh}},yh=class{of(e){return new $e(this,e)}},vh=class{constructor(e){this.map=e}of(e){return new L(this,e)}},L=class{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new L(this.type,t)}is(e){return this.type==e}static define(e={}){return new vh(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let i=[];for(let s of e){let r=s.map(t);r&&i.push(r)}return i}};L.reconfigure=L.define();L.appendConfig=L.define();var ee=class{constructor(e,t,i,s,r,o){this.startState=e,this.changes=t,this.selection=i,this.effects=s,this.annotations=r,this.scrollIntoView=o,this._doc=null,this._state=null,i&&ch(i,t.newLength),r.some(l=>l.type==ee.time)||(this.annotations=r.concat(ee.time.of(Date.now())))}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(ee.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}};ee.time=$e.define();ee.userEvent=$e.define();ee.addToHistory=$e.define();ee.remote=$e.define();function cg(n,e){let t=[];for(let i=0,s=0;;){let r,o;if(i<n.length&&(s==e.length||e[s]>=n[i]))r=n[i++],o=n[i++];else if(s<e.length)r=e[s++],o=e[s++];else return t;!t.length||t[t.length-1]<r?t.push(r,o):t[t.length-1]<o&&(t[t.length-1]=o)}}function wh(n,e,t){var i;let s,r,o;return t?(s=e.changes,r=Q.empty(e.changes.length),o=n.changes.compose(e.changes)):(s=e.changes.map(n.changes),r=n.changes.mapDesc(e.changes,!0),o=n.changes.compose(s)),{changes:o,selection:e.selection?e.selection.map(r):(i=n.selection)===null||i===void 0?void 0:i.map(s),effects:L.mapEffects(n.effects,s).concat(L.mapEffects(e.effects,r)),annotations:n.annotations.length?n.annotations.concat(e.annotations):e.annotations,scrollIntoView:n.scrollIntoView||e.scrollIntoView}}function Ir(n,e,t){let i=e.selection,s=gi(e.annotations);return e.userEvent&&(s=s.concat(ee.userEvent.of(e.userEvent))),{changes:e.changes instanceof Q?e.changes:Q.of(e.changes||[],t,n.facet(dh)),selection:i&&(i instanceof m?i:m.single(i.anchor,i.head)),effects:gi(e.effects),annotations:s,scrollIntoView:!!e.scrollIntoView}}function Sh(n,e,t){let i=Ir(n,e.length?e[0]:{},n.doc.length);e.length&&e[0].filter===!1&&(t=!1);for(let r=1;r<e.length;r++){e[r].filter===!1&&(t=!1);let o=!!e[r].sequential;i=wh(i,Ir(n,e[r],o?i.changes.newLength:n.doc.length),o)}let s=new ee(n,i.changes,i.selection,i.effects,i.annotations,i.scrollIntoView);return fg(t?ug(s):s)}function ug(n){let e=n.startState,t=!0;for(let s of e.facet(ph)){let r=s(n);if(r===!1){t=!1;break}Array.isArray(r)&&(t=t===!0?r:cg(t,r))}if(t!==!0){let s,r;if(t===!1)r=n.changes.invertedDesc,s=Q.empty(e.doc.length);else{let o=n.changes.filter(t);s=o.changes,r=o.filtered.invertedDesc}n=new ee(e,s,n.selection&&n.selection.map(r),L.mapEffects(n.effects,r),n.annotations,n.scrollIntoView)}let i=e.facet(mh);for(let s=i.length-1;s>=0;s--){let r=i[s](n);r instanceof ee?n=r:Array.isArray(r)&&r.length==1&&r[0]instanceof ee?n=r[0]:n=Sh(e,gi(r),!1)}return n}function fg(n){let e=n.startState,t=e.facet(gh),i=n;for(let s=t.length-1;s>=0;s--){let r=t[s](n);r&&Object.keys(r).length&&(i=wh(n,Ir(e,r,n.changes.newLength),!0))}return i==n?n:new ee(e,n.changes,n.selection,i.effects,i.annotations,i.scrollIntoView)}var dg=[];function gi(n){return n==null?dg:Array.isArray(n)?n:[n]}var oe=function(n){return n[n.Word=0]="Word",n[n.Space=1]="Space",n[n.Other=2]="Other",n}(oe||(oe={})),pg=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,Nr;try{Nr=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function mg(n){if(Nr)return Nr.test(n);for(let e=0;e<n.length;e++){let t=n[e];if(/\w/.test(t)||t>"\x80"&&(t.toUpperCase()!=t.toLowerCase()||pg.test(t)))return!0}return!1}function gg(n){return e=>{if(!/\S/.test(e))return oe.Space;if(mg(e))return oe.Word;for(let t=0;t<n.length;t++)if(e.indexOf(n[t])>-1)return oe.Word;return oe.Other}}var B=class{constructor(e,t,i,s,r,o){this.config=e,this.doc=t,this.selection=i,this.values=s,this.status=e.statusTemplate.slice(),this.computeSlot=r,o&&(o._state=this);for(let l=0;l<this.config.dynamicSlots.length;l++)jt(this,l<<1);this.computeSlot=null}field(e,t=!0){let i=this.config.address[e.id];if(i==null){if(t)throw new RangeError("Field is not present in this state");return}return jt(this,i),Xn(this,i)}update(...e){return Sh(this,e,!0)}applyTransaction(e){let t=this.config,{base:i,compartments:s}=t;for(let o of e.effects)o.is(Gi.reconfigure)?(t&&(s=new Map,t.compartments.forEach((l,a)=>s.set(a,l)),t=null),s.set(o.value.compartment,o.value.extension)):o.is(L.reconfigure)?(t=null,i=o.value):o.is(L.appendConfig)&&(t=null,i=gi(i).concat(o.value));let r;t?r=e.startState.values.slice():(t=_i.resolve(i,s,this),r=new B(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(l,a)=>a.reconfigure(l,this),null).values),new B(t,e.newDoc,e.newSelection,r,(o,l)=>l.update(o,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:m.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,i=e(t.ranges[0]),s=this.changes(i.changes),r=[i.range],o=gi(i.effects);for(let l=1;l<t.ranges.length;l++){let a=e(t.ranges[l]),h=this.changes(a.changes),c=h.map(s);for(let f=0;f<l;f++)r[f]=r[f].map(c);let u=s.mapDesc(h,!0);r.push(a.range.map(u)),s=s.compose(c),o=L.mapEffects(o,c).concat(L.mapEffects(gi(a.effects),u))}return{changes:s,selection:m.create(r,t.mainIndex),effects:o}}changes(e=[]){return e instanceof Q?e:Q.of(e,this.doc.length,this.facet(B.lineSeparator))}toText(e){return N.of(e.split(this.facet(B.lineSeparator)||Or))}sliceDoc(e=0,t=this.doc.length){return this.doc.sliceString(e,t,this.lineBreak)}facet(e){let t=this.config.address[e.id];return t==null?e.default:(jt(this,t),Xn(this,t))}toJSON(e){let t={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(let i in e){let s=e[i];s instanceof z&&(t[i]=s.spec.toJSON(this.field(e[i]),this))}return t}static fromJSON(e,t={},i){if(!e||typeof e.doc!="string")throw new RangeError("Invalid JSON representation for EditorState");let s=[];if(i)for(let r in i){let o=i[r],l=e[r];s.push(o.init(a=>o.spec.fromJSON(l,a)))}return B.create({doc:e.doc,selection:m.fromJSON(e.selection),extensions:t.extensions?s.concat([t.extensions]):s})}static create(e={}){let t=_i.resolve(e.extensions||[],new Map),i=e.doc instanceof N?e.doc:N.of((e.doc||"").split(t.staticFacet(B.lineSeparator)||Or)),s=e.selection?e.selection instanceof m?e.selection:m.single(e.selection.anchor,e.selection.head):m.single(0);return ch(s,i.length),t.staticFacet(fh)||(s=s.asSingle()),new B(t,i,s,t.dynamicSlots.map(()=>null),(r,o)=>o.create(r),null)}get tabSize(){return this.facet(B.tabSize)}get lineBreak(){return this.facet(B.lineSeparator)||`
|
@@ -38,4 +38,4 @@
|
|
38
38
|
-\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\uFEFF\uFFF9-\uFFFC]`,Ao),R0={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"},Qr=null;function P0(){var n;if(Qr==null&&typeof document<"u"&&document.body){let e=document.body.style;Qr=((n=e.tabSize)!==null&&n!==void 0?n:e.MozTabSize)!=null}return Qr||!1}var us=S.define({combine(n){let e=pe(n,{render:null,specialChars:L0,addSpecialChars:null});return(e.replaceTabs=!P0())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,Ao)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,Ao)),e}});function bu(n={}){return[us.of(n),O0()]}var cc=null;function O0(){return cc||(cc=q.fromClass(class{constructor(n){this.view=n,this.decorations=E.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(n.state.facet(us)),this.decorations=this.decorator.createDeco(n)}makeDecorator(n){return new gu({regexp:n.specialChars,decoration:(e,t,i)=>{let{doc:s}=t.state,r=ne(e[0],0);if(r==9){let o=s.lineAt(i),l=t.state.tabSize,a=pt(o.text,l,i-o.from);return E.replace({widget:new vu((l-a%l)*this.view.defaultCharacterWidth)})}return this.decorationCache[r]||(this.decorationCache[r]=E.replace({widget:new yu(n,r)}))},boundary:n.replaceTabs?void 0:/[^]/})}update(n){let e=n.state.facet(us);n.startState.facet(us)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(n.view)):this.decorations=this.decorator.updateDeco(n,this.decorations)}},{decorations:n=>n.decorations}))}var D0="\u2022";function B0(n){return n>=32?D0:n==10?"\u2424":String.fromCharCode(9216+n)}var yu=class extends De{constructor(e,t){super();this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=B0(this.code),i=e.state.phrase("Control character")+" "+(R0[this.code]||"0x"+this.code.toString(16)),s=this.options.render&&this.options.render(this.code,i,t);if(s)return s;let r=document.createElement("span");return r.textContent=t,r.title=i,r.setAttribute("aria-label",i),r.className="cm-specialChar",r}ignoreEvent(){return!1}},vu=class extends De{constructor(e){super();this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}};function wu(){return N0}var I0=E.line({class:"cm-activeLine"}),N0=q.fromClass(class{constructor(n){this.decorations=this.getDeco(n)}update(n){(n.docChanged||n.selectionSet)&&(this.decorations=this.getDeco(n.view))}getDeco(n){let e=-1,t=[];for(let i of n.state.selection.ranges){if(!i.empty)return E.none;let s=n.lineBlockAt(i.head);s.from>e&&(t.push(I0.range(s.from)),e=s.from)}return E.set(t)}},{decorations:n=>n.decorations});var Io=$e.define(),F0=$e.define(),V0=S.define(),Su=S.define({combine(n){return pe(n,{minDepth:100,newGroupDelay:500},{minDepth:Math.max,newGroupDelay:Math.min})}});function H0(n){let e=0;return n.iterChangedRanges((t,i)=>e=i),e}var xu=z.define({create(){return _e.empty},update(n,e){let t=e.state.facet(Su),i=e.annotation(Io);if(i){let a=e.docChanged?m.single(H0(e.changes)):void 0,h=Ce.fromTransaction(e,a),c=i.side,u=c==0?n.undone:n.done;return h?u=vs(u,u.length,t.minDepth,h):u=Mu(u,e.startState.selection),new _e(c==0?i.rest:u,c==0?u:i.rest)}let s=e.annotation(F0);if((s=="full"||s=="before")&&(n=n.isolate()),e.annotation(ee.addToHistory)===!1)return e.changes.empty?n:n.addMapping(e.changes.desc);let r=Ce.fromTransaction(e),o=e.annotation(ee.time),l=e.annotation(ee.userEvent);return r?n=n.addChanges(r,o,l,t.newGroupDelay,t.minDepth):e.selection&&(n=n.addSelection(e.startState.selection,o,l,t.newGroupDelay)),(s=="full"||s=="after")&&(n=n.isolate()),n},toJSON(n){return{done:n.done.map(e=>e.toJSON()),undone:n.undone.map(e=>e.toJSON())}},fromJSON(n){return new _e(n.done.map(Ce.fromJSON),n.undone.map(Ce.fromJSON))}});function ku(n={}){return[xu,Su.of(n),C.domEventHandlers({beforeinput(e,t){let i=e.inputType=="historyUndo"?Cu:e.inputType=="historyRedo"?Au:null;return i?(e.preventDefault(),i(t)):!1}})]}function ws(n,e){return function({state:t,dispatch:i}){if(!e&&t.readOnly)return!1;let s=t.field(xu,!1);if(!s)return!1;let r=s.pop(n,t,e);return r?(i(r),!0):!1}}var Cu=ws(0,!1),Au=ws(1,!1),q0=ws(0,!0),W0=ws(1,!0);var Ce=class{constructor(e,t,i,s,r){this.changes=e,this.effects=t,this.mapped=i,this.startSelection=s,this.selectionsAfter=r}setSelAfter(e){return new Ce(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,i;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(i=this.startSelection)===null||i===void 0?void 0:i.toJSON(),selectionsAfter:this.selectionsAfter.map(s=>s.toJSON())}}static fromJSON(e){return new Ce(e.changes&&Q.fromJSON(e.changes),[],e.mapped&&We.fromJSON(e.mapped),e.startSelection&&m.fromJSON(e.startSelection),e.selectionsAfter.map(m.fromJSON))}static fromTransaction(e,t){let i=Be;for(let s of e.startState.facet(V0)){let r=s(e);r.length&&(i=i.concat(r))}return!i.length&&e.changes.empty?null:new Ce(e.changes.invert(e.startState.doc),i,void 0,t||e.startState.selection,Be)}static selection(e){return new Ce(void 0,Be,void 0,void 0,e)}};function vs(n,e,t,i){let s=e+1>t+20?e-t-1:0,r=n.slice(s,e);return r.push(i),r}function z0(n,e){let t=[],i=!1;return n.iterChangedRanges((s,r)=>t.push(s,r)),e.iterChangedRanges((s,r,o,l)=>{for(let a=0;a<t.length;){let h=t[a++],c=t[a++];l>=h&&o<=c&&(i=!0)}}),i}function $0(n,e){return n.ranges.length==e.ranges.length&&n.ranges.filter((t,i)=>t.empty!=e.ranges[i].empty).length===0}function Eu(n,e){return n.length?e.length?n.concat(e):n:e}var Be=[],j0=200;function Mu(n,e){if(n.length){let t=n[n.length-1],i=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-j0));return i.length&&i[i.length-1].eq(e)?n:(i.push(e),vs(n,n.length-1,1e9,t.setSelAfter(i)))}else return[Ce.selection([e])]}function U0(n){let e=n[n.length-1],t=n.slice();return t[n.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}function Bo(n,e){if(!n.length)return n;let t=n.length,i=Be;for(;t;){let s=K0(n[t-1],e,i);if(s.changes&&!s.changes.empty||s.effects.length){let r=n.slice(0,t);return r[t-1]=s,r}else e=s.mapped,t--,i=s.selectionsAfter}return i.length?[Ce.selection(i)]:Be}function K0(n,e,t){let i=Eu(n.selectionsAfter.length?n.selectionsAfter.map(l=>l.map(e)):Be,t);if(!n.changes)return Ce.selection(i);let s=n.changes.map(e),r=e.mapDesc(n.changes,!0),o=n.mapped?n.mapped.composeDesc(r):r;return new Ce(s,L.mapEffects(n.effects,e),o,n.startSelection.map(r),i)}var _0=/^(input\.type|delete)($|\.)/,_e=class{constructor(e,t,i=0,s=void 0){this.done=e,this.undone=t,this.prevTime=i,this.prevUserEvent=s}isolate(){return this.prevTime?new _e(this.done,this.undone):this}addChanges(e,t,i,s,r){let o=this.done,l=o[o.length-1];return l&&l.changes&&!l.changes.empty&&e.changes&&(!i||_0.test(i))&&(!l.selectionsAfter.length&&t-this.prevTime<s&&z0(l.changes,e.changes)||i=="input.type.compose")?o=vs(o,o.length-1,r,new Ce(e.changes.compose(l.changes),Eu(e.effects,l.effects),l.mapped,l.startSelection,Be)):o=vs(o,o.length,r,e),new _e(o,Be,t,i)}addSelection(e,t,i,s){let r=this.done.length?this.done[this.done.length-1].selectionsAfter:Be;return r.length>0&&t-this.prevTime<s&&i==this.prevUserEvent&&i&&/^select($|\.)/.test(i)&&$0(r[r.length-1],e)?this:new _e(Mu(this.done,e),this.undone,t,i)}addMapping(e){return new _e(Bo(this.done,e),Bo(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,t,i){let s=e==0?this.done:this.undone;if(s.length==0)return null;let r=s[s.length-1];if(i&&r.selectionsAfter.length)return t.update({selection:r.selectionsAfter[r.selectionsAfter.length-1],annotations:Io.of({side:e,rest:U0(s)}),userEvent:e==0?"select.undo":"select.redo",scrollIntoView:!0});if(r.changes){let o=s.length==1?Be:s.slice(0,s.length-1);return r.mapped&&(o=Bo(o,r.mapped)),t.update({changes:r.changes,selection:r.startSelection,effects:r.effects,annotations:Io.of({side:e,rest:o}),filter:!1,userEvent:e==0?"undo":"redo",scrollIntoView:!0})}else return null}};_e.empty=new _e(Be,Be);var Tu=[{key:"Mod-z",run:Cu,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:Au,preventDefault:!0},{key:"Mod-u",run:q0,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:W0,preventDefault:!0}];var G0=0,xs=class{constructor(e,t){this.from=e,this.to=t}},O=class{constructor(e={}){this.id=G0++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=ae.match(e)),t=>{let i=e(t);return i===void 0?null:[this,i]}}};O.closedBy=new O({deserialize:n=>n.split(" ")});O.openedBy=new O({deserialize:n=>n.split(" ")});O.group=new O({deserialize:n=>n.split(" ")});O.contextHash=new O({perNode:!0});O.lookAhead=new O({perNode:!0});O.mounted=new O({perNode:!0});var J0=Object.create(null),ae=class{constructor(e,t,i,s=0){this.name=e,this.props=t,this.id=i,this.flags=s}static define(e){let t=e.props&&e.props.length?Object.create(null):J0,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),s=new ae(e.name||"",t,e.id,i);if(e.props){for(let r of e.props)if(Array.isArray(r)||(r=r(s)),r){if(r[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[r[0].id]=r[1]}}return s}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(O.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let i in e)for(let s of i.split(" "))t[s]=e[i];return i=>{for(let s=i.prop(O.group),r=-1;r<(s?s.length:0);r++){let o=t[r<0?i.name:s[r]];if(o)return o}}}};ae.none=new ae("",Object.create(null),0,8);var hn=class{constructor(e){this.types=e;for(let t=0;t<e.length;t++)if(e[t].id!=t)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...e){let t=[];for(let i of this.types){let s=null;for(let r of e){let o=r(i);o&&(s||(s=Object.assign({},i.props)),s[o[0].id]=o[1])}t.push(s?new ae(i.name,s,i.id,i.flags):i)}return new hn(t)}},Ss=new WeakMap,Lu=new WeakMap,U=class{constructor(e,t,i,s,r){if(this.type=e,this.children=t,this.positions=i,this.length=s,this.props=null,r&&r.length){this.props=Object.create(null);for(let[o,l]of r)this.props[typeof o=="number"?o:o.id]=l}}toString(){let e=this.prop(O.mounted);if(e&&!e.overlay)return e.tree.toString();let t="";for(let i of this.children){let s=i.toString();s&&(t&&(t+=","),t+=s)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(t.length?"("+t+")":""):t}cursor(e,t=0){let i=e!=null&&Ss.get(this)||this.topNode,s=new an(i);return e!=null&&(s.moveTo(e,t),Ss.set(this,s._tree)),s}fullCursor(){return new an(this.topNode,1)}get topNode(){return new st(this,0,0,null)}resolve(e,t=0){let i=ki(Ss.get(this)||this.topNode,e,t,!1);return Ss.set(this,i),i}resolveInner(e,t=0){let i=ki(Lu.get(this)||this.topNode,e,t,!0);return Lu.set(this,i),i}iterate(e){let{enter:t,leave:i,from:s=0,to:r=this.length}=e;for(let o=this.cursor(),l=()=>o.node;;){let a=!1;if(o.from<=r&&o.to>=s&&(o.type.isAnonymous||t(o.type,o.from,o.to,l)!==!1)){if(o.firstChild())continue;o.type.isAnonymous||(a=!0)}for(;a&&i&&i(o.type,o.from,o.to,l),a=o.type.isAnonymous,!o.nextSibling();){if(!o.parent())return;a=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:Fo(ae.none,this.children,this.positions,0,this.children.length,0,this.length,(t,i,s)=>new U(this.type,t,i,s,this.propValues),e.makeTree||((t,i,s)=>new U(ae.none,t,i,s)))}static build(e){return Y0(e)}};U.empty=new U(ae.none,[],[],0);var As=class{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new As(this.buffer,this.index)}},It=class{constructor(e,t,i){this.buffer=e,this.length=t,this.set=i}get type(){return ae.none}toString(){let e=[];for(let t=0;t<this.buffer.length;)e.push(this.childString(t)),t=this.buffer[t+3];return e.join(",")}childString(e){let t=this.buffer[e],i=this.buffer[e+3],s=this.set.types[t],r=s.name;if(/\W/.test(r)&&!s.isError&&(r=JSON.stringify(r)),e+=4,i==e)return r;let o=[];for(;e<i;)o.push(this.childString(e)),e=this.buffer[e+3];return r+"("+o.join(",")+")"}findChild(e,t,i,s,r){let{buffer:o}=this,l=-1;for(let a=e;a!=t&&!(Pu(r,s,o[a+1],o[a+2])&&(l=a,i>0));a=o[a+3]);return l}slice(e,t,i,s){let r=this.buffer,o=new Uint16Array(t-e);for(let l=e,a=0;l<t;)o[a++]=r[l++],o[a++]=r[l++]-i,o[a++]=r[l++]-i,o[a++]=r[l++]-e;return new It(o,s-i,this.set)}};function Pu(n,e,t,i){switch(n){case-2:return t<e;case-1:return i>=e&&t<e;case 0:return t<e&&i>e;case 1:return t<=e&&i>e;case 2:return i>e;case 4:return!0}}function Ou(n,e){let t=n.childBefore(e);for(;t;){let i=t.lastChild;if(!i||i.to!=t.to)break;i.type.isError&&i.from==i.to?(n=t,t=i.prevSibling):t=i}return n}function ki(n,e,t,i){for(var s;n.from==n.to||(t<1?n.from>=e:n.from>e)||(t>-1?n.to<=e:n.to<e);){let r=!i&&n instanceof st&&n.index<0?null:n.parent;if(!r)return n;n=r}if(i)for(let r=n,o=r.parent;o;r=o,o=r.parent)r instanceof st&&r.index<0&&((s=o.enter(e,t,!0))===null||s===void 0?void 0:s.from)!=r.from&&(n=o);for(;;){let r=n.enter(e,t,i);if(!r)return n;n=r}}var st=class{constructor(e,t,i,s){this.node=e,this._from=t,this.index=i,this._parent=s}get type(){return this.node.type}get name(){return this.node.type.name}get from(){return this._from}get to(){return this._from+this.node.length}nextChild(e,t,i,s,r=0){for(let o=this;;){for(let{children:l,positions:a}=o.node,h=t>0?l.length:-1;e!=h;e+=t){let c=l[e],u=a[e]+o._from;if(!!Pu(s,i,u,u+c.length)){if(c instanceof It){if(r&2)continue;let f=c.findChild(0,c.buffer.length,t,i-u,s);if(f>-1)return new vt(new Du(o,c,e,u),null,f)}else if(r&1||!c.type.isAnonymous||No(c)){let f;if(!(r&1)&&c.props&&(f=c.prop(O.mounted))&&!f.overlay)return new st(f.tree,u,e,o);let d=new st(c,u,e,o);return r&1||!d.type.isAnonymous?d:d.nextChild(t<0?c.children.length-1:0,t,i,s)}}}if(r&1||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent.node.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this.node.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this.node.children.length-1,-1,e,-2)}enter(e,t,i=!0,s=!0){let r;if(i&&(r=this.node.prop(O.mounted))&&r.overlay){let o=e-this.from;for(let{from:l,to:a}of r.overlay)if((t>0?l<=o:l<o)&&(t<0?a>=o:a>o))return new st(r.tree,r.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,s?0:2)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get cursor(){return new an(this)}get tree(){return this.node}toTree(){return this.node}resolve(e,t=0){return ki(this,e,t,!1)}resolveInner(e,t=0){return ki(this,e,t,!0)}enterUnfinishedNodesBefore(e){return Ou(this,e)}getChild(e,t=null,i=null){let s=Cs(this,e,t,i);return s.length?s[0]:null}getChildren(e,t=null,i=null){return Cs(this,e,t,i)}toString(){return this.node.toString()}};function Cs(n,e,t,i){let s=n.cursor,r=[];if(!s.firstChild())return r;if(t!=null){for(;!s.type.is(t);)if(!s.nextSibling())return r}for(;;){if(i!=null&&s.type.is(i))return r;if(s.type.is(e)&&r.push(s.node),!s.nextSibling())return i==null?r:[]}}var Du=class{constructor(e,t,i,s){this.parent=e,this.buffer=t,this.index=i,this.start=s}},vt=class{constructor(e,t,i){this.context=e,this._parent=t,this.index=i,this.type=e.buffer.set.types[e.buffer.buffer[i]]}get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}child(e,t,i){let{buffer:s}=this.context,r=s.findChild(this.index+4,s.buffer[this.index+3],e,t-this.context.start,i);return r<0?null:new vt(this.context,this,r)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,t,i,s=!0){if(!s)return null;let{buffer:r}=this.context,o=r.findChild(this.index+4,r.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return o<0?null:new vt(this.context,this,o)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new vt(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new vt(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get cursor(){return new an(this)}get tree(){return null}toTree(){let e=[],t=[],{buffer:i}=this.context,s=this.index+4,r=i.buffer[this.index+3];if(r>s){let o=i.buffer[this.index+1],l=i.buffer[this.index+2];e.push(i.slice(s,r,o,l)),t.push(0)}return new U(this.type,e,t,this.to-this.from)}resolve(e,t=0){return ki(this,e,t,!1)}resolveInner(e,t=0){return ki(this,e,t,!0)}enterUnfinishedNodesBefore(e){return Ou(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,i=null){let s=Cs(this,e,t,i);return s.length?s[0]:null}getChildren(e,t=null,i=null){return Cs(this,e,t,i)}},an=class{constructor(e,t=0){if(this.mode=t,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof st)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let i=e._parent;i;i=i._parent)this.stack.unshift(i.index);this.bufferNode=e,this.yieldBuf(e.index)}}get name(){return this.type.name}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:i,buffer:s}=this.buffer;return this.type=t||s.set.types[s.buffer[e]],this.from=i+s.buffer[e+1],this.to=i+s.buffer[e+2],!0}yield(e){return e?e instanceof st?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,i){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree.node.children.length-1:0,e,t,i,this.mode));let{buffer:s}=this.buffer,r=s.findChild(this.index+4,s.buffer[this.index+3],e,t-this.buffer.start,i);return r<0?!1:(this.stack.push(this.index),this.yieldBuf(r))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,i=!0,s=!0){return this.buffer?s?this.enterChild(1,e,t):!1:this.yield(this._tree.enter(e,t,i&&!(this.mode&1),s))}parent(){if(!this.buffer)return this.yieldNode(this.mode&1?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&1?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,i=this.stack.length-1;if(e<0){let s=i<0?0:this.stack[i]+4;if(this.index!=s)return this.yieldBuf(t.findChild(s,this.index,-1,0,4))}else{let s=t.buffer[this.index+3];if(s<(i<0?t.buffer.length:t.buffer[this.stack[i]+3]))return this.yieldBuf(s)}return i<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,i,{buffer:s}=this;if(s){if(e>0){if(this.index<s.buffer.buffer.length)return!1}else for(let r=0;r<this.index;r++)if(s.buffer.buffer[r+3]<this.index)return!1;({index:t,parent:i}=s)}else({index:t,_parent:i}=this._tree);for(;i;{index:t,_parent:i}=i)if(t>-1)for(let r=t+e,o=e<0?-1:i.node.children.length;r!=o;r+=e){let l=i.node.children[r];if(this.mode&1||l instanceof It||!l.type.isAnonymous||No(l))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to<e))&&this.parent(););for(;this.enterChild(1,e,t););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,t=null,i=0;if(e&&e.context==this.buffer){e:for(let s=this.index,r=this.stack.length;r>=0;){for(let o=e;o;o=o._parent)if(o.index==s){if(s==this.index)return o;t=o,i=r+1;break e}s=this.stack[--r]}}for(let s=i;s<this.stack.length;s++)t=new vt(this.buffer,t,this.stack[s]);return this.bufferNode=new vt(this.buffer,t,this.index)}get tree(){return this.buffer?null:this._tree.node}};function No(n){return n.children.some(e=>e instanceof It||!e.type.isAnonymous||No(e))}function Y0(n){var e;let{buffer:t,nodeSet:i,maxBufferLength:s=1024,reused:r=[],minRepeatType:o=i.types.length}=n,l=Array.isArray(t)?new As(t,t.length):t,a=i.types,h=0,c=0;function u(x,k,M,P,J){let{id:V,start:D,end:W,size:Y}=l,ie=c;for(;Y<0;)if(l.next(),Y==-1){let ue=r[V];M.push(ue),P.push(D-x);return}else if(Y==-3){h=V;return}else if(Y==-4){c=V;return}else throw new RangeError(`Unrecognized record size: ${Y}`);let Le=a[V],fe,be,Fe=D-x;if(W-D<=s&&(be=g(l.pos-k,J))){let ue=new Uint16Array(be.size-be.skip),Ve=l.pos-be.size,ct=ue.length;for(;l.pos>Ve;)ct=y(be.start,ue,ct);fe=new It(ue,W-be.start,i),Fe=be.start-x}else{let ue=l.pos-Y;l.next();let Ve=[],ct=[],qt=V>=o?V:-1,oi=0,Rn=W;for(;l.pos>ue;)qt>=0&&l.id==qt&&l.size>=0?(l.end<=Rn-s&&(d(Ve,ct,D,oi,l.end,Rn,qt,ie),oi=Ve.length,Rn=l.end),l.next()):u(D,ue,Ve,ct,qt);if(qt>=0&&oi>0&&oi<Ve.length&&d(Ve,ct,D,oi,D,Rn,qt,ie),Ve.reverse(),ct.reverse(),qt>-1&&oi>0){let Dl=f(Le);fe=Fo(Le,Ve,ct,0,Ve.length,0,W-D,Dl,Dl)}else fe=p(Le,Ve,ct,W-D,ie-W)}M.push(fe),P.push(Fe)}function f(x){return(k,M,P)=>{let J=0,V=k.length-1,D,W;if(V>=0&&(D=k[V])instanceof U){if(!V&&D.type==x&&D.length==P)return D;(W=D.prop(O.lookAhead))&&(J=M[V]+D.length+W)}return p(x,k,M,P,J)}}function d(x,k,M,P,J,V,D,W){let Y=[],ie=[];for(;x.length>P;)Y.push(x.pop()),ie.push(k.pop()+M-J);x.push(p(i.types[D],Y,ie,V-J,W-V)),k.push(J-M)}function p(x,k,M,P,J=0,V){if(h){let D=[O.contextHash,h];V=V?[D].concat(V):[D]}if(J>25){let D=[O.lookAhead,J];V=V?[D].concat(V):[D]}return new U(x,k,M,P,V)}function g(x,k){let M=l.fork(),P=0,J=0,V=0,D=M.end-s,W={size:0,start:0,skip:0};e:for(let Y=M.pos-x;M.pos>Y;){let ie=M.size;if(M.id==k&&ie>=0){W.size=P,W.start=J,W.skip=V,V+=4,P+=4,M.next();continue}let Le=M.pos-ie;if(ie<0||Le<Y||M.start<D)break;let fe=M.id>=o?4:0,be=M.start;for(M.next();M.pos>Le;){if(M.size<0)if(M.size==-3)fe+=4;else break e;else M.id>=o&&(fe+=4);M.next()}J=be,P+=ie,V+=fe}return(k<0||P==x)&&(W.size=P,W.start=J,W.skip=V),W.size>4?W:void 0}function y(x,k,M){let{id:P,start:J,end:V,size:D}=l;if(l.next(),D>=0&&P<o){let W=M;if(D>4){let Y=l.pos-(D-4);for(;l.pos>Y;)M=y(x,k,M)}k[--M]=W,k[--M]=V-x,k[--M]=J-x,k[--M]=P}else D==-3?h=P:D==-4&&(c=P);return M}let b=[],A=[];for(;l.pos>0;)u(n.start||0,n.bufferStart||0,b,A,-1);let T=(e=n.length)!==null&&e!==void 0?e:b.length?A[0]+b[0].length:0;return new U(a[n.topID],b.reverse(),A.reverse(),T)}var Ru=new WeakMap;function ks(n,e){if(!n.isAnonymous||e instanceof It||e.type!=n)return 1;let t=Ru.get(e);if(t==null){t=1;for(let i of e.children){if(i.type!=n||!(i instanceof U)){t=1;break}t+=ks(n,i)}Ru.set(e,t)}return t}function Fo(n,e,t,i,s,r,o,l,a){let h=0;for(let p=i;p<s;p++)h+=ks(n,e[p]);let c=Math.ceil(h*1.5/8),u=[],f=[];function d(p,g,y,b,A){for(let T=y;T<b;){let x=T,k=g[T],M=ks(n,p[T]);for(T++;T<b;T++){let P=ks(n,p[T]);if(M+P>=c)break;M+=P}if(T==x+1){if(M>c){let P=p[x];d(P.children,P.positions,0,P.children.length,g[x]+A);continue}u.push(p[x])}else{let P=g[T-1]+p[T-1].length-k;u.push(Fo(n,p,g,x,T,k,P,null,a))}f.push(k+A-r)}}return d(e,t,i,s,0),(l||a)(u,f,o)}var wt=class{constructor(e,t,i,s,r=!1,o=!1){this.from=e,this.to=t,this.tree=i,this.offset=s,this.open=(r?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],i=!1){let s=[new wt(0,e.length,e,0,!1,i)];for(let r of t)r.to>e.length&&s.push(r);return s}static applyChanges(e,t,i=128){if(!t.length)return e;let s=[],r=1,o=e.length?e[0]:null;for(let l=0,a=0,h=0;;l++){let c=l<t.length?t[l]:null,u=c?c.fromA:1e9;if(u-a>=i)for(;o&&o.from<u;){let f=o;if(a>=f.from||u<=f.to||h){let d=Math.max(f.from,a)-h,p=Math.min(f.to,u)-h;f=d>=p?null:new wt(d,p,f.tree,f.offset+h,l>0,!!c)}if(f&&s.push(f),o.to>u)break;o=r<e.length?e[r++]:null}if(!c)break;a=c.toA,h=c.toA-c.toB}return s}},cn=class{startParse(e,t,i){return typeof e=="string"&&(e=new Bu(e)),i=i?i.length?i.map(s=>new xs(s.from,s.to)):[new xs(0,0)]:[new xs(0,e.length)],this.createParse(e,t||[],i)}parse(e,t,i){let s=this.startParse(e,t,i);for(;;){let r=s.advance();if(r)return r}}},Bu=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}};var IS=new O({perNode:!0});var fn=new O;function Fu(n){return S.define({combine:n?e=>e.concat(n):void 0})}var Ie=class{constructor(e,t,i,s=[]){this.data=e,this.topNode=i,B.prototype.hasOwnProperty("tree")||Object.defineProperty(B.prototype,"tree",{get(){return te(this)}}),this.parser=t,this.extension=[St.of(this),B.languageData.of((r,o,l)=>r.facet(Iu(r,o,l)))].concat(s)}isActiveAt(e,t,i=-1){return Iu(e,t,i)==this.data}findRegions(e){let t=e.facet(St);if(t?.data==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let i=[],s=(r,o)=>{if(r.prop(fn)==this.data){i.push({from:o,to:o+r.length});return}let l=r.prop(O.mounted);if(l){if(l.tree.prop(fn)==this.data){if(l.overlay)for(let a of l.overlay)i.push({from:a.from+o,to:a.to+o});else i.push({from:o,to:o+r.length});return}else if(l.overlay){let a=i.length;if(s(l.tree,l.overlay[0].from+o),i.length>a)return}}for(let a=0;a<r.children.length;a++){let h=r.children[a];h instanceof U&&s(h,r.positions[a]+o)}};return s(te(e),0),i}get allowsNesting(){return!0}};Ie.setState=L.define();function Iu(n,e,t){let i=n.facet(St);if(!i)return null;let s=i.data;if(i.allowsNesting)for(let r=te(n).topNode;r;r=r.enter(e,t,!0,!1))s=r.type.prop(fn)||s;return s}function te(n){let e=n.field(Ie.state,!1);return e?e.tree:U.empty}var Vu=class{constructor(e,t=e.length){this.doc=e,this.length=t,this.cursorPos=0,this.string="",this.cursor=e.iter()}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let i=this.cursorPos-this.string.length;return e<i||t>=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-i,t-i)}},un=null,Yt=class{constructor(e,t,i=[],s,r,o,l,a){this.parser=e,this.state=t,this.fragments=i,this.tree=s,this.treeLen=r,this.viewport=o,this.skipped=l,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}startParse(){return this.parser.startParse(new Vu(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=U.empty&&this.isDone(t??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var i;let s=Date.now()+e;for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t<this.state.doc.length&&this.parse.stopAt(t);;){let r=this.parse.advance();if(r)if(this.fragments=this.withoutTempSkipped(wt.addTree(r,this.fragments,this.parse.stoppedAt!=null)),this.treeLen=(i=this.parse.stoppedAt)!==null&&i!==void 0?i:this.state.doc.length,this.tree=r,this.parse=null,this.treeLen<(t??this.state.doc.length))this.parse=this.startParse();else return!0;if(Date.now()>s)return!1}})}takeTree(){let e,t;this.parse&&(e=this.parse.parsedPos)>=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(wt.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=un;un=this;try{return e()}finally{un=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=Nu(e,t.from,t.to);return e}changes(e,t){let{fragments:i,tree:s,treeLen:r,viewport:o,skipped:l}=this;if(this.takeTree(),!e.empty){let a=[];if(e.iterChangedRanges((h,c,u,f)=>a.push({fromA:h,toA:c,fromB:u,toB:f})),i=wt.applyChanges(i,a),s=U.empty,r=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){l=[];for(let h of this.skipped){let c=e.mapPos(h.from,1),u=e.mapPos(h.to,-1);c<u&&l.push({from:c,to:u})}}}return new Yt(this.parser,t,i,s,r,o,l,this.scheduleOn)}updateViewport(e){if(this.viewport.from==e.from&&this.viewport.to==e.to)return!1;this.viewport=e;let t=this.skipped.length;for(let i=0;i<this.skipped.length;i++){let{from:s,to:r}=this.skipped[i];s<e.to&&r>e.from&&(this.fragments=Nu(this.fragments,s,r),this.skipped.splice(i--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends cn{createParse(t,i,s){let r=s[0].from,o=s[s.length-1].to;return{parsedPos:r,advance(){let a=un;if(a){for(let h of s)a.tempSkipped.push(h);e&&(a.scheduleOn=a.scheduleOn?Promise.all([a.scheduleOn,e]):e)}return this.parsedPos=o,new U(ae.none,[],[],o-r)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return un}};function Nu(n,e,t){return wt.applyChanges(n,[{fromA:e,toA:t,fromB:e,toB:t}])}var Jt=class{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged)return this;let t=this.context.changes(e.changes,e.state),i=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,i)||t.takeTree(),new Jt(t)}static init(e){let t=Math.min(3e3,e.doc.length),i=new Yt(e.facet(St).parser,e,[],U.empty,0,{from:0,to:t},[],null);return i.work(20,t)||i.takeTree(),new Jt(i)}};Ie.state=z.define({create:Jt.init,update(n,e){for(let t of e.effects)if(t.is(Ie.setState))return t.value;return e.startState.facet(St)!=e.state.facet(St)?Jt.init(e.state):n.apply(e)}});var Hu=n=>{let e=setTimeout(()=>n(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(Hu=n=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(n,{timeout:500-100})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});var X0=q.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(Ie.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)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(Ie.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=Hu(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEnd<t&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=t+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:i,viewport:{to:s}}=this.view,r=i.field(Ie.state);if(r.tree==r.context.tree&&r.context.isDone(s+1e5))return;let o=Math.min(this.chunkBudget,100,e?Math.max(25,e.timeRemaining()-5):1e9),l=r.context.treeLen<s&&i.doc.length>s+1e3,a=r.context.work(o,s+(l?0:1e5));this.chunkBudget-=Date.now()-t,(a||this.chunkBudget<=0)&&(r.context.takeTree(),this.view.dispatch({effects:Ie.setState.of(new Jt(r.context))})),this.chunkBudget>0&&!(a&&!l)&&this.scheduleWork(),this.checkAsyncSchedule(r.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>ge(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return this.working||this.workScheduled>0}},{eventHandlers:{focus(){this.scheduleWork()}}}),St=S.define({combine(n){return n.length?n[0]:null},enables:[Ie.state,X0]});var Vo=S.define(),dn=S.define({combine:n=>{if(!n.length)return" ";if(!/^(?: +|\t+)$/.test(n[0]))throw new Error("Invalid indent unit: "+JSON.stringify(n[0]));return n[0]}});function xt(n){let e=n.facet(dn);return e.charCodeAt(0)==9?n.tabSize*e.length:e.length}function Ci(n,e){let t="",i=n.tabSize;if(n.facet(dn).charCodeAt(0)==9)for(;e>=i;)t+=" ",e-=i;for(let s=0;s<e;s++)t+=" ";return t}function Es(n,e){n instanceof B&&(n=new Ai(n));for(let i of n.state.facet(Vo)){let s=i(n,e);if(s!=null)return s}let t=te(n.state);return t?Z0(n,t,e):null}var Ai=class{constructor(e,t={}){this.state=e,this.options=t,this.unit=xt(e)}lineAt(e,t=1){let i=this.state.doc.lineAt(e),{simulateBreak:s,simulateDoubleBreak:r}=this.options;return s!=null&&s>=i.from&&s<=i.to?r&&s==e?{text:"",from:e}:(t<0?s<e:s<=e)?{text:i.text.slice(s-i.from),from:s}:{text:i.text.slice(0,s-i.from),from:i.from}:i}textAfterPos(e,t=1){if(this.options.simulateDoubleBreak&&e==this.options.simulateBreak)return"";let{text:i,from:s}=this.lineAt(e,t);return i.slice(e-s,Math.min(i.length,e+100-s))}column(e,t=1){let{text:i,from:s}=this.lineAt(e,t),r=this.countColumn(i,e-s),o=this.options.overrideIndentation?this.options.overrideIndentation(s):-1;return o>-1&&(r+=o-this.countColumn(i,i.search(/\S|$/))),r}countColumn(e,t=e.length){return pt(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:i,from:s}=this.lineAt(e,t),r=this.options.overrideIndentation;if(r){let o=r(s);if(o>-1)return o}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}},Q0=new O;function Z0(n,e,t){return qu(e.resolveInner(t).enterUnfinishedNodesBefore(t),t,n)}function eb(n){return n.pos==n.options.simulateBreak&&n.options.simulateDoubleBreak}function tb(n){let e=n.type.prop(Q0);if(e)return e;let t=n.firstChild,i;if(t&&(i=t.type.prop(O.closedBy))){let s=n.lastChild,r=s&&i.indexOf(s.name)>-1;return o=>rb(o,!0,1,void 0,r&&!eb(o)?s.from:void 0)}return n.parent==null?ib:null}function qu(n,e,t){for(;n;n=n.parent){let i=tb(n);if(i)return i(new Wu(t,e,n))}return null}function ib(){return 0}var Wu=class extends Ai{constructor(e,t,i){super(e.state,e.options);this.base=e,this.pos=t,this.node=i}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){let e=this.state.doc.lineAt(this.node.from);for(;;){let t=this.node.resolve(e.from);for(;t.parent&&t.parent.from==t.from;)t=t.parent;if(nb(t,this.node))break;e=this.state.doc.lineAt(t.from)}return this.lineIndent(e.from)}continue(){let e=this.node.parent;return e?qu(e,this.pos,this.base):0}};function nb(n,e){for(let t=e;t;t=t.parent)if(n==t)return!0;return!1}function sb(n){let e=n.node,t=e.childAfter(e.from),i=e.lastChild;if(!t)return null;let s=n.options.simulateBreak,r=n.state.doc.lineAt(t.from),o=s==null||s<=r.from?r.to:Math.min(r.to,s);for(let l=t.to;;){let a=e.childAfter(l);if(!a||a==i)return null;if(!a.type.isSkipped)return a.from<o?t:null;l=a.to}}function rb(n,e,t,i,s){let r=n.textAfter,o=r.match(/^\s*/)[0].length,l=i&&r.slice(o,o+i.length)==i||s==n.pos+o,a=e?sb(n):null;return a?l?n.column(a.from):n.column(a.to):n.baseIndent+(l?0:n.unit*t)}var ob=200;function zu(){return B.transactionFilter.of(n=>{if(!n.docChanged||!n.isUserEvent("input.type"))return n;let e=n.startState.languageDataAt("indentOnInput",n.startState.selection.main.head);if(!e.length)return n;let t=n.newDoc,{head:i}=n.newSelection.main,s=t.lineAt(i);if(i>s.from+ob)return n;let r=t.sliceString(s.from,i);if(!e.some(h=>h.test(r)))return n;let{state:o}=n,l=-1,a=[];for(let{head:h}of o.selection.ranges){let c=o.doc.lineAt(h);if(c.from==l)continue;l=c.from;let u=Es(o,c.from);if(u==null)continue;let f=/^\s*/.exec(c.text)[0],d=Ci(o,u);f!=d&&a.push({from:c.from,to:c.from+f.length,insert:d})}return a.length?[n,{changes:a,sequential:!0}]:n})}var lb=S.define(),ab=new O;function hb(n,e,t){let i=te(n);if(i.length==0)return null;let s=i.resolveInner(t),r=null;for(let o=s;o;o=o.parent){if(o.to<=t||o.from>t)continue;if(r&&o.from<e)break;let l=o.type.prop(ab);if(l){let a=l(o,n);a&&a.from<=t&&a.from>=e&&a.to>t&&(r=a)}}return r}function pn(n,e,t){for(let i of n.facet(lb)){let s=i(n,e,t);if(s)return s}return hb(n,e,t)}var Ge=class extends Ue{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}};Ge.prototype.elementClass="";Ge.prototype.toDOM=void 0;Ge.prototype.mapMode=Z.TrackBefore;Ge.prototype.startSide=Ge.prototype.endSide=-1;Ge.prototype.point=!0;var Ms=S.define(),cb={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>F.empty,lineMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{}},mn=S.define();function Uu(n){return[Ku(),mn.of(Object.assign(Object.assign({},cb),n))]}var ub=C.baseTheme({".cm-gutters":{display:"flex",height:"100%",boxSizing:"border-box",left:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#999",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"}}),qo=S.define({combine:n=>n.some(e=>e)});function Ku(n){let e=[fb,ub];return n&&n.fixed===!1&&e.push(qo.of(!0)),e}var fb=q.fromClass(class{constructor(n){this.view=n,this.prevViewport=n.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight+"px",this.gutters=n.state.facet(mn).map(e=>new Wo(n,e));for(let e of this.gutters)this.dom.appendChild(e.dom);this.fixed=!n.state.facet(qo),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),n.scrollDOM.insertBefore(this.dom,n.contentDOM)}update(n){if(this.updateGutters(n)){let e=this.prevViewport,t=n.view.viewport,i=Math.min(e.to,t.to)-Math.max(e.from,t.from);this.syncGutters(i<(t.to-t.from)*.8)}n.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight+"px"),this.view.state.facet(qo)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=n.view.viewport}syncGutters(n){let e=this.dom.nextSibling;n&&this.dom.remove();let t=F.iter(this.view.state.facet(Ms),this.view.viewport.from),i=[],s=this.gutters.map(r=>new Gu(r,this.view.viewport,-this.view.documentPadding.top));for(let r of this.view.viewportLineBlocks){let o;if(Array.isArray(r.type)){for(let l of r.type)if(l.type==$.Text){o=l;break}}else o=r.type==$.Text?r:void 0;if(!!o){i.length&&(i=[]),_u(t,i,r.from);for(let l of s)l.line(this.view,o,i)}}for(let r of s)r.finish();n&&this.view.scrollDOM.insertBefore(this.dom,e)}updateGutters(n){let e=n.startState.facet(mn),t=n.state.facet(mn),i=n.docChanged||n.heightChanged||n.viewportChanged||!F.eq(n.startState.facet(Ms),n.state.facet(Ms),n.view.viewport.from,n.view.viewport.to);if(e==t)for(let s of this.gutters)s.update(n)&&(i=!0);else{i=!0;let s=[];for(let r of t){let o=e.indexOf(r);o<0?s.push(new Wo(this.view,r)):(this.gutters[o].update(n),s.push(this.gutters[o]))}for(let r of this.gutters)r.dom.remove(),s.indexOf(r)<0&&r.destroy();for(let r of s)this.dom.appendChild(r.dom);this.gutters=s}return i}destroy(){for(let n of this.gutters)n.destroy();this.dom.remove()}},{provide:re.scrollMargins.from(n=>n.gutters.length==0||!n.fixed?null:n.view.textDirection==I.LTR?{left:n.dom.offsetWidth}:{right:n.dom.offsetWidth})});function $u(n){return Array.isArray(n)?n:[n]}function _u(n,e,t){for(;n.value&&n.from<=t;)n.from==t&&e.push(n.value),n.next()}var Gu=class{constructor(e,t,i){this.gutter=e,this.height=i,this.localMarkers=[],this.i=0,this.cursor=F.iter(e.markers,t.from)}line(e,t,i){this.localMarkers.length&&(this.localMarkers=[]),_u(this.cursor,this.localMarkers,t.from);let s=i.length?this.localMarkers.concat(i):this.localMarkers,r=this.gutter.config.lineMarker(e,t,s);r&&s.unshift(r);let o=this.gutter;if(s.length==0&&!o.config.renderEmptyElements)return;let l=t.top-this.height;if(this.i==o.elements.length){let a=new zo(e,t.height,l,s);o.elements.push(a),o.dom.appendChild(a.dom)}else o.elements[this.i].update(e,t.height,l,s);this.height=t.bottom,this.i++}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}},Wo=class{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in t.domEventHandlers)this.dom.addEventListener(i,s=>{let r=e.lineBlockAtHeight(s.clientY-e.documentTop);t.domEventHandlers[i](e,r,s)&&s.preventDefault()});this.markers=$u(t.markers(e)),t.initialSpacer&&(this.spacer=new zo(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let t=this.markers;if(this.markers=$u(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let s=this.config.updateSpacer(this.spacer.markers[0],e);s!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[s])}let i=e.view.viewport;return!F.eq(this.markers,t,i.from,i.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}},zo=class{constructor(e,t,i,s){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.update(e,t,i,s)}update(e,t,i,s){this.height!=t&&(this.dom.style.height=(this.height=t)+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i+"px":""),db(this.markers,s)||this.setMarkers(e,s)}setMarkers(e,t){let i="cm-gutterElement",s=this.dom.firstChild;for(let r=0,o=0;;){let l=o,a=r<t.length?t[r++]:null,h=!1;if(a){let c=a.elementClass;c&&(i+=" "+c);for(let u=o;u<this.markers.length;u++)if(this.markers[u].compare(a)){l=u,h=!0;break}}else l=this.markers.length;for(;o<l;){let c=this.markers[o++];if(c.toDOM){c.destroy(s);let u=s.nextSibling;s.remove(),s=u}}if(!a)break;a.toDOM&&(h?s=s.nextSibling:this.dom.insertBefore(a.toDOM(e),s)),h&&o++}this.dom.className=i,this.markers=t}destroy(){this.setMarkers(null,[])}};function db(n,e){if(n.length!=e.length)return!1;for(let t=0;t<n.length;t++)if(!n[t].compare(e[t]))return!1;return!0}var pb=S.define(),Ei=S.define({combine(n){return pe(n,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(e,t){let i=Object.assign({},e);for(let s in t){let r=i[s],o=t[s];i[s]=r?(l,a,h)=>r(l,a,h)||o(l,a,h):o}return i}})}}),Ts=class extends Ge{constructor(e){super();this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}};function Ho(n,e){return n.state.facet(Ei).formatNumber(e,n.state)}var mb=mn.compute([Ei],n=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(pb)},lineMarker(e,t,i){return i.some(s=>s.toDOM)?null:new Ts(Ho(e,e.state.doc.lineAt(t.from).number))},lineMarkerChange:e=>e.startState.facet(Ei)!=e.state.facet(Ei),initialSpacer(e){return new Ts(Ho(e,ju(e.state.doc.lines)))},updateSpacer(e,t){let i=Ho(t.view,ju(t.view.state.doc.lines));return i==e.number?e:new Ts(i)},domEventHandlers:n.facet(Ei).domEventHandlers}));function Ju(n={}){return[Ei.of(n),Ku(),mb]}function ju(n){let e=9;for(;e<n;)e=e*10+9;return e}var gb=new class extends Ge{constructor(){super(...arguments);this.elementClass="cm-activeLineGutter"}},bb=Ms.compute(["selection"],n=>{let e=[],t=-1;for(let i of n.selection.ranges)if(i.empty){let s=n.doc.lineAt(i.head).from;s>t&&(t=s,e.push(gb.range(s)))}return F.of(e)});function Yu(){return bb}function Xu(n,e){let t=e.mapPos(n.from,1),i=e.mapPos(n.to,-1);return t>=i?void 0:{from:t,to:i}}var Ps=L.define({map:Xu}),gn=L.define({map:Xu});function Qu(n){let e=[];for(let{head:t}of n.state.selection.ranges)e.some(i=>i.from<=t&&i.to>=t)||e.push(n.lineBlockAt(t));return e}var Xt=z.define({create(){return E.none},update(n,e){n=n.map(e.changes);for(let t of e.effects)t.is(Ps)&&!yb(n,t.value.from,t.value.to)?n=n.update({add:[Cb.range(t.value.from,t.value.to)]}):t.is(gn)&&(n=n.update({filter:(i,s)=>t.value.from!=i||t.value.to!=s,filterFrom:t.value.from,filterTo:t.value.to}));if(e.selection){let t=!1,{head:i}=e.selection.main;n.between(i,i,(s,r)=>{s<i&&r>i&&(t=!0)}),t&&(n=n.update({filterFrom:i,filterTo:i,filter:(s,r)=>r<=i||s>=i}))}return n},provide:n=>C.decorations.from(n)});function Rs(n,e,t){var i;let s=null;return(i=n.field(Xt,!1))===null||i===void 0||i.between(e,t,(r,o)=>{(!s||s.from>r)&&(s={from:r,to:o})}),s}function yb(n,e,t){let i=!1;return n.between(e,e,(s,r)=>{s==e&&r==t&&(i=!0)}),i}function Zu(n,e){return n.field(Xt,!1)?e:e.concat(L.appendConfig.of(sf()))}var vb=n=>{for(let e of Qu(n)){let t=pn(n.state,e.from,e.to);if(t)return n.dispatch({effects:Zu(n.state,[Ps.of(t),ef(n,t)])}),!0}return!1},wb=n=>{if(!n.state.field(Xt,!1))return!1;let e=[];for(let t of Qu(n)){let i=Rs(n.state,t.from,t.to);i&&e.push(gn.of(i),ef(n,i,!1))}return e.length&&n.dispatch({effects:e}),e.length>0};function ef(n,e,t=!0){let i=n.state.doc.lineAt(e.from).number,s=n.state.doc.lineAt(e.to).number;return C.announce.of(`${n.state.phrase(t?"Folded lines":"Unfolded lines")} ${i} ${n.state.phrase("to")} ${s}.`)}var Sb=n=>{let{state:e}=n,t=[];for(let i=0;i<e.doc.length;){let s=n.lineBlockAt(i),r=pn(e,s.from,s.to);r&&t.push(Ps.of(r)),i=(r?n.lineBlockAt(r.to):s).to+1}return t.length&&n.dispatch({effects:Zu(n.state,t)}),!!t.length},xb=n=>{let e=n.state.field(Xt,!1);if(!e||!e.size)return!1;let t=[];return e.between(0,n.state.doc.length,(i,s)=>{t.push(gn.of({from:i,to:s}))}),n.dispatch({effects:t}),!0},tf=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:vb},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:wb},{key:"Ctrl-Alt-[",run:Sb},{key:"Ctrl-Alt-]",run:xb}],kb={placeholderDOM:null,placeholderText:"\u2026"},nf=S.define({combine(n){return pe(n,kb)}});function sf(n){let e=[Xt,Eb];return n&&e.push(nf.of(n)),e}var Cb=E.replace({widget:new class extends De{toDOM(n){let{state:e}=n,t=e.facet(nf),i=r=>{let o=n.lineBlockAt(n.posAtDOM(r.target)),l=Rs(n.state,o.from,o.to);l&&n.dispatch({effects:gn.of(l)}),r.preventDefault()};if(t.placeholderDOM)return t.placeholderDOM(n,i);let s=document.createElement("span");return s.textContent=t.placeholderText,s.setAttribute("aria-label",e.phrase("folded code")),s.title=e.phrase("unfold"),s.className="cm-foldPlaceholder",s.onclick=i,s}}}),Ab={openText:"\u2304",closedText:"\u203A",markerDOM:null,domEventHandlers:{}},Ls=class extends Ge{constructor(e,t){super();this.config=e,this.open=t}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let t=document.createElement("span");return t.textContent=this.open?this.config.openText:this.config.closedText,t.title=e.state.phrase(this.open?"Fold line":"Unfold line"),t}};function rf(n={}){let e=Object.assign(Object.assign({},Ab),n),t=new Ls(e,!0),i=new Ls(e,!1),s=q.fromClass(class{constructor(o){this.from=o.viewport.from,this.markers=this.buildMarkers(o)}update(o){(o.docChanged||o.viewportChanged||o.startState.facet(St)!=o.state.facet(St)||o.startState.field(Xt,!1)!=o.state.field(Xt,!1))&&(this.markers=this.buildMarkers(o.view))}buildMarkers(o){let l=new Re;for(let a of o.viewportLineBlocks){let h=Rs(o.state,a.from,a.to)?i:pn(o.state,a.from,a.to)?t:null;h&&l.add(a.from,a.from,h)}return l.finish()}}),{domEventHandlers:r}=e;return[s,Uu({class:"cm-foldGutter",markers(o){var l;return((l=o.plugin(s))===null||l===void 0?void 0:l.markers)||F.empty},initialSpacer(){return new Ls(e,!1)},domEventHandlers:Object.assign(Object.assign({},r),{click:(o,l,a)=>{if(r.click&&r.click(o,l,a))return!0;let h=Rs(o.state,l.from,l.to);if(h)return o.dispatch({effects:gn.of(h)}),!0;let c=pn(o.state,l.from,l.to);return c?(o.dispatch({effects:Ps.of(c)}),!0):!1}})}),sf()]}var Eb=C.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"}});var Mb=C.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),of=1e4,lf="()[]{}",af=S.define({combine(n){return pe(n,{afterCursor:!0,brackets:lf,maxScanDistance:of})}}),Tb=E.mark({class:"cm-matchingBracket"}),Lb=E.mark({class:"cm-nonmatchingBracket"}),Rb=z.define({create(){return E.none},update(n,e){if(!e.docChanged&&!e.selection)return n;let t=[],i=e.state.facet(af);for(let s of e.state.selection.ranges){if(!s.empty)continue;let r=Je(e.state,s.head,-1,i)||s.head>0&&Je(e.state,s.head-1,1,i)||i.afterCursor&&(Je(e.state,s.head,1,i)||s.head<e.state.doc.length&&Je(e.state,s.head+1,-1,i));if(!r)continue;let o=r.matched?Tb:Lb;t.push(o.range(r.start.from,r.start.to)),r.end&&t.push(o.range(r.end.from,r.end.to))}return E.set(t,!0)},provide:n=>C.decorations.from(n)}),Pb=[Rb,Mb];function hf(n={}){return[af.of(n),Pb]}function $o(n,e,t){let i=n.prop(e<0?O.openedBy:O.closedBy);if(i)return i;if(n.name.length==1){let s=t.indexOf(n.name);if(s>-1&&s%2==(e<0?1:0))return[t[s+e]]}return null}function Je(n,e,t,i={}){let s=i.maxScanDistance||of,r=i.brackets||lf,o=te(n),l=o.resolveInner(e,t);for(let a=l;a;a=a.parent){let h=$o(a.type,t,r);if(h&&a.from<a.to)return Ob(n,e,t,a,h,r)}return Db(n,e,t,o,l.type,s,r)}function Ob(n,e,t,i,s,r){let o=i.parent,l={from:i.from,to:i.to},a=0,h=o?.cursor;if(h&&(t<0?h.childBefore(i.from):h.childAfter(i.to)))do if(t<0?h.to<=i.from:h.from>=i.to){if(a==0&&s.indexOf(h.type.name)>-1&&h.from<h.to)return{start:l,end:{from:h.from,to:h.to},matched:!0};if($o(h.type,t,r))a++;else if($o(h.type,-t,r)&&(a--,a==0))return{start:l,end:h.from==h.to?void 0:{from:h.from,to:h.to},matched:!1}}while(t<0?h.prevSibling():h.nextSibling());return{start:l,matched:!1}}function Db(n,e,t,i,s,r,o){let l=t<0?n.sliceDoc(e-1,e):n.sliceDoc(e,e+1),a=o.indexOf(l);if(a<0||a%2==0!=t>0)return null;let h={from:t<0?e-1:e,to:t>0?e+1:e},c=n.doc.iterRange(e,t>0?n.doc.length:0),u=0;for(let f=0;!c.next().done&&f<=r;){let d=c.value;t<0&&(f+=d.length);let p=e+f*t;for(let g=t>0?0:d.length-1,y=t>0?d.length:-1;g!=y;g+=t){let b=o.indexOf(d[g]);if(!(b<0||i.resolve(p+g,1).type!=s))if(b%2==0==t>0)u++;else{if(u==1)return{start:h,end:{from:p+g,to:p+g+1},matched:b>>1==a>>1};u--}}t>0&&(f+=d.length)}return c.done?{start:h,matched:!1}:null}function Mi(n,e){return m.create(n.ranges.map(e),n.mainIndex)}function rt(n,e){return n.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function kt({state:n,dispatch:e},t){let i=Mi(n.selection,t);return i.eq(n.selection)?!1:(e(rt(n,i)),!0)}function Os(n,e){return m.cursor(e?n.to:n.from)}function Sf(n,e){return kt(n,t=>t.empty?n.moveByChar(t,e):Os(t,e))}var xf=n=>Sf(n,n.textDirection!=I.LTR),kf=n=>Sf(n,n.textDirection==I.LTR);function Cf(n,e){return kt(n,t=>t.empty?n.moveByGroup(t,e):Os(t,e))}var Bb=n=>Cf(n,n.textDirection!=I.LTR),Ib=n=>Cf(n,n.textDirection==I.LTR);function Nb(n,e,t){if(e.type.prop(t))return!0;let i=e.to-e.from;return i&&(i>2||/[^\s,.;:]/.test(n.sliceDoc(e.from,e.to)))||e.firstChild}function Ds(n,e,t){let i=te(n).resolveInner(e.head),s=t?O.closedBy:O.openedBy;for(let a=e.head;;){let h=t?i.childAfter(a):i.childBefore(a);if(!h)break;Nb(n,h,s)?i=h:a=t?h.to:h.from}let r=i.type.prop(s),o,l;return r&&(o=t?Je(n,i.from,1):Je(n,i.to,-1))&&o.matched?l=t?o.end.to:o.end.from:l=t?i.to:i.from,m.cursor(l,t?-1:1)}var Fb=n=>kt(n,e=>Ds(n.state,e,n.textDirection!=I.LTR)),Vb=n=>kt(n,e=>Ds(n.state,e,n.textDirection==I.LTR));function Af(n,e){return kt(n,t=>{if(!t.empty)return Os(t,e);let i=n.moveVertically(t,e);return i.head!=t.head?i:n.moveToLineBoundary(t,e)})}var Ef=n=>Af(n,!1),Mf=n=>Af(n,!0);function Tf(n,e){let{state:t}=n,i=Mi(t.selection,o=>o.empty?n.moveVertically(o,e,n.dom.clientHeight):Os(o,e));if(i.eq(t.selection))return!1;let s=n.coordsAtPos(t.selection.main.head),r=n.scrollDOM.getBoundingClientRect();return n.dispatch(rt(t,i),{effects:s&&s.top>r.top&&s.bottom<r.bottom?C.scrollIntoView(i.main.head,{y:"start",yMargin:s.top-r.top}):void 0}),!0}var cf=n=>Tf(n,!1),jo=n=>Tf(n,!0);function Bs(n,e,t){let i=n.lineBlockAt(e.head),s=n.moveToLineBoundary(e,t);if(s.head==e.head&&s.head!=(t?i.to:i.from)&&(s=n.moveToLineBoundary(e,t,!1)),!t&&s.head==i.from&&i.length){let r=/^\s*/.exec(n.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;r&&e.head!=i.from+r&&(s=m.cursor(i.from+r))}return s}var uf=n=>kt(n,e=>Bs(n,e,!0)),ff=n=>kt(n,e=>Bs(n,e,!1)),Hb=n=>kt(n,e=>m.cursor(n.lineBlockAt(e.head).from,1)),qb=n=>kt(n,e=>m.cursor(n.lineBlockAt(e.head).to,-1));function Wb(n,e,t){let i=!1,s=Mi(n.selection,r=>{let o=Je(n,r.head,-1)||Je(n,r.head,1)||r.head>0&&Je(n,r.head-1,1)||r.head<n.doc.length&&Je(n,r.head+1,-1);if(!o||!o.end)return r;i=!0;let l=o.start.from==r.head?o.end.to:o.end.from;return t?m.range(r.anchor,l):m.cursor(l)});return i?(e(rt(n,s)),!0):!1}var zb=({state:n,dispatch:e})=>Wb(n,e,!1);function ot(n,e){let t=Mi(n.state.selection,i=>{let s=e(i);return m.range(i.anchor,s.head,s.goalColumn)});return t.eq(n.state.selection)?!1:(n.dispatch(rt(n.state,t)),!0)}function Lf(n,e){return ot(n,t=>n.moveByChar(t,e))}var Rf=n=>Lf(n,n.textDirection!=I.LTR),Pf=n=>Lf(n,n.textDirection==I.LTR);function Of(n,e){return ot(n,t=>n.moveByGroup(t,e))}var $b=n=>Of(n,n.textDirection!=I.LTR),jb=n=>Of(n,n.textDirection==I.LTR);var Ub=n=>ot(n,e=>Ds(n.state,e,n.textDirection!=I.LTR)),Kb=n=>ot(n,e=>Ds(n.state,e,n.textDirection==I.LTR));function Df(n,e){return ot(n,t=>n.moveVertically(t,e))}var Bf=n=>Df(n,!1),If=n=>Df(n,!0);function Nf(n,e){return ot(n,t=>n.moveVertically(t,e,n.dom.clientHeight))}var df=n=>Nf(n,!1),pf=n=>Nf(n,!0),mf=n=>ot(n,e=>Bs(n,e,!0)),gf=n=>ot(n,e=>Bs(n,e,!1)),_b=n=>ot(n,e=>m.cursor(n.lineBlockAt(e.head).from)),Gb=n=>ot(n,e=>m.cursor(n.lineBlockAt(e.head).to)),bf=({state:n,dispatch:e})=>(e(rt(n,{anchor:0})),!0),yf=({state:n,dispatch:e})=>(e(rt(n,{anchor:n.doc.length})),!0),vf=({state:n,dispatch:e})=>(e(rt(n,{anchor:n.selection.main.anchor,head:0})),!0),wf=({state:n,dispatch:e})=>(e(rt(n,{anchor:n.selection.main.anchor,head:n.doc.length})),!0),Jb=({state:n,dispatch:e})=>(e(n.update({selection:{anchor:0,head:n.doc.length},userEvent:"select"})),!0),Yb=({state:n,dispatch:e})=>{let t=Fs(n).map(({from:i,to:s})=>m.range(i,Math.min(s+1,n.doc.length)));return e(n.update({selection:m.create(t),userEvent:"select"})),!0},Xb=({state:n,dispatch:e})=>{let t=Mi(n.selection,i=>{var s;let r=te(n).resolveInner(i.head,1);for(;!(r.from<i.from&&r.to>=i.to||r.to>i.to&&r.from<=i.from||!(!((s=r.parent)===null||s===void 0)&&s.parent));)r=r.parent;return m.range(r.to,r.from)});return e(rt(n,t)),!0},Qb=({state:n,dispatch:e})=>{let t=n.selection,i=null;return t.ranges.length>1?i=m.create([t.main]):t.main.empty||(i=m.create([m.cursor(t.main.head)])),i?(e(rt(n,i)),!0):!1};function Is({state:n,dispatch:e},t){if(n.readOnly)return!1;let i="delete.selection",s=n.changeByRange(r=>{let{from:o,to:l}=r;if(o==l){let a=t(o);a<o?i="delete.backward":a>o&&(i="delete.forward"),o=Math.min(o,a),l=Math.max(l,a)}return o==l?{range:r}:{changes:{from:o,to:l},range:m.cursor(o)}});return s.changes.empty?!1:(e(n.update(s,{scrollIntoView:!0,userEvent:i})),!0)}function Ns(n,e,t){if(n instanceof C)for(let i of n.pluginField(re.atomicRanges))i.between(e,e,(s,r)=>{s<e&&r>e&&(e=t?r:s)});return e}var Ff=(n,e)=>Is(n,t=>{let{state:i}=n,s=i.doc.lineAt(t),r,o;if(!e&&t>s.from&&t<s.from+200&&!/[^ \t]/.test(r=s.text.slice(0,t-s.from))){if(r[r.length-1]==" ")return t-1;let l=pt(r,i.tabSize),a=l%xt(i)||xt(i);for(let h=0;h<a&&r[r.length-1-h]==" ";h++)t--;o=t}else o=de(s.text,t-s.from,e,e)+s.from,o==t&&s.number!=(e?i.doc.lines:1)&&(o+=e?1:-1);return Ns(n,o,e)}),Uo=n=>Ff(n,!1),Vf=n=>Ff(n,!0),Hf=(n,e)=>Is(n,t=>{let i=t,{state:s}=n,r=s.doc.lineAt(i),o=s.charCategorizer(i);for(let l=null;;){if(i==(e?r.to:r.from)){i==t&&r.number!=(e?s.doc.lines:1)&&(i+=e?1:-1);break}let a=de(r.text,i-r.from,e)+r.from,h=r.text.slice(Math.min(i,a)-r.from,Math.max(i,a)-r.from),c=o(h);if(l!=null&&c!=l)break;(h!=" "||i!=t)&&(l=c),i=a}return Ns(n,i,e)}),qf=n=>Hf(n,!1),Zb=n=>Hf(n,!0),Wf=n=>Is(n,e=>{let t=n.lineBlockAt(e).to;return Ns(n,e<t?t:Math.min(n.state.doc.length,e+1),!0)}),ey=n=>Is(n,e=>{let t=n.lineBlockAt(e).from;return Ns(n,e>t?t:Math.max(0,e-1),!1)});var ty=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let t=n.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:N.of(["",""])},range:m.cursor(i.from)}));return e(n.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},iy=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let t=n.changeByRange(i=>{if(!i.empty||i.from==0||i.from==n.doc.length)return{range:i};let s=i.from,r=n.doc.lineAt(s),o=s==r.from?s-1:de(r.text,s-r.from,!1)+r.from,l=s==r.to?s+1:de(r.text,s-r.from,!0)+r.from;return{changes:{from:o,to:l,insert:n.doc.slice(s,l).append(n.doc.slice(o,s))},range:m.cursor(l)}});return t.changes.empty?!1:(e(n.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function Fs(n){let e=[],t=-1;for(let i of n.selection.ranges){let s=n.doc.lineAt(i.from),r=n.doc.lineAt(i.to);if(!i.empty&&i.to==r.from&&(r=n.doc.lineAt(i.to-1)),t>=s.number){let o=e[e.length-1];o.to=r.to,o.ranges.push(i)}else e.push({from:s.from,to:r.to,ranges:[i]});t=r.number+1}return e}function zf(n,e,t){if(n.readOnly)return!1;let i=[],s=[];for(let r of Fs(n)){if(t?r.to==n.doc.length:r.from==0)continue;let o=n.doc.lineAt(t?r.to+1:r.from-1),l=o.length+1;if(t){i.push({from:r.to,to:o.to},{from:r.from,insert:o.text+n.lineBreak});for(let a of r.ranges)s.push(m.range(Math.min(n.doc.length,a.anchor+l),Math.min(n.doc.length,a.head+l)))}else{i.push({from:o.from,to:r.from},{from:r.to,insert:n.lineBreak+o.text});for(let a of r.ranges)s.push(m.range(a.anchor-l,a.head-l))}}return i.length?(e(n.update({changes:i,scrollIntoView:!0,selection:m.create(s,n.selection.mainIndex),userEvent:"move.line"})),!0):!1}var ny=({state:n,dispatch:e})=>zf(n,e,!1),sy=({state:n,dispatch:e})=>zf(n,e,!0);function $f(n,e,t){if(n.readOnly)return!1;let i=[];for(let s of Fs(n))t?i.push({from:s.from,insert:n.doc.slice(s.from,s.to)+n.lineBreak}):i.push({from:s.to,insert:n.lineBreak+n.doc.slice(s.from,s.to)});return e(n.update({changes:i,scrollIntoView:!0,userEvent:"input.copyline"})),!0}var ry=({state:n,dispatch:e})=>$f(n,e,!1),oy=({state:n,dispatch:e})=>$f(n,e,!0),ly=n=>{if(n.state.readOnly)return!1;let{state:e}=n,t=e.changes(Fs(e).map(({from:s,to:r})=>(s>0?s--:r<e.doc.length&&r++,{from:s,to:r}))),i=Mi(e.selection,s=>n.moveVertically(s,!0)).map(t);return n.dispatch({changes:t,selection:i,scrollIntoView:!0,userEvent:"delete.line"}),!0};function ay(n,e){if(/\(\)|\[\]|\{\}/.test(n.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=te(n).resolveInner(e),i=t.childBefore(e),s=t.childAfter(e),r;return i&&s&&i.to<=e&&s.from>=e&&(r=i.type.prop(O.closedBy))&&r.indexOf(s.name)>-1&&n.doc.lineAt(i.to).from==n.doc.lineAt(s.from).from?{from:i.to,to:s.from}:null}var hy=jf(!1),cy=jf(!0);function jf(n){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let i=e.changeByRange(s=>{let{from:r,to:o}=s,l=e.doc.lineAt(r),a=!n&&r==o&&ay(e,r);n&&(r=o=(o<=l.to?l:e.doc.lineAt(o)).to);let h=new Ai(e,{simulateBreak:r,simulateDoubleBreak:!!a}),c=Es(h,r);for(c==null&&(c=/^\s*/.exec(e.doc.lineAt(r).text)[0].length);o<l.to&&/\s/.test(l.text[o-l.from]);)o++;a?{from:r,to:o}=a:r>l.from&&r<l.from+100&&!/\S/.test(l.text.slice(0,r))&&(r=l.from);let u=["",Ci(e,c)];return a&&u.push(Ci(e,h.lineIndent(l.from,-1))),{changes:{from:r,to:o,insert:N.of(u)},range:m.cursor(r+1+u[1].length)}});return t(e.update(i,{scrollIntoView:!0,userEvent:"input"})),!0}}function Ko(n,e){let t=-1;return n.changeByRange(i=>{let s=[];for(let o=i.from;o<=i.to;){let l=n.doc.lineAt(o);l.number>t&&(i.empty||i.to>l.from)&&(e(l,s,i),t=l.number),o=l.to+1}let r=n.changes(s);return{changes:s,range:m.range(r.mapPos(i.anchor,1),r.mapPos(i.head,1))}})}var uy=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let t=Object.create(null),i=new Ai(n,{overrideIndentation:r=>{let o=t[r];return o??-1}}),s=Ko(n,(r,o,l)=>{let a=Es(i,r.from);if(a==null)return;/\S/.test(r.text)||(a=0);let h=/^\s*/.exec(r.text)[0],c=Ci(n,a);(h!=c||l.from<r.from+h.length)&&(t[r.from]=a,o.push({from:r.from,to:r.from+h.length,insert:c}))});return s.changes.empty||e(n.update(s,{userEvent:"indent"})),!0},Uf=({state:n,dispatch:e})=>n.readOnly?!1:(e(n.update(Ko(n,(t,i)=>{i.push({from:t.from,insert:n.facet(dn)})}),{userEvent:"input.indent"})),!0),Kf=({state:n,dispatch:e})=>n.readOnly?!1:(e(n.update(Ko(n,(t,i)=>{let s=/^\s*/.exec(t.text)[0];if(!s)return;let r=pt(s,n.tabSize),o=0,l=Ci(n,Math.max(0,r-xt(n)));for(;o<s.length&&o<l.length&&s.charCodeAt(o)==l.charCodeAt(o);)o++;i.push({from:t.from+o,to:t.from+s.length,insert:l.slice(o)})}),{userEvent:"delete.dedent"})),!0);var fy=[{key:"Ctrl-b",run:xf,shift:Rf,preventDefault:!0},{key:"Ctrl-f",run:kf,shift:Pf},{key:"Ctrl-p",run:Ef,shift:Bf},{key:"Ctrl-n",run:Mf,shift:If},{key:"Ctrl-a",run:Hb,shift:_b},{key:"Ctrl-e",run:qb,shift:Gb},{key:"Ctrl-d",run:Vf},{key:"Ctrl-h",run:Uo},{key:"Ctrl-k",run:Wf},{key:"Ctrl-Alt-h",run:qf},{key:"Ctrl-o",run:ty},{key:"Ctrl-t",run:iy},{key:"Ctrl-v",run:jo}],dy=[{key:"ArrowLeft",run:xf,shift:Rf,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:Bb,shift:$b},{mac:"Cmd-ArrowLeft",run:ff,shift:gf},{key:"ArrowRight",run:kf,shift:Pf,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:Ib,shift:jb},{mac:"Cmd-ArrowRight",run:uf,shift:mf},{key:"ArrowUp",run:Ef,shift:Bf,preventDefault:!0},{mac:"Cmd-ArrowUp",run:bf,shift:vf},{mac:"Ctrl-ArrowUp",run:cf,shift:df},{key:"ArrowDown",run:Mf,shift:If,preventDefault:!0},{mac:"Cmd-ArrowDown",run:yf,shift:wf},{mac:"Ctrl-ArrowDown",run:jo,shift:pf},{key:"PageUp",run:cf,shift:df},{key:"PageDown",run:jo,shift:pf},{key:"Home",run:ff,shift:gf},{key:"Mod-Home",run:bf,shift:vf},{key:"End",run:uf,shift:mf},{key:"Mod-End",run:yf,shift:wf},{key:"Enter",run:hy},{key:"Mod-a",run:Jb},{key:"Backspace",run:Uo,shift:Uo},{key:"Delete",run:Vf},{key:"Mod-Backspace",mac:"Alt-Backspace",run:qf},{key:"Mod-Delete",mac:"Alt-Delete",run:Zb},{mac:"Mod-Backspace",run:ey},{mac:"Mod-Delete",run:Wf}].concat(fy.map(n=>({mac:n.key,run:n.run,shift:n.shift}))),_f=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:Fb,shift:Ub},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:Vb,shift:Kb},{key:"Alt-ArrowUp",run:ny},{key:"Shift-Alt-ArrowUp",run:ry},{key:"Alt-ArrowDown",run:sy},{key:"Shift-Alt-ArrowDown",run:oy},{key:"Escape",run:Qb},{key:"Mod-Enter",run:cy},{key:"Alt-l",mac:"Ctrl-l",run:Yb},{key:"Mod-i",run:Xb,preventDefault:!0},{key:"Mod-[",run:Kf},{key:"Mod-]",run:Uf},{key:"Mod-Alt-\\",run:uy},{key:"Shift-Mod-k",run:ly},{key:"Shift-Mod-\\",run:zb}].concat(dy),Gf={key:"Tab",run:Uf,shift:Kf};var Vs={brackets:["(","[","{","'",'"'],before:`)]}'":;>`},Qt=L.define({map(n,e){let t=e.mapPos(n,-1,Z.TrackAfter);return t??void 0}}),Go=L.define({map(n,e){return e.mapPos(n)}}),Jo=new class extends Ue{};Jo.startSide=1;Jo.endSide=-1;var Yf=z.define({create(){return F.empty},update(n,e){if(e.selection){let t=e.state.doc.lineAt(e.selection.main.head).from,i=e.startState.doc.lineAt(e.startState.selection.main.head).from;t!=e.changes.mapPos(i,-1)&&(n=F.empty)}n=n.map(e.changes);for(let t of e.effects)t.is(Qt)?n=n.update({add:[Jo.range(t.value,t.value+1)]}):t.is(Go)&&(n=n.update({filter:i=>i!=t.value}));return n}});function Xf(){return[my,Yf]}var _o="()[]{}<>";function Qf(n){for(let e=0;e<_o.length;e+=2)if(_o.charCodeAt(e)==n)return _o.charAt(e+1);return mi(n<128?n:n+1)}function Zf(n,e){return n.languageDataAt("closeBrackets",e)[0]||Vs}var py=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),my=C.inputHandler.of((n,e,t,i)=>{if((py?n.composing:n.compositionStarted)||n.state.readOnly)return!1;let s=n.state.selection.main;if(i.length>2||i.length==2&&Se(ne(i,0))==1||e!=s.from||t!=s.to)return!1;let r=by(n.state,i);return r?(n.dispatch(r),!0):!1}),gy=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let i=Zf(n,n.selection.main.head).brackets||Vs.brackets,s=null,r=n.changeByRange(o=>{if(o.empty){let l=yy(n.doc,o.head);for(let a of i)if(a==l&&Hs(n.doc,o.head)==Qf(ne(a,0)))return{changes:{from:o.head-a.length,to:o.head+a.length},range:m.cursor(o.head-a.length),userEvent:"delete.backward"}}return{range:s=o}});return s||e(n.update(r,{scrollIntoView:!0})),!s},ed=[{key:"Backspace",run:gy}];function by(n,e){let t=Zf(n,n.selection.main.head),i=t.brackets||Vs.brackets;for(let s of i){let r=Qf(ne(s,0));if(e==s)return r==s?Sy(n,s,i.indexOf(s+s+s)>-1):vy(n,s,r,t.before||Vs.before);if(e==r&&td(n,n.selection.main.from))return wy(n,s,r)}return null}function td(n,e){let t=!1;return n.field(Yf).between(0,n.doc.length,i=>{i==e&&(t=!0)}),t}function Hs(n,e){let t=n.sliceString(e,e+2);return t.slice(0,Se(ne(t,0)))}function yy(n,e){let t=n.sliceString(e-2,e);return Se(ne(t,0))==t.length?t:t.slice(1)}function vy(n,e,t,i){let s=null,r=n.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:t,from:o.to}],effects:Qt.of(o.to+e.length),range:m.range(o.anchor+e.length,o.head+e.length)};let l=Hs(n.doc,o.head);return!l||/\s/.test(l)||i.indexOf(l)>-1?{changes:{insert:e+t,from:o.head},effects:Qt.of(o.head+e.length),range:m.cursor(o.head+e.length)}:{range:s=o}});return s?null:n.update(r,{scrollIntoView:!0,userEvent:"input.type"})}function wy(n,e,t){let i=null,s=n.selection.ranges.map(r=>r.empty&&Hs(n.doc,r.head)==t?m.cursor(r.head+t.length):i=r);return i?null:n.update({selection:m.create(s,n.selection.mainIndex),scrollIntoView:!0,effects:n.selection.ranges.map(({from:r})=>Go.of(r))})}function Sy(n,e,t){let i=null,s=n.changeByRange(r=>{if(!r.empty)return{changes:[{insert:e,from:r.from},{insert:e,from:r.to}],effects:Qt.of(r.to+e.length),range:m.range(r.anchor+e.length,r.head+e.length)};let o=r.head,l=Hs(n.doc,o);if(l==e){if(Jf(n,o))return{changes:{insert:e+e,from:o},effects:Qt.of(o+e.length),range:m.cursor(o+e.length)};if(td(n,o)){let a=t&&n.sliceDoc(o,o+e.length*3)==e+e+e;return{range:m.cursor(o+e.length*(a?3:1)),effects:Go.of(o)}}}else{if(t&&n.sliceDoc(o-2*e.length,o)==e+e&&Jf(n,o-2*e.length))return{changes:{insert:e+e+e+e,from:o},effects:Qt.of(o+e.length),range:m.cursor(o+e.length)};if(n.charCategorizer(o)(l)!=oe.Word){let a=n.sliceDoc(o-1,o);if(a!=e&&n.charCategorizer(o)(a)!=oe.Word&&!xy(n,o,e))return{changes:{insert:e+e,from:o},effects:Qt.of(o+e.length),range:m.cursor(o+e.length)}}}return{range:i=r}});return i?null:n.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function Jf(n,e){let t=te(n).resolveInner(e+1);return t.parent&&t.from==e}function xy(n,e,t){let i=te(n).resolveInner(e,-1);for(let s=0;s<5;s++){if(n.sliceDoc(i.from,i.from+t.length)==t)return!0;let r=i.to==e&&i.parent;if(!r)break;i=r}return!1}var id=S.define({combine(n){let e,t;for(let i of n)e=e||i.topContainer,t=t||i.bottomContainer;return{topContainer:e,bottomContainer:t}}});function ei(n,e){let t=n.plugin(sd),i=t?t.specs.indexOf(e):-1;return i>-1?t.panels[i]:null}var sd=q.fromClass(class{constructor(n){this.input=n.state.facet(Zt),this.specs=this.input.filter(t=>t),this.panels=this.specs.map(t=>t(n));let e=n.state.facet(id);this.top=new bn(n,!0,e.topContainer),this.bottom=new bn(n,!1,e.bottomContainer),this.top.sync(this.panels.filter(t=>t.top)),this.bottom.sync(this.panels.filter(t=>!t.top));for(let t of this.panels)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}update(n){let e=n.state.facet(id);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new bn(n.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new bn(n.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=n.state.facet(Zt);if(t!=this.input){let i=t.filter(a=>a),s=[],r=[],o=[],l=[];for(let a of i){let h=this.specs.indexOf(a),c;h<0?(c=a(n.view),l.push(c)):(c=this.panels[h],c.update&&c.update(n)),s.push(c),(c.top?r:o).push(c)}this.specs=i,this.panels=s,this.top.sync(r),this.bottom.sync(o);for(let a of l)a.dom.classList.add("cm-panel"),a.mount&&a.mount()}else for(let i of this.panels)i.update&&i.update(n)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:re.scrollMargins.from(n=>({top:n.top.scrollMargin(),bottom:n.bottom.scrollMargin()}))}),bn=class{constructor(e,t,i){this.view=e,this.top=t,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let t of this.panels)t.destroy&&e.indexOf(t)<0&&t.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let e=this.dom.firstChild;for(let t of this.panels)if(t.dom.parentNode==this.dom){for(;e!=t.dom;)e=nd(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=nd(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}};function nd(n){let e=n.nextSibling;return n.remove(),e}var ky=C.baseTheme({".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"}}),Zt=S.define({enables:[sd,ky]});function j(){var n=arguments[0];typeof n=="string"&&(n=document.createElement(n));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)){var s=t[i];typeof s=="string"?n.setAttribute(i,s):s!=null&&(n[i]=s)}e++}for(;e<arguments.length;e++)rd(n,arguments[e]);return n}function rd(n,e){if(typeof e=="string")n.appendChild(document.createTextNode(e));else if(e!=null)if(e.nodeType!=null)n.appendChild(e);else if(Array.isArray(e))for(var t=0;t<e.length;t++)rd(n,e[t]);else throw new RangeError("Unsupported child node: "+e)}var od=typeof String.prototype.normalize=="function"?n=>n.normalize("NFKD"):n=>n,ii=class{constructor(e,t,i=0,s=e.length,r){this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(i,s),this.bufferStart=i,this.normalize=r?o=>r(od(o)):od,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return ne(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=mi(e),i=this.bufferStart+this.bufferPos;this.bufferPos+=Se(e);let s=this.normalize(t);for(let r=0,o=i;;r++){let l=s.charCodeAt(r),a=this.match(l,o);if(a)return this.value=a,this;if(r==s.length-1)break;o==i&&r<t.length&&t.charCodeAt(r)==l&&o++}}}match(e,t){let i=null;for(let s=0;s<this.matches.length;s+=2){let r=this.matches[s],o=!1;this.query.charCodeAt(r)==e&&(r==this.query.length-1?i={from:this.matches[s+1],to:t+1}:(this.matches[s]++,o=!0)),o||(this.matches.splice(s,2),s-=2)}return this.query.charCodeAt(0)==e&&(this.query.length==1?i={from:t,to:t+1}:this.matches.push(1,t)),i}};typeof Symbol<"u"&&(ii.prototype[Symbol.iterator]=function(){return this});var cd={from:-1,to:-1,match:/.*/.exec("")},Zo="gm"+(/x/.unicode==null?"":"u"),el=class{constructor(e,t,i,s=0,r=e.length){if(this.to=r,this.curLine="",this.done=!1,this.value=cd,/\\[sWDnr]|\n|\r|\[\^/.test(t))return new tl(e,t,i,s,r);this.re=new RegExp(t,Zo+(i?.ignoreCase?"i":"")),this.iter=e.iter();let o=e.lineAt(s);this.curLineStart=o.from,this.matchPos=s,this.getLine(this.curLineStart)}getLine(e){this.iter.next(e),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let i=this.curLineStart+t.index,s=i+t[0].length;if(this.matchPos=s+(i==s?1:0),i==this.curLine.length&&this.nextLine(),i<s||i>this.value.to)return this.value={from:i,to:s,match:t},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),e=0;else return this.done=!0,this}}},Yo=new WeakMap,ti=class{constructor(e,t){this.from=e,this.text=t}get to(){return this.from+this.text.length}static get(e,t,i){let s=Yo.get(e);if(!s||s.from>=i||s.to<=t){let l=new ti(t,e.sliceString(t,i));return Yo.set(e,l),l}if(s.from==t&&s.to==i)return s;let{text:r,from:o}=s;return o>t&&(r=e.sliceString(t,o)+r,o=t),s.to<i&&(r+=e.sliceString(s.to,i)),Yo.set(e,new ti(o,r)),new ti(t,r.slice(t-o,i-o))}},tl=class{constructor(e,t,i,s,r){this.text=e,this.to=r,this.done=!1,this.value=cd,this.matchPos=s,this.re=new RegExp(t,Zo+(i?.ignoreCase?"i":"")),this.flat=ti.get(e,s,this.chunkEnd(s+5e3))}chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t&&this.flat.to<this.to&&t.index+t[0].length>this.flat.text.length-10&&(t=null),t){let i=this.flat.from+t.index,s=i+t[0].length;return this.value={from:i,to:s,match:t},this.matchPos=s+(i==s?1:0),this}else{if(this.flat.to==this.to)return this.done=!0,this;this.flat=ti.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}};typeof Symbol<"u"&&(el.prototype[Symbol.iterator]=tl.prototype[Symbol.iterator]=function(){return this});function Cy(n){try{return new RegExp(n,Zo),!0}catch{return!1}}function Xo(n){let e=j("input",{class:"cm-textfield",name:"line"}),t=j("form",{class:"cm-gotoLine",onkeydown:s=>{s.keyCode==27?(s.preventDefault(),n.dispatch({effects:$s.of(!1)}),n.focus()):s.keyCode==13&&(s.preventDefault(),i())},onsubmit:s=>{s.preventDefault(),i()}},j("label",n.state.phrase("Go to line"),": ",e)," ",j("button",{class:"cm-button",type:"submit"},n.state.phrase("go")));function i(){let s=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(e.value);if(!s)return;let{state:r}=n,o=r.doc.lineAt(r.selection.main.head),[,l,a,h,c]=s,u=h?+h.slice(1):0,f=a?+a:o.number;if(a&&c){let p=f/100;l&&(p=p*(l=="-"?-1:1)+o.number/r.doc.lines),f=Math.round(r.doc.lines*p)}else a&&l&&(f=f*(l=="-"?-1:1)+o.number);let d=r.doc.line(Math.max(1,Math.min(r.doc.lines,f)));n.dispatch({effects:$s.of(!1),selection:m.cursor(d.from+Math.max(0,Math.min(u,d.length))),scrollIntoView:!0}),n.focus()}return{dom:t,pos:-10}}var $s=L.define(),ld=z.define({create(){return!0},update(n,e){for(let t of e.effects)t.is($s)&&(n=t.value);return n},provide:n=>Zt.from(n,e=>e?Xo:null)}),Ay=n=>{let e=ei(n,Xo);if(!e){let t=[$s.of(!0)];n.state.field(ld,!1)==null&&t.push(L.appendConfig.of([ld,Ey])),n.dispatch({effects:t}),e=ei(n,Xo)}return e&&e.dom.querySelector("input").focus(),!0},Ey=C.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),My={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!0},ud=S.define({combine(n){return pe(n,My,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})}});function fd(n){let e=[Oy,Py];return n&&e.push(ud.of(n)),e}var Ty=E.mark({class:"cm-selectionMatch"}),Ly=E.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function ad(n,e,t,i){return(t==0||n(e.sliceDoc(t-1,t))!=oe.Word)&&(i==e.doc.length||n(e.sliceDoc(i,i+1))!=oe.Word)}function Ry(n,e,t,i){return n(e.sliceDoc(t,t+1))==oe.Word&&n(e.sliceDoc(i-1,i))==oe.Word}var Py=q.fromClass(class{constructor(n){this.decorations=this.getDeco(n)}update(n){(n.selectionSet||n.docChanged||n.viewportChanged)&&(this.decorations=this.getDeco(n.view))}getDeco(n){let e=n.state.facet(ud),{state:t}=n,i=t.selection;if(i.ranges.length>1)return E.none;let s=i.main,r,o=null;if(s.empty){if(!e.highlightWordAroundCursor)return E.none;let a=t.wordAt(s.head);if(!a)return E.none;o=t.charCategorizer(s.head),r=t.sliceDoc(a.from,a.to)}else{let a=s.to-s.from;if(a<e.minSelectionLength||a>200)return E.none;if(e.wholeWords){if(r=t.sliceDoc(s.from,s.to),o=t.charCategorizer(s.head),!(ad(o,t,s.from,s.to)&&Ry(o,t,s.from,s.to)))return E.none}else if(r=t.sliceDoc(s.from,s.to).trim(),!r)return E.none}let l=[];for(let a of n.visibleRanges){let h=new ii(t.doc,r,a.from,a.to);for(;!h.next().done;){let{from:c,to:u}=h.value;if((!o||ad(o,t,c,u))&&(s.empty&&c<=s.from&&u>=s.to?l.push(Ly.range(c,u)):(c>=s.to||u<=s.from)&&l.push(Ty.range(c,u)),l.length>e.maxMatches))return E.none}}return E.set(l)}},{decorations:n=>n.decorations}),Oy=C.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),Dy=({state:n,dispatch:e})=>{let{selection:t}=n,i=m.create(t.ranges.map(s=>n.wordAt(s.head)||m.cursor(s.head)),t.mainIndex);return i.eq(t)?!1:(e(n.update({selection:i})),!0)};function By(n,e){let{main:t,ranges:i}=n.selection,s=n.wordAt(t.head),r=s&&s.from==t.from&&s.to==t.to;for(let o=!1,l=new ii(n.doc,e,i[i.length-1].to);;)if(l.next(),l.done){if(o)return null;l=new ii(n.doc,e,0,Math.max(0,i[i.length-1].from-1)),o=!0}else{if(o&&i.some(a=>a.from==l.value.from))continue;if(r){let a=n.wordAt(l.value.from);if(!a||a.from!=l.value.from||a.to!=l.value.to)continue}return l.value}}var Iy=({state:n,dispatch:e})=>{let{ranges:t}=n.selection;if(t.some(r=>r.from===r.to))return Dy({state:n,dispatch:e});let i=n.sliceDoc(t[0].from,t[0].to);if(n.selection.ranges.some(r=>n.sliceDoc(r.from,r.to)!=i))return!1;let s=By(n,i);return s?(e(n.update({selection:n.selection.addRange(m.range(s.from,s.to),!1),effects:C.scrollIntoView(s.to)})),!0):!1},il=S.define({combine(n){var e;return{top:n.reduce((t,i)=>t??i.top,void 0)||!1,caseSensitive:n.reduce((t,i)=>t??(i.caseSensitive||i.matchCase),void 0)||!1,createPanel:((e=n.find(t=>t.createPanel))===null||e===void 0?void 0:e.createPanel)||(t=>new yd(t))}}});var nl=class{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||Cy(this.search)),this.unquoted=this.search.replace(/\\([nrt\\])/g,(t,i)=>i=="n"?`
|
39
39
|
`:i=="r"?"\r":i=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp}create(){return this.regexp?new pd(this):new dd(this)}getCursor(e,t=0,i=e.length){return this.regexp?Li(this,e,t,i):Ti(this,e,t,i)}},sl=class{constructor(e){this.spec=e}};function Ti(n,e,t,i){return new ii(e,n.unquoted,t,i,n.caseSensitive?void 0:s=>s.toLowerCase())}var dd=class extends sl{constructor(e){super(e)}nextMatch(e,t,i){let s=Ti(this.spec,e,i,e.length).nextOverlapping();return s.done&&(s=Ti(this.spec,e,0,t).nextOverlapping()),s.done?null:s.value}prevMatchInRange(e,t,i){for(let s=i;;){let r=Math.max(t,s-1e4-this.spec.unquoted.length),o=Ti(this.spec,e,r,s),l=null;for(;!o.nextOverlapping().done;)l=o.value;if(l)return l;if(r==t)return null;s-=1e4}}prevMatch(e,t,i){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,i,e.length)}getReplacement(e){return this.spec.replace}matchAll(e,t){let i=Ti(this.spec,e,0,e.length),s=[];for(;!i.next().done;){if(s.length>=t)return null;s.push(i.value)}return s}highlight(e,t,i,s){let r=Ti(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,e.length));for(;!r.next().done;)s(r.value.from,r.value.to)}};function Li(n,e,t,i){return new el(e,n.search,n.caseSensitive?void 0:{ignoreCase:!0},t,i)}var pd=class extends sl{nextMatch(e,t,i){let s=Li(this.spec,e,i,e.length).next();return s.done&&(s=Li(this.spec,e,0,t).next()),s.done?null:s.value}prevMatchInRange(e,t,i){for(let s=1;;s++){let r=Math.max(t,i-s*1e4),o=Li(this.spec,e,r,i),l=null;for(;!o.next().done;)l=o.value;if(l&&(r==t||l.from>r+10))return l;if(r==t)return null}}prevMatch(e,t,i){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,i,e.length)}getReplacement(e){return this.spec.replace.replace(/\$([$&\d+])/g,(t,i)=>i=="$"?"$":i=="&"?e.match[0]:i!="0"&&+i<e.match.length?e.match[i]:t)}matchAll(e,t){let i=Li(this.spec,e,0,e.length),s=[];for(;!i.next().done;){if(s.length>=t)return null;s.push(i.value)}return s}highlight(e,t,i,s){let r=Li(this.spec,e,Math.max(0,t-250),Math.min(i+250,e.length));for(;!r.next().done;)s(r.value.from,r.value.to)}},yn=L.define(),rl=L.define(),Nt=z.define({create(n){return new zs(Qo(n).create(),null)},update(n,e){for(let t of e.effects)t.is(yn)?n=new zs(t.value.create(),n.panel):t.is(rl)&&(n=new zs(n.query,t.value?ol:null));return n},provide:n=>Zt.from(n,e=>e.panel)});var zs=class{constructor(e,t){this.query=e,this.panel=t}},Ny=E.mark({class:"cm-searchMatch"}),Fy=E.mark({class:"cm-searchMatch cm-searchMatch-selected"}),Vy=q.fromClass(class{constructor(n){this.view=n,this.decorations=this.highlight(n.state.field(Nt))}update(n){let e=n.state.field(Nt);(e!=n.startState.field(Nt)||n.docChanged||n.selectionSet)&&(this.decorations=this.highlight(e))}highlight({query:n,panel:e}){if(!e||!n.spec.valid)return E.none;let{view:t}=this,i=new Re;for(let s=0,r=t.visibleRanges,o=r.length;s<o;s++){let{from:l,to:a}=r[s];for(;s<o-1&&a>r[s+1].from-2*250;)a=r[++s].to;n.highlight(t.state.doc,l,a,(h,c)=>{let u=t.state.selection.ranges.some(f=>f.from==h&&f.to==c);i.add(h,c,u?Fy:Ny)})}return i.finish()}},{decorations:n=>n.decorations});function vn(n){return e=>{let t=e.state.field(Nt,!1);return t&&t.query.spec.valid?n(e,t):md(e)}}var js=vn((n,{query:e})=>{let{from:t,to:i}=n.state.selection.main,s=e.nextMatch(n.state.doc,t,i);return!s||s.from==t&&s.to==i?!1:(n.dispatch({selection:{anchor:s.from,head:s.to},scrollIntoView:!0,effects:ll(n,s),userEvent:"select.search"}),!0)}),Us=vn((n,{query:e})=>{let{state:t}=n,{from:i,to:s}=t.selection.main,r=e.prevMatch(t.doc,i,s);return r?(n.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0,effects:ll(n,r),userEvent:"select.search"}),!0):!1}),Hy=vn((n,{query:e})=>{let t=e.matchAll(n.state.doc,1e3);return!t||!t.length?!1:(n.dispatch({selection:m.create(t.map(i=>m.range(i.from,i.to))),userEvent:"select.search.matches"}),!0)}),qy=({state:n,dispatch:e})=>{let t=n.selection;if(t.ranges.length>1||t.main.empty)return!1;let{from:i,to:s}=t.main,r=[],o=0;for(let l=new ii(n.doc,n.sliceDoc(i,s));!l.next().done;){if(r.length>1e3)return!1;l.value.from==i&&(o=r.length),r.push(m.range(l.value.from,l.value.to))}return e(n.update({selection:m.create(r,o),userEvent:"select.search.matches"})),!0},hd=vn((n,{query:e})=>{let{state:t}=n,{from:i,to:s}=t.selection.main;if(t.readOnly)return!1;let r=e.nextMatch(t.doc,i,i);if(!r)return!1;let o=[],l,a;if(r.from==i&&r.to==s&&(a=t.toText(e.getReplacement(r)),o.push({from:r.from,to:r.to,insert:a}),r=e.nextMatch(t.doc,r.from,r.to)),r){let h=o.length==0||o[0].from>=r.to?0:r.to-r.from-a.length;l={anchor:r.from-h,head:r.to-h}}return n.dispatch({changes:o,selection:l,scrollIntoView:!!l,effects:r?ll(n,r):void 0,userEvent:"input.replace"}),!0}),Wy=vn((n,{query:e})=>{if(n.state.readOnly)return!1;let t=e.matchAll(n.state.doc,1e9).map(i=>{let{from:s,to:r}=i;return{from:s,to:r,insert:e.getReplacement(i)}});return t.length?(n.dispatch({changes:t,userEvent:"input.replace.all"}),!0):!1});function ol(n){return n.state.facet(il).createPanel(n)}function Qo(n,e){var t;let i=n.selection.main,s=i.empty||i.to>i.from+100?"":n.sliceDoc(i.from,i.to),r=(t=e?.caseSensitive)!==null&&t!==void 0?t:n.facet(il).caseSensitive;return e&&!s?e:new nl({search:s.replace(/\n/g,"\\n"),caseSensitive:r})}var md=n=>{let e=n.state.field(Nt,!1);if(e&&e.panel){let t=ei(n,ol);if(!t)return!1;let i=t.dom.querySelector("[name=search]");if(i!=n.root.activeElement){let s=Qo(n.state,e.query.spec);s.valid&&n.dispatch({effects:yn.of(s)}),i.focus(),i.select()}}else n.dispatch({effects:[rl.of(!0),e?yn.of(Qo(n.state,e.query.spec)):L.appendConfig.of($y)]});return!0},gd=n=>{let e=n.state.field(Nt,!1);if(!e||!e.panel)return!1;let t=ei(n,ol);return t&&t.dom.contains(n.root.activeElement)&&n.focus(),n.dispatch({effects:rl.of(!1)}),!0},bd=[{key:"Mod-f",run:md,scope:"editor search-panel"},{key:"F3",run:js,shift:Us,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:js,shift:Us,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:gd,scope:"editor search-panel"},{key:"Mod-Shift-l",run:qy},{key:"Alt-g",run:Ay},{key:"Mod-d",run:Iy,preventDefault:!0}],yd=class{constructor(e){this.view=e;let t=this.query=e.state.field(Nt).query.spec;this.commit=this.commit.bind(this),this.searchField=j("input",{value:t.search,placeholder:Ne(e,"Find"),"aria-label":Ne(e,"Find"),class:"cm-textfield",name:"search",onchange:this.commit,onkeyup:this.commit}),this.replaceField=j("input",{value:t.replace,placeholder:Ne(e,"Replace"),"aria-label":Ne(e,"Replace"),class:"cm-textfield",name:"replace",onchange:this.commit,onkeyup:this.commit}),this.caseField=j("input",{type:"checkbox",name:"case",checked:t.caseSensitive,onchange:this.commit}),this.reField=j("input",{type:"checkbox",name:"re",checked:t.regexp,onchange:this.commit});function i(s,r,o){return j("button",{class:"cm-button",name:s,onclick:r,type:"button"},o)}this.dom=j("div",{onkeydown:s=>this.keydown(s),class:"cm-search"},[this.searchField,i("next",()=>js(e),[Ne(e,"next")]),i("prev",()=>Us(e),[Ne(e,"previous")]),i("select",()=>Hy(e),[Ne(e,"all")]),j("label",null,[this.caseField,Ne(e,"match case")]),j("label",null,[this.reField,Ne(e,"regexp")]),...e.state.readOnly?[]:[j("br"),this.replaceField,i("replace",()=>hd(e),[Ne(e,"replace")]),i("replaceAll",()=>Wy(e),[Ne(e,"replace all")]),j("button",{name:"close",onclick:()=>gd(e),"aria-label":Ne(e,"close"),type:"button"},["\xD7"])]])}commit(){let e=new nl({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:yn.of(e)}))}keydown(e){au(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?Us:js)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),hd(this.view))}update(e){for(let t of e.transactions)for(let i of t.effects)i.is(yn)&&!i.value.eq(this.query)&&this.setQuery(i.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(il).top}};function Ne(n,e){return n.state.phrase(e)}var qs=30,Ws=/[\s\.,:;?!]/;function ll(n,{from:e,to:t}){let i=n.state.doc.lineAt(e).from,s=n.state.doc.lineAt(t).to,r=Math.max(i,e-qs),o=Math.min(s,t+qs),l=n.state.sliceDoc(r,o);if(r!=i){for(let a=0;a<qs;a++)if(!Ws.test(l[a+1])&&Ws.test(l[a])){l=l.slice(a);break}}if(o!=s){for(let a=l.length-1;a>l.length-qs;a--)if(!Ws.test(l[a-1])&&Ws.test(l[a])){l=l.slice(0,a);break}}return C.announce.of(`${n.state.phrase("current match")}. ${l} ${n.state.phrase("on line")} ${n.state.doc.lineAt(e).number}`)}var zy=C.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"}}),$y=[Nt,ze.lowest(Vy),zy];var jy=typeof navigator<"u"&&!/Edge\/(\d+)/.exec(navigator.userAgent)&&/Apple Computer/.test(navigator.vendor)&&(/Mobile\/\w+/.test(navigator.userAgent)||navigator.maxTouchPoints>2),al="-10000px",cl=class{constructor(e,t,i){this.facet=t,this.createTooltipView=i,this.input=e.state.facet(t),this.tooltips=this.input.filter(s=>s),this.tooltipViews=this.tooltips.map(i)}update(e){let t=e.state.facet(this.facet),i=t.filter(r=>r);if(t===this.input){for(let r of this.tooltipViews)r.update&&r.update(e);return!1}let s=[];for(let r=0;r<i.length;r++){let o=i[r],l=-1;if(!!o){for(let a=0;a<this.tooltips.length;a++){let h=this.tooltips[a];h&&h.create==o.create&&(l=a)}if(l<0)s[r]=this.createTooltipView(o);else{let a=s[r]=this.tooltipViews[l];a.update&&a.update(e)}}}for(let r of this.tooltipViews)s.indexOf(r)<0&&r.dom.remove();return this.input=t,this.tooltips=i,this.tooltipViews=s,!0}};function Uy(){return{top:0,left:0,bottom:innerHeight,right:innerWidth}}var hl=S.define({combine:n=>{var e,t,i;return{position:jy?"absolute":((e=n.find(s=>s.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((t=n.find(s=>s.parent))===null||t===void 0?void 0:t.parent)||null,tooltipSpace:((i=n.find(s=>s.tooltipSpace))===null||i===void 0?void 0:i.tooltipSpace)||Uy}}}),vd=q.fromClass(class{constructor(n){var e;this.view=n,this.inView=!0,this.lastTransaction=0,this.measureTimeout=-1;let t=n.state.facet(hl);this.position=t.position,this.parent=t.parent,this.classes=n.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.manager=new cl(n,wn,i=>this.createTooltip(i)),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(i=>{Date.now()>this.lastTransaction-50&&i.length>0&&i[i.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),(e=n.dom.ownerDocument.defaultView)===null||e===void 0||e.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let n of this.manager.tooltipViews)this.intersectionObserver.observe(n.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(n){n.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(n);e&&this.observeIntersection();let t=e||n.geometryChanged,i=n.state.facet(hl);if(i.position!=this.position){this.position=i.position;for(let s of this.manager.tooltipViews)s.dom.style.position=this.position;t=!0}if(i.parent!=this.parent){this.parent&&this.container.remove(),this.parent=i.parent,this.createContainer();for(let s of this.manager.tooltipViews)this.container.appendChild(s.dom);t=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);t&&this.maybeMeasure()}createTooltip(n){let e=n.create(this.view);if(e.dom.classList.add("cm-tooltip"),n.arrow&&!e.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let t=document.createElement("div");t.className="cm-tooltip-arrow",e.dom.appendChild(t)}return e.dom.style.position=this.position,e.dom.style.top=al,this.container.appendChild(e.dom),e.mount&&e.mount(this.view),e}destroy(){var n,e;(n=this.view.dom.ownerDocument.defaultView)===null||n===void 0||n.removeEventListener("resize",this.measureSoon);for(let{dom:t}of this.manager.tooltipViews)t.remove();(e=this.intersectionObserver)===null||e===void 0||e.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let n=this.view.dom.getBoundingClientRect();return{editor:n,parent:this.parent?this.container.getBoundingClientRect():n,pos:this.manager.tooltips.map((e,t)=>{let i=this.manager.tooltipViews[t];return i.getCoords?i.getCoords(e.pos):this.view.coordsAtPos(e.pos)}),size:this.manager.tooltipViews.map(({dom:e})=>e.getBoundingClientRect()),space:this.view.state.facet(hl).tooltipSpace(this.view)}}writeMeasure(n){let{editor:e,space:t}=n,i=[];for(let s=0;s<this.manager.tooltips.length;s++){let r=this.manager.tooltips[s],o=this.manager.tooltipViews[s],{dom:l}=o,a=n.pos[s],h=n.size[s];if(!a||a.bottom<=Math.max(e.top,t.top)||a.top>=Math.min(e.bottom,t.bottom)||a.right<Math.max(e.left,t.left)-.1||a.left>Math.min(e.right,t.right)+.1){l.style.top=al;continue}let c=r.arrow?o.dom.querySelector(".cm-tooltip-arrow"):null,u=c?7:0,f=h.right-h.left,d=h.bottom-h.top,p=o.offset||_y,g=this.view.textDirection==I.LTR,y=h.width>t.right-t.left?g?t.left:t.right-h.width:g?Math.min(a.left-(c?14:0)+p.x,t.right-f):Math.max(t.left,a.left-f+(c?14:0)-p.x),b=!!r.above;!r.strictSide&&(b?a.top-(h.bottom-h.top)-p.y<t.top:a.bottom+(h.bottom-h.top)+p.y>t.bottom)&&b==t.bottom-a.bottom>a.top-t.top&&(b=!b);let A=b?a.top-d-u-p.y:a.bottom+u+p.y,T=y+f;if(o.overlap!==!0)for(let x of i)x.left<T&&x.right>y&&x.top<A+d&&x.bottom>A&&(A=b?x.top-d-2-u:x.bottom+u+2);this.position=="absolute"?(l.style.top=A-n.parent.top+"px",l.style.left=y-n.parent.left+"px"):(l.style.top=A+"px",l.style.left=y+"px"),c&&(c.style.left=`${a.left+(g?p.x:-p.x)-(y+14-7)}px`),o.overlap!==!0&&i.push({left:y,top:A,right:T,bottom:A+d}),l.classList.toggle("cm-tooltip-above",b),l.classList.toggle("cm-tooltip-below",!b),o.positioned&&o.positioned()}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let n of this.manager.tooltipViews)n.dom.style.top=al}},{eventHandlers:{scroll(){this.maybeMeasure()}}}),Ky=C.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:`${7}px`,width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:`${7}px solid transparent`,borderRight:`${7}px solid transparent`},".cm-tooltip-above &":{bottom:`-${7}px`,"&:before":{borderTop:`${7}px solid #bbb`},"&:after":{borderTop:`${7}px solid #f5f5f5`,bottom:"1px"}},".cm-tooltip-below &":{top:`-${7}px`,"&:before":{borderBottom:`${7}px solid #bbb`},"&:after":{borderBottom:`${7}px solid #f5f5f5`,top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),_y={x:0,y:0},wn=S.define({enables:[vd,Ky]}),Ks=S.define(),_s=class{constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new cl(e,Ks,t=>this.createHostedView(t))}static create(e){return new _s(e)}createHostedView(e){let 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}mount(e){for(let t of this.manager.tooltipViews)t.mount&&t.mount(e);this.mounted=!0}positioned(){for(let e of this.manager.tooltipViews)e.positioned&&e.positioned()}update(e){this.manager.update(e)}},Gy=wn.compute([Ks],n=>{let e=n.facet(Ks).filter(t=>t);return e.length===0?null:{pos:Math.min(...e.map(t=>t.pos)),end:Math.max(...e.filter(t=>t.end!=null).map(t=>t.end)),create:_s.create,above:e[0].above,arrow:e.some(t=>t.arrow)}}),wd=class{constructor(e,t,i,s,r){this.view=e,this.source=t,this.field=i,this.setHover=s,this.hoverTime=r,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active)return;let e=Date.now()-this.lastMove.time;e<this.hoverTime?this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime-e):this.startHover()}startHover(){var e;clearTimeout(this.restartTimeout);let{lastMove:t}=this,i=this.view.contentDOM.contains(t.target)?this.view.posAtCoords(t):null;if(i==null)return;let s=this.view.coordsAtPos(i);if(s==null||t.y<s.top||t.y>s.bottom||t.x<s.left-this.view.defaultCharacterWidth||t.x>s.right+this.view.defaultCharacterWidth)return;let r=this.view.bidiSpans(this.view.state.doc.lineAt(i)).find(a=>a.from<=i&&a.to>=i),o=r&&r.dir==I.RTL?-1:1,l=this.source(this.view,i,t.x<s.left?-o:o);if(!((e=l)===null||e===void 0)&&e.then){let a=this.pending={pos:i};l.then(h=>{this.pending==a&&(this.pending=null,h&&this.view.dispatch({effects:this.setHover.of(h)}))},h=>ge(this.view.state,h,"hover tooltip"))}else l&&this.view.dispatch({effects:this.setHover.of(l)})}mousemove(e){var t;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let i=this.active;if(i&&!Jy(this.lastMove.target)||this.pending){let{pos:s}=i||this.pending,r=(t=i?.end)!==null&&t!==void 0?t:s;(s==r?this.view.posAtCoords(this.lastMove)!=s:!Yy(this.view,s,r,e.clientX,e.clientY,6))&&(this.view.dispatch({effects:this.setHover.of(null)}),this.pending=null)}}mouseleave(){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1,this.active&&this.view.dispatch({effects:this.setHover.of(null)})}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}};function Jy(n){for(let e=n;e;e=e.parentNode)if(e.nodeType==1&&e.classList.contains("cm-tooltip"))return!0;return!1}function Yy(n,e,t,i,s,r){let o=document.createRange(),l=n.domAtPos(e),a=n.domAtPos(t);o.setEnd(a.node,a.offset),o.setStart(l.node,l.offset);let h=o.getClientRects();o.detach();for(let c=0;c<h.length;c++){let u=h[c];if(Math.max(u.top-s,s-u.bottom,u.left-i,i-u.right)<=r)return!0}return!1}function Sd(n,e={}){let t=L.define(),i=z.define({create(){return null},update(s,r){if(s&&e.hideOnChange&&(r.docChanged||r.selection))return null;for(let o of r.effects){if(o.is(t))return o.value;if(o.is(Xy))return null}if(s&&r.docChanged){let o=r.changes.mapPos(s.pos,-1,Z.TrackDel);if(o==null)return null;let l=Object.assign(Object.create(null),s);return l.pos=o,s.end!=null&&(l.end=r.changes.mapPos(s.end)),l}return s},provide:s=>Ks.from(s)});return[i,q.define(s=>new wd(s,n,i,t,e.hoverTime||300)),Gy]}function xd(n,e){let t=n.plugin(vd);if(!t)return null;let i=t.manager.tooltips.indexOf(e);return i<0?null:t.manager.tooltipViews[i]}var Xy=L.define();var Ld=class{constructor(e,t,i){this.state=e,this.pos=t,this.explicit=i,this.abortListeners=[]}tokenBefore(e){let t=te(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),i=Math.max(t.from,this.pos-250),s=t.text.slice(i-t.from,this.pos-t.from),r=s.search(Rd(e,!1));return r<0?null:{from:i+r,to:this.pos,text:s.slice(r)}}get aborted(){return this.abortListeners==null}addEventListener(e,t){e=="abort"&&this.abortListeners&&this.abortListeners.push(t)}};function kd(n){let e=Object.keys(n).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function Qy(n){let e=Object.create(null),t=Object.create(null);for(let{label:s}of n){e[s[0]]=!0;for(let r=1;r<s.length;r++)t[s[r]]=!0}let i=kd(e)+kd(t)+"*$";return[new RegExp("^"+i),new RegExp(i)]}function Zy(n){let e=n.map(s=>typeof s=="string"?{label:s}:s),[t,i]=e.every(s=>/^\w+$/.test(s.label))?[/\w*$/,/\w+$/]:Qy(e);return s=>{let r=s.matchBefore(i);return r||s.explicit?{from:r?r.from:s.pos,options:e,span:t}:null}}var ul=class{constructor(e,t,i){this.completion=e,this.source=t,this.match=i}};function ni(n){return n.selection.main.head}function Rd(n,e){var t;let{source:i}=n,s=e&&i[0]!="^",r=i[i.length-1]!="$";return!s&&!r?n:new RegExp(`${s?"^":""}(?:${i})${r?"$":""}`,(t=n.flags)!==null&&t!==void 0?t:n.ignoreCase?"i":"")}var ev=$e.define();function Pd(n,e){let t=e.completion.apply||e.completion.label,i=e.source;typeof t=="string"?n.dispatch({changes:{from:i.from,to:i.to,insert:t},selection:{anchor:i.from+t.length},userEvent:"input.complete",annotations:ev.of(e.completion)}):t(n,e.completion,i.from,i.to)}var Cd=new WeakMap;function tv(n){if(!Array.isArray(n))return n;let e=Cd.get(n);return e||Cd.set(n,e=Zy(n)),e}var Od=class{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[];for(let t=0;t<e.length;){let i=ne(e,t),s=Se(i);this.chars.push(i);let r=e.slice(t,t+s),o=r.toUpperCase();this.folded.push(ne(o==r?r.toLowerCase():o,0)),t+=s}this.astral=e.length!=this.chars.length}match(e){if(this.pattern.length==0)return[0];if(e.length<this.pattern.length)return null;let{chars:t,folded:i,any:s,precise:r,byWord:o}=this;if(t.length==1){let A=ne(e,0);return A==t[0]?[0,0,Se(A)]:A==i[0]?[-200,0,Se(A)]:null}let l=e.indexOf(this.pattern);if(l==0)return[0,0,this.pattern.length];let a=t.length,h=0;if(l<0){for(let A=0,T=Math.min(e.length,200);A<T&&h<a;){let x=ne(e,A);(x==t[h]||x==i[h])&&(s[h++]=A),A+=Se(x)}if(h<a)return null}let c=0,u=0,f=!1,d=0,p=-1,g=-1,y=/[a-z]/.test(e),b=!0;for(let A=0,T=Math.min(e.length,200),x=0;A<T&&u<a;){let k=ne(e,A);l<0&&(c<a&&k==t[c]&&(r[c++]=A),d<a&&(k==t[d]||k==i[d]?(d==0&&(p=A),g=A+1,d++):d=0));let M,P=k<255?k>=48&&k<=57||k>=97&&k<=122?2:k>=65&&k<=90?1:0:(M=mi(k))!=M.toLowerCase()?1:M!=M.toUpperCase()?2:0;(!A||P==1&&y||x==0&&P!=0)&&(t[u]==k||i[u]==k&&(f=!0)?o[u++]=A:o.length&&(b=!1)),x=P,A+=Se(k)}return u==a&&o[0]==0&&b?this.result(-100+(f?-200:0),o,e):d==a&&p==0?[-200-e.length,0,g]:l>-1?[-700-e.length,l,l+this.pattern.length]:d==a?[-200+-700-e.length,p,g]:u==a?this.result(-100+(f?-200:0)+-700+(b?0:-1100),o,e):t.length==2?null:this.result((s[0]?-700:0)+-200+-1100,s,e)}result(e,t,i){let s=[e-i.length],r=1;for(let o of t){let l=o+(this.astral?Se(ne(i,o)):1);r>1&&s[r-1]==o?s[r-1]=l:(s[r++]=o,s[r++]=l)}return s}},si=S.define({combine(n){return pe(n,{activateOnTyping:!0,override:null,maxRenderedOptions:100,defaultKeymap:!0,optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[]},{defaultKeymap:(e,t)=>e&&t,icons:(e,t)=>e&&t,optionClass:(e,t)=>i=>iv(e(i),t(i)),addToOptions:(e,t)=>e.concat(t)})}});function iv(n,e){return n?e?n+" "+e:n:e}function nv(n){let e=n.addToOptions.slice();return n.icons&&e.push({render(t){let i=document.createElement("div");return i.classList.add("cm-completionIcon"),t.type&&i.classList.add(...t.type.split(/\s+/g).map(s=>"cm-completionIcon-"+s)),i.setAttribute("aria-hidden","true"),i},position:20}),e.push({render(t,i,s){let r=document.createElement("span");r.className="cm-completionLabel";let{label:o}=t,l=0;for(let a=1;a<s.length;){let h=s[a++],c=s[a++];h>l&&r.appendChild(document.createTextNode(o.slice(l,h)));let u=r.appendChild(document.createElement("span"));u.appendChild(document.createTextNode(o.slice(h,c))),u.className="cm-completionMatchedText",l=c}return l<o.length&&r.appendChild(document.createTextNode(o.slice(l))),r},position:50},{render(t){if(!t.detail)return null;let i=document.createElement("span");return i.className="cm-completionDetail",i.textContent=t.detail,i},position:80}),e.sort((t,i)=>t.position-i.position).map(t=>t.render)}function sv(n,e){let t=document.createElement("div");t.className="cm-tooltip cm-completionInfo";let{info:i}=n.completion;if(typeof i=="string")t.textContent=i;else{let s=i(n.completion);s.then?s.then(r=>t.appendChild(r),r=>ge(e.state,r,"completion info")):t.appendChild(s)}return t}function Ad(n,e,t){if(n<=t)return{from:0,to:n};if(e<=n>>1){let s=Math.floor(e/t);return{from:s*t,to:(s+1)*t}}let i=Math.floor((n-e)/t);return{from:n-(i+1)*t,to:n-i*t}}var Dd=class{constructor(e,t){this.view=e,this.stateField=t,this.info=null,this.placeInfo={read:()=>this.measureInfo(),write:l=>this.positionInfo(l),key:this};let i=e.state.field(t),{options:s,selected:r}=i.open,o=e.state.facet(si);this.optionContent=nv(o),this.optionClass=o.optionClass,this.range=Ad(s.length,r,o.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.dom.addEventListener("mousedown",l=>{for(let a=l.target,h;a&&a!=this.dom;a=a.parentNode)if(a.nodeName=="LI"&&(h=/-(\d+)$/.exec(a.id))&&+h[1]<s.length){Pd(e,s[+h[1]]),l.preventDefault();return}}),this.list=this.dom.appendChild(this.createListBox(s,i.id,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfo)})}mount(){this.updateSel()}update(e){e.state.field(this.stateField)!=e.startState.field(this.stateField)&&this.updateSel()}positioned(){this.info&&this.view.requestMeasure(this.placeInfo)}updateSel(){let e=this.view.state.field(this.stateField),t=e.open;if((t.selected<this.range.from||t.selected>=this.range.to)&&(this.range=Ad(t.options.length,t.selected,this.view.state.facet(si).maxRenderedOptions),this.list.remove(),this.list=this.dom.appendChild(this.createListBox(t.options,e.id,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfo)})),this.updateSelectedOption(t.selected)){this.info&&(this.info.remove(),this.info=null);let i=t.options[t.selected];i.completion.info&&(this.info=this.dom.appendChild(sv(i,this.view)),this.view.requestMeasure(this.placeInfo))}}updateSelectedOption(e){let t=null;for(let i=this.list.firstChild,s=this.range.from;i;i=i.nextSibling,s++)s==e?i.hasAttribute("aria-selected")||(i.setAttribute("aria-selected","true"),t=i):i.hasAttribute("aria-selected")&&i.removeAttribute("aria-selected");return t&&ov(this.list,t),t}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let t=this.dom.getBoundingClientRect(),i=this.info.getBoundingClientRect(),s=e.getBoundingClientRect();if(s.top>Math.min(innerHeight,t.bottom)-10||s.bottom<Math.max(0,t.top)+10)return null;let r=Math.max(0,Math.min(s.top,innerHeight-i.height))-t.top,o=this.view.textDirection==I.RTL,l=t.left,a=innerWidth-t.right;return o&&l<Math.min(i.width,a)?o=!1:!o&&a<Math.min(i.width,l)&&(o=!0),{top:r,left:o}}positionInfo(e){this.info&&(this.info.style.top=(e?e.top:-1e6)+"px",e&&(this.info.classList.toggle("cm-completionInfo-left",e.left),this.info.classList.toggle("cm-completionInfo-right",!e.left)))}createListBox(e,t,i){let s=document.createElement("ul");s.id=t,s.setAttribute("role","listbox"),s.setAttribute("aria-expanded","true");for(let r=i.from;r<i.to;r++){let{completion:o,match:l}=e[r],a=s.appendChild(document.createElement("li"));a.id=t+"-"+r,a.setAttribute("role","option");let h=this.optionClass(o);h&&(a.className=h);for(let c of this.optionContent){let u=c(o,this.view.state,l);u&&a.appendChild(u)}}return i.from&&s.classList.add("cm-completionListIncompleteTop"),i.to<e.length&&s.classList.add("cm-completionListIncompleteBottom"),s}};function rv(n){return e=>new Dd(e,n)}function ov(n,e){let t=n.getBoundingClientRect(),i=e.getBoundingClientRect();i.top<t.top?n.scrollTop-=t.top-i.top:i.bottom>t.bottom&&(n.scrollTop+=i.bottom-t.bottom)}var lv=300;function Ed(n){return(n.boost||0)*100+(n.apply?10:0)+(n.info?5:0)+(n.type?1:0)}function av(n,e){let t=[],i=0;for(let o of n)if(o.hasResult())if(o.result.filter===!1)for(let l of o.result.options)t.push(new ul(l,o,[1e9-i++]));else{let l=new Od(e.sliceDoc(o.from,o.to)),a;for(let h of o.result.options)(a=l.match(h.label))&&(h.boost!=null&&(a[0]+=h.boost),t.push(new ul(h,o,a)))}let s=[],r=null;for(let o of t.sort(fv)){if(s.length==lv)break;!r||r.label!=o.completion.label||r.detail!=o.completion.detail||r.type!=o.completion.type||r.apply!=o.completion.apply?s.push(o):Ed(o.completion)>Ed(r)&&(s[s.length-1]=o),r=o.completion}return s}var Ri=class{constructor(e,t,i,s,r){this.options=e,this.attrs=t,this.tooltip=i,this.timestamp=s,this.selected=r}setSelected(e,t){return e==this.selected||e>=this.options.length?this:new Ri(this.options,Md(t,e),this.tooltip,this.timestamp,e)}static build(e,t,i,s,r){let o=av(e,t);if(!o.length)return null;let l=0;if(s&&s.selected){let a=s.options[s.selected].completion;for(let h=0;h<o.length;h++)if(o[h].completion==a){l=h;break}}return new Ri(o,Md(i,l),{pos:e.reduce((a,h)=>h.hasResult()?Math.min(a,h.from):a,1e8),create:rv(Ye),above:r.aboveCursor},s?s.timestamp:Date.now(),l)}map(e){return new Ri(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected)}},Sn=class{constructor(e,t,i){this.active=e,this.id=t,this.open=i}static start(){return new Sn(uv,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:t}=e,i=t.facet(si),r=(i.override||t.languageDataAt("autocomplete",ni(t)).map(tv)).map(l=>(this.active.find(h=>h.source==l)||new Ae(l,this.active.some(h=>h.state!=0)?1:0)).update(e,i));r.length==this.active.length&&r.every((l,a)=>l==this.active[a])&&(r=this.active);let o=e.selection||r.some(l=>l.hasResult()&&e.changes.touchesRange(l.from,l.to))||!hv(r,this.active)?Ri.build(r,t,this.id,this.open,i):this.open&&e.docChanged?this.open.map(e.changes):this.open;!o&&r.every(l=>l.state!=1)&&r.some(l=>l.hasResult())&&(r=r.map(l=>l.hasResult()?new Ae(l.source,0):l));for(let l of e.effects)l.is(Id)&&(o=o&&o.setSelected(l.value,this.id));return r==this.active&&o==this.open?this:new Sn(r,this.id,o)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:cv}};function hv(n,e){if(n==e)return!0;for(let t=0,i=0;;){for(;t<n.length&&!n[t].hasResult;)t++;for(;i<e.length&&!e[i].hasResult;)i++;let s=t==n.length,r=i==e.length;if(s||r)return s==r;if(n[t++].result!=e[i++].result)return!1}}var cv={"aria-autocomplete":"list"};function Md(n,e){return{"aria-autocomplete":"list","aria-haspopup":"listbox","aria-activedescendant":n+"-"+e,"aria-controls":n}}var uv=[];function fv(n,e){let t=e.match[0]-n.match[0];return t||n.completion.label.localeCompare(e.completion.label)}function fl(n){return n.isUserEvent("input.type")?"input":n.isUserEvent("delete.backward")?"delete":null}var Ae=class{constructor(e,t,i=-1){this.source=e,this.state=t,this.explicitPos=i}hasResult(){return!1}update(e,t){let i=fl(e),s=this;i?s=s.handleUserEvent(e,i,t):e.docChanged?s=s.handleChange(e):e.selection&&s.state!=0&&(s=new Ae(s.source,0));for(let r of e.effects)if(r.is(dl))s=new Ae(s.source,1,r.value?ni(e.state):-1);else if(r.is(pl))s=new Ae(s.source,0);else if(r.is(Bd))for(let o of r.value)o.source==s.source&&(s=o);return s}handleUserEvent(e,t,i){return t=="delete"||!i.activateOnTyping?this.map(e.changes):new Ae(this.source,1)}handleChange(e){return e.changes.touchesRange(ni(e.startState))?new Ae(this.source,0):this.map(e.changes)}map(e){return e.empty||this.explicitPos<0?this:new Ae(this.source,this.state,e.mapPos(this.explicitPos))}},xn=class extends Ae{constructor(e,t,i,s,r,o){super(e,2,t);this.result=i,this.from=s,this.to=r,this.span=o}hasResult(){return!0}handleUserEvent(e,t,i){let s=e.changes.mapPos(this.from),r=e.changes.mapPos(this.to,1),o=ni(e.state);if((this.explicitPos<0?o<=s:o<this.from)||o>r||t=="delete"&&ni(e.startState)==this.from)return new Ae(this.source,t=="input"&&i.activateOnTyping?1:0);let l=this.explicitPos<0?-1:e.changes.mapPos(this.explicitPos);return this.span&&(s==r||this.span.test(e.state.sliceDoc(s,r)))?new xn(this.source,l,this.result,s,r,this.span):new Ae(this.source,1,l)}handleChange(e){return e.changes.touchesRange(this.from,this.to)?new Ae(this.source,0):this.map(e.changes)}map(e){return e.empty?this:new xn(this.source,this.explicitPos<0?-1:e.mapPos(this.explicitPos),this.result,e.mapPos(this.from),e.mapPos(this.to,1),this.span)}},dl=L.define(),pl=L.define(),Bd=L.define({map(n,e){return n.map(t=>t.map(e))}}),Id=L.define(),Ye=z.define({create(){return Sn.start()},update(n,e){return n.update(e)},provide:n=>[wn.from(n,e=>e.tooltip),C.contentAttributes.from(n,e=>e.attrs)]}),Nd=75;function Gs(n,e="option"){return t=>{let i=t.state.field(Ye,!1);if(!i||!i.open||Date.now()-i.open.timestamp<Nd)return!1;let s=1,r;e=="page"&&(r=xd(t,i.open.tooltip))&&(s=Math.max(2,Math.floor(r.dom.offsetHeight/r.dom.querySelector("li").offsetHeight)-1));let o=i.open.selected+s*(n?1:-1),{length:l}=i.open.options;return o<0?o=e=="page"?0:l-1:o>=l&&(o=e=="page"?l-1:0),t.dispatch({effects:Id.of(o)}),!0}}var dv=n=>{let e=n.state.field(Ye,!1);return n.state.readOnly||!e||!e.open||Date.now()-e.open.timestamp<Nd?!1:(Pd(n,e.open.options[e.open.selected]),!0)},pv=n=>n.state.field(Ye,!1)?(n.dispatch({effects:dl.of(!0)}),!0):!1,mv=n=>{let e=n.state.field(Ye,!1);return!e||!e.active.some(t=>t.state!=0)?!1:(n.dispatch({effects:pl.of(null)}),!0)},Fd=class{constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}},Td=50,gv=50,bv=1e3,yv=q.fromClass(class{constructor(n){this.view=n,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.composing=0;for(let e of n.state.field(Ye).active)e.state==1&&this.startQuery(e)}update(n){let e=n.state.field(Ye);if(!n.selectionSet&&!n.docChanged&&n.startState.field(Ye)==e)return;let t=n.transactions.some(i=>(i.selection||i.docChanged)&&!fl(i));for(let i=0;i<this.running.length;i++){let s=this.running[i];if(t||s.updates.length+n.transactions.length>gv&&Date.now()-s.time>bv){for(let r of s.context.abortListeners)try{r()}catch(o){ge(this.view.state,o)}s.context.abortListeners=null,this.running.splice(i--,1)}else s.updates.push(...n.transactions)}if(this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),this.debounceUpdate=e.active.some(i=>i.state==1&&!this.running.some(s=>s.active.source==i.source))?setTimeout(()=>this.startUpdate(),Td):-1,this.composing!=0)for(let i of n.transactions)fl(i)=="input"?this.composing=2:this.composing==2&&i.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1;let{state:n}=this.view,e=n.field(Ye);for(let t of e.active)t.state==1&&!this.running.some(i=>i.active.source==t.source)&&this.startQuery(t)}startQuery(n){let{state:e}=this.view,t=ni(e),i=new Ld(e,t,n.explicitPos==t),s=new Fd(n,i);this.running.push(s),Promise.resolve(n.source(i)).then(r=>{s.context.aborted||(s.done=r||null,this.scheduleAccept())},r=>{this.view.dispatch({effects:pl.of(null)}),ge(this.view.state,r)})}scheduleAccept(){this.running.every(n=>n.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),Td))}accept(){var n;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],t=this.view.state.facet(si);for(let i=0;i<this.running.length;i++){let s=this.running[i];if(s.done===void 0)continue;if(this.running.splice(i--,1),s.done){let o=new xn(s.active.source,s.active.explicitPos,s.done,s.done.from,(n=s.done.to)!==null&&n!==void 0?n:ni(s.updates.length?s.updates[0].startState:this.view.state),s.done.span&&s.done.filter!==!1?Rd(s.done.span,!0):null);for(let l of s.updates)o=o.update(l,t);if(o.hasResult()){e.push(o);continue}}let r=this.view.state.field(Ye).active.find(o=>o.source==s.active.source);if(r&&r.state==1)if(s.done==null){let o=new Ae(s.active.source,0);for(let l of s.updates)o=o.update(l,t);o.state!=1&&e.push(o)}else this.startQuery(r)}e.length&&this.view.dispatch({effects:Bd.of(e)})}},{eventHandlers:{compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:dl.of(!1)}),20),this.composing=0}}}),vv=C.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",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:"'\u{1D465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1D436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1D461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222A'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25A1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1F511}\uFE0E'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25A2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});function Vd(n={}){return[Ye,si.of(n),yv,wv,vv]}var ml=[{key:"Ctrl-Space",run:pv},{key:"Escape",run:mv},{key:"ArrowDown",run:Gs(!0)},{key:"ArrowUp",run:Gs(!1)},{key:"PageDown",run:Gs(!0,"page")},{key:"PageUp",run:Gs(!1,"page")},{key:"Enter",run:dv}],wv=ze.highest(Bt.computeN([si],n=>n.facet(si).defaultKeymap?[ml]:[]));var Sv=n=>{let e=bl(n.state);return e.line?xv(n):e.block?Cv(n):!1};function gl(n,e){return({state:t,dispatch:i})=>{if(t.readOnly)return!1;let s=n(e,t);return s?(i(t.update(s)),!0):!1}}var xv=gl(Mv,0);var kv=gl(qd,0);var Cv=gl((n,e)=>qd(n,e,Ev(e)),0),Hd=[{key:"Mod-/",run:Sv},{key:"Alt-A",run:kv}];function bl(n,e=n.selection.main.head){let t=n.languageDataAt("commentTokens",e);return t.length?t[0]:{}}var kn=50;function Av(n,{open:e,close:t},i,s){let r=n.sliceDoc(i-kn,i),o=n.sliceDoc(s,s+kn),l=/\s*$/.exec(r)[0].length,a=/^\s*/.exec(o)[0].length,h=r.length-l;if(r.slice(h-e.length,h)==e&&o.slice(a,a+t.length)==t)return{open:{pos:i-l,margin:l&&1},close:{pos:s+a,margin:a&&1}};let c,u;s-i<=2*kn?c=u=n.sliceDoc(i,s):(c=n.sliceDoc(i,i+kn),u=n.sliceDoc(s-kn,s));let f=/^\s*/.exec(c)[0].length,d=/\s*$/.exec(u)[0].length,p=u.length-d-t.length;return c.slice(f,f+e.length)==e&&u.slice(p,p+t.length)==t?{open:{pos:i+f+e.length,margin:/\s/.test(c.charAt(f+e.length))?1:0},close:{pos:s-d-t.length,margin:/\s/.test(u.charAt(p-1))?1:0}}:null}function Ev(n){let e=[];for(let t of n.selection.ranges){let i=n.doc.lineAt(t.from),s=t.to<=i.to?i:n.doc.lineAt(t.to),r=e.length-1;r>=0&&e[r].to>i.from?e[r].to=s.to:e.push({from:i.from,to:s.to})}return e}function qd(n,e,t=e.selection.ranges){let i=t.map(r=>bl(e,r.from).block);if(!i.every(r=>r))return null;let s=t.map((r,o)=>Av(e,i[o],r.from,r.to));if(n!=2&&!s.every(r=>r))return{changes:e.changes(t.map((r,o)=>s[o]?[]:[{from:r.from,insert:i[o].open+" "},{from:r.to,insert:" "+i[o].close}]))};if(n!=1&&s.some(r=>r)){let r=[];for(let o=0,l;o<s.length;o++)if(l=s[o]){let a=i[o],{open:h,close:c}=l;r.push({from:h.pos-a.open.length,to:h.pos+h.margin},{from:c.pos-c.margin,to:c.pos+a.close.length})}return{changes:r}}return null}function Mv(n,e,t=e.selection.ranges){let i=[],s=-1;for(let{from:r,to:o}of t){let l=i.length,a=1e9;for(let h=r;h<=o;){let c=e.doc.lineAt(h);if(c.from>s&&(r==o||o>c.from)){s=c.from;let u=bl(e,h).line;if(!u)continue;let f=/^\s*/.exec(c.text)[0].length,d=f==c.length,p=c.text.slice(f,f+u.length)==u?f:-1;f<c.text.length&&f<a&&(a=f),i.push({line:c,comment:p,token:u,indent:f,empty:d,single:!1})}h=c.to+1}if(a<1e9)for(let h=l;h<i.length;h++)i[h].indent<i[h].line.text.length&&(i[h].indent=a);i.length==l+1&&(i[l].single=!0)}if(n!=2&&i.some(r=>r.comment<0&&(!r.empty||r.single))){let r=[];for(let{line:l,token:a,indent:h,empty:c,single:u}of i)(u||!c)&&r.push({from:l.from+h,insert:a+" "});let o=e.changes(r);return{changes:o,selection:e.selection.map(o,1)}}else if(n!=1&&i.some(r=>r.comment>=0)){let r=[];for(let{line:o,comment:l,token:a}of i)if(l>=0){let h=o.from+l,c=h+a.length;o.text[c-o.from]==" "&&c++,r.push({from:h,to:c})}return{changes:r}}return null}var yl=2e3;function Tv(n,e,t){let i=Math.min(e.line,t.line),s=Math.max(e.line,t.line),r=[];if(e.off>yl||t.off>yl||e.col<0||t.col<0){let o=Math.min(e.off,t.off),l=Math.max(e.off,t.off);for(let a=i;a<=s;a++){let h=n.doc.line(a);h.length<=l&&r.push(m.range(h.from+o,h.to+l))}}else{let o=Math.min(e.col,t.col),l=Math.max(e.col,t.col);for(let a=i;a<=s;a++){let h=n.doc.line(a),c=Ui(h.text,o,n.tabSize,!0);if(c>-1){let u=Ui(h.text,l,n.tabSize);r.push(m.range(h.from+c,h.from+u))}}}return r}function Lv(n,e){let t=n.coordsAtPos(n.viewport.from);return t?Math.round(Math.abs((t.left-e)/n.defaultCharacterWidth)):-1}function Wd(n,e){let t=n.posAtCoords({x:e.clientX,y:e.clientY},!1),i=n.state.doc.lineAt(t),s=t-i.from,r=s>yl?-1:s==i.length?Lv(n,e.clientX):pt(i.text,n.state.tabSize,t-i.from);return{line:i.number,col:r,off:s}}function Rv(n,e){let t=Wd(n,e),i=n.state.selection;return t?{update(s){if(s.docChanged){let r=s.changes.mapPos(s.startState.doc.line(t.line).from),o=s.state.doc.lineAt(r);t={line:o.number,col:t.col,off:Math.min(t.off,o.length)},i=i.map(s.changes)}},get(s,r,o){let l=Wd(n,s);if(!l)return i;let a=Tv(n.state,t,l);return a.length?o?m.create(a.concat(i.ranges)):m.create(a):i}}:null}function zd(n){let e=n?.eventFilter||(t=>t.altKey&&t.button==0);return C.mouseSelectionStyle.of((t,i)=>e(i)?Rv(t,i):null)}var Pv=0,Xe=class{constructor(e,t,i){this.set=e,this.base=t,this.modified=i,this.id=Pv++}static define(e){if(e?.base)throw new Error("Can not derive from a modified tag");let t=new Xe([],null,[]);if(t.set.push(t),e)for(let i of e.set)t.set.push(i);return t}static defineModifier(){let e=new An;return t=>t.modified.indexOf(e)>-1?t:An.get(t.base||t,t.modified.concat(e).sort((i,s)=>i.id-s.id))}},Ov=0,An=class{constructor(){this.instances=[],this.id=Ov++}static get(e,t){if(!t.length)return e;let i=t[0].instances.find(l=>l.base==e&&Dv(t,l.modified));if(i)return i;let s=[],r=new Xe(s,e,t);for(let l of t)l.instances.push(r);let o=Kd(t);for(let l of e.set)for(let a of o)s.push(An.get(l,a));return r}};function Dv(n,e){return n.length==e.length&&n.every((t,i)=>t==e[i])}function Kd(n){let e=[n];for(let t=0;t<n.length;t++)for(let i of Kd(n.slice(0,t).concat(n.slice(t+1))))e.push(i);return e}function _d(n){let e=Object.create(null);for(let t in n){let i=n[t];Array.isArray(i)||(i=[i]);for(let s of t.split(" "))if(s){let r=[],o=2,l=s;for(let u=0;;){if(l=="..."&&u>0&&u+3==s.length){o=1;break}let f=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(l);if(!f)throw new RangeError("Invalid path: "+s);if(r.push(f[0]=="*"?null:f[0][0]=='"'?JSON.parse(f[0]):f[0]),u+=f[0].length,u==s.length)break;let d=s[u++];if(u==s.length&&d=="!"){o=0;break}if(d!="/")throw new RangeError("Invalid path: "+s);l=s.slice(u)}let a=r.length-1,h=r[a];if(!h)throw new RangeError("Invalid path: "+s);let c=new Yd(i,o,a>0?r.slice(0,a):null);e[h]=c.sort(e[h])}}return Gd.add(e)}var Gd=new O,xl=S.define({combine(n){return n.length?Pi.combinedMatch(n):null}}),Jd=S.define({combine(n){return n.length?n[0].match:null}});function wl(n){return n.facet(xl)||n.facet(Jd)}var Yd=class{constructor(e,t,i,s){this.tags=e,this.mode=t,this.context=i,this.next=s}sort(e){return!e||e.depth<this.depth?(this.next=e,this):(e.next=this.sort(e.next),e)}get depth(){return this.context?this.context.length:0}},Pi=class{constructor(e,t){this.map=Object.create(null);let i;function s(o){let l=je.newName();return(i||(i=Object.create(null)))["."+l]=o,l}this.all=typeof t.all=="string"?t.all:t.all?s(t.all):null;for(let o of e){let l=(o.class||s(Object.assign({},o,{tag:null})))+(this.all?" "+this.all:""),a=o.tag;if(!Array.isArray(a))this.map[a.id]=l;else for(let h of a)this.map[h.id]=l}this.module=i?new je(i):null,this.scope=t.scope||null,this.match=this.match.bind(this);let r=[Bv];this.module&&r.push(C.styleModule.of(this.module)),this.extension=r.concat(xl.of(this)),this.fallback=r.concat(Jd.of(this))}match(e,t){if(this.scope&&t!=this.scope)return null;for(let i of e.set){let s=this.map[i.id];if(s!==void 0)return i!=e&&(this.map[e.id]=s),s}return this.map[e.id]=this.all}static combinedMatch(e){if(e.length==1)return e[0].match;let t=e.some(i=>i.scope)?void 0:Object.create(null);return(i,s)=>{let r=t&&t[i.id];if(r!==void 0)return r;let o=null;for(let l of e){let a=l.match(i,s);a&&(o=o?o+" "+a:a)}return t&&(t[i.id]=o),o}}static define(e,t){return new Pi(e,t||{})}static get(e,t,i){let s=wl(e);return s&&s(t,i||ae.none)}};var Xd=class{constructor(e){this.markCache=Object.create(null),this.tree=te(e.state),this.decorations=this.buildDeco(e,wl(e.state))}update(e){let t=te(e.state),i=wl(e.state),s=i!=e.startState.facet(xl);t.length<e.view.viewport.to&&!s&&t.type==this.tree.type?this.decorations=this.decorations.map(e.changes):(t!=this.tree||e.viewportChanged||s)&&(this.tree=t,this.decorations=this.buildDeco(e.view,i))}buildDeco(e,t){if(!t||!this.tree.length)return E.none;let i=new Re;for(let{from:s,to:r}of e.visibleRanges)Iv(this.tree,s,r,t,(o,l,a)=>{i.add(o,l,this.markCache[a]||(this.markCache[a]=E.mark({class:a})))});return i.finish()}},Bv=ze.high(q.fromClass(Xd,{decorations:n=>n.decorations})),$d=[""],Qd=class{constructor(e,t,i){this.at=e,this.style=t,this.span=i,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,i,s,r,o){let{type:l,from:a,to:h}=e;if(a>=i||h<=t)return;$d[r]=l.name,l.isTop&&(o=l);let c=s,u=l.prop(Gd),f=!1;for(;u;){if(!u.context||Nv(u.context,$d,r)){for(let p of u.tags){let g=this.style(p,o);g&&(c&&(c+=" "),c+=g,u.mode==1?s+=(s?" ":"")+g:u.mode==0&&(f=!0))}break}u=u.next}if(this.startSpan(e.from,c),f)return;let d=e.tree&&e.tree.prop(O.mounted);if(d&&d.overlay){let p=e.node.enter(d.overlay[0].from+a,1),g=e.firstChild();for(let y=0,b=a;;y++){let A=y<d.overlay.length?d.overlay[y]:null,T=A?A.from+a:h,x=Math.max(t,b),k=Math.min(i,T);if(x<k&&g)for(;e.from<k&&(this.highlightRange(e,x,k,s,r+1,o),this.startSpan(Math.min(i,e.to),c),!(e.to>=T||!e.nextSibling())););if(!A||T>i)break;b=A.to+a,b>t&&(this.highlightRange(p.cursor,Math.max(t,A.from+a),Math.min(i,b),s,r,d.tree.type),this.startSpan(b,c))}g&&e.parent()}else if(e.firstChild()){do if(!(e.to<=t)){if(e.from>=i)break;this.highlightRange(e,t,i,s,r+1,o),this.startSpan(Math.min(i,e.to),c)}while(e.nextSibling());e.parent()}}};function Iv(n,e,t,i,s){let r=new Qd(e,i,s);r.highlightRange(n.cursor(),e,t,"",0,n.type),r.flush(t)}function Nv(n,e,t){if(n.length>t-1)return!1;for(let i=t-1,s=n.length-1;s>=0;s--,i--){let r=n[s];if(r&&r!=e[i])return!1}return!0}var v=Xe.define,Js=v(),Ft=v(),jd=v(Ft),Ud=v(Ft),Vt=v(),Ys=v(Vt),vl=v(Vt),ht=v(),ri=v(ht),lt=v(),at=v(),Sl=v(),Cn=v(Sl),Xs=v(),w={comment:Js,lineComment:v(Js),blockComment:v(Js),docComment:v(Js),name:Ft,variableName:v(Ft),typeName:jd,tagName:v(jd),propertyName:Ud,attributeName:v(Ud),className:v(Ft),labelName:v(Ft),namespace:v(Ft),macroName:v(Ft),literal:Vt,string:Ys,docString:v(Ys),character:v(Ys),attributeValue:v(Ys),number:vl,integer:v(vl),float:v(vl),bool:v(Vt),regexp:v(Vt),escape:v(Vt),color:v(Vt),url:v(Vt),keyword:lt,self:v(lt),null:v(lt),atom:v(lt),unit:v(lt),modifier:v(lt),operatorKeyword:v(lt),controlKeyword:v(lt),definitionKeyword:v(lt),moduleKeyword:v(lt),operator:at,derefOperator:v(at),arithmeticOperator:v(at),logicOperator:v(at),bitwiseOperator:v(at),compareOperator:v(at),updateOperator:v(at),definitionOperator:v(at),typeOperator:v(at),controlOperator:v(at),punctuation:Sl,separator:v(Sl),bracket:Cn,angleBracket:v(Cn),squareBracket:v(Cn),paren:v(Cn),brace:v(Cn),content:ht,heading:ri,heading1:v(ri),heading2:v(ri),heading3:v(ri),heading4:v(ri),heading5:v(ri),heading6:v(ri),contentSeparator:v(ht),list:v(ht),quote:v(ht),emphasis:v(ht),strong:v(ht),link:v(ht),monospace:v(ht),strikethrough:v(ht),inserted:v(),deleted:v(),changed:v(),invalid:v(),meta:Xs,documentMeta:v(Xs),annotation:v(Xs),processingInstruction:v(Xs),definition:Xe.defineModifier(),constant:Xe.defineModifier(),function:Xe.defineModifier(),standard:Xe.defineModifier(),local:Xe.defineModifier(),special:Xe.defineModifier()},Zd=Pi.define([{tag:w.link,textDecoration:"underline"},{tag:w.heading,textDecoration:"underline",fontWeight:"bold"},{tag:w.emphasis,fontStyle:"italic"},{tag:w.strong,fontWeight:"bold"},{tag:w.strikethrough,textDecoration:"line-through"},{tag:w.keyword,color:"#708"},{tag:[w.atom,w.bool,w.url,w.contentSeparator,w.labelName],color:"#219"},{tag:[w.literal,w.inserted],color:"#164"},{tag:[w.string,w.deleted],color:"#a11"},{tag:[w.regexp,w.escape,w.special(w.string)],color:"#e40"},{tag:w.definition(w.variableName),color:"#00f"},{tag:w.local(w.variableName),color:"#30a"},{tag:[w.typeName,w.namespace],color:"#085"},{tag:w.className,color:"#167"},{tag:[w.special(w.variableName),w.macroName],color:"#256"},{tag:w.definition(w.propertyName),color:"#00c"},{tag:w.comment,color:"#940"},{tag:w.meta,color:"#7a757a"},{tag:w.invalid,color:"#f00"}]),Gx=Pi.define([{tag:w.link,class:"cmt-link"},{tag:w.heading,class:"cmt-heading"},{tag:w.emphasis,class:"cmt-emphasis"},{tag:w.strong,class:"cmt-strong"},{tag:w.keyword,class:"cmt-keyword"},{tag:w.atom,class:"cmt-atom"},{tag:w.bool,class:"cmt-bool"},{tag:w.url,class:"cmt-url"},{tag:w.labelName,class:"cmt-labelName"},{tag:w.inserted,class:"cmt-inserted"},{tag:w.deleted,class:"cmt-deleted"},{tag:w.literal,class:"cmt-literal"},{tag:w.string,class:"cmt-string"},{tag:w.number,class:"cmt-number"},{tag:[w.regexp,w.escape,w.special(w.string)],class:"cmt-string2"},{tag:w.variableName,class:"cmt-variableName"},{tag:w.local(w.variableName),class:"cmt-variableName cmt-local"},{tag:w.definition(w.variableName),class:"cmt-variableName cmt-definition"},{tag:w.special(w.variableName),class:"cmt-variableName2"},{tag:w.definition(w.propertyName),class:"cmt-propertyName cmt-definition"},{tag:w.typeName,class:"cmt-typeName"},{tag:w.namespace,class:"cmt-namespace"},{tag:w.className,class:"cmt-className"},{tag:w.macroName,class:"cmt-macroName"},{tag:w.propertyName,class:"cmt-propertyName"},{tag:w.operator,class:"cmt-operator"},{tag:w.comment,class:"cmt-comment"},{tag:w.meta,class:"cmt-meta"},{tag:w.invalid,class:"cmt-invalid"},{tag:w.punctuation,class:"cmt-punctuation"}]);var tp=class{constructor(e,t,i){this.from=e,this.to=t,this.diagnostic=i}},Ht=class{constructor(e,t,i){this.diagnostics=e,this.panel=t,this.selected=i}static init(e,t,i){let s=E.set(e.map(r=>r.from==r.to||r.from==r.to-1&&i.doc.lineAt(r.from).to==r.from?E.widget({widget:new op(r),diagnostic:r}).range(r.from):E.mark({attributes:{class:"cm-lintRange cm-lintRange-"+r.severity},diagnostic:r}).range(r.from,r.to)),!0);return new Ht(s,t,Oi(s))}};function Oi(n,e=null,t=0){let i=null;return n.between(t,1e9,(s,r,{spec:o})=>{if(!(e&&o.diagnostic!=e))return i=new tp(s,r,o.diagnostic),!1}),i}function Fv(n,e){return n.field(Oe,!1)?e:e.concat(L.appendConfig.of([Oe,C.decorations.compute([Oe],t=>{let{selected:i,panel:s}=t.field(Oe);return!i||!s||i.from==i.to?E.none:E.set([Hv.range(i.from,i.to)])}),Sd(qv),Uv]))}var Vv=L.define(),Al=L.define(),ip=L.define(),Oe=z.define({create(){return new Ht(E.none,null,null)},update(n,e){if(e.docChanged){let t=n.diagnostics.map(e.changes),i=null;if(n.selected){let s=e.changes.mapPos(n.selected.from,1);i=Oi(t,n.selected.diagnostic,s)||Oi(t,null,s)}n=new Ht(t,n.panel,i)}for(let t of e.effects)t.is(Vv)?n=Ht.init(t.value,n.panel,e.state):t.is(Al)?n=new Ht(n.diagnostics,t.value?En.open:null,n.selected):t.is(ip)&&(n=new Ht(n.diagnostics,n.panel,t.value));return n},provide:n=>[Zt.from(n,e=>e.panel),C.decorations.from(n,e=>e.diagnostics)]});var Hv=E.mark({class:"cm-lintRange cm-lintRange-active"});function qv(n,e,t){let{diagnostics:i}=n.state.field(Oe),s=[],r=2e8,o=0;return i.between(e-(t<0?1:0),e+(t>0?1:0),(l,a,{spec:h})=>{e>=l&&e<=a&&(l==a||(e>l||t>0)&&(e<a||t<0))&&(s.push(h.diagnostic),r=Math.min(l,r),o=Math.max(a,o))}),s.length?{pos:r,end:o,above:n.state.doc.lineAt(r).to<o,create(){return{dom:Wv(n,s)}}}:null}function Wv(n,e){return j("ul",{class:"cm-tooltip-lint"},e.map(t=>rp(n,t,!1)))}var zv=n=>{let e=n.state.field(Oe,!1);(!e||!e.panel)&&n.dispatch({effects:Fv(n.state,[Al.of(!0)])});let t=ei(n,En.open);return t&&t.dom.querySelector(".cm-panel-lint ul").focus(),!0},ep=n=>{let e=n.state.field(Oe,!1);return!e||!e.panel?!1:(n.dispatch({effects:Al.of(!1)}),!0)},$v=n=>{let e=n.state.field(Oe,!1);if(!e)return!1;let t=n.state.selection.main,i=e.diagnostics.iter(t.to+1);return!i.value&&(i=e.diagnostics.iter(0),!i.value||i.from==t.from&&i.to==t.to)?!1:(n.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0}),!0)},np=[{key:"Mod-Shift-m",run:zv},{key:"F8",run:$v}];function sp(n){let e=[];if(n)e:for(let{name:t}of n){for(let i=0;i<t.length;i++){let s=t[i];if(/[a-zA-Z]/.test(s)&&!e.some(r=>r.toLowerCase()==s.toLowerCase())){e.push(s);continue e}}e.push("")}return e}function rp(n,e,t){var i;let s=t?sp(e.actions):[];return j("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},j("span",{class:"cm-diagnosticText"},e.message),(i=e.actions)===null||i===void 0?void 0:i.map((r,o)=>{let l=u=>{u.preventDefault();let f=Oi(n.state.field(Oe).diagnostics,e);f&&r.apply(n,f.from,f.to)},{name:a}=r,h=s[o]?a.indexOf(s[o]):-1,c=h<0?a:[a.slice(0,h),j("u",a.slice(h,h+1)),a.slice(h+1)];return j("button",{type:"button",class:"cm-diagnosticAction",onclick:l,onmousedown:l,"aria-label":` Action: ${a}${h<0?"":` (access key "${s[o]})"`}.`},c)}),e.source&&j("div",{class:"cm-diagnosticSource"},e.source))}var op=class extends De{constructor(e){super();this.diagnostic=e}eq(e){return e.diagnostic==this.diagnostic}toDOM(){return j("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}},Cl=class{constructor(e,t){this.diagnostic=t,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=rp(e,t,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}},En=class{constructor(e){this.view=e,this.items=[];let t=s=>{if(s.keyCode==27)ep(this.view),this.view.focus();else if(s.keyCode==38||s.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(s.keyCode==40||s.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(s.keyCode==36)this.moveSelection(0);else if(s.keyCode==35)this.moveSelection(this.items.length-1);else if(s.keyCode==13)this.view.focus();else if(s.keyCode>=65&&s.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:r}=this.items[this.selectedIndex],o=sp(r.actions);for(let l=0;l<o.length;l++)if(o[l].toUpperCase().charCodeAt(0)==s.keyCode){let a=Oi(this.view.state.field(Oe).diagnostics,r);a&&r.actions[l].apply(e,a.from,a.to)}}else return;s.preventDefault()},i=s=>{for(let r=0;r<this.items.length;r++)this.items[r].dom.contains(s.target)&&this.moveSelection(r)};this.list=j("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:t,onclick:i}),this.dom=j("div",{class:"cm-panel-lint"},this.list,j("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>ep(this.view)},"\xD7")),this.update()}get selectedIndex(){let e=this.view.state.field(Oe).selected;if(!e)return-1;for(let t=0;t<this.items.length;t++)if(this.items[t].diagnostic==e.diagnostic)return t;return-1}update(){let{diagnostics:e,selected:t}=this.view.state.field(Oe),i=0,s=!1,r=null;for(e.between(0,this.view.state.doc.length,(o,l,{spec:a})=>{let h=-1,c;for(let u=i;u<this.items.length;u++)if(this.items[u].diagnostic==a.diagnostic){h=u;break}h<0?(c=new Cl(this.view,a.diagnostic),this.items.splice(i,0,c),s=!0):(c=this.items[h],h>i&&(this.items.splice(i,h-i),s=!0)),t&&c.diagnostic==t.diagnostic?c.dom.hasAttribute("aria-selected")||(c.dom.setAttribute("aria-selected","true"),r=c):c.dom.hasAttribute("aria-selected")&&c.dom.removeAttribute("aria-selected"),i++});i<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)s=!0,this.items.pop();this.items.length==0&&(this.items.push(new Cl(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),s=!0),r?(this.list.setAttribute("aria-activedescendant",r.id),this.view.requestMeasure({key:this,read:()=>({sel:r.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:o,panel:l})=>{o.top<l.top?this.list.scrollTop-=l.top-o.top:o.bottom>l.bottom&&(this.list.scrollTop+=o.bottom-l.bottom)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),s&&this.sync()}sync(){let e=this.list.firstChild;function t(){let i=e;e=i.nextSibling,i.remove()}for(let i of this.items)if(i.dom.parentNode==this.list){for(;e!=i.dom;)t();e=i.dom.nextSibling}else this.list.insertBefore(i.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=this.view.state.field(Oe),i=Oi(t.diagnostics,this.items[e].diagnostic);!i||this.view.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:ip.of(i)})}static open(e){return new En(e)}};function jv(n,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${e}>${encodeURIComponent(n)}</svg>')`}function kl(n){return jv(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${n}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}var Uv=C.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:kl("#d11")},".cm-lintRange-warning":{backgroundImage:kl("orange")},".cm-lintRange-info":{backgroundImage:kl("#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 lp=[Ju(),Yu(),bu(),ku(),rf(),uu(),mu(),B.allowMultipleSelections.of(!0),zu(),Zd.fallback,hf(),Xf(),Vd(),zd(),wu(),fd(),Bt.of([...ed,..._f,...bd,...Tu,...tf,...Hd,...ml,...np])];function ap(n,e,t,i=0,s=0){e==null&&(e=n.search(/[^\s\u00a0]/),e==-1&&(e=n.length));let r=s;for(let o=i;o<e;o++)n.charCodeAt(o)==9?r+=t-r%t:r++;return r}var Ml=class{constructor(e,t,i){this.string=e,this.tabSize=t,this.indentUnit=i,this.pos=0,this.start=0,this.lastColumnPos=0,this.lastColumnValue=0}eol(){return this.pos>=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)}eat(e){let t=this.string.charAt(this.pos),i;if(typeof e=="string"?i=t==e:i=t&&(e instanceof RegExp?e.test(t):e(t)),i)return++this.pos,t}eatWhile(e){let t=this.pos;for(;this.eat(e););return this.pos>t}eatSpace(){let e=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e}skipToEnd(){this.pos=this.string.length}skipTo(e){let t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0}backUp(e){this.pos-=e}column(){return this.lastColumnPos<this.start&&(this.lastColumnValue=ap(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue}indentation(){return ap(this.string,null,this.tabSize)}match(e,t,i){if(typeof e=="string"){let s=o=>i?o.toLowerCase():o,r=this.string.substr(this.pos,e.length);return s(r)==s(e)?(t!==!1&&(this.pos+=e.length),!0):null}else{let s=this.string.slice(this.pos).match(e);return s&&s.index>0?null:(s&&t!==!1&&(this.pos+=s[0].length),s)}}current(){return this.string.slice(this.start,this.pos)}};function Kv(n){return{token:n.token,blankLine:n.blankLine||(()=>{}),startState:n.startState||(()=>!0),copyState:n.copyState||_v,indent:n.indent||(()=>null),languageData:n.languageData||{},tokenTable:n.tokenTable||Ll}}function _v(n){if(typeof n!="object")return n;let e={};for(let t in n){let i=n[t];e[t]=i instanceof Array?i.slice():i}return e}var Tn=class extends Ie{constructor(e){let t=Fu(e.languageData),i=Kv(e),s,r=new class extends cn{createParse(o,l,a){return new up(s,o,l,a)}};super(t,r,Xv(t),[Vo.of((o,l)=>this.getIndent(o,l))]);s=this,this.streamParser=i,this.stateAfter=new O({perNode:!0}),this.tokenTable=e.tokenTable?new Rl(i.tokenTable):Yv}static define(e){return new Tn(e)}getIndent(e,t){let i=te(e.state),s=i.resolve(t);for(;s&&s.type!=this.topNode;)s=s.parent;if(!s)return null;let r=Tl(this,i,0,s.from,t),o,l;if(r?(l=r.state,o=r.pos+1):(l=this.streamParser.startState(e.unit),o=0),t-o>1e4)return null;for(;o<t;){let h=e.state.doc.lineAt(o),c=Math.min(t,h.to);if(h.length){let u=new Ml(h.text,e.state.tabSize,e.unit);for(;u.pos<c-h.from;)fp(this.streamParser.token,u,l)}else this.streamParser.blankLine(l,e.unit);if(c==t)break;o=h.to+1}let{text:a}=e.lineAt(t);return this.streamParser.indent(l,/^\s*(.*)/.exec(a)[1],e)}get allowsNesting(){return!1}};function Tl(n,e,t,i,s){let r=t>=i&&t+e.length<=s&&e.prop(n.stateAfter);if(r)return{state:n.streamParser.copyState(r),pos:t+e.length};for(let o=e.children.length-1;o>=0;o--){let l=e.children[o],a=t+e.positions[o],h=l instanceof U&&a<s&&Tl(n,l,a,i,s);if(h)return h}return null}function cp(n,e,t,i,s){if(s&&t<=0&&i>=e.length)return e;!s&&e.type==n.topNode&&(s=!0);for(let r=e.children.length-1;r>=0;r--){let o=e.positions[r],l=e.children[r],a;if(o<i&&l instanceof U){if(!(a=cp(n,l,t-o,i-o,s)))break;return s?new U(e.type,e.children.slice(0,r).concat(a),e.positions.slice(0,r+1),o+a.length):a}}return null}function Gv(n,e,t,i){for(let s of e){let r=s.from+(s.openStart?25:0),o=s.to-(s.openEnd?25:0),l=r<=t&&o>t&&Tl(n,s.tree,0-s.offset,t,o),a;if(l&&(a=cp(n,s.tree,t+s.offset,l.pos+s.offset,!1)))return{state:l.state,tree:a}}return{state:n.streamParser.startState(i?xt(i):4),tree:U.empty}}var up=class{constructor(e,t,i,s){this.lang=e,this.input=t,this.fragments=i,this.ranges=s,this.stoppedAt=null,this.chunks=[],this.chunkPos=[],this.chunk=[],this.chunkReused=void 0,this.rangeIndex=0,this.to=s[s.length-1].to;let r=Yt.get(),o=s[0].from,{state:l,tree:a}=Gv(e,i,o,r?.state);this.state=l,this.parsedPos=this.chunkStart=o+a.length;for(let h=0;h<a.children.length;h++)this.chunks.push(a.children[h]),this.chunkPos.push(a.positions[h]);r&&this.parsedPos<r.viewport.from-1e5&&(this.state=this.lang.streamParser.startState(xt(r.state)),r.skipUntilInView(this.parsedPos,r.viewport.from),this.parsedPos=r.viewport.from)}advance(){let e=Yt.get(),t=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt),i=Math.min(t,this.chunkStart+2048);for(e&&(i=Math.min(i,e.viewport.to));this.parsedPos<i;)this.parseLine(e);return this.chunkStart<this.parsedPos&&this.finishChunk(),this.parsedPos>=t?this.finish():e&&this.parsedPos>=e.viewport.to?(e.skipUntilInView(this.parsedPos,t),this.finish()):null}stopAt(e){this.stoppedAt=e}lineAfter(e){let t=this.input.chunk(e);if(this.input.lineChunks)t==`
|
40
40
|
`&&(t="");else{let i=t.indexOf(`
|
41
|
-
`);i>-1&&(t=t.slice(0,i))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,t=this.lineAfter(e),i=e+t.length;for(let s=this.rangeIndex;;){let r=this.ranges[s].to;if(r>=i||(t=t.slice(0,r-(i-t.length)),s++,s==this.ranges.length))break;let o=this.ranges[s].from,l=this.lineAfter(o);t+=l,i=o+l.length}return{line:t,end:i}}skipGapsTo(e,t,i){for(;;){let s=this.ranges[this.rangeIndex].to,r=e+t;if(i>0?s>r:s>=r)break;t+=this.ranges[++this.rangeIndex].from-s}return t}emitToken(e,t,i,s,r){if(this.ranges.length>1){r=this.skipGapsTo(t,r,1),t+=r;let o=this.chunk.length;r=this.skipGapsTo(i,r,-1),i+=r,s+=this.chunk.length-o}return this.chunk.push(e,t,i,s),r}parseLine(e){let{line:t,end:i}=this.nextLine(),s=0,{streamParser:r}=this.lang,o=new Ml(t,e?e.state.tabSize:4,e?xt(e.state):2);if(o.eol())r.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let l=fp(r.token,o,this.state);if(l&&(s=this.emitToken(this.lang.tokenTable.resolve(l),this.parsedPos+o.start,this.parsedPos+o.pos,4,s)),o.start>1e4)break}this.parsedPos=i,this.parsedPos<this.to&&this.parsedPos++}finishChunk(){let e=U.build({buffer:this.chunk,start:this.chunkStart,length:this.parsedPos-this.chunkStart,nodeSet:Jv,topID:0,maxBufferLength:2048,reused:this.chunkReused});e=new U(e.type,e.children,e.positions,e.length,[[this.lang.stateAfter,this.lang.streamParser.copyState(this.state)]]),this.chunks.push(e),this.chunkPos.push(this.chunkStart-this.ranges[0].from),this.chunk=[],this.chunkReused=void 0,this.chunkStart=this.parsedPos}finish(){return new U(this.lang.topNode,this.chunks,this.chunkPos,this.parsedPos-this.ranges[0].from).balance()}};function fp(n,e,t){e.start=e.pos;for(let i=0;i<10;i++){let s=n(e,t);if(e.pos>e.start)return s}throw new Error("Stream parser failed to advance stream.")}var Ll=Object.create(null),Mn=[ae.none],Jv=new hn(Mn),hp=[],dp=Object.create(null);for(let[n,e]of[["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"]])dp[n]=pp(Ll,e);var Rl=class{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),dp)}resolve(e){return e?this.table[e]||(this.table[e]=pp(this.extra,e)):0}},Yv=new Rl(Ll);function El(n,e){hp.indexOf(n)>-1||(hp.push(n),console.warn(e))}function pp(n,e){let t=null;for(let r of e.split(".")){let o=n[r]||w[r];o?typeof o=="function"?t?t=o(t):El(r,`Modifier ${r} used at start of tag`):t?El(r,`Tag ${r} used as modifier`):t=o:El(r,`Unknown highlighting tag ${r}`)}if(!t)return 0;let i=e.replace(/ /g,"_"),s=ae.define({id:Mn.length,name:i,props:[_d({[i]:t})]});return Mn.push(s),s.id}function Xv(n){let e=ae.define({id:Mn.length,name:"Document",props:[fn.add(()=>n)]});return Mn.push(e),e}function Ol(n){for(var e={},t=0,i=n.length;t<i;++t)e[n[t]]=!0;return e}var gp=["alias","and","BEGIN","begin","break","case","class","def","defined?","do","else","elsif","END","end","ensure","false","for","if","in","module","next","not","or","redo","rescue","retry","return","self","super","then","true","undef","unless","until","when","while","yield","nil","raise","throw","catch","fail","loop","callcc","caller","lambda","proc","public","protected","private","require","load","require_relative","extend","autoload","__END__","__FILE__","__LINE__","__dir__"],Qv=Ol(gp),Zv=Ol(["def","class","case","for","while","until","module","then","catch","loop","proc","begin"]),ew=Ol(["end","until"]),mp={"[":"]","{":"}","(":")"},tw={"]":"[","}":"{",")":"("},Qe;function Di(n,e,t){return t.tokenize.push(n),n(e,t)}function Qs(n,e){if(n.sol()&&n.match("=begin")&&n.eol())return e.tokenize.push(rw),"comment";if(n.eatSpace())return null;var t=n.next(),i;if(t=="`"||t=="'"||t=='"')return Di(Ln(t,"string",t=='"'||t=="`"),n,e);if(t=="/")return iw(n)?Di(Ln(t,"string.special",!0),n,e):"operator";if(t=="%"){var s="string",r=!0;n.eat("s")?s="atom":n.eat(/[WQ]/)?s="string":n.eat(/[r]/)?s="string.special":n.eat(/[wxq]/)&&(s="string",r=!1);var o=n.eat(/[^\w\s=]/);return o?(mp.propertyIsEnumerable(o)&&(o=mp[o]),Di(Ln(o,s,r,!0),n,e)):"operator"}else{if(t=="#")return n.skipToEnd(),"comment";if(t=="<"&&(i=n.match(/^<([-~])[\`\"\']?([a-zA-Z_?]\w*)[\`\"\']?(?:;|$)/)))return Di(sw(i[2],i[1]),n,e);if(t=="0")return n.eat("x")?n.eatWhile(/[\da-fA-F]/):n.eat("b")?n.eatWhile(/[01]/):n.eatWhile(/[0-7]/),"number";if(/\d/.test(t))return n.match(/^[\d_]*(?:\.[\d_]+)?(?:[eE][+\-]?[\d_]+)?/),"number";if(t=="?"){for(;n.match(/^\\[CM]-/););return n.eat("\\")?n.eatWhile(/\w/):n.next(),"string"}else{if(t==":")return n.eat("'")?Di(Ln("'","atom",!1),n,e):n.eat('"')?Di(Ln('"',"atom",!0),n,e):n.eat(/[\<\>]/)?(n.eat(/[\<\>]/),"atom"):n.eat(/[\+\-\*\/\&\|\:\!]/)?"atom":n.eat(/[a-zA-Z$@_\xa1-\uffff]/)?(n.eatWhile(/[\w$\xa1-\uffff]/),n.eat(/[\?\!\=]/),"atom"):"operator";if(t=="@"&&n.match(/^@?[a-zA-Z_\xa1-\uffff]/))return n.eat("@"),n.eatWhile(/[\w\xa1-\uffff]/),"propertyName";if(t=="$")return n.eat(/[a-zA-Z_]/)?n.eatWhile(/[\w]/):n.eat(/\d/)?n.eat(/\d/):n.next(),"variableName.special";if(/[a-zA-Z_\xa1-\uffff]/.test(t))return n.eatWhile(/[\w\xa1-\uffff]/),n.eat(/[\?\!]/),n.eat(":")?"atom":"variable";if(t=="|"&&(e.varList||e.lastTok=="{"||e.lastTok=="do"))return Qe="|",null;if(/[\(\)\[\]{}\\;]/.test(t))return Qe=t,null;if(t=="-"&&n.eat(">"))return"operator";if(/[=+\-\/*:\.^%<>~|]/.test(t)){var l=n.eatWhile(/[=+\-\/*:\.^%<>~|]/);return t=="."&&!l&&(Qe="."),"operator"}else return null}}}function iw(n){for(var e=n.pos,t=0,i,s=!1,r=!1;(i=n.next())!=null;)if(r)r=!1;else{if("[{(".indexOf(i)>-1)t++;else if("]})".indexOf(i)>-1){if(t--,t<0)break}else if(i=="/"&&t==0){s=!0;break}r=i=="\\"}return n.backUp(n.pos-e),s}function Pl(n){return n||(n=1),function(e,t){if(e.peek()=="}"){if(n==1)return t.tokenize.pop(),t.tokenize[t.tokenize.length-1](e,t);t.tokenize[t.tokenize.length-1]=Pl(n-1)}else e.peek()=="{"&&(t.tokenize[t.tokenize.length-1]=Pl(n+1));return Qs(e,t)}}function nw(){var n=!1;return function(e,t){return n?(t.tokenize.pop(),t.tokenize[t.tokenize.length-1](e,t)):(n=!0,Qs(e,t))}}function Ln(n,e,t,i){return function(s,r){var o=!1,l;for(r.context.type==="read-quoted-paused"&&(r.context=r.context.prev,s.eat("}"));(l=s.next())!=null;){if(l==n&&(i||!o)){r.tokenize.pop();break}if(t&&l=="#"&&!o){if(s.eat("{")){n=="}"&&(r.context={prev:r.context,type:"read-quoted-paused"}),r.tokenize.push(Pl());break}else if(/[@\$]/.test(s.peek())){r.tokenize.push(nw());break}}o=!o&&l=="\\"}return e}}function sw(n,e){return function(t,i){return e&&t.eatSpace(),t.match(n)?i.tokenize.pop():t.skipToEnd(),"string"}}function rw(n,e){return n.sol()&&n.match("=end")&&n.eol()&&e.tokenize.pop(),n.skipToEnd(),"comment"}var bp={startState:function(n){return{tokenize:[Qs],indented:0,context:{type:"top",indented:-n},continuedLine:!1,lastTok:null,varList:!1}},token:function(n,e){Qe=null,n.sol()&&(e.indented=n.indentation());var t=e.tokenize[e.tokenize.length-1](n,e),i,s=Qe;if(t=="variable"){var r=n.current();t=e.lastTok=="."?"property":Qv.propertyIsEnumerable(n.current())?"keyword":/^[A-Z]/.test(r)?"tag":e.lastTok=="def"||e.lastTok=="class"||e.varList?"def":"variable",t=="keyword"&&(s=r,Zv.propertyIsEnumerable(r)?i="indent":ew.propertyIsEnumerable(r)?i="dedent":((r=="if"||r=="unless")&&n.column()==n.indentation()||r=="do"&&e.context.indented<e.indented)&&(i="indent"))}return(Qe||t&&t!="comment")&&(e.lastTok=s),Qe=="|"&&(e.varList=!e.varList),i=="indent"||/[\(\[\{]/.test(Qe)?e.context={prev:e.context,type:Qe||t,indented:e.indented}:(i=="dedent"||/[\)\]\}]/.test(Qe))&&e.context.prev&&(e.context=e.context.prev),n.eol()&&(e.continuedLine=Qe=="\\"||t=="operator"),t},indent:function(n,e,t){if(n.tokenize[n.tokenize.length-1]!=Qs)return null;var i=e&&e.charAt(0),s=n.context,r=s.type==tw[i]||s.type=="keyword"&&/^(?:end|until|else|elsif|when|rescue)\b/.test(e);return s.indented+(r?0:t.unit)+(n.continuedLine?t.unit:0)},languageData:{indentOnInput:/^\s*(?:end|rescue|elsif|else|\})$/,commentTokens:{line:"#"},autocomplete:gp}};var Zs=class extends Me{connect(){this.editor=new C({parent:this.element,state:B.create({doc:this.scriptValue,extensions:[lp,Tn.define(bp),ze.high(Bt.of([{key:"Mod-Enter",run:()=>this.submitCodeSelected}])),Bt.of([Gf])]})})}get submitCodeSelected(){let n=new CustomEvent("codeSubmission",{detail:{selection:this.selectedBlock}});return this.element.dispatchEvent(n),!0}get selection(){return this.editor.state.selection.main}get doc(){return this.editor.state.doc}get selectedBlock(){let{from:n,to:e}=this.selection;return n!=e?this.doc.toString().slice(n,e):this.doc.lineAt(n).text}};Bi(Zs,"values",{script:String});window.Stimulus
|
41
|
+
`);i>-1&&(t=t.slice(0,i))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,t=this.lineAfter(e),i=e+t.length;for(let s=this.rangeIndex;;){let r=this.ranges[s].to;if(r>=i||(t=t.slice(0,r-(i-t.length)),s++,s==this.ranges.length))break;let o=this.ranges[s].from,l=this.lineAfter(o);t+=l,i=o+l.length}return{line:t,end:i}}skipGapsTo(e,t,i){for(;;){let s=this.ranges[this.rangeIndex].to,r=e+t;if(i>0?s>r:s>=r)break;t+=this.ranges[++this.rangeIndex].from-s}return t}emitToken(e,t,i,s,r){if(this.ranges.length>1){r=this.skipGapsTo(t,r,1),t+=r;let o=this.chunk.length;r=this.skipGapsTo(i,r,-1),i+=r,s+=this.chunk.length-o}return this.chunk.push(e,t,i,s),r}parseLine(e){let{line:t,end:i}=this.nextLine(),s=0,{streamParser:r}=this.lang,o=new Ml(t,e?e.state.tabSize:4,e?xt(e.state):2);if(o.eol())r.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let l=fp(r.token,o,this.state);if(l&&(s=this.emitToken(this.lang.tokenTable.resolve(l),this.parsedPos+o.start,this.parsedPos+o.pos,4,s)),o.start>1e4)break}this.parsedPos=i,this.parsedPos<this.to&&this.parsedPos++}finishChunk(){let e=U.build({buffer:this.chunk,start:this.chunkStart,length:this.parsedPos-this.chunkStart,nodeSet:Jv,topID:0,maxBufferLength:2048,reused:this.chunkReused});e=new U(e.type,e.children,e.positions,e.length,[[this.lang.stateAfter,this.lang.streamParser.copyState(this.state)]]),this.chunks.push(e),this.chunkPos.push(this.chunkStart-this.ranges[0].from),this.chunk=[],this.chunkReused=void 0,this.chunkStart=this.parsedPos}finish(){return new U(this.lang.topNode,this.chunks,this.chunkPos,this.parsedPos-this.ranges[0].from).balance()}};function fp(n,e,t){e.start=e.pos;for(let i=0;i<10;i++){let s=n(e,t);if(e.pos>e.start)return s}throw new Error("Stream parser failed to advance stream.")}var Ll=Object.create(null),Mn=[ae.none],Jv=new hn(Mn),hp=[],dp=Object.create(null);for(let[n,e]of[["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"]])dp[n]=pp(Ll,e);var Rl=class{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),dp)}resolve(e){return e?this.table[e]||(this.table[e]=pp(this.extra,e)):0}},Yv=new Rl(Ll);function El(n,e){hp.indexOf(n)>-1||(hp.push(n),console.warn(e))}function pp(n,e){let t=null;for(let r of e.split(".")){let o=n[r]||w[r];o?typeof o=="function"?t?t=o(t):El(r,`Modifier ${r} used at start of tag`):t?El(r,`Tag ${r} used as modifier`):t=o:El(r,`Unknown highlighting tag ${r}`)}if(!t)return 0;let i=e.replace(/ /g,"_"),s=ae.define({id:Mn.length,name:i,props:[_d({[i]:t})]});return Mn.push(s),s.id}function Xv(n){let e=ae.define({id:Mn.length,name:"Document",props:[fn.add(()=>n)]});return Mn.push(e),e}function Ol(n){for(var e={},t=0,i=n.length;t<i;++t)e[n[t]]=!0;return e}var gp=["alias","and","BEGIN","begin","break","case","class","def","defined?","do","else","elsif","END","end","ensure","false","for","if","in","module","next","not","or","redo","rescue","retry","return","self","super","then","true","undef","unless","until","when","while","yield","nil","raise","throw","catch","fail","loop","callcc","caller","lambda","proc","public","protected","private","require","load","require_relative","extend","autoload","__END__","__FILE__","__LINE__","__dir__"],Qv=Ol(gp),Zv=Ol(["def","class","case","for","while","until","module","then","catch","loop","proc","begin"]),ew=Ol(["end","until"]),mp={"[":"]","{":"}","(":")"},tw={"]":"[","}":"{",")":"("},Qe;function Di(n,e,t){return t.tokenize.push(n),n(e,t)}function Qs(n,e){if(n.sol()&&n.match("=begin")&&n.eol())return e.tokenize.push(rw),"comment";if(n.eatSpace())return null;var t=n.next(),i;if(t=="`"||t=="'"||t=='"')return Di(Ln(t,"string",t=='"'||t=="`"),n,e);if(t=="/")return iw(n)?Di(Ln(t,"string.special",!0),n,e):"operator";if(t=="%"){var s="string",r=!0;n.eat("s")?s="atom":n.eat(/[WQ]/)?s="string":n.eat(/[r]/)?s="string.special":n.eat(/[wxq]/)&&(s="string",r=!1);var o=n.eat(/[^\w\s=]/);return o?(mp.propertyIsEnumerable(o)&&(o=mp[o]),Di(Ln(o,s,r,!0),n,e)):"operator"}else{if(t=="#")return n.skipToEnd(),"comment";if(t=="<"&&(i=n.match(/^<([-~])[\`\"\']?([a-zA-Z_?]\w*)[\`\"\']?(?:;|$)/)))return Di(sw(i[2],i[1]),n,e);if(t=="0")return n.eat("x")?n.eatWhile(/[\da-fA-F]/):n.eat("b")?n.eatWhile(/[01]/):n.eatWhile(/[0-7]/),"number";if(/\d/.test(t))return n.match(/^[\d_]*(?:\.[\d_]+)?(?:[eE][+\-]?[\d_]+)?/),"number";if(t=="?"){for(;n.match(/^\\[CM]-/););return n.eat("\\")?n.eatWhile(/\w/):n.next(),"string"}else{if(t==":")return n.eat("'")?Di(Ln("'","atom",!1),n,e):n.eat('"')?Di(Ln('"',"atom",!0),n,e):n.eat(/[\<\>]/)?(n.eat(/[\<\>]/),"atom"):n.eat(/[\+\-\*\/\&\|\:\!]/)?"atom":n.eat(/[a-zA-Z$@_\xa1-\uffff]/)?(n.eatWhile(/[\w$\xa1-\uffff]/),n.eat(/[\?\!\=]/),"atom"):"operator";if(t=="@"&&n.match(/^@?[a-zA-Z_\xa1-\uffff]/))return n.eat("@"),n.eatWhile(/[\w\xa1-\uffff]/),"propertyName";if(t=="$")return n.eat(/[a-zA-Z_]/)?n.eatWhile(/[\w]/):n.eat(/\d/)?n.eat(/\d/):n.next(),"variableName.special";if(/[a-zA-Z_\xa1-\uffff]/.test(t))return n.eatWhile(/[\w\xa1-\uffff]/),n.eat(/[\?\!]/),n.eat(":")?"atom":"variable";if(t=="|"&&(e.varList||e.lastTok=="{"||e.lastTok=="do"))return Qe="|",null;if(/[\(\)\[\]{}\\;]/.test(t))return Qe=t,null;if(t=="-"&&n.eat(">"))return"operator";if(/[=+\-\/*:\.^%<>~|]/.test(t)){var l=n.eatWhile(/[=+\-\/*:\.^%<>~|]/);return t=="."&&!l&&(Qe="."),"operator"}else return null}}}function iw(n){for(var e=n.pos,t=0,i,s=!1,r=!1;(i=n.next())!=null;)if(r)r=!1;else{if("[{(".indexOf(i)>-1)t++;else if("]})".indexOf(i)>-1){if(t--,t<0)break}else if(i=="/"&&t==0){s=!0;break}r=i=="\\"}return n.backUp(n.pos-e),s}function Pl(n){return n||(n=1),function(e,t){if(e.peek()=="}"){if(n==1)return t.tokenize.pop(),t.tokenize[t.tokenize.length-1](e,t);t.tokenize[t.tokenize.length-1]=Pl(n-1)}else e.peek()=="{"&&(t.tokenize[t.tokenize.length-1]=Pl(n+1));return Qs(e,t)}}function nw(){var n=!1;return function(e,t){return n?(t.tokenize.pop(),t.tokenize[t.tokenize.length-1](e,t)):(n=!0,Qs(e,t))}}function Ln(n,e,t,i){return function(s,r){var o=!1,l;for(r.context.type==="read-quoted-paused"&&(r.context=r.context.prev,s.eat("}"));(l=s.next())!=null;){if(l==n&&(i||!o)){r.tokenize.pop();break}if(t&&l=="#"&&!o){if(s.eat("{")){n=="}"&&(r.context={prev:r.context,type:"read-quoted-paused"}),r.tokenize.push(Pl());break}else if(/[@\$]/.test(s.peek())){r.tokenize.push(nw());break}}o=!o&&l=="\\"}return e}}function sw(n,e){return function(t,i){return e&&t.eatSpace(),t.match(n)?i.tokenize.pop():t.skipToEnd(),"string"}}function rw(n,e){return n.sol()&&n.match("=end")&&n.eol()&&e.tokenize.pop(),n.skipToEnd(),"comment"}var bp={startState:function(n){return{tokenize:[Qs],indented:0,context:{type:"top",indented:-n},continuedLine:!1,lastTok:null,varList:!1}},token:function(n,e){Qe=null,n.sol()&&(e.indented=n.indentation());var t=e.tokenize[e.tokenize.length-1](n,e),i,s=Qe;if(t=="variable"){var r=n.current();t=e.lastTok=="."?"property":Qv.propertyIsEnumerable(n.current())?"keyword":/^[A-Z]/.test(r)?"tag":e.lastTok=="def"||e.lastTok=="class"||e.varList?"def":"variable",t=="keyword"&&(s=r,Zv.propertyIsEnumerable(r)?i="indent":ew.propertyIsEnumerable(r)?i="dedent":((r=="if"||r=="unless")&&n.column()==n.indentation()||r=="do"&&e.context.indented<e.indented)&&(i="indent"))}return(Qe||t&&t!="comment")&&(e.lastTok=s),Qe=="|"&&(e.varList=!e.varList),i=="indent"||/[\(\[\{]/.test(Qe)?e.context={prev:e.context,type:Qe||t,indented:e.indented}:(i=="dedent"||/[\)\]\}]/.test(Qe))&&e.context.prev&&(e.context=e.context.prev),n.eol()&&(e.continuedLine=Qe=="\\"||t=="operator"),t},indent:function(n,e,t){if(n.tokenize[n.tokenize.length-1]!=Qs)return null;var i=e&&e.charAt(0),s=n.context,r=s.type==tw[i]||s.type=="keyword"&&/^(?:end|until|else|elsif|when|rescue)\b/.test(e);return s.indented+(r?0:t.unit)+(n.continuedLine?t.unit:0)},languageData:{indentOnInput:/^\s*(?:end|rescue|elsif|else|\})$/,commentTokens:{line:"#"},autocomplete:gp}};var Zs=class extends Me{connect(){this.editor=new C({parent:this.element,state:B.create({doc:this.scriptValue,extensions:[lp,Tn.define(bp),ze.high(Bt.of([{key:"Mod-Enter",run:()=>this.submitCodeSelected}])),Bt.of([Gf])]})})}get submitCodeSelected(){let n=new CustomEvent("codeSubmission",{detail:{selection:this.selectedBlock}});return this.element.dispatchEvent(n),!0}get selection(){return this.editor.state.selection.main}get doc(){return this.editor.state.doc}get selectedBlock(){let{from:n,to:e}=this.selection;return n!=e?this.doc.toString().slice(n,e):this.doc.lineAt(n).text}};Bi(Zs,"values",{script:String});window.Stimulus=zi.start();Stimulus.register("hello",Er);Stimulus.register("playground",Mr);Stimulus.register("search-scripts",ji);Stimulus.register("select-script",Lr);Stimulus.register("codemirror",Zs);})();
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../../app/assets/stylesheets/playground.scss"],"names":[],"mappings":"AAAA;EAAkB;EAAiB;EAAa;;AAC9C;EAAW;EACT;EAAoB;;AACpB;EACE;;AAIJ;EAAmB;;AAEnB;EAAQ;EAAa;EAAc;;AACnC;EAAW;;AAEX;EACE;EACG;EACK;;AAGV;EAAS;EAAiB;EAAc;EAAa;;AACrD;EAAQ;EAAsB;;AAC9B;EAAgB;;AAEhB;EAAiC;;AAC/B;EAAe;;AACf;EAAa;EAA8B;EAAO;EAAS;EAAU","file":"playground.css"}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails-playground
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexandre Barret
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-07-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: web-console
|
@@ -48,13 +48,13 @@ files:
|
|
48
48
|
- MIT-LICENSE
|
49
49
|
- README.md
|
50
50
|
- Rakefile
|
51
|
-
- app/assets/javascripts/application.js
|
52
51
|
- app/assets/javascripts/controllers/codemirror_controller.js
|
53
52
|
- app/assets/javascripts/controllers/hello_controller.js
|
54
53
|
- app/assets/javascripts/controllers/playground_controller.js
|
55
54
|
- app/assets/javascripts/controllers/search_scripts_controller.js
|
56
55
|
- app/assets/javascripts/controllers/select_script_controller.js
|
57
|
-
- app/assets/
|
56
|
+
- app/assets/javascripts/playground.js
|
57
|
+
- app/assets/stylesheets/playground.scss
|
58
58
|
- app/controllers/playground/application_controller.rb
|
59
59
|
- app/controllers/playground/consoles_controller.rb
|
60
60
|
- app/controllers/playground/scripts_controller.rb
|
@@ -64,7 +64,7 @@ files:
|
|
64
64
|
- app/jobs/playground/application_job.rb
|
65
65
|
- app/mailers/playground/application_mailer.rb
|
66
66
|
- app/models/playground/application_record.rb
|
67
|
-
- app/views/layouts/playground/
|
67
|
+
- app/views/layouts/playground/editor.html.erb
|
68
68
|
- app/views/playground/consoles/show.html.erb
|
69
69
|
- app/views/playground/scripts/_script.html.erb
|
70
70
|
- app/views/playground/scripts/_script_select_box.html.erb
|
@@ -78,9 +78,9 @@ files:
|
|
78
78
|
- lib/playground/templates/index.html.erb
|
79
79
|
- lib/playground/version.rb
|
80
80
|
- lib/tasks/playground_tasks.rake
|
81
|
-
- vendor/javascripts/playground/
|
82
|
-
- vendor/stylesheets/playground/
|
83
|
-
- vendor/stylesheets/playground/
|
81
|
+
- vendor/javascripts/playground/playground.js
|
82
|
+
- vendor/stylesheets/playground/playground.css
|
83
|
+
- vendor/stylesheets/playground/playground.css.map
|
84
84
|
homepage: https://github.com/AlexB52/rails-playground
|
85
85
|
licenses:
|
86
86
|
- MIT
|
@@ -102,7 +102,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
104
104
|
requirements: []
|
105
|
-
rubygems_version: 3.
|
105
|
+
rubygems_version: 3.4.21
|
106
106
|
signing_key:
|
107
107
|
specification_version: 4
|
108
108
|
summary: A local playground for Rails applications.
|
@@ -1,14 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<title>Playground</title>
|
5
|
-
<%= csrf_meta_tags %>
|
6
|
-
<%= csp_meta_tag %>
|
7
|
-
|
8
|
-
<%= javascript_include_tag "playground/application", skip_pipeline: true, nonce: true, media: "all" %>
|
9
|
-
<%= stylesheet_link_tag "/stylesheets/playground/application", media: "all" %>
|
10
|
-
</head>
|
11
|
-
<body id="playground">
|
12
|
-
<%= yield %>
|
13
|
-
</body>
|
14
|
-
</html>
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../../app/assets/stylesheets/playground/application.scss"],"names":[],"mappings":"AAAA;EAAkB;EAAiB;EAAa;;AAC9C;EAAW;EACT;EAAoB;;AACpB;EACE;;AAIJ;EAAmB;;AAEnB;EAAQ;EAAa;EAAc;;AACnC;EAAW;;AAEX;EACE;EACG;EACK;;AAGV;EAAS;EAAiB;EAAc;EAAa;;AACrD;EAAQ;EAAsB;;AAC9B;EAAgB;;AAEhB;EAAiC;;AAC/B;EAAe;;AACf;EAAa;EAA8B;EAAO;EAAS;EAAU","file":"application.css"}
|
File without changes
|