@grame/faust-web-component 0.2.11 → 0.2.12
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.
- package/dist/faust-web-component.js +15 -15
- package/package.json +1 -1
- package/src/faust-editor.ts +5 -1
- package/src/faust-widget.ts +5 -1
@@ -1,6 +1,6 @@
|
|
1
|
-
var Vl=Object.defineProperty;var Xl=(Xg,
|
1
|
+
var Vl=Object.defineProperty;var Xl=(Xg,u,sg)=>u in Xg?Vl(Xg,u,{enumerable:!0,configurable:!0,writable:!0,value:sg}):Xg[u]=sg;var vQ=(Xg,u,sg)=>(Xl(Xg,typeof u!="symbol"?u+"":u,sg),sg);(function(){"use strict";function Xg(I,A){var g=Object.keys(I);if(Object.getOwnPropertySymbols){var B=Object.getOwnPropertySymbols(I);A&&(B=B.filter(function(C){return Object.getOwnPropertyDescriptor(I,C).enumerable})),g.push.apply(g,B)}return g}function u(I){for(var A=1;A<arguments.length;A++){var g=arguments[A]!=null?arguments[A]:{};A%2?Xg(Object(g),!0).forEach(function(B){aA(I,B,g[B])}):Object.getOwnPropertyDescriptors?Object.defineProperties(I,Object.getOwnPropertyDescriptors(g)):Xg(Object(g)).forEach(function(B){Object.defineProperty(I,B,Object.getOwnPropertyDescriptor(g,B))})}return I}function sg(I){"@babel/helpers - typeof";return sg=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(A){return typeof A}:function(A){return A&&typeof Symbol=="function"&&A.constructor===Symbol&&A!==Symbol.prototype?"symbol":typeof A},sg(I)}function mL(I,A){if(!(I instanceof A))throw new TypeError("Cannot call a class as a function")}function ZN(I,A){for(var g=0;g<A.length;g++){var B=A[g];B.enumerable=B.enumerable||!1,B.configurable=!0,"value"in B&&(B.writable=!0),Object.defineProperty(I,B.key,B)}}function pL(I,A,g){return A&&ZN(I.prototype,A),g&&ZN(I,g),Object.defineProperty(I,"prototype",{writable:!1}),I}function aA(I,A,g){return A in I?Object.defineProperty(I,A,{value:g,enumerable:!0,configurable:!0,writable:!0}):I[A]=g,I}function VQ(I,A){return nL(I)||OL(I,A)||hN(I,A)||uL()}function oB(I){return xL(I)||WL(I)||hN(I)||JL()}function xL(I){if(Array.isArray(I))return XQ(I)}function nL(I){if(Array.isArray(I))return I}function WL(I){if(typeof Symbol<"u"&&I[Symbol.iterator]!=null||I["@@iterator"]!=null)return Array.from(I)}function OL(I,A){var g=I==null?null:typeof Symbol<"u"&&I[Symbol.iterator]||I["@@iterator"];if(g!=null){var B=[],C=!0,Q=!1,E,N;try{for(g=g.call(I);!(C=(E=g.next()).done)&&(B.push(E.value),!(A&&B.length===A));C=!0);}catch(D){Q=!0,N=D}finally{try{!C&&g.return!=null&&g.return()}finally{if(Q)throw N}}return B}}function hN(I,A){if(I){if(typeof I=="string")return XQ(I,A);var g=Object.prototype.toString.call(I).slice(8,-1);if(g==="Object"&&I.constructor&&(g=I.constructor.name),g==="Map"||g==="Set")return Array.from(I);if(g==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(g))return XQ(I,A)}}function XQ(I,A){(A==null||A>I.length)&&(A=I.length);for(var g=0,B=new Array(A);g<A;g++)B[g]=I[g];return B}function JL(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
2
2
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function uL(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
3
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var aN=function(){},rQ={},bN={},dN=null,HN={mark:aN,measure:aN};try{typeof window<"u"&&(rQ=window),typeof document<"u"&&(bN=document),typeof MutationObserver<"u"&&(dN=MutationObserver),typeof performance<"u"&&(HN=performance)}catch{}var vL=rQ.navigator||{},RN=vL.userAgent,UN=RN===void 0?"":RN,rg=rQ,iA=bN,TN=dN,QC=HN;rg.document;var zg=!!iA.documentElement&&!!iA.head&&typeof iA.addEventListener=="function"&&typeof iA.createElement=="function",eN=~UN.indexOf("MSIE")||~UN.indexOf("Trident/"),EC,DC,NC,oC,MC,Fg="___FONT_AWESOME___",fQ=16,zN="fa",FN="svg-inline--fa",YI="data-fa-i2svg",PQ="data-fa-pseudo-element",VL="data-fa-pseudo-element-pending",qQ="data-prefix",_Q="data-icon",jN="fontawesome-i2svg",XL="async",rL=["HTML","HEAD","STYLE","SCRIPT"],mN=function(){try{return process.env.NODE_ENV==="production"}catch{return!1}}(),LA="classic",sA="sharp",$Q=[LA,sA];function MB(I){return new Proxy(I,{get:function(g,B){return B in g?g[B]:g[LA]}})}var GB=MB((EC={},aA(EC,LA,{fa:"solid",fas:"solid","fa-solid":"solid",far:"regular","fa-regular":"regular",fal:"light","fa-light":"light",fat:"thin","fa-thin":"thin",fad:"duotone","fa-duotone":"duotone",fab:"brands","fa-brands":"brands",fak:"kit","fa-kit":"kit"}),aA(EC,sA,{fa:"solid",fass:"solid","fa-solid":"solid",fasr:"regular","fa-regular":"regular",fasl:"light","fa-light":"light"}),EC)),iB=MB((DC={},aA(DC,LA,{solid:"fas",regular:"far",light:"fal",thin:"fat",duotone:"fad",brands:"fab",kit:"fak"}),aA(DC,sA,{solid:"fass",regular:"fasr",light:"fasl"}),DC)),LB=MB((NC={},aA(NC,LA,{fab:"fa-brands",fad:"fa-duotone",fak:"fa-kit",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"}),aA(NC,sA,{fass:"fa-solid",fasr:"fa-regular",fasl:"fa-light"}),NC)),fL=MB((oC={},aA(oC,LA,{"fa-brands":"fab","fa-duotone":"fad","fa-kit":"fak","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"}),aA(oC,sA,{"fa-solid":"fass","fa-regular":"fasr","fa-light":"fasl"}),oC)),PL=/fa(s|r|l|t|d|b|k|ss|sr|sl)?[\-\ ]/,pN="fa-layers-text",qL=/Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp|Kit)?.*/i,_L=MB((MC={},aA(MC,LA,{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"}),aA(MC,sA,{900:"fass",400:"fasr",300:"fasl"}),MC)),xN=[1,2,3,4,5,6,7,8,9,10],$L=xN.concat([11,12,13,14,15,16,17,18,19,20]),AS=["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"],yI={GROUP:"duotone-group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},SB=new Set;Object.keys(iB[LA]).map(SB.add.bind(SB)),Object.keys(iB[sA]).map(SB.add.bind(SB));var gS=[].concat($Q,oB(SB),["2xs","xs","sm","lg","xl","2xl","beat","border","fade","beat-fade","bounce","flip-both","flip-horizontal","flip-vertical","flip","fw","inverse","layers-counter","layers-text","layers","li","pull-left","pull-right","pulse","rotate-180","rotate-270","rotate-90","rotate-by","shake","spin-pulse","spin-reverse","spin","stack-1x","stack-2x","stack","ul",yI.GROUP,yI.SWAP_OPACITY,yI.PRIMARY,yI.SECONDARY]).concat(xN.map(function(I){return"".concat(I,"x")})).concat($L.map(function(I){return"w-".concat(I)})),cB=rg.FontAwesomeConfig||{};function IS(I){var A=iA.querySelector("script["+I+"]");if(A)return A.getAttribute(I)}function BS(I){return I===""?!0:I==="false"?!1:I==="true"?!0:I}if(iA&&typeof iA.querySelector=="function"){var CS=[["data-family-prefix","familyPrefix"],["data-css-prefix","cssPrefix"],["data-family-default","familyDefault"],["data-style-default","styleDefault"],["data-replacement-class","replacementClass"],["data-auto-replace-svg","autoReplaceSvg"],["data-auto-add-css","autoAddCss"],["data-auto-a11y","autoA11y"],["data-search-pseudo-elements","searchPseudoElements"],["data-observe-mutations","observeMutations"],["data-mutate-approach","mutateApproach"],["data-keep-original-source","keepOriginalSource"],["data-measure-performance","measurePerformance"],["data-show-missing-icons","showMissingIcons"]];CS.forEach(function(I){var A=VQ(I,2),g=A[0],B=A[1],C=BS(IS(g));C!=null&&(cB[B]=C)})}var nN={styleDefault:"solid",familyDefault:"classic",cssPrefix:zN,replacementClass:FN,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:"async",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0};cB.familyPrefix&&(cB.cssPrefix=cB.familyPrefix);var zI=
|
3
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var aN=function(){},rQ={},bN={},dN=null,HN={mark:aN,measure:aN};try{typeof window<"u"&&(rQ=window),typeof document<"u"&&(bN=document),typeof MutationObserver<"u"&&(dN=MutationObserver),typeof performance<"u"&&(HN=performance)}catch{}var vL=rQ.navigator||{},RN=vL.userAgent,UN=RN===void 0?"":RN,rg=rQ,iA=bN,TN=dN,QC=HN;rg.document;var zg=!!iA.documentElement&&!!iA.head&&typeof iA.addEventListener=="function"&&typeof iA.createElement=="function",eN=~UN.indexOf("MSIE")||~UN.indexOf("Trident/"),EC,DC,NC,oC,MC,Fg="___FONT_AWESOME___",fQ=16,zN="fa",FN="svg-inline--fa",YI="data-fa-i2svg",PQ="data-fa-pseudo-element",VL="data-fa-pseudo-element-pending",qQ="data-prefix",_Q="data-icon",jN="fontawesome-i2svg",XL="async",rL=["HTML","HEAD","STYLE","SCRIPT"],mN=function(){try{return process.env.NODE_ENV==="production"}catch{return!1}}(),LA="classic",sA="sharp",$Q=[LA,sA];function MB(I){return new Proxy(I,{get:function(g,B){return B in g?g[B]:g[LA]}})}var GB=MB((EC={},aA(EC,LA,{fa:"solid",fas:"solid","fa-solid":"solid",far:"regular","fa-regular":"regular",fal:"light","fa-light":"light",fat:"thin","fa-thin":"thin",fad:"duotone","fa-duotone":"duotone",fab:"brands","fa-brands":"brands",fak:"kit","fa-kit":"kit"}),aA(EC,sA,{fa:"solid",fass:"solid","fa-solid":"solid",fasr:"regular","fa-regular":"regular",fasl:"light","fa-light":"light"}),EC)),iB=MB((DC={},aA(DC,LA,{solid:"fas",regular:"far",light:"fal",thin:"fat",duotone:"fad",brands:"fab",kit:"fak"}),aA(DC,sA,{solid:"fass",regular:"fasr",light:"fasl"}),DC)),LB=MB((NC={},aA(NC,LA,{fab:"fa-brands",fad:"fa-duotone",fak:"fa-kit",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"}),aA(NC,sA,{fass:"fa-solid",fasr:"fa-regular",fasl:"fa-light"}),NC)),fL=MB((oC={},aA(oC,LA,{"fa-brands":"fab","fa-duotone":"fad","fa-kit":"fak","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"}),aA(oC,sA,{"fa-solid":"fass","fa-regular":"fasr","fa-light":"fasl"}),oC)),PL=/fa(s|r|l|t|d|b|k|ss|sr|sl)?[\-\ ]/,pN="fa-layers-text",qL=/Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp|Kit)?.*/i,_L=MB((MC={},aA(MC,LA,{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"}),aA(MC,sA,{900:"fass",400:"fasr",300:"fasl"}),MC)),xN=[1,2,3,4,5,6,7,8,9,10],$L=xN.concat([11,12,13,14,15,16,17,18,19,20]),AS=["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"],yI={GROUP:"duotone-group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},SB=new Set;Object.keys(iB[LA]).map(SB.add.bind(SB)),Object.keys(iB[sA]).map(SB.add.bind(SB));var gS=[].concat($Q,oB(SB),["2xs","xs","sm","lg","xl","2xl","beat","border","fade","beat-fade","bounce","flip-both","flip-horizontal","flip-vertical","flip","fw","inverse","layers-counter","layers-text","layers","li","pull-left","pull-right","pulse","rotate-180","rotate-270","rotate-90","rotate-by","shake","spin-pulse","spin-reverse","spin","stack-1x","stack-2x","stack","ul",yI.GROUP,yI.SWAP_OPACITY,yI.PRIMARY,yI.SECONDARY]).concat(xN.map(function(I){return"".concat(I,"x")})).concat($L.map(function(I){return"w-".concat(I)})),cB=rg.FontAwesomeConfig||{};function IS(I){var A=iA.querySelector("script["+I+"]");if(A)return A.getAttribute(I)}function BS(I){return I===""?!0:I==="false"?!1:I==="true"?!0:I}if(iA&&typeof iA.querySelector=="function"){var CS=[["data-family-prefix","familyPrefix"],["data-css-prefix","cssPrefix"],["data-family-default","familyDefault"],["data-style-default","styleDefault"],["data-replacement-class","replacementClass"],["data-auto-replace-svg","autoReplaceSvg"],["data-auto-add-css","autoAddCss"],["data-auto-a11y","autoA11y"],["data-search-pseudo-elements","searchPseudoElements"],["data-observe-mutations","observeMutations"],["data-mutate-approach","mutateApproach"],["data-keep-original-source","keepOriginalSource"],["data-measure-performance","measurePerformance"],["data-show-missing-icons","showMissingIcons"]];CS.forEach(function(I){var A=VQ(I,2),g=A[0],B=A[1],C=BS(IS(g));C!=null&&(cB[B]=C)})}var nN={styleDefault:"solid",familyDefault:"classic",cssPrefix:zN,replacementClass:FN,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:"async",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0};cB.familyPrefix&&(cB.cssPrefix=cB.familyPrefix);var zI=u(u({},nN),cB);zI.autoReplaceSvg||(zI.observeMutations=!1);var P={};Object.keys(nN).forEach(function(I){Object.defineProperty(P,I,{enumerable:!0,set:function(g){zI[I]=g,YB.forEach(function(B){return B(P)})},get:function(){return zI[I]}})}),Object.defineProperty(P,"familyPrefix",{enumerable:!0,set:function(A){zI.cssPrefix=A,YB.forEach(function(g){return g(P)})},get:function(){return zI.cssPrefix}}),rg.FontAwesomeConfig=P;var YB=[];function QS(I){return YB.push(I),function(){YB.splice(YB.indexOf(I),1)}}var fg=fQ,Kg={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};function ES(I){if(!(!I||!zg)){var A=iA.createElement("style");A.setAttribute("type","text/css"),A.innerHTML=I;for(var g=iA.head.childNodes,B=null,C=g.length-1;C>-1;C--){var Q=g[C],E=(Q.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(E)>-1&&(B=Q)}return iA.head.insertBefore(A,B),I}}var DS="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function yB(){for(var I=12,A="";I-- >0;)A+=DS[Math.random()*62|0];return A}function FI(I){for(var A=[],g=(I||[]).length>>>0;g--;)A[g]=I[g];return A}function AE(I){return I.classList?FI(I.classList):(I.getAttribute("class")||"").split(" ").filter(function(A){return A})}function WN(I){return"".concat(I).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function NS(I){return Object.keys(I||{}).reduce(function(A,g){return A+"".concat(g,'="').concat(WN(I[g]),'" ')},"").trim()}function GC(I){return Object.keys(I||{}).reduce(function(A,g){return A+"".concat(g,": ").concat(I[g].trim(),";")},"")}function gE(I){return I.size!==Kg.size||I.x!==Kg.x||I.y!==Kg.y||I.rotate!==Kg.rotate||I.flipX||I.flipY}function oS(I){var A=I.transform,g=I.containerWidth,B=I.iconWidth,C={transform:"translate(".concat(g/2," 256)")},Q="translate(".concat(A.x*32,", ").concat(A.y*32,") "),E="scale(".concat(A.size/16*(A.flipX?-1:1),", ").concat(A.size/16*(A.flipY?-1:1),") "),N="rotate(".concat(A.rotate," 0 0)"),D={transform:"".concat(Q," ").concat(E," ").concat(N)},o={transform:"translate(".concat(B/2*-1," -256)")};return{outer:C,inner:D,path:o}}function MS(I){var A=I.transform,g=I.width,B=g===void 0?fQ:g,C=I.height,Q=C===void 0?fQ:C,E=I.startCentered,N=E===void 0?!1:E,D="";return N&&eN?D+="translate(".concat(A.x/fg-B/2,"em, ").concat(A.y/fg-Q/2,"em) "):N?D+="translate(calc(-50% + ".concat(A.x/fg,"em), calc(-50% + ").concat(A.y/fg,"em)) "):D+="translate(".concat(A.x/fg,"em, ").concat(A.y/fg,"em) "),D+="scale(".concat(A.size/fg*(A.flipX?-1:1),", ").concat(A.size/fg*(A.flipY?-1:1),") "),D+="rotate(".concat(A.rotate,"deg) "),D}var GS=`:root, :host {
|
4
4
|
--fa-font-solid: normal 900 1em/1 "Font Awesome 6 Solid";
|
5
5
|
--fa-font-regular: normal 400 1em/1 "Font Awesome 6 Regular";
|
6
6
|
--fa-font-light: normal 300 1em/1 "Font Awesome 6 Light";
|
@@ -756,9 +756,9 @@ svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {
|
|
756
756
|
.fad.fa-inverse,
|
757
757
|
.fa-duotone.fa-inverse {
|
758
758
|
color: var(--fa-inverse, #fff);
|
759
|
-
}`;function ON(){var I=zN,A=FN,g=P.cssPrefix,B=P.replacementClass,C=GS;if(g!==I||B!==A){var Q=new RegExp("\\.".concat(I,"\\-"),"g"),E=new RegExp("\\--".concat(I,"\\-"),"g"),N=new RegExp("\\.".concat(A),"g");C=C.replace(Q,".".concat(g,"-")).replace(E,"--".concat(g,"-")).replace(N,".".concat(B))}return C}var JN=!1;function IE(){P.autoAddCss&&!JN&&(ES(ON()),JN=!0)}var iS={mixout:function(){return{dom:{css:ON,insertCss:IE}}},hooks:function(){return{beforeDOMElementCreation:function(){IE()},beforeI2svg:function(){IE()}}}},jg=rg||{};jg[Fg]||(jg[Fg]={}),jg[Fg].styles||(jg[Fg].styles={}),jg[Fg].hooks||(jg[Fg].hooks={}),jg[Fg].shims||(jg[Fg].shims=[]);var ig=jg[Fg],uN=[],LS=function I(){iA.removeEventListener("DOMContentLoaded",I),iC=1,uN.map(function(A){return A()})},iC=!1;zg&&(iC=(iA.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(iA.readyState),iC||iA.addEventListener("DOMContentLoaded",LS));function SS(I){zg&&(iC?setTimeout(I,0):uN.push(I))}function wB(I){var A=I.tag,g=I.attributes,B=g===void 0?{}:g,C=I.children,Q=C===void 0?[]:C;return typeof I=="string"?WN(I):"<".concat(A," ").concat(NS(B),">").concat(Q.map(wB).join(""),"</").concat(A,">")}function vN(I,A,g){if(I&&I[A]&&I[A][g])return{prefix:A,iconName:g,icon:I[A][g]}}var cS=function(A,g){return function(B,C,Q,E){return A.call(g,B,C,Q,E)}},BE=function(A,g,B,C){var Q=Object.keys(A),E=Q.length,N=C!==void 0?cS(g,C):g,D,o,M;for(B===void 0?(D=1,M=A[Q[0]]):(D=0,M=B);D<E;D++)o=Q[D],M=N(M,A[o],o,A);return M};function YS(I){for(var A=[],g=0,B=I.length;g<B;){var C=I.charCodeAt(g++);if(C>=55296&&C<=56319&&g<B){var Q=I.charCodeAt(g++);(Q&64512)==56320?A.push(((C&1023)<<10)+(Q&1023)+65536):(A.push(C),g--)}else A.push(C)}return A}function CE(I){var A=YS(I);return A.length===1?A[0].toString(16):null}function yS(I,A){var g=I.length,B=I.charCodeAt(A),C;return B>=55296&&B<=56319&&g>A+1&&(C=I.charCodeAt(A+1),C>=56320&&C<=57343)?(B-55296)*1024+C-56320+65536:B}function VN(I){return Object.keys(I).reduce(function(A,g){var B=I[g],C=!!B.icon;return C?A[B.iconName]=B.icon:A[g]=B,A},{})}function QE(I,A){var g=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},B=g.skipHooks,C=B===void 0?!1:B,Q=VN(A);typeof ig.hooks.addPack=="function"&&!C?ig.hooks.addPack(I,VN(A)):ig.styles[I]=J(J({},ig.styles[I]||{}),Q),I==="fas"&&QE("fa",A)}var LC,SC,cC,jI=ig.styles,wS=ig.shims,tS=(LC={},aA(LC,LA,Object.values(LB[LA])),aA(LC,sA,Object.values(LB[sA])),LC),EE=null,XN={},rN={},fN={},PN={},qN={},sS=(SC={},aA(SC,LA,Object.keys(GB[LA])),aA(SC,sA,Object.keys(GB[sA])),SC);function KS(I){return~gS.indexOf(I)}function lS(I,A){var g=A.split("-"),B=g[0],C=g.slice(1).join("-");return B===I&&C!==""&&!KS(C)?C:null}var _N=function(){var A=function(Q){return BE(jI,function(E,N,D){return E[D]=BE(N,Q,{}),E},{})};XN=A(function(C,Q,E){if(Q[3]&&(C[Q[3]]=E),Q[2]){var N=Q[2].filter(function(D){return typeof D=="number"});N.forEach(function(D){C[D.toString(16)]=E})}return C}),rN=A(function(C,Q,E){if(C[E]=E,Q[2]){var N=Q[2].filter(function(D){return typeof D=="string"});N.forEach(function(D){C[D]=E})}return C}),qN=A(function(C,Q,E){var N=Q[2];return C[E]=E,N.forEach(function(D){C[D]=E}),C});var g="far"in jI||P.autoFetchSvg,B=BE(wS,function(C,Q){var E=Q[0],N=Q[1],D=Q[2];return N==="far"&&!g&&(N="fas"),typeof E=="string"&&(C.names[E]={prefix:N,iconName:D}),typeof E=="number"&&(C.unicodes[E.toString(16)]={prefix:N,iconName:D}),C},{names:{},unicodes:{}});fN=B.names,PN=B.unicodes,EE=YC(P.styleDefault,{family:P.familyDefault})};QS(function(I){EE=YC(I.styleDefault,{family:P.familyDefault})}),_N();function DE(I,A){return(XN[I]||{})[A]}function kS(I,A){return(rN[I]||{})[A]}function wI(I,A){return(qN[I]||{})[A]}function $N(I){return fN[I]||{prefix:null,iconName:null}}function ZS(I){var A=PN[I],g=DE("fas",I);return A||(g?{prefix:"fas",iconName:g}:null)||{prefix:null,iconName:null}}function Pg(){return EE}var NE=function(){return{prefix:null,iconName:null,rest:[]}};function YC(I){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},g=A.family,B=g===void 0?LA:g,C=GB[B][I],Q=iB[B][I]||iB[B][C],E=I in ig.styles?I:null;return Q||E||null}var Ao=(cC={},aA(cC,LA,Object.keys(LB[LA])),aA(cC,sA,Object.keys(LB[sA])),cC);function yC(I){var A,g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},B=g.skipLookups,C=B===void 0?!1:B,Q=(A={},aA(A,LA,"".concat(P.cssPrefix,"-").concat(LA)),aA(A,sA,"".concat(P.cssPrefix,"-").concat(sA)),A),E=null,N=LA;(I.includes(Q[LA])||I.some(function(o){return Ao[LA].includes(o)}))&&(N=LA),(I.includes(Q[sA])||I.some(function(o){return Ao[sA].includes(o)}))&&(N=sA);var D=I.reduce(function(o,M){var G=lS(P.cssPrefix,M);if(jI[M]?(M=tS[N].includes(M)?fL[N][M]:M,E=M,o.prefix=M):sS[N].indexOf(M)>-1?(E=M,o.prefix=YC(M,{family:N})):G?o.iconName=G:M!==P.replacementClass&&M!==Q[LA]&&M!==Q[sA]&&o.rest.push(M),!C&&o.prefix&&o.iconName){var i=E==="fa"?$N(o.iconName):{},L=wI(o.prefix,o.iconName);i.prefix&&(E=null),o.iconName=i.iconName||L||o.iconName,o.prefix=i.prefix||o.prefix,o.prefix==="far"&&!jI.far&&jI.fas&&!P.autoFetchSvg&&(o.prefix="fas")}return o},NE());return(I.includes("fa-brands")||I.includes("fab"))&&(D.prefix="fab"),(I.includes("fa-duotone")||I.includes("fad"))&&(D.prefix="fad"),!D.prefix&&N===sA&&(jI.fass||P.autoFetchSvg)&&(D.prefix="fass",D.iconName=wI(D.prefix,D.iconName)||D.iconName),(D.prefix==="fa"||E==="fa")&&(D.prefix=Pg()||"fas"),D}var hS=function(){function I(){mL(this,I),this.definitions={}}return pL(I,[{key:"add",value:function(){for(var g=this,B=arguments.length,C=new Array(B),Q=0;Q<B;Q++)C[Q]=arguments[Q];var E=C.reduce(this._pullDefinitions,{});Object.keys(E).forEach(function(N){g.definitions[N]=J(J({},g.definitions[N]||{}),E[N]),QE(N,E[N]);var D=LB[LA][N];D&&QE(D,E[N]),_N()})}},{key:"reset",value:function(){this.definitions={}}},{key:"_pullDefinitions",value:function(g,B){var C=B.prefix&&B.iconName&&B.icon?{0:B}:B;return Object.keys(C).map(function(Q){var E=C[Q],N=E.prefix,D=E.iconName,o=E.icon,M=o[2];g[N]||(g[N]={}),M.length>0&&M.forEach(function(G){typeof G=="string"&&(g[N][G]=o)}),g[N][D]=o}),g}}]),I}(),go=[],mI={},pI={},aS=Object.keys(pI);function bS(I,A){var g=A.mixoutsTo;return go=I,mI={},Object.keys(pI).forEach(function(B){aS.indexOf(B)===-1&&delete pI[B]}),go.forEach(function(B){var C=B.mixout?B.mixout():{};if(Object.keys(C).forEach(function(E){typeof C[E]=="function"&&(g[E]=C[E]),sg(C[E])==="object"&&Object.keys(C[E]).forEach(function(N){g[E]||(g[E]={}),g[E][N]=C[E][N]})}),B.hooks){var Q=B.hooks();Object.keys(Q).forEach(function(E){mI[E]||(mI[E]=[]),mI[E].push(Q[E])})}B.provides&&B.provides(pI)}),g}function oE(I,A){for(var g=arguments.length,B=new Array(g>2?g-2:0),C=2;C<g;C++)B[C-2]=arguments[C];var Q=mI[I]||[];return Q.forEach(function(E){A=E.apply(null,[A].concat(B))}),A}function tI(I){for(var A=arguments.length,g=new Array(A>1?A-1:0),B=1;B<A;B++)g[B-1]=arguments[B];var C=mI[I]||[];C.forEach(function(Q){Q.apply(null,g)})}function mg(){var I=arguments[0],A=Array.prototype.slice.call(arguments,1);return pI[I]?pI[I].apply(null,A):void 0}function ME(I){I.prefix==="fa"&&(I.prefix="fas");var A=I.iconName,g=I.prefix||Pg();if(A)return A=wI(g,A)||A,vN(Io.definitions,g,A)||vN(ig.styles,g,A)}var Io=new hS,dS=function(){P.autoReplaceSvg=!1,P.observeMutations=!1,tI("noAuto")},HS={i2svg:function(){var A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return zg?(tI("beforeI2svg",A),mg("pseudoElements2svg",A),mg("i2svg",A)):Promise.reject("Operation requires a DOM of some kind.")},watch:function(){var A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},g=A.autoReplaceSvgRoot;P.autoReplaceSvg===!1&&(P.autoReplaceSvg=!0),P.observeMutations=!0,SS(function(){US({autoReplaceSvgRoot:g}),tI("watch",A)})}},RS={icon:function(A){if(A===null)return null;if(sg(A)==="object"&&A.prefix&&A.iconName)return{prefix:A.prefix,iconName:wI(A.prefix,A.iconName)||A.iconName};if(Array.isArray(A)&&A.length===2){var g=A[1].indexOf("fa-")===0?A[1].slice(3):A[1],B=YC(A[0]);return{prefix:B,iconName:wI(B,g)||g}}if(typeof A=="string"&&(A.indexOf("".concat(P.cssPrefix,"-"))>-1||A.match(PL))){var C=yC(A.split(" "),{skipLookups:!0});return{prefix:C.prefix||Pg(),iconName:wI(C.prefix,C.iconName)||C.iconName}}if(typeof A=="string"){var Q=Pg();return{prefix:Q,iconName:wI(Q,A)||A}}}},_A={noAuto:dS,config:P,dom:HS,parse:RS,library:Io,findIconDefinition:ME,toHtml:wB},US=function(){var A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},g=A.autoReplaceSvgRoot,B=g===void 0?iA:g;(Object.keys(ig.styles).length>0||P.autoFetchSvg)&&zg&&P.autoReplaceSvg&&_A.dom.i2svg({node:B})};function wC(I,A){return Object.defineProperty(I,"abstract",{get:A}),Object.defineProperty(I,"html",{get:function(){return I.abstract.map(function(B){return wB(B)})}}),Object.defineProperty(I,"node",{get:function(){if(zg){var B=iA.createElement("div");return B.innerHTML=I.html,B.children}}}),I}function TS(I){var A=I.children,g=I.main,B=I.mask,C=I.attributes,Q=I.styles,E=I.transform;if(gE(E)&&g.found&&!B.found){var N=g.width,D=g.height,o={x:N/D/2,y:.5};C.style=GC(J(J({},Q),{},{"transform-origin":"".concat(o.x+E.x/16,"em ").concat(o.y+E.y/16,"em")}))}return[{tag:"svg",attributes:C,children:A}]}function eS(I){var A=I.prefix,g=I.iconName,B=I.children,C=I.attributes,Q=I.symbol,E=Q===!0?"".concat(A,"-").concat(P.cssPrefix,"-").concat(g):Q;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:J(J({},C),{},{id:E}),children:B}]}]}function GE(I){var A=I.icons,g=A.main,B=A.mask,C=I.prefix,Q=I.iconName,E=I.transform,N=I.symbol,D=I.title,o=I.maskId,M=I.titleId,G=I.extra,i=I.watchable,L=i===void 0?!1:i,Y=B.found?B:g,w=Y.width,t=Y.height,Z=C==="fak",h=[P.replacementClass,Q?"".concat(P.cssPrefix,"-").concat(Q):""].filter(function(H){return G.classes.indexOf(H)===-1}).filter(function(H){return H!==""||!!H}).concat(G.classes).join(" "),K={children:[],attributes:J(J({},G.attributes),{},{"data-prefix":C,"data-icon":Q,class:h,role:G.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(w," ").concat(t)})},y=Z&&!~G.classes.indexOf("fa-fw")?{width:"".concat(w/t*16*.0625,"em")}:{};L&&(K.attributes[YI]=""),D&&(K.children.push({tag:"title",attributes:{id:K.attributes["aria-labelledby"]||"title-".concat(M||yB())},children:[D]}),delete K.attributes.title);var S=J(J({},K),{},{prefix:C,iconName:Q,main:g,mask:B,maskId:o,transform:E,symbol:N,styles:J(J({},y),G.styles)}),c=B.found&&g.found?mg("generateAbstractMask",S)||{children:[],attributes:{}}:mg("generateAbstractIcon",S)||{children:[],attributes:{}},k=c.children,U=c.attributes;return S.children=k,S.attributes=U,N?eS(S):TS(S)}function Bo(I){var A=I.content,g=I.width,B=I.height,C=I.transform,Q=I.title,E=I.extra,N=I.watchable,D=N===void 0?!1:N,o=J(J(J({},E.attributes),Q?{title:Q}:{}),{},{class:E.classes.join(" ")});D&&(o[YI]="");var M=J({},E.styles);gE(C)&&(M.transform=MS({transform:C,startCentered:!0,width:g,height:B}),M["-webkit-transform"]=M.transform);var G=GC(M);G.length>0&&(o.style=G);var i=[];return i.push({tag:"span",attributes:o,children:[A]}),Q&&i.push({tag:"span",attributes:{class:"sr-only"},children:[Q]}),i}function zS(I){var A=I.content,g=I.title,B=I.extra,C=J(J(J({},B.attributes),g?{title:g}:{}),{},{class:B.classes.join(" ")}),Q=GC(B.styles);Q.length>0&&(C.style=Q);var E=[];return E.push({tag:"span",attributes:C,children:[A]}),g&&E.push({tag:"span",attributes:{class:"sr-only"},children:[g]}),E}var iE=ig.styles;function LE(I){var A=I[0],g=I[1],B=I.slice(4),C=VQ(B,1),Q=C[0],E=null;return Array.isArray(Q)?E={tag:"g",attributes:{class:"".concat(P.cssPrefix,"-").concat(yI.GROUP)},children:[{tag:"path",attributes:{class:"".concat(P.cssPrefix,"-").concat(yI.SECONDARY),fill:"currentColor",d:Q[0]}},{tag:"path",attributes:{class:"".concat(P.cssPrefix,"-").concat(yI.PRIMARY),fill:"currentColor",d:Q[1]}}]}:E={tag:"path",attributes:{fill:"currentColor",d:Q}},{found:!0,width:A,height:g,icon:E}}var FS={found:!1,width:512,height:512};function jS(I,A){!mN&&!P.showMissingIcons&&I&&console.error('Icon with name "'.concat(I,'" and prefix "').concat(A,'" is missing.'))}function SE(I,A){var g=A;return A==="fa"&&P.styleDefault!==null&&(A=Pg()),new Promise(function(B,C){if(mg("missingIconAbstract"),g==="fa"){var Q=$N(I)||{};I=Q.iconName||I,A=Q.prefix||A}if(I&&A&&iE[A]&&iE[A][I]){var E=iE[A][I];return B(LE(E))}jS(I,A),B(J(J({},FS),{},{icon:P.showMissingIcons&&I?mg("missingIconAbstract")||{}:{}}))})}var Co=function(){},cE=P.measurePerformance&&QC&&QC.mark&&QC.measure?QC:{mark:Co,measure:Co},tB='FA "6.4.2"',mS=function(A){return cE.mark("".concat(tB," ").concat(A," begins")),function(){return Qo(A)}},Qo=function(A){cE.mark("".concat(tB," ").concat(A," ends")),cE.measure("".concat(tB," ").concat(A),"".concat(tB," ").concat(A," begins"),"".concat(tB," ").concat(A," ends"))},YE={begin:mS,end:Qo},tC=function(){};function Eo(I){var A=I.getAttribute?I.getAttribute(YI):null;return typeof A=="string"}function pS(I){var A=I.getAttribute?I.getAttribute(qQ):null,g=I.getAttribute?I.getAttribute(_Q):null;return A&&g}function xS(I){return I&&I.classList&&I.classList.contains&&I.classList.contains(P.replacementClass)}function nS(){if(P.autoReplaceSvg===!0)return sC.replace;var I=sC[P.autoReplaceSvg];return I||sC.replace}function WS(I){return iA.createElementNS("http://www.w3.org/2000/svg",I)}function OS(I){return iA.createElement(I)}function Do(I){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},g=A.ceFn,B=g===void 0?I.tag==="svg"?WS:OS:g;if(typeof I=="string")return iA.createTextNode(I);var C=B(I.tag);Object.keys(I.attributes||[]).forEach(function(E){C.setAttribute(E,I.attributes[E])});var Q=I.children||[];return Q.forEach(function(E){C.appendChild(Do(E,{ceFn:B}))}),C}function JS(I){var A=" ".concat(I.outerHTML," ");return A="".concat(A,"Font Awesome fontawesome.com "),A}var sC={replace:function(A){var g=A[0];if(g.parentNode)if(A[1].forEach(function(C){g.parentNode.insertBefore(Do(C),g)}),g.getAttribute(YI)===null&&P.keepOriginalSource){var B=iA.createComment(JS(g));g.parentNode.replaceChild(B,g)}else g.remove()},nest:function(A){var g=A[0],B=A[1];if(~AE(g).indexOf(P.replacementClass))return sC.replace(A);var C=new RegExp("".concat(P.cssPrefix,"-.*"));if(delete B[0].attributes.id,B[0].attributes.class){var Q=B[0].attributes.class.split(" ").reduce(function(N,D){return D===P.replacementClass||D.match(C)?N.toSvg.push(D):N.toNode.push(D),N},{toNode:[],toSvg:[]});B[0].attributes.class=Q.toSvg.join(" "),Q.toNode.length===0?g.removeAttribute("class"):g.setAttribute("class",Q.toNode.join(" "))}var E=B.map(function(N){return wB(N)}).join(`
|
760
|
-
`);g.setAttribute(YI,""),g.innerHTML=E}};function No(I){I()}function oo(I,A){var g=typeof A=="function"?A:tC;if(I.length===0)g();else{var B=No;P.mutateApproach===XL&&(B=rg.requestAnimationFrame||No),B(function(){var C=nS(),Q=YE.begin("mutate");I.map(C),Q(),g()})}}var yE=!1;function Mo(){yE=!0}function wE(){yE=!1}var KC=null;function Go(I){if(TN&&P.observeMutations){var A=I.treeCallback,g=A===void 0?tC:A,B=I.nodeCallback,C=B===void 0?tC:B,Q=I.pseudoElementsCallback,E=Q===void 0?tC:Q,N=I.observeMutationsRoot,D=N===void 0?iA:N;KC=new TN(function(o){if(!yE){var M=Pg();FI(o).forEach(function(G){if(G.type==="childList"&&G.addedNodes.length>0&&!Eo(G.addedNodes[0])&&(P.searchPseudoElements&&E(G.target),g(G.target)),G.type==="attributes"&&G.target.parentNode&&P.searchPseudoElements&&E(G.target.parentNode),G.type==="attributes"&&Eo(G.target)&&~AS.indexOf(G.attributeName))if(G.attributeName==="class"&&pS(G.target)){var i=yC(AE(G.target)),L=i.prefix,Y=i.iconName;G.target.setAttribute(qQ,L||M),Y&&G.target.setAttribute(_Q,Y)}else xS(G.target)&&C(G.target)})}}),zg&&KC.observe(D,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function uS(){KC&&KC.disconnect()}function vS(I){var A=I.getAttribute("style"),g=[];return A&&(g=A.split(";").reduce(function(B,C){var Q=C.split(":"),E=Q[0],N=Q.slice(1);return E&&N.length>0&&(B[E]=N.join(":").trim()),B},{})),g}function VS(I){var A=I.getAttribute("data-prefix"),g=I.getAttribute("data-icon"),B=I.innerText!==void 0?I.innerText.trim():"",C=yC(AE(I));return C.prefix||(C.prefix=Pg()),A&&g&&(C.prefix=A,C.iconName=g),C.iconName&&C.prefix||(C.prefix&&B.length>0&&(C.iconName=kS(C.prefix,I.innerText)||DE(C.prefix,CE(I.innerText))),!C.iconName&&P.autoFetchSvg&&I.firstChild&&I.firstChild.nodeType===Node.TEXT_NODE&&(C.iconName=I.firstChild.data)),C}function XS(I){var A=FI(I.attributes).reduce(function(C,Q){return C.name!=="class"&&C.name!=="style"&&(C[Q.name]=Q.value),C},{}),g=I.getAttribute("title"),B=I.getAttribute("data-fa-title-id");return P.autoA11y&&(g?A["aria-labelledby"]="".concat(P.replacementClass,"-title-").concat(B||yB()):(A["aria-hidden"]="true",A.focusable="false")),A}function rS(){return{iconName:null,title:null,titleId:null,prefix:null,transform:Kg,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}}}function io(I){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{styleParser:!0},g=VS(I),B=g.iconName,C=g.prefix,Q=g.rest,E=XS(I),N=oE("parseNodeAttributes",{},I),D=A.styleParser?vS(I):[];return
|
761
|
-
`),I.removeAttribute(g),B()}).catch(C)}else B()}else B()})}function Qc(I){return Promise.all([Yo(I,"::before"),Yo(I,"::after")])}function Ec(I){return I.parentNode!==document.head&&!~rL.indexOf(I.tagName.toUpperCase())&&!I.getAttribute(PQ)&&(!I.parentNode||I.parentNode.tagName!=="svg")}function yo(I){if(zg)return new Promise(function(A,g){var B=FI(I.querySelectorAll("*")).filter(Ec).map(Qc),C=YE.begin("searchPseudoElements");Mo(),Promise.all(B).then(function(){C(),wE(),A()}).catch(function(){C(),wE(),g()})})}var Dc={hooks:function(){return{mutationObserverCallbacks:function(g){return g.pseudoElementsCallback=yo,g}}},provides:function(A){A.pseudoElements2svg=function(g){var B=g.node,C=B===void 0?iA:B;P.searchPseudoElements&&yo(C)}}},wo=!1,Nc={mixout:function(){return{dom:{unwatch:function(){Mo(),wo=!0}}}},hooks:function(){return{bootstrap:function(){Go(oE("mutationObserverCallbacks",{}))},noAuto:function(){uS()},watch:function(g){var B=g.observeMutationsRoot;wo?wE():Go(oE("mutationObserverCallbacks",{observeMutationsRoot:B}))}}}},to=function(A){var g={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return A.toLowerCase().split(" ").reduce(function(B,C){var Q=C.toLowerCase().split("-"),E=Q[0],N=Q.slice(1).join("-");if(E&&N==="h")return B.flipX=!0,B;if(E&&N==="v")return B.flipY=!0,B;if(N=parseFloat(N),isNaN(N))return B;switch(E){case"grow":B.size=B.size+N;break;case"shrink":B.size=B.size-N;break;case"left":B.x=B.x-N;break;case"right":B.x=B.x+N;break;case"up":B.y=B.y-N;break;case"down":B.y=B.y+N;break;case"rotate":B.rotate=B.rotate+N;break}return B},g)},oc={mixout:function(){return{parse:{transform:function(g){return to(g)}}}},hooks:function(){return{parseNodeAttributes:function(g,B){var C=B.getAttribute("data-fa-transform");return C&&(g.transform=to(C)),g}}},provides:function(A){A.generateAbstractTransformGrouping=function(g){var B=g.main,C=g.transform,Q=g.containerWidth,E=g.iconWidth,N={transform:"translate(".concat(Q/2," 256)")},D="translate(".concat(C.x*32,", ").concat(C.y*32,") "),o="scale(".concat(C.size/16*(C.flipX?-1:1),", ").concat(C.size/16*(C.flipY?-1:1),") "),M="rotate(".concat(C.rotate," 0 0)"),G={transform:"".concat(D," ").concat(o," ").concat(M)},i={transform:"translate(".concat(E/2*-1," -256)")},L={outer:N,inner:G,path:i};return{tag:"g",attributes:
|
759
|
+
}`;function ON(){var I=zN,A=FN,g=P.cssPrefix,B=P.replacementClass,C=GS;if(g!==I||B!==A){var Q=new RegExp("\\.".concat(I,"\\-"),"g"),E=new RegExp("\\--".concat(I,"\\-"),"g"),N=new RegExp("\\.".concat(A),"g");C=C.replace(Q,".".concat(g,"-")).replace(E,"--".concat(g,"-")).replace(N,".".concat(B))}return C}var JN=!1;function IE(){P.autoAddCss&&!JN&&(ES(ON()),JN=!0)}var iS={mixout:function(){return{dom:{css:ON,insertCss:IE}}},hooks:function(){return{beforeDOMElementCreation:function(){IE()},beforeI2svg:function(){IE()}}}},jg=rg||{};jg[Fg]||(jg[Fg]={}),jg[Fg].styles||(jg[Fg].styles={}),jg[Fg].hooks||(jg[Fg].hooks={}),jg[Fg].shims||(jg[Fg].shims=[]);var ig=jg[Fg],uN=[],LS=function I(){iA.removeEventListener("DOMContentLoaded",I),iC=1,uN.map(function(A){return A()})},iC=!1;zg&&(iC=(iA.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(iA.readyState),iC||iA.addEventListener("DOMContentLoaded",LS));function SS(I){zg&&(iC?setTimeout(I,0):uN.push(I))}function wB(I){var A=I.tag,g=I.attributes,B=g===void 0?{}:g,C=I.children,Q=C===void 0?[]:C;return typeof I=="string"?WN(I):"<".concat(A," ").concat(NS(B),">").concat(Q.map(wB).join(""),"</").concat(A,">")}function vN(I,A,g){if(I&&I[A]&&I[A][g])return{prefix:A,iconName:g,icon:I[A][g]}}var cS=function(A,g){return function(B,C,Q,E){return A.call(g,B,C,Q,E)}},BE=function(A,g,B,C){var Q=Object.keys(A),E=Q.length,N=C!==void 0?cS(g,C):g,D,o,M;for(B===void 0?(D=1,M=A[Q[0]]):(D=0,M=B);D<E;D++)o=Q[D],M=N(M,A[o],o,A);return M};function YS(I){for(var A=[],g=0,B=I.length;g<B;){var C=I.charCodeAt(g++);if(C>=55296&&C<=56319&&g<B){var Q=I.charCodeAt(g++);(Q&64512)==56320?A.push(((C&1023)<<10)+(Q&1023)+65536):(A.push(C),g--)}else A.push(C)}return A}function CE(I){var A=YS(I);return A.length===1?A[0].toString(16):null}function yS(I,A){var g=I.length,B=I.charCodeAt(A),C;return B>=55296&&B<=56319&&g>A+1&&(C=I.charCodeAt(A+1),C>=56320&&C<=57343)?(B-55296)*1024+C-56320+65536:B}function VN(I){return Object.keys(I).reduce(function(A,g){var B=I[g],C=!!B.icon;return C?A[B.iconName]=B.icon:A[g]=B,A},{})}function QE(I,A){var g=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},B=g.skipHooks,C=B===void 0?!1:B,Q=VN(A);typeof ig.hooks.addPack=="function"&&!C?ig.hooks.addPack(I,VN(A)):ig.styles[I]=u(u({},ig.styles[I]||{}),Q),I==="fas"&&QE("fa",A)}var LC,SC,cC,jI=ig.styles,wS=ig.shims,tS=(LC={},aA(LC,LA,Object.values(LB[LA])),aA(LC,sA,Object.values(LB[sA])),LC),EE=null,XN={},rN={},fN={},PN={},qN={},sS=(SC={},aA(SC,LA,Object.keys(GB[LA])),aA(SC,sA,Object.keys(GB[sA])),SC);function KS(I){return~gS.indexOf(I)}function lS(I,A){var g=A.split("-"),B=g[0],C=g.slice(1).join("-");return B===I&&C!==""&&!KS(C)?C:null}var _N=function(){var A=function(Q){return BE(jI,function(E,N,D){return E[D]=BE(N,Q,{}),E},{})};XN=A(function(C,Q,E){if(Q[3]&&(C[Q[3]]=E),Q[2]){var N=Q[2].filter(function(D){return typeof D=="number"});N.forEach(function(D){C[D.toString(16)]=E})}return C}),rN=A(function(C,Q,E){if(C[E]=E,Q[2]){var N=Q[2].filter(function(D){return typeof D=="string"});N.forEach(function(D){C[D]=E})}return C}),qN=A(function(C,Q,E){var N=Q[2];return C[E]=E,N.forEach(function(D){C[D]=E}),C});var g="far"in jI||P.autoFetchSvg,B=BE(wS,function(C,Q){var E=Q[0],N=Q[1],D=Q[2];return N==="far"&&!g&&(N="fas"),typeof E=="string"&&(C.names[E]={prefix:N,iconName:D}),typeof E=="number"&&(C.unicodes[E.toString(16)]={prefix:N,iconName:D}),C},{names:{},unicodes:{}});fN=B.names,PN=B.unicodes,EE=YC(P.styleDefault,{family:P.familyDefault})};QS(function(I){EE=YC(I.styleDefault,{family:P.familyDefault})}),_N();function DE(I,A){return(XN[I]||{})[A]}function kS(I,A){return(rN[I]||{})[A]}function wI(I,A){return(qN[I]||{})[A]}function $N(I){return fN[I]||{prefix:null,iconName:null}}function ZS(I){var A=PN[I],g=DE("fas",I);return A||(g?{prefix:"fas",iconName:g}:null)||{prefix:null,iconName:null}}function Pg(){return EE}var NE=function(){return{prefix:null,iconName:null,rest:[]}};function YC(I){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},g=A.family,B=g===void 0?LA:g,C=GB[B][I],Q=iB[B][I]||iB[B][C],E=I in ig.styles?I:null;return Q||E||null}var Ao=(cC={},aA(cC,LA,Object.keys(LB[LA])),aA(cC,sA,Object.keys(LB[sA])),cC);function yC(I){var A,g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},B=g.skipLookups,C=B===void 0?!1:B,Q=(A={},aA(A,LA,"".concat(P.cssPrefix,"-").concat(LA)),aA(A,sA,"".concat(P.cssPrefix,"-").concat(sA)),A),E=null,N=LA;(I.includes(Q[LA])||I.some(function(o){return Ao[LA].includes(o)}))&&(N=LA),(I.includes(Q[sA])||I.some(function(o){return Ao[sA].includes(o)}))&&(N=sA);var D=I.reduce(function(o,M){var G=lS(P.cssPrefix,M);if(jI[M]?(M=tS[N].includes(M)?fL[N][M]:M,E=M,o.prefix=M):sS[N].indexOf(M)>-1?(E=M,o.prefix=YC(M,{family:N})):G?o.iconName=G:M!==P.replacementClass&&M!==Q[LA]&&M!==Q[sA]&&o.rest.push(M),!C&&o.prefix&&o.iconName){var i=E==="fa"?$N(o.iconName):{},L=wI(o.prefix,o.iconName);i.prefix&&(E=null),o.iconName=i.iconName||L||o.iconName,o.prefix=i.prefix||o.prefix,o.prefix==="far"&&!jI.far&&jI.fas&&!P.autoFetchSvg&&(o.prefix="fas")}return o},NE());return(I.includes("fa-brands")||I.includes("fab"))&&(D.prefix="fab"),(I.includes("fa-duotone")||I.includes("fad"))&&(D.prefix="fad"),!D.prefix&&N===sA&&(jI.fass||P.autoFetchSvg)&&(D.prefix="fass",D.iconName=wI(D.prefix,D.iconName)||D.iconName),(D.prefix==="fa"||E==="fa")&&(D.prefix=Pg()||"fas"),D}var hS=function(){function I(){mL(this,I),this.definitions={}}return pL(I,[{key:"add",value:function(){for(var g=this,B=arguments.length,C=new Array(B),Q=0;Q<B;Q++)C[Q]=arguments[Q];var E=C.reduce(this._pullDefinitions,{});Object.keys(E).forEach(function(N){g.definitions[N]=u(u({},g.definitions[N]||{}),E[N]),QE(N,E[N]);var D=LB[LA][N];D&&QE(D,E[N]),_N()})}},{key:"reset",value:function(){this.definitions={}}},{key:"_pullDefinitions",value:function(g,B){var C=B.prefix&&B.iconName&&B.icon?{0:B}:B;return Object.keys(C).map(function(Q){var E=C[Q],N=E.prefix,D=E.iconName,o=E.icon,M=o[2];g[N]||(g[N]={}),M.length>0&&M.forEach(function(G){typeof G=="string"&&(g[N][G]=o)}),g[N][D]=o}),g}}]),I}(),go=[],mI={},pI={},aS=Object.keys(pI);function bS(I,A){var g=A.mixoutsTo;return go=I,mI={},Object.keys(pI).forEach(function(B){aS.indexOf(B)===-1&&delete pI[B]}),go.forEach(function(B){var C=B.mixout?B.mixout():{};if(Object.keys(C).forEach(function(E){typeof C[E]=="function"&&(g[E]=C[E]),sg(C[E])==="object"&&Object.keys(C[E]).forEach(function(N){g[E]||(g[E]={}),g[E][N]=C[E][N]})}),B.hooks){var Q=B.hooks();Object.keys(Q).forEach(function(E){mI[E]||(mI[E]=[]),mI[E].push(Q[E])})}B.provides&&B.provides(pI)}),g}function oE(I,A){for(var g=arguments.length,B=new Array(g>2?g-2:0),C=2;C<g;C++)B[C-2]=arguments[C];var Q=mI[I]||[];return Q.forEach(function(E){A=E.apply(null,[A].concat(B))}),A}function tI(I){for(var A=arguments.length,g=new Array(A>1?A-1:0),B=1;B<A;B++)g[B-1]=arguments[B];var C=mI[I]||[];C.forEach(function(Q){Q.apply(null,g)})}function mg(){var I=arguments[0],A=Array.prototype.slice.call(arguments,1);return pI[I]?pI[I].apply(null,A):void 0}function ME(I){I.prefix==="fa"&&(I.prefix="fas");var A=I.iconName,g=I.prefix||Pg();if(A)return A=wI(g,A)||A,vN(Io.definitions,g,A)||vN(ig.styles,g,A)}var Io=new hS,dS=function(){P.autoReplaceSvg=!1,P.observeMutations=!1,tI("noAuto")},HS={i2svg:function(){var A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return zg?(tI("beforeI2svg",A),mg("pseudoElements2svg",A),mg("i2svg",A)):Promise.reject("Operation requires a DOM of some kind.")},watch:function(){var A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},g=A.autoReplaceSvgRoot;P.autoReplaceSvg===!1&&(P.autoReplaceSvg=!0),P.observeMutations=!0,SS(function(){US({autoReplaceSvgRoot:g}),tI("watch",A)})}},RS={icon:function(A){if(A===null)return null;if(sg(A)==="object"&&A.prefix&&A.iconName)return{prefix:A.prefix,iconName:wI(A.prefix,A.iconName)||A.iconName};if(Array.isArray(A)&&A.length===2){var g=A[1].indexOf("fa-")===0?A[1].slice(3):A[1],B=YC(A[0]);return{prefix:B,iconName:wI(B,g)||g}}if(typeof A=="string"&&(A.indexOf("".concat(P.cssPrefix,"-"))>-1||A.match(PL))){var C=yC(A.split(" "),{skipLookups:!0});return{prefix:C.prefix||Pg(),iconName:wI(C.prefix,C.iconName)||C.iconName}}if(typeof A=="string"){var Q=Pg();return{prefix:Q,iconName:wI(Q,A)||A}}}},_A={noAuto:dS,config:P,dom:HS,parse:RS,library:Io,findIconDefinition:ME,toHtml:wB},US=function(){var A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},g=A.autoReplaceSvgRoot,B=g===void 0?iA:g;(Object.keys(ig.styles).length>0||P.autoFetchSvg)&&zg&&P.autoReplaceSvg&&_A.dom.i2svg({node:B})};function wC(I,A){return Object.defineProperty(I,"abstract",{get:A}),Object.defineProperty(I,"html",{get:function(){return I.abstract.map(function(B){return wB(B)})}}),Object.defineProperty(I,"node",{get:function(){if(zg){var B=iA.createElement("div");return B.innerHTML=I.html,B.children}}}),I}function TS(I){var A=I.children,g=I.main,B=I.mask,C=I.attributes,Q=I.styles,E=I.transform;if(gE(E)&&g.found&&!B.found){var N=g.width,D=g.height,o={x:N/D/2,y:.5};C.style=GC(u(u({},Q),{},{"transform-origin":"".concat(o.x+E.x/16,"em ").concat(o.y+E.y/16,"em")}))}return[{tag:"svg",attributes:C,children:A}]}function eS(I){var A=I.prefix,g=I.iconName,B=I.children,C=I.attributes,Q=I.symbol,E=Q===!0?"".concat(A,"-").concat(P.cssPrefix,"-").concat(g):Q;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:u(u({},C),{},{id:E}),children:B}]}]}function GE(I){var A=I.icons,g=A.main,B=A.mask,C=I.prefix,Q=I.iconName,E=I.transform,N=I.symbol,D=I.title,o=I.maskId,M=I.titleId,G=I.extra,i=I.watchable,L=i===void 0?!1:i,Y=B.found?B:g,w=Y.width,t=Y.height,Z=C==="fak",h=[P.replacementClass,Q?"".concat(P.cssPrefix,"-").concat(Q):""].filter(function(H){return G.classes.indexOf(H)===-1}).filter(function(H){return H!==""||!!H}).concat(G.classes).join(" "),K={children:[],attributes:u(u({},G.attributes),{},{"data-prefix":C,"data-icon":Q,class:h,role:G.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(w," ").concat(t)})},y=Z&&!~G.classes.indexOf("fa-fw")?{width:"".concat(w/t*16*.0625,"em")}:{};L&&(K.attributes[YI]=""),D&&(K.children.push({tag:"title",attributes:{id:K.attributes["aria-labelledby"]||"title-".concat(M||yB())},children:[D]}),delete K.attributes.title);var S=u(u({},K),{},{prefix:C,iconName:Q,main:g,mask:B,maskId:o,transform:E,symbol:N,styles:u(u({},y),G.styles)}),c=B.found&&g.found?mg("generateAbstractMask",S)||{children:[],attributes:{}}:mg("generateAbstractIcon",S)||{children:[],attributes:{}},l=c.children,U=c.attributes;return S.children=l,S.attributes=U,N?eS(S):TS(S)}function Bo(I){var A=I.content,g=I.width,B=I.height,C=I.transform,Q=I.title,E=I.extra,N=I.watchable,D=N===void 0?!1:N,o=u(u(u({},E.attributes),Q?{title:Q}:{}),{},{class:E.classes.join(" ")});D&&(o[YI]="");var M=u({},E.styles);gE(C)&&(M.transform=MS({transform:C,startCentered:!0,width:g,height:B}),M["-webkit-transform"]=M.transform);var G=GC(M);G.length>0&&(o.style=G);var i=[];return i.push({tag:"span",attributes:o,children:[A]}),Q&&i.push({tag:"span",attributes:{class:"sr-only"},children:[Q]}),i}function zS(I){var A=I.content,g=I.title,B=I.extra,C=u(u(u({},B.attributes),g?{title:g}:{}),{},{class:B.classes.join(" ")}),Q=GC(B.styles);Q.length>0&&(C.style=Q);var E=[];return E.push({tag:"span",attributes:C,children:[A]}),g&&E.push({tag:"span",attributes:{class:"sr-only"},children:[g]}),E}var iE=ig.styles;function LE(I){var A=I[0],g=I[1],B=I.slice(4),C=VQ(B,1),Q=C[0],E=null;return Array.isArray(Q)?E={tag:"g",attributes:{class:"".concat(P.cssPrefix,"-").concat(yI.GROUP)},children:[{tag:"path",attributes:{class:"".concat(P.cssPrefix,"-").concat(yI.SECONDARY),fill:"currentColor",d:Q[0]}},{tag:"path",attributes:{class:"".concat(P.cssPrefix,"-").concat(yI.PRIMARY),fill:"currentColor",d:Q[1]}}]}:E={tag:"path",attributes:{fill:"currentColor",d:Q}},{found:!0,width:A,height:g,icon:E}}var FS={found:!1,width:512,height:512};function jS(I,A){!mN&&!P.showMissingIcons&&I&&console.error('Icon with name "'.concat(I,'" and prefix "').concat(A,'" is missing.'))}function SE(I,A){var g=A;return A==="fa"&&P.styleDefault!==null&&(A=Pg()),new Promise(function(B,C){if(mg("missingIconAbstract"),g==="fa"){var Q=$N(I)||{};I=Q.iconName||I,A=Q.prefix||A}if(I&&A&&iE[A]&&iE[A][I]){var E=iE[A][I];return B(LE(E))}jS(I,A),B(u(u({},FS),{},{icon:P.showMissingIcons&&I?mg("missingIconAbstract")||{}:{}}))})}var Co=function(){},cE=P.measurePerformance&&QC&&QC.mark&&QC.measure?QC:{mark:Co,measure:Co},tB='FA "6.4.2"',mS=function(A){return cE.mark("".concat(tB," ").concat(A," begins")),function(){return Qo(A)}},Qo=function(A){cE.mark("".concat(tB," ").concat(A," ends")),cE.measure("".concat(tB," ").concat(A),"".concat(tB," ").concat(A," begins"),"".concat(tB," ").concat(A," ends"))},YE={begin:mS,end:Qo},tC=function(){};function Eo(I){var A=I.getAttribute?I.getAttribute(YI):null;return typeof A=="string"}function pS(I){var A=I.getAttribute?I.getAttribute(qQ):null,g=I.getAttribute?I.getAttribute(_Q):null;return A&&g}function xS(I){return I&&I.classList&&I.classList.contains&&I.classList.contains(P.replacementClass)}function nS(){if(P.autoReplaceSvg===!0)return sC.replace;var I=sC[P.autoReplaceSvg];return I||sC.replace}function WS(I){return iA.createElementNS("http://www.w3.org/2000/svg",I)}function OS(I){return iA.createElement(I)}function Do(I){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},g=A.ceFn,B=g===void 0?I.tag==="svg"?WS:OS:g;if(typeof I=="string")return iA.createTextNode(I);var C=B(I.tag);Object.keys(I.attributes||[]).forEach(function(E){C.setAttribute(E,I.attributes[E])});var Q=I.children||[];return Q.forEach(function(E){C.appendChild(Do(E,{ceFn:B}))}),C}function JS(I){var A=" ".concat(I.outerHTML," ");return A="".concat(A,"Font Awesome fontawesome.com "),A}var sC={replace:function(A){var g=A[0];if(g.parentNode)if(A[1].forEach(function(C){g.parentNode.insertBefore(Do(C),g)}),g.getAttribute(YI)===null&&P.keepOriginalSource){var B=iA.createComment(JS(g));g.parentNode.replaceChild(B,g)}else g.remove()},nest:function(A){var g=A[0],B=A[1];if(~AE(g).indexOf(P.replacementClass))return sC.replace(A);var C=new RegExp("".concat(P.cssPrefix,"-.*"));if(delete B[0].attributes.id,B[0].attributes.class){var Q=B[0].attributes.class.split(" ").reduce(function(N,D){return D===P.replacementClass||D.match(C)?N.toSvg.push(D):N.toNode.push(D),N},{toNode:[],toSvg:[]});B[0].attributes.class=Q.toSvg.join(" "),Q.toNode.length===0?g.removeAttribute("class"):g.setAttribute("class",Q.toNode.join(" "))}var E=B.map(function(N){return wB(N)}).join(`
|
760
|
+
`);g.setAttribute(YI,""),g.innerHTML=E}};function No(I){I()}function oo(I,A){var g=typeof A=="function"?A:tC;if(I.length===0)g();else{var B=No;P.mutateApproach===XL&&(B=rg.requestAnimationFrame||No),B(function(){var C=nS(),Q=YE.begin("mutate");I.map(C),Q(),g()})}}var yE=!1;function Mo(){yE=!0}function wE(){yE=!1}var KC=null;function Go(I){if(TN&&P.observeMutations){var A=I.treeCallback,g=A===void 0?tC:A,B=I.nodeCallback,C=B===void 0?tC:B,Q=I.pseudoElementsCallback,E=Q===void 0?tC:Q,N=I.observeMutationsRoot,D=N===void 0?iA:N;KC=new TN(function(o){if(!yE){var M=Pg();FI(o).forEach(function(G){if(G.type==="childList"&&G.addedNodes.length>0&&!Eo(G.addedNodes[0])&&(P.searchPseudoElements&&E(G.target),g(G.target)),G.type==="attributes"&&G.target.parentNode&&P.searchPseudoElements&&E(G.target.parentNode),G.type==="attributes"&&Eo(G.target)&&~AS.indexOf(G.attributeName))if(G.attributeName==="class"&&pS(G.target)){var i=yC(AE(G.target)),L=i.prefix,Y=i.iconName;G.target.setAttribute(qQ,L||M),Y&&G.target.setAttribute(_Q,Y)}else xS(G.target)&&C(G.target)})}}),zg&&KC.observe(D,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function uS(){KC&&KC.disconnect()}function vS(I){var A=I.getAttribute("style"),g=[];return A&&(g=A.split(";").reduce(function(B,C){var Q=C.split(":"),E=Q[0],N=Q.slice(1);return E&&N.length>0&&(B[E]=N.join(":").trim()),B},{})),g}function VS(I){var A=I.getAttribute("data-prefix"),g=I.getAttribute("data-icon"),B=I.innerText!==void 0?I.innerText.trim():"",C=yC(AE(I));return C.prefix||(C.prefix=Pg()),A&&g&&(C.prefix=A,C.iconName=g),C.iconName&&C.prefix||(C.prefix&&B.length>0&&(C.iconName=kS(C.prefix,I.innerText)||DE(C.prefix,CE(I.innerText))),!C.iconName&&P.autoFetchSvg&&I.firstChild&&I.firstChild.nodeType===Node.TEXT_NODE&&(C.iconName=I.firstChild.data)),C}function XS(I){var A=FI(I.attributes).reduce(function(C,Q){return C.name!=="class"&&C.name!=="style"&&(C[Q.name]=Q.value),C},{}),g=I.getAttribute("title"),B=I.getAttribute("data-fa-title-id");return P.autoA11y&&(g?A["aria-labelledby"]="".concat(P.replacementClass,"-title-").concat(B||yB()):(A["aria-hidden"]="true",A.focusable="false")),A}function rS(){return{iconName:null,title:null,titleId:null,prefix:null,transform:Kg,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}}}function io(I){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{styleParser:!0},g=VS(I),B=g.iconName,C=g.prefix,Q=g.rest,E=XS(I),N=oE("parseNodeAttributes",{},I),D=A.styleParser?vS(I):[];return u({iconName:B,title:I.getAttribute("title"),titleId:I.getAttribute("data-fa-title-id"),prefix:C,transform:Kg,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:Q,styles:D,attributes:E}},N)}var fS=ig.styles;function Lo(I){var A=P.autoReplaceSvg==="nest"?io(I,{styleParser:!1}):io(I);return~A.extra.classes.indexOf(pN)?mg("generateLayersText",I,A):mg("generateSvgReplacementMutation",I,A)}var qg=new Set;$Q.map(function(I){qg.add("fa-".concat(I))}),Object.keys(GB[LA]).map(qg.add.bind(qg)),Object.keys(GB[sA]).map(qg.add.bind(qg)),qg=oB(qg);function So(I){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(!zg)return Promise.resolve();var g=iA.documentElement.classList,B=function(G){return g.add("".concat(jN,"-").concat(G))},C=function(G){return g.remove("".concat(jN,"-").concat(G))},Q=P.autoFetchSvg?qg:$Q.map(function(M){return"fa-".concat(M)}).concat(Object.keys(fS));Q.includes("fa")||Q.push("fa");var E=[".".concat(pN,":not([").concat(YI,"])")].concat(Q.map(function(M){return".".concat(M,":not([").concat(YI,"])")})).join(", ");if(E.length===0)return Promise.resolve();var N=[];try{N=FI(I.querySelectorAll(E))}catch{}if(N.length>0)B("pending"),C("complete");else return Promise.resolve();var D=YE.begin("onTree"),o=N.reduce(function(M,G){try{var i=Lo(G);i&&M.push(i)}catch(L){mN||L.name==="MissingIcon"&&console.error(L)}return M},[]);return new Promise(function(M,G){Promise.all(o).then(function(i){oo(i,function(){B("active"),B("complete"),C("pending"),typeof A=="function"&&A(),D(),M()})}).catch(function(i){D(),G(i)})})}function PS(I){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;Lo(I).then(function(g){g&&oo([g],A)})}function qS(I){return function(A){var g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},B=(A||{}).icon?A:ME(A||{}),C=g.mask;return C&&(C=(C||{}).icon?C:ME(C||{})),I(B,u(u({},g),{},{mask:C}))}}var _S=function(A){var g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},B=g.transform,C=B===void 0?Kg:B,Q=g.symbol,E=Q===void 0?!1:Q,N=g.mask,D=N===void 0?null:N,o=g.maskId,M=o===void 0?null:o,G=g.title,i=G===void 0?null:G,L=g.titleId,Y=L===void 0?null:L,w=g.classes,t=w===void 0?[]:w,Z=g.attributes,h=Z===void 0?{}:Z,K=g.styles,y=K===void 0?{}:K;if(A){var S=A.prefix,c=A.iconName,l=A.icon;return wC(u({type:"icon"},A),function(){return tI("beforeDOMElementCreation",{iconDefinition:A,params:g}),P.autoA11y&&(i?h["aria-labelledby"]="".concat(P.replacementClass,"-title-").concat(Y||yB()):(h["aria-hidden"]="true",h.focusable="false")),GE({icons:{main:LE(l),mask:D?LE(D.icon):{found:!1,width:null,height:null,icon:{}}},prefix:S,iconName:c,transform:u(u({},Kg),C),symbol:E,title:i,maskId:M,titleId:Y,extra:{attributes:h,styles:y,classes:t}})})}},$S={mixout:function(){return{icon:qS(_S)}},hooks:function(){return{mutationObserverCallbacks:function(g){return g.treeCallback=So,g.nodeCallback=PS,g}}},provides:function(A){A.i2svg=function(g){var B=g.node,C=B===void 0?iA:B,Q=g.callback,E=Q===void 0?function(){}:Q;return So(C,E)},A.generateSvgReplacementMutation=function(g,B){var C=B.iconName,Q=B.title,E=B.titleId,N=B.prefix,D=B.transform,o=B.symbol,M=B.mask,G=B.maskId,i=B.extra;return new Promise(function(L,Y){Promise.all([SE(C,N),M.iconName?SE(M.iconName,M.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then(function(w){var t=VQ(w,2),Z=t[0],h=t[1];L([g,GE({icons:{main:Z,mask:h},prefix:N,iconName:C,transform:D,symbol:o,maskId:G,title:Q,titleId:E,extra:i,watchable:!0})])}).catch(Y)})},A.generateAbstractIcon=function(g){var B=g.children,C=g.attributes,Q=g.main,E=g.transform,N=g.styles,D=GC(N);D.length>0&&(C.style=D);var o;return gE(E)&&(o=mg("generateAbstractTransformGrouping",{main:Q,transform:E,containerWidth:Q.width,iconWidth:Q.width})),B.push(o||Q.icon),{children:B,attributes:C}}}},Ac={mixout:function(){return{layer:function(g){var B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},C=B.classes,Q=C===void 0?[]:C;return wC({type:"layer"},function(){tI("beforeDOMElementCreation",{assembler:g,params:B});var E=[];return g(function(N){Array.isArray(N)?N.map(function(D){E=E.concat(D.abstract)}):E=E.concat(N.abstract)}),[{tag:"span",attributes:{class:["".concat(P.cssPrefix,"-layers")].concat(oB(Q)).join(" ")},children:E}]})}}}},gc={mixout:function(){return{counter:function(g){var B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},C=B.title,Q=C===void 0?null:C,E=B.classes,N=E===void 0?[]:E,D=B.attributes,o=D===void 0?{}:D,M=B.styles,G=M===void 0?{}:M;return wC({type:"counter",content:g},function(){return tI("beforeDOMElementCreation",{content:g,params:B}),zS({content:g.toString(),title:Q,extra:{attributes:o,styles:G,classes:["".concat(P.cssPrefix,"-layers-counter")].concat(oB(N))}})})}}}},Ic={mixout:function(){return{text:function(g){var B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},C=B.transform,Q=C===void 0?Kg:C,E=B.title,N=E===void 0?null:E,D=B.classes,o=D===void 0?[]:D,M=B.attributes,G=M===void 0?{}:M,i=B.styles,L=i===void 0?{}:i;return wC({type:"text",content:g},function(){return tI("beforeDOMElementCreation",{content:g,params:B}),Bo({content:g,transform:u(u({},Kg),Q),title:N,extra:{attributes:G,styles:L,classes:["".concat(P.cssPrefix,"-layers-text")].concat(oB(o))}})})}}},provides:function(A){A.generateLayersText=function(g,B){var C=B.title,Q=B.transform,E=B.extra,N=null,D=null;if(eN){var o=parseInt(getComputedStyle(g).fontSize,10),M=g.getBoundingClientRect();N=M.width/o,D=M.height/o}return P.autoA11y&&!C&&(E.attributes["aria-hidden"]="true"),Promise.resolve([g,Bo({content:g.innerHTML,width:N,height:D,transform:Q,title:C,extra:E,watchable:!0})])}}},Bc=new RegExp('"',"ug"),co=[1105920,1112319];function Cc(I){var A=I.replace(Bc,""),g=yS(A,0),B=g>=co[0]&&g<=co[1],C=A.length===2?A[0]===A[1]:!1;return{value:CE(C?A[0]:A),isSecondary:B||C}}function Yo(I,A){var g="".concat(VL).concat(A.replace(":","-"));return new Promise(function(B,C){if(I.getAttribute(g)!==null)return B();var Q=FI(I.children),E=Q.filter(function(l){return l.getAttribute(PQ)===A})[0],N=rg.getComputedStyle(I,A),D=N.getPropertyValue("font-family").match(qL),o=N.getPropertyValue("font-weight"),M=N.getPropertyValue("content");if(E&&!D)return I.removeChild(E),B();if(D&&M!=="none"&&M!==""){var G=N.getPropertyValue("content"),i=~["Sharp"].indexOf(D[2])?sA:LA,L=~["Solid","Regular","Light","Thin","Duotone","Brands","Kit"].indexOf(D[2])?iB[i][D[2].toLowerCase()]:_L[i][o],Y=Cc(G),w=Y.value,t=Y.isSecondary,Z=D[0].startsWith("FontAwesome"),h=DE(L,w),K=h;if(Z){var y=ZS(w);y.iconName&&y.prefix&&(h=y.iconName,L=y.prefix)}if(h&&!t&&(!E||E.getAttribute(qQ)!==L||E.getAttribute(_Q)!==K)){I.setAttribute(g,K),E&&I.removeChild(E);var S=rS(),c=S.extra;c.attributes[PQ]=A,SE(h,L).then(function(l){var U=GE(u(u({},S),{},{icons:{main:l,mask:NE()},prefix:L,iconName:K,extra:c,watchable:!0})),H=iA.createElementNS("http://www.w3.org/2000/svg","svg");A==="::before"?I.insertBefore(H,I.firstChild):I.appendChild(H),H.outerHTML=U.map(function(b){return wB(b)}).join(`
|
761
|
+
`),I.removeAttribute(g),B()}).catch(C)}else B()}else B()})}function Qc(I){return Promise.all([Yo(I,"::before"),Yo(I,"::after")])}function Ec(I){return I.parentNode!==document.head&&!~rL.indexOf(I.tagName.toUpperCase())&&!I.getAttribute(PQ)&&(!I.parentNode||I.parentNode.tagName!=="svg")}function yo(I){if(zg)return new Promise(function(A,g){var B=FI(I.querySelectorAll("*")).filter(Ec).map(Qc),C=YE.begin("searchPseudoElements");Mo(),Promise.all(B).then(function(){C(),wE(),A()}).catch(function(){C(),wE(),g()})})}var Dc={hooks:function(){return{mutationObserverCallbacks:function(g){return g.pseudoElementsCallback=yo,g}}},provides:function(A){A.pseudoElements2svg=function(g){var B=g.node,C=B===void 0?iA:B;P.searchPseudoElements&&yo(C)}}},wo=!1,Nc={mixout:function(){return{dom:{unwatch:function(){Mo(),wo=!0}}}},hooks:function(){return{bootstrap:function(){Go(oE("mutationObserverCallbacks",{}))},noAuto:function(){uS()},watch:function(g){var B=g.observeMutationsRoot;wo?wE():Go(oE("mutationObserverCallbacks",{observeMutationsRoot:B}))}}}},to=function(A){var g={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return A.toLowerCase().split(" ").reduce(function(B,C){var Q=C.toLowerCase().split("-"),E=Q[0],N=Q.slice(1).join("-");if(E&&N==="h")return B.flipX=!0,B;if(E&&N==="v")return B.flipY=!0,B;if(N=parseFloat(N),isNaN(N))return B;switch(E){case"grow":B.size=B.size+N;break;case"shrink":B.size=B.size-N;break;case"left":B.x=B.x-N;break;case"right":B.x=B.x+N;break;case"up":B.y=B.y-N;break;case"down":B.y=B.y+N;break;case"rotate":B.rotate=B.rotate+N;break}return B},g)},oc={mixout:function(){return{parse:{transform:function(g){return to(g)}}}},hooks:function(){return{parseNodeAttributes:function(g,B){var C=B.getAttribute("data-fa-transform");return C&&(g.transform=to(C)),g}}},provides:function(A){A.generateAbstractTransformGrouping=function(g){var B=g.main,C=g.transform,Q=g.containerWidth,E=g.iconWidth,N={transform:"translate(".concat(Q/2," 256)")},D="translate(".concat(C.x*32,", ").concat(C.y*32,") "),o="scale(".concat(C.size/16*(C.flipX?-1:1),", ").concat(C.size/16*(C.flipY?-1:1),") "),M="rotate(".concat(C.rotate," 0 0)"),G={transform:"".concat(D," ").concat(o," ").concat(M)},i={transform:"translate(".concat(E/2*-1," -256)")},L={outer:N,inner:G,path:i};return{tag:"g",attributes:u({},L.outer),children:[{tag:"g",attributes:u({},L.inner),children:[{tag:B.icon.tag,children:B.icon.children,attributes:u(u({},B.icon.attributes),L.path)}]}]}}}},tE={x:0,y:0,width:"100%",height:"100%"};function so(I){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return I.attributes&&(I.attributes.fill||A)&&(I.attributes.fill="black"),I}function Mc(I){return I.tag==="g"?I.children:[I]}var Gc={hooks:function(){return{parseNodeAttributes:function(g,B){var C=B.getAttribute("data-fa-mask"),Q=C?yC(C.split(" ").map(function(E){return E.trim()})):NE();return Q.prefix||(Q.prefix=Pg()),g.mask=Q,g.maskId=B.getAttribute("data-fa-mask-id"),g}}},provides:function(A){A.generateAbstractMask=function(g){var B=g.children,C=g.attributes,Q=g.main,E=g.mask,N=g.maskId,D=g.transform,o=Q.width,M=Q.icon,G=E.width,i=E.icon,L=oS({transform:D,containerWidth:G,iconWidth:o}),Y={tag:"rect",attributes:u(u({},tE),{},{fill:"white"})},w=M.children?{children:M.children.map(so)}:{},t={tag:"g",attributes:u({},L.inner),children:[so(u({tag:M.tag,attributes:u(u({},M.attributes),L.path)},w))]},Z={tag:"g",attributes:u({},L.outer),children:[t]},h="mask-".concat(N||yB()),K="clip-".concat(N||yB()),y={tag:"mask",attributes:u(u({},tE),{},{id:h,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[Y,Z]},S={tag:"defs",children:[{tag:"clipPath",attributes:{id:K},children:Mc(i)},y]};return B.push(S,{tag:"rect",attributes:u({fill:"currentColor","clip-path":"url(#".concat(K,")"),mask:"url(#".concat(h,")")},tE)}),{children:B,attributes:C}}}},ic={provides:function(A){var g=!1;rg.matchMedia&&(g=rg.matchMedia("(prefers-reduced-motion: reduce)").matches),A.missingIconAbstract=function(){var B=[],C={fill:"currentColor"},Q={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};B.push({tag:"path",attributes:u(u({},C),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});var E=u(u({},Q),{},{attributeName:"opacity"}),N={tag:"circle",attributes:u(u({},C),{},{cx:"256",cy:"364",r:"28"}),children:[]};return g||N.children.push({tag:"animate",attributes:u(u({},Q),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:u(u({},E),{},{values:"1;0;1;1;0;1;"})}),B.push(N),B.push({tag:"path",attributes:u(u({},C),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:g?[]:[{tag:"animate",attributes:u(u({},E),{},{values:"1;0;0;0;0;1;"})}]}),g||B.push({tag:"path",attributes:u(u({},C),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:u(u({},E),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:B}}}},Lc={hooks:function(){return{parseNodeAttributes:function(g,B){var C=B.getAttribute("data-fa-symbol"),Q=C===null?!1:C===""?!0:C;return g.symbol=Q,g}}}},Sc=[iS,$S,Ac,gc,Ic,Dc,Nc,oc,Gc,ic,Lc];bS(Sc,{mixoutsTo:_A}),_A.noAuto,_A.config;var cc=_A.library;_A.dom,_A.parse,_A.findIconDefinition,_A.toHtml;var _g=_A.icon;_A.layer,_A.text,_A.counter;var Ko={exports:{}};(function(I,A){(function(B,C){I.exports=C()})(self,()=>(()=>{var g={"./node_modules/@shren/typed-event-emitter/dist/index.js":(E,N)=>{Object.defineProperty(N,"__esModule",{value:!0}),N.TypedEventEmitter=N.$AnyEventType=void 0,N.$AnyEventType=Symbol("__TypedEventListener_AnyEventType");class D{constructor(){this._listeners={[N.$AnyEventType]:[]}}get listeners(){return this._listeners}getListeners(M){return M in this._listeners||(this._listeners[M]=[]),this._listeners[M]}on(M,G){this.getListeners(M).indexOf(G)===-1&&this.getListeners(M).push(G)}once(M,G){const i=(L,Y)=>{const w=G(L,Y);return this.off(M,i),w};this.on(M,i)}onAny(M){this._listeners[N.$AnyEventType].push(M)}off(M,G){const i=this.getListeners(M).indexOf(G);i!==-1&&this.getListeners(M).splice(i,1)}offAny(M){const G=this._listeners[N.$AnyEventType].indexOf(M);G!==-1&&this._listeners[N.$AnyEventType].splice(G,1)}async emit(M,G,i){var L;let Y=this.getListeners(M),w=i!=null&&i.excludeAny?[]:this._listeners[N.$AnyEventType];if(!Y.length&&!w.length)return[];if(!((L=i==null?void 0:i.exclude)===null||L===void 0)&&L.length){const{exclude:t}=i;Y=Y.filter(Z=>t.indexOf(Z)===-1),w=w.filter(Z=>t.indexOf(Z)===-1)}return Promise.all([...Y.map(t=>t(G,this)),...w.map(t=>t(M,G,this))])}async emitSerial(M,G,i){var L;let Y=this.getListeners(M),w=i!=null&&i.excludeAny?[]:this._listeners[N.$AnyEventType];if(!Y.length&&!w.length)return[];if(!((L=i==null?void 0:i.exclude)===null||L===void 0)&&L.length){const{exclude:Z}=i;Y=Y.filter(h=>Z.indexOf(h)===-1),w=w.filter(h=>Z.indexOf(h)===-1)}const t=[];for(let Z=0;Z<Y.length;Z++){const h=Y[Z];t[Z]=await h(G,this)}for(let Z=0;Z<w.length;Z++){const h=w[Z];t[Y.length+Z]=await h(M,G,this)}return t}emitSync(M,G,i){var L;let Y=this.getListeners(M),w=i!=null&&i.excludeAny?[]:this._listeners[N.$AnyEventType];if(!Y.length&&!w.length)return[];if(!((L=i==null?void 0:i.exclude)===null||L===void 0)&&L.length){const{exclude:t}=i;Y=Y.filter(Z=>t.indexOf(Z)===-1),w=w.filter(Z=>t.indexOf(Z)===-1)}return[...Y.map(t=>t(G,this)),...w.map(t=>t(M,G,this))]}offAll(M){M?this._listeners[M]=[]:this._listeners={[N.$AnyEventType]:[]}}listenerCount(M){const G=this._listeners[N.$AnyEventType].length;return M in this._listeners?this._listeners[M].length+G:G}}N.TypedEventEmitter=D,N.default=D},"./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/Base.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>Y});var o=D("./node_modules/css-loader/dist/runtime/sourceMaps.js"),M=D.n(o),G=D("./node_modules/css-loader/dist/runtime/api.js"),i=D.n(G),L=i()(M());L.push([E.id,`.faust-ui-component {
|
762
762
|
display: flex;
|
763
763
|
position: absolute;
|
764
764
|
flex-direction: column;
|
@@ -1484,7 +1484,7 @@ svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {
|
|
1484
1484
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
1485
1485
|
}`],sourceRoot:""}]);const Y=L},"./node_modules/css-loader/dist/runtime/api.js":E=>{E.exports=function(N){var D=[];return D.toString=function(){return this.map(function(M){var G="",i=typeof M[5]<"u";return M[4]&&(G+="@supports (".concat(M[4],") {")),M[2]&&(G+="@media ".concat(M[2]," {")),i&&(G+="@layer".concat(M[5].length>0?" ".concat(M[5]):""," {")),G+=N(M),i&&(G+="}"),M[2]&&(G+="}"),M[4]&&(G+="}"),G}).join("")},D.i=function(M,G,i,L,Y){typeof M=="string"&&(M=[[null,M,void 0]]);var w={};if(i)for(var t=0;t<this.length;t++){var Z=this[t][0];Z!=null&&(w[Z]=!0)}for(var h=0;h<M.length;h++){var K=[].concat(M[h]);i&&w[K[0]]||(typeof Y<"u"&&(typeof K[5]>"u"||(K[1]="@layer".concat(K[5].length>0?" ".concat(K[5]):""," {").concat(K[1],"}")),K[5]=Y),G&&(K[2]&&(K[1]="@media ".concat(K[2]," {").concat(K[1],"}")),K[2]=G),L&&(K[4]?(K[1]="@supports (".concat(K[4],") {").concat(K[1],"}"),K[4]=L):K[4]="".concat(L)),D.push(K))}},D}},"./node_modules/css-loader/dist/runtime/sourceMaps.js":E=>{E.exports=function(N){var D=N[1],o=N[3];if(!o)return D;if(typeof btoa=="function"){var M=btoa(unescape(encodeURIComponent(JSON.stringify(o)))),G="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(M),i="/*# ".concat(G," */"),L=o.sources.map(function(Y){return"/*# sourceURL=".concat(o.sourceRoot||"").concat(Y," */")});return[D].concat(L).concat([i]).join(`
|
1486
1486
|
`)}return[D].join(`
|
1487
|
-
`)}},"./src/FaustUI.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>G});var o=D("./src/layout/Layout.ts"),M=D("./src/components/Group.ts");D("./src/index.scss");class G{constructor(L){this.componentMap={},this.paramChangeByUI=(h,K)=>{this.hostWindow&&this.hostWindow.postMessage({path:h,value:K,type:"param"},"*")};const{root:Y,ui:w,listenWindowResize:t,listenWindowMessage:Z}=L;this.DOMroot=Y,this.ui=w||[],(typeof t>"u"||t===!0)&&window.addEventListener("resize",()=>{this.resize()}),(typeof Z>"u"||Z===!0)&&window.addEventListener("message",h=>{const{data:K,source:y}=h;this.hostWindow=y;const{type:S}=K;if(S){if(S==="ui")this.ui=K.ui;else if(S==="param"){const{path:c,value:k}=K;this.paramChangeByDSP(c,k)}}})}mount(){this.componentMap={},this.DOMroot.innerHTML="";const L={label:"",type:"vgroup",items:this.ui,style:{grid:this.grid,width:this.layout.width,height:this.layout.height,left:this.layout.offsetLeft,top:this.layout.offsetTop},isRoot:!0,emitter:this};this.faustUIRoot=new M.default(L),this.faustUIRoot.componentWillMount(),this.faustUIRoot.mount(),this.DOMroot.appendChild(this.faustUIRoot.container),this.faustUIRoot.componentDidMount()}register(L,Y){this.componentMap[L]?this.componentMap[L].push(Y):this.componentMap[L]=[Y]}paramChangeByDSP(L,Y){this.componentMap[L]&&this.componentMap[L].forEach(w=>w.setState({value:Y}))}calc(){const{items:L,layout:Y}=o.default.calc(this.ui);this._ui=L,this._layout=Y,this.calcGrid()}calcGrid(){const{width:L,height:Y}=this.DOMroot.getBoundingClientRect(),w=Math.max(40,Math.min(L/this._layout.width,Y/this._layout.height));return this.grid=w,w}resize(){this.faustUIRoot&&(this.calcGrid(),this.faustUIRoot.setState({style:{grid:this.grid}}))}get ui(){return this._ui}set ui(L){this._ui=L,this.calc(),this.mount()}get layout(){return this._layout}get minWidth(){return this._layout.width*40+1}get minHeight(){return this._layout.height*40+1}}},"./src/components/AbstractComponent.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>t});var o=D("./node_modules/@shren/typed-event-emitter/dist/index.js"),M=Object.defineProperty,G=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,L=Object.prototype.propertyIsEnumerable,Y=(Z,h,K)=>h in Z?M(Z,h,{enumerable:!0,configurable:!0,writable:!0,value:K}):Z[h]=K,w=(Z,h)=>{for(var K in h||(h={}))i.call(h,K)&&Y(Z,K,h[K]);if(G)for(var K of G(h))L.call(h,K)&&Y(Z,K,h[K]);return Z};class t extends o.default{constructor(h){super(),this.$frame=0,this.frameReduce=1,this.raf=()=>{if(this.$frame++,this.$frame%this.frameReduce!==0){this.$raf=window.requestAnimationFrame(this.raf);return}this.$raf=void 0,this.tasks.forEach(K=>K()),this.tasks=[]},this.tasks=[],this.state=w(w({},this.defaultProps),h)}get defaultProps(){return this.constructor.defaultProps}setState(h){let K=!1;for(const y in h){const S=h[y];if(y in this.state&&this.state[y]!==S)this.state[y]=S,K=!0;else return;K&&this.emit(y,this.state[y])}}schedule(h){this.tasks.indexOf(h)===-1&&this.tasks.push(h),!this.$raf&&(this.$raf=window.requestAnimationFrame(this.raf))}}t.defaultProps={}},"./src/components/AbstractItem.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>h});var o=D("./src/components/AbstractComponent.ts"),M=D("./src/components/utils.ts");D("./src/components/Base.scss");var G=Object.defineProperty,i=Object.getOwnPropertySymbols,L=Object.prototype.hasOwnProperty,Y=Object.prototype.propertyIsEnumerable,w=(K,y,S)=>y in K?G(K,y,{enumerable:!0,configurable:!0,writable:!0,value:S}):K[y]=S,t=(K,y)=>{for(var S in y||(y={}))L.call(y,S)&&w(K,S,y[S]);if(i)for(var S of i(y))Y.call(y,S)&&w(K,S,y[S]);return K};const Z=class extends o.default{constructor(K){super(K),this.frameReduce=3,this.handleKeyDown=y=>{},this.handleKeyUp=y=>{},this.handleTouchStart=y=>{y.preventDefault();const S=y.currentTarget.getBoundingClientRect();let c=y.touches[0].clientX,k=y.touches[0].clientY;const U=c-S.left,H=k-S.top,b=this.state.value;this.handlePointerDown({x:U,y:H,originalEvent:y});const s=a=>{a.preventDefault();const d=a.changedTouches[0].clientX,R=a.changedTouches[0].clientY,T=d-c,e=R-k;c=d,k=R;const F=d-S.left,p=R-S.top;this.handlePointerDrag({prevValue:b,x:F,y:p,fromX:U,fromY:H,movementX:T,movementY:e,originalEvent:a})},l=a=>{a.preventDefault();const d=a.changedTouches[0].clientX-S.left,R=a.changedTouches[0].clientY-S.top;this.handlePointerUp({x:d,y:R,originalEvent:a}),document.removeEventListener("touchmove",s),document.removeEventListener("touchend",l)};document.addEventListener("touchmove",s,{passive:!1}),document.addEventListener("touchend",l,{passive:!1})},this.handleWheel=y=>{},this.handleClick=y=>{},this.handleMouseDown=y=>{y.preventDefault(),y.currentTarget.focus();const S=y.currentTarget.getBoundingClientRect(),c=y.clientX-S.left,k=y.clientY-S.top,U=this.state.value;this.handlePointerDown({x:c,y:k,originalEvent:y});const H=s=>{s.preventDefault();const l=s.clientX-S.left,a=s.clientY-S.top;this.handlePointerDrag({prevValue:U,x:l,y:a,fromX:c,fromY:k,movementX:s.movementX,movementY:s.movementY,originalEvent:s})},b=s=>{s.preventDefault();const l=s.clientX-S.left,a=s.clientY-S.top;this.handlePointerUp({x:l,y:a,originalEvent:s}),document.removeEventListener("mousemove",H),document.removeEventListener("mouseup",b)};document.addEventListener("mousemove",H),document.addEventListener("mouseup",b)},this.handleMouseOver=y=>{},this.handleMouseOut=y=>{},this.handleContextMenu=y=>{},this.handlePointerDown=y=>{},this.handlePointerDrag=y=>{},this.handlePointerUp=y=>{},this.handleFocusIn=y=>this.setState({focus:!0}),this.handleFocusOut=y=>this.setState({focus:!1}),this.state.style=t(t({},this.defaultProps.style),K.style),this.state.emitter&&this.state.emitter.register(this.state.address,this)}toValidNumber(K){const{min:y,max:S,step:c}=this.state;if(typeof y!="number"||typeof S!="number")return K;const k=Math.min(S,Math.max(y,K));return c?y+Math.floor((k-y)/c)*c:k}setValue(K){const y=this.toValidNumber(K),S=this.setState({value:y});return S&&this.change(y),S}change(K){this.state.emitter&&this.state.emitter.paramChangeByUI(this.state.address,typeof K=="number"?K:this.state.value)}setState(K){let y=!1;for(const S in K){const c=S,k=K[c];if(c==="style")for(const U in K.style)U in this.state.style&&this.state.style[U]!==K.style[U]&&(this.state.style[U]=K.style[U],y=!0);else if(c in this.state&&this.state[c]!==k)this.state[c]=k,y=!0;else return!1;y&&this.emit(c,this.state[c])}return y}componentWillMount(){return this.container=document.createElement("div"),this.container.className=["faust-ui-component","faust-ui-component-"+this.className].join(" "),this.container.tabIndex=1,this.container.id=this.state.address,this.state.tooltip&&(this.container.title=this.state.tooltip),this.label=document.createElement("div"),this.label.className="faust-ui-component-label",this.labelCanvas=document.createElement("canvas"),this.labelCtx=this.labelCanvas.getContext("2d"),this}mount(){return this.label.appendChild(this.labelCanvas),this}paintLabel(K){const y=this.state.label,S=this.state.style.labelcolor,c=this.labelCtx,k=this.labelCanvas;let{width:U,height:H}=this.label.getBoundingClientRect();return!U||!H?this:(U=Math.floor(U),H=Math.floor(H),k.height=H,k.width=U,c.clearRect(0,0,U,H),c.fillStyle=S,c.textBaseline="middle",c.textAlign=K||"center",c.font=`bold ${H*.9}px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"`,c.fillText(y,K==="left"?0:K==="right"?U:U/2,H/2,U),this)}componentDidMount(){const K=()=>{const{grid:y,left:S,top:c,width:k,height:U}=this.state.style;this.container.style.width=`${k*y}px`,this.container.style.height=`${U*y}px`,this.container.style.left=`${S*y}px`,this.container.style.top=`${c*y}px`,this.label.style.height=`${y*.25}px`,this.paintLabel()};return this.on("style",()=>this.schedule(K)),K(),this}get stepsCount(){const{type:K,max:y,min:S,step:c,enums:k}=this.state,U=K==="enum"?k.length:K==="int"?y-S:(y-S)/c;return c?K==="enum"?k.length:K==="int"?Math.min(Math.floor((y-S)/(Math.round(c)||1)),U):Math.floor((y-S)/c):U}get distance(){const{type:K,max:y,min:S,value:c,enums:k,scale:U}=this.state;return Z.getDistance({type:K,max:y,min:S,value:c,enums:k,scale:U})}static getDistance(K){const{type:y,max:S,min:c,value:k,enums:U,scale:H}=K;if(y==="enum")return k/(U.length-1);const b=H==="exp"?(0,M.normLog)(k,c,S):H==="log"?(0,M.normExp)(k,c,S):k;return(0,M.normalize)(b,c,S)}get stepRange(){return 100/this.stepsCount}};let h=Z;h.defaultProps={value:0,active:!0,focus:!1,label:"",address:"",min:0,max:1,enums:{},type:"float",unit:"",scale:"linear",step:.01,style:{width:45,height:15,left:0,top:0,labelcolor:"rgba(226, 222, 255, 0.5)"}}},"./src/components/Button.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>K});var o=D("./src/components/AbstractItem.ts");D("./src/components/Button.scss");var M=Object.defineProperty,G=Object.defineProperties,i=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,Y=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable,t=(y,S,c)=>S in y?M(y,S,{enumerable:!0,configurable:!0,writable:!0,value:c}):y[S]=c,Z=(y,S)=>{for(var c in S||(S={}))Y.call(S,c)&&t(y,c,S[c]);if(L)for(var c of L(S))w.call(S,c)&&t(y,c,S[c]);return y},h=(y,S)=>G(y,i(S));class K extends o.default{constructor(){super(...arguments),this.className="button",this.setStyle=()=>{const{value:S,style:c}=this.state,{height:k,grid:U,fontsize:H,fontname:b,fontface:s,textcolor:l,textoncolor:a,bgoncolor:d,bgcolor:R,bordercolor:T,borderoncolor:e}=c;this.btn.style.backgroundColor=S?d:R,this.btn.style.borderColor=S?e:T,this.btn.style.color=S?a:l,this.btn.style.fontSize=`${H||k*U/4}px`,this.btn.style.fontFamily=`${b}, sans-serif`,this.btn.style.fontStyle=s},this.handlePointerDown=()=>{this.setValue(1)},this.handlePointerUp=()=>{this.setValue(0)}}static get defaultProps(){const S=super.defaultProps;return h(Z({},S),{style:h(Z({},S.style),{fontname:"Arial",fontsize:void 0,fontface:"normal",bgcolor:"rgba(40, 40, 40, 1)",bgoncolor:"rgba(18, 18, 18, 1)",bordercolor:"rgba(80, 80, 80, 1)",borderoncolor:"rgba(255, 165, 0, 1)",textcolor:"rgba(226, 222, 255, 0.5)",textoncolor:"rgba(255, 165, 0, 1)"})})}componentWillMount(){return super.componentWillMount(),this.btn=document.createElement("div"),this.span=document.createElement("span"),this.span.innerText=this.state.label,this.setStyle(),this}mount(){return this.btn.appendChild(this.span),this.container.appendChild(this.btn),super.mount()}componentDidMount(){super.componentDidMount(),this.btn.addEventListener("mousedown",this.handleMouseDown),this.btn.addEventListener("touchstart",this.handleTouchStart),this.on("style",()=>this.schedule(this.setStyle));const S=()=>this.span.innerText=this.state.label;return this.on("label",()=>this.schedule(S)),this.on("value",()=>this.schedule(this.setStyle)),this}}},"./src/components/Checkbox.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/components/Button.ts");D("./src/components/Checkbox.scss");class M extends o.default{constructor(){super(...arguments),this.className="checkbox",this.handlePointerDown=()=>{this.setValue(1-this.state.value)},this.handlePointerUp=()=>{}}}},"./src/components/Group.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>k});var o=D("./src/components/AbstractComponent.ts"),M=D("./src/components/HSlider.ts"),G=D("./src/components/VSlider.ts"),i=D("./src/components/Nentry.ts"),L=D("./src/components/Button.ts"),Y=D("./src/components/Checkbox.ts"),w=D("./src/components/Knob.ts"),t=D("./src/components/Menu.ts"),Z=D("./src/components/Radio.ts"),h=D("./src/components/Led.ts"),K=D("./src/components/Numerical.ts"),y=D("./src/components/HBargraph.ts"),S=D("./src/components/VBargraph.ts"),c=D("./src/layout/Layout.ts");D("./src/components/Group.scss");class k extends o.default{constructor(){super(...arguments),this.updateUI=()=>{this.children=[];const{style:H,type:b,items:s,emitter:l,isRoot:a}=this.state,{grid:d,left:R,top:T,width:e,height:F}=H;this.label.style.height=`${d*.3}px`,this.container.style.left=`${R*d}px`,this.container.style.top=`${T*d}px`,this.container.style.width=`${e*d}px`,this.container.style.height=`${F*d}px`,this.container.className=["faust-ui-group",`faust-ui-${b}`,`${a?"faust-ui-root":""}`].join(" "),s.forEach(p=>{if(p.type.endsWith("group")){const z=k.getComponent(p,l,d);z&&this.children.push(z)}else{const z=p,x=k.getComponent(z,this.state.emitter,d);x&&this.children.push(x)}}),b==="tgroup"&&(this.tabs.innerHTML="",this.tabs.style.height=`${d}px`,this.tabs.style.top=`${.25*d}px`,this.state.items.forEach((p,z)=>{const x=p.label,v=document.createElement("span");v.innerText=x,v.className="faust-ui-tgroup-tab",v.style.fontSize=`${.25*d}px`,v.style.width=`${2*d-20}px`,v.style.height=`${d-20}px`,v.style.lineHeight=`${d-20}px`,v.addEventListener("click",()=>{const $=[];for(let u=0;u<this.container.children.length;u++){const gA=this.container.children[u];u>1&&$.push(gA)}for(let u=0;u<$.length;u++){const gA=$[u];gA.style.visibility=z===u?"visible":"hidden"}for(let u=0;u<this.tabs.children.length;u++){const gA=this.tabs.children[u];z!==u?gA.classList.contains("active")&&gA.classList.remove("active"):gA.classList.add("active")}}),this.tabs.appendChild(v)}))}}static parseMeta(H){const b={};if(!H)return{metaObject:b};if(H.forEach(s=>Object.assign(b,s)),b.style){const s=/\{(?:(?:'|_|-)(.+?)(?:'|_|-):([-+]?[0-9]*\.?[0-9]+?);)+(?:(?:'|_|-)(.+?)(?:'|_|-):([-+]?[0-9]*\.?[0-9]+?))\}/,l=b.style.match(s);if(l){const a=/(?:(?:'|_|-)(.+?)(?:'|_|-):([-+]?[0-9]*\.?[0-9]+?))/g,d={};let R;for(;R=a.exec(l[0]);)d[R[1]]=+R[2];return{metaObject:b,enums:d}}}return{metaObject:b}}static getComponent(H,b,s){const l=c.default.predictType(H);if(l.endsWith("group")){const{label:gA,items:HA,type:DA,layout:W}=H,m={label:gA,type:DA,items:HA,style:{grid:s,width:W.width,height:W.height,left:W.offsetLeft,top:W.offsetTop,labelcolor:"rgba(255, 255, 255, 0.7)"},emitter:b};return new k(m)}const a=H,{metaObject:d,enums:R}=this.parseMeta(a.meta),{tooltip:T,unit:e,scale:F}=d,{label:p,min:z,max:x,address:v,layout:$}=a,u={label:p,address:v,tooltip:T,unit:e,scale:F||"linear",emitter:b,enums:R,style:{grid:s,width:$.width,height:$.height,left:$.offsetLeft,top:$.offsetTop},type:"float",min:isFinite(z)?z:0,max:isFinite(x)?x:1,step:"step"in H?+H.step:1,value:"init"in H&&+H.init||0};return l==="button"?new L.default(u):l==="checkbox"?new Y.default(u):l==="nentry"?new i.default(u):l==="knob"?new w.default(u):l==="menu"?new t.default(u):l==="radio"?new Z.default(u):l==="hslider"?new M.default(u):l==="vslider"?new G.default(u):l==="hbargraph"?new y.default(u):l==="vbargraph"?new S.default(u):l==="numerical"?new K.default(u):l==="led"?new h.default(u):null}setState(H){let b=!1;for(const s in H){const l=s,a=H[l];if(l==="style")for(const d in H.style){const R=d;R in this.state.style&&this.state.style[R]!==H.style[R]&&(this.state.style[R]=H.style[R],b=!0)}else if(l in this.state&&this.state[l]!==a)this.state[l]=a,b=!0;else return;b&&this.emit(l,this.state[l])}}componentWillMount(){return this.container=document.createElement("div"),this.tabs=document.createElement("div"),this.tabs.className="faust-ui-tgroup-tabs",this.label=document.createElement("div"),this.label.className="faust-ui-group-label",this.labelCanvas=document.createElement("canvas"),this.labelCtx=this.labelCanvas.getContext("2d"),this.updateUI(),this.children.forEach(H=>H.componentWillMount()),this}paintLabel(){const H=this.state.label,b=this.state.style.labelcolor,s=this.labelCtx,l=this.labelCanvas;let{width:a,height:d}=this.label.getBoundingClientRect();return!a||!d?this:(a=Math.floor(a),d=Math.floor(d),l.height=d,l.width=a,s.clearRect(0,0,a,d),s.fillStyle=b,s.textBaseline="middle",s.textAlign="left",s.font=`bold ${d*.9}px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"`,s.fillText(H,0,d/2,a),this)}mount(){return this.label.appendChild(this.labelCanvas),this.container.appendChild(this.label),this.tabs.children.length&&this.container.appendChild(this.tabs),this.children.forEach(H=>{H.mount(),this.container.appendChild(H.container)}),this}componentDidMount(){const H=()=>{const{grid:l,left:a,top:d,width:R,height:T}=this.state.style;if(this.label.style.height=`${l*.3}px`,this.container.style.width=`${R*l}px`,this.container.style.height=`${T*l}px`,this.container.style.left=`${a*l}px`,this.container.style.top=`${d*l}px`,this.state.type==="tgroup"){this.tabs.style.height=`${l}px`,this.tabs.style.top=`${.25*l}px`;for(let e=0;e<this.tabs.children.length;e++){const F=this.tabs.children[e];F.style.fontSize=`${.25*l}px`,F.style.width=`${2*l-20}px`,F.style.height=`${l-20}px`,F.style.lineHeight=`${l-20}px`}}this.paintLabel(),this.children.forEach(e=>e.setState({style:{grid:l}}))};this.on("style",()=>this.schedule(H));const b=()=>{this.updateUI(),this.children.forEach(l=>l.componentWillMount())};this.on("items",()=>this.schedule(b));const s=()=>{this.paintLabel(),this.label.title=this.state.label};return this.on("label",()=>this.schedule(s)),this.paintLabel(),this.tabs&&this.tabs.children.length&&this.tabs.children[0].click(),this.children.forEach(l=>l.componentDidMount()),this}}},"./src/components/HBargraph.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>G});var o=D("./src/components/AbstractItem.ts"),M=D("./src/components/VBargraph.ts");D("./src/components/HBargraph.scss");class G extends M.default{constructor(){super(...arguments),this.className="hbargraph",this.setStyle=()=>{const{height:L,grid:Y,fontsize:w,textcolor:t,bgcolor:Z,bordercolor:h}=this.state.style;this.input.style.fontSize=`${w||L*Y*.2}px`,this.input.style.color=t,this.container.style.backgroundColor=Z,this.container.style.borderColor=h},this.paint=()=>{const{barwidth:L,barbgcolor:Y,coldcolor:w,warmcolor:t,hotcolor:Z,overloadcolor:h}=this.state.style,{type:K,max:y,min:S,enums:c,scale:k,value:U}=this.state,H=this.ctx,b=this.canvas;let{width:s,height:l}=this.canvasDiv.getBoundingClientRect();s=Math.floor(s),l=Math.floor(l),b.width=s,b.height=l;const a=s*.9,d=L||Math.min(l/3,a*.05),R=s*.05,T=(l-d)*.5;this.paintValue=U;const e=this.paintValue;e>this.maxValue&&(this.maxValue=e,this.maxTimer&&window.clearTimeout(this.maxTimer),this.maxTimer=window.setTimeout(()=>{this.maxValue=this.paintValue,this.maxTimer=void 0,this.schedule(this.paint)},1e3)),e<this.maxValue&&typeof this.maxTimer>"u"&&(this.maxTimer=window.setTimeout(()=>{this.maxValue=this.paintValue,this.maxTimer=void 0,this.schedule(this.paint)},1e3));const F=this.maxValue,p=(-18-S)/(y-S),z=(-6-S)/(y-S),x=(-3-S)/(y-S),v=Math.max(0,-S/(y-S)),$=H.createLinearGradient(R,0,a,0);if(p<=1&&p>=0?$.addColorStop(p,w):p>1&&$.addColorStop(1,w),z<=1&&z>=0&&$.addColorStop(z,t),x<=1&&x>=0&&$.addColorStop(x,Z),v<=1&&v>=0?$.addColorStop(v,h):v<0&&$.addColorStop(0,w),H.fillStyle=Y,e<0&&H.fillRect(R,T,a*v,d),e<y&&H.fillRect(R+a*v+1,T,a*(1-v)-1,d),H.fillStyle=$,e>S){const u=Math.max(0,o.default.getDistance({type:K,max:y,min:S,enums:c,scale:k,value:Math.min(0,e)}));H.fillRect(R,T,u*a,d)}if(e>0){const u=Math.max(0,o.default.getDistance({type:K,max:y,min:S,enums:c,scale:k,value:Math.min(y,e)})-v);H.fillRect(R+v*a+1,T,u*a-1,d)}if(F>e){if(F<=0){const u=Math.max(0,o.default.getDistance({type:K,max:y,min:S,enums:c,scale:k,value:Math.min(0,F)}));H.fillRect(R+u*a-1,T,1,d)}if(F>0){const u=Math.max(0,o.default.getDistance({type:K,max:y,min:S,enums:c,scale:k,value:Math.min(y,F)})-v);H.fillRect(R+Math.min(a-1,(v+u)*a),T,1,d)}}}}paintLabel(){return super.paintLabel("left")}}},"./src/components/HSlider.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>G});var o=D("./src/components/utils.ts"),M=D("./src/components/VSlider.ts");D("./src/components/HSlider.scss");class G extends M.default{constructor(){super(...arguments),this.className="hslider",this.setStyle=()=>{const{height:L,grid:Y,fontsize:w,textcolor:t,bgcolor:Z,bordercolor:h}=this.state.style;this.input.style.fontSize=`${w||L*Y*.2}px`,this.input.style.color=t,this.container.style.backgroundColor=Z,this.container.style.borderColor=h},this.paint=()=>{const{sliderwidth:L,sliderbgcolor:Y,sliderbgoncolor:w,slidercolor:t}=this.state.style,Z=this.ctx,h=this.canvas,K=this.distance;let{width:y,height:S}=this.canvasDiv.getBoundingClientRect();y=Math.floor(y),S=Math.floor(S),h.width=y,h.height=S;const c=y*.9,k=L||Math.min(S/3,c*.05),U=y*.05,H=(S-k)*.5,b=k*.25;this.interactionRect=[U,0,c,S];const s=Z.createLinearGradient(U,0,U+c,0);s.addColorStop(Math.max(0,Math.min(1,K)),w),s.addColorStop(Math.max(0,Math.min(1,K)),Y),Z.fillStyle=s,(0,o.fillRoundedRect)(Z,U,H,c,k,b),Z.fillStyle=t,(0,o.fillRoundedRect)(Z,U+c*K-k,H-k,k*2,k*3,b)}}paintLabel(){return super.paintLabel("left")}}},"./src/components/Knob.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>y});var o=D("./src/components/AbstractItem.ts"),M=D("./src/components/utils.ts");D("./src/components/Knob.scss");var G=Object.defineProperty,i=Object.defineProperties,L=Object.getOwnPropertyDescriptors,Y=Object.getOwnPropertySymbols,w=Object.prototype.hasOwnProperty,t=Object.prototype.propertyIsEnumerable,Z=(S,c,k)=>c in S?G(S,c,{enumerable:!0,configurable:!0,writable:!0,value:k}):S[c]=k,h=(S,c)=>{for(var k in c||(c={}))w.call(c,k)&&Z(S,k,c[k]);if(Y)for(var k of Y(c))t.call(c,k)&&Z(S,k,c[k]);return S},K=(S,c)=>i(S,L(c));class y extends o.default{constructor(){super(...arguments),this.className="knob",this.handleChange=c=>{const k=parseFloat(c.currentTarget.value);isFinite(k)&&this.setValue(+this.inputNumber.value)||(this.input.value=this.inputNumber.value+(this.state.unit||""))},this.setStyle=()=>{const{fontsize:c,height:k,grid:U,textcolor:H,bgcolor:b,bordercolor:s}=this.state.style;this.input.style.fontSize=`${c||k*U*.1}px`,this.input.style.color=H,this.container.style.backgroundColor=b,this.container.style.borderColor=s},this.paint=()=>{const{knobwidth:c,knobcolor:k,knoboncolor:U,needlecolor:H}=this.state.style,b=this.ctx,s=this.canvas,l=this.distance;let{width:a,height:d}=this.canvas.getBoundingClientRect();a=Math.floor(a),d=Math.floor(d),s.width=a,s.height=d;const R=5/8*Math.PI,T=19/8*Math.PI,e=R+(0,M.toRad)(l*315),F=Math.min(a,d)*.75,p=F*.5,z=a*.5,x=d*.5,v=z+F*.5*Math.cos(e),$=x+F*.5*Math.sin(e),u=c||p*.2;b.strokeStyle=k,b.lineWidth=u,b.lineCap="round",b.beginPath(),b.arc(z,x,p,e,T),b.stroke(),l&&(b.strokeStyle=U,b.beginPath(),b.arc(z,x,p,R,e),b.stroke()),b.strokeStyle=H,b.beginPath(),b.moveTo(z,x),b.lineTo(v,$),b.stroke()},this.handlePointerDrag=c=>{const k=this.getValueFromDelta(c);k!==this.state.value&&this.setValue(k)}}static get defaultProps(){const c=super.defaultProps;return K(h({},c),{style:K(h({},c.style),{fontname:"Arial",fontsize:void 0,fontface:"regular",bgcolor:"rgba(18, 18, 18, 0)",bordercolor:"rgba(80, 80, 80, 0)",labelcolor:"rgba(226, 222, 255, 0.5)",textcolor:"rgba(18, 18, 18, 1)",knobwidth:void 0,knobcolor:"rgba(18, 18, 18, 1)",knoboncolor:"rgba(255, 165, 0, 1)",needlecolor:"rgba(200, 200, 200, 0.75)"})})}componentWillMount(){return super.componentWillMount(),this.canvas=document.createElement("canvas"),this.canvas.width=10,this.canvas.height=10,this.ctx=this.canvas.getContext("2d"),this.inputNumber=document.createElement("input"),this.inputNumber.type="number",this.inputNumber.value=(+this.state.value.toFixed(3)).toString(),this.inputNumber.max=this.state.max.toString(),this.inputNumber.min=this.state.min.toString(),this.inputNumber.step=this.state.step.toString(),this.input=document.createElement("input"),this.input.value=this.inputNumber.value+(this.state.unit||""),this.input.spellcheck=!1,this.setStyle(),this}componentDidMount(){super.componentDidMount(),this.input.addEventListener("change",this.handleChange),this.canvas.addEventListener("mousedown",this.handleMouseDown),this.canvas.addEventListener("touchstart",this.handleTouchStart,{passive:!1}),this.on("style",()=>{this.schedule(this.setStyle),this.schedule(this.paint)}),this.on("label",()=>this.schedule(this.paintLabel));const c=()=>{this.inputNumber.value=(+this.state.value.toFixed(3)).toString(),this.input.value=this.inputNumber.value+(this.state.unit||"")};this.on("value",()=>{this.schedule(c),this.schedule(this.paint)});const k=()=>this.inputNumber.max=this.state.max.toString();this.on("max",()=>{this.schedule(k),this.schedule(this.paint)});const U=()=>this.inputNumber.min=this.state.min.toString();this.on("min",()=>{this.schedule(U),this.schedule(this.paint)});const H=()=>this.inputNumber.step=this.state.step.toString();return this.on("step",()=>{this.schedule(H),this.schedule(this.paint)}),this.schedule(this.paint),this}mount(){return this.container.appendChild(this.label),this.container.appendChild(this.canvas),this.container.appendChild(this.input),super.mount()}getValueFromDelta(c){const{type:k,min:U,max:H,enums:b,scale:s}=this.state,l=k==="enum"?1:this.state.step||1,a=this.stepRange,d=this.stepsCount,R=100,e=o.default.getDistance({value:c.prevValue,type:k,min:U,max:H,enums:b,scale:s})*R+c.fromY-c.y,F=(0,M.denormalize)(e/R,U,H),p=s==="exp"?(0,M.normExp)(F,U,H):s==="log"?(0,M.normLog)(F,U,H):F;let z=Math.round((0,M.normalize)(p,U,H)*R/a);return z=Math.min(d,Math.max(0,z)),k==="enum"?z:k==="int"?Math.round(z*l+U):z*l+U}}},"./src/components/Led.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>K});var o=D("./src/components/AbstractItem.ts");D("./src/components/Led.scss");var M=Object.defineProperty,G=Object.defineProperties,i=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,Y=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable,t=(y,S,c)=>S in y?M(y,S,{enumerable:!0,configurable:!0,writable:!0,value:c}):y[S]=c,Z=(y,S)=>{for(var c in S||(S={}))Y.call(S,c)&&t(y,c,S[c]);if(L)for(var c of L(S))w.call(S,c)&&t(y,c,S[c]);return y},h=(y,S)=>G(y,i(S));class K extends o.default{constructor(){super(...arguments),this.className="led",this.setStyle=()=>{const{bgcolor:S,bordercolor:c}=this.state.style;this.container.style.backgroundColor=S,this.container.style.borderColor=c},this.paint=()=>{const{shape:S,ledbgcolor:c,coldcolor:k,warmcolor:U,hotcolor:H,overloadcolor:b}=this.state.style,{min:s,max:l}=this.state,{canvas:a,ctx:d,tempCanvas:R,tempCtx:T,distance:e}=this,{width:F,height:p}=a.getBoundingClientRect();a.width=F,a.height=p;const z=Math.min(p,F)*.75,x=z,v=(F-x)*.5,$=(p-z)*.5,u=(-18-s)/(l-s),gA=(-6-s)/(l-s),HA=(-3-s)/(l-s),DA=-s/(l-s),W=T.createLinearGradient(0,0,R.width,0);u<=1&&u>=0?W.addColorStop(u,k):u>1&&W.addColorStop(1,k),gA<=1&&gA>=0&&W.addColorStop(gA,U),HA<=1&&HA>=0&&W.addColorStop(HA,H),DA<=1&&DA>=0?W.addColorStop(DA,b):DA<0&&W.addColorStop(0,k),T.fillStyle=W,T.fillRect(0,0,R.width,10);const m=T.getImageData(Math.min(R.width-1,e*R.width),0,1,1).data;e?d.fillStyle=`rgb(${m[0]}, ${m[1]}, ${m[2]})`:d.fillStyle=c,S==="circle"?d.arc(F/2,p/2,F/2-v,0,2*Math.PI):d.rect(v,$,x,z),d.fill()}}static get defaultProps(){const S=super.defaultProps;return h(Z({},S),{style:h(Z({},S.style),{fontname:"Arial",fontsize:void 0,fontface:"regular",bgcolor:"rgba(18, 18, 18, 0)",bordercolor:"rgba(80, 80, 80, 0)",labelcolor:"rgba(226, 222, 255, 0.5)",textcolor:"rgba(18, 18, 18, 1)",shape:"circle",ledbgcolor:"rgba(18, 18, 18, 1)",coldcolor:"rgba(12, 248, 100, 1)",warmcolor:"rgba(195, 248, 100, 1)",hotcolor:"rgba(255, 193, 10, 1)",overloadcolor:"rgba(255, 10, 10, 1)"})})}componentWillMount(){return super.componentWillMount(),this.canvasDiv=document.createElement("div"),this.canvasDiv.className=`faust-ui-component-${this.className}-canvasdiv`,this.canvas=document.createElement("canvas"),this.canvas.width=10,this.canvas.height=10,this.ctx=this.canvas.getContext("2d"),this.tempCanvas=document.createElement("canvas"),this.tempCtx=this.tempCanvas.getContext("2d"),this.tempCanvas.width=128,this.tempCanvas.height=1,this.setStyle(),this}componentDidMount(){return super.componentDidMount(),this.canvas.addEventListener("mousedown",this.handleMouseDown),this.canvas.addEventListener("touchstart",this.handleTouchStart,{passive:!1}),this.on("style",()=>this.schedule(this.setStyle)),this.on("label",()=>this.schedule(this.paintLabel)),this.on("value",()=>this.schedule(this.paint)),this.on("max",()=>this.schedule(this.paint)),this.on("min",()=>this.schedule(this.paint)),this.on("step",()=>this.schedule(this.paint)),this.schedule(this.paint),this}mount(){return this.canvasDiv.appendChild(this.canvas),this.container.appendChild(this.label),this.container.appendChild(this.canvasDiv),super.mount()}}},"./src/components/Menu.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>K});var o=D("./src/components/AbstractItem.ts");D("./src/components/Menu.scss");var M=Object.defineProperty,G=Object.defineProperties,i=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,Y=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable,t=(y,S,c)=>S in y?M(y,S,{enumerable:!0,configurable:!0,writable:!0,value:c}):y[S]=c,Z=(y,S)=>{for(var c in S||(S={}))Y.call(S,c)&&t(y,c,S[c]);if(L)for(var c of L(S))w.call(S,c)&&t(y,c,S[c]);return y},h=(y,S)=>G(y,i(S));class K extends o.default{constructor(){super(...arguments),this.className="menu",this.handleChange=S=>{this.setValue(+S.currentTarget.value)},this.setStyle=()=>{const{height:S,grid:c,fontsize:k,textcolor:U,bgcolor:H,bordercolor:b}=this.state.style;this.select.style.backgroundColor=H,this.select.style.borderColor=b,this.select.style.color=U,this.select.style.fontSize=`${k||S*c/4}px`}}static get defaultProps(){const S=super.defaultProps;return h(Z({},S),{style:h(Z({},S.style),{fontname:"Arial",fontsize:void 0,fontface:"regular",bgcolor:"rgba(255, 255, 255, 0.25)",bordercolor:"rgba(80, 80, 80, 0)",labelcolor:"rgba(226, 222, 255, 0.5)",textcolor:"rgba(18, 18, 18, 1)"})})}componentWillMount(){return super.componentWillMount(),this.select=document.createElement("select"),this.getOptions(),this.setStyle(),this}getOptions(){const{enums:S}=this.state;if(this.select.innerHTML="",S){let c=0;for(const k in S){const U=document.createElement("option");U.value=S[k].toString(),U.text=k,c===0&&(U.selected=!0),this.select.appendChild(U),c++}}}componentDidMount(){super.componentDidMount(),this.select.addEventListener("change",this.handleChange),this.on("style",()=>this.schedule(this.setStyle)),this.on("label",()=>this.schedule(this.paintLabel)),this.on("enums",()=>this.schedule(this.getOptions));const S=()=>{for(let c=this.select.children.length-1;c>=0;c--)+this.select.children[c].value===this.state.value&&(this.select.selectedIndex=c)};return this.on("value",()=>this.schedule(S)),S(),this}mount(){return this.container.appendChild(this.label),this.container.appendChild(this.select),super.mount()}}},"./src/components/Nentry.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>K});var o=D("./src/components/AbstractItem.ts");D("./src/components/Nentry.scss");var M=Object.defineProperty,G=Object.defineProperties,i=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,Y=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable,t=(y,S,c)=>S in y?M(y,S,{enumerable:!0,configurable:!0,writable:!0,value:c}):y[S]=c,Z=(y,S)=>{for(var c in S||(S={}))Y.call(S,c)&&t(y,c,S[c]);if(L)for(var c of L(S))w.call(S,c)&&t(y,c,S[c]);return y},h=(y,S)=>G(y,i(S));class K extends o.default{constructor(){super(...arguments),this.className="nentry",this.handleChange=S=>{this.setValue(+S.currentTarget.value)},this.setStyle=()=>{const{height:S,grid:c,fontsize:k,textcolor:U,bgcolor:H,bordercolor:b}=this.state.style;this.input.style.backgroundColor=H,this.input.style.borderColor=b,this.input.style.color=U,this.input.style.fontSize=`${k||S*c/4}px`}}static get defaultProps(){const S=super.defaultProps;return h(Z({},S),{style:h(Z({},S.style),{fontname:"Arial",fontsize:void 0,fontface:"regular",bgcolor:"rgba(255, 255, 255, 0.25)",bordercolor:"rgba(80, 80, 80, 0)",labelcolor:"rgba(226, 222, 255, 0.5)",textcolor:"rgba(18, 18, 18, 1)"})})}componentWillMount(){return super.componentWillMount(),this.input=document.createElement("input"),this.input.type="number",this.input.value=(+this.state.value.toFixed(3)).toString(),this.input.max=this.state.max.toString(),this.input.min=this.state.min.toString(),this.input.step=this.state.step.toString(),this.setStyle(),this}componentDidMount(){super.componentDidMount(),this.input.addEventListener("change",this.handleChange),this.on("style",()=>this.schedule(this.setStyle)),this.on("label",()=>this.schedule(this.paintLabel));const S=()=>this.input.value=(+this.state.value.toFixed(3)).toString();this.on("value",()=>this.schedule(S));const c=()=>this.input.max=this.state.max.toString();this.on("max",()=>this.schedule(c));const k=()=>this.input.min=this.state.min.toString();this.on("min",()=>this.schedule(k));const U=()=>this.input.step=this.state.step.toString();return this.on("step",()=>this.schedule(U)),this}mount(){return this.container.appendChild(this.label),this.container.appendChild(this.input),super.mount()}}},"./src/components/Numerical.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>K});var o=D("./src/components/AbstractItem.ts");D("./src/components/Numerical.scss");var M=Object.defineProperty,G=Object.defineProperties,i=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,Y=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable,t=(y,S,c)=>S in y?M(y,S,{enumerable:!0,configurable:!0,writable:!0,value:c}):y[S]=c,Z=(y,S)=>{for(var c in S||(S={}))Y.call(S,c)&&t(y,c,S[c]);if(L)for(var c of L(S))w.call(S,c)&&t(y,c,S[c]);return y},h=(y,S)=>G(y,i(S));class K extends o.default{constructor(){super(...arguments),this.className="numerical",this.setStyle=()=>{const{height:S,grid:c,fontsize:k,textcolor:U,bgcolor:H,bordercolor:b}=this.state.style;this.input.style.backgroundColor=H,this.input.style.borderColor=b,this.input.style.color=U,this.input.style.fontSize=`${k||S*c/4}px`}}static get defaultProps(){const S=super.defaultProps;return h(Z({},S),{style:h(Z({},S.style),{fontname:"Arial",fontsize:void 0,fontface:"regular",bgcolor:"rgba(255, 255, 255, 0.25)",bordercolor:"rgba(80, 80, 80, 0)",labelcolor:"rgba(226, 222, 255, 0.5)",textcolor:"rgba(18, 18, 18, 1)"})})}componentWillMount(){return super.componentWillMount(),this.input=document.createElement("input"),this.input.disabled=!0,this.input.value=(+this.state.value.toFixed(3)).toString()+(this.state.unit||""),this.setStyle(),this}componentDidMount(){super.componentDidMount(),this.on("style",()=>this.schedule(this.setStyle)),this.on("label",()=>this.schedule(this.paintLabel));const S=()=>this.input.value=(+this.state.value.toFixed(3)).toString()+(this.state.unit||"");return this.on("value",()=>this.schedule(S)),this}mount(){return this.container.appendChild(this.label),this.container.appendChild(this.input),super.mount()}}},"./src/components/Radio.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>K});var o=D("./src/components/AbstractItem.ts");D("./src/components/Radio.scss");var M=Object.defineProperty,G=Object.defineProperties,i=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,Y=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable,t=(y,S,c)=>S in y?M(y,S,{enumerable:!0,configurable:!0,writable:!0,value:c}):y[S]=c,Z=(y,S)=>{for(var c in S||(S={}))Y.call(S,c)&&t(y,c,S[c]);if(L)for(var c of L(S))w.call(S,c)&&t(y,c,S[c]);return y},h=(y,S)=>G(y,i(S));class K extends o.default{constructor(){super(...arguments),this.className="radio",this.getOptions=()=>{const{enums:S,address:c}=this.state;if(this.group.innerHTML="",S){let k=0;for(const U in S){const H=document.createElement("input"),b=document.createElement("div");H.value=S[U].toString(),H.name=c,H.type="radio",k===0&&(H.checked=!0),H.addEventListener("change",()=>{H.checked&&this.setValue(S[U])}),b.appendChild(H),b.append(U),this.group.appendChild(b),k++}}},this.setStyle=()=>{const{height:S,width:c,grid:k,fontsize:U,textcolor:H,bgcolor:b,bordercolor:s}=this.state.style,l=Math.min(S*k*.1,c*k*.1);this.group.style.backgroundColor=b,this.group.style.borderColor=s,this.group.style.color=H,this.group.style.fontSize=`${U||l}px`}}static get defaultProps(){const S=super.defaultProps;return h(Z({},S),{style:h(Z({},S.style),{fontname:"Arial",fontsize:void 0,fontface:"regular",bgcolor:"rgba(255, 255, 255, 0.25)",bordercolor:"rgba(80, 80, 80, 0)",labelcolor:"rgba(226, 222, 255, 0.5)",textcolor:"rgba(18, 18, 18, 1)"})})}componentWillMount(){return super.componentWillMount(),this.group=document.createElement("div"),this.group.className="faust-ui-component-radio-group",this.getOptions(),this.setStyle(),this}componentDidMount(){super.componentDidMount(),this.on("style",()=>this.schedule(this.setStyle)),this.on("label",()=>this.schedule(this.paintLabel)),this.on("enums",()=>this.schedule(this.getOptions));const S=()=>{for(let c=this.group.children.length-1;c>=0;c--){const k=this.group.children[c].querySelector("input");+k.value===this.state.value&&(k.checked=!0)}};return this.on("value",()=>this.schedule(S)),S(),this}mount(){return this.container.appendChild(this.label),this.container.appendChild(this.group),super.mount()}}},"./src/components/VBargraph.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>K});var o=D("./src/components/AbstractItem.ts");D("./src/components/VBargraph.scss");var M=Object.defineProperty,G=Object.defineProperties,i=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,Y=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable,t=(y,S,c)=>S in y?M(y,S,{enumerable:!0,configurable:!0,writable:!0,value:c}):y[S]=c,Z=(y,S)=>{for(var c in S||(S={}))Y.call(S,c)&&t(y,c,S[c]);if(L)for(var c of L(S))w.call(S,c)&&t(y,c,S[c]);return y},h=(y,S)=>G(y,i(S));class K extends o.default{constructor(){super(...arguments),this.className="vbargraph",this.setStyle=()=>{const{height:S,width:c,grid:k,fontsize:U,textcolor:H,bgcolor:b,bordercolor:s}=this.state.style,l=Math.min(S*k*.05,c*k*.2);this.input.style.fontSize=`${U||l}px`,this.input.style.color=H,this.container.style.backgroundColor=b,this.container.style.borderColor=s},this.paintValue=0,this.maxValue=-1/0,this.paint=()=>{const{barwidth:S,barbgcolor:c,coldcolor:k,warmcolor:U,hotcolor:H,overloadcolor:b}=this.state.style,{type:s,max:l,min:a,enums:d,scale:R,value:T}=this.state,e=this.ctx,F=this.canvas;let{width:p,height:z}=this.canvasDiv.getBoundingClientRect();p=Math.floor(p),z=Math.floor(z),F.width=p,F.height=z;const x=z*.9,v=S||Math.min(p/3,x*.05),$=(p-v)*.5,u=z*.05;this.paintValue=T;const gA=this.paintValue;gA>this.maxValue&&(this.maxValue=gA,this.maxTimer&&window.clearTimeout(this.maxTimer),this.maxTimer=window.setTimeout(()=>{this.maxValue=this.paintValue,this.maxTimer=void 0,this.schedule(this.paint)},1e3)),gA<this.maxValue&&typeof this.maxTimer>"u"&&(this.maxTimer=window.setTimeout(()=>{this.maxValue=this.paintValue,this.maxTimer=void 0,this.schedule(this.paint)},1e3));const HA=this.maxValue,DA=(-18-a)/(l-a),W=(-6-a)/(l-a),m=(-3-a)/(l-a),n=Math.max(0,-a/(l-a)),_=e.createLinearGradient(0,x,0,u);if(DA<=1&&DA>=0?_.addColorStop(DA,k):DA>1&&_.addColorStop(1,k),W<=1&&W>=0&&_.addColorStop(W,U),m<=1&&m>=0&&_.addColorStop(m,H),n<=1&&n>=0?_.addColorStop(n,b):n<0&&_.addColorStop(0,k),e.fillStyle=c,gA<0&&e.fillRect($,u+(1-n)*x,v,x*n),gA<l&&e.fillRect($,u,v,(1-n)*x-1),e.fillStyle=_,gA>a){const MA=Math.max(0,o.default.getDistance({type:s,max:l,min:a,enums:d,scale:R,value:Math.min(0,gA)}));e.fillRect($,u+(1-MA)*x,v,x*MA)}if(gA>0){const MA=Math.max(0,o.default.getDistance({type:s,max:l,min:a,enums:d,scale:R,value:Math.min(l,gA)})-n);e.fillRect($,u+(1-n-MA)*x,v,x*MA-1)}if(HA>gA){if(HA<=0){const MA=Math.max(0,o.default.getDistance({type:s,max:l,min:a,enums:d,scale:R,value:Math.min(0,HA)}));e.fillRect($,u+(1-MA)*x,v,1)}if(HA>0){const MA=Math.max(0,o.default.getDistance({type:s,max:l,min:a,enums:d,scale:R,value:Math.min(l,HA)})-n);e.fillRect($,Math.max(u,u+(1-n-MA)*x-1),v,1)}}}}static get defaultProps(){const S=super.defaultProps;return h(Z({},S),{style:h(Z({},S.style),{fontname:"Arial",fontsize:void 0,fontface:"regular",bgcolor:"rgba(18, 18, 18, 0)",bordercolor:"rgba(80, 80, 80, 0)",labelcolor:"rgba(226, 222, 255, 0.5)",textcolor:"rgba(18, 18, 18, 1)",barwidth:void 0,barbgcolor:"rgba(18, 18, 18, 1)",coldcolor:"rgba(12, 248, 100, 1)",warmcolor:"rgba(195, 248, 100, 1)",hotcolor:"rgba(255, 193, 10, 1)",overloadcolor:"rgba(255, 10, 10, 1)"})})}componentWillMount(){return super.componentWillMount(),this.flexDiv=document.createElement("div"),this.flexDiv.className=`faust-ui-component-${this.className}-flexdiv`,this.canvasDiv=document.createElement("div"),this.canvasDiv.className=`faust-ui-component-${this.className}-canvasdiv`,this.canvas=document.createElement("canvas"),this.canvas.width=10,this.canvas.height=10,this.ctx=this.canvas.getContext("2d"),this.input=document.createElement("input"),this.input.disabled=!0,this.input.value=(+this.state.value.toFixed(3)).toString()+(this.state.unit||""),this.setStyle(),this}componentDidMount(){super.componentDidMount(),this.canvas.addEventListener("mousedown",this.handleMouseDown),this.canvas.addEventListener("touchstart",this.handleTouchStart,{passive:!1}),this.on("style",()=>{this.schedule(this.setStyle),this.schedule(this.paint)}),this.on("label",()=>this.schedule(this.paintLabel));const S=()=>this.input.value=(+this.state.value.toFixed(3)).toString()+(this.state.unit||"");return this.on("value",()=>{this.schedule(S),this.schedule(this.paint)}),this.on("max",()=>this.schedule(this.paint)),this.on("min",()=>this.schedule(this.paint)),this.on("step",()=>this.schedule(this.paint)),this.schedule(this.paint),this}mount(){return this.canvasDiv.appendChild(this.canvas),this.flexDiv.appendChild(this.canvasDiv),this.flexDiv.appendChild(this.input),this.container.appendChild(this.label),this.container.appendChild(this.flexDiv),super.mount()}}},"./src/components/VSlider.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>y});var o=D("./src/components/AbstractItem.ts"),M=D("./src/components/utils.ts");D("./src/components/VSlider.scss");var G=Object.defineProperty,i=Object.defineProperties,L=Object.getOwnPropertyDescriptors,Y=Object.getOwnPropertySymbols,w=Object.prototype.hasOwnProperty,t=Object.prototype.propertyIsEnumerable,Z=(S,c,k)=>c in S?G(S,c,{enumerable:!0,configurable:!0,writable:!0,value:k}):S[c]=k,h=(S,c)=>{for(var k in c||(c={}))w.call(c,k)&&Z(S,k,c[k]);if(Y)for(var k of Y(c))t.call(c,k)&&Z(S,k,c[k]);return S},K=(S,c)=>i(S,L(c));class y extends o.default{constructor(){super(...arguments),this.className="vslider",this.interactionRect=[0,0,0,0],this.handleChange=c=>{const k=parseFloat(c.currentTarget.value);isFinite(k)&&this.setValue(+k)||(this.input.value=this.inputNumber.value+(this.state.unit||""))},this.setStyle=()=>{const{height:c,width:k,grid:U,fontsize:H,textcolor:b,bgcolor:s,bordercolor:l}=this.state.style,a=Math.min(c*U*.05,k*U*.2);this.input.style.fontSize=`${H||a}px`,this.input.style.color=b,this.container.style.backgroundColor=s,this.container.style.borderColor=l},this.paint=()=>{const{sliderwidth:c,sliderbgcolor:k,sliderbgoncolor:U,slidercolor:H}=this.state.style,b=this.ctx,s=this.canvas,l=this.distance;let{width:a,height:d}=this.canvasDiv.getBoundingClientRect();a=Math.floor(a),d=Math.floor(d),s.width=a,s.height=d;const R=d*.9,T=c||Math.min(a/3,R*.05),e=(a-T)*.5,F=d*.05,p=T*.25;this.interactionRect=[0,F,a,R];const z=b.createLinearGradient(0,F,0,F+R);z.addColorStop(Math.max(0,Math.min(1,1-l)),k),z.addColorStop(Math.max(0,Math.min(1,1-l)),U),b.fillStyle=z,(0,M.fillRoundedRect)(b,e,F,T,R,p),b.fillStyle=H,(0,M.fillRoundedRect)(b,e-T,F+R*(1-l)-T,T*3,T*2,p)},this.handlePointerDown=c=>{const{value:k}=this.state;if(c.x<this.interactionRect[0]||c.x>this.interactionRect[0]+this.interactionRect[2]||c.y<this.interactionRect[1]||c.y>this.interactionRect[1]+this.interactionRect[3])return;this.getValueFromPos(c)!==k&&this.setValue(this.getValueFromPos(c))},this.handlePointerDrag=c=>{const k=this.getValueFromPos(c);k!==this.state.value&&this.setValue(k)}}static get defaultProps(){const c=super.defaultProps;return K(h({},c),{style:K(h({},c.style),{fontname:"Arial",fontsize:void 0,fontface:"regular",bgcolor:"rgba(18, 18, 18, 0)",bordercolor:"rgba(80, 80, 80, 0)",labelcolor:"rgba(226, 222, 255, 0.5)",textcolor:"rgba(18, 18, 18, 1)",sliderwidth:void 0,sliderbgcolor:"rgba(18, 18, 18, 1)",sliderbgoncolor:"rgba(255, 165, 0, 1)",slidercolor:"rgba(200, 200, 200, 0.75)"})})}componentWillMount(){return super.componentWillMount(),this.flexDiv=document.createElement("div"),this.flexDiv.className=`faust-ui-component-${this.className}-flexdiv`,this.canvasDiv=document.createElement("div"),this.canvasDiv.className=`faust-ui-component-${this.className}-canvasdiv`,this.canvas=document.createElement("canvas"),this.canvas.width=10,this.canvas.height=10,this.ctx=this.canvas.getContext("2d"),this.inputNumber=document.createElement("input"),this.inputNumber.type="number",this.inputNumber.value=(+this.state.value.toFixed(3)).toString(),this.inputNumber.max=this.state.max.toString(),this.inputNumber.min=this.state.min.toString(),this.inputNumber.step=this.state.step.toString(),this.input=document.createElement("input"),this.input.value=this.inputNumber.value+(this.state.unit||""),this.input.spellcheck=!1,this.setStyle(),this}componentDidMount(){super.componentDidMount(),this.input.addEventListener("change",this.handleChange),this.canvas.addEventListener("mousedown",this.handleMouseDown),this.canvas.addEventListener("touchstart",this.handleTouchStart,{passive:!1}),this.on("style",()=>{this.schedule(this.setStyle),this.schedule(this.paint)}),this.on("label",()=>this.schedule(this.paintLabel));const c=()=>{this.inputNumber.value=(+this.state.value.toFixed(3)).toString(),this.input.value=this.inputNumber.value+(this.state.unit||"")};this.on("value",()=>{this.schedule(c),this.schedule(this.paint)});const k=()=>this.inputNumber.max=this.state.max.toString();this.on("max",()=>{this.schedule(k),this.schedule(this.paint)});const U=()=>this.inputNumber.min=this.state.min.toString();this.on("min",()=>{this.schedule(U),this.schedule(this.paint)});const H=()=>this.inputNumber.step=this.state.step.toString();return this.on("step",()=>{this.schedule(H),this.schedule(this.paint)}),this.schedule(this.paint),this}mount(){return this.canvasDiv.appendChild(this.canvas),this.flexDiv.appendChild(this.canvasDiv),this.flexDiv.appendChild(this.input),this.container.appendChild(this.label),this.container.appendChild(this.flexDiv),super.mount()}get stepsCount(){const{type:c,max:k,min:U,step:H,enums:b}=this.state,s=c==="enum"?b.length:c==="int"?k-U:(k-U)/H;return H?c==="enum"?b.length:c==="int"?Math.min(Math.floor((k-U)/(Math.round(H)||0)),s):Math.floor((k-U)/H):s}get stepRange(){const c=this.interactionRect[this.className==="vslider"?3:2],k=this.stepsCount;return c/k}getValueFromPos(c){const{type:k,min:U,max:H,scale:b}=this.state,s=k==="enum"?1:this.state.step||1,l=this.stepRange,a=this.stepsCount,d=this.className==="vslider"?this.interactionRect[3]-(c.y-this.interactionRect[1]):c.x-this.interactionRect[0],R=this.className==="vslider"?this.interactionRect[3]:this.interactionRect[2],T=(0,M.denormalize)(d/R,U,H),e=b==="exp"?(0,M.normExp)(T,U,H):b==="log"?(0,M.normLog)(T,U,H):T;let F=Math.round((0,M.normalize)(e,U,H)*R/l);return F=Math.min(a,Math.max(0,F)),k==="enum"?F:k==="int"?Math.round(F*s+U):F*s+U}}},"./src/components/utils.ts":(E,N,D)=>{D.r(N),D.d(N,{atodb:()=>G,dbtoa:()=>i,denormalize:()=>L,fillRoundedRect:()=>y,iNormExp:()=>h,iNormLog:()=>t,normExp:()=>Z,normLog:()=>w,normalize:()=>Y,roundedRect:()=>K,toMIDI:()=>o,toRad:()=>M});const o=S=>["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"][(S%12+12)%12]+Math.round(S/12-2),M=S=>S*Math.PI/180,G=S=>20*Math.log10(S),i=S=>10**(S/20),L=(S,c,k)=>c+(k-c)*S,Y=(S,c,k)=>(S-c)/(k-c)||0,w=(S,c,k)=>{const U=Y(S,c,k),H=Math.log(Math.max(Number.EPSILON,c)),b=Math.log(Math.max(Number.EPSILON,k)),s=L(U,H,b),l=Math.exp(s);return Math.max(c,Math.min(k,l))},t=(S,c,k)=>{const U=Math.max(c,Math.min(k,S)),H=Math.log(Math.max(Number.EPSILON,U)),b=Math.log(Math.max(Number.EPSILON,c)),s=Math.log(Math.max(Number.EPSILON,k)),l=Y(H,b,s);return L(l,c,k)},Z=t,h=w,K=(S,c,k,U,H,b)=>{const s=[0,0,0,0];typeof b=="number"?s.fill(b):b.forEach((l,a)=>s[a]=l),S.beginPath(),S.moveTo(c+s[0],k),S.lineTo(c+U-s[1],k),S.quadraticCurveTo(c+U,k,c+U,k+s[1]),S.lineTo(c+U,k+H-s[2]),S.quadraticCurveTo(c+U,k+H,c+U-s[2],k+H),S.lineTo(c+s[3],k+H),S.quadraticCurveTo(c,k+H,c,k+H-s[3]),S.lineTo(c,k+s[0]),S.quadraticCurveTo(c,k,c+s[0],k),S.closePath(),S.stroke()},y=(S,c,k,U,H,b)=>{const s=[0,0,0,0];typeof b=="number"?s.fill(b):b.forEach((l,a)=>s[a]=l),S.beginPath(),S.moveTo(c+s[0],k),S.lineTo(c+U-s[1],k),S.quadraticCurveTo(c+U,k,c+U,k+s[1]),S.lineTo(c+U,k+H-s[2]),S.quadraticCurveTo(c+U,k+H,c+U-s[2],k+H),S.lineTo(c+s[3],k+H),S.quadraticCurveTo(c,k+H,c,k+H-s[3]),S.lineTo(c,k+s[0]),S.quadraticCurveTo(c,k,c+s[0],k),S.closePath(),S.fill()}},"./src/instantiate.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>G});var o=D("./src/FaustUI.ts");const G=()=>{const i=new o.default({root:document.getElementById("root"),listenWindowResize:!0,listenWindowMessage:!0});let L;window.addEventListener("message",Y=>{const{source:w}=Y;L=w}),window.addEventListener("keydown",Y=>{L&&L.postMessage({type:"keydown",key:Y.key},"*")}),window.addEventListener("keyup",Y=>{L&&L.postMessage({type:"keyup",key:Y.key},"*")}),window.faustUI=i}},"./src/layout/AbstractGroup.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});const o=class{constructor(G,i){this.isRoot=!!i,Object.assign(this,G);const{hasHSizingDesc:L,hasVSizingDesc:Y}=this,w=L&&Y?"both":L?"horizontal":Y?"vertical":"none";this.layout={type:G.type,width:o.padding*2,height:o.padding*2+o.labelHeight,sizing:w}}get hasHSizingDesc(){return!!this.items.find(G=>G instanceof o?G.hasHSizingDesc:G.layout.sizing==="horizontal"||G.layout.sizing==="both")}get hasVSizingDesc(){return!!this.items.find(G=>G instanceof o?G.hasVSizingDesc:G.layout.sizing==="vertical"||G.layout.sizing==="both")}adjust(){return this}expand(G,i){return this}offset(){return this}};let M=o;M.padding=.2,M.labelHeight=.25,M.spaceBetween=.1},"./src/layout/AbstractInputItem.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractItem.ts");class M extends o.default{constructor(i){super(i),this.init=+i.init||0,this.step=+i.step||1}}},"./src/layout/AbstractItem.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>o});class o{constructor(G){Object.assign(this,G),this.min=isFinite(+this.min)?+this.min:0,this.max=isFinite(+this.max)?+this.max:1}adjust(){return this}expand(G,i){return this}offset(){return this}}},"./src/layout/AbstractOutputItem.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractItem.ts");class M extends o.default{}},"./src/layout/Button.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractInputItem.ts");class M extends o.default{constructor(){super(...arguments),this.layout={type:"button",width:2,height:1,sizing:"horizontal"}}}},"./src/layout/Checkbox.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractInputItem.ts");class M extends o.default{constructor(){super(...arguments),this.layout={type:"checkbox",width:2,height:1,sizing:"horizontal"}}}},"./src/layout/HBargraph.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractOutputItem.ts");class M extends o.default{constructor(){super(...arguments),this.layout={type:"hbargraph",width:5,height:1,sizing:"horizontal"}}}},"./src/layout/HGroup.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractGroup.ts");class M extends o.default{adjust(){return this.items.forEach(i=>{i.adjust(),this.layout.width+=i.layout.width,this.layout.height=Math.max(this.layout.height,i.layout.height+2*o.default.padding+o.default.labelHeight)}),this.layout.width+=o.default.spaceBetween*(this.items.length-1),this.layout.width<1&&(this.layout.width+=1),this}expand(i){let L=0;return this.items.forEach(Y=>{(Y.layout.sizing==="both"||Y.layout.sizing==="horizontal")&&L++}),this.items.forEach(Y=>{let w=0,t=0;(Y.layout.sizing==="both"||Y.layout.sizing==="horizontal")&&(w=L?i/L:0,Y.layout.width+=w),(Y.layout.sizing==="both"||Y.layout.sizing==="vertical")&&(t=this.layout.height-2*o.default.padding-o.default.labelHeight-Y.layout.height,Y.layout.height+=t),Y.expand(w,t)}),this.layout.width+=i,this}offset(){const{labelHeight:i,padding:L,spaceBetween:Y}=o.default;let w=L;const t=L+i,{height:Z}=this.layout;return this.items.forEach(h=>{h.layout.offsetLeft=w,h.layout.offsetTop=t,h.layout.offsetTop+=(Z-i-h.layout.height)/2-L,h.layout.left=(this.layout.left||0)+h.layout.offsetLeft,h.layout.top=(this.layout.top||0)+h.layout.offsetTop,h.offset(),w+=h.layout.width+Y}),this}}},"./src/layout/HSlider.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractInputItem.ts");class M extends o.default{constructor(){super(...arguments),this.layout={type:"hslider",width:5,height:1,sizing:"horizontal"}}}},"./src/layout/Knob.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractInputItem.ts");class M extends o.default{constructor(){super(...arguments),this.layout={type:"knob",width:1,height:1.75,sizing:"none"}}}},"./src/layout/Layout.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>U});var o=D("./src/layout/HSlider.ts"),M=D("./src/layout/VSlider.ts"),G=D("./src/layout/Nentry.ts"),i=D("./src/layout/Button.ts"),L=D("./src/layout/Checkbox.ts"),Y=D("./src/layout/Knob.ts"),w=D("./src/layout/Menu.ts"),t=D("./src/layout/Radio.ts"),Z=D("./src/layout/Led.ts"),h=D("./src/layout/Numerical.ts"),K=D("./src/layout/HBargraph.ts"),y=D("./src/layout/VBargraph.ts"),S=D("./src/layout/HGroup.ts"),c=D("./src/layout/VGroup.ts"),k=D("./src/layout/TGroup.ts");class U{static predictType(b){if(b.type==="vgroup"||b.type==="hgroup"||b.type==="tgroup"||b.type==="button"||b.type==="checkbox")return b.type;if(b.type==="hbargraph"||b.type==="vbargraph")return b.meta&&b.meta.find(s=>s.style&&s.style.startsWith("led"))?"led":b.meta&&b.meta.find(s=>s.style&&s.style.startsWith("numerical"))?"numerical":b.type;if(b.type==="hslider"||b.type==="nentry"||b.type==="vslider"){if(b.meta&&b.meta.find(s=>s.style&&s.style.startsWith("knob")))return"knob";if(b.meta&&b.meta.find(s=>s.style&&s.style.startsWith("menu")))return"menu";if(b.meta&&b.meta.find(s=>s.style&&s.style.startsWith("radio")))return"radio"}return b.type}static getItem(b){const s={hslider:o.default,vslider:M.default,nentry:G.default,button:i.default,checkbox:L.default,knob:Y.default,menu:w.default,radio:t.default,led:Z.default,numerical:h.default,hbargraph:K.default,vbargraph:y.default,hgroup:S.default,vgroup:c.default,tgroup:k.default},l=this.predictType(b);return new s[l](b)}static getItems(b){return b.map(s=>("items"in s&&(s.items=this.getItems(s.items)),this.getItem(s)))}static calc(b){const s=new c.default({items:this.getItems(b),type:"vgroup",label:""},!0);return s.adjust(),s.expand(0,0),s.offset(),s}}},"./src/layout/Led.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractOutputItem.ts");class M extends o.default{constructor(){super(...arguments),this.layout={type:"led",width:1,height:1,sizing:"none"}}}},"./src/layout/Menu.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractInputItem.ts");class M extends o.default{constructor(){super(...arguments),this.layout={type:"menu",width:2,height:1,sizing:"horizontal"}}}},"./src/layout/Nentry.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractInputItem.ts");class M extends o.default{constructor(){super(...arguments),this.layout={type:"nentry",width:1,height:1,sizing:"none"}}}},"./src/layout/Numerical.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractOutputItem.ts");class M extends o.default{constructor(){super(...arguments),this.layout={type:"numerical",width:1,height:1,sizing:"none"}}}},"./src/layout/Radio.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractInputItem.ts");class M extends o.default{constructor(){super(...arguments),this.layout={type:"radio",width:2,height:2,sizing:"both"}}}},"./src/layout/TGroup.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>G});var o=D("./src/layout/AbstractGroup.ts");const M=class extends o.default{adjust(){this.items.forEach(L=>{L.adjust(),this.layout.width=Math.max(this.layout.width,L.layout.width+2*o.default.padding),this.layout.height=Math.max(this.layout.height,L.layout.height+2*o.default.padding+M.labelHeight)});const i=this.items.length;return this.layout.width=Math.max(this.layout.width,i*M.tabLayout.width),this.layout.height+=M.tabLayout.height,this.layout.width<1&&(this.layout.width+=1),this}expand(){const i=this.items.length;return this.items.forEach(L=>{let Y=0,w=0;(L.layout.sizing==="both"||L.layout.sizing==="horizontal")&&(w=this.layout.width-2*o.default.padding-L.layout.width),(L.layout.sizing==="both"||L.layout.sizing==="vertical")&&(Y=this.layout.height-2*o.default.padding-o.default.labelHeight-(i?M.tabLayout.height:0)-L.layout.height),L.expand(w,Y)}),this}offset(){const{labelHeight:i,padding:L}=o.default,Y=L,w=L+i+M.tabLayout.height;return this.items.forEach(t=>{t.layout.offsetLeft=Y,t.layout.offsetTop=w,t.layout.left=(this.layout.left||0)+t.layout.offsetLeft,t.layout.top=(this.layout.top||0)+t.layout.offsetTop,t.offset()}),this}};let G=M;G.tabLayout={width:2,height:1}},"./src/layout/VBargraph.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractOutputItem.ts");class M extends o.default{constructor(){super(...arguments),this.layout={type:"vbargraph",width:1,height:5,sizing:"vertical"}}}},"./src/layout/VGroup.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractGroup.ts");class M extends o.default{adjust(){return this.items.forEach(i=>{i.adjust(),this.layout.width=Math.max(this.layout.width,i.layout.width+2*o.default.padding),this.layout.height+=i.layout.height}),this.layout.height+=o.default.spaceBetween*(this.items.length-1),this.layout.width<1&&(this.layout.width+=1),this}expand(i,L){let Y=0;return this.items.forEach(w=>{(w.layout.sizing==="both"||w.layout.sizing==="vertical")&&Y++}),this.items.forEach(w=>{let t=0,Z=0;(w.layout.sizing==="both"||w.layout.sizing==="horizontal")&&(t=this.layout.width-2*o.default.padding-w.layout.width,w.layout.width+=t),(w.layout.sizing==="both"||w.layout.sizing==="vertical")&&(Z=Y?L/Y:0,w.layout.height+=Z),w.expand(t,Z)}),this.layout.height+=L,this}offset(){const{labelHeight:i,padding:L,spaceBetween:Y}=o.default,w=L;let t=L+i;const{width:Z}=this.layout;return this.items.forEach(h=>{h.layout.offsetLeft=w,h.layout.offsetTop=t,h.layout.offsetLeft+=(Z-h.layout.width)/2-L,h.layout.left=(this.layout.left||0)+h.layout.offsetLeft,h.layout.top=(this.layout.top||0)+h.layout.offsetTop,h.offset(),t+=h.layout.height+Y}),this}}},"./src/layout/VSlider.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractInputItem.ts");class M extends o.default{constructor(){super(...arguments),this.layout={type:"vslider",width:1,height:5,sizing:"vertical"}}}},"./src/components/Base.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>k});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/Base.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const k=S.default&&S.default.locals?S.default.locals:void 0},"./src/components/Button.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>k});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/Button.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const k=S.default&&S.default.locals?S.default.locals:void 0},"./src/components/Checkbox.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>k});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/Checkbox.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const k=S.default&&S.default.locals?S.default.locals:void 0},"./src/components/Group.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>k});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/Group.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const k=S.default&&S.default.locals?S.default.locals:void 0},"./src/components/HBargraph.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>k});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/HBargraph.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const k=S.default&&S.default.locals?S.default.locals:void 0},"./src/components/HSlider.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>k});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/HSlider.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const k=S.default&&S.default.locals?S.default.locals:void 0},"./src/components/Knob.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>k});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/Knob.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const k=S.default&&S.default.locals?S.default.locals:void 0},"./src/components/Led.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>k});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/Led.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const k=S.default&&S.default.locals?S.default.locals:void 0},"./src/components/Menu.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>k});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/Menu.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const k=S.default&&S.default.locals?S.default.locals:void 0},"./src/components/Nentry.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>k});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/Nentry.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const k=S.default&&S.default.locals?S.default.locals:void 0},"./src/components/Numerical.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>k});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/Numerical.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const k=S.default&&S.default.locals?S.default.locals:void 0},"./src/components/Radio.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>k});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/Radio.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const k=S.default&&S.default.locals?S.default.locals:void 0},"./src/components/VBargraph.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>k});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/VBargraph.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const k=S.default&&S.default.locals?S.default.locals:void 0},"./src/components/VSlider.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>k});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/VSlider.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const k=S.default&&S.default.locals?S.default.locals:void 0},"./src/index.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>k});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/index.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const k=S.default&&S.default.locals?S.default.locals:void 0},"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":E=>{var N=[];function D(G){for(var i=-1,L=0;L<N.length;L++)if(N[L].identifier===G){i=L;break}return i}function o(G,i){for(var L={},Y=[],w=0;w<G.length;w++){var t=G[w],Z=i.base?t[0]+i.base:t[0],h=L[Z]||0,K="".concat(Z," ").concat(h);L[Z]=h+1;var y=D(K),S={css:t[1],media:t[2],sourceMap:t[3],supports:t[4],layer:t[5]};if(y!==-1)N[y].references++,N[y].updater(S);else{var c=M(S,i);i.byIndex=w,N.splice(w,0,{identifier:K,updater:c,references:1})}Y.push(K)}return Y}function M(G,i){var L=i.domAPI(i);L.update(G);var Y=function(t){if(t){if(t.css===G.css&&t.media===G.media&&t.sourceMap===G.sourceMap&&t.supports===G.supports&&t.layer===G.layer)return;L.update(G=t)}else L.remove()};return Y}E.exports=function(G,i){i=i||{},G=G||[];var L=o(G,i);return function(w){w=w||[];for(var t=0;t<L.length;t++){var Z=L[t],h=D(Z);N[h].references--}for(var K=o(w,i),y=0;y<L.length;y++){var S=L[y],c=D(S);N[c].references===0&&(N[c].updater(),N.splice(c,1))}L=K}}},"./node_modules/style-loader/dist/runtime/insertBySelector.js":E=>{var N={};function D(M){if(typeof N[M]>"u"){var G=document.querySelector(M);if(window.HTMLIFrameElement&&G instanceof window.HTMLIFrameElement)try{G=G.contentDocument.head}catch{G=null}N[M]=G}return N[M]}function o(M,G){var i=D(M);if(!i)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");i.appendChild(G)}E.exports=o},"./node_modules/style-loader/dist/runtime/insertStyleElement.js":E=>{function N(D){var o=document.createElement("style");return D.setAttributes(o,D.attributes),D.insert(o,D.options),o}E.exports=N},"./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js":(E,N,D)=>{function o(M){var G=D.nc;G&&M.setAttribute("nonce",G)}E.exports=o},"./node_modules/style-loader/dist/runtime/styleDomAPI.js":E=>{function N(M,G,i){var L="";i.supports&&(L+="@supports (".concat(i.supports,") {")),i.media&&(L+="@media ".concat(i.media," {"));var Y=typeof i.layer<"u";Y&&(L+="@layer".concat(i.layer.length>0?" ".concat(i.layer):""," {")),L+=i.css,Y&&(L+="}"),i.media&&(L+="}"),i.supports&&(L+="}");var w=i.sourceMap;w&&typeof btoa<"u"&&(L+=`
|
1487
|
+
`)}},"./src/FaustUI.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>G});var o=D("./src/layout/Layout.ts"),M=D("./src/components/Group.ts");D("./src/index.scss");class G{constructor(L){this.componentMap={},this.paramChangeByUI=(h,K)=>{this.hostWindow&&this.hostWindow.postMessage({path:h,value:K,type:"param"},"*")};const{root:Y,ui:w,listenWindowResize:t,listenWindowMessage:Z}=L;this.DOMroot=Y,this.ui=w||[],(typeof t>"u"||t===!0)&&window.addEventListener("resize",()=>{this.resize()}),(typeof Z>"u"||Z===!0)&&window.addEventListener("message",h=>{const{data:K,source:y}=h;this.hostWindow=y;const{type:S}=K;if(S){if(S==="ui")this.ui=K.ui;else if(S==="param"){const{path:c,value:l}=K;this.paramChangeByDSP(c,l)}}})}mount(){this.componentMap={},this.DOMroot.innerHTML="";const L={label:"",type:"vgroup",items:this.ui,style:{grid:this.grid,width:this.layout.width,height:this.layout.height,left:this.layout.offsetLeft,top:this.layout.offsetTop},isRoot:!0,emitter:this};this.faustUIRoot=new M.default(L),this.faustUIRoot.componentWillMount(),this.faustUIRoot.mount(),this.DOMroot.appendChild(this.faustUIRoot.container),this.faustUIRoot.componentDidMount()}register(L,Y){this.componentMap[L]?this.componentMap[L].push(Y):this.componentMap[L]=[Y]}paramChangeByDSP(L,Y){this.componentMap[L]&&this.componentMap[L].forEach(w=>w.setState({value:Y}))}calc(){const{items:L,layout:Y}=o.default.calc(this.ui);this._ui=L,this._layout=Y,this.calcGrid()}calcGrid(){const{width:L,height:Y}=this.DOMroot.getBoundingClientRect(),w=Math.max(40,Math.min(L/this._layout.width,Y/this._layout.height));return this.grid=w,w}resize(){this.faustUIRoot&&(this.calcGrid(),this.faustUIRoot.setState({style:{grid:this.grid}}))}get ui(){return this._ui}set ui(L){this._ui=L,this.calc(),this.mount()}get layout(){return this._layout}get minWidth(){return this._layout.width*40+1}get minHeight(){return this._layout.height*40+1}}},"./src/components/AbstractComponent.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>t});var o=D("./node_modules/@shren/typed-event-emitter/dist/index.js"),M=Object.defineProperty,G=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,L=Object.prototype.propertyIsEnumerable,Y=(Z,h,K)=>h in Z?M(Z,h,{enumerable:!0,configurable:!0,writable:!0,value:K}):Z[h]=K,w=(Z,h)=>{for(var K in h||(h={}))i.call(h,K)&&Y(Z,K,h[K]);if(G)for(var K of G(h))L.call(h,K)&&Y(Z,K,h[K]);return Z};class t extends o.default{constructor(h){super(),this.$frame=0,this.frameReduce=1,this.raf=()=>{if(this.$frame++,this.$frame%this.frameReduce!==0){this.$raf=window.requestAnimationFrame(this.raf);return}this.$raf=void 0,this.tasks.forEach(K=>K()),this.tasks=[]},this.tasks=[],this.state=w(w({},this.defaultProps),h)}get defaultProps(){return this.constructor.defaultProps}setState(h){let K=!1;for(const y in h){const S=h[y];if(y in this.state&&this.state[y]!==S)this.state[y]=S,K=!0;else return;K&&this.emit(y,this.state[y])}}schedule(h){this.tasks.indexOf(h)===-1&&this.tasks.push(h),!this.$raf&&(this.$raf=window.requestAnimationFrame(this.raf))}}t.defaultProps={}},"./src/components/AbstractItem.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>h});var o=D("./src/components/AbstractComponent.ts"),M=D("./src/components/utils.ts");D("./src/components/Base.scss");var G=Object.defineProperty,i=Object.getOwnPropertySymbols,L=Object.prototype.hasOwnProperty,Y=Object.prototype.propertyIsEnumerable,w=(K,y,S)=>y in K?G(K,y,{enumerable:!0,configurable:!0,writable:!0,value:S}):K[y]=S,t=(K,y)=>{for(var S in y||(y={}))L.call(y,S)&&w(K,S,y[S]);if(i)for(var S of i(y))Y.call(y,S)&&w(K,S,y[S]);return K};const Z=class extends o.default{constructor(K){super(K),this.frameReduce=3,this.handleKeyDown=y=>{},this.handleKeyUp=y=>{},this.handleTouchStart=y=>{y.preventDefault();const S=y.currentTarget.getBoundingClientRect();let c=y.touches[0].clientX,l=y.touches[0].clientY;const U=c-S.left,H=l-S.top,b=this.state.value;this.handlePointerDown({x:U,y:H,originalEvent:y});const s=a=>{a.preventDefault();const d=a.changedTouches[0].clientX,R=a.changedTouches[0].clientY,T=d-c,e=R-l;c=d,l=R;const F=d-S.left,p=R-S.top;this.handlePointerDrag({prevValue:b,x:F,y:p,fromX:U,fromY:H,movementX:T,movementY:e,originalEvent:a})},k=a=>{a.preventDefault();const d=a.changedTouches[0].clientX-S.left,R=a.changedTouches[0].clientY-S.top;this.handlePointerUp({x:d,y:R,originalEvent:a}),document.removeEventListener("touchmove",s),document.removeEventListener("touchend",k)};document.addEventListener("touchmove",s,{passive:!1}),document.addEventListener("touchend",k,{passive:!1})},this.handleWheel=y=>{},this.handleClick=y=>{},this.handleMouseDown=y=>{y.preventDefault(),y.currentTarget.focus();const S=y.currentTarget.getBoundingClientRect(),c=y.clientX-S.left,l=y.clientY-S.top,U=this.state.value;this.handlePointerDown({x:c,y:l,originalEvent:y});const H=s=>{s.preventDefault();const k=s.clientX-S.left,a=s.clientY-S.top;this.handlePointerDrag({prevValue:U,x:k,y:a,fromX:c,fromY:l,movementX:s.movementX,movementY:s.movementY,originalEvent:s})},b=s=>{s.preventDefault();const k=s.clientX-S.left,a=s.clientY-S.top;this.handlePointerUp({x:k,y:a,originalEvent:s}),document.removeEventListener("mousemove",H),document.removeEventListener("mouseup",b)};document.addEventListener("mousemove",H),document.addEventListener("mouseup",b)},this.handleMouseOver=y=>{},this.handleMouseOut=y=>{},this.handleContextMenu=y=>{},this.handlePointerDown=y=>{},this.handlePointerDrag=y=>{},this.handlePointerUp=y=>{},this.handleFocusIn=y=>this.setState({focus:!0}),this.handleFocusOut=y=>this.setState({focus:!1}),this.state.style=t(t({},this.defaultProps.style),K.style),this.state.emitter&&this.state.emitter.register(this.state.address,this)}toValidNumber(K){const{min:y,max:S,step:c}=this.state;if(typeof y!="number"||typeof S!="number")return K;const l=Math.min(S,Math.max(y,K));return c?y+Math.floor((l-y)/c)*c:l}setValue(K){const y=this.toValidNumber(K),S=this.setState({value:y});return S&&this.change(y),S}change(K){this.state.emitter&&this.state.emitter.paramChangeByUI(this.state.address,typeof K=="number"?K:this.state.value)}setState(K){let y=!1;for(const S in K){const c=S,l=K[c];if(c==="style")for(const U in K.style)U in this.state.style&&this.state.style[U]!==K.style[U]&&(this.state.style[U]=K.style[U],y=!0);else if(c in this.state&&this.state[c]!==l)this.state[c]=l,y=!0;else return!1;y&&this.emit(c,this.state[c])}return y}componentWillMount(){return this.container=document.createElement("div"),this.container.className=["faust-ui-component","faust-ui-component-"+this.className].join(" "),this.container.tabIndex=1,this.container.id=this.state.address,this.state.tooltip&&(this.container.title=this.state.tooltip),this.label=document.createElement("div"),this.label.className="faust-ui-component-label",this.labelCanvas=document.createElement("canvas"),this.labelCtx=this.labelCanvas.getContext("2d"),this}mount(){return this.label.appendChild(this.labelCanvas),this}paintLabel(K){const y=this.state.label,S=this.state.style.labelcolor,c=this.labelCtx,l=this.labelCanvas;let{width:U,height:H}=this.label.getBoundingClientRect();return!U||!H?this:(U=Math.floor(U),H=Math.floor(H),l.height=H,l.width=U,c.clearRect(0,0,U,H),c.fillStyle=S,c.textBaseline="middle",c.textAlign=K||"center",c.font=`bold ${H*.9}px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"`,c.fillText(y,K==="left"?0:K==="right"?U:U/2,H/2,U),this)}componentDidMount(){const K=()=>{const{grid:y,left:S,top:c,width:l,height:U}=this.state.style;this.container.style.width=`${l*y}px`,this.container.style.height=`${U*y}px`,this.container.style.left=`${S*y}px`,this.container.style.top=`${c*y}px`,this.label.style.height=`${y*.25}px`,this.paintLabel()};return this.on("style",()=>this.schedule(K)),K(),this}get stepsCount(){const{type:K,max:y,min:S,step:c,enums:l}=this.state,U=K==="enum"?l.length:K==="int"?y-S:(y-S)/c;return c?K==="enum"?l.length:K==="int"?Math.min(Math.floor((y-S)/(Math.round(c)||1)),U):Math.floor((y-S)/c):U}get distance(){const{type:K,max:y,min:S,value:c,enums:l,scale:U}=this.state;return Z.getDistance({type:K,max:y,min:S,value:c,enums:l,scale:U})}static getDistance(K){const{type:y,max:S,min:c,value:l,enums:U,scale:H}=K;if(y==="enum")return l/(U.length-1);const b=H==="exp"?(0,M.normLog)(l,c,S):H==="log"?(0,M.normExp)(l,c,S):l;return(0,M.normalize)(b,c,S)}get stepRange(){return 100/this.stepsCount}};let h=Z;h.defaultProps={value:0,active:!0,focus:!1,label:"",address:"",min:0,max:1,enums:{},type:"float",unit:"",scale:"linear",step:.01,style:{width:45,height:15,left:0,top:0,labelcolor:"rgba(226, 222, 255, 0.5)"}}},"./src/components/Button.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>K});var o=D("./src/components/AbstractItem.ts");D("./src/components/Button.scss");var M=Object.defineProperty,G=Object.defineProperties,i=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,Y=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable,t=(y,S,c)=>S in y?M(y,S,{enumerable:!0,configurable:!0,writable:!0,value:c}):y[S]=c,Z=(y,S)=>{for(var c in S||(S={}))Y.call(S,c)&&t(y,c,S[c]);if(L)for(var c of L(S))w.call(S,c)&&t(y,c,S[c]);return y},h=(y,S)=>G(y,i(S));class K extends o.default{constructor(){super(...arguments),this.className="button",this.setStyle=()=>{const{value:S,style:c}=this.state,{height:l,grid:U,fontsize:H,fontname:b,fontface:s,textcolor:k,textoncolor:a,bgoncolor:d,bgcolor:R,bordercolor:T,borderoncolor:e}=c;this.btn.style.backgroundColor=S?d:R,this.btn.style.borderColor=S?e:T,this.btn.style.color=S?a:k,this.btn.style.fontSize=`${H||l*U/4}px`,this.btn.style.fontFamily=`${b}, sans-serif`,this.btn.style.fontStyle=s},this.handlePointerDown=()=>{this.setValue(1)},this.handlePointerUp=()=>{this.setValue(0)}}static get defaultProps(){const S=super.defaultProps;return h(Z({},S),{style:h(Z({},S.style),{fontname:"Arial",fontsize:void 0,fontface:"normal",bgcolor:"rgba(40, 40, 40, 1)",bgoncolor:"rgba(18, 18, 18, 1)",bordercolor:"rgba(80, 80, 80, 1)",borderoncolor:"rgba(255, 165, 0, 1)",textcolor:"rgba(226, 222, 255, 0.5)",textoncolor:"rgba(255, 165, 0, 1)"})})}componentWillMount(){return super.componentWillMount(),this.btn=document.createElement("div"),this.span=document.createElement("span"),this.span.innerText=this.state.label,this.setStyle(),this}mount(){return this.btn.appendChild(this.span),this.container.appendChild(this.btn),super.mount()}componentDidMount(){super.componentDidMount(),this.btn.addEventListener("mousedown",this.handleMouseDown),this.btn.addEventListener("touchstart",this.handleTouchStart),this.on("style",()=>this.schedule(this.setStyle));const S=()=>this.span.innerText=this.state.label;return this.on("label",()=>this.schedule(S)),this.on("value",()=>this.schedule(this.setStyle)),this}}},"./src/components/Checkbox.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/components/Button.ts");D("./src/components/Checkbox.scss");class M extends o.default{constructor(){super(...arguments),this.className="checkbox",this.handlePointerDown=()=>{this.setValue(1-this.state.value)},this.handlePointerUp=()=>{}}}},"./src/components/Group.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>l});var o=D("./src/components/AbstractComponent.ts"),M=D("./src/components/HSlider.ts"),G=D("./src/components/VSlider.ts"),i=D("./src/components/Nentry.ts"),L=D("./src/components/Button.ts"),Y=D("./src/components/Checkbox.ts"),w=D("./src/components/Knob.ts"),t=D("./src/components/Menu.ts"),Z=D("./src/components/Radio.ts"),h=D("./src/components/Led.ts"),K=D("./src/components/Numerical.ts"),y=D("./src/components/HBargraph.ts"),S=D("./src/components/VBargraph.ts"),c=D("./src/layout/Layout.ts");D("./src/components/Group.scss");class l extends o.default{constructor(){super(...arguments),this.updateUI=()=>{this.children=[];const{style:H,type:b,items:s,emitter:k,isRoot:a}=this.state,{grid:d,left:R,top:T,width:e,height:F}=H;this.label.style.height=`${d*.3}px`,this.container.style.left=`${R*d}px`,this.container.style.top=`${T*d}px`,this.container.style.width=`${e*d}px`,this.container.style.height=`${F*d}px`,this.container.className=["faust-ui-group",`faust-ui-${b}`,`${a?"faust-ui-root":""}`].join(" "),s.forEach(p=>{if(p.type.endsWith("group")){const z=l.getComponent(p,k,d);z&&this.children.push(z)}else{const z=p,x=l.getComponent(z,this.state.emitter,d);x&&this.children.push(x)}}),b==="tgroup"&&(this.tabs.innerHTML="",this.tabs.style.height=`${d}px`,this.tabs.style.top=`${.25*d}px`,this.state.items.forEach((p,z)=>{const x=p.label,v=document.createElement("span");v.innerText=x,v.className="faust-ui-tgroup-tab",v.style.fontSize=`${.25*d}px`,v.style.width=`${2*d-20}px`,v.style.height=`${d-20}px`,v.style.lineHeight=`${d-20}px`,v.addEventListener("click",()=>{const q=[];for(let J=0;J<this.container.children.length;J++){const gA=this.container.children[J];J>1&&q.push(gA)}for(let J=0;J<q.length;J++){const gA=q[J];gA.style.visibility=z===J?"visible":"hidden"}for(let J=0;J<this.tabs.children.length;J++){const gA=this.tabs.children[J];z!==J?gA.classList.contains("active")&&gA.classList.remove("active"):gA.classList.add("active")}}),this.tabs.appendChild(v)}))}}static parseMeta(H){const b={};if(!H)return{metaObject:b};if(H.forEach(s=>Object.assign(b,s)),b.style){const s=/\{(?:(?:'|_|-)(.+?)(?:'|_|-):([-+]?[0-9]*\.?[0-9]+?);)+(?:(?:'|_|-)(.+?)(?:'|_|-):([-+]?[0-9]*\.?[0-9]+?))\}/,k=b.style.match(s);if(k){const a=/(?:(?:'|_|-)(.+?)(?:'|_|-):([-+]?[0-9]*\.?[0-9]+?))/g,d={};let R;for(;R=a.exec(k[0]);)d[R[1]]=+R[2];return{metaObject:b,enums:d}}}return{metaObject:b}}static getComponent(H,b,s){const k=c.default.predictType(H);if(k.endsWith("group")){const{label:gA,items:HA,type:DA,layout:W}=H,m={label:gA,type:DA,items:HA,style:{grid:s,width:W.width,height:W.height,left:W.offsetLeft,top:W.offsetTop,labelcolor:"rgba(255, 255, 255, 0.7)"},emitter:b};return new l(m)}const a=H,{metaObject:d,enums:R}=this.parseMeta(a.meta),{tooltip:T,unit:e,scale:F}=d,{label:p,min:z,max:x,address:v,layout:q}=a,J={label:p,address:v,tooltip:T,unit:e,scale:F||"linear",emitter:b,enums:R,style:{grid:s,width:q.width,height:q.height,left:q.offsetLeft,top:q.offsetTop},type:"float",min:isFinite(z)?z:0,max:isFinite(x)?x:1,step:"step"in H?+H.step:1,value:"init"in H&&+H.init||0};return k==="button"?new L.default(J):k==="checkbox"?new Y.default(J):k==="nentry"?new i.default(J):k==="knob"?new w.default(J):k==="menu"?new t.default(J):k==="radio"?new Z.default(J):k==="hslider"?new M.default(J):k==="vslider"?new G.default(J):k==="hbargraph"?new y.default(J):k==="vbargraph"?new S.default(J):k==="numerical"?new K.default(J):k==="led"?new h.default(J):null}setState(H){let b=!1;for(const s in H){const k=s,a=H[k];if(k==="style")for(const d in H.style){const R=d;R in this.state.style&&this.state.style[R]!==H.style[R]&&(this.state.style[R]=H.style[R],b=!0)}else if(k in this.state&&this.state[k]!==a)this.state[k]=a,b=!0;else return;b&&this.emit(k,this.state[k])}}componentWillMount(){return this.container=document.createElement("div"),this.tabs=document.createElement("div"),this.tabs.className="faust-ui-tgroup-tabs",this.label=document.createElement("div"),this.label.className="faust-ui-group-label",this.labelCanvas=document.createElement("canvas"),this.labelCtx=this.labelCanvas.getContext("2d"),this.updateUI(),this.children.forEach(H=>H.componentWillMount()),this}paintLabel(){const H=this.state.label,b=this.state.style.labelcolor,s=this.labelCtx,k=this.labelCanvas;let{width:a,height:d}=this.label.getBoundingClientRect();return!a||!d?this:(a=Math.floor(a),d=Math.floor(d),k.height=d,k.width=a,s.clearRect(0,0,a,d),s.fillStyle=b,s.textBaseline="middle",s.textAlign="left",s.font=`bold ${d*.9}px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"`,s.fillText(H,0,d/2,a),this)}mount(){return this.label.appendChild(this.labelCanvas),this.container.appendChild(this.label),this.tabs.children.length&&this.container.appendChild(this.tabs),this.children.forEach(H=>{H.mount(),this.container.appendChild(H.container)}),this}componentDidMount(){const H=()=>{const{grid:k,left:a,top:d,width:R,height:T}=this.state.style;if(this.label.style.height=`${k*.3}px`,this.container.style.width=`${R*k}px`,this.container.style.height=`${T*k}px`,this.container.style.left=`${a*k}px`,this.container.style.top=`${d*k}px`,this.state.type==="tgroup"){this.tabs.style.height=`${k}px`,this.tabs.style.top=`${.25*k}px`;for(let e=0;e<this.tabs.children.length;e++){const F=this.tabs.children[e];F.style.fontSize=`${.25*k}px`,F.style.width=`${2*k-20}px`,F.style.height=`${k-20}px`,F.style.lineHeight=`${k-20}px`}}this.paintLabel(),this.children.forEach(e=>e.setState({style:{grid:k}}))};this.on("style",()=>this.schedule(H));const b=()=>{this.updateUI(),this.children.forEach(k=>k.componentWillMount())};this.on("items",()=>this.schedule(b));const s=()=>{this.paintLabel(),this.label.title=this.state.label};return this.on("label",()=>this.schedule(s)),this.paintLabel(),this.tabs&&this.tabs.children.length&&this.tabs.children[0].click(),this.children.forEach(k=>k.componentDidMount()),this}}},"./src/components/HBargraph.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>G});var o=D("./src/components/AbstractItem.ts"),M=D("./src/components/VBargraph.ts");D("./src/components/HBargraph.scss");class G extends M.default{constructor(){super(...arguments),this.className="hbargraph",this.setStyle=()=>{const{height:L,grid:Y,fontsize:w,textcolor:t,bgcolor:Z,bordercolor:h}=this.state.style;this.input.style.fontSize=`${w||L*Y*.2}px`,this.input.style.color=t,this.container.style.backgroundColor=Z,this.container.style.borderColor=h},this.paint=()=>{const{barwidth:L,barbgcolor:Y,coldcolor:w,warmcolor:t,hotcolor:Z,overloadcolor:h}=this.state.style,{type:K,max:y,min:S,enums:c,scale:l,value:U}=this.state,H=this.ctx,b=this.canvas;let{width:s,height:k}=this.canvasDiv.getBoundingClientRect();s=Math.floor(s),k=Math.floor(k),b.width=s,b.height=k;const a=s*.9,d=L||Math.min(k/3,a*.05),R=s*.05,T=(k-d)*.5;this.paintValue=U;const e=this.paintValue;e>this.maxValue&&(this.maxValue=e,this.maxTimer&&window.clearTimeout(this.maxTimer),this.maxTimer=window.setTimeout(()=>{this.maxValue=this.paintValue,this.maxTimer=void 0,this.schedule(this.paint)},1e3)),e<this.maxValue&&typeof this.maxTimer>"u"&&(this.maxTimer=window.setTimeout(()=>{this.maxValue=this.paintValue,this.maxTimer=void 0,this.schedule(this.paint)},1e3));const F=this.maxValue,p=(-18-S)/(y-S),z=(-6-S)/(y-S),x=(-3-S)/(y-S),v=Math.max(0,-S/(y-S)),q=H.createLinearGradient(R,0,a,0);if(p<=1&&p>=0?q.addColorStop(p,w):p>1&&q.addColorStop(1,w),z<=1&&z>=0&&q.addColorStop(z,t),x<=1&&x>=0&&q.addColorStop(x,Z),v<=1&&v>=0?q.addColorStop(v,h):v<0&&q.addColorStop(0,w),H.fillStyle=Y,e<0&&H.fillRect(R,T,a*v,d),e<y&&H.fillRect(R+a*v+1,T,a*(1-v)-1,d),H.fillStyle=q,e>S){const J=Math.max(0,o.default.getDistance({type:K,max:y,min:S,enums:c,scale:l,value:Math.min(0,e)}));H.fillRect(R,T,J*a,d)}if(e>0){const J=Math.max(0,o.default.getDistance({type:K,max:y,min:S,enums:c,scale:l,value:Math.min(y,e)})-v);H.fillRect(R+v*a+1,T,J*a-1,d)}if(F>e){if(F<=0){const J=Math.max(0,o.default.getDistance({type:K,max:y,min:S,enums:c,scale:l,value:Math.min(0,F)}));H.fillRect(R+J*a-1,T,1,d)}if(F>0){const J=Math.max(0,o.default.getDistance({type:K,max:y,min:S,enums:c,scale:l,value:Math.min(y,F)})-v);H.fillRect(R+Math.min(a-1,(v+J)*a),T,1,d)}}}}paintLabel(){return super.paintLabel("left")}}},"./src/components/HSlider.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>G});var o=D("./src/components/utils.ts"),M=D("./src/components/VSlider.ts");D("./src/components/HSlider.scss");class G extends M.default{constructor(){super(...arguments),this.className="hslider",this.setStyle=()=>{const{height:L,grid:Y,fontsize:w,textcolor:t,bgcolor:Z,bordercolor:h}=this.state.style;this.input.style.fontSize=`${w||L*Y*.2}px`,this.input.style.color=t,this.container.style.backgroundColor=Z,this.container.style.borderColor=h},this.paint=()=>{const{sliderwidth:L,sliderbgcolor:Y,sliderbgoncolor:w,slidercolor:t}=this.state.style,Z=this.ctx,h=this.canvas,K=this.distance;let{width:y,height:S}=this.canvasDiv.getBoundingClientRect();y=Math.floor(y),S=Math.floor(S),h.width=y,h.height=S;const c=y*.9,l=L||Math.min(S/3,c*.05),U=y*.05,H=(S-l)*.5,b=l*.25;this.interactionRect=[U,0,c,S];const s=Z.createLinearGradient(U,0,U+c,0);s.addColorStop(Math.max(0,Math.min(1,K)),w),s.addColorStop(Math.max(0,Math.min(1,K)),Y),Z.fillStyle=s,(0,o.fillRoundedRect)(Z,U,H,c,l,b),Z.fillStyle=t,(0,o.fillRoundedRect)(Z,U+c*K-l,H-l,l*2,l*3,b)}}paintLabel(){return super.paintLabel("left")}}},"./src/components/Knob.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>y});var o=D("./src/components/AbstractItem.ts"),M=D("./src/components/utils.ts");D("./src/components/Knob.scss");var G=Object.defineProperty,i=Object.defineProperties,L=Object.getOwnPropertyDescriptors,Y=Object.getOwnPropertySymbols,w=Object.prototype.hasOwnProperty,t=Object.prototype.propertyIsEnumerable,Z=(S,c,l)=>c in S?G(S,c,{enumerable:!0,configurable:!0,writable:!0,value:l}):S[c]=l,h=(S,c)=>{for(var l in c||(c={}))w.call(c,l)&&Z(S,l,c[l]);if(Y)for(var l of Y(c))t.call(c,l)&&Z(S,l,c[l]);return S},K=(S,c)=>i(S,L(c));class y extends o.default{constructor(){super(...arguments),this.className="knob",this.handleChange=c=>{const l=parseFloat(c.currentTarget.value);isFinite(l)&&this.setValue(+this.inputNumber.value)||(this.input.value=this.inputNumber.value+(this.state.unit||""))},this.setStyle=()=>{const{fontsize:c,height:l,grid:U,textcolor:H,bgcolor:b,bordercolor:s}=this.state.style;this.input.style.fontSize=`${c||l*U*.1}px`,this.input.style.color=H,this.container.style.backgroundColor=b,this.container.style.borderColor=s},this.paint=()=>{const{knobwidth:c,knobcolor:l,knoboncolor:U,needlecolor:H}=this.state.style,b=this.ctx,s=this.canvas,k=this.distance;let{width:a,height:d}=this.canvas.getBoundingClientRect();a=Math.floor(a),d=Math.floor(d),s.width=a,s.height=d;const R=5/8*Math.PI,T=19/8*Math.PI,e=R+(0,M.toRad)(k*315),F=Math.min(a,d)*.75,p=F*.5,z=a*.5,x=d*.5,v=z+F*.5*Math.cos(e),q=x+F*.5*Math.sin(e),J=c||p*.2;b.strokeStyle=l,b.lineWidth=J,b.lineCap="round",b.beginPath(),b.arc(z,x,p,e,T),b.stroke(),k&&(b.strokeStyle=U,b.beginPath(),b.arc(z,x,p,R,e),b.stroke()),b.strokeStyle=H,b.beginPath(),b.moveTo(z,x),b.lineTo(v,q),b.stroke()},this.handlePointerDrag=c=>{const l=this.getValueFromDelta(c);l!==this.state.value&&this.setValue(l)}}static get defaultProps(){const c=super.defaultProps;return K(h({},c),{style:K(h({},c.style),{fontname:"Arial",fontsize:void 0,fontface:"regular",bgcolor:"rgba(18, 18, 18, 0)",bordercolor:"rgba(80, 80, 80, 0)",labelcolor:"rgba(226, 222, 255, 0.5)",textcolor:"rgba(18, 18, 18, 1)",knobwidth:void 0,knobcolor:"rgba(18, 18, 18, 1)",knoboncolor:"rgba(255, 165, 0, 1)",needlecolor:"rgba(200, 200, 200, 0.75)"})})}componentWillMount(){return super.componentWillMount(),this.canvas=document.createElement("canvas"),this.canvas.width=10,this.canvas.height=10,this.ctx=this.canvas.getContext("2d"),this.inputNumber=document.createElement("input"),this.inputNumber.type="number",this.inputNumber.value=(+this.state.value.toFixed(3)).toString(),this.inputNumber.max=this.state.max.toString(),this.inputNumber.min=this.state.min.toString(),this.inputNumber.step=this.state.step.toString(),this.input=document.createElement("input"),this.input.value=this.inputNumber.value+(this.state.unit||""),this.input.spellcheck=!1,this.setStyle(),this}componentDidMount(){super.componentDidMount(),this.input.addEventListener("change",this.handleChange),this.canvas.addEventListener("mousedown",this.handleMouseDown),this.canvas.addEventListener("touchstart",this.handleTouchStart,{passive:!1}),this.on("style",()=>{this.schedule(this.setStyle),this.schedule(this.paint)}),this.on("label",()=>this.schedule(this.paintLabel));const c=()=>{this.inputNumber.value=(+this.state.value.toFixed(3)).toString(),this.input.value=this.inputNumber.value+(this.state.unit||"")};this.on("value",()=>{this.schedule(c),this.schedule(this.paint)});const l=()=>this.inputNumber.max=this.state.max.toString();this.on("max",()=>{this.schedule(l),this.schedule(this.paint)});const U=()=>this.inputNumber.min=this.state.min.toString();this.on("min",()=>{this.schedule(U),this.schedule(this.paint)});const H=()=>this.inputNumber.step=this.state.step.toString();return this.on("step",()=>{this.schedule(H),this.schedule(this.paint)}),this.schedule(this.paint),this}mount(){return this.container.appendChild(this.label),this.container.appendChild(this.canvas),this.container.appendChild(this.input),super.mount()}getValueFromDelta(c){const{type:l,min:U,max:H,enums:b,scale:s}=this.state,k=l==="enum"?1:this.state.step||1,a=this.stepRange,d=this.stepsCount,R=100,e=o.default.getDistance({value:c.prevValue,type:l,min:U,max:H,enums:b,scale:s})*R+c.fromY-c.y,F=(0,M.denormalize)(e/R,U,H),p=s==="exp"?(0,M.normExp)(F,U,H):s==="log"?(0,M.normLog)(F,U,H):F;let z=Math.round((0,M.normalize)(p,U,H)*R/a);return z=Math.min(d,Math.max(0,z)),l==="enum"?z:l==="int"?Math.round(z*k+U):z*k+U}}},"./src/components/Led.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>K});var o=D("./src/components/AbstractItem.ts");D("./src/components/Led.scss");var M=Object.defineProperty,G=Object.defineProperties,i=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,Y=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable,t=(y,S,c)=>S in y?M(y,S,{enumerable:!0,configurable:!0,writable:!0,value:c}):y[S]=c,Z=(y,S)=>{for(var c in S||(S={}))Y.call(S,c)&&t(y,c,S[c]);if(L)for(var c of L(S))w.call(S,c)&&t(y,c,S[c]);return y},h=(y,S)=>G(y,i(S));class K extends o.default{constructor(){super(...arguments),this.className="led",this.setStyle=()=>{const{bgcolor:S,bordercolor:c}=this.state.style;this.container.style.backgroundColor=S,this.container.style.borderColor=c},this.paint=()=>{const{shape:S,ledbgcolor:c,coldcolor:l,warmcolor:U,hotcolor:H,overloadcolor:b}=this.state.style,{min:s,max:k}=this.state,{canvas:a,ctx:d,tempCanvas:R,tempCtx:T,distance:e}=this,{width:F,height:p}=a.getBoundingClientRect();a.width=F,a.height=p;const z=Math.min(p,F)*.75,x=z,v=(F-x)*.5,q=(p-z)*.5,J=(-18-s)/(k-s),gA=(-6-s)/(k-s),HA=(-3-s)/(k-s),DA=-s/(k-s),W=T.createLinearGradient(0,0,R.width,0);J<=1&&J>=0?W.addColorStop(J,l):J>1&&W.addColorStop(1,l),gA<=1&&gA>=0&&W.addColorStop(gA,U),HA<=1&&HA>=0&&W.addColorStop(HA,H),DA<=1&&DA>=0?W.addColorStop(DA,b):DA<0&&W.addColorStop(0,l),T.fillStyle=W,T.fillRect(0,0,R.width,10);const m=T.getImageData(Math.min(R.width-1,e*R.width),0,1,1).data;e?d.fillStyle=`rgb(${m[0]}, ${m[1]}, ${m[2]})`:d.fillStyle=c,S==="circle"?d.arc(F/2,p/2,F/2-v,0,2*Math.PI):d.rect(v,q,x,z),d.fill()}}static get defaultProps(){const S=super.defaultProps;return h(Z({},S),{style:h(Z({},S.style),{fontname:"Arial",fontsize:void 0,fontface:"regular",bgcolor:"rgba(18, 18, 18, 0)",bordercolor:"rgba(80, 80, 80, 0)",labelcolor:"rgba(226, 222, 255, 0.5)",textcolor:"rgba(18, 18, 18, 1)",shape:"circle",ledbgcolor:"rgba(18, 18, 18, 1)",coldcolor:"rgba(12, 248, 100, 1)",warmcolor:"rgba(195, 248, 100, 1)",hotcolor:"rgba(255, 193, 10, 1)",overloadcolor:"rgba(255, 10, 10, 1)"})})}componentWillMount(){return super.componentWillMount(),this.canvasDiv=document.createElement("div"),this.canvasDiv.className=`faust-ui-component-${this.className}-canvasdiv`,this.canvas=document.createElement("canvas"),this.canvas.width=10,this.canvas.height=10,this.ctx=this.canvas.getContext("2d"),this.tempCanvas=document.createElement("canvas"),this.tempCtx=this.tempCanvas.getContext("2d"),this.tempCanvas.width=128,this.tempCanvas.height=1,this.setStyle(),this}componentDidMount(){return super.componentDidMount(),this.canvas.addEventListener("mousedown",this.handleMouseDown),this.canvas.addEventListener("touchstart",this.handleTouchStart,{passive:!1}),this.on("style",()=>this.schedule(this.setStyle)),this.on("label",()=>this.schedule(this.paintLabel)),this.on("value",()=>this.schedule(this.paint)),this.on("max",()=>this.schedule(this.paint)),this.on("min",()=>this.schedule(this.paint)),this.on("step",()=>this.schedule(this.paint)),this.schedule(this.paint),this}mount(){return this.canvasDiv.appendChild(this.canvas),this.container.appendChild(this.label),this.container.appendChild(this.canvasDiv),super.mount()}}},"./src/components/Menu.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>K});var o=D("./src/components/AbstractItem.ts");D("./src/components/Menu.scss");var M=Object.defineProperty,G=Object.defineProperties,i=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,Y=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable,t=(y,S,c)=>S in y?M(y,S,{enumerable:!0,configurable:!0,writable:!0,value:c}):y[S]=c,Z=(y,S)=>{for(var c in S||(S={}))Y.call(S,c)&&t(y,c,S[c]);if(L)for(var c of L(S))w.call(S,c)&&t(y,c,S[c]);return y},h=(y,S)=>G(y,i(S));class K extends o.default{constructor(){super(...arguments),this.className="menu",this.handleChange=S=>{this.setValue(+S.currentTarget.value)},this.setStyle=()=>{const{height:S,grid:c,fontsize:l,textcolor:U,bgcolor:H,bordercolor:b}=this.state.style;this.select.style.backgroundColor=H,this.select.style.borderColor=b,this.select.style.color=U,this.select.style.fontSize=`${l||S*c/4}px`}}static get defaultProps(){const S=super.defaultProps;return h(Z({},S),{style:h(Z({},S.style),{fontname:"Arial",fontsize:void 0,fontface:"regular",bgcolor:"rgba(255, 255, 255, 0.25)",bordercolor:"rgba(80, 80, 80, 0)",labelcolor:"rgba(226, 222, 255, 0.5)",textcolor:"rgba(18, 18, 18, 1)"})})}componentWillMount(){return super.componentWillMount(),this.select=document.createElement("select"),this.getOptions(),this.setStyle(),this}getOptions(){const{enums:S}=this.state;if(this.select.innerHTML="",S){let c=0;for(const l in S){const U=document.createElement("option");U.value=S[l].toString(),U.text=l,c===0&&(U.selected=!0),this.select.appendChild(U),c++}}}componentDidMount(){super.componentDidMount(),this.select.addEventListener("change",this.handleChange),this.on("style",()=>this.schedule(this.setStyle)),this.on("label",()=>this.schedule(this.paintLabel)),this.on("enums",()=>this.schedule(this.getOptions));const S=()=>{for(let c=this.select.children.length-1;c>=0;c--)+this.select.children[c].value===this.state.value&&(this.select.selectedIndex=c)};return this.on("value",()=>this.schedule(S)),S(),this}mount(){return this.container.appendChild(this.label),this.container.appendChild(this.select),super.mount()}}},"./src/components/Nentry.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>K});var o=D("./src/components/AbstractItem.ts");D("./src/components/Nentry.scss");var M=Object.defineProperty,G=Object.defineProperties,i=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,Y=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable,t=(y,S,c)=>S in y?M(y,S,{enumerable:!0,configurable:!0,writable:!0,value:c}):y[S]=c,Z=(y,S)=>{for(var c in S||(S={}))Y.call(S,c)&&t(y,c,S[c]);if(L)for(var c of L(S))w.call(S,c)&&t(y,c,S[c]);return y},h=(y,S)=>G(y,i(S));class K extends o.default{constructor(){super(...arguments),this.className="nentry",this.handleChange=S=>{this.setValue(+S.currentTarget.value)},this.setStyle=()=>{const{height:S,grid:c,fontsize:l,textcolor:U,bgcolor:H,bordercolor:b}=this.state.style;this.input.style.backgroundColor=H,this.input.style.borderColor=b,this.input.style.color=U,this.input.style.fontSize=`${l||S*c/4}px`}}static get defaultProps(){const S=super.defaultProps;return h(Z({},S),{style:h(Z({},S.style),{fontname:"Arial",fontsize:void 0,fontface:"regular",bgcolor:"rgba(255, 255, 255, 0.25)",bordercolor:"rgba(80, 80, 80, 0)",labelcolor:"rgba(226, 222, 255, 0.5)",textcolor:"rgba(18, 18, 18, 1)"})})}componentWillMount(){return super.componentWillMount(),this.input=document.createElement("input"),this.input.type="number",this.input.value=(+this.state.value.toFixed(3)).toString(),this.input.max=this.state.max.toString(),this.input.min=this.state.min.toString(),this.input.step=this.state.step.toString(),this.setStyle(),this}componentDidMount(){super.componentDidMount(),this.input.addEventListener("change",this.handleChange),this.on("style",()=>this.schedule(this.setStyle)),this.on("label",()=>this.schedule(this.paintLabel));const S=()=>this.input.value=(+this.state.value.toFixed(3)).toString();this.on("value",()=>this.schedule(S));const c=()=>this.input.max=this.state.max.toString();this.on("max",()=>this.schedule(c));const l=()=>this.input.min=this.state.min.toString();this.on("min",()=>this.schedule(l));const U=()=>this.input.step=this.state.step.toString();return this.on("step",()=>this.schedule(U)),this}mount(){return this.container.appendChild(this.label),this.container.appendChild(this.input),super.mount()}}},"./src/components/Numerical.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>K});var o=D("./src/components/AbstractItem.ts");D("./src/components/Numerical.scss");var M=Object.defineProperty,G=Object.defineProperties,i=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,Y=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable,t=(y,S,c)=>S in y?M(y,S,{enumerable:!0,configurable:!0,writable:!0,value:c}):y[S]=c,Z=(y,S)=>{for(var c in S||(S={}))Y.call(S,c)&&t(y,c,S[c]);if(L)for(var c of L(S))w.call(S,c)&&t(y,c,S[c]);return y},h=(y,S)=>G(y,i(S));class K extends o.default{constructor(){super(...arguments),this.className="numerical",this.setStyle=()=>{const{height:S,grid:c,fontsize:l,textcolor:U,bgcolor:H,bordercolor:b}=this.state.style;this.input.style.backgroundColor=H,this.input.style.borderColor=b,this.input.style.color=U,this.input.style.fontSize=`${l||S*c/4}px`}}static get defaultProps(){const S=super.defaultProps;return h(Z({},S),{style:h(Z({},S.style),{fontname:"Arial",fontsize:void 0,fontface:"regular",bgcolor:"rgba(255, 255, 255, 0.25)",bordercolor:"rgba(80, 80, 80, 0)",labelcolor:"rgba(226, 222, 255, 0.5)",textcolor:"rgba(18, 18, 18, 1)"})})}componentWillMount(){return super.componentWillMount(),this.input=document.createElement("input"),this.input.disabled=!0,this.input.value=(+this.state.value.toFixed(3)).toString()+(this.state.unit||""),this.setStyle(),this}componentDidMount(){super.componentDidMount(),this.on("style",()=>this.schedule(this.setStyle)),this.on("label",()=>this.schedule(this.paintLabel));const S=()=>this.input.value=(+this.state.value.toFixed(3)).toString()+(this.state.unit||"");return this.on("value",()=>this.schedule(S)),this}mount(){return this.container.appendChild(this.label),this.container.appendChild(this.input),super.mount()}}},"./src/components/Radio.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>K});var o=D("./src/components/AbstractItem.ts");D("./src/components/Radio.scss");var M=Object.defineProperty,G=Object.defineProperties,i=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,Y=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable,t=(y,S,c)=>S in y?M(y,S,{enumerable:!0,configurable:!0,writable:!0,value:c}):y[S]=c,Z=(y,S)=>{for(var c in S||(S={}))Y.call(S,c)&&t(y,c,S[c]);if(L)for(var c of L(S))w.call(S,c)&&t(y,c,S[c]);return y},h=(y,S)=>G(y,i(S));class K extends o.default{constructor(){super(...arguments),this.className="radio",this.getOptions=()=>{const{enums:S,address:c}=this.state;if(this.group.innerHTML="",S){let l=0;for(const U in S){const H=document.createElement("input"),b=document.createElement("div");H.value=S[U].toString(),H.name=c,H.type="radio",l===0&&(H.checked=!0),H.addEventListener("change",()=>{H.checked&&this.setValue(S[U])}),b.appendChild(H),b.append(U),this.group.appendChild(b),l++}}},this.setStyle=()=>{const{height:S,width:c,grid:l,fontsize:U,textcolor:H,bgcolor:b,bordercolor:s}=this.state.style,k=Math.min(S*l*.1,c*l*.1);this.group.style.backgroundColor=b,this.group.style.borderColor=s,this.group.style.color=H,this.group.style.fontSize=`${U||k}px`}}static get defaultProps(){const S=super.defaultProps;return h(Z({},S),{style:h(Z({},S.style),{fontname:"Arial",fontsize:void 0,fontface:"regular",bgcolor:"rgba(255, 255, 255, 0.25)",bordercolor:"rgba(80, 80, 80, 0)",labelcolor:"rgba(226, 222, 255, 0.5)",textcolor:"rgba(18, 18, 18, 1)"})})}componentWillMount(){return super.componentWillMount(),this.group=document.createElement("div"),this.group.className="faust-ui-component-radio-group",this.getOptions(),this.setStyle(),this}componentDidMount(){super.componentDidMount(),this.on("style",()=>this.schedule(this.setStyle)),this.on("label",()=>this.schedule(this.paintLabel)),this.on("enums",()=>this.schedule(this.getOptions));const S=()=>{for(let c=this.group.children.length-1;c>=0;c--){const l=this.group.children[c].querySelector("input");+l.value===this.state.value&&(l.checked=!0)}};return this.on("value",()=>this.schedule(S)),S(),this}mount(){return this.container.appendChild(this.label),this.container.appendChild(this.group),super.mount()}}},"./src/components/VBargraph.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>K});var o=D("./src/components/AbstractItem.ts");D("./src/components/VBargraph.scss");var M=Object.defineProperty,G=Object.defineProperties,i=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,Y=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable,t=(y,S,c)=>S in y?M(y,S,{enumerable:!0,configurable:!0,writable:!0,value:c}):y[S]=c,Z=(y,S)=>{for(var c in S||(S={}))Y.call(S,c)&&t(y,c,S[c]);if(L)for(var c of L(S))w.call(S,c)&&t(y,c,S[c]);return y},h=(y,S)=>G(y,i(S));class K extends o.default{constructor(){super(...arguments),this.className="vbargraph",this.setStyle=()=>{const{height:S,width:c,grid:l,fontsize:U,textcolor:H,bgcolor:b,bordercolor:s}=this.state.style,k=Math.min(S*l*.05,c*l*.2);this.input.style.fontSize=`${U||k}px`,this.input.style.color=H,this.container.style.backgroundColor=b,this.container.style.borderColor=s},this.paintValue=0,this.maxValue=-1/0,this.paint=()=>{const{barwidth:S,barbgcolor:c,coldcolor:l,warmcolor:U,hotcolor:H,overloadcolor:b}=this.state.style,{type:s,max:k,min:a,enums:d,scale:R,value:T}=this.state,e=this.ctx,F=this.canvas;let{width:p,height:z}=this.canvasDiv.getBoundingClientRect();p=Math.floor(p),z=Math.floor(z),F.width=p,F.height=z;const x=z*.9,v=S||Math.min(p/3,x*.05),q=(p-v)*.5,J=z*.05;this.paintValue=T;const gA=this.paintValue;gA>this.maxValue&&(this.maxValue=gA,this.maxTimer&&window.clearTimeout(this.maxTimer),this.maxTimer=window.setTimeout(()=>{this.maxValue=this.paintValue,this.maxTimer=void 0,this.schedule(this.paint)},1e3)),gA<this.maxValue&&typeof this.maxTimer>"u"&&(this.maxTimer=window.setTimeout(()=>{this.maxValue=this.paintValue,this.maxTimer=void 0,this.schedule(this.paint)},1e3));const HA=this.maxValue,DA=(-18-a)/(k-a),W=(-6-a)/(k-a),m=(-3-a)/(k-a),n=Math.max(0,-a/(k-a)),$=e.createLinearGradient(0,x,0,J);if(DA<=1&&DA>=0?$.addColorStop(DA,l):DA>1&&$.addColorStop(1,l),W<=1&&W>=0&&$.addColorStop(W,U),m<=1&&m>=0&&$.addColorStop(m,H),n<=1&&n>=0?$.addColorStop(n,b):n<0&&$.addColorStop(0,l),e.fillStyle=c,gA<0&&e.fillRect(q,J+(1-n)*x,v,x*n),gA<k&&e.fillRect(q,J,v,(1-n)*x-1),e.fillStyle=$,gA>a){const MA=Math.max(0,o.default.getDistance({type:s,max:k,min:a,enums:d,scale:R,value:Math.min(0,gA)}));e.fillRect(q,J+(1-MA)*x,v,x*MA)}if(gA>0){const MA=Math.max(0,o.default.getDistance({type:s,max:k,min:a,enums:d,scale:R,value:Math.min(k,gA)})-n);e.fillRect(q,J+(1-n-MA)*x,v,x*MA-1)}if(HA>gA){if(HA<=0){const MA=Math.max(0,o.default.getDistance({type:s,max:k,min:a,enums:d,scale:R,value:Math.min(0,HA)}));e.fillRect(q,J+(1-MA)*x,v,1)}if(HA>0){const MA=Math.max(0,o.default.getDistance({type:s,max:k,min:a,enums:d,scale:R,value:Math.min(k,HA)})-n);e.fillRect(q,Math.max(J,J+(1-n-MA)*x-1),v,1)}}}}static get defaultProps(){const S=super.defaultProps;return h(Z({},S),{style:h(Z({},S.style),{fontname:"Arial",fontsize:void 0,fontface:"regular",bgcolor:"rgba(18, 18, 18, 0)",bordercolor:"rgba(80, 80, 80, 0)",labelcolor:"rgba(226, 222, 255, 0.5)",textcolor:"rgba(18, 18, 18, 1)",barwidth:void 0,barbgcolor:"rgba(18, 18, 18, 1)",coldcolor:"rgba(12, 248, 100, 1)",warmcolor:"rgba(195, 248, 100, 1)",hotcolor:"rgba(255, 193, 10, 1)",overloadcolor:"rgba(255, 10, 10, 1)"})})}componentWillMount(){return super.componentWillMount(),this.flexDiv=document.createElement("div"),this.flexDiv.className=`faust-ui-component-${this.className}-flexdiv`,this.canvasDiv=document.createElement("div"),this.canvasDiv.className=`faust-ui-component-${this.className}-canvasdiv`,this.canvas=document.createElement("canvas"),this.canvas.width=10,this.canvas.height=10,this.ctx=this.canvas.getContext("2d"),this.input=document.createElement("input"),this.input.disabled=!0,this.input.value=(+this.state.value.toFixed(3)).toString()+(this.state.unit||""),this.setStyle(),this}componentDidMount(){super.componentDidMount(),this.canvas.addEventListener("mousedown",this.handleMouseDown),this.canvas.addEventListener("touchstart",this.handleTouchStart,{passive:!1}),this.on("style",()=>{this.schedule(this.setStyle),this.schedule(this.paint)}),this.on("label",()=>this.schedule(this.paintLabel));const S=()=>this.input.value=(+this.state.value.toFixed(3)).toString()+(this.state.unit||"");return this.on("value",()=>{this.schedule(S),this.schedule(this.paint)}),this.on("max",()=>this.schedule(this.paint)),this.on("min",()=>this.schedule(this.paint)),this.on("step",()=>this.schedule(this.paint)),this.schedule(this.paint),this}mount(){return this.canvasDiv.appendChild(this.canvas),this.flexDiv.appendChild(this.canvasDiv),this.flexDiv.appendChild(this.input),this.container.appendChild(this.label),this.container.appendChild(this.flexDiv),super.mount()}}},"./src/components/VSlider.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>y});var o=D("./src/components/AbstractItem.ts"),M=D("./src/components/utils.ts");D("./src/components/VSlider.scss");var G=Object.defineProperty,i=Object.defineProperties,L=Object.getOwnPropertyDescriptors,Y=Object.getOwnPropertySymbols,w=Object.prototype.hasOwnProperty,t=Object.prototype.propertyIsEnumerable,Z=(S,c,l)=>c in S?G(S,c,{enumerable:!0,configurable:!0,writable:!0,value:l}):S[c]=l,h=(S,c)=>{for(var l in c||(c={}))w.call(c,l)&&Z(S,l,c[l]);if(Y)for(var l of Y(c))t.call(c,l)&&Z(S,l,c[l]);return S},K=(S,c)=>i(S,L(c));class y extends o.default{constructor(){super(...arguments),this.className="vslider",this.interactionRect=[0,0,0,0],this.handleChange=c=>{const l=parseFloat(c.currentTarget.value);isFinite(l)&&this.setValue(+l)||(this.input.value=this.inputNumber.value+(this.state.unit||""))},this.setStyle=()=>{const{height:c,width:l,grid:U,fontsize:H,textcolor:b,bgcolor:s,bordercolor:k}=this.state.style,a=Math.min(c*U*.05,l*U*.2);this.input.style.fontSize=`${H||a}px`,this.input.style.color=b,this.container.style.backgroundColor=s,this.container.style.borderColor=k},this.paint=()=>{const{sliderwidth:c,sliderbgcolor:l,sliderbgoncolor:U,slidercolor:H}=this.state.style,b=this.ctx,s=this.canvas,k=this.distance;let{width:a,height:d}=this.canvasDiv.getBoundingClientRect();a=Math.floor(a),d=Math.floor(d),s.width=a,s.height=d;const R=d*.9,T=c||Math.min(a/3,R*.05),e=(a-T)*.5,F=d*.05,p=T*.25;this.interactionRect=[0,F,a,R];const z=b.createLinearGradient(0,F,0,F+R);z.addColorStop(Math.max(0,Math.min(1,1-k)),l),z.addColorStop(Math.max(0,Math.min(1,1-k)),U),b.fillStyle=z,(0,M.fillRoundedRect)(b,e,F,T,R,p),b.fillStyle=H,(0,M.fillRoundedRect)(b,e-T,F+R*(1-k)-T,T*3,T*2,p)},this.handlePointerDown=c=>{const{value:l}=this.state;if(c.x<this.interactionRect[0]||c.x>this.interactionRect[0]+this.interactionRect[2]||c.y<this.interactionRect[1]||c.y>this.interactionRect[1]+this.interactionRect[3])return;this.getValueFromPos(c)!==l&&this.setValue(this.getValueFromPos(c))},this.handlePointerDrag=c=>{const l=this.getValueFromPos(c);l!==this.state.value&&this.setValue(l)}}static get defaultProps(){const c=super.defaultProps;return K(h({},c),{style:K(h({},c.style),{fontname:"Arial",fontsize:void 0,fontface:"regular",bgcolor:"rgba(18, 18, 18, 0)",bordercolor:"rgba(80, 80, 80, 0)",labelcolor:"rgba(226, 222, 255, 0.5)",textcolor:"rgba(18, 18, 18, 1)",sliderwidth:void 0,sliderbgcolor:"rgba(18, 18, 18, 1)",sliderbgoncolor:"rgba(255, 165, 0, 1)",slidercolor:"rgba(200, 200, 200, 0.75)"})})}componentWillMount(){return super.componentWillMount(),this.flexDiv=document.createElement("div"),this.flexDiv.className=`faust-ui-component-${this.className}-flexdiv`,this.canvasDiv=document.createElement("div"),this.canvasDiv.className=`faust-ui-component-${this.className}-canvasdiv`,this.canvas=document.createElement("canvas"),this.canvas.width=10,this.canvas.height=10,this.ctx=this.canvas.getContext("2d"),this.inputNumber=document.createElement("input"),this.inputNumber.type="number",this.inputNumber.value=(+this.state.value.toFixed(3)).toString(),this.inputNumber.max=this.state.max.toString(),this.inputNumber.min=this.state.min.toString(),this.inputNumber.step=this.state.step.toString(),this.input=document.createElement("input"),this.input.value=this.inputNumber.value+(this.state.unit||""),this.input.spellcheck=!1,this.setStyle(),this}componentDidMount(){super.componentDidMount(),this.input.addEventListener("change",this.handleChange),this.canvas.addEventListener("mousedown",this.handleMouseDown),this.canvas.addEventListener("touchstart",this.handleTouchStart,{passive:!1}),this.on("style",()=>{this.schedule(this.setStyle),this.schedule(this.paint)}),this.on("label",()=>this.schedule(this.paintLabel));const c=()=>{this.inputNumber.value=(+this.state.value.toFixed(3)).toString(),this.input.value=this.inputNumber.value+(this.state.unit||"")};this.on("value",()=>{this.schedule(c),this.schedule(this.paint)});const l=()=>this.inputNumber.max=this.state.max.toString();this.on("max",()=>{this.schedule(l),this.schedule(this.paint)});const U=()=>this.inputNumber.min=this.state.min.toString();this.on("min",()=>{this.schedule(U),this.schedule(this.paint)});const H=()=>this.inputNumber.step=this.state.step.toString();return this.on("step",()=>{this.schedule(H),this.schedule(this.paint)}),this.schedule(this.paint),this}mount(){return this.canvasDiv.appendChild(this.canvas),this.flexDiv.appendChild(this.canvasDiv),this.flexDiv.appendChild(this.input),this.container.appendChild(this.label),this.container.appendChild(this.flexDiv),super.mount()}get stepsCount(){const{type:c,max:l,min:U,step:H,enums:b}=this.state,s=c==="enum"?b.length:c==="int"?l-U:(l-U)/H;return H?c==="enum"?b.length:c==="int"?Math.min(Math.floor((l-U)/(Math.round(H)||0)),s):Math.floor((l-U)/H):s}get stepRange(){const c=this.interactionRect[this.className==="vslider"?3:2],l=this.stepsCount;return c/l}getValueFromPos(c){const{type:l,min:U,max:H,scale:b}=this.state,s=l==="enum"?1:this.state.step||1,k=this.stepRange,a=this.stepsCount,d=this.className==="vslider"?this.interactionRect[3]-(c.y-this.interactionRect[1]):c.x-this.interactionRect[0],R=this.className==="vslider"?this.interactionRect[3]:this.interactionRect[2],T=(0,M.denormalize)(d/R,U,H),e=b==="exp"?(0,M.normExp)(T,U,H):b==="log"?(0,M.normLog)(T,U,H):T;let F=Math.round((0,M.normalize)(e,U,H)*R/k);return F=Math.min(a,Math.max(0,F)),l==="enum"?F:l==="int"?Math.round(F*s+U):F*s+U}}},"./src/components/utils.ts":(E,N,D)=>{D.r(N),D.d(N,{atodb:()=>G,dbtoa:()=>i,denormalize:()=>L,fillRoundedRect:()=>y,iNormExp:()=>h,iNormLog:()=>t,normExp:()=>Z,normLog:()=>w,normalize:()=>Y,roundedRect:()=>K,toMIDI:()=>o,toRad:()=>M});const o=S=>["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"][(S%12+12)%12]+Math.round(S/12-2),M=S=>S*Math.PI/180,G=S=>20*Math.log10(S),i=S=>10**(S/20),L=(S,c,l)=>c+(l-c)*S,Y=(S,c,l)=>(S-c)/(l-c)||0,w=(S,c,l)=>{const U=Y(S,c,l),H=Math.log(Math.max(Number.EPSILON,c)),b=Math.log(Math.max(Number.EPSILON,l)),s=L(U,H,b),k=Math.exp(s);return Math.max(c,Math.min(l,k))},t=(S,c,l)=>{const U=Math.max(c,Math.min(l,S)),H=Math.log(Math.max(Number.EPSILON,U)),b=Math.log(Math.max(Number.EPSILON,c)),s=Math.log(Math.max(Number.EPSILON,l)),k=Y(H,b,s);return L(k,c,l)},Z=t,h=w,K=(S,c,l,U,H,b)=>{const s=[0,0,0,0];typeof b=="number"?s.fill(b):b.forEach((k,a)=>s[a]=k),S.beginPath(),S.moveTo(c+s[0],l),S.lineTo(c+U-s[1],l),S.quadraticCurveTo(c+U,l,c+U,l+s[1]),S.lineTo(c+U,l+H-s[2]),S.quadraticCurveTo(c+U,l+H,c+U-s[2],l+H),S.lineTo(c+s[3],l+H),S.quadraticCurveTo(c,l+H,c,l+H-s[3]),S.lineTo(c,l+s[0]),S.quadraticCurveTo(c,l,c+s[0],l),S.closePath(),S.stroke()},y=(S,c,l,U,H,b)=>{const s=[0,0,0,0];typeof b=="number"?s.fill(b):b.forEach((k,a)=>s[a]=k),S.beginPath(),S.moveTo(c+s[0],l),S.lineTo(c+U-s[1],l),S.quadraticCurveTo(c+U,l,c+U,l+s[1]),S.lineTo(c+U,l+H-s[2]),S.quadraticCurveTo(c+U,l+H,c+U-s[2],l+H),S.lineTo(c+s[3],l+H),S.quadraticCurveTo(c,l+H,c,l+H-s[3]),S.lineTo(c,l+s[0]),S.quadraticCurveTo(c,l,c+s[0],l),S.closePath(),S.fill()}},"./src/instantiate.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>G});var o=D("./src/FaustUI.ts");const G=()=>{const i=new o.default({root:document.getElementById("root"),listenWindowResize:!0,listenWindowMessage:!0});let L;window.addEventListener("message",Y=>{const{source:w}=Y;L=w}),window.addEventListener("keydown",Y=>{L&&L.postMessage({type:"keydown",key:Y.key},"*")}),window.addEventListener("keyup",Y=>{L&&L.postMessage({type:"keyup",key:Y.key},"*")}),window.faustUI=i}},"./src/layout/AbstractGroup.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});const o=class{constructor(G,i){this.isRoot=!!i,Object.assign(this,G);const{hasHSizingDesc:L,hasVSizingDesc:Y}=this,w=L&&Y?"both":L?"horizontal":Y?"vertical":"none";this.layout={type:G.type,width:o.padding*2,height:o.padding*2+o.labelHeight,sizing:w}}get hasHSizingDesc(){return!!this.items.find(G=>G instanceof o?G.hasHSizingDesc:G.layout.sizing==="horizontal"||G.layout.sizing==="both")}get hasVSizingDesc(){return!!this.items.find(G=>G instanceof o?G.hasVSizingDesc:G.layout.sizing==="vertical"||G.layout.sizing==="both")}adjust(){return this}expand(G,i){return this}offset(){return this}};let M=o;M.padding=.2,M.labelHeight=.25,M.spaceBetween=.1},"./src/layout/AbstractInputItem.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractItem.ts");class M extends o.default{constructor(i){super(i),this.init=+i.init||0,this.step=+i.step||1}}},"./src/layout/AbstractItem.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>o});class o{constructor(G){Object.assign(this,G),this.min=isFinite(+this.min)?+this.min:0,this.max=isFinite(+this.max)?+this.max:1}adjust(){return this}expand(G,i){return this}offset(){return this}}},"./src/layout/AbstractOutputItem.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractItem.ts");class M extends o.default{}},"./src/layout/Button.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractInputItem.ts");class M extends o.default{constructor(){super(...arguments),this.layout={type:"button",width:2,height:1,sizing:"horizontal"}}}},"./src/layout/Checkbox.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractInputItem.ts");class M extends o.default{constructor(){super(...arguments),this.layout={type:"checkbox",width:2,height:1,sizing:"horizontal"}}}},"./src/layout/HBargraph.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractOutputItem.ts");class M extends o.default{constructor(){super(...arguments),this.layout={type:"hbargraph",width:5,height:1,sizing:"horizontal"}}}},"./src/layout/HGroup.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractGroup.ts");class M extends o.default{adjust(){return this.items.forEach(i=>{i.adjust(),this.layout.width+=i.layout.width,this.layout.height=Math.max(this.layout.height,i.layout.height+2*o.default.padding+o.default.labelHeight)}),this.layout.width+=o.default.spaceBetween*(this.items.length-1),this.layout.width<1&&(this.layout.width+=1),this}expand(i){let L=0;return this.items.forEach(Y=>{(Y.layout.sizing==="both"||Y.layout.sizing==="horizontal")&&L++}),this.items.forEach(Y=>{let w=0,t=0;(Y.layout.sizing==="both"||Y.layout.sizing==="horizontal")&&(w=L?i/L:0,Y.layout.width+=w),(Y.layout.sizing==="both"||Y.layout.sizing==="vertical")&&(t=this.layout.height-2*o.default.padding-o.default.labelHeight-Y.layout.height,Y.layout.height+=t),Y.expand(w,t)}),this.layout.width+=i,this}offset(){const{labelHeight:i,padding:L,spaceBetween:Y}=o.default;let w=L;const t=L+i,{height:Z}=this.layout;return this.items.forEach(h=>{h.layout.offsetLeft=w,h.layout.offsetTop=t,h.layout.offsetTop+=(Z-i-h.layout.height)/2-L,h.layout.left=(this.layout.left||0)+h.layout.offsetLeft,h.layout.top=(this.layout.top||0)+h.layout.offsetTop,h.offset(),w+=h.layout.width+Y}),this}}},"./src/layout/HSlider.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractInputItem.ts");class M extends o.default{constructor(){super(...arguments),this.layout={type:"hslider",width:5,height:1,sizing:"horizontal"}}}},"./src/layout/Knob.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractInputItem.ts");class M extends o.default{constructor(){super(...arguments),this.layout={type:"knob",width:1,height:1.75,sizing:"none"}}}},"./src/layout/Layout.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>U});var o=D("./src/layout/HSlider.ts"),M=D("./src/layout/VSlider.ts"),G=D("./src/layout/Nentry.ts"),i=D("./src/layout/Button.ts"),L=D("./src/layout/Checkbox.ts"),Y=D("./src/layout/Knob.ts"),w=D("./src/layout/Menu.ts"),t=D("./src/layout/Radio.ts"),Z=D("./src/layout/Led.ts"),h=D("./src/layout/Numerical.ts"),K=D("./src/layout/HBargraph.ts"),y=D("./src/layout/VBargraph.ts"),S=D("./src/layout/HGroup.ts"),c=D("./src/layout/VGroup.ts"),l=D("./src/layout/TGroup.ts");class U{static predictType(b){if(b.type==="vgroup"||b.type==="hgroup"||b.type==="tgroup"||b.type==="button"||b.type==="checkbox")return b.type;if(b.type==="hbargraph"||b.type==="vbargraph")return b.meta&&b.meta.find(s=>s.style&&s.style.startsWith("led"))?"led":b.meta&&b.meta.find(s=>s.style&&s.style.startsWith("numerical"))?"numerical":b.type;if(b.type==="hslider"||b.type==="nentry"||b.type==="vslider"){if(b.meta&&b.meta.find(s=>s.style&&s.style.startsWith("knob")))return"knob";if(b.meta&&b.meta.find(s=>s.style&&s.style.startsWith("menu")))return"menu";if(b.meta&&b.meta.find(s=>s.style&&s.style.startsWith("radio")))return"radio"}return b.type}static getItem(b){const s={hslider:o.default,vslider:M.default,nentry:G.default,button:i.default,checkbox:L.default,knob:Y.default,menu:w.default,radio:t.default,led:Z.default,numerical:h.default,hbargraph:K.default,vbargraph:y.default,hgroup:S.default,vgroup:c.default,tgroup:l.default},k=this.predictType(b);return new s[k](b)}static getItems(b){return b.map(s=>("items"in s&&(s.items=this.getItems(s.items)),this.getItem(s)))}static calc(b){const s=new c.default({items:this.getItems(b),type:"vgroup",label:""},!0);return s.adjust(),s.expand(0,0),s.offset(),s}}},"./src/layout/Led.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractOutputItem.ts");class M extends o.default{constructor(){super(...arguments),this.layout={type:"led",width:1,height:1,sizing:"none"}}}},"./src/layout/Menu.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractInputItem.ts");class M extends o.default{constructor(){super(...arguments),this.layout={type:"menu",width:2,height:1,sizing:"horizontal"}}}},"./src/layout/Nentry.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractInputItem.ts");class M extends o.default{constructor(){super(...arguments),this.layout={type:"nentry",width:1,height:1,sizing:"none"}}}},"./src/layout/Numerical.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractOutputItem.ts");class M extends o.default{constructor(){super(...arguments),this.layout={type:"numerical",width:1,height:1,sizing:"none"}}}},"./src/layout/Radio.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractInputItem.ts");class M extends o.default{constructor(){super(...arguments),this.layout={type:"radio",width:2,height:2,sizing:"both"}}}},"./src/layout/TGroup.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>G});var o=D("./src/layout/AbstractGroup.ts");const M=class extends o.default{adjust(){this.items.forEach(L=>{L.adjust(),this.layout.width=Math.max(this.layout.width,L.layout.width+2*o.default.padding),this.layout.height=Math.max(this.layout.height,L.layout.height+2*o.default.padding+M.labelHeight)});const i=this.items.length;return this.layout.width=Math.max(this.layout.width,i*M.tabLayout.width),this.layout.height+=M.tabLayout.height,this.layout.width<1&&(this.layout.width+=1),this}expand(){const i=this.items.length;return this.items.forEach(L=>{let Y=0,w=0;(L.layout.sizing==="both"||L.layout.sizing==="horizontal")&&(w=this.layout.width-2*o.default.padding-L.layout.width),(L.layout.sizing==="both"||L.layout.sizing==="vertical")&&(Y=this.layout.height-2*o.default.padding-o.default.labelHeight-(i?M.tabLayout.height:0)-L.layout.height),L.expand(w,Y)}),this}offset(){const{labelHeight:i,padding:L}=o.default,Y=L,w=L+i+M.tabLayout.height;return this.items.forEach(t=>{t.layout.offsetLeft=Y,t.layout.offsetTop=w,t.layout.left=(this.layout.left||0)+t.layout.offsetLeft,t.layout.top=(this.layout.top||0)+t.layout.offsetTop,t.offset()}),this}};let G=M;G.tabLayout={width:2,height:1}},"./src/layout/VBargraph.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractOutputItem.ts");class M extends o.default{constructor(){super(...arguments),this.layout={type:"vbargraph",width:1,height:5,sizing:"vertical"}}}},"./src/layout/VGroup.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractGroup.ts");class M extends o.default{adjust(){return this.items.forEach(i=>{i.adjust(),this.layout.width=Math.max(this.layout.width,i.layout.width+2*o.default.padding),this.layout.height+=i.layout.height}),this.layout.height+=o.default.spaceBetween*(this.items.length-1),this.layout.width<1&&(this.layout.width+=1),this}expand(i,L){let Y=0;return this.items.forEach(w=>{(w.layout.sizing==="both"||w.layout.sizing==="vertical")&&Y++}),this.items.forEach(w=>{let t=0,Z=0;(w.layout.sizing==="both"||w.layout.sizing==="horizontal")&&(t=this.layout.width-2*o.default.padding-w.layout.width,w.layout.width+=t),(w.layout.sizing==="both"||w.layout.sizing==="vertical")&&(Z=Y?L/Y:0,w.layout.height+=Z),w.expand(t,Z)}),this.layout.height+=L,this}offset(){const{labelHeight:i,padding:L,spaceBetween:Y}=o.default,w=L;let t=L+i;const{width:Z}=this.layout;return this.items.forEach(h=>{h.layout.offsetLeft=w,h.layout.offsetTop=t,h.layout.offsetLeft+=(Z-h.layout.width)/2-L,h.layout.left=(this.layout.left||0)+h.layout.offsetLeft,h.layout.top=(this.layout.top||0)+h.layout.offsetTop,h.offset(),t+=h.layout.height+Y}),this}}},"./src/layout/VSlider.ts":(E,N,D)=>{D.r(N),D.d(N,{default:()=>M});var o=D("./src/layout/AbstractInputItem.ts");class M extends o.default{constructor(){super(...arguments),this.layout={type:"vslider",width:1,height:5,sizing:"vertical"}}}},"./src/components/Base.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>l});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/Base.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const l=S.default&&S.default.locals?S.default.locals:void 0},"./src/components/Button.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>l});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/Button.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const l=S.default&&S.default.locals?S.default.locals:void 0},"./src/components/Checkbox.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>l});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/Checkbox.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const l=S.default&&S.default.locals?S.default.locals:void 0},"./src/components/Group.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>l});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/Group.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const l=S.default&&S.default.locals?S.default.locals:void 0},"./src/components/HBargraph.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>l});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/HBargraph.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const l=S.default&&S.default.locals?S.default.locals:void 0},"./src/components/HSlider.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>l});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/HSlider.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const l=S.default&&S.default.locals?S.default.locals:void 0},"./src/components/Knob.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>l});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/Knob.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const l=S.default&&S.default.locals?S.default.locals:void 0},"./src/components/Led.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>l});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/Led.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const l=S.default&&S.default.locals?S.default.locals:void 0},"./src/components/Menu.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>l});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/Menu.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const l=S.default&&S.default.locals?S.default.locals:void 0},"./src/components/Nentry.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>l});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/Nentry.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const l=S.default&&S.default.locals?S.default.locals:void 0},"./src/components/Numerical.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>l});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/Numerical.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const l=S.default&&S.default.locals?S.default.locals:void 0},"./src/components/Radio.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>l});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/Radio.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const l=S.default&&S.default.locals?S.default.locals:void 0},"./src/components/VBargraph.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>l});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/VBargraph.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const l=S.default&&S.default.locals?S.default.locals:void 0},"./src/components/VSlider.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>l});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/components/VSlider.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const l=S.default&&S.default.locals?S.default.locals:void 0},"./src/index.scss":(E,N,D)=>{D.r(N),D.d(N,{default:()=>l});var o=D("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),M=D.n(o),G=D("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),i=D.n(G),L=D("./node_modules/style-loader/dist/runtime/insertBySelector.js"),Y=D.n(L),w=D("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),t=D.n(w),Z=D("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),h=D.n(Z),K=D("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),y=D.n(K),S=D("./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/index.scss"),c={};c.styleTagTransform=y(),c.setAttributes=t(),c.insert=Y().bind(null,"head"),c.domAPI=i(),c.insertStyleElement=h(),M()(S.default,c);const l=S.default&&S.default.locals?S.default.locals:void 0},"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":E=>{var N=[];function D(G){for(var i=-1,L=0;L<N.length;L++)if(N[L].identifier===G){i=L;break}return i}function o(G,i){for(var L={},Y=[],w=0;w<G.length;w++){var t=G[w],Z=i.base?t[0]+i.base:t[0],h=L[Z]||0,K="".concat(Z," ").concat(h);L[Z]=h+1;var y=D(K),S={css:t[1],media:t[2],sourceMap:t[3],supports:t[4],layer:t[5]};if(y!==-1)N[y].references++,N[y].updater(S);else{var c=M(S,i);i.byIndex=w,N.splice(w,0,{identifier:K,updater:c,references:1})}Y.push(K)}return Y}function M(G,i){var L=i.domAPI(i);L.update(G);var Y=function(t){if(t){if(t.css===G.css&&t.media===G.media&&t.sourceMap===G.sourceMap&&t.supports===G.supports&&t.layer===G.layer)return;L.update(G=t)}else L.remove()};return Y}E.exports=function(G,i){i=i||{},G=G||[];var L=o(G,i);return function(w){w=w||[];for(var t=0;t<L.length;t++){var Z=L[t],h=D(Z);N[h].references--}for(var K=o(w,i),y=0;y<L.length;y++){var S=L[y],c=D(S);N[c].references===0&&(N[c].updater(),N.splice(c,1))}L=K}}},"./node_modules/style-loader/dist/runtime/insertBySelector.js":E=>{var N={};function D(M){if(typeof N[M]>"u"){var G=document.querySelector(M);if(window.HTMLIFrameElement&&G instanceof window.HTMLIFrameElement)try{G=G.contentDocument.head}catch{G=null}N[M]=G}return N[M]}function o(M,G){var i=D(M);if(!i)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");i.appendChild(G)}E.exports=o},"./node_modules/style-loader/dist/runtime/insertStyleElement.js":E=>{function N(D){var o=document.createElement("style");return D.setAttributes(o,D.attributes),D.insert(o,D.options),o}E.exports=N},"./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js":(E,N,D)=>{function o(M){var G=D.nc;G&&M.setAttribute("nonce",G)}E.exports=o},"./node_modules/style-loader/dist/runtime/styleDomAPI.js":E=>{function N(M,G,i){var L="";i.supports&&(L+="@supports (".concat(i.supports,") {")),i.media&&(L+="@media ".concat(i.media," {"));var Y=typeof i.layer<"u";Y&&(L+="@layer".concat(i.layer.length>0?" ".concat(i.layer):""," {")),L+=i.css,Y&&(L+="}"),i.media&&(L+="}"),i.supports&&(L+="}");var w=i.sourceMap;w&&typeof btoa<"u"&&(L+=`
|
1488
1488
|
/*# sourceMappingURL=data:application/json;base64,`.concat(btoa(unescape(encodeURIComponent(JSON.stringify(w))))," */")),G.styleTagTransform(L,M,G.options)}function D(M){if(M.parentNode===null)return!1;M.parentNode.removeChild(M)}function o(M){var G=M.insertStyleElement(M);return{update:function(L){N(G,M,L)},remove:function(){D(G)}}}E.exports=o},"./node_modules/style-loader/dist/runtime/styleTagTransform.js":E=>{function N(D,o){if(o.styleSheet)o.styleSheet.cssText=D;else{for(;o.firstChild;)o.removeChild(o.firstChild);o.appendChild(document.createTextNode(D))}}E.exports=N}},B={};function C(E){var N=B[E];if(N!==void 0)return N.exports;var D=B[E]={id:E,exports:{}};return g[E](D,D.exports,C),D.exports}C.n=E=>{var N=E&&E.__esModule?()=>E.default:()=>E;return C.d(N,{a:N}),N},C.d=(E,N)=>{for(var D in N)C.o(N,D)&&!C.o(E,D)&&Object.defineProperty(E,D,{enumerable:!0,get:N[D]})},C.o=(E,N)=>Object.prototype.hasOwnProperty.call(E,N),C.r=E=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(E,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(E,"__esModule",{value:!0})},C.nc=void 0;var Q={};return(()=>{/*!**********************!*\
|
1489
1489
|
!*** ./src/index.ts ***!
|
1490
1490
|
\**********************/C.r(Q),C.d(Q,{FaustUI:()=>E.default,instantiate:()=>N.default});var E=C("./src/FaustUI.ts"),N=C("./src/instantiate.ts")})(),Q})())})(Ko);var lo=Ko.exports;const ko=`/*!*******************************************************************************************************************!*\\
|
@@ -1518,7 +1518,7 @@ svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {
|
|
1518
1518
|
\\********************************************************************************************************************/.faust-ui-group{position:absolute;display:block;background-color:#505050bf;border-radius:4px;border:1px rgba(255,255,255,.25) solid}.faust-ui-group>.faust-ui-group-label{position:relative;margin:4px;width:calc(100% - 8px);-webkit-user-select:none;user-select:none}.faust-ui-group>.faust-ui-group-label>canvas{position:relative;display:block;max-width:100%;max-height:100%}.faust-ui-group .faust-ui-tgroup-tabs{position:absolute;display:inline-block;white-space:nowrap;left:0}.faust-ui-group .faust-ui-tgroup-tabs .faust-ui-tgroup-tab{position:relative;display:inline-block;border-radius:5px;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:none;user-select:none;margin:10px;text-align:center;background-color:#ffffff80}.faust-ui-group .faust-ui-tgroup-tabs .faust-ui-tgroup-tab:hover{background-color:#fff}.faust-ui-group .faust-ui-tgroup-tabs .faust-ui-tgroup-tab.active{background-color:#282828;color:#fff}/*!*********************************************************************************************************!*\\
|
1519
1519
|
!*** css ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/index.scss ***!
|
1520
1520
|
\\*********************************************************************************************************/.faust-ui-root{margin:0 auto;flex:1 0 auto;position:relative!important;background-color:transparent!important;border:none!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}
|
1521
|
-
`;var Eg=typeof window<"u"?window:null,sE=Eg===null,sB=sE?void 0:Eg.document,Lg="addEventListener",Sg="removeEventListener",KE="getBoundingClientRect",KB="_a",cg="_b",pg="_c",lC="horizontal",Yg=function(){return!1},Yc=sE?"calc":["","-webkit-","-moz-","-o-"].filter(function(I){var A=sB.createElement("div");return A.style.cssText="width:"+I+"calc(9px)",!!A.style.length}).shift()+"calc",Zo=function(I){return typeof I=="string"||I instanceof String},ho=function(I){if(Zo(I)){var A=sB.querySelector(I);if(!A)throw new Error("Selector "+I+" did not match a DOM element");return A}return I},mA=function(I,A,g){var B=I[A];return B!==void 0?B:g},kC=function(I,A,g,B){if(A){if(B==="end")return 0;if(B==="center")return I/2}else if(g){if(B==="start")return 0;if(B==="center")return I/2}return I},yc=function(I,A){var g=sB.createElement("div");return g.className="gutter gutter-"+A,g},wc=function(I,A,g){var B={};return Zo(A)?B[I]=A:B[I]=Yc+"("+A+"% - "+g+"px)",B},tc=function(I,A){var g;return g={},g[I]=A+"px",g},sc=function(I,A){if(A===void 0&&(A={}),sE)return{};var g=I,B,C,Q,E,N,D;Array.from&&(g=Array.from(g));var o=ho(g[0]),M=o.parentNode,G=getComputedStyle?getComputedStyle(M):null,i=G?G.flexDirection:null,L=mA(A,"sizes")||g.map(function(){return 100/g.length}),Y=mA(A,"minSize",100),w=Array.isArray(Y)?Y:g.map(function(){return Y}),t=mA(A,"maxSize",1/0),Z=Array.isArray(t)?t:g.map(function(){return t}),h=mA(A,"expandToMin",!1),K=mA(A,"gutterSize",10),y=mA(A,"gutterAlign","center"),S=mA(A,"snapOffset",30),c=Array.isArray(S)?S:g.map(function(){return S}),k=mA(A,"dragInterval",1),U=mA(A,"direction",lC),H=mA(A,"cursor",U===lC?"col-resize":"row-resize"),b=mA(A,"gutter",yc),s=mA(A,"elementStyle",wc),l=mA(A,"gutterStyle",tc);U===lC?(B="width",C="clientX",Q="left",E="right",N="clientWidth"):U==="vertical"&&(B="height",C="clientY",Q="top",E="bottom",N="clientHeight");function a(W,m,n,_){var MA=s(B,m,n,_);Object.keys(MA).forEach(function(hA){W.style[hA]=MA[hA]})}function d(W,m,n){var _=l(B,m,n);Object.keys(_).forEach(function(MA){W.style[MA]=_[MA]})}function R(){return D.map(function(W){return W.size})}function T(W){return"touches"in W?W.touches[0][C]:W[C]}function e(W){var m=D[this.a],n=D[this.b],_=m.size+n.size;m.size=W/this.size*_,n.size=_-W/this.size*_,a(m.element,m.size,this[cg],m.i),a(n.element,n.size,this[pg],n.i)}function F(W){var m,n=D[this.a],_=D[this.b];this.dragging&&(m=T(W)-this.start+(this[cg]-this.dragOffset),k>1&&(m=Math.round(m/k)*k),m<=n.minSize+n.snapOffset+this[cg]?m=n.minSize+this[cg]:m>=this.size-(_.minSize+_.snapOffset+this[pg])&&(m=this.size-(_.minSize+this[pg])),m>=n.maxSize-n.snapOffset+this[cg]?m=n.maxSize+this[cg]:m<=this.size-(_.maxSize-_.snapOffset+this[pg])&&(m=this.size-(_.maxSize+this[pg])),e.call(this,m),mA(A,"onDrag",Yg)(R()))}function p(){var W=D[this.a].element,m=D[this.b].element,n=W[KE](),_=m[KE]();this.size=n[B]+_[B]+this[cg]+this[pg],this.start=n[Q],this.end=n[E]}function z(W){if(!getComputedStyle)return null;var m=getComputedStyle(W);if(!m)return null;var n=W[N];return n===0?null:(U===lC?n-=parseFloat(m.paddingLeft)+parseFloat(m.paddingRight):n-=parseFloat(m.paddingTop)+parseFloat(m.paddingBottom),n)}function x(W){var m=z(M);if(m===null||w.reduce(function(hA,Qg){return hA+Qg},0)>m)return W;var n=0,_=[],MA=W.map(function(hA,Qg){var eI=m*hA/100,JQ=kC(K,Qg===0,Qg===W.length-1,y),uQ=w[Qg]+JQ;return eI<uQ?(n+=uQ-eI,_.push(0),uQ):(_.push(eI-uQ),eI)});return n===0?W:MA.map(function(hA,Qg){var eI=hA;if(n>0&&_[Qg]-n>0){var JQ=Math.min(n,_[Qg]-n);n-=JQ,eI=hA-JQ}return eI/m*100})}function v(){var W=this,m=D[W.a].element,n=D[W.b].element;W.dragging&&mA(A,"onDragEnd",Yg)(R()),W.dragging=!1,Eg[Sg]("mouseup",W.stop),Eg[Sg]("touchend",W.stop),Eg[Sg]("touchcancel",W.stop),Eg[Sg]("mousemove",W.move),Eg[Sg]("touchmove",W.move),W.stop=null,W.move=null,m[Sg]("selectstart",Yg),m[Sg]("dragstart",Yg),n[Sg]("selectstart",Yg),n[Sg]("dragstart",Yg),m.style.userSelect="",m.style.webkitUserSelect="",m.style.MozUserSelect="",m.style.pointerEvents="",n.style.userSelect="",n.style.webkitUserSelect="",n.style.MozUserSelect="",n.style.pointerEvents="",W.gutter.style.cursor="",W.parent.style.cursor="",sB.body.style.cursor=""}function $(W){if(!("button"in W&&W.button!==0)){var m=this,n=D[m.a].element,_=D[m.b].element;m.dragging||mA(A,"onDragStart",Yg)(R()),W.preventDefault(),m.dragging=!0,m.move=F.bind(m),m.stop=v.bind(m),Eg[Lg]("mouseup",m.stop),Eg[Lg]("touchend",m.stop),Eg[Lg]("touchcancel",m.stop),Eg[Lg]("mousemove",m.move),Eg[Lg]("touchmove",m.move),n[Lg]("selectstart",Yg),n[Lg]("dragstart",Yg),_[Lg]("selectstart",Yg),_[Lg]("dragstart",Yg),n.style.userSelect="none",n.style.webkitUserSelect="none",n.style.MozUserSelect="none",n.style.pointerEvents="none",_.style.userSelect="none",_.style.webkitUserSelect="none",_.style.MozUserSelect="none",_.style.pointerEvents="none",m.gutter.style.cursor=H,m.parent.style.cursor=H,sB.body.style.cursor=H,p.call(m),m.dragOffset=T(W)-m.end}}L=x(L);var u=[];D=g.map(function(W,m){var n={element:ho(W),size:L[m],minSize:w[m],maxSize:Z[m],snapOffset:c[m],i:m},_;if(m>0&&(_={a:m-1,b:m,dragging:!1,direction:U,parent:M},_[cg]=kC(K,m-1===0,!1,y),_[pg]=kC(K,!1,m===g.length-1,y),i==="row-reverse"||i==="column-reverse")){var MA=_.a;_.a=_.b,_.b=MA}if(m>0){var hA=b(m,U,n.element);d(hA,K,m),_[KB]=$.bind(_),hA[Lg]("mousedown",_[KB]),hA[Lg]("touchstart",_[KB]),M.insertBefore(hA,n.element),_.gutter=hA}return a(n.element,n.size,kC(K,m===0,m===g.length-1,y),m),m>0&&u.push(_),n});function gA(W){var m=W.i===u.length,n=m?u[W.i-1]:u[W.i];p.call(n);var _=m?n.size-W.minSize-n[pg]:W.minSize+n[cg];e.call(n,_)}D.forEach(function(W){var m=W.element[KE]()[B];m<W.minSize&&(h?gA(W):W.minSize=m)});function HA(W){var m=x(W);m.forEach(function(n,_){if(_>0){var MA=u[_-1],hA=D[MA.a],Qg=D[MA.b];hA.size=m[_-1],Qg.size=n,a(hA.element,hA.size,MA[cg],hA.i),a(Qg.element,Qg.size,MA[pg],Qg.i)}})}function DA(W,m){u.forEach(function(n){if(m!==!0?n.parent.removeChild(n.gutter):(n.gutter[Sg]("mousedown",n[KB]),n.gutter[Sg]("touchstart",n[KB])),W!==!0){var _=s(B,n.a.size,n[cg]);Object.keys(_).forEach(function(MA){D[n.a].element.style[MA]="",D[n.b].element.style[MA]=""})}})}return{setSizes:HA,getSizes:R,collapse:function(m){gA(D[m])},destroy:DA,parent:M,pairs:u}},Kc=Object.create,ao=Object.defineProperty,lc=Object.getOwnPropertyDescriptor,bo=Object.getOwnPropertyNames,kc=Object.getPrototypeOf,Zc=Object.prototype.hasOwnProperty,$A=(I,A)=>function(){return A||(0,I[bo(I)[0]])((A={exports:{}}).exports,A),A.exports},hc=(I,A,g,B)=>{if(A&&typeof A=="object"||typeof A=="function")for(let C of bo(A))!Zc.call(I,C)&&C!==g&&ao(I,C,{get:()=>A[C],enumerable:!(B=lc(A,C))||B.enumerable});return I},ac=(I,A,g)=>(g=I!=null?Kc(kc(I)):{},hc(A||!I||!I.__esModule?ao(g,"default",{value:I,enumerable:!0}):g,I)),Ho=$A({"node_modules/tslib/tslib.js"(I,A){var g,B,C,Q,E,N,D,o,M,G,i,L,Y,w,t,Z,h,K,y,S,c,k,U;(function(H){var b=typeof global=="object"?global:typeof self=="object"?self:typeof this=="object"?this:{};typeof define=="function"&&define.amd?define("tslib",["exports"],function(l){H(s(b,s(l)))}):typeof A=="object"&&typeof A.exports=="object"?H(s(b,s(A.exports))):H(s(b));function s(l,a){return l!==b&&(typeof Object.create=="function"?Object.defineProperty(l,"__esModule",{value:!0}):l.__esModule=!0),function(d,R){return l[d]=a?a(d,R):R}}})(function(H){var b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(s,l){s.__proto__=l}||function(s,l){for(var a in l)l.hasOwnProperty(a)&&(s[a]=l[a])};g=function(s,l){b(s,l);function a(){this.constructor=s}s.prototype=l===null?Object.create(l):(a.prototype=l.prototype,new a)},B=Object.assign||function(s){for(var l,a=1,d=arguments.length;a<d;a++){l=arguments[a];for(var R in l)Object.prototype.hasOwnProperty.call(l,R)&&(s[R]=l[R])}return s},C=function(s,l){var a={};for(var d in s)Object.prototype.hasOwnProperty.call(s,d)&&l.indexOf(d)<0&&(a[d]=s[d]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var R=0,d=Object.getOwnPropertySymbols(s);R<d.length;R++)l.indexOf(d[R])<0&&Object.prototype.propertyIsEnumerable.call(s,d[R])&&(a[d[R]]=s[d[R]]);return a},Q=function(s,l,a,d){var R=arguments.length,T=R<3?l:d===null?d=Object.getOwnPropertyDescriptor(l,a):d,e;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")T=Reflect.decorate(s,l,a,d);else for(var F=s.length-1;F>=0;F--)(e=s[F])&&(T=(R<3?e(T):R>3?e(l,a,T):e(l,a))||T);return R>3&&T&&Object.defineProperty(l,a,T),T},E=function(s,l){return function(a,d){l(a,d,s)}},N=function(s,l){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(s,l)},D=function(s,l,a,d){function R(T){return T instanceof a?T:new a(function(e){e(T)})}return new(a||(a=Promise))(function(T,e){function F(x){try{z(d.next(x))}catch(v){e(v)}}function p(x){try{z(d.throw(x))}catch(v){e(v)}}function z(x){x.done?T(x.value):R(x.value).then(F,p)}z((d=d.apply(s,l||[])).next())})},o=function(s,l){var a={label:0,sent:function(){if(T[0]&1)throw T[1];return T[1]},trys:[],ops:[]},d,R,T,e;return e={next:F(0),throw:F(1),return:F(2)},typeof Symbol=="function"&&(e[Symbol.iterator]=function(){return this}),e;function F(z){return function(x){return p([z,x])}}function p(z){if(d)throw new TypeError("Generator is already executing.");for(;a;)try{if(d=1,R&&(T=z[0]&2?R.return:z[0]?R.throw||((T=R.return)&&T.call(R),0):R.next)&&!(T=T.call(R,z[1])).done)return T;switch(R=0,T&&(z=[z[0]&2,T.value]),z[0]){case 0:case 1:T=z;break;case 4:return a.label++,{value:z[1],done:!1};case 5:a.label++,R=z[1],z=[0];continue;case 7:z=a.ops.pop(),a.trys.pop();continue;default:if(T=a.trys,!(T=T.length>0&&T[T.length-1])&&(z[0]===6||z[0]===2)){a=0;continue}if(z[0]===3&&(!T||z[1]>T[0]&&z[1]<T[3])){a.label=z[1];break}if(z[0]===6&&a.label<T[1]){a.label=T[1],T=z;break}if(T&&a.label<T[2]){a.label=T[2],a.ops.push(z);break}T[2]&&a.ops.pop(),a.trys.pop();continue}z=l.call(s,a)}catch(x){z=[6,x],R=0}finally{d=T=0}if(z[0]&5)throw z[1];return{value:z[0]?z[1]:void 0,done:!0}}},U=function(s,l,a,d){d===void 0&&(d=a),s[d]=l[a]},M=function(s,l){for(var a in s)a!=="default"&&!l.hasOwnProperty(a)&&(l[a]=s[a])},G=function(s){var l=typeof Symbol=="function"&&Symbol.iterator,a=l&&s[l],d=0;if(a)return a.call(s);if(s&&typeof s.length=="number")return{next:function(){return s&&d>=s.length&&(s=void 0),{value:s&&s[d++],done:!s}}};throw new TypeError(l?"Object is not iterable.":"Symbol.iterator is not defined.")},i=function(s,l){var a=typeof Symbol=="function"&&s[Symbol.iterator];if(!a)return s;var d=a.call(s),R,T=[],e;try{for(;(l===void 0||l-- >0)&&!(R=d.next()).done;)T.push(R.value)}catch(F){e={error:F}}finally{try{R&&!R.done&&(a=d.return)&&a.call(d)}finally{if(e)throw e.error}}return T},L=function(){for(var s=[],l=0;l<arguments.length;l++)s=s.concat(i(arguments[l]));return s},Y=function(){for(var s=0,l=0,a=arguments.length;l<a;l++)s+=arguments[l].length;for(var d=Array(s),R=0,l=0;l<a;l++)for(var T=arguments[l],e=0,F=T.length;e<F;e++,R++)d[R]=T[e];return d},w=function(s){return this instanceof w?(this.v=s,this):new w(s)},t=function(s,l,a){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var d=a.apply(s,l||[]),R,T=[];return R={},e("next"),e("throw"),e("return"),R[Symbol.asyncIterator]=function(){return this},R;function e($){d[$]&&(R[$]=function(u){return new Promise(function(gA,HA){T.push([$,u,gA,HA])>1||F($,u)})})}function F($,u){try{p(d[$](u))}catch(gA){v(T[0][3],gA)}}function p($){$.value instanceof w?Promise.resolve($.value.v).then(z,x):v(T[0][2],$)}function z($){F("next",$)}function x($){F("throw",$)}function v($,u){$(u),T.shift(),T.length&&F(T[0][0],T[0][1])}},Z=function(s){var l,a;return l={},d("next"),d("throw",function(R){throw R}),d("return"),l[Symbol.iterator]=function(){return this},l;function d(R,T){l[R]=s[R]?function(e){return(a=!a)?{value:w(s[R](e)),done:R==="return"}:T?T(e):e}:T}},h=function(s){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var l=s[Symbol.asyncIterator],a;return l?l.call(s):(s=typeof G=="function"?G(s):s[Symbol.iterator](),a={},d("next"),d("throw"),d("return"),a[Symbol.asyncIterator]=function(){return this},a);function d(T){a[T]=s[T]&&function(e){return new Promise(function(F,p){e=s[T](e),R(F,p,e.done,e.value)})}}function R(T,e,F,p){Promise.resolve(p).then(function(z){T({value:z,done:F})},e)}},K=function(s,l){return Object.defineProperty?Object.defineProperty(s,"raw",{value:l}):s.raw=l,s},y=function(s){if(s&&s.__esModule)return s;var l={};if(s!=null)for(var a in s)Object.hasOwnProperty.call(s,a)&&(l[a]=s[a]);return l.default=s,l},S=function(s){return s&&s.__esModule?s:{default:s}},c=function(s,l){if(!l.has(s))throw new TypeError("attempted to get private field on non-instance");return l.get(s)},k=function(s,l,a){if(!l.has(s))throw new TypeError("attempted to set private field on non-instance");return l.set(s,a),a},H("__extends",g),H("__assign",B),H("__rest",C),H("__decorate",Q),H("__param",E),H("__metadata",N),H("__awaiter",D),H("__generator",o),H("__exportStar",M),H("__createBinding",U),H("__values",G),H("__read",i),H("__spread",L),H("__spreadArrays",Y),H("__await",w),H("__asyncGenerator",t),H("__asyncDelegator",Z),H("__asyncValues",h),H("__makeTemplateObject",K),H("__importStar",y),H("__importDefault",S),H("__classPrivateFieldGet",c),H("__classPrivateFieldSet",k)})}}),Ro=$A({"node_modules/@aws-crypto/sha256-js/build/constants.js"(I){Object.defineProperty(I,"__esModule",{value:!0}),I.MAX_HASHABLE_LENGTH=I.INIT=I.KEY=I.DIGEST_LENGTH=I.BLOCK_SIZE=void 0,I.BLOCK_SIZE=64,I.DIGEST_LENGTH=32,I.KEY=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),I.INIT=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],I.MAX_HASHABLE_LENGTH=Math.pow(2,53)-1}}),bc=$A({"node_modules/@aws-crypto/sha256-js/build/RawSha256.js"(I){Object.defineProperty(I,"__esModule",{value:!0}),I.RawSha256=void 0;var A=Ro(),g=function(){function B(){this.state=Int32Array.from(A.INIT),this.temp=new Int32Array(64),this.buffer=new Uint8Array(64),this.bufferLength=0,this.bytesHashed=0,this.finished=!1}return B.prototype.update=function(C){if(this.finished)throw new Error("Attempted to update an already finished hash.");var Q=0,E=C.byteLength;if(this.bytesHashed+=E,this.bytesHashed*8>A.MAX_HASHABLE_LENGTH)throw new Error("Cannot hash more than 2^53 - 1 bits");for(;E>0;)this.buffer[this.bufferLength++]=C[Q++],E--,this.bufferLength===A.BLOCK_SIZE&&(this.hashBuffer(),this.bufferLength=0)},B.prototype.digest=function(){if(!this.finished){var C=this.bytesHashed*8,Q=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),E=this.bufferLength;if(Q.setUint8(this.bufferLength++,128),E%A.BLOCK_SIZE>=A.BLOCK_SIZE-8){for(var N=this.bufferLength;N<A.BLOCK_SIZE;N++)Q.setUint8(N,0);this.hashBuffer(),this.bufferLength=0}for(var N=this.bufferLength;N<A.BLOCK_SIZE-8;N++)Q.setUint8(N,0);Q.setUint32(A.BLOCK_SIZE-8,Math.floor(C/4294967296),!0),Q.setUint32(A.BLOCK_SIZE-4,C),this.hashBuffer(),this.finished=!0}for(var D=new Uint8Array(A.DIGEST_LENGTH),N=0;N<8;N++)D[N*4]=this.state[N]>>>24&255,D[N*4+1]=this.state[N]>>>16&255,D[N*4+2]=this.state[N]>>>8&255,D[N*4+3]=this.state[N]>>>0&255;return D},B.prototype.hashBuffer=function(){for(var C=this,Q=C.buffer,E=C.state,N=E[0],D=E[1],o=E[2],M=E[3],G=E[4],i=E[5],L=E[6],Y=E[7],w=0;w<A.BLOCK_SIZE;w++){if(w<16)this.temp[w]=(Q[w*4]&255)<<24|(Q[w*4+1]&255)<<16|(Q[w*4+2]&255)<<8|Q[w*4+3]&255;else{var t=this.temp[w-2],Z=(t>>>17|t<<15)^(t>>>19|t<<13)^t>>>10;t=this.temp[w-15];var h=(t>>>7|t<<25)^(t>>>18|t<<14)^t>>>3;this.temp[w]=(Z+this.temp[w-7]|0)+(h+this.temp[w-16]|0)}var K=(((G>>>6|G<<26)^(G>>>11|G<<21)^(G>>>25|G<<7))+(G&i^~G&L)|0)+(Y+(A.KEY[w]+this.temp[w]|0)|0)|0,y=((N>>>2|N<<30)^(N>>>13|N<<19)^(N>>>22|N<<10))+(N&D^N&o^D&o)|0;Y=L,L=i,i=G,G=M+K|0,M=o,o=D,D=N,N=K+y|0}E[0]+=N,E[1]+=D,E[2]+=o,E[3]+=M,E[4]+=G,E[5]+=i,E[6]+=L,E[7]+=Y},B}();I.RawSha256=g}}),dc=$A({"node_modules/@aws-sdk/util-utf8-browser/dist-cjs/pureJs.js"(I){Object.defineProperty(I,"__esModule",{value:!0}),I.toUtf8=I.fromUtf8=void 0;var A=B=>{const C=[];for(let Q=0,E=B.length;Q<E;Q++){const N=B.charCodeAt(Q);if(N<128)C.push(N);else if(N<2048)C.push(N>>6|192,N&63|128);else if(Q+1<B.length&&(N&64512)===55296&&(B.charCodeAt(Q+1)&64512)===56320){const D=65536+((N&1023)<<10)+(B.charCodeAt(++Q)&1023);C.push(D>>18|240,D>>12&63|128,D>>6&63|128,D&63|128)}else C.push(N>>12|224,N>>6&63|128,N&63|128)}return Uint8Array.from(C)};I.fromUtf8=A;var g=B=>{let C="";for(let Q=0,E=B.length;Q<E;Q++){const N=B[Q];if(N<128)C+=String.fromCharCode(N);else if(192<=N&&N<224){const D=B[++Q];C+=String.fromCharCode((N&31)<<6|D&63)}else if(240<=N&&N<365){const o="%"+[N,B[++Q],B[++Q],B[++Q]].map(M=>M.toString(16)).join("%");C+=decodeURIComponent(o)}else C+=String.fromCharCode((N&15)<<12|(B[++Q]&63)<<6|B[++Q]&63)}return C};I.toUtf8=g}}),Hc=$A({"node_modules/@aws-sdk/util-utf8-browser/dist-cjs/whatwgEncodingApi.js"(I){Object.defineProperty(I,"__esModule",{value:!0}),I.toUtf8=I.fromUtf8=void 0;function A(B){return new TextEncoder().encode(B)}I.fromUtf8=A;function g(B){return new TextDecoder("utf-8").decode(B)}I.toUtf8=g}}),Rc=$A({"node_modules/@aws-sdk/util-utf8-browser/dist-cjs/index.js"(I){Object.defineProperty(I,"__esModule",{value:!0}),I.toUtf8=I.fromUtf8=void 0;var A=dc(),g=Hc(),B=Q=>typeof TextEncoder=="function"?(0,g.fromUtf8)(Q):(0,A.fromUtf8)(Q);I.fromUtf8=B;var C=Q=>typeof TextDecoder=="function"?(0,g.toUtf8)(Q):(0,A.toUtf8)(Q);I.toUtf8=C}}),Uc=$A({"node_modules/@aws-crypto/util/build/convertToBuffer.js"(I){Object.defineProperty(I,"__esModule",{value:!0}),I.convertToBuffer=void 0;var A=Rc(),g=typeof Buffer<"u"&&Buffer.from?function(C){return Buffer.from(C,"utf8")}:A.fromUtf8;function B(C){return C instanceof Uint8Array?C:typeof C=="string"?g(C):ArrayBuffer.isView(C)?new Uint8Array(C.buffer,C.byteOffset,C.byteLength/Uint8Array.BYTES_PER_ELEMENT):new Uint8Array(C)}I.convertToBuffer=B}}),Tc=$A({"node_modules/@aws-crypto/util/build/isEmptyData.js"(I){Object.defineProperty(I,"__esModule",{value:!0}),I.isEmptyData=void 0;function A(g){return typeof g=="string"?g.length===0:g.byteLength===0}I.isEmptyData=A}}),ec=$A({"node_modules/@aws-crypto/util/build/numToUint8.js"(I){Object.defineProperty(I,"__esModule",{value:!0}),I.numToUint8=void 0;function A(g){return new Uint8Array([(g&4278190080)>>24,(g&16711680)>>16,(g&65280)>>8,g&255])}I.numToUint8=A}}),zc=$A({"node_modules/@aws-crypto/util/build/uint32ArrayFrom.js"(I){Object.defineProperty(I,"__esModule",{value:!0}),I.uint32ArrayFrom=void 0;function A(g){if(!Uint32Array.from){for(var B=new Uint32Array(g.length),C=0;C<g.length;)B[C]=g[C],C+=1;return B}return Uint32Array.from(g)}I.uint32ArrayFrom=A}}),Fc=$A({"node_modules/@aws-crypto/util/build/index.js"(I){Object.defineProperty(I,"__esModule",{value:!0}),I.uint32ArrayFrom=I.numToUint8=I.isEmptyData=I.convertToBuffer=void 0;var A=Uc();Object.defineProperty(I,"convertToBuffer",{enumerable:!0,get:function(){return A.convertToBuffer}});var g=Tc();Object.defineProperty(I,"isEmptyData",{enumerable:!0,get:function(){return g.isEmptyData}});var B=ec();Object.defineProperty(I,"numToUint8",{enumerable:!0,get:function(){return B.numToUint8}});var C=zc();Object.defineProperty(I,"uint32ArrayFrom",{enumerable:!0,get:function(){return C.uint32ArrayFrom}})}}),jc=$A({"node_modules/@aws-crypto/sha256-js/build/jsSha256.js"(I){Object.defineProperty(I,"__esModule",{value:!0}),I.Sha256=void 0;var A=Ho(),g=Ro(),B=bc(),C=Fc(),Q=function(){function N(D){if(this.hash=new B.RawSha256,D){this.outer=new B.RawSha256;var o=E(D),M=new Uint8Array(g.BLOCK_SIZE);M.set(o);for(var G=0;G<g.BLOCK_SIZE;G++)o[G]^=54,M[G]^=92;this.hash.update(o),this.outer.update(M);for(var G=0;G<o.byteLength;G++)o[G]=0}}return N.prototype.update=function(D){if(!((0,C.isEmptyData)(D)||this.error))try{this.hash.update((0,C.convertToBuffer)(D))}catch(o){this.error=o}},N.prototype.digestSync=function(){if(this.error)throw this.error;return this.outer?(this.outer.finished||this.outer.update(this.hash.digest()),this.outer.digest()):this.hash.digest()},N.prototype.digest=function(){return A.__awaiter(this,void 0,void 0,function(){return A.__generator(this,function(D){return[2,this.digestSync()]})})},N}();I.Sha256=Q;function E(N){var D=(0,C.convertToBuffer)(N);if(D.byteLength>g.BLOCK_SIZE){var o=new B.RawSha256;o.update(D),D=o.digest()}var M=new Uint8Array(g.BLOCK_SIZE);return M.set(D),M}}}),mc=$A({"node_modules/@aws-crypto/sha256-js/build/index.js"(I){Object.defineProperty(I,"__esModule",{value:!0});var A=Ho();A.__exportStar(jc(),I)}}),pc=async(I,A=I.replace(/c?js$/,"data"),g=I.replace(/c?js$/,"wasm"))=>{var B,C;let Q,E,N;const D=/var (.+) = \(/;if(typeof window=="object"){let M=await(await fetch(I)).text();M=`${M}
|
1521
|
+
`;var Eg=typeof window<"u"?window:null,sE=Eg===null,sB=sE?void 0:Eg.document,Lg="addEventListener",Sg="removeEventListener",KE="getBoundingClientRect",KB="_a",cg="_b",pg="_c",lC="horizontal",Yg=function(){return!1},Yc=sE?"calc":["","-webkit-","-moz-","-o-"].filter(function(I){var A=sB.createElement("div");return A.style.cssText="width:"+I+"calc(9px)",!!A.style.length}).shift()+"calc",Zo=function(I){return typeof I=="string"||I instanceof String},ho=function(I){if(Zo(I)){var A=sB.querySelector(I);if(!A)throw new Error("Selector "+I+" did not match a DOM element");return A}return I},mA=function(I,A,g){var B=I[A];return B!==void 0?B:g},kC=function(I,A,g,B){if(A){if(B==="end")return 0;if(B==="center")return I/2}else if(g){if(B==="start")return 0;if(B==="center")return I/2}return I},yc=function(I,A){var g=sB.createElement("div");return g.className="gutter gutter-"+A,g},wc=function(I,A,g){var B={};return Zo(A)?B[I]=A:B[I]=Yc+"("+A+"% - "+g+"px)",B},tc=function(I,A){var g;return g={},g[I]=A+"px",g},sc=function(I,A){if(A===void 0&&(A={}),sE)return{};var g=I,B,C,Q,E,N,D;Array.from&&(g=Array.from(g));var o=ho(g[0]),M=o.parentNode,G=getComputedStyle?getComputedStyle(M):null,i=G?G.flexDirection:null,L=mA(A,"sizes")||g.map(function(){return 100/g.length}),Y=mA(A,"minSize",100),w=Array.isArray(Y)?Y:g.map(function(){return Y}),t=mA(A,"maxSize",1/0),Z=Array.isArray(t)?t:g.map(function(){return t}),h=mA(A,"expandToMin",!1),K=mA(A,"gutterSize",10),y=mA(A,"gutterAlign","center"),S=mA(A,"snapOffset",30),c=Array.isArray(S)?S:g.map(function(){return S}),l=mA(A,"dragInterval",1),U=mA(A,"direction",lC),H=mA(A,"cursor",U===lC?"col-resize":"row-resize"),b=mA(A,"gutter",yc),s=mA(A,"elementStyle",wc),k=mA(A,"gutterStyle",tc);U===lC?(B="width",C="clientX",Q="left",E="right",N="clientWidth"):U==="vertical"&&(B="height",C="clientY",Q="top",E="bottom",N="clientHeight");function a(W,m,n,$){var MA=s(B,m,n,$);Object.keys(MA).forEach(function(hA){W.style[hA]=MA[hA]})}function d(W,m,n){var $=k(B,m,n);Object.keys($).forEach(function(MA){W.style[MA]=$[MA]})}function R(){return D.map(function(W){return W.size})}function T(W){return"touches"in W?W.touches[0][C]:W[C]}function e(W){var m=D[this.a],n=D[this.b],$=m.size+n.size;m.size=W/this.size*$,n.size=$-W/this.size*$,a(m.element,m.size,this[cg],m.i),a(n.element,n.size,this[pg],n.i)}function F(W){var m,n=D[this.a],$=D[this.b];this.dragging&&(m=T(W)-this.start+(this[cg]-this.dragOffset),l>1&&(m=Math.round(m/l)*l),m<=n.minSize+n.snapOffset+this[cg]?m=n.minSize+this[cg]:m>=this.size-($.minSize+$.snapOffset+this[pg])&&(m=this.size-($.minSize+this[pg])),m>=n.maxSize-n.snapOffset+this[cg]?m=n.maxSize+this[cg]:m<=this.size-($.maxSize-$.snapOffset+this[pg])&&(m=this.size-($.maxSize+this[pg])),e.call(this,m),mA(A,"onDrag",Yg)(R()))}function p(){var W=D[this.a].element,m=D[this.b].element,n=W[KE](),$=m[KE]();this.size=n[B]+$[B]+this[cg]+this[pg],this.start=n[Q],this.end=n[E]}function z(W){if(!getComputedStyle)return null;var m=getComputedStyle(W);if(!m)return null;var n=W[N];return n===0?null:(U===lC?n-=parseFloat(m.paddingLeft)+parseFloat(m.paddingRight):n-=parseFloat(m.paddingTop)+parseFloat(m.paddingBottom),n)}function x(W){var m=z(M);if(m===null||w.reduce(function(hA,Qg){return hA+Qg},0)>m)return W;var n=0,$=[],MA=W.map(function(hA,Qg){var eI=m*hA/100,JQ=kC(K,Qg===0,Qg===W.length-1,y),uQ=w[Qg]+JQ;return eI<uQ?(n+=uQ-eI,$.push(0),uQ):($.push(eI-uQ),eI)});return n===0?W:MA.map(function(hA,Qg){var eI=hA;if(n>0&&$[Qg]-n>0){var JQ=Math.min(n,$[Qg]-n);n-=JQ,eI=hA-JQ}return eI/m*100})}function v(){var W=this,m=D[W.a].element,n=D[W.b].element;W.dragging&&mA(A,"onDragEnd",Yg)(R()),W.dragging=!1,Eg[Sg]("mouseup",W.stop),Eg[Sg]("touchend",W.stop),Eg[Sg]("touchcancel",W.stop),Eg[Sg]("mousemove",W.move),Eg[Sg]("touchmove",W.move),W.stop=null,W.move=null,m[Sg]("selectstart",Yg),m[Sg]("dragstart",Yg),n[Sg]("selectstart",Yg),n[Sg]("dragstart",Yg),m.style.userSelect="",m.style.webkitUserSelect="",m.style.MozUserSelect="",m.style.pointerEvents="",n.style.userSelect="",n.style.webkitUserSelect="",n.style.MozUserSelect="",n.style.pointerEvents="",W.gutter.style.cursor="",W.parent.style.cursor="",sB.body.style.cursor=""}function q(W){if(!("button"in W&&W.button!==0)){var m=this,n=D[m.a].element,$=D[m.b].element;m.dragging||mA(A,"onDragStart",Yg)(R()),W.preventDefault(),m.dragging=!0,m.move=F.bind(m),m.stop=v.bind(m),Eg[Lg]("mouseup",m.stop),Eg[Lg]("touchend",m.stop),Eg[Lg]("touchcancel",m.stop),Eg[Lg]("mousemove",m.move),Eg[Lg]("touchmove",m.move),n[Lg]("selectstart",Yg),n[Lg]("dragstart",Yg),$[Lg]("selectstart",Yg),$[Lg]("dragstart",Yg),n.style.userSelect="none",n.style.webkitUserSelect="none",n.style.MozUserSelect="none",n.style.pointerEvents="none",$.style.userSelect="none",$.style.webkitUserSelect="none",$.style.MozUserSelect="none",$.style.pointerEvents="none",m.gutter.style.cursor=H,m.parent.style.cursor=H,sB.body.style.cursor=H,p.call(m),m.dragOffset=T(W)-m.end}}L=x(L);var J=[];D=g.map(function(W,m){var n={element:ho(W),size:L[m],minSize:w[m],maxSize:Z[m],snapOffset:c[m],i:m},$;if(m>0&&($={a:m-1,b:m,dragging:!1,direction:U,parent:M},$[cg]=kC(K,m-1===0,!1,y),$[pg]=kC(K,!1,m===g.length-1,y),i==="row-reverse"||i==="column-reverse")){var MA=$.a;$.a=$.b,$.b=MA}if(m>0){var hA=b(m,U,n.element);d(hA,K,m),$[KB]=q.bind($),hA[Lg]("mousedown",$[KB]),hA[Lg]("touchstart",$[KB]),M.insertBefore(hA,n.element),$.gutter=hA}return a(n.element,n.size,kC(K,m===0,m===g.length-1,y),m),m>0&&J.push($),n});function gA(W){var m=W.i===J.length,n=m?J[W.i-1]:J[W.i];p.call(n);var $=m?n.size-W.minSize-n[pg]:W.minSize+n[cg];e.call(n,$)}D.forEach(function(W){var m=W.element[KE]()[B];m<W.minSize&&(h?gA(W):W.minSize=m)});function HA(W){var m=x(W);m.forEach(function(n,$){if($>0){var MA=J[$-1],hA=D[MA.a],Qg=D[MA.b];hA.size=m[$-1],Qg.size=n,a(hA.element,hA.size,MA[cg],hA.i),a(Qg.element,Qg.size,MA[pg],Qg.i)}})}function DA(W,m){J.forEach(function(n){if(m!==!0?n.parent.removeChild(n.gutter):(n.gutter[Sg]("mousedown",n[KB]),n.gutter[Sg]("touchstart",n[KB])),W!==!0){var $=s(B,n.a.size,n[cg]);Object.keys($).forEach(function(MA){D[n.a].element.style[MA]="",D[n.b].element.style[MA]=""})}})}return{setSizes:HA,getSizes:R,collapse:function(m){gA(D[m])},destroy:DA,parent:M,pairs:J}},Kc=Object.create,ao=Object.defineProperty,lc=Object.getOwnPropertyDescriptor,bo=Object.getOwnPropertyNames,kc=Object.getPrototypeOf,Zc=Object.prototype.hasOwnProperty,$A=(I,A)=>function(){return A||(0,I[bo(I)[0]])((A={exports:{}}).exports,A),A.exports},hc=(I,A,g,B)=>{if(A&&typeof A=="object"||typeof A=="function")for(let C of bo(A))!Zc.call(I,C)&&C!==g&&ao(I,C,{get:()=>A[C],enumerable:!(B=lc(A,C))||B.enumerable});return I},ac=(I,A,g)=>(g=I!=null?Kc(kc(I)):{},hc(A||!I||!I.__esModule?ao(g,"default",{value:I,enumerable:!0}):g,I)),Ho=$A({"node_modules/tslib/tslib.js"(I,A){var g,B,C,Q,E,N,D,o,M,G,i,L,Y,w,t,Z,h,K,y,S,c,l,U;(function(H){var b=typeof global=="object"?global:typeof self=="object"?self:typeof this=="object"?this:{};typeof define=="function"&&define.amd?define("tslib",["exports"],function(k){H(s(b,s(k)))}):typeof A=="object"&&typeof A.exports=="object"?H(s(b,s(A.exports))):H(s(b));function s(k,a){return k!==b&&(typeof Object.create=="function"?Object.defineProperty(k,"__esModule",{value:!0}):k.__esModule=!0),function(d,R){return k[d]=a?a(d,R):R}}})(function(H){var b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(s,k){s.__proto__=k}||function(s,k){for(var a in k)k.hasOwnProperty(a)&&(s[a]=k[a])};g=function(s,k){b(s,k);function a(){this.constructor=s}s.prototype=k===null?Object.create(k):(a.prototype=k.prototype,new a)},B=Object.assign||function(s){for(var k,a=1,d=arguments.length;a<d;a++){k=arguments[a];for(var R in k)Object.prototype.hasOwnProperty.call(k,R)&&(s[R]=k[R])}return s},C=function(s,k){var a={};for(var d in s)Object.prototype.hasOwnProperty.call(s,d)&&k.indexOf(d)<0&&(a[d]=s[d]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var R=0,d=Object.getOwnPropertySymbols(s);R<d.length;R++)k.indexOf(d[R])<0&&Object.prototype.propertyIsEnumerable.call(s,d[R])&&(a[d[R]]=s[d[R]]);return a},Q=function(s,k,a,d){var R=arguments.length,T=R<3?k:d===null?d=Object.getOwnPropertyDescriptor(k,a):d,e;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")T=Reflect.decorate(s,k,a,d);else for(var F=s.length-1;F>=0;F--)(e=s[F])&&(T=(R<3?e(T):R>3?e(k,a,T):e(k,a))||T);return R>3&&T&&Object.defineProperty(k,a,T),T},E=function(s,k){return function(a,d){k(a,d,s)}},N=function(s,k){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(s,k)},D=function(s,k,a,d){function R(T){return T instanceof a?T:new a(function(e){e(T)})}return new(a||(a=Promise))(function(T,e){function F(x){try{z(d.next(x))}catch(v){e(v)}}function p(x){try{z(d.throw(x))}catch(v){e(v)}}function z(x){x.done?T(x.value):R(x.value).then(F,p)}z((d=d.apply(s,k||[])).next())})},o=function(s,k){var a={label:0,sent:function(){if(T[0]&1)throw T[1];return T[1]},trys:[],ops:[]},d,R,T,e;return e={next:F(0),throw:F(1),return:F(2)},typeof Symbol=="function"&&(e[Symbol.iterator]=function(){return this}),e;function F(z){return function(x){return p([z,x])}}function p(z){if(d)throw new TypeError("Generator is already executing.");for(;a;)try{if(d=1,R&&(T=z[0]&2?R.return:z[0]?R.throw||((T=R.return)&&T.call(R),0):R.next)&&!(T=T.call(R,z[1])).done)return T;switch(R=0,T&&(z=[z[0]&2,T.value]),z[0]){case 0:case 1:T=z;break;case 4:return a.label++,{value:z[1],done:!1};case 5:a.label++,R=z[1],z=[0];continue;case 7:z=a.ops.pop(),a.trys.pop();continue;default:if(T=a.trys,!(T=T.length>0&&T[T.length-1])&&(z[0]===6||z[0]===2)){a=0;continue}if(z[0]===3&&(!T||z[1]>T[0]&&z[1]<T[3])){a.label=z[1];break}if(z[0]===6&&a.label<T[1]){a.label=T[1],T=z;break}if(T&&a.label<T[2]){a.label=T[2],a.ops.push(z);break}T[2]&&a.ops.pop(),a.trys.pop();continue}z=k.call(s,a)}catch(x){z=[6,x],R=0}finally{d=T=0}if(z[0]&5)throw z[1];return{value:z[0]?z[1]:void 0,done:!0}}},U=function(s,k,a,d){d===void 0&&(d=a),s[d]=k[a]},M=function(s,k){for(var a in s)a!=="default"&&!k.hasOwnProperty(a)&&(k[a]=s[a])},G=function(s){var k=typeof Symbol=="function"&&Symbol.iterator,a=k&&s[k],d=0;if(a)return a.call(s);if(s&&typeof s.length=="number")return{next:function(){return s&&d>=s.length&&(s=void 0),{value:s&&s[d++],done:!s}}};throw new TypeError(k?"Object is not iterable.":"Symbol.iterator is not defined.")},i=function(s,k){var a=typeof Symbol=="function"&&s[Symbol.iterator];if(!a)return s;var d=a.call(s),R,T=[],e;try{for(;(k===void 0||k-- >0)&&!(R=d.next()).done;)T.push(R.value)}catch(F){e={error:F}}finally{try{R&&!R.done&&(a=d.return)&&a.call(d)}finally{if(e)throw e.error}}return T},L=function(){for(var s=[],k=0;k<arguments.length;k++)s=s.concat(i(arguments[k]));return s},Y=function(){for(var s=0,k=0,a=arguments.length;k<a;k++)s+=arguments[k].length;for(var d=Array(s),R=0,k=0;k<a;k++)for(var T=arguments[k],e=0,F=T.length;e<F;e++,R++)d[R]=T[e];return d},w=function(s){return this instanceof w?(this.v=s,this):new w(s)},t=function(s,k,a){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var d=a.apply(s,k||[]),R,T=[];return R={},e("next"),e("throw"),e("return"),R[Symbol.asyncIterator]=function(){return this},R;function e(q){d[q]&&(R[q]=function(J){return new Promise(function(gA,HA){T.push([q,J,gA,HA])>1||F(q,J)})})}function F(q,J){try{p(d[q](J))}catch(gA){v(T[0][3],gA)}}function p(q){q.value instanceof w?Promise.resolve(q.value.v).then(z,x):v(T[0][2],q)}function z(q){F("next",q)}function x(q){F("throw",q)}function v(q,J){q(J),T.shift(),T.length&&F(T[0][0],T[0][1])}},Z=function(s){var k,a;return k={},d("next"),d("throw",function(R){throw R}),d("return"),k[Symbol.iterator]=function(){return this},k;function d(R,T){k[R]=s[R]?function(e){return(a=!a)?{value:w(s[R](e)),done:R==="return"}:T?T(e):e}:T}},h=function(s){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var k=s[Symbol.asyncIterator],a;return k?k.call(s):(s=typeof G=="function"?G(s):s[Symbol.iterator](),a={},d("next"),d("throw"),d("return"),a[Symbol.asyncIterator]=function(){return this},a);function d(T){a[T]=s[T]&&function(e){return new Promise(function(F,p){e=s[T](e),R(F,p,e.done,e.value)})}}function R(T,e,F,p){Promise.resolve(p).then(function(z){T({value:z,done:F})},e)}},K=function(s,k){return Object.defineProperty?Object.defineProperty(s,"raw",{value:k}):s.raw=k,s},y=function(s){if(s&&s.__esModule)return s;var k={};if(s!=null)for(var a in s)Object.hasOwnProperty.call(s,a)&&(k[a]=s[a]);return k.default=s,k},S=function(s){return s&&s.__esModule?s:{default:s}},c=function(s,k){if(!k.has(s))throw new TypeError("attempted to get private field on non-instance");return k.get(s)},l=function(s,k,a){if(!k.has(s))throw new TypeError("attempted to set private field on non-instance");return k.set(s,a),a},H("__extends",g),H("__assign",B),H("__rest",C),H("__decorate",Q),H("__param",E),H("__metadata",N),H("__awaiter",D),H("__generator",o),H("__exportStar",M),H("__createBinding",U),H("__values",G),H("__read",i),H("__spread",L),H("__spreadArrays",Y),H("__await",w),H("__asyncGenerator",t),H("__asyncDelegator",Z),H("__asyncValues",h),H("__makeTemplateObject",K),H("__importStar",y),H("__importDefault",S),H("__classPrivateFieldGet",c),H("__classPrivateFieldSet",l)})}}),Ro=$A({"node_modules/@aws-crypto/sha256-js/build/constants.js"(I){Object.defineProperty(I,"__esModule",{value:!0}),I.MAX_HASHABLE_LENGTH=I.INIT=I.KEY=I.DIGEST_LENGTH=I.BLOCK_SIZE=void 0,I.BLOCK_SIZE=64,I.DIGEST_LENGTH=32,I.KEY=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),I.INIT=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],I.MAX_HASHABLE_LENGTH=Math.pow(2,53)-1}}),bc=$A({"node_modules/@aws-crypto/sha256-js/build/RawSha256.js"(I){Object.defineProperty(I,"__esModule",{value:!0}),I.RawSha256=void 0;var A=Ro(),g=function(){function B(){this.state=Int32Array.from(A.INIT),this.temp=new Int32Array(64),this.buffer=new Uint8Array(64),this.bufferLength=0,this.bytesHashed=0,this.finished=!1}return B.prototype.update=function(C){if(this.finished)throw new Error("Attempted to update an already finished hash.");var Q=0,E=C.byteLength;if(this.bytesHashed+=E,this.bytesHashed*8>A.MAX_HASHABLE_LENGTH)throw new Error("Cannot hash more than 2^53 - 1 bits");for(;E>0;)this.buffer[this.bufferLength++]=C[Q++],E--,this.bufferLength===A.BLOCK_SIZE&&(this.hashBuffer(),this.bufferLength=0)},B.prototype.digest=function(){if(!this.finished){var C=this.bytesHashed*8,Q=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),E=this.bufferLength;if(Q.setUint8(this.bufferLength++,128),E%A.BLOCK_SIZE>=A.BLOCK_SIZE-8){for(var N=this.bufferLength;N<A.BLOCK_SIZE;N++)Q.setUint8(N,0);this.hashBuffer(),this.bufferLength=0}for(var N=this.bufferLength;N<A.BLOCK_SIZE-8;N++)Q.setUint8(N,0);Q.setUint32(A.BLOCK_SIZE-8,Math.floor(C/4294967296),!0),Q.setUint32(A.BLOCK_SIZE-4,C),this.hashBuffer(),this.finished=!0}for(var D=new Uint8Array(A.DIGEST_LENGTH),N=0;N<8;N++)D[N*4]=this.state[N]>>>24&255,D[N*4+1]=this.state[N]>>>16&255,D[N*4+2]=this.state[N]>>>8&255,D[N*4+3]=this.state[N]>>>0&255;return D},B.prototype.hashBuffer=function(){for(var C=this,Q=C.buffer,E=C.state,N=E[0],D=E[1],o=E[2],M=E[3],G=E[4],i=E[5],L=E[6],Y=E[7],w=0;w<A.BLOCK_SIZE;w++){if(w<16)this.temp[w]=(Q[w*4]&255)<<24|(Q[w*4+1]&255)<<16|(Q[w*4+2]&255)<<8|Q[w*4+3]&255;else{var t=this.temp[w-2],Z=(t>>>17|t<<15)^(t>>>19|t<<13)^t>>>10;t=this.temp[w-15];var h=(t>>>7|t<<25)^(t>>>18|t<<14)^t>>>3;this.temp[w]=(Z+this.temp[w-7]|0)+(h+this.temp[w-16]|0)}var K=(((G>>>6|G<<26)^(G>>>11|G<<21)^(G>>>25|G<<7))+(G&i^~G&L)|0)+(Y+(A.KEY[w]+this.temp[w]|0)|0)|0,y=((N>>>2|N<<30)^(N>>>13|N<<19)^(N>>>22|N<<10))+(N&D^N&o^D&o)|0;Y=L,L=i,i=G,G=M+K|0,M=o,o=D,D=N,N=K+y|0}E[0]+=N,E[1]+=D,E[2]+=o,E[3]+=M,E[4]+=G,E[5]+=i,E[6]+=L,E[7]+=Y},B}();I.RawSha256=g}}),dc=$A({"node_modules/@aws-sdk/util-utf8-browser/dist-cjs/pureJs.js"(I){Object.defineProperty(I,"__esModule",{value:!0}),I.toUtf8=I.fromUtf8=void 0;var A=B=>{const C=[];for(let Q=0,E=B.length;Q<E;Q++){const N=B.charCodeAt(Q);if(N<128)C.push(N);else if(N<2048)C.push(N>>6|192,N&63|128);else if(Q+1<B.length&&(N&64512)===55296&&(B.charCodeAt(Q+1)&64512)===56320){const D=65536+((N&1023)<<10)+(B.charCodeAt(++Q)&1023);C.push(D>>18|240,D>>12&63|128,D>>6&63|128,D&63|128)}else C.push(N>>12|224,N>>6&63|128,N&63|128)}return Uint8Array.from(C)};I.fromUtf8=A;var g=B=>{let C="";for(let Q=0,E=B.length;Q<E;Q++){const N=B[Q];if(N<128)C+=String.fromCharCode(N);else if(192<=N&&N<224){const D=B[++Q];C+=String.fromCharCode((N&31)<<6|D&63)}else if(240<=N&&N<365){const o="%"+[N,B[++Q],B[++Q],B[++Q]].map(M=>M.toString(16)).join("%");C+=decodeURIComponent(o)}else C+=String.fromCharCode((N&15)<<12|(B[++Q]&63)<<6|B[++Q]&63)}return C};I.toUtf8=g}}),Hc=$A({"node_modules/@aws-sdk/util-utf8-browser/dist-cjs/whatwgEncodingApi.js"(I){Object.defineProperty(I,"__esModule",{value:!0}),I.toUtf8=I.fromUtf8=void 0;function A(B){return new TextEncoder().encode(B)}I.fromUtf8=A;function g(B){return new TextDecoder("utf-8").decode(B)}I.toUtf8=g}}),Rc=$A({"node_modules/@aws-sdk/util-utf8-browser/dist-cjs/index.js"(I){Object.defineProperty(I,"__esModule",{value:!0}),I.toUtf8=I.fromUtf8=void 0;var A=dc(),g=Hc(),B=Q=>typeof TextEncoder=="function"?(0,g.fromUtf8)(Q):(0,A.fromUtf8)(Q);I.fromUtf8=B;var C=Q=>typeof TextDecoder=="function"?(0,g.toUtf8)(Q):(0,A.toUtf8)(Q);I.toUtf8=C}}),Uc=$A({"node_modules/@aws-crypto/util/build/convertToBuffer.js"(I){Object.defineProperty(I,"__esModule",{value:!0}),I.convertToBuffer=void 0;var A=Rc(),g=typeof Buffer<"u"&&Buffer.from?function(C){return Buffer.from(C,"utf8")}:A.fromUtf8;function B(C){return C instanceof Uint8Array?C:typeof C=="string"?g(C):ArrayBuffer.isView(C)?new Uint8Array(C.buffer,C.byteOffset,C.byteLength/Uint8Array.BYTES_PER_ELEMENT):new Uint8Array(C)}I.convertToBuffer=B}}),Tc=$A({"node_modules/@aws-crypto/util/build/isEmptyData.js"(I){Object.defineProperty(I,"__esModule",{value:!0}),I.isEmptyData=void 0;function A(g){return typeof g=="string"?g.length===0:g.byteLength===0}I.isEmptyData=A}}),ec=$A({"node_modules/@aws-crypto/util/build/numToUint8.js"(I){Object.defineProperty(I,"__esModule",{value:!0}),I.numToUint8=void 0;function A(g){return new Uint8Array([(g&4278190080)>>24,(g&16711680)>>16,(g&65280)>>8,g&255])}I.numToUint8=A}}),zc=$A({"node_modules/@aws-crypto/util/build/uint32ArrayFrom.js"(I){Object.defineProperty(I,"__esModule",{value:!0}),I.uint32ArrayFrom=void 0;function A(g){if(!Uint32Array.from){for(var B=new Uint32Array(g.length),C=0;C<g.length;)B[C]=g[C],C+=1;return B}return Uint32Array.from(g)}I.uint32ArrayFrom=A}}),Fc=$A({"node_modules/@aws-crypto/util/build/index.js"(I){Object.defineProperty(I,"__esModule",{value:!0}),I.uint32ArrayFrom=I.numToUint8=I.isEmptyData=I.convertToBuffer=void 0;var A=Uc();Object.defineProperty(I,"convertToBuffer",{enumerable:!0,get:function(){return A.convertToBuffer}});var g=Tc();Object.defineProperty(I,"isEmptyData",{enumerable:!0,get:function(){return g.isEmptyData}});var B=ec();Object.defineProperty(I,"numToUint8",{enumerable:!0,get:function(){return B.numToUint8}});var C=zc();Object.defineProperty(I,"uint32ArrayFrom",{enumerable:!0,get:function(){return C.uint32ArrayFrom}})}}),jc=$A({"node_modules/@aws-crypto/sha256-js/build/jsSha256.js"(I){Object.defineProperty(I,"__esModule",{value:!0}),I.Sha256=void 0;var A=Ho(),g=Ro(),B=bc(),C=Fc(),Q=function(){function N(D){if(this.hash=new B.RawSha256,D){this.outer=new B.RawSha256;var o=E(D),M=new Uint8Array(g.BLOCK_SIZE);M.set(o);for(var G=0;G<g.BLOCK_SIZE;G++)o[G]^=54,M[G]^=92;this.hash.update(o),this.outer.update(M);for(var G=0;G<o.byteLength;G++)o[G]=0}}return N.prototype.update=function(D){if(!((0,C.isEmptyData)(D)||this.error))try{this.hash.update((0,C.convertToBuffer)(D))}catch(o){this.error=o}},N.prototype.digestSync=function(){if(this.error)throw this.error;return this.outer?(this.outer.finished||this.outer.update(this.hash.digest()),this.outer.digest()):this.hash.digest()},N.prototype.digest=function(){return A.__awaiter(this,void 0,void 0,function(){return A.__generator(this,function(D){return[2,this.digestSync()]})})},N}();I.Sha256=Q;function E(N){var D=(0,C.convertToBuffer)(N);if(D.byteLength>g.BLOCK_SIZE){var o=new B.RawSha256;o.update(D),D=o.digest()}var M=new Uint8Array(g.BLOCK_SIZE);return M.set(D),M}}}),mc=$A({"node_modules/@aws-crypto/sha256-js/build/index.js"(I){Object.defineProperty(I,"__esModule",{value:!0});var A=Ho();A.__exportStar(jc(),I)}}),pc=async(I,A=I.replace(/c?js$/,"data"),g=I.replace(/c?js$/,"wasm"))=>{var B,C;let Q,E,N;const D=/var (.+) = \(/;if(typeof window=="object"){let M=await(await fetch(I)).text();M=`${M}
|
1522
1522
|
export default ${(B=M.match(D))==null?void 0:B[1]};
|
1523
1523
|
`,Q=(await import(URL.createObjectURL(new Blob([M],{type:"text/javascript"})))).default,E=await(await fetch(A)).arrayBuffer(),N=new Uint8Array(await(await fetch(g)).arrayBuffer())}else{const{promises:M}=await Promise.resolve().then(()=>FL),{pathToFileURL:G}=await Promise.resolve().then(()=>FL);let i=await M.readFile(I,{encoding:"utf-8"});i=`
|
1524
1524
|
import process from "process";
|
@@ -1533,7 +1533,7 @@ const require = createRequire(import.meta.url);
|
|
1533
1533
|
${i}
|
1534
1534
|
|
1535
1535
|
export default ${(C=i.match(D))==null?void 0:C[1]};
|
1536
|
-
`;const L=I.replace(/c?js$/,"mjs");await M.writeFile(L,i),Q=(await import(G(L).href)).default,await M.unlink(L),E=(await M.readFile(A)).buffer,N=(await M.readFile(g)).buffer}return await Q({wasmBinary:N,getPreloadedPackage:(M,G)=>M==="libfaust-wasm.data"?E:new ArrayBuffer(0)})},xc=pc,nc=(I,A,g=!0)=>{const{registerProcessor:B,AudioWorkletProcessor:C,sampleRate:Q}=globalThis,{FaustBaseWebAudioDsp:E,FaustWasmInstantiator:N}=I,{processorName:D,dspName:o,dspMeta:M,effectMeta:G,poly:i}=A,L=h=>{const K=["/gate","/freq","/gain","/key","/vel","/velocity"],y="address"in h&&!!K.find(S=>h.address.endsWith(S));return i&&y?null:h.type==="vslider"||h.type==="hslider"||h.type==="nentry"?{name:h.address,defaultValue:h.init||0,minValue:h.min||0,maxValue:h.max||0}:h.type==="button"||h.type==="checkbox"?{name:h.address,defaultValue:h.init||0,minValue:0,maxValue:1}:null};class Y extends C{constructor(K){super(K),this.paramValuesCache={},this.port.onmessage=S=>this.handleMessageAux(S);const{parameterDescriptors:y}=this.constructor;y.forEach(S=>{this.paramValuesCache[S.name]=S.defaultValue||0})}static get parameterDescriptors(){const K=[],y=S=>{const c=L(S);c&&K.push(c)};return E.parseUI(M.ui,y),G&&E.parseUI(G.ui,y),K}process(K,y,S){for(const c in S){const[k]=S[c];k!==this.paramValuesCache[c]&&(this.fDSPCode.setParamValue(c,k),this.paramValuesCache[c]=k)}return this.fDSPCode.compute(K[0],y[0])}handleMessageAux(K){const y=K.data;switch(y.type){case"midi":this.midiMessage(y.data);break;case"ctrlChange":this.ctrlChange(y.data[0],y.data[1],y.data[2]);break;case"pitchWheel":this.pitchWheel(y.data[0],y.data[1]);break;case"param":this.setParamValue(y.data.path,y.data.value);break;case"setPlotHandler":{y.data?this.fDSPCode.setPlotHandler((S,c,k)=>this.port.postMessage({type:"plot",value:S,index:c,events:k})):this.fDSPCode.setPlotHandler(null);break}case"start":{this.fDSPCode.start();break}case"stop":{this.fDSPCode.stop();break}case"destroy":{this.port.close(),this.fDSPCode.destroy();break}}}setParamValue(K,y){this.fDSPCode.setParamValue(K,y),this.paramValuesCache[K]=y}midiMessage(K){this.fDSPCode.midiMessage(K)}ctrlChange(K,y,S){this.fDSPCode.ctrlChange(K,y,S)}pitchWheel(K,y){this.fDSPCode.pitchWheel(K,y)}}class w extends Y{constructor(K){super(K);const{FaustMonoWebAudioDsp:y}=I,{factory:S,sampleSize:c}=K.processorOptions,k=N.createSyncMonoDSPInstance(S);this.fDSPCode=new y(k,Q,c,128),this.fDSPCode.setOutputParamHandler((U,H)=>this.port.postMessage({path:U,value:H,type:"param"})),this.fDSPCode.start()}}class t extends Y{constructor(K){super(K),this.handleMessageAux=s=>{const l=s.data;switch(l.type){case"keyOn":this.keyOn(l.data[0],l.data[1],l.data[2]);break;case"keyOff":this.keyOff(l.data[0],l.data[1],l.data[2]);break;default:super.handleMessageAux(s);break}};const{FaustPolyWebAudioDsp:y}=I,{voiceFactory:S,mixerModule:c,voices:k,effectFactory:U,sampleSize:H}=K.processorOptions,b=N.createSyncPolyDSPInstance(S,c,k,U);this.fDSPCode=new y(b,Q,H,128),this.port.onmessage=s=>this.handleMessageAux(s),this.fDSPCode.setOutputParamHandler((s,l)=>this.port.postMessage({path:s,value:l,type:"param"})),this.fDSPCode.start()}midiMessage(K){const y=K[0]>>4,S=K[0]&15,c=K[1],k=K[2];y===8||y===9&&k===0?this.keyOff(S,c,k):y===9?this.keyOn(S,c,k):super.midiMessage(K)}keyOn(K,y,S){this.fDSPCode.keyOn(K,y,S)}keyOff(K,y,S){this.fDSPCode.keyOff(K,y,S)}allNotesOff(K){this.fDSPCode.allNotesOff(K)}}const Z=i?t:w;if(g)try{B(D||o||(i?"mydsp_poly":"mydsp"),Z)}catch(h){console.warn(h)}return i?t:w},ZC=nc,Wc=(I,A,g=!0)=>{const{registerProcessor:B,AudioWorkletProcessor:C,sampleRate:Q}=globalThis,{FaustBaseWebAudioDsp:E,FaustWasmInstantiator:N,FaustMonoWebAudioDsp:D,FFTUtils:o}=I,{processorName:M,dspName:G,dspMeta:i,fftOptions:L}=A,{windowFunctions:Y,getFFT:w,fftToSignal:t,signalToFFT:Z,signalToNoFFT:h}=o,K=(s,l)=>Math.abs(l)<1?Math.ceil(s*(1/l))/(1/l):Math.ceil(s/l)*l,y=(s,l)=>(s%l+l)%l,S=(s,l)=>{for(let a=0;a<s.length;a++)s[a]*=l(a,s.length)},c=["/fftSize","/fftHopSize","/fftOverlap","/windowFunction","/noIFFT"],k=(s,l,a=0,d=0)=>{const R=s.length,T=l.length,e=Math.min(R,T);let F=0,p=y(a,R)||0,z=y(d,T)||0;for(;F<e;){const x=Math.min(e-F,R-p,T-z),v=z+x;z===0&&v===T?s.set(l,p):s.set(l.subarray(z,v),p),p=(p+x)%R,z=v%T,F+=x}return p},U=s=>"address"in s&&!!c.find(a=>s.address.endsWith(a))?null:s.type==="vslider"||s.type==="hslider"||s.type==="nentry"?{name:s.address,defaultValue:s.init||0,minValue:s.min||0,maxValue:s.max||0}:s.type==="button"||s.type==="checkbox"?{name:s.address,defaultValue:s.init||0,minValue:0,maxValue:1}:null;class H extends C{constructor(l){super(l),this.paramValuesCache={},this.destroyed=!1,this.$inputWrite=0,this.$inputRead=0,this.$outputWrite=0,this.$outputRead=0,this.noIFFT=!1,this.fftInput=[],this.fftOutput=[],this.fftOverlap=0,this.fftHopSize=0,this.fftSize=0,this.fftBufferSize=0,this.fPlotHandler=null,this.fCachedEvents=[],this.fBufferNum=0,this.windowFunction=null,this.port.onmessage=T=>this.handleMessageAux(T);const{parameterDescriptors:a}=this.constructor;a.forEach(T=>{this.paramValuesCache[T.name]=T.defaultValue||0});const{factory:d,sampleSize:R}=l.processorOptions;this.dspInstance=N.createSyncMonoDSPInstance(d),this.sampleSize=R,this.initFFT()}get fftProcessorBufferSize(){return this.fftSize/2+1}async initFFT(){return this.FFT=await w(),await this.createFFTProcessor(),!0}static get parameterDescriptors(){const l=[],a=d=>{const R=U(d);R&&l.push(R)};return E.parseUI(i.ui,a),[...l,{defaultValue:(L==null?void 0:L.fftSize)||1024,maxValue:2**32,minValue:2,name:"fftSize"},{defaultValue:(L==null?void 0:L.fftOverlap)||2,maxValue:32,minValue:1,name:"fftOverlap"},{defaultValue:typeof(L==null?void 0:L.defaultWindowFunction)=="number"?L.defaultWindowFunction+1:0,maxValue:(Y==null?void 0:Y.length)||0,minValue:0,name:"windowFunction"},{defaultValue:+!!(L!=null&&L.noIFFT)||0,maxValue:1,minValue:0,name:"noIFFT"}]}processFFT(){let l=y(this.$inputWrite-this.$inputRead,this.fftBufferSize)||this.fftBufferSize;for(;l>=this.fftSize;){let a=[];this.fDSPCode.compute(d=>{for(let R=0;R<Math.min(this.fftInput.length,Math.ceil(d.length/3));R++){const T=this.rfft.forward(e=>{k(e,this.fftInput[R],0,this.$inputRead);for(let F=0;F<e.length;F++)e[F]*=this.window[F]});t(T,d[R*3],d[R*3+1],d[R*3+2])}for(let R=this.fftInput.length*3;R<d.length;R++)R%3===2?d[R].forEach((T,e)=>d[R][e]=e):d[R].fill(0)},d=>{a=d}),this.$inputRead+=this.fftHopSize,this.$inputRead%=this.fftBufferSize,l-=this.fftHopSize;for(let d=0;d<this.fftOutput.length;d++){let R;this.noIFFT?(R=this.noIFFTBuffer,h(a[d*2]||this.fftProcessorZeros,a[d*2+1]||this.fftProcessorZeros,R)):R=this.rfft.inverse(e=>{Z(a[d*2]||this.fftProcessorZeros,a[d*2+1]||this.fftProcessorZeros,e)});for(let e=0;e<R.length;e++)R[e]*=this.window[e];let T;for(let e=0;e<R.length-this.fftHopSize;e++)T=y(this.$outputWrite+e,this.fftBufferSize),this.fftOutput[d][T]+=R[e],d===0&&(this.windowSumSquare[T]+=this.noIFFT?this.window[e]:this.window[e]**2);for(let e=R.length-this.fftHopSize;e<R.length;e++)T=y(this.$outputWrite+e,this.fftBufferSize),this.fftOutput[d][T]=R[e],d===0&&(this.windowSumSquare[T]=this.noIFFT?this.window[e]:this.window[e]**2)}this.$outputWrite+=this.fftHopSize,this.$outputWrite%=this.fftBufferSize}}process(l,a,d){if(this.destroyed)return!1;if(!this.FFT)return!0;const R=l[0],T=a[0],e=(R==null?void 0:R.length)||0,F=(T==null?void 0:T.length)||0,p=R!=null&&R.length&&Math.max(...R.map(z=>z.length))||128;if(this.noIFFT=!!d.noIFFT[0],this.resetFFT(~~d.fftSize[0],~~d.fftOverlap[0],~~d.windowFunction[0],e,F,p),!this.fDSPCode)return!0;for(const z in d){if(c.find(v=>`/${z}`.endsWith(v)))continue;const[x]=d[z];x!==this.paramValuesCache[z]&&(this.fDSPCode.setParamValue(z,x),this.paramValuesCache[z]=x)}if(R!=null&&R.length){let z=0;for(let x=0;x<R.length;x++){const v=this.fftInput[x],$=R[x].length?R[x]:new Float32Array(p);z=k(v,$,this.$inputWrite)}this.$inputWrite=z}else this.$inputWrite+=p,this.$inputWrite%=this.fftBufferSize;this.processFFT();for(let z=0;z<T.length;z++){k(T[z],this.fftOutput[z],0,this.$outputRead);let x=0;for(let v=0;v<p;v++)x=this.windowSumSquare[y(this.$outputRead+v,this.fftBufferSize)],T[z][v]/=x<1e-8?1:x}return this.$outputRead+=p,this.$outputRead%=this.fftBufferSize,this.fPlotHandler&&(this.port.postMessage({type:"plot",value:T,index:this.fBufferNum++,events:this.fCachedEvents}),this.fCachedEvents=[]),!0}handleMessageAux(l){var a,d,R;const T=l.data;switch(T.type){case"midi":this.midiMessage(T.data);break;case"ctrlChange":this.ctrlChange(T.data[0],T.data[1],T.data[2]);break;case"pitchWheel":this.pitchWheel(T.data[0],T.data[1]);break;case"param":this.setParamValue(T.data.path,T.data.value);break;case"setPlotHandler":{T.data?this.fPlotHandler=(e,F,p)=>{p&&this.fCachedEvents.push(...p)}:this.fPlotHandler=null,(a=this.fDSPCode)==null||a.setPlotHandler(this.fPlotHandler);break}case"start":{(d=this.fDSPCode)==null||d.start();break}case"stop":{(R=this.fDSPCode)==null||R.stop();break}case"destroy":{this.port.close(),this.destroy();break}}}setParamValue(l,a){var d;(d=this.fDSPCode)==null||d.setParamValue(l,a),this.paramValuesCache[l]=a}midiMessage(l){var a;(a=this.fDSPCode)==null||a.midiMessage(l)}ctrlChange(l,a,d){var R;(R=this.fDSPCode)==null||R.ctrlChange(l,a,d)}pitchWheel(l,a){var d;(d=this.fDSPCode)==null||d.pitchWheel(l,a)}resetFFT(l,a,d,R,T,e){var F,p;const z=~~K(Math.max(2,l||1024),2),x=~~Math.min(z,Math.max(1,a)),v=~~Math.max(1,z/x),$=z-Math.min(v,e);let u=null;d!==0&&(u=typeof Y=="object"&&Y[~~d-1]||null);const gA=z!==this.fftSize,HA=x!==this.fftOverlap;if((gA||HA)&&(this.fftSize=z,this.fftOverlap=x,this.fftHopSize=v,this.$inputWrite=0,this.$inputRead=0,this.$outputWrite=0,this.$outputRead=-$,this.fftBufferSize=Math.max(z*2-this.fftHopSize,e*2),!gA&&this.fftHopSizeParam&&((F=this.fDSPCode)==null||F.setParamValue(this.fftHopSizeParam,this.fftHopSize))),gA&&((p=this.rfft)==null||p.dispose(),this.rfft=new this.FFT(z),this.noIFFTBuffer=new Float32Array(this.fftSize),this.createFFTProcessor()),(gA||HA||u!==this.windowFunction)&&(this.windowFunction=u,this.window=new Float32Array(z),this.window.fill(1),u&&S(this.window,u),this.windowSumSquare=new Float32Array(this.fftBufferSize)),this.fftInput.length>R&&this.fftInput.splice(R),this.fftOutput.length>T&&this.fftOutput.splice(T),gA||HA){for(let DA=0;DA<R;DA++)this.fftInput[DA]=new Float32Array(this.fftBufferSize);for(let DA=0;DA<T;DA++)this.fftOutput[DA]=new Float32Array(this.fftBufferSize)}else{if(this.fftInput.length<R)for(let DA=this.fftInput.length;DA<R;DA++)this.fftInput[DA]=new Float32Array(this.fftBufferSize);if(this.fftOutput.length<T)for(let DA=this.fftOutput.length;DA<T;DA++)this.fftOutput[DA]=new Float32Array(this.fftBufferSize)}}async createFFTProcessor(){var l,a;(l=this.fDSPCode)==null||l.stop(),(a=this.fDSPCode)==null||a.destroy(),this.fDSPCode=new D(this.dspInstance,Q,this.sampleSize,this.fftProcessorBufferSize),this.fDSPCode.setOutputParamHandler((T,e)=>this.port.postMessage({path:T,value:e,type:"param"})),this.fDSPCode.setPlotHandler(this.fPlotHandler);const d=this.fDSPCode.getParams();this.fDSPCode.start();for(const T in this.paramValuesCache)c.find(e=>`/${T}`.endsWith(e))||this.fDSPCode.setParamValue(T,this.paramValuesCache[T]);const R=d.find(T=>T.endsWith("/fftSize"));R&&this.fDSPCode.setParamValue(R,this.fftSize),this.fftHopSizeParam=d.find(T=>T.endsWith("/fftHopSize")),this.fftHopSizeParam&&this.fDSPCode.setParamValue(this.fftHopSizeParam,this.fftHopSize),this.fftProcessorZeros=new Float32Array(this.fftProcessorBufferSize)}destroy(){var l,a,d;(l=this.fDSPCode)==null||l.stop(),(a=this.fDSPCode)==null||a.destroy(),(d=this.rfft)==null||d.dispose(),this.destroyed=!0}}const b=H;if(g)try{B(M||G||"myfftdsp",b)}catch(s){console.warn(s)}return H},Oc=Wc,Jc=ac(mc(),1),uc=I=>String.fromCharCode.apply(null,I),vc=I=>{const A=new ArrayBuffer(I.length),g=new Uint8Array(A);for(let B=0,C=I.length;B<C;B++)g[B]=I.charCodeAt(B);return g},Vc=async I=>{const A=new Jc.Sha256;return A.update(I),Array.from(await A.digest()).map(C=>C.toString(16).padStart(2,"0")).join("")},xI=class{static serializeDSPFactories(){const I={};return this.gFactories.forEach((A,g)=>{const{code:B,json:C,poly:Q}=A;I[g]={code:btoa(uc(B)),json:JSON.parse(C),poly:Q}}),I}static stringifyDSPFactories(){return JSON.stringify(this.serializeDSPFactories())}static deserializeDSPFactories(I){const A=[];for(const g in I){const B=I[g],{code:C,json:Q,poly:E}=B,N=vc(atob(C));A.push(WebAssembly.compile(N).then(D=>this.gFactories.set(g,{shaKey:g,cfactory:0,code:N,module:D,json:JSON.stringify(Q),poly:E})))}return Promise.all(A)}static importDSPFactories(I){const A=JSON.parse(I);return this.deserializeDSPFactories(A)}constructor(I){this.fLibFaust=I,this.fErrorMessage=""}intVec2intArray(I){const A=I.size(),g=new Uint8Array(A);for(let B=0;B<A;B++)g[B]=I.get(B);return g}async createDSPFactory(I,A,g,B){xI.gFactories.size>10&&xI.gFactories.clear();let C=await Vc(I+A+g+(B?"poly":"mono"));if(xI.gFactories.has(C))return xI.gFactories.get(C)||null;try{const Q=this.fLibFaust.createDSPFactory(I,A,g,!B),E=this.intVec2intArray(Q.data);Q.data.delete();const N=await WebAssembly.compile(E),D={shaKey:C,cfactory:Q.cfactory,code:E,module:N,json:Q.json,poly:B};return this.deleteDSPFactory(D),xI.gFactories.set(C,D),D}catch(Q){throw this.fErrorMessage=this.fLibFaust.getErrorAfterException(),this.fLibFaust.cleanupAfterException(),this.fErrorMessage?new Error(this.fErrorMessage):Q}}version(){return this.fLibFaust.version()}getErrorMessage(){return this.fErrorMessage}async createMonoDSPFactory(I,A,g){return this.createDSPFactory(I,A,g,!1)}async createPolyDSPFactory(I,A,g){return this.createDSPFactory(I,A,g,!0)}deleteDSPFactory(I){this.fLibFaust.deleteDSPFactory(I.cfactory),I.cfactory=0}expandDSP(I,A){try{return this.fLibFaust.expandDSP("FaustDSP",I,A)}catch(g){throw this.fErrorMessage=this.fLibFaust.getErrorAfterException(),this.fLibFaust.cleanupAfterException(),this.fErrorMessage?new Error(this.fErrorMessage):g}}generateAuxFiles(I,A,g){try{return this.fLibFaust.generateAuxFiles(I,A,g)}catch(B){throw this.fErrorMessage=this.fLibFaust.getErrorAfterException(),this.fLibFaust.cleanupAfterException(),this.fErrorMessage?new Error(this.fErrorMessage):B}}deleteAllDSPFactories(){this.fLibFaust.deleteAllDSPFactories()}fs(){return this.fLibFaust.fs()}async getAsyncInternalMixerModule(I=!1){const A=I?"mixer64Buffer":"mixer32Buffer",g=I?"mixer64Module":"mixer32Module";if(this[g])return{mixerBuffer:this[A],mixerModule:this[g]};const B=I?"/usr/rsrc/mixer64.wasm":"/usr/rsrc/mixer32.wasm",C=this.fs().readFile(B,{encoding:"binary"});this[A]=C;const Q=await WebAssembly.compile(C);return this[g]=Q,{mixerBuffer:C,mixerModule:Q}}getSyncInternalMixerModule(I=!1){const A=I?"mixer64Buffer":"mixer32Buffer",g=I?"mixer64Module":"mixer32Module";if(this[g])return{mixerBuffer:this[A],mixerModule:this[g]};const B=I?"/usr/rsrc/mixer64.wasm":"/usr/rsrc/mixer32.wasm",C=this.fs().readFile(B,{encoding:"binary"});this[A]=C;const Q=new WebAssembly.Module(C);return this[g]=Q,{mixerBuffer:C,mixerModule:Q}}},Uo=xI;Uo.gFactories=new Map;var Xc=Uo,yg=class{constructor(I){this.fExports=I}compute(I,A,g,B){this.fExports.compute(I,A,g,B)}getNumInputs(I){return this.fExports.getNumInputs(I)}getNumOutputs(I){return this.fExports.getNumOutputs(I)}getParamValue(I,A){return this.fExports.getParamValue(I,A)}getSampleRate(I){return this.fExports.getSampleRate(I)}init(I,A){this.fExports.init(I,A)}instanceClear(I){this.fExports.instanceClear(I)}instanceConstants(I,A){this.fExports.instanceConstants(I,A)}instanceInit(I,A){this.fExports.instanceInit(I,A)}instanceResetUserInterface(I){this.fExports.instanceResetUserInterface(I)}setParamValue(I,A,g){this.fExports.setParamValue(I,A,g)}},rc=class{static createWasmImport(I){return{env:{memory:I||new WebAssembly.Memory({initial:100}),memoryBase:0,tableBase:0,_abs:Math.abs,_acosf:Math.acos,_asinf:Math.asin,_atanf:Math.atan,_atan2f:Math.atan2,_ceilf:Math.ceil,_cosf:Math.cos,_expf:Math.exp,_floorf:Math.floor,_fmodf:(A,g)=>A%g,_logf:Math.log,_log10f:Math.log10,_max_f:Math.max,_min_f:Math.min,_remainderf:(A,g)=>A-Math.round(A/g)*g,_powf:Math.pow,_roundf:Math.round,_sinf:Math.sin,_sqrtf:Math.sqrt,_tanf:Math.tan,_acoshf:Math.acosh,_asinhf:Math.asinh,_atanhf:Math.atanh,_coshf:Math.cosh,_sinhf:Math.sinh,_tanhf:Math.tanh,_isnanf:Number.isNaN,_isinff:A=>!isFinite(A),_copysignf:(A,g)=>Math.sign(A)===Math.sign(g)?A:-A,_acos:Math.acos,_asin:Math.asin,_atan:Math.atan,_atan2:Math.atan2,_ceil:Math.ceil,_cos:Math.cos,_exp:Math.exp,_floor:Math.floor,_fmod:(A,g)=>A%g,_log:Math.log,_log10:Math.log10,_max_:Math.max,_min_:Math.min,_remainder:(A,g)=>A-Math.round(A/g)*g,_pow:Math.pow,_round:Math.round,_sin:Math.sin,_sqrt:Math.sqrt,_tan:Math.tan,_acosh:Math.acosh,_asinh:Math.asinh,_atanh:Math.atanh,_cosh:Math.cosh,_sinh:Math.sinh,_tanh:Math.tanh,_isnan:Number.isNaN,_isinf:A=>!isFinite(A),_copysign:(A,g)=>Math.sign(A)===Math.sign(g)?A:-A,table:new WebAssembly.Table({initial:0,element:"anyfunc"})}}}static createWasmMemory(I,A,g,B,C){const Q=Math.max(4,I),E=A,N=M=>{let G=65536;for(;G<M;)G*=2;return G},D=B?B.size:0;let o=N(D+g.size*Q+(g.inputs+g.outputs*2)*(E+C*A))/65536;return o=Math.max(2,o),new WebAssembly.Memory({initial:o,maximum:o})}static createMonoDSPInstanceAux(I,A){const g=I.exports,B=new yg(g);return{memory:I.exports.memory,api:B,json:A}}static createMemoryAux(I,A,g){const B=JSON.parse(A.json),C=g&&g.json?JSON.parse(g.json):null,Q=B.compile_options.match("-double")?8:4;return this.createWasmMemory(I,Q,B,C,8192)}static createMixerAux(I,A){const g={imports:{print:console.log},memory:{memory:A}};return new WebAssembly.Instance(I,g).exports}static async loadDSPFactory(I,A){const g=await fetch(I);if(!g.ok)throw new Error(`=> exception raised while running loadDSPFactory, file not found: ${I}`);try{const B=await g.arrayBuffer(),C=await WebAssembly.compile(B),E=await(await fetch(A)).text(),o=JSON.parse(E).compile_options.indexOf("wasm-e")!==-1;return{cfactory:0,code:new Uint8Array(B),module:C,json:E,poly:o}}catch(B){throw B}}static async loadDSPMixer(I,A){try{let g=null;return A?g=A.readFile(I,{encoding:"binary"}):g=await(await fetch(I)).arrayBuffer(),WebAssembly.compile(g)}catch(g){throw g}}static async createAsyncMonoDSPInstance(I){const A=await WebAssembly.instantiate(I.module,this.createWasmImport());return this.createMonoDSPInstanceAux(A,I.json)}static createSyncMonoDSPInstance(I){const A=new WebAssembly.Instance(I.module,this.createWasmImport());return this.createMonoDSPInstanceAux(A,I.json)}static async createAsyncPolyDSPInstance(I,A,g,B){const C=this.createMemoryAux(g,I,B),E=(await WebAssembly.instantiate(I.module,this.createWasmImport(C))).exports,N=new yg(E),D=this.createMixerAux(A,C);if(B){const M=(await WebAssembly.instantiate(B.module,this.createWasmImport(C))).exports,G=new yg(M);return{memory:C,voices:g,voiceAPI:N,effectAPI:G,mixerAPI:D,voiceJSON:I.json,effectJSON:B.json}}else return{memory:C,voices:g,voiceAPI:N,mixerAPI:D,voiceJSON:I.json}}static createSyncPolyDSPInstance(I,A,g,B){const C=this.createMemoryAux(g,I,B),E=new WebAssembly.Instance(I.module,this.createWasmImport(C)).exports,N=new yg(E),D=this.createMixerAux(A,C);if(B){const M=new WebAssembly.Instance(B.module,this.createWasmImport(C)).exports,G=new yg(M);return{memory:C,voices:g,voiceAPI:N,effectAPI:G,mixerAPI:D,voiceJSON:I.json,effectJSON:B.json}}else return{memory:C,voices:g,voiceAPI:N,mixerAPI:D,voiceJSON:I.json}}},JA=rc,KA=class{constructor(I,A){this.fOutputHandler=null,this.fComputeHandler=null,this.fCachedEvents=[],this.fBufferNum=0,this.fPlotHandler=null,this.fBufferSize=A,this.fInChannels=[],this.fOutChannels=[],this.gPtrSize=I,this.gSampleSize=I,this.fOutputsTimer=5,this.fInputsItems=[],this.fOutputsItems=[],this.fDescriptor=[],this.fPitchwheelLabel=[],this.fCtrlLabel=new Array(128).fill(null).map(()=>[]),this.fPathTable={},this.fProcessing=!1,this.fDestroyed=!1,this.fUICallback=g=>{if(g.type==="hbargraph"||g.type==="vbargraph")this.fOutputsItems.push(g.address),this.fPathTable[g.address]=g.index;else if(g.type==="vslider"||g.type==="hslider"||g.type==="button"||g.type==="checkbox"||g.type==="nentry"){if(this.fInputsItems.push(g.address),this.fPathTable[g.address]=g.index,this.fDescriptor.push(g),!g.meta)return;g.meta.forEach(B=>{const{midi:C}=B;if(!C)return;const Q=C.trim();if(Q==="pitchwheel")this.fPitchwheelLabel.push({path:g.address,min:g.min,max:g.max});else{const E=Q.match(/^ctrl\s(\d+)/);if(!E)return;this.fCtrlLabel[parseInt(E[1])].push({path:g.address,min:g.min,max:g.max})}})}}}static remap(I,A,g,B,C){return(I-A)/(g-A)*(C-B)+B}static parseUI(I,A){I.forEach(g=>this.parseGroup(g,A))}static parseGroup(I,A){I.items&&this.parseItems(I.items,A)}static parseItems(I,A){I.forEach(g=>this.parseItem(g,A))}static parseItem(I,A){I.type==="vgroup"||I.type==="hgroup"||I.type==="tgroup"?this.parseItems(I.items,A):A(I)}updateOutputs(){this.fOutputsItems.length>0&&this.fOutputHandler&&this.fOutputsTimer--===0&&(this.fOutputsTimer=5,this.fOutputsItems.forEach(I=>{var A;return(A=this.fOutputHandler)==null?void 0:A.call(this,I,this.getParamValue(I))}))}metadata(I){this.fJSONDsp.meta&&this.fJSONDsp.meta.forEach(A=>I(Object.keys(A)[0],A[Object.keys(A)[0]]))}compute(I,A){return!1}setOutputParamHandler(I){this.fOutputHandler=I}getOutputParamHandler(){return this.fOutputHandler}setComputeHandler(I){this.fComputeHandler=I}getComputeHandler(){return this.fComputeHandler}setPlotHandler(I){this.fPlotHandler=I}getPlotHandler(){return this.fPlotHandler}getNumInputs(){return-1}getNumOutputs(){return-1}midiMessage(I){this.fPlotHandler&&this.fCachedEvents.push({data:I,type:"midi"});const A=I[0]>>4,g=I[0]&15,B=I[1],C=I[2];if(A===11)return this.ctrlChange(g,B,C);if(A===14)return this.pitchWheel(g,C*128+B)}ctrlChange(I,A,g){this.fPlotHandler&&this.fCachedEvents.push({type:"ctrlChange",data:[I,A,g]}),this.fCtrlLabel[A].length&&this.fCtrlLabel[A].forEach(B=>{const{path:C}=B;this.setParamValue(C,KA.remap(g,0,127,B.min,B.max)),this.fOutputHandler&&this.fOutputHandler(C,this.getParamValue(C))})}pitchWheel(I,A){this.fPlotHandler&&this.fCachedEvents.push({type:"pitchWheel",data:[I,A]}),this.fPitchwheelLabel.forEach(g=>{this.setParamValue(g.path,KA.remap(A,0,16383,g.min,g.max)),this.fOutputHandler&&this.fOutputHandler(g.path,this.getParamValue(g.path))})}setParamValue(I,A){}getParamValue(I){return 0}getParams(){return this.fInputsItems}getMeta(){return this.fJSONDsp}getJSON(){return JSON.stringify(this.getMeta())}getUI(){return this.fJSONDsp.ui}getDescriptors(){return this.fDescriptor}start(){this.fProcessing=!0}stop(){this.fProcessing=!1}destroy(){this.fDestroyed=!0,this.fOutputHandler=null,this.fComputeHandler=null,this.fPlotHandler=null}},lg=class extends KA{constructor(I,A,g,B){super(g,B),this.fInstance=I,this.fJSONDsp=JSON.parse(this.fInstance.json),KA.parseUI(this.fJSONDsp.ui,this.fUICallback),this.initMemory(),this.fInstance.api.init(this.fDSP,A)}initMemory(){this.fDSP=0;const I=this.fJSONDsp.size;this.fAudioInputs=I,this.fAudioOutputs=this.fAudioInputs+this.getNumInputs()*this.gPtrSize;const A=this.fAudioOutputs+this.getNumOutputs()*this.gPtrSize,g=A+this.getNumInputs()*this.fBufferSize*this.gSampleSize,B=this.fInstance.memory.buffer,C=new Int32Array(B),Q=this.gSampleSize===4?new Float32Array(B):new Float64Array(B);if(this.getNumInputs()>0){for(let N=0;N<this.getNumInputs();N++)C[(this.fAudioInputs>>2)+N]=A+this.fBufferSize*this.gSampleSize*N;const E=C.subarray(this.fAudioInputs>>2,this.fAudioInputs+this.getNumInputs()*this.gPtrSize>>2);for(let N=0;N<this.getNumInputs();N++)this.fInChannels[N]=Q.subarray(E[N]>>Math.log2(this.gSampleSize),E[N]+this.fBufferSize*this.gSampleSize>>Math.log2(this.gSampleSize))}if(this.getNumOutputs()>0){for(let N=0;N<this.getNumOutputs();N++)C[(this.fAudioOutputs>>2)+N]=g+this.fBufferSize*this.gSampleSize*N;const E=C.subarray(this.fAudioOutputs>>2,this.fAudioOutputs+this.getNumOutputs()*this.gPtrSize>>2);for(let N=0;N<this.getNumOutputs();N++)this.fOutChannels[N]=Q.subarray(E[N]>>Math.log2(this.gSampleSize),E[N]+this.fBufferSize*this.gSampleSize>>Math.log2(this.gSampleSize))}}toString(){return`============== Mono Memory layout ==============
|
1536
|
+
`;const L=I.replace(/c?js$/,"mjs");await M.writeFile(L,i),Q=(await import(G(L).href)).default,await M.unlink(L),E=(await M.readFile(A)).buffer,N=(await M.readFile(g)).buffer}return await Q({wasmBinary:N,getPreloadedPackage:(M,G)=>M==="libfaust-wasm.data"?E:new ArrayBuffer(0)})},xc=pc,nc=(I,A,g=!0)=>{const{registerProcessor:B,AudioWorkletProcessor:C,sampleRate:Q}=globalThis,{FaustBaseWebAudioDsp:E,FaustWasmInstantiator:N}=I,{processorName:D,dspName:o,dspMeta:M,effectMeta:G,poly:i}=A,L=h=>{const K=["/gate","/freq","/gain","/key","/vel","/velocity"],y="address"in h&&!!K.find(S=>h.address.endsWith(S));return i&&y?null:h.type==="vslider"||h.type==="hslider"||h.type==="nentry"?{name:h.address,defaultValue:h.init||0,minValue:h.min||0,maxValue:h.max||0}:h.type==="button"||h.type==="checkbox"?{name:h.address,defaultValue:h.init||0,minValue:0,maxValue:1}:null};class Y extends C{constructor(K){super(K),this.paramValuesCache={},this.port.onmessage=S=>this.handleMessageAux(S);const{parameterDescriptors:y}=this.constructor;y.forEach(S=>{this.paramValuesCache[S.name]=S.defaultValue||0})}static get parameterDescriptors(){const K=[],y=S=>{const c=L(S);c&&K.push(c)};return E.parseUI(M.ui,y),G&&E.parseUI(G.ui,y),K}process(K,y,S){for(const c in S){const[l]=S[c];l!==this.paramValuesCache[c]&&(this.fDSPCode.setParamValue(c,l),this.paramValuesCache[c]=l)}return this.fDSPCode.compute(K[0],y[0])}handleMessageAux(K){const y=K.data;switch(y.type){case"midi":this.midiMessage(y.data);break;case"ctrlChange":this.ctrlChange(y.data[0],y.data[1],y.data[2]);break;case"pitchWheel":this.pitchWheel(y.data[0],y.data[1]);break;case"param":this.setParamValue(y.data.path,y.data.value);break;case"setPlotHandler":{y.data?this.fDSPCode.setPlotHandler((S,c,l)=>this.port.postMessage({type:"plot",value:S,index:c,events:l})):this.fDSPCode.setPlotHandler(null);break}case"start":{this.fDSPCode.start();break}case"stop":{this.fDSPCode.stop();break}case"destroy":{this.port.close(),this.fDSPCode.destroy();break}}}setParamValue(K,y){this.fDSPCode.setParamValue(K,y),this.paramValuesCache[K]=y}midiMessage(K){this.fDSPCode.midiMessage(K)}ctrlChange(K,y,S){this.fDSPCode.ctrlChange(K,y,S)}pitchWheel(K,y){this.fDSPCode.pitchWheel(K,y)}}class w extends Y{constructor(K){super(K);const{FaustMonoWebAudioDsp:y}=I,{factory:S,sampleSize:c}=K.processorOptions,l=N.createSyncMonoDSPInstance(S);this.fDSPCode=new y(l,Q,c,128),this.fDSPCode.setOutputParamHandler((U,H)=>this.port.postMessage({path:U,value:H,type:"param"})),this.fDSPCode.start()}}class t extends Y{constructor(K){super(K),this.handleMessageAux=s=>{const k=s.data;switch(k.type){case"keyOn":this.keyOn(k.data[0],k.data[1],k.data[2]);break;case"keyOff":this.keyOff(k.data[0],k.data[1],k.data[2]);break;default:super.handleMessageAux(s);break}};const{FaustPolyWebAudioDsp:y}=I,{voiceFactory:S,mixerModule:c,voices:l,effectFactory:U,sampleSize:H}=K.processorOptions,b=N.createSyncPolyDSPInstance(S,c,l,U);this.fDSPCode=new y(b,Q,H,128),this.port.onmessage=s=>this.handleMessageAux(s),this.fDSPCode.setOutputParamHandler((s,k)=>this.port.postMessage({path:s,value:k,type:"param"})),this.fDSPCode.start()}midiMessage(K){const y=K[0]>>4,S=K[0]&15,c=K[1],l=K[2];y===8||y===9&&l===0?this.keyOff(S,c,l):y===9?this.keyOn(S,c,l):super.midiMessage(K)}keyOn(K,y,S){this.fDSPCode.keyOn(K,y,S)}keyOff(K,y,S){this.fDSPCode.keyOff(K,y,S)}allNotesOff(K){this.fDSPCode.allNotesOff(K)}}const Z=i?t:w;if(g)try{B(D||o||(i?"mydsp_poly":"mydsp"),Z)}catch(h){console.warn(h)}return i?t:w},ZC=nc,Wc=(I,A,g=!0)=>{const{registerProcessor:B,AudioWorkletProcessor:C,sampleRate:Q}=globalThis,{FaustBaseWebAudioDsp:E,FaustWasmInstantiator:N,FaustMonoWebAudioDsp:D,FFTUtils:o}=I,{processorName:M,dspName:G,dspMeta:i,fftOptions:L}=A,{windowFunctions:Y,getFFT:w,fftToSignal:t,signalToFFT:Z,signalToNoFFT:h}=o,K=(s,k)=>Math.abs(k)<1?Math.ceil(s*(1/k))/(1/k):Math.ceil(s/k)*k,y=(s,k)=>(s%k+k)%k,S=(s,k)=>{for(let a=0;a<s.length;a++)s[a]*=k(a,s.length)},c=["/fftSize","/fftHopSize","/fftOverlap","/windowFunction","/noIFFT"],l=(s,k,a=0,d=0)=>{const R=s.length,T=k.length,e=Math.min(R,T);let F=0,p=y(a,R)||0,z=y(d,T)||0;for(;F<e;){const x=Math.min(e-F,R-p,T-z),v=z+x;z===0&&v===T?s.set(k,p):s.set(k.subarray(z,v),p),p=(p+x)%R,z=v%T,F+=x}return p},U=s=>"address"in s&&!!c.find(a=>s.address.endsWith(a))?null:s.type==="vslider"||s.type==="hslider"||s.type==="nentry"?{name:s.address,defaultValue:s.init||0,minValue:s.min||0,maxValue:s.max||0}:s.type==="button"||s.type==="checkbox"?{name:s.address,defaultValue:s.init||0,minValue:0,maxValue:1}:null;class H extends C{constructor(k){super(k),this.paramValuesCache={},this.destroyed=!1,this.$inputWrite=0,this.$inputRead=0,this.$outputWrite=0,this.$outputRead=0,this.noIFFT=!1,this.fftInput=[],this.fftOutput=[],this.fftOverlap=0,this.fftHopSize=0,this.fftSize=0,this.fftBufferSize=0,this.fPlotHandler=null,this.fCachedEvents=[],this.fBufferNum=0,this.windowFunction=null,this.port.onmessage=T=>this.handleMessageAux(T);const{parameterDescriptors:a}=this.constructor;a.forEach(T=>{this.paramValuesCache[T.name]=T.defaultValue||0});const{factory:d,sampleSize:R}=k.processorOptions;this.dspInstance=N.createSyncMonoDSPInstance(d),this.sampleSize=R,this.initFFT()}get fftProcessorBufferSize(){return this.fftSize/2+1}async initFFT(){return this.FFT=await w(),await this.createFFTProcessor(),!0}static get parameterDescriptors(){const k=[],a=d=>{const R=U(d);R&&k.push(R)};return E.parseUI(i.ui,a),[...k,{defaultValue:(L==null?void 0:L.fftSize)||1024,maxValue:2**32,minValue:2,name:"fftSize"},{defaultValue:(L==null?void 0:L.fftOverlap)||2,maxValue:32,minValue:1,name:"fftOverlap"},{defaultValue:typeof(L==null?void 0:L.defaultWindowFunction)=="number"?L.defaultWindowFunction+1:0,maxValue:(Y==null?void 0:Y.length)||0,minValue:0,name:"windowFunction"},{defaultValue:+!!(L!=null&&L.noIFFT)||0,maxValue:1,minValue:0,name:"noIFFT"}]}processFFT(){let k=y(this.$inputWrite-this.$inputRead,this.fftBufferSize)||this.fftBufferSize;for(;k>=this.fftSize;){let a=[];this.fDSPCode.compute(d=>{for(let R=0;R<Math.min(this.fftInput.length,Math.ceil(d.length/3));R++){const T=this.rfft.forward(e=>{l(e,this.fftInput[R],0,this.$inputRead);for(let F=0;F<e.length;F++)e[F]*=this.window[F]});t(T,d[R*3],d[R*3+1],d[R*3+2])}for(let R=this.fftInput.length*3;R<d.length;R++)R%3===2?d[R].forEach((T,e)=>d[R][e]=e):d[R].fill(0)},d=>{a=d}),this.$inputRead+=this.fftHopSize,this.$inputRead%=this.fftBufferSize,k-=this.fftHopSize;for(let d=0;d<this.fftOutput.length;d++){let R;this.noIFFT?(R=this.noIFFTBuffer,h(a[d*2]||this.fftProcessorZeros,a[d*2+1]||this.fftProcessorZeros,R)):R=this.rfft.inverse(e=>{Z(a[d*2]||this.fftProcessorZeros,a[d*2+1]||this.fftProcessorZeros,e)});for(let e=0;e<R.length;e++)R[e]*=this.window[e];let T;for(let e=0;e<R.length-this.fftHopSize;e++)T=y(this.$outputWrite+e,this.fftBufferSize),this.fftOutput[d][T]+=R[e],d===0&&(this.windowSumSquare[T]+=this.noIFFT?this.window[e]:this.window[e]**2);for(let e=R.length-this.fftHopSize;e<R.length;e++)T=y(this.$outputWrite+e,this.fftBufferSize),this.fftOutput[d][T]=R[e],d===0&&(this.windowSumSquare[T]=this.noIFFT?this.window[e]:this.window[e]**2)}this.$outputWrite+=this.fftHopSize,this.$outputWrite%=this.fftBufferSize}}process(k,a,d){if(this.destroyed)return!1;if(!this.FFT)return!0;const R=k[0],T=a[0],e=(R==null?void 0:R.length)||0,F=(T==null?void 0:T.length)||0,p=R!=null&&R.length&&Math.max(...R.map(z=>z.length))||128;if(this.noIFFT=!!d.noIFFT[0],this.resetFFT(~~d.fftSize[0],~~d.fftOverlap[0],~~d.windowFunction[0],e,F,p),!this.fDSPCode)return!0;for(const z in d){if(c.find(v=>`/${z}`.endsWith(v)))continue;const[x]=d[z];x!==this.paramValuesCache[z]&&(this.fDSPCode.setParamValue(z,x),this.paramValuesCache[z]=x)}if(R!=null&&R.length){let z=0;for(let x=0;x<R.length;x++){const v=this.fftInput[x],q=R[x].length?R[x]:new Float32Array(p);z=l(v,q,this.$inputWrite)}this.$inputWrite=z}else this.$inputWrite+=p,this.$inputWrite%=this.fftBufferSize;this.processFFT();for(let z=0;z<T.length;z++){l(T[z],this.fftOutput[z],0,this.$outputRead);let x=0;for(let v=0;v<p;v++)x=this.windowSumSquare[y(this.$outputRead+v,this.fftBufferSize)],T[z][v]/=x<1e-8?1:x}return this.$outputRead+=p,this.$outputRead%=this.fftBufferSize,this.fPlotHandler&&(this.port.postMessage({type:"plot",value:T,index:this.fBufferNum++,events:this.fCachedEvents}),this.fCachedEvents=[]),!0}handleMessageAux(k){var a,d,R;const T=k.data;switch(T.type){case"midi":this.midiMessage(T.data);break;case"ctrlChange":this.ctrlChange(T.data[0],T.data[1],T.data[2]);break;case"pitchWheel":this.pitchWheel(T.data[0],T.data[1]);break;case"param":this.setParamValue(T.data.path,T.data.value);break;case"setPlotHandler":{T.data?this.fPlotHandler=(e,F,p)=>{p&&this.fCachedEvents.push(...p)}:this.fPlotHandler=null,(a=this.fDSPCode)==null||a.setPlotHandler(this.fPlotHandler);break}case"start":{(d=this.fDSPCode)==null||d.start();break}case"stop":{(R=this.fDSPCode)==null||R.stop();break}case"destroy":{this.port.close(),this.destroy();break}}}setParamValue(k,a){var d;(d=this.fDSPCode)==null||d.setParamValue(k,a),this.paramValuesCache[k]=a}midiMessage(k){var a;(a=this.fDSPCode)==null||a.midiMessage(k)}ctrlChange(k,a,d){var R;(R=this.fDSPCode)==null||R.ctrlChange(k,a,d)}pitchWheel(k,a){var d;(d=this.fDSPCode)==null||d.pitchWheel(k,a)}resetFFT(k,a,d,R,T,e){var F,p;const z=~~K(Math.max(2,k||1024),2),x=~~Math.min(z,Math.max(1,a)),v=~~Math.max(1,z/x),q=z-Math.min(v,e);let J=null;d!==0&&(J=typeof Y=="object"&&Y[~~d-1]||null);const gA=z!==this.fftSize,HA=x!==this.fftOverlap;if((gA||HA)&&(this.fftSize=z,this.fftOverlap=x,this.fftHopSize=v,this.$inputWrite=0,this.$inputRead=0,this.$outputWrite=0,this.$outputRead=-q,this.fftBufferSize=Math.max(z*2-this.fftHopSize,e*2),!gA&&this.fftHopSizeParam&&((F=this.fDSPCode)==null||F.setParamValue(this.fftHopSizeParam,this.fftHopSize))),gA&&((p=this.rfft)==null||p.dispose(),this.rfft=new this.FFT(z),this.noIFFTBuffer=new Float32Array(this.fftSize),this.createFFTProcessor()),(gA||HA||J!==this.windowFunction)&&(this.windowFunction=J,this.window=new Float32Array(z),this.window.fill(1),J&&S(this.window,J),this.windowSumSquare=new Float32Array(this.fftBufferSize)),this.fftInput.length>R&&this.fftInput.splice(R),this.fftOutput.length>T&&this.fftOutput.splice(T),gA||HA){for(let DA=0;DA<R;DA++)this.fftInput[DA]=new Float32Array(this.fftBufferSize);for(let DA=0;DA<T;DA++)this.fftOutput[DA]=new Float32Array(this.fftBufferSize)}else{if(this.fftInput.length<R)for(let DA=this.fftInput.length;DA<R;DA++)this.fftInput[DA]=new Float32Array(this.fftBufferSize);if(this.fftOutput.length<T)for(let DA=this.fftOutput.length;DA<T;DA++)this.fftOutput[DA]=new Float32Array(this.fftBufferSize)}}async createFFTProcessor(){var k,a;(k=this.fDSPCode)==null||k.stop(),(a=this.fDSPCode)==null||a.destroy(),this.fDSPCode=new D(this.dspInstance,Q,this.sampleSize,this.fftProcessorBufferSize),this.fDSPCode.setOutputParamHandler((T,e)=>this.port.postMessage({path:T,value:e,type:"param"})),this.fDSPCode.setPlotHandler(this.fPlotHandler);const d=this.fDSPCode.getParams();this.fDSPCode.start();for(const T in this.paramValuesCache)c.find(e=>`/${T}`.endsWith(e))||this.fDSPCode.setParamValue(T,this.paramValuesCache[T]);const R=d.find(T=>T.endsWith("/fftSize"));R&&this.fDSPCode.setParamValue(R,this.fftSize),this.fftHopSizeParam=d.find(T=>T.endsWith("/fftHopSize")),this.fftHopSizeParam&&this.fDSPCode.setParamValue(this.fftHopSizeParam,this.fftHopSize),this.fftProcessorZeros=new Float32Array(this.fftProcessorBufferSize)}destroy(){var k,a,d;(k=this.fDSPCode)==null||k.stop(),(a=this.fDSPCode)==null||a.destroy(),(d=this.rfft)==null||d.dispose(),this.destroyed=!0}}const b=H;if(g)try{B(M||G||"myfftdsp",b)}catch(s){console.warn(s)}return H},Oc=Wc,Jc=ac(mc(),1),uc=I=>String.fromCharCode.apply(null,I),vc=I=>{const A=new ArrayBuffer(I.length),g=new Uint8Array(A);for(let B=0,C=I.length;B<C;B++)g[B]=I.charCodeAt(B);return g},Vc=async I=>{const A=new Jc.Sha256;return A.update(I),Array.from(await A.digest()).map(C=>C.toString(16).padStart(2,"0")).join("")},xI=class{static serializeDSPFactories(){const I={};return this.gFactories.forEach((A,g)=>{const{code:B,json:C,poly:Q}=A;I[g]={code:btoa(uc(B)),json:JSON.parse(C),poly:Q}}),I}static stringifyDSPFactories(){return JSON.stringify(this.serializeDSPFactories())}static deserializeDSPFactories(I){const A=[];for(const g in I){const B=I[g],{code:C,json:Q,poly:E}=B,N=vc(atob(C));A.push(WebAssembly.compile(N).then(D=>this.gFactories.set(g,{shaKey:g,cfactory:0,code:N,module:D,json:JSON.stringify(Q),poly:E})))}return Promise.all(A)}static importDSPFactories(I){const A=JSON.parse(I);return this.deserializeDSPFactories(A)}constructor(I){this.fLibFaust=I,this.fErrorMessage=""}intVec2intArray(I){const A=I.size(),g=new Uint8Array(A);for(let B=0;B<A;B++)g[B]=I.get(B);return g}async createDSPFactory(I,A,g,B){xI.gFactories.size>10&&xI.gFactories.clear();let C=await Vc(I+A+g+(B?"poly":"mono"));if(xI.gFactories.has(C))return xI.gFactories.get(C)||null;try{const Q=this.fLibFaust.createDSPFactory(I,A,g,!B),E=this.intVec2intArray(Q.data);Q.data.delete();const N=await WebAssembly.compile(E),D={shaKey:C,cfactory:Q.cfactory,code:E,module:N,json:Q.json,poly:B};return this.deleteDSPFactory(D),xI.gFactories.set(C,D),D}catch(Q){throw this.fErrorMessage=this.fLibFaust.getErrorAfterException(),this.fLibFaust.cleanupAfterException(),this.fErrorMessage?new Error(this.fErrorMessage):Q}}version(){return this.fLibFaust.version()}getErrorMessage(){return this.fErrorMessage}async createMonoDSPFactory(I,A,g){return this.createDSPFactory(I,A,g,!1)}async createPolyDSPFactory(I,A,g){return this.createDSPFactory(I,A,g,!0)}deleteDSPFactory(I){this.fLibFaust.deleteDSPFactory(I.cfactory),I.cfactory=0}expandDSP(I,A){try{return this.fLibFaust.expandDSP("FaustDSP",I,A)}catch(g){throw this.fErrorMessage=this.fLibFaust.getErrorAfterException(),this.fLibFaust.cleanupAfterException(),this.fErrorMessage?new Error(this.fErrorMessage):g}}generateAuxFiles(I,A,g){try{return this.fLibFaust.generateAuxFiles(I,A,g)}catch(B){throw this.fErrorMessage=this.fLibFaust.getErrorAfterException(),this.fLibFaust.cleanupAfterException(),this.fErrorMessage?new Error(this.fErrorMessage):B}}deleteAllDSPFactories(){this.fLibFaust.deleteAllDSPFactories()}fs(){return this.fLibFaust.fs()}async getAsyncInternalMixerModule(I=!1){const A=I?"mixer64Buffer":"mixer32Buffer",g=I?"mixer64Module":"mixer32Module";if(this[g])return{mixerBuffer:this[A],mixerModule:this[g]};const B=I?"/usr/rsrc/mixer64.wasm":"/usr/rsrc/mixer32.wasm",C=this.fs().readFile(B,{encoding:"binary"});this[A]=C;const Q=await WebAssembly.compile(C);return this[g]=Q,{mixerBuffer:C,mixerModule:Q}}getSyncInternalMixerModule(I=!1){const A=I?"mixer64Buffer":"mixer32Buffer",g=I?"mixer64Module":"mixer32Module";if(this[g])return{mixerBuffer:this[A],mixerModule:this[g]};const B=I?"/usr/rsrc/mixer64.wasm":"/usr/rsrc/mixer32.wasm",C=this.fs().readFile(B,{encoding:"binary"});this[A]=C;const Q=new WebAssembly.Module(C);return this[g]=Q,{mixerBuffer:C,mixerModule:Q}}},Uo=xI;Uo.gFactories=new Map;var Xc=Uo,yg=class{constructor(I){this.fExports=I}compute(I,A,g,B){this.fExports.compute(I,A,g,B)}getNumInputs(I){return this.fExports.getNumInputs(I)}getNumOutputs(I){return this.fExports.getNumOutputs(I)}getParamValue(I,A){return this.fExports.getParamValue(I,A)}getSampleRate(I){return this.fExports.getSampleRate(I)}init(I,A){this.fExports.init(I,A)}instanceClear(I){this.fExports.instanceClear(I)}instanceConstants(I,A){this.fExports.instanceConstants(I,A)}instanceInit(I,A){this.fExports.instanceInit(I,A)}instanceResetUserInterface(I){this.fExports.instanceResetUserInterface(I)}setParamValue(I,A,g){this.fExports.setParamValue(I,A,g)}},rc=class{static createWasmImport(I){return{env:{memory:I||new WebAssembly.Memory({initial:100}),memoryBase:0,tableBase:0,_abs:Math.abs,_acosf:Math.acos,_asinf:Math.asin,_atanf:Math.atan,_atan2f:Math.atan2,_ceilf:Math.ceil,_cosf:Math.cos,_expf:Math.exp,_floorf:Math.floor,_fmodf:(A,g)=>A%g,_logf:Math.log,_log10f:Math.log10,_max_f:Math.max,_min_f:Math.min,_remainderf:(A,g)=>A-Math.round(A/g)*g,_powf:Math.pow,_roundf:Math.round,_sinf:Math.sin,_sqrtf:Math.sqrt,_tanf:Math.tan,_acoshf:Math.acosh,_asinhf:Math.asinh,_atanhf:Math.atanh,_coshf:Math.cosh,_sinhf:Math.sinh,_tanhf:Math.tanh,_isnanf:Number.isNaN,_isinff:A=>!isFinite(A),_copysignf:(A,g)=>Math.sign(A)===Math.sign(g)?A:-A,_acos:Math.acos,_asin:Math.asin,_atan:Math.atan,_atan2:Math.atan2,_ceil:Math.ceil,_cos:Math.cos,_exp:Math.exp,_floor:Math.floor,_fmod:(A,g)=>A%g,_log:Math.log,_log10:Math.log10,_max_:Math.max,_min_:Math.min,_remainder:(A,g)=>A-Math.round(A/g)*g,_pow:Math.pow,_round:Math.round,_sin:Math.sin,_sqrt:Math.sqrt,_tan:Math.tan,_acosh:Math.acosh,_asinh:Math.asinh,_atanh:Math.atanh,_cosh:Math.cosh,_sinh:Math.sinh,_tanh:Math.tanh,_isnan:Number.isNaN,_isinf:A=>!isFinite(A),_copysign:(A,g)=>Math.sign(A)===Math.sign(g)?A:-A,table:new WebAssembly.Table({initial:0,element:"anyfunc"})}}}static createWasmMemory(I,A,g,B,C){const Q=Math.max(4,I),E=A,N=M=>{let G=65536;for(;G<M;)G*=2;return G},D=B?B.size:0;let o=N(D+g.size*Q+(g.inputs+g.outputs*2)*(E+C*A))/65536;return o=Math.max(2,o),new WebAssembly.Memory({initial:o,maximum:o})}static createMonoDSPInstanceAux(I,A){const g=I.exports,B=new yg(g);return{memory:I.exports.memory,api:B,json:A}}static createMemoryAux(I,A,g){const B=JSON.parse(A.json),C=g&&g.json?JSON.parse(g.json):null,Q=B.compile_options.match("-double")?8:4;return this.createWasmMemory(I,Q,B,C,8192)}static createMixerAux(I,A){const g={imports:{print:console.log},memory:{memory:A}};return new WebAssembly.Instance(I,g).exports}static async loadDSPFactory(I,A){const g=await fetch(I);if(!g.ok)throw new Error(`=> exception raised while running loadDSPFactory, file not found: ${I}`);try{const B=await g.arrayBuffer(),C=await WebAssembly.compile(B),E=await(await fetch(A)).text(),o=JSON.parse(E).compile_options.indexOf("wasm-e")!==-1;return{cfactory:0,code:new Uint8Array(B),module:C,json:E,poly:o}}catch(B){throw B}}static async loadDSPMixer(I,A){try{let g=null;return A?g=A.readFile(I,{encoding:"binary"}):g=await(await fetch(I)).arrayBuffer(),WebAssembly.compile(g)}catch(g){throw g}}static async createAsyncMonoDSPInstance(I){const A=await WebAssembly.instantiate(I.module,this.createWasmImport());return this.createMonoDSPInstanceAux(A,I.json)}static createSyncMonoDSPInstance(I){const A=new WebAssembly.Instance(I.module,this.createWasmImport());return this.createMonoDSPInstanceAux(A,I.json)}static async createAsyncPolyDSPInstance(I,A,g,B){const C=this.createMemoryAux(g,I,B),E=(await WebAssembly.instantiate(I.module,this.createWasmImport(C))).exports,N=new yg(E),D=this.createMixerAux(A,C);if(B){const M=(await WebAssembly.instantiate(B.module,this.createWasmImport(C))).exports,G=new yg(M);return{memory:C,voices:g,voiceAPI:N,effectAPI:G,mixerAPI:D,voiceJSON:I.json,effectJSON:B.json}}else return{memory:C,voices:g,voiceAPI:N,mixerAPI:D,voiceJSON:I.json}}static createSyncPolyDSPInstance(I,A,g,B){const C=this.createMemoryAux(g,I,B),E=new WebAssembly.Instance(I.module,this.createWasmImport(C)).exports,N=new yg(E),D=this.createMixerAux(A,C);if(B){const M=new WebAssembly.Instance(B.module,this.createWasmImport(C)).exports,G=new yg(M);return{memory:C,voices:g,voiceAPI:N,effectAPI:G,mixerAPI:D,voiceJSON:I.json,effectJSON:B.json}}else return{memory:C,voices:g,voiceAPI:N,mixerAPI:D,voiceJSON:I.json}}},JA=rc,KA=class{constructor(I,A){this.fOutputHandler=null,this.fComputeHandler=null,this.fCachedEvents=[],this.fBufferNum=0,this.fPlotHandler=null,this.fBufferSize=A,this.fInChannels=[],this.fOutChannels=[],this.gPtrSize=I,this.gSampleSize=I,this.fOutputsTimer=5,this.fInputsItems=[],this.fOutputsItems=[],this.fDescriptor=[],this.fPitchwheelLabel=[],this.fCtrlLabel=new Array(128).fill(null).map(()=>[]),this.fPathTable={},this.fProcessing=!1,this.fDestroyed=!1,this.fUICallback=g=>{if(g.type==="hbargraph"||g.type==="vbargraph")this.fOutputsItems.push(g.address),this.fPathTable[g.address]=g.index;else if(g.type==="vslider"||g.type==="hslider"||g.type==="button"||g.type==="checkbox"||g.type==="nentry"){if(this.fInputsItems.push(g.address),this.fPathTable[g.address]=g.index,this.fDescriptor.push(g),!g.meta)return;g.meta.forEach(B=>{const{midi:C}=B;if(!C)return;const Q=C.trim();if(Q==="pitchwheel")this.fPitchwheelLabel.push({path:g.address,min:g.min,max:g.max});else{const E=Q.match(/^ctrl\s(\d+)/);if(!E)return;this.fCtrlLabel[parseInt(E[1])].push({path:g.address,min:g.min,max:g.max})}})}}}static remap(I,A,g,B,C){return(I-A)/(g-A)*(C-B)+B}static parseUI(I,A){I.forEach(g=>this.parseGroup(g,A))}static parseGroup(I,A){I.items&&this.parseItems(I.items,A)}static parseItems(I,A){I.forEach(g=>this.parseItem(g,A))}static parseItem(I,A){I.type==="vgroup"||I.type==="hgroup"||I.type==="tgroup"?this.parseItems(I.items,A):A(I)}updateOutputs(){this.fOutputsItems.length>0&&this.fOutputHandler&&this.fOutputsTimer--===0&&(this.fOutputsTimer=5,this.fOutputsItems.forEach(I=>{var A;return(A=this.fOutputHandler)==null?void 0:A.call(this,I,this.getParamValue(I))}))}metadata(I){this.fJSONDsp.meta&&this.fJSONDsp.meta.forEach(A=>I(Object.keys(A)[0],A[Object.keys(A)[0]]))}compute(I,A){return!1}setOutputParamHandler(I){this.fOutputHandler=I}getOutputParamHandler(){return this.fOutputHandler}setComputeHandler(I){this.fComputeHandler=I}getComputeHandler(){return this.fComputeHandler}setPlotHandler(I){this.fPlotHandler=I}getPlotHandler(){return this.fPlotHandler}getNumInputs(){return-1}getNumOutputs(){return-1}midiMessage(I){this.fPlotHandler&&this.fCachedEvents.push({data:I,type:"midi"});const A=I[0]>>4,g=I[0]&15,B=I[1],C=I[2];if(A===11)return this.ctrlChange(g,B,C);if(A===14)return this.pitchWheel(g,C*128+B)}ctrlChange(I,A,g){this.fPlotHandler&&this.fCachedEvents.push({type:"ctrlChange",data:[I,A,g]}),this.fCtrlLabel[A].length&&this.fCtrlLabel[A].forEach(B=>{const{path:C}=B;this.setParamValue(C,KA.remap(g,0,127,B.min,B.max)),this.fOutputHandler&&this.fOutputHandler(C,this.getParamValue(C))})}pitchWheel(I,A){this.fPlotHandler&&this.fCachedEvents.push({type:"pitchWheel",data:[I,A]}),this.fPitchwheelLabel.forEach(g=>{this.setParamValue(g.path,KA.remap(A,0,16383,g.min,g.max)),this.fOutputHandler&&this.fOutputHandler(g.path,this.getParamValue(g.path))})}setParamValue(I,A){}getParamValue(I){return 0}getParams(){return this.fInputsItems}getMeta(){return this.fJSONDsp}getJSON(){return JSON.stringify(this.getMeta())}getUI(){return this.fJSONDsp.ui}getDescriptors(){return this.fDescriptor}start(){this.fProcessing=!0}stop(){this.fProcessing=!1}destroy(){this.fDestroyed=!0,this.fOutputHandler=null,this.fComputeHandler=null,this.fPlotHandler=null}},lg=class extends KA{constructor(I,A,g,B){super(g,B),this.fInstance=I,this.fJSONDsp=JSON.parse(this.fInstance.json),KA.parseUI(this.fJSONDsp.ui,this.fUICallback),this.initMemory(),this.fInstance.api.init(this.fDSP,A)}initMemory(){this.fDSP=0;const I=this.fJSONDsp.size;this.fAudioInputs=I,this.fAudioOutputs=this.fAudioInputs+this.getNumInputs()*this.gPtrSize;const A=this.fAudioOutputs+this.getNumOutputs()*this.gPtrSize,g=A+this.getNumInputs()*this.fBufferSize*this.gSampleSize,B=this.fInstance.memory.buffer,C=new Int32Array(B),Q=this.gSampleSize===4?new Float32Array(B):new Float64Array(B);if(this.getNumInputs()>0){for(let N=0;N<this.getNumInputs();N++)C[(this.fAudioInputs>>2)+N]=A+this.fBufferSize*this.gSampleSize*N;const E=C.subarray(this.fAudioInputs>>2,this.fAudioInputs+this.getNumInputs()*this.gPtrSize>>2);for(let N=0;N<this.getNumInputs();N++)this.fInChannels[N]=Q.subarray(E[N]>>Math.log2(this.gSampleSize),E[N]+this.fBufferSize*this.gSampleSize>>Math.log2(this.gSampleSize))}if(this.getNumOutputs()>0){for(let N=0;N<this.getNumOutputs();N++)C[(this.fAudioOutputs>>2)+N]=g+this.fBufferSize*this.gSampleSize*N;const E=C.subarray(this.fAudioOutputs>>2,this.fAudioOutputs+this.getNumOutputs()*this.gPtrSize>>2);for(let N=0;N<this.getNumOutputs();N++)this.fOutChannels[N]=Q.subarray(E[N]>>Math.log2(this.gSampleSize),E[N]+this.fBufferSize*this.gSampleSize>>Math.log2(this.gSampleSize))}}toString(){return`============== Mono Memory layout ==============
|
1537
1537
|
this.fBufferSize: ${this.fBufferSize}
|
1538
1538
|
this.fJSONDsp.size: ${this.fJSONDsp.size}
|
1539
1539
|
this.fAudioInputs: ${this.fAudioInputs}
|
@@ -1620,12 +1620,12 @@ const dependencies = {
|
|
1620
1620
|
`}get readOnly(){return this.facet(MM)}phrase(A,...g){for(let B of this.facet(CA.phrases))if(Object.prototype.hasOwnProperty.call(B,A)){A=B[A];break}return g.length&&(A=A.replace(/\$(\$|\d*)/g,(B,C)=>{if(C=="$")return"$";let Q=+(C||1);return!Q||Q>g.length?B:g[Q-1]})),A}languageDataAt(A,g,B=-1){let C=[];for(let Q of this.facet(CM))for(let E of Q(this,g,B))Object.prototype.hasOwnProperty.call(E,A)&&C.push(E[A]);return C}charCategorizer(A){return eY(this.languageDataAt("wordChars",A).join(""))}wordAt(A){let{text:g,from:B,length:C}=this.doc.lineAt(A),Q=this.charCategorizer(A),E=A-B,N=A-B;for(;E>0;){let D=pA(g,E,!1);if(Q(g.slice(D,E))!=YA.Word)break;E=D}for(;N<C;){let D=pA(g,N);if(Q(g.slice(N,D))!=YA.Word)break;N=D}return E==N?null:j.range(E+B,N+B)}}CA.allowMultipleSelections=QM,CA.tabSize=r.define({combine:I=>I.length?I[0]:4}),CA.lineSeparator=EM,CA.readOnly=MM,CA.phrases=r.define({compare(I,A){let g=Object.keys(I),B=Object.keys(A);return g.length==B.length&&g.every(C=>I[C]==A[C])}}),CA.languageData=CM,CA.changeFilter=DM,CA.transactionFilter=NM,CA.transactionExtender=oM,HC.reconfigure=IA.define();function Og(I,A,g={}){let B={};for(let C of I)for(let Q of Object.keys(C)){let E=C[Q],N=B[Q];if(N===void 0)B[Q]=E;else if(!(N===E||E===void 0))if(Object.hasOwnProperty.call(g,Q))B[Q]=g[Q](N,E);else throw new Error("Config merge conflict for field "+Q)}for(let C in A)B[C]===void 0&&(B[C]=A[C]);return B}class kI{eq(A){return this==A}range(A,g=A){return jE.create(A,g,this)}}kI.prototype.startSide=kI.prototype.endSide=0,kI.prototype.point=!1,kI.prototype.mapMode=uA.TrackDel;let jE=class jL{constructor(A,g,B){this.from=A,this.to=g,this.value=B}static create(A,g,B){return new jL(A,g,B)}};function mE(I,A){return I.from-A.from||I.value.startSide-A.value.startSide}class pE{constructor(A,g,B,C){this.from=A,this.to=g,this.value=B,this.maxPoint=C}get length(){return this.to[this.to.length-1]}findIndex(A,g,B,C=0){let Q=B?this.to:this.from;for(let E=C,N=Q.length;;){if(E==N)return E;let D=E+N>>1,o=Q[D]-A||(B?this.value[D].endSide:this.value[D].startSide)-g;if(D==E)return o>=0?E:N;o>=0?N=D:E=D+1}}between(A,g,B,C){for(let Q=this.findIndex(g,-1e9,!0),E=this.findIndex(B,1e9,!1,Q);Q<E;Q++)if(C(this.from[Q]+A,this.to[Q]+A,this.value[Q])===!1)return!1}map(A,g){let B=[],C=[],Q=[],E=-1,N=-1;for(let D=0;D<this.value.length;D++){let o=this.value[D],M=this.from[D]+A,G=this.to[D]+A,i,L;if(M==G){let Y=g.mapPos(M,o.startSide,o.mapMode);if(Y==null||(i=L=Y,o.startSide!=o.endSide&&(L=g.mapPos(M,o.endSide),L<i)))continue}else if(i=g.mapPos(M,o.startSide),L=g.mapPos(G,o.endSide),i>L||i==L&&o.startSide>0&&o.endSide<=0)continue;(L-i||o.endSide-o.startSide)<0||(E<0&&(E=i),o.point&&(N=Math.max(N,L-i)),B.push(o),C.push(i-E),Q.push(L-E))}return{mapped:B.length?new pE(C,Q,B,N):null,pos:E}}}class NA{constructor(A,g,B,C){this.chunkPos=A,this.chunk=g,this.nextLayer=B,this.maxPoint=C}static create(A,g,B,C){return new NA(A,g,B,C)}get length(){let A=this.chunk.length-1;return A<0?0:Math.max(this.chunkEnd(A),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let A=this.nextLayer.size;for(let g of this.chunk)A+=g.value.length;return A}chunkEnd(A){return this.chunkPos[A]+this.chunk[A].length}update(A){let{add:g=[],sort:B=!1,filterFrom:C=0,filterTo:Q=this.length}=A,E=A.filter;if(g.length==0&&!E)return this;if(B&&(g=g.slice().sort(mE)),this.isEmpty)return g.length?NA.of(g):this;let N=new SM(this,null,-1).goto(0),D=0,o=[],M=new ZI;for(;N.value||D<g.length;)if(D<g.length&&(N.from-g[D].from||N.startSide-g[D].value.startSide)>=0){let G=g[D++];M.addInner(G.from,G.to,G.value)||o.push(G)}else N.rangeIndex==1&&N.chunkIndex<this.chunk.length&&(D==g.length||this.chunkEnd(N.chunkIndex)<g[D].from)&&(!E||C>this.chunkEnd(N.chunkIndex)||Q<this.chunkPos[N.chunkIndex])&&M.addChunk(this.chunkPos[N.chunkIndex],this.chunk[N.chunkIndex])?N.nextChunk():((!E||C>N.to||Q<N.from||E(N.from,N.to,N.value))&&(M.addInner(N.from,N.to,N.value)||o.push(jE.create(N.from,N.to,N.value))),N.next());return M.finishInner(this.nextLayer.isEmpty&&!o.length?NA.empty:this.nextLayer.update({add:o,filter:E,filterFrom:C,filterTo:Q}))}map(A){if(A.empty||this.isEmpty)return this;let g=[],B=[],C=-1;for(let E=0;E<this.chunk.length;E++){let N=this.chunkPos[E],D=this.chunk[E],o=A.touchesRange(N,N+D.length);if(o===!1)C=Math.max(C,D.maxPoint),g.push(D),B.push(A.mapPos(N));else if(o===!0){let{mapped:M,pos:G}=D.map(N,A);M&&(C=Math.max(C,M.maxPoint),g.push(M),B.push(G))}}let Q=this.nextLayer.map(A);return g.length==0?Q:new NA(B,g,Q||NA.empty,C)}between(A,g,B){if(!this.isEmpty){for(let C=0;C<this.chunk.length;C++){let Q=this.chunkPos[C],E=this.chunk[C];if(g>=Q&&A<=Q+E.length&&E.between(Q,A-Q,g-Q,B)===!1)return}this.nextLayer.between(A,g,B)}}iter(A=0){return bB.from([this]).goto(A)}get isEmpty(){return this.nextLayer==this}static iter(A,g=0){return bB.from(A).goto(g)}static compare(A,g,B,C,Q=-1){let E=A.filter(G=>G.maxPoint>0||!G.isEmpty&&G.maxPoint>=Q),N=g.filter(G=>G.maxPoint>0||!G.isEmpty&&G.maxPoint>=Q),D=LM(E,N,B),o=new dB(E,D,Q),M=new dB(N,D,Q);B.iterGaps((G,i,L)=>cM(o,G,M,i,L,C)),B.empty&&B.length==0&&cM(o,0,M,0,0,C)}static eq(A,g,B=0,C){C==null&&(C=1e9-1);let Q=A.filter(M=>!M.isEmpty&&g.indexOf(M)<0),E=g.filter(M=>!M.isEmpty&&A.indexOf(M)<0);if(Q.length!=E.length)return!1;if(!Q.length)return!0;let N=LM(Q,E),D=new dB(Q,N,0).goto(B),o=new dB(E,N,0).goto(B);for(;;){if(D.to!=o.to||!nE(D.active,o.active)||D.point&&(!o.point||!D.point.eq(o.point)))return!1;if(D.to>C)return!0;D.next(),o.next()}}static spans(A,g,B,C,Q=-1){let E=new dB(A,null,Q).goto(g),N=g,D=E.openStart;for(;;){let o=Math.min(E.to,B);if(E.point){let M=E.activeForPoint(E.to),G=E.pointFrom<g?M.length+1:Math.min(M.length,D);C.point(N,o,E.point,M,G,E.pointRank),D=Math.min(E.openEnd(o),M.length)}else o>N&&(C.span(N,o,E.active,D),D=E.openEnd(o));if(E.to>B)return D+(E.point&&E.to>B?1:0);N=E.to,E.next()}}static of(A,g=!1){let B=new ZI;for(let C of A instanceof jE?[A]:g?zY(A):A)B.add(C.from,C.to,C.value);return B.finish()}}NA.empty=new NA([],[],null,-1);function zY(I){if(I.length>1)for(let A=I[0],g=1;g<I.length;g++){let B=I[g];if(mE(A,B)>0)return I.slice().sort(mE);A=B}return I}NA.empty.nextLayer=NA.empty;class ZI{finishChunk(A){this.chunks.push(new pE(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,A&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(A,g,B){this.addInner(A,g,B)||(this.nextLayer||(this.nextLayer=new ZI)).add(A,g,B)}addInner(A,g,B){let C=A-this.lastTo||B.startSide-this.last.endSide;if(C<=0&&(A-this.lastFrom||B.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return C<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=A),this.from.push(A-this.chunkStart),this.to.push(g-this.chunkStart),this.last=B,this.lastFrom=A,this.lastTo=g,this.value.push(B),B.point&&(this.maxPoint=Math.max(this.maxPoint,g-A)),!0)}addChunk(A,g){if((A-this.lastTo||g.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,g.maxPoint),this.chunks.push(g),this.chunkPos.push(A);let B=g.value.length-1;return this.last=g.value[B],this.lastFrom=g.from[B]+A,this.lastTo=g.to[B]+A,!0}finish(){return this.finishInner(NA.empty)}finishInner(A){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return A;let g=NA.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(A):A,this.setMaxPoint);return this.from=null,g}}function LM(I,A,g){let B=new Map;for(let Q of I)for(let E=0;E<Q.chunk.length;E++)Q.chunk[E].maxPoint<=0&&B.set(Q.chunk[E],Q.chunkPos[E]);let C=new Set;for(let Q of A)for(let E=0;E<Q.chunk.length;E++){let N=B.get(Q.chunk[E]);N!=null&&(g?g.mapPos(N):N)==Q.chunkPos[E]&&!(g!=null&&g.touchesRange(N,N+Q.chunk[E].length))&&C.add(Q.chunk[E])}return C}class SM{constructor(A,g,B,C=0){this.layer=A,this.skip=g,this.minPoint=B,this.rank=C}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(A,g=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(A,g,!1),this}gotoInner(A,g,B){for(;this.chunkIndex<this.layer.chunk.length;){let C=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(C)||this.layer.chunkEnd(this.chunkIndex)<A||C.maxPoint<this.minPoint))break;this.chunkIndex++,B=!1}if(this.chunkIndex<this.layer.chunk.length){let C=this.layer.chunk[this.chunkIndex].findIndex(A-this.layer.chunkPos[this.chunkIndex],g,!0);(!B||this.rangeIndex<C)&&this.setRangeIndex(C)}this.next()}forward(A,g){(this.to-A||this.endSide-g)<0&&this.gotoInner(A,g,!0)}next(){for(;;)if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}else{let A=this.layer.chunkPos[this.chunkIndex],g=this.layer.chunk[this.chunkIndex],B=A+g.from[this.rangeIndex];if(this.from=B,this.to=A+g.to[this.rangeIndex],this.value=g.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}setRangeIndex(A){if(A==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=A}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(A){return this.from-A.from||this.startSide-A.startSide||this.rank-A.rank||this.to-A.to||this.endSide-A.endSide}}class bB{constructor(A){this.heap=A}static from(A,g=null,B=-1){let C=[];for(let Q=0;Q<A.length;Q++)for(let E=A[Q];!E.isEmpty;E=E.nextLayer)E.maxPoint>=B&&C.push(new SM(E,g,B,Q));return C.length==1?C[0]:new bB(C)}get startSide(){return this.value?this.value.startSide:0}goto(A,g=-1e9){for(let B of this.heap)B.goto(A,g);for(let B=this.heap.length>>1;B>=0;B--)xE(this.heap,B);return this.next(),this}forward(A,g){for(let B of this.heap)B.forward(A,g);for(let B=this.heap.length>>1;B>=0;B--)xE(this.heap,B);(this.to-A||this.value.endSide-g)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let A=this.heap[0];this.from=A.from,this.to=A.to,this.value=A.value,this.rank=A.rank,A.value&&A.next(),xE(this.heap,0)}}}function xE(I,A){for(let g=I[A];;){let B=(A<<1)+1;if(B>=I.length)break;let C=I[B];if(B+1<I.length&&C.compare(I[B+1])>=0&&(C=I[B+1],B++),g.compare(C)<0)break;I[B]=g,I[A]=C,A=B}}class dB{constructor(A,g,B){this.minPoint=B,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=bB.from(A,g,B)}goto(A,g=-1e9){return this.cursor.goto(A,g),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=A,this.endSide=g,this.openStart=-1,this.next(),this}forward(A,g){for(;this.minActive>-1&&(this.activeTo[this.minActive]-A||this.active[this.minActive].endSide-g)<0;)this.removeActive(this.minActive);this.cursor.forward(A,g)}removeActive(A){TC(this.active,A),TC(this.activeTo,A),TC(this.activeRank,A),this.minActive=YM(this.active,this.activeTo)}addActive(A){let g=0,{value:B,to:C,rank:Q}=this.cursor;for(;g<this.activeRank.length&&this.activeRank[g]<=Q;)g++;eC(this.active,g,B),eC(this.activeTo,g,C),eC(this.activeRank,g,Q),A&&eC(A,g,this.cursor.from),this.minActive=YM(this.active,this.activeTo)}next(){let A=this.to,g=this.point;this.point=null;let B=this.openStart<0?[]:null;for(;;){let C=this.minActive;if(C>-1&&(this.activeTo[C]-this.cursor.from||this.active[C].endSide-this.cursor.startSide)<0){if(this.activeTo[C]>A){this.to=this.activeTo[C],this.endSide=this.active[C].endSide;break}this.removeActive(C),B&&TC(B,C)}else if(this.cursor.value)if(this.cursor.from>A){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let Q=this.cursor.value;if(!Q.point)this.addActive(B),this.cursor.next();else if(g&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to)this.cursor.next();else{this.point=Q,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=Q.endSide,this.cursor.next(),this.forward(this.to,this.endSide);break}}else{this.to=this.endSide=1e9;break}}if(B){this.openStart=0;for(let C=B.length-1;C>=0&&B[C]<A;C--)this.openStart++}}activeForPoint(A){if(!this.active.length)return this.active;let g=[];for(let B=this.active.length-1;B>=0&&!(this.activeRank[B]<this.pointRank);B--)(this.activeTo[B]>A||this.activeTo[B]==A&&this.active[B].endSide>=this.point.endSide)&&g.push(this.active[B]);return g.reverse()}openEnd(A){let g=0;for(let B=this.activeTo.length-1;B>=0&&this.activeTo[B]>A;B--)g++;return g}}function cM(I,A,g,B,C,Q){I.goto(A),g.goto(B);let E=B+C,N=B,D=B-A;for(;;){let o=I.to+D-g.to||I.endSide-g.endSide,M=o<0?I.to+D:g.to,G=Math.min(M,E);if(I.point||g.point?I.point&&g.point&&(I.point==g.point||I.point.eq(g.point))&&nE(I.activeForPoint(I.to),g.activeForPoint(g.to))||Q.comparePoint(N,G,I.point,g.point):G>N&&!nE(I.active,g.active)&&Q.compareRange(N,G,I.active,g.active),M>E)break;N=M,o<=0&&I.next(),o>=0&&g.next()}}function nE(I,A){if(I.length!=A.length)return!1;for(let g=0;g<I.length;g++)if(I[g]!=A[g]&&!I[g].eq(A[g]))return!1;return!0}function TC(I,A){for(let g=A,B=I.length-1;g<B;g++)I[g]=I[g+1];I.pop()}function eC(I,A,g){for(let B=I.length-1;B>=A;B--)I[B+1]=I[B];I[A]=g}function YM(I,A){let g=-1,B=1e9;for(let C=0;C<A.length;C++)(A[C]-B||I[C].endSide-I[g].endSide)<0&&(g=C,B=A[C]);return g}function JI(I,A,g=I.length){let B=0;for(let C=0;C<g;)I.charCodeAt(C)==9?(B+=A-B%A,C++):(B++,C=pA(I,C));return B}function WE(I,A,g,B){for(let C=0,Q=0;;){if(Q>=A)return C;if(C==I.length)break;Q+=I.charCodeAt(C)==9?g-Q%g:1,C=pA(I,C)}return B===!0?-1:I.length}const OE="ͼ",yM=typeof Symbol>"u"?"__"+OE:Symbol.for(OE),JE=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),wM=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class AI{constructor(A,g){this.rules=[];let{finish:B}=g||{};function C(E){return/^@/.test(E)?[E]:E.split(/,\s*/)}function Q(E,N,D,o){let M=[],G=/^@(\w+)\b/.exec(E[0]),i=G&&G[1]=="keyframes";if(G&&N==null)return D.push(E[0]+";");for(let L in N){let Y=N[L];if(/&/.test(L))Q(L.split(/,\s*/).map(w=>E.map(t=>w.replace(/&/,t))).reduce((w,t)=>w.concat(t)),Y,D);else if(Y&&typeof Y=="object"){if(!G)throw new RangeError("The value of a property ("+L+") should be a primitive value.");Q(C(L),Y,M,i)}else Y!=null&&M.push(L.replace(/_.*/,"").replace(/[A-Z]/g,w=>"-"+w.toLowerCase())+": "+Y+";")}(M.length||i)&&D.push((B&&!G&&!o?E.map(B):E).join(", ")+" {"+M.join(" ")+"}")}for(let E in A)Q(C(E),A[E],this.rules)}getRules(){return this.rules.join(`
|
1621
1621
|
`)}static newName(){let A=wM[yM]||1;return wM[yM]=A+1,OE+A.toString(36)}static mount(A,g,B){let C=A[JE],Q=B&&B.nonce;C?Q&&C.setNonce(Q):C=new FY(A,Q),C.mount(Array.isArray(g)?g:[g])}}let tM=new Map;class FY{constructor(A,g){let B=A.ownerDocument||A,C=B.defaultView;if(!A.head&&A.adoptedStyleSheets&&C.CSSStyleSheet){let Q=tM.get(B);if(Q)return A.adoptedStyleSheets=[Q.sheet,...A.adoptedStyleSheets],A[JE]=Q;this.sheet=new C.CSSStyleSheet,A.adoptedStyleSheets=[this.sheet,...A.adoptedStyleSheets],tM.set(B,this)}else{this.styleTag=B.createElement("style"),g&&this.styleTag.setAttribute("nonce",g);let Q=A.head||A;Q.insertBefore(this.styleTag,Q.firstChild)}this.modules=[],A[JE]=this}mount(A){let g=this.sheet,B=0,C=0;for(let Q=0;Q<A.length;Q++){let E=A[Q],N=this.modules.indexOf(E);if(N<C&&N>-1&&(this.modules.splice(N,1),C--,N=-1),N==-1){if(this.modules.splice(C++,0,E),g)for(let D=0;D<E.rules.length;D++)g.insertRule(E.rules[D],B++)}else{for(;C<N;)B+=this.modules[C++].rules.length;B+=E.rules.length,C++}}if(!g){let Q="";for(let E=0;E<this.modules.length;E++)Q+=this.modules[E].getRules()+`
|
1622
1622
|
`;this.styleTag.textContent=Q}}setNonce(A){this.styleTag&&this.styleTag.getAttribute("nonce")!=A&&this.styleTag.setAttribute("nonce",A)}}for(var gI={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},HB={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},jY=typeof navigator<"u"&&/Mac/.test(navigator.platform),mY=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),eA=0;eA<10;eA++)gI[48+eA]=gI[96+eA]=String(eA);for(var eA=1;eA<=24;eA++)gI[eA+111]="F"+eA;for(var eA=65;eA<=90;eA++)gI[eA]=String.fromCharCode(eA+32),HB[eA]=String.fromCharCode(eA);for(var uE in gI)HB.hasOwnProperty(uE)||(HB[uE]=gI[uE]);function pY(I){var A=jY&&I.metaKey&&I.shiftKey&&!I.ctrlKey&&!I.altKey||mY&&I.shiftKey&&I.key&&I.key.length==1||I.key=="Unidentified",g=!A&&I.key||(I.shiftKey?HB:gI)[I.keyCode]||I.key||"Unidentified";return g=="Esc"&&(g="Escape"),g=="Del"&&(g="Delete"),g=="Left"&&(g="ArrowLeft"),g=="Up"&&(g="ArrowUp"),g=="Right"&&(g="ArrowRight"),g=="Down"&&(g="ArrowDown"),g}function zC(I){let A;return I.nodeType==11?A=I.getSelection?I:I.ownerDocument:A=I,A.getSelection()}function vE(I,A){return A?I==A||I.contains(A.nodeType!=1?A.parentNode:A):!1}function xY(I){let A=I.activeElement;for(;A&&A.shadowRoot;)A=A.shadowRoot.activeElement;return A}function FC(I,A){if(!A.anchorNode)return!1;try{return vE(I,A.anchorNode)}catch{return!1}}function RB(I){return I.nodeType==3?hI(I,0,I.nodeValue.length).getClientRects():I.nodeType==1?I.getClientRects():[]}function jC(I,A,g,B){return g?sM(I,A,g,B,-1)||sM(I,A,g,B,1):!1}function mC(I){for(var A=0;;A++)if(I=I.previousSibling,!I)return A}function sM(I,A,g,B,C){for(;;){if(I==g&&A==B)return!0;if(A==(C<0?0:II(I))){if(I.nodeName=="DIV")return!1;let Q=I.parentNode;if(!Q||Q.nodeType!=1)return!1;A=mC(I)+(C<0?0:1),I=Q}else if(I.nodeType==1){if(I=I.childNodes[A+(C<0?-1:0)],I.nodeType==1&&I.contentEditable=="false")return!1;A=C<0?II(I):0}else return!1}}function II(I){return I.nodeType==3?I.nodeValue.length:I.childNodes.length}function VE(I,A){let g=A?I.left:I.right;return{left:g,right:g,top:I.top,bottom:I.bottom}}function nY(I){return{left:0,right:I.innerWidth,top:0,bottom:I.innerHeight}}function WY(I,A,g,B,C,Q,E,N){let D=I.ownerDocument,o=D.defaultView||window;for(let M=I,G=!1;M&&!G;)if(M.nodeType==1){let i,L=M==D.body,Y=1,w=1;if(L)i=nY(o);else{if(/^(fixed|sticky)$/.test(getComputedStyle(M).position)&&(G=!0),M.scrollHeight<=M.clientHeight&&M.scrollWidth<=M.clientWidth){M=M.assignedSlot||M.parentNode;continue}let h=M.getBoundingClientRect();Y=h.width/M.offsetWidth,w=h.height/M.offsetHeight,i={left:h.left,right:h.left+M.clientWidth*Y,top:h.top,bottom:h.top+M.clientHeight*w}}let t=0,Z=0;if(C=="nearest")A.top<i.top?(Z=-(i.top-A.top+E),g>0&&A.bottom>i.bottom+Z&&(Z=A.bottom-i.bottom+Z+E)):A.bottom>i.bottom&&(Z=A.bottom-i.bottom+E,g<0&&A.top-Z<i.top&&(Z=-(i.top+Z-A.top+E)));else{let h=A.bottom-A.top,K=i.bottom-i.top;Z=(C=="center"&&h<=K?A.top+h/2-K/2:C=="start"||C=="center"&&g<0?A.top-E:A.bottom-K+E)-i.top}if(B=="nearest"?A.left<i.left?(t=-(i.left-A.left+Q),g>0&&A.right>i.right+t&&(t=A.right-i.right+t+Q)):A.right>i.right&&(t=A.right-i.right+Q,g<0&&A.left<i.left+t&&(t=-(i.left+t-A.left+Q))):t=(B=="center"?A.left+(A.right-A.left)/2-(i.right-i.left)/2:B=="start"==N?A.left-Q:A.right-(i.right-i.left)+Q)-i.left,t||Z)if(L)o.scrollBy(t,Z);else{let h=0,K=0;if(Z){let y=M.scrollTop;M.scrollTop+=Z/w,K=(M.scrollTop-y)*w}if(t){let y=M.scrollLeft;M.scrollLeft+=t/Y,h=(M.scrollLeft-y)*Y}A={left:A.left-h,top:A.top-K,right:A.right-h,bottom:A.bottom-K},h&&Math.abs(h-t)<1&&(B="nearest"),K&&Math.abs(K-Z)<1&&(C="nearest")}if(L)break;M=M.assignedSlot||M.parentNode}else if(M.nodeType==11)M=M.host;else break}function OY(I){let A=I.ownerDocument;for(let g=I.parentNode;g&&g!=A.body;)if(g.nodeType==1){if(g.scrollHeight>g.clientHeight||g.scrollWidth>g.clientWidth)return g;g=g.assignedSlot||g.parentNode}else if(g.nodeType==11)g=g.host;else break;return null}class JY{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(A){return this.anchorNode==A.anchorNode&&this.anchorOffset==A.anchorOffset&&this.focusNode==A.focusNode&&this.focusOffset==A.focusOffset}setRange(A){let{anchorNode:g,focusNode:B}=A;this.set(g,Math.min(A.anchorOffset,g?II(g):0),B,Math.min(A.focusOffset,B?II(B):0))}set(A,g,B,C){this.anchorNode=A,this.anchorOffset=g,this.focusNode=B,this.focusOffset=C}}let uI=null;function KM(I){if(I.setActive)return I.setActive();if(uI)return I.focus(uI);let A=[];for(let g=I;g&&(A.push(g,g.scrollTop,g.scrollLeft),g!=g.ownerDocument);g=g.parentNode);if(I.focus(uI==null?{get preventScroll(){return uI={preventScroll:!0},!0}}:void 0),!uI){uI=!1;for(let g=0;g<A.length;){let B=A[g++],C=A[g++],Q=A[g++];B.scrollTop!=C&&(B.scrollTop=C),B.scrollLeft!=Q&&(B.scrollLeft=Q)}}}let lM;function hI(I,A,g=A){let B=lM||(lM=document.createRange());return B.setEnd(I,g),B.setStart(I,A),B}function vI(I,A,g){let B={key:A,code:A,keyCode:g,which:g,cancelable:!0},C=new KeyboardEvent("keydown",B);C.synthetic=!0,I.dispatchEvent(C);let Q=new KeyboardEvent("keyup",B);return Q.synthetic=!0,I.dispatchEvent(Q),C.defaultPrevented||Q.defaultPrevented}function uY(I){for(;I;){if(I&&(I.nodeType==9||I.nodeType==11&&I.host))return I;I=I.assignedSlot||I.parentNode}return null}function kM(I){for(;I.attributes.length;)I.removeAttributeNode(I.attributes[0])}function vY(I,A){let g=A.focusNode,B=A.focusOffset;if(!g||A.anchorNode!=g||A.anchorOffset!=B)return!1;for(B=Math.min(B,II(g));;)if(B){if(g.nodeType!=1)return!1;let C=g.childNodes[B-1];C.contentEditable=="false"?B--:(g=C,B=II(g))}else{if(g==I)return!0;B=mC(g),g=g.parentNode}}function ZM(I){return I.scrollTop>Math.max(1,I.scrollHeight-I.clientHeight-4)}class WA{constructor(A,g,B=!0){this.node=A,this.offset=g,this.precise=B}static before(A,g){return new WA(A.parentNode,mC(A),g)}static after(A,g){return new WA(A.parentNode,mC(A)+1,g)}}const XE=[];class SA{constructor(){this.parent=null,this.dom=null,this.flags=2}get overrideDOMText(){return null}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(A){let g=this.posAtStart;for(let B of this.children){if(B==A)return g;g+=B.length+B.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(A){return this.posBefore(A)+A.length}sync(A,g){if(this.flags&2){let B=this.dom,C=null,Q;for(let E of this.children){if(E.flags&7){if(!E.dom&&(Q=C?C.nextSibling:B.firstChild)){let N=SA.get(Q);(!N||!N.parent&&N.canReuseDOM(E))&&E.reuseDOM(Q)}E.sync(A,g),E.flags&=-8}if(Q=C?C.nextSibling:B.firstChild,g&&!g.written&&g.node==B&&Q!=E.dom&&(g.written=!0),E.dom.parentNode==B)for(;Q&&Q!=E.dom;)Q=hM(Q);else B.insertBefore(E.dom,Q);C=E.dom}for(Q=C?C.nextSibling:B.firstChild,Q&&g&&g.node==B&&(g.written=!0);Q;)Q=hM(Q)}else if(this.flags&1)for(let B of this.children)B.flags&7&&(B.sync(A,g),B.flags&=-8)}reuseDOM(A){}localPosFromDOM(A,g){let B;if(A==this.dom)B=this.dom.childNodes[g];else{let C=II(A)==0?0:g==0?-1:1;for(;;){let Q=A.parentNode;if(Q==this.dom)break;C==0&&Q.firstChild!=Q.lastChild&&(A==Q.firstChild?C=-1:C=1),A=Q}C<0?B=A:B=A.nextSibling}if(B==this.dom.firstChild)return 0;for(;B&&!SA.get(B);)B=B.nextSibling;if(!B)return this.length;for(let C=0,Q=0;;C++){let E=this.children[C];if(E.dom==B)return Q;Q+=E.length+E.breakAfter}}domBoundsAround(A,g,B=0){let C=-1,Q=-1,E=-1,N=-1;for(let D=0,o=B,M=B;D<this.children.length;D++){let G=this.children[D],i=o+G.length;if(o<A&&i>g)return G.domBoundsAround(A,g,o);if(i>=A&&C==-1&&(C=D,Q=o),o>g&&G.dom.parentNode==this.dom){E=D,N=M;break}M=i,o=i+G.breakAfter}return{from:Q,to:N<0?B+this.length:N,startDOM:(C?this.children[C-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:E<this.children.length&&E>=0?this.children[E].dom:null}}markDirty(A=!1){this.flags|=2,this.markParentsDirty(A)}markParentsDirty(A){for(let g=this.parent;g;g=g.parent){if(A&&(g.flags|=2),g.flags&1)return;g.flags|=1,A=!1}}setParent(A){this.parent!=A&&(this.parent=A,this.flags&7&&this.markParentsDirty(!0))}setDOM(A){this.dom!=A&&(this.dom&&(this.dom.cmView=null),this.dom=A,A.cmView=this)}get rootView(){for(let A=this;;){let g=A.parent;if(!g)return A;A=g}}replaceChildren(A,g,B=XE){this.markDirty();for(let C=A;C<g;C++){let Q=this.children[C];Q.parent==this&&Q.destroy()}this.children.splice(A,g-A,...B);for(let C=0;C<B.length;C++)B[C].setParent(this)}ignoreMutation(A){return!1}ignoreEvent(A){return!1}childCursor(A=this.length){return new aM(this.children,A,this.children.length)}childPos(A,g=1){return this.childCursor().findPos(A,g)}toString(){let A=this.constructor.name.replace("View","");return A+(this.children.length?"("+this.children.join()+")":this.length?"["+(A=="Text"?this.text:this.length)+"]":"")+(this.breakAfter?"#":"")}static get(A){return A.cmView}get isEditable(){return!0}get isWidget(){return!1}get isHidden(){return!1}merge(A,g,B,C,Q,E){return!1}become(A){return!1}canReuseDOM(A){return A.constructor==this.constructor&&!((this.flags|A.flags)&8)}getSide(){return 0}destroy(){this.parent=null}}SA.prototype.breakAfter=0;function hM(I){let A=I.nextSibling;return I.parentNode.removeChild(I),A}class aM{constructor(A,g,B){this.children=A,this.pos=g,this.i=B,this.off=0}findPos(A,g=1){for(;;){if(A>this.pos||A==this.pos&&(g>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=A-this.pos,this;let B=this.children[--this.i];this.pos-=B.length+B.breakAfter}}}function bM(I,A,g,B,C,Q,E,N,D){let{children:o}=I,M=o.length?o[A]:null,G=Q.length?Q[Q.length-1]:null,i=G?G.breakAfter:E;if(!(A==B&&M&&!E&&!i&&Q.length<2&&M.merge(g,C,Q.length?G:null,g==0,N,D))){if(B<o.length){let L=o[B];L&&C<L.length?(A==B&&(L=L.split(C),C=0),!i&&G&&L.merge(0,C,G,!0,0,D)?Q[Q.length-1]=L:(C&&L.merge(0,C,null,!1,0,D),Q.push(L))):L!=null&&L.breakAfter&&(G?G.breakAfter=1:E=1),B++}for(M&&(M.breakAfter=E,g>0&&(!E&&Q.length&&M.merge(g,M.length,Q[0],!1,N,0)?M.breakAfter=Q.shift().breakAfter:(g<M.length||M.children.length&&M.children[M.children.length-1].length==0)&&M.merge(g,M.length,null,!1,N,0),A++));A<B&&Q.length;)if(o[B-1].become(Q[Q.length-1]))B--,Q.pop(),D=Q.length?0:N;else if(o[A].become(Q[0]))A++,Q.shift(),N=Q.length?0:D;else break;!Q.length&&A&&B<o.length&&!o[A-1].breakAfter&&o[B].merge(0,0,o[A-1],!1,N,D)&&A--,(A<B||Q.length)&&I.replaceChildren(A,B,Q)}}function dM(I,A,g,B,C,Q){let E=I.childCursor(),{i:N,off:D}=E.findPos(g,1),{i:o,off:M}=E.findPos(A,-1),G=A-g;for(let i of B)G+=i.length;I.length+=G,bM(I,o,M,N,D,B,0,C,Q)}let Ag=typeof navigator<"u"?navigator:{userAgent:"",vendor:"",platform:""},rE=typeof document<"u"?document:{documentElement:{style:{}}};const fE=/Edge\/(\d+)/.exec(Ag.userAgent),HM=/MSIE \d/.test(Ag.userAgent),PE=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Ag.userAgent),pC=!!(HM||PE||fE),RM=!pC&&/gecko\/(\d+)/i.test(Ag.userAgent),qE=!pC&&/Chrome\/(\d+)/.exec(Ag.userAgent),UM="webkitFontSmoothing"in rE.documentElement.style,TM=!pC&&/Apple Computer/.test(Ag.vendor),eM=TM&&(/Mobile\/\w+/.test(Ag.userAgent)||Ag.maxTouchPoints>2);var X={mac:eM||/Mac/.test(Ag.platform),windows:/Win/.test(Ag.platform),linux:/Linux|X11/.test(Ag.platform),ie:pC,ie_version:HM?rE.documentMode||6:PE?+PE[1]:fE?+fE[1]:0,gecko:RM,gecko_version:RM?+(/Firefox\/(\d+)/.exec(Ag.userAgent)||[0,0])[1]:0,chrome:!!qE,chrome_version:qE?+qE[1]:0,ios:eM,android:/Android\b/.test(Ag.userAgent),webkit:UM,safari:TM,webkit_version:UM?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:rE.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};const VY=256;class Jg extends SA{constructor(A){super(),this.text=A}get length(){return this.text.length}createDOM(A){this.setDOM(A||document.createTextNode(this.text))}sync(A,g){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(g&&g.node==this.dom&&(g.written=!0),this.dom.nodeValue=this.text)}reuseDOM(A){A.nodeType==3&&this.createDOM(A)}merge(A,g,B){return this.flags&8||B&&(!(B instanceof Jg)||this.length-(g-A)+B.length>VY||B.flags&8)?!1:(this.text=this.text.slice(0,A)+(B?B.text:"")+this.text.slice(g),this.markDirty(),!0)}split(A){let g=new Jg(this.text.slice(A));return this.text=this.text.slice(0,A),this.markDirty(),g.flags|=this.flags&8,g}localPosFromDOM(A,g){return A==this.dom?g:g?this.text.length:0}domAtPos(A){return new WA(this.dom,A)}domBoundsAround(A,g,B){return{from:B,to:B+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(A,g){return XY(this.dom,A,g)}}class ug extends SA{constructor(A,g=[],B=0){super(),this.mark=A,this.children=g,this.length=B;for(let C of g)C.setParent(this)}setAttrs(A){if(kM(A),this.mark.class&&(A.className=this.mark.class),this.mark.attrs)for(let g in this.mark.attrs)A.setAttribute(g,this.mark.attrs[g]);return A}canReuseDOM(A){return super.canReuseDOM(A)&&!((this.flags|A.flags)&8)}reuseDOM(A){A.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(A),this.flags|=6)}sync(A,g){this.dom?this.flags&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(A,g)}merge(A,g,B,C,Q,E){return B&&(!(B instanceof ug&&B.mark.eq(this.mark))||A&&Q<=0||g<this.length&&E<=0)?!1:(dM(this,A,g,B?B.children:[],Q-1,E-1),this.markDirty(),!0)}split(A){let g=[],B=0,C=-1,Q=0;for(let N of this.children){let D=B+N.length;D>A&&g.push(B<A?N.split(A-B):N),C<0&&B>=A&&(C=Q),B=D,Q++}let E=this.length-A;return this.length=A,C>-1&&(this.children.length=C,this.markDirty()),new ug(this.mark,g,E)}domAtPos(A){return zM(this,A)}coordsAt(A,g){return jM(this,A,g)}}function XY(I,A,g){let B=I.nodeValue.length;A>B&&(A=B);let C=A,Q=A,E=0;A==0&&g<0||A==B&&g>=0?X.chrome||X.gecko||(A?(C--,E=1):Q<B&&(Q++,E=-1)):g<0?C--:Q<B&&Q++;let N=hI(I,C,Q).getClientRects();if(!N.length)return null;let D=N[(E?E<0:g>=0)?0:N.length-1];return X.safari&&!E&&D.width==0&&(D=Array.prototype.find.call(N,o=>o.width)||D),E?VE(D,E<0):D||null}class BI extends SA{static create(A,g,B){return new BI(A,g,B)}constructor(A,g,B){super(),this.widget=A,this.length=g,this.side=B,this.prevWidget=null}split(A){let g=BI.create(this.widget,this.length-A,this.side);return this.length-=A,g}sync(A){(!this.dom||!this.widget.updateDOM(this.dom,A))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(A)),this.dom.contentEditable="false")}getSide(){return this.side}merge(A,g,B,C,Q,E){return B&&(!(B instanceof BI)||!this.widget.compare(B.widget)||A>0&&Q<=0||g<this.length&&E<=0)?!1:(this.length=A+(B?B.length:0)+(this.length-g),!0)}become(A){return A instanceof BI&&A.side==this.side&&this.widget.constructor==A.widget.constructor?(this.widget.compare(A.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=A.widget,this.length=A.length,!0):!1}ignoreMutation(){return!0}ignoreEvent(A){return this.widget.ignoreEvent(A)}get overrideDOMText(){if(this.length==0)return EA.empty;let A=this;for(;A.parent;)A=A.parent;let{view:g}=A,B=g&&g.state.doc,C=this.posAtStart;return B?B.slice(C,C+this.length):EA.empty}domAtPos(A){return(this.length?A==0:this.side>0)?WA.before(this.dom):WA.after(this.dom,A==this.length)}domBoundsAround(){return null}coordsAt(A,g){let B=this.widget.coordsAt(this.dom,A,g);if(B)return B;let C=this.dom.getClientRects(),Q=null;if(!C.length)return null;let E=this.side?this.side<0:A>0;for(let N=E?C.length-1:0;Q=C[N],!(A>0?N==0:N==C.length-1||Q.top<Q.bottom);N+=E?-1:1);return VE(Q,!E)}get isEditable(){return!1}get isWidget(){return!0}get isHidden(){return this.widget.isHidden}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}}class VI extends SA{constructor(A){super(),this.side=A}get length(){return 0}merge(){return!1}become(A){return A instanceof VI&&A.side==this.side}split(){return new VI(this.side)}sync(){if(!this.dom){let A=document.createElement("img");A.className="cm-widgetBuffer",A.setAttribute("aria-hidden","true"),this.setDOM(A)}}getSide(){return this.side}domAtPos(A){return this.side>0?WA.before(this.dom):WA.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(A){return this.dom.getBoundingClientRect()}get overrideDOMText(){return EA.empty}get isHidden(){return!0}}Jg.prototype.children=BI.prototype.children=VI.prototype.children=XE;function zM(I,A){let g=I.dom,{children:B}=I,C=0;for(let Q=0;C<B.length;C++){let E=B[C],N=Q+E.length;if(!(N==Q&&E.getSide()<=0)){if(A>Q&&A<N&&E.dom.parentNode==g)return E.domAtPos(A-Q);if(A<=Q)break;Q=N}}for(let Q=C;Q>0;Q--){let E=B[Q-1];if(E.dom.parentNode==g)return E.domAtPos(E.length)}for(let Q=C;Q<B.length;Q++){let E=B[Q];if(E.dom.parentNode==g)return E.domAtPos(0)}return new WA(g,0)}function FM(I,A,g){let B,{children:C}=I;g>0&&A instanceof ug&&C.length&&(B=C[C.length-1])instanceof ug&&B.mark.eq(A.mark)?FM(B,A.children[0],g-1):(C.push(A),A.setParent(I)),I.length+=A.length}function jM(I,A,g){let B=null,C=-1,Q=null,E=-1;function N(o,M){for(let G=0,i=0;G<o.children.length&&i<=M;G++){let L=o.children[G],Y=i+L.length;Y>=M&&(L.children.length?N(L,M-i):(!Q||Q.isHidden&&g>0)&&(Y>M||i==Y&&L.getSide()>0)?(Q=L,E=M-i):(i<M||i==Y&&L.getSide()<0&&!L.isHidden)&&(B=L,C=M-i)),i=Y}}N(I,A);let D=(g<0?B:Q)||B||Q;return D?D.coordsAt(Math.max(0,D==B?C:E),g):rY(I)}function rY(I){let A=I.dom.lastChild;if(!A)return I.dom.getBoundingClientRect();let g=RB(A);return g[g.length-1]||null}function _E(I,A){for(let g in I)g=="class"&&A.class?A.class+=" "+I.class:g=="style"&&A.style?A.style+=";"+I.style:A[g]=I[g];return A}const mM=Object.create(null);function $E(I,A,g){if(I==A)return!0;I||(I=mM),A||(A=mM);let B=Object.keys(I),C=Object.keys(A);if(B.length-(g&&B.indexOf(g)>-1?1:0)!=C.length-(g&&C.indexOf(g)>-1?1:0))return!1;for(let Q of B)if(Q!=g&&(C.indexOf(Q)==-1||I[Q]!==A[Q]))return!1;return!0}function AD(I,A,g){let B=!1;if(A)for(let C in A)g&&C in g||(B=!0,C=="style"?I.style.cssText="":I.removeAttribute(C));if(g)for(let C in g)A&&A[C]==g[C]||(B=!0,C=="style"?I.style.cssText=g[C]:I.setAttribute(C,g[C]));return B}function fY(I){let A=Object.create(null);for(let g=0;g<I.attributes.length;g++){let B=I.attributes[g];A[B.name]=B.value}return A}class XI{eq(A){return!1}updateDOM(A,g){return!1}compare(A){return this==A||this.constructor==A.constructor&&this.eq(A)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(A){return!0}coordsAt(A,g,B){return null}get isHidden(){return!1}destroy(A){}}var yA=function(I){return I[I.Text=0]="Text",I[I.WidgetBefore=1]="WidgetBefore",I[I.WidgetAfter=2]="WidgetAfter",I[I.WidgetRange=3]="WidgetRange",I}(yA||(yA={}));class AA extends kI{constructor(A,g,B,C){super(),this.startSide=A,this.endSide=g,this.widget=B,this.spec=C}get heightRelevant(){return!1}static mark(A){return new UB(A)}static widget(A){let g=Math.max(-1e4,Math.min(1e4,A.side||0)),B=!!A.block;return g+=B&&!A.inlineOrder?g>0?3e8:-4e8:g>0?1e8:-1e8,new CI(A,g,g,B,A.widget||null,!1)}static replace(A){let g=!!A.block,B,C;if(A.isBlockGap)B=-5e8,C=4e8;else{let{start:Q,end:E}=pM(A,g);B=(Q?g?-3e8:-1:5e8)-1,C=(E?g?2e8:1:-6e8)+1}return new CI(A,B,C,g,A.widget||null,!0)}static line(A){return new TB(A)}static set(A,g=!1){return NA.of(A,g)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}AA.none=NA.empty;class UB extends AA{constructor(A){let{start:g,end:B}=pM(A);super(g?-1:5e8,B?1:-6e8,null,A),this.tagName=A.tagName||"span",this.class=A.class||"",this.attrs=A.attributes||null}eq(A){var g,B;return this==A||A instanceof UB&&this.tagName==A.tagName&&(this.class||((g=this.attrs)===null||g===void 0?void 0:g.class))==(A.class||((B=A.attrs)===null||B===void 0?void 0:B.class))&&$E(this.attrs,A.attrs,"class")}range(A,g=A){if(A>=g)throw new RangeError("Mark decorations may not be empty");return super.range(A,g)}}UB.prototype.point=!1;class TB extends AA{constructor(A){super(-2e8,-2e8,null,A)}eq(A){return A instanceof TB&&this.spec.class==A.spec.class&&$E(this.spec.attributes,A.spec.attributes)}range(A,g=A){if(g!=A)throw new RangeError("Line decoration ranges must be zero-length");return super.range(A,g)}}TB.prototype.mapMode=uA.TrackBefore,TB.prototype.point=!0;class CI extends AA{constructor(A,g,B,C,Q,E){super(g,B,Q,A),this.block=C,this.isReplace=E,this.mapMode=C?g<=0?uA.TrackBefore:uA.TrackAfter:uA.TrackDel}get type(){return this.startSide<this.endSide?yA.WidgetRange:this.startSide<=0?yA.WidgetBefore:yA.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(A){return A instanceof CI&&PY(this.widget,A.widget)&&this.block==A.block&&this.startSide==A.startSide&&this.endSide==A.endSide}range(A,g=A){if(this.isReplace&&(A>g||A==g&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&g!=A)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(A,g)}}CI.prototype.point=!0;function pM(I,A=!1){let{inclusiveStart:g,inclusiveEnd:B}=I;return g==null&&(g=I.inclusive),B==null&&(B=I.inclusive),{start:g??A,end:B??A}}function PY(I,A){return I==A||!!(I&&A&&I.compare(A))}function gD(I,A,g,B=0){let C=g.length-1;C>=0&&g[C]+B>=I?g[C]=Math.max(g[C],A):g.push(I,A)}class zA extends SA{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(A,g,B,C,Q,E){if(B){if(!(B instanceof zA))return!1;this.dom||B.transferDOM(this)}return C&&this.setDeco(B?B.attrs:null),dM(this,A,g,B?B.children:[],Q,E),!0}split(A){let g=new zA;if(g.breakAfter=this.breakAfter,this.length==0)return g;let{i:B,off:C}=this.childPos(A);C&&(g.append(this.children[B].split(C),0),this.children[B].merge(C,this.children[B].length,null,!1,0,0),B++);for(let Q=B;Q<this.children.length;Q++)g.append(this.children[Q],0);for(;B>0&&this.children[B-1].length==0;)this.children[--B].destroy();return this.children.length=B,this.markDirty(),this.length=A,g}transferDOM(A){this.dom&&(this.markDirty(),A.setDOM(this.dom),A.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(A){$E(this.attrs,A)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=A)}append(A,g){FM(this,A,g)}addLineDeco(A){let g=A.spec.attributes,B=A.spec.class;g&&(this.attrs=_E(g,this.attrs||{})),B&&(this.attrs=_E({class:B},this.attrs||{}))}domAtPos(A){return zM(this,A)}reuseDOM(A){A.nodeName=="DIV"&&(this.setDOM(A),this.flags|=6)}sync(A,g){var B;this.dom?this.flags&4&&(kM(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(AD(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(A,g);let C=this.dom.lastChild;for(;C&&SA.get(C)instanceof ug;)C=C.lastChild;if(!C||!this.length||C.nodeName!="BR"&&((B=SA.get(C))===null||B===void 0?void 0:B.isEditable)==!1&&(!X.ios||!this.children.some(Q=>Q instanceof Jg))){let Q=document.createElement("BR");Q.cmIgnore=!0,this.dom.appendChild(Q)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let A=0,g;for(let B of this.children){if(!(B instanceof Jg)||/[^ -~]/.test(B.text))return null;let C=RB(B.dom);if(C.length!=1)return null;A+=C[0].width,g=C[0].height}return A?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:A/this.length,textHeight:g}:null}coordsAt(A,g){let B=jM(this,A,g);if(!this.children.length&&B&&this.parent){let{heightOracle:C}=this.parent.view.viewState,Q=B.bottom-B.top;if(Math.abs(Q-C.lineHeight)<2&&C.textHeight<Q){let E=(Q-C.textHeight)/2;return{top:B.top+E,bottom:B.bottom-E,left:B.left,right:B.left}}}return B}become(A){return!1}get type(){return yA.Text}static find(A,g){for(let B=0,C=0;B<A.children.length;B++){let Q=A.children[B],E=C+Q.length;if(E>=g){if(Q instanceof zA)return Q;if(E>g)break}C=E+Q.breakAfter}return null}}class aI extends SA{constructor(A,g,B){super(),this.widget=A,this.length=g,this.type=B,this.breakAfter=0,this.prevWidget=null}merge(A,g,B,C,Q,E){return B&&(!(B instanceof aI)||!this.widget.compare(B.widget)||A>0&&Q<=0||g<this.length&&E<=0)?!1:(this.length=A+(B?B.length:0)+(this.length-g),!0)}domAtPos(A){return A==0?WA.before(this.dom):WA.after(this.dom,A==this.length)}split(A){let g=this.length-A;this.length=A;let B=new aI(this.widget,g,this.type);return B.breakAfter=this.breakAfter,B}get children(){return XE}sync(A){(!this.dom||!this.widget.updateDOM(this.dom,A))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(A)),this.dom.contentEditable="false")}get overrideDOMText(){return this.parent?this.parent.view.state.doc.slice(this.posAtStart,this.posAtEnd):EA.empty}domBoundsAround(){return null}become(A){return A instanceof aI&&A.widget.constructor==this.widget.constructor?(A.widget.compare(this.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=A.widget,this.length=A.length,this.type=A.type,this.breakAfter=A.breakAfter,!0):!1}ignoreMutation(){return!0}ignoreEvent(A){return this.widget.ignoreEvent(A)}get isEditable(){return!1}get isWidget(){return!0}coordsAt(A,g){return this.widget.coordsAt(this.dom,A,g)}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}}class eB{constructor(A,g,B,C){this.doc=A,this.pos=g,this.end=B,this.disallowBlockEffectsFor=C,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=A.iter(),this.skip=g}posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let A=this.content[this.content.length-1];return!A.breakAfter&&!(A instanceof aI&&A.type==yA.WidgetBefore)}getLine(){return this.curLine||(this.content.push(this.curLine=new zA),this.atCursorPos=!0),this.curLine}flushBuffer(A=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(xC(new VI(-1),A),A.length),this.pendingBuffer=0)}addBlockWidget(A){this.flushBuffer(),this.curLine=null,this.content.push(A)}finish(A){this.pendingBuffer&&A<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,this.posCovered()||this.getLine()}buildText(A,g,B){for(;A>0;){if(this.textOff==this.text.length){let{value:Q,lineBreak:E,done:N}=this.cursor.next(this.skip);if(this.skip=0,N)throw new Error("Ran out of text content when drawing inline views");if(E){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,A--;continue}else this.text=Q,this.textOff=0}let C=Math.min(this.text.length-this.textOff,A,512);this.flushBuffer(g.slice(g.length-B)),this.getLine().append(xC(new Jg(this.text.slice(this.textOff,this.textOff+C)),g),B),this.atCursorPos=!0,this.textOff+=C,A-=C,B=0}}span(A,g,B,C){this.buildText(g-A,B,C),this.pos=g,this.openStart<0&&(this.openStart=C)}point(A,g,B,C,Q,E){if(this.disallowBlockEffectsFor[E]&&B instanceof CI){if(B.block)throw new RangeError("Block decorations may not be specified via plugins");if(g>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let N=g-A;if(B instanceof CI)if(B.block){let{type:D}=B;D==yA.WidgetAfter&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new aI(B.widget||new xM("div"),N,D))}else{let D=BI.create(B.widget||new xM("span"),N,N?0:B.startSide),o=this.atCursorPos&&!D.isEditable&&Q<=C.length&&(A<g||B.startSide>0),M=!D.isEditable&&(A<g||Q>C.length||B.startSide<=0),G=this.getLine();this.pendingBuffer==2&&!o&&!D.isEditable&&(this.pendingBuffer=0),this.flushBuffer(C),o&&(G.append(xC(new VI(1),C),Q),Q=C.length+Math.max(0,Q-C.length)),G.append(xC(D,C),Q),this.atCursorPos=M,this.pendingBuffer=M?A<g||Q>C.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=C.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(B);N&&(this.textOff+N<=this.text.length?this.textOff+=N:(this.skip+=N-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=g),this.openStart<0&&(this.openStart=Q)}static build(A,g,B,C,Q){let E=new eB(A,g,B,Q);return E.openEnd=NA.spans(C,g,B,E),E.openStart<0&&(E.openStart=E.openEnd),E.finish(E.openEnd),E}}function xC(I,A){for(let g of A)I=new ug(g,[I],I.length);return I}class xM extends XI{constructor(A){super(),this.tag=A}eq(A){return A.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(A){return A.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}const nM=r.define(),WM=r.define(),OM=r.define(),JM=r.define(),ID=r.define(),uM=r.define(),vM=r.define(),VM=r.define({combine:I=>I.some(A=>A)}),XM=r.define({combine:I=>I.some(A=>A)});class nC{constructor(A,g="nearest",B="nearest",C=5,Q=5){this.range=A,this.y=g,this.x=B,this.yMargin=C,this.xMargin=Q}map(A){return A.empty?this:new nC(this.range.map(A),this.y,this.x,this.yMargin,this.xMargin)}}const rM=IA.define({map:(I,A)=>I.map(A)});function Ng(I,A,g){let B=I.facet(JM);B.length?B[0](A):window.onerror?window.onerror(String(A),g,void 0,void 0,A):g?console.error(g+":",A):console.error(A)}const WC=r.define({combine:I=>I.length?I[0]:!0});let qY=0;const zB=r.define();class RA{constructor(A,g,B,C){this.id=A,this.create=g,this.domEventHandlers=B,this.extension=C(this)}static define(A,g){const{eventHandlers:B,provide:C,decorations:Q}=g||{};return new RA(qY++,A,B,E=>{let N=[zB.of(E)];return Q&&N.push(FB.of(D=>{let o=D.plugin(E);return o?Q(o):AA.none})),C&&N.push(C(E)),N})}static fromClass(A,g){return RA.define(B=>new A(B),g)}}class BD{constructor(A){this.spec=A,this.mustUpdate=null,this.value=null}update(A){if(this.value){if(this.mustUpdate){let g=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(g)}catch(B){if(Ng(g.state,B,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(A)}catch(g){Ng(A.state,g,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(A){var g;if(!((g=this.value)===null||g===void 0)&&g.destroy)try{this.value.destroy()}catch(B){Ng(A.state,B,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const fM=r.define(),CD=r.define(),FB=r.define(),QD=r.define(),PM=r.define();function qM(I,A,g){let B=I.state.facet(PM);if(!B.length)return B;let C=B.map(E=>E instanceof Function?E(I):E),Q=[];return NA.spans(C,A,g,{point(){},span(E,N,D,o){let M=Q;for(let G=D.length-1;G>=0;G--,o--){let i=D[G].spec.bidiIsolate,L;if(i!=null)if(o>0&&M.length&&(L=M[M.length-1]).to==E&&L.direction==i)L.to=N,M=L.inner;else{let Y={from:E,to:N,direction:i,inner:[]};M.push(Y),M=Y.inner}}}}),Q}const _M=r.define();function $M(I){let A=0,g=0,B=0,C=0;for(let Q of I.state.facet(_M)){let E=Q(I);E&&(E.left!=null&&(A=Math.max(A,E.left)),E.right!=null&&(g=Math.max(g,E.right)),E.top!=null&&(B=Math.max(B,E.top)),E.bottom!=null&&(C=Math.max(C,E.bottom)))}return{left:A,right:g,top:B,bottom:C}}const jB=r.define();class og{constructor(A,g,B,C){this.fromA=A,this.toA=g,this.fromB=B,this.toB=C}join(A){return new og(Math.min(this.fromA,A.fromA),Math.max(this.toA,A.toA),Math.min(this.fromB,A.fromB),Math.max(this.toB,A.toB))}addToSet(A){let g=A.length,B=this;for(;g>0;g--){let C=A[g-1];if(!(C.fromA>B.toA)){if(C.toA<B.fromA)break;B=B.join(C),A.splice(g-1,1)}}return A.splice(g,0,B),A}static extendWithRanges(A,g){if(g.length==0)return A;let B=[];for(let C=0,Q=0,E=0,N=0;;C++){let D=C==A.length?null:A[C],o=E-N,M=D?D.fromB:1e9;for(;Q<g.length&&g[Q]<M;){let G=g[Q],i=g[Q+1],L=Math.max(N,G),Y=Math.min(M,i);if(L<=Y&&new og(L+o,Y+o,L,Y).addToSet(B),i>M)break;Q+=2}if(!D)return B;new og(D.fromA,D.toA,D.fromB,D.toB).addToSet(B),E=D.toA,N=D.toB}}}class OC{constructor(A,g,B){this.view=A,this.state=g,this.transactions=B,this.flags=0,this.startState=A.state,this.changes=bA.empty(this.startState.doc.length);for(let Q of B)this.changes=this.changes.compose(Q.changes);let C=[];this.changes.iterChangedRanges((Q,E,N,D)=>C.push(new og(Q,E,N,D))),this.changedRanges=C}static create(A,g,B){return new OC(A,g,B)}get viewportChanged(){return(this.flags&4)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&10)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(A=>A.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}var wA=function(I){return I[I.LTR=0]="LTR",I[I.RTL=1]="RTL",I}(wA||(wA={}));const mB=wA.LTR,AG=wA.RTL;function gG(I){let A=[];for(let g=0;g<I.length;g++)A.push(1<<+I[g]);return A}const _Y=gG("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),$Y=gG("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),ED=Object.create(null),hg=[];for(let I of["()","[]","{}"]){let A=I.charCodeAt(0),g=I.charCodeAt(1);ED[A]=g,ED[g]=-A}function Ay(I){return I<=247?_Y[I]:1424<=I&&I<=1524?2:1536<=I&&I<=1785?$Y[I-1536]:1774<=I&&I<=2220?4:8192<=I&&I<=8203?256:64336<=I&&I<=65023?4:I==8204?256:1}const gy=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/;class QI{get dir(){return this.level%2?AG:mB}constructor(A,g,B){this.from=A,this.to=g,this.level=B}side(A,g){return this.dir==g==A?this.to:this.from}static find(A,g,B,C){let Q=-1;for(let E=0;E<A.length;E++){let N=A[E];if(N.from<=g&&N.to>=g){if(N.level==B)return E;(Q<0||(C!=0?C<0?N.from<g:N.to>g:A[Q].level>N.level))&&(Q=E)}}if(Q<0)throw new RangeError("Index out of range");return Q}}function IG(I,A){if(I.length!=A.length)return!1;for(let g=0;g<I.length;g++){let B=I[g],C=A[g];if(B.from!=C.from||B.to!=C.to||B.direction!=C.direction||!IG(B.inner,C.inner))return!1}return!0}const oA=[];function Iy(I,A,g,B,C){for(let Q=0;Q<=B.length;Q++){let E=Q?B[Q-1].to:A,N=Q<B.length?B[Q].from:g,D=Q?256:C;for(let o=E,M=D,G=D;o<N;o++){let i=Ay(I.charCodeAt(o));i==512?i=M:i==8&&G==4&&(i=16),oA[o]=i==4?2:i,i&7&&(G=i),M=i}for(let o=E,M=D,G=D;o<N;o++){let i=oA[o];if(i==128)o<N-1&&M==oA[o+1]&&M&24?i=oA[o]=M:oA[o]=256;else if(i==64){let L=o+1;for(;L<N&&oA[L]==64;)L++;let Y=o&&M==8||L<g&&oA[L]==8?G==1?1:8:256;for(let w=o;w<L;w++)oA[w]=Y;o=L-1}else i==8&&G==1&&(oA[o]=1);M=i,i&7&&(G=i)}}}function By(I,A,g,B,C){let Q=C==1?2:1;for(let E=0,N=0,D=0;E<=B.length;E++){let o=E?B[E-1].to:A,M=E<B.length?B[E].from:g;for(let G=o,i,L,Y;G<M;G++)if(L=ED[i=I.charCodeAt(G)])if(L<0){for(let w=N-3;w>=0;w-=3)if(hg[w+1]==-L){let t=hg[w+2],Z=t&2?C:t&4?t&1?Q:C:0;Z&&(oA[G]=oA[hg[w]]=Z),N=w;break}}else{if(hg.length==189)break;hg[N++]=G,hg[N++]=i,hg[N++]=D}else if((Y=oA[G])==2||Y==1){let w=Y==C;D=w?0:1;for(let t=N-3;t>=0;t-=3){let Z=hg[t+2];if(Z&2)break;if(w)hg[t+2]|=2;else{if(Z&4)break;hg[t+2]|=4}}}}}function Cy(I,A,g,B){for(let C=0,Q=B;C<=g.length;C++){let E=C?g[C-1].to:I,N=C<g.length?g[C].from:A;for(let D=E;D<N;){let o=oA[D];if(o==256){let M=D+1;for(;;)if(M==N){if(C==g.length)break;M=g[C++].to,N=C<g.length?g[C].from:A}else if(oA[M]==256)M++;else break;let G=Q==1,i=(M<A?oA[M]:B)==1,L=G==i?G?1:2:B;for(let Y=M,w=C,t=w?g[w-1].to:I;Y>D;)Y==t&&(Y=g[--w].from,t=w?g[w-1].to:I),oA[--Y]=L;D=M}else Q=o,D++}}}function DD(I,A,g,B,C,Q,E){let N=B%2?2:1;if(B%2==C%2)for(let D=A,o=0;D<g;){let M=!0,G=!1;if(o==Q.length||D<Q[o].from){let w=oA[D];w!=N&&(M=!1,G=w==16)}let i=!M&&N==1?[]:null,L=M?B:B+1,Y=D;A:for(;;)if(o<Q.length&&Y==Q[o].from){if(G)break A;let w=Q[o];if(!M)for(let t=w.to,Z=o+1;;){if(t==g)break A;if(Z<Q.length&&Q[Z].from==t)t=Q[Z++].to;else{if(oA[t]==N)break A;break}}if(o++,i)i.push(w);else{w.from>D&&E.push(new QI(D,w.from,L));let t=w.direction==mB!=!(L%2);ND(I,t?B+1:B,C,w.inner,w.from,w.to,E),D=w.to}Y=w.to}else{if(Y==g||(M?oA[Y]!=N:oA[Y]==N))break;Y++}i?DD(I,D,Y,B+1,C,i,E):D<Y&&E.push(new QI(D,Y,L)),D=Y}else for(let D=g,o=Q.length;D>A;){let M=!0,G=!1;if(!o||D>Q[o-1].to){let w=oA[D-1];w!=N&&(M=!1,G=w==16)}let i=!M&&N==1?[]:null,L=M?B:B+1,Y=D;A:for(;;)if(o&&Y==Q[o-1].to){if(G)break A;let w=Q[--o];if(!M)for(let t=w.from,Z=o;;){if(t==A)break A;if(Z&&Q[Z-1].to==t)t=Q[--Z].from;else{if(oA[t-1]==N)break A;break}}if(i)i.push(w);else{w.to<D&&E.push(new QI(w.to,D,L));let t=w.direction==mB!=!(L%2);ND(I,t?B+1:B,C,w.inner,w.from,w.to,E),D=w.from}Y=w.from}else{if(Y==A||(M?oA[Y-1]!=N:oA[Y-1]==N))break;Y--}i?DD(I,Y,D,B+1,C,i,E):Y<D&&E.push(new QI(Y,D,L)),D=Y}}function ND(I,A,g,B,C,Q,E){let N=A%2?2:1;Iy(I,C,Q,B,N),By(I,C,Q,B,N),Cy(C,Q,B,N),DD(I,C,Q,A,g,B,E)}function Qy(I,A,g){if(!I)return[new QI(0,0,A==AG?1:0)];if(A==mB&&!g.length&&!gy.test(I))return BG(I.length);if(g.length)for(;I.length>oA.length;)oA[oA.length]=256;let B=[],C=A==mB?0:1;return ND(I,C,C,g,0,I.length,B),B}function BG(I){return[new QI(0,I,0)]}let CG="";function Ey(I,A,g,B,C){var Q;let E=B.head-I.from,N=-1;if(E==0){if(!C||!I.length)return null;A[0].level!=g&&(E=A[0].side(!1,g),N=0)}else if(E==I.length){if(C)return null;let i=A[A.length-1];i.level!=g&&(E=i.side(!0,g),N=A.length-1)}N<0&&(N=QI.find(A,E,(Q=B.bidiLevel)!==null&&Q!==void 0?Q:-1,B.assoc));let D=A[N];E==D.side(C,g)&&(D=A[N+=C?1:-1],E=D.side(!C,g));let o=C==(D.dir==g),M=pA(I.text,E,o);if(CG=I.text.slice(Math.min(E,M),Math.max(E,M)),M!=D.side(C,g))return j.cursor(M+I.from,o?-1:1,D.level);let G=N==(C?A.length-1:0)?null:A[N+(C?1:-1)];return!G&&D.level!=g?j.cursor(C?I.to:I.from,C?-1:1,g):G&&G.level<D.level?j.cursor(G.side(!C,g)+I.from,C?1:-1,G.level):j.cursor(M+I.from,C?-1:1,D.level)}class QG extends SA{get length(){return this.view.state.doc.length}constructor(A){super(),this.view=A,this.decorations=[],this.dynamicDecorationMap=[],this.domChanged=null,this.hasComposition=null,this.markedForComposition=new Set,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(A.contentDOM),this.children=[new zA],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new og(0,0,0,A.state.doc.length)],0,null)}update(A){var g;let B=A.changedRanges;this.minWidth>0&&B.length&&(B.every(({fromA:o,toA:M})=>M<this.minWidthFrom||o>this.minWidthTo)?(this.minWidthFrom=A.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=A.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0);let C=-1;this.view.inputState.composing>=0&&(!((g=this.domChanged)===null||g===void 0)&&g.newSel?C=this.domChanged.newSel.head:!Ly(A.changes,this.hasComposition)&&!A.selectionSet&&(C=A.state.selection.main.head));let Q=C>-1?Ny(this.view,A.changes,C):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:o,to:M}=this.hasComposition;B=new og(o,M,A.changes.mapPos(o,-1),A.changes.mapPos(M,1)).addToSet(B.slice())}this.hasComposition=Q?{from:Q.range.fromB,to:Q.range.toB}:null,(X.ie||X.chrome)&&!Q&&A&&A.state.doc.lines!=A.startState.doc.lines&&(this.forceSelection=!0);let E=this.decorations,N=this.updateDeco(),D=Gy(E,N,A.changes);return B=og.extendWithRanges(B,D),!(this.flags&7)&&B.length==0?!1:(this.updateInner(B,A.startState.doc.length,Q),A.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(A,g,B){this.view.viewState.mustMeasureContent=!0,this.updateChildren(A,g,B);let{observer:C}=this.view;C.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let E=X.chrome||X.ios?{node:C.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,E),this.flags&=-8,E&&(E.written||C.selectionRange.focusNode!=E.node)&&(this.forceSelection=!0),this.dom.style.height=""}),this.markedForComposition.forEach(E=>E.flags&=-9);let Q=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let E of this.children)E instanceof aI&&E.widget instanceof EG&&Q.push(E.dom);C.updateGaps(Q)}updateChildren(A,g,B){let C=B?B.range.addToSet(A.slice()):A,Q=this.childCursor(g);for(let E=C.length-1;;E--){let N=E>=0?C[E]:null;if(!N)break;let{fromA:D,toA:o,fromB:M,toB:G}=N,i,L,Y,w;if(B&&B.range.fromB<G&&B.range.toB>M){let y=eB.build(this.view.state.doc,M,B.range.fromB,this.decorations,this.dynamicDecorationMap),S=eB.build(this.view.state.doc,B.range.toB,G,this.decorations,this.dynamicDecorationMap);L=y.breakAtStart,Y=y.openStart,w=S.openEnd;let c=this.compositionView(B);S.breakAtStart?c.breakAfter=1:S.content.length&&c.merge(c.length,c.length,S.content[0],!1,S.openStart,0)&&(c.breakAfter=S.content[0].breakAfter,S.content.shift()),y.content.length&&c.merge(0,0,y.content[y.content.length-1],!0,0,y.openEnd)&&y.content.pop(),i=y.content.concat(c).concat(S.content)}else({content:i,breakAtStart:L,openStart:Y,openEnd:w}=eB.build(this.view.state.doc,M,G,this.decorations,this.dynamicDecorationMap));let{i:t,off:Z}=Q.findPos(o,1),{i:h,off:K}=Q.findPos(D,-1);bM(this,h,K,t,Z,i,L,Y,w)}B&&this.fixCompositionDOM(B)}compositionView(A){let g=new Jg(A.text.nodeValue);g.flags|=8;for(let{deco:C}of A.marks)g=new ug(C,[g],g.length);let B=new zA;return B.append(g,0),B}fixCompositionDOM(A){let g=(Q,E)=>{E.flags|=8|(E.children.some(D=>D.flags&7)?1:0),this.markedForComposition.add(E);let N=SA.get(Q);N&&N!=E&&(N.dom=null),E.setDOM(Q)},B=this.childPos(A.range.fromB,1),C=this.children[B.i];g(A.line,C);for(let Q=A.marks.length-1;Q>=-1;Q--)B=C.childPos(B.off,1),C=C.children[B.i],g(Q>=0?A.marks[Q].node:A.text,C)}updateSelection(A=!1,g=!1){(A||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let B=this.view.root.activeElement,C=B==this.dom,Q=!C&&FC(this.dom,this.view.observer.selectionRange)&&!(B&&this.dom.contains(B));if(!(C||g||Q))return;let E=this.forceSelection;this.forceSelection=!1;let N=this.view.state.selection.main,D=this.moveToLine(this.domAtPos(N.anchor)),o=N.empty?D:this.moveToLine(this.domAtPos(N.head));if(X.gecko&&N.empty&&!this.hasComposition&&Dy(D)){let G=document.createTextNode("");this.view.observer.ignore(()=>D.node.insertBefore(G,D.node.childNodes[D.offset]||null)),D=o=new WA(G,0),E=!0}let M=this.view.observer.selectionRange;(E||!M.focusNode||!jC(D.node,D.offset,M.anchorNode,M.anchorOffset)||!jC(o.node,o.offset,M.focusNode,M.focusOffset))&&(this.view.observer.ignore(()=>{X.android&&X.chrome&&this.dom.contains(M.focusNode)&&iy(M.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let G=zC(this.view.root);if(G)if(N.empty){if(X.gecko){let i=oy(D.node,D.offset);if(i&&i!=3){let L=NG(D.node,D.offset,i==1?1:-1);L&&(D=new WA(L.node,L.offset))}}G.collapse(D.node,D.offset),N.bidiLevel!=null&&G.caretBidiLevel!==void 0&&(G.caretBidiLevel=N.bidiLevel)}else if(G.extend){G.collapse(D.node,D.offset);try{G.extend(o.node,o.offset)}catch{}}else{let i=document.createRange();N.anchor>N.head&&([D,o]=[o,D]),i.setEnd(o.node,o.offset),i.setStart(D.node,D.offset),G.removeAllRanges(),G.addRange(i)}Q&&this.view.root.activeElement==this.dom&&(this.dom.blur(),B&&B.focus())}),this.view.observer.setSelectionRange(D,o)),this.impreciseAnchor=D.precise?null:new WA(M.anchorNode,M.anchorOffset),this.impreciseHead=o.precise?null:new WA(M.focusNode,M.focusOffset)}enforceCursorAssoc(){if(this.hasComposition)return;let{view:A}=this,g=A.state.selection.main,B=zC(A.root),{anchorNode:C,anchorOffset:Q}=A.observer.selectionRange;if(!B||!g.empty||!g.assoc||!B.modify)return;let E=zA.find(this,g.head);if(!E)return;let N=E.posAtStart;if(g.head==N||g.head==N+E.length)return;let D=this.coordsAt(g.head,-1),o=this.coordsAt(g.head,1);if(!D||!o||D.bottom>o.top)return;let M=this.domAtPos(g.head+g.assoc);B.collapse(M.node,M.offset),B.modify("move",g.assoc<0?"forward":"backward","lineboundary"),A.observer.readSelectionRange();let G=A.observer.selectionRange;A.docView.posFromDOM(G.anchorNode,G.anchorOffset)!=g.from&&B.collapse(C,Q)}moveToLine(A){let g=this.dom,B;if(A.node!=g)return A;for(let C=A.offset;!B&&C<g.childNodes.length;C++){let Q=SA.get(g.childNodes[C]);Q instanceof zA&&(B=Q.domAtPos(0))}for(let C=A.offset-1;!B&&C>=0;C--){let Q=SA.get(g.childNodes[C]);Q instanceof zA&&(B=Q.domAtPos(Q.length))}return B?new WA(B.node,B.offset,!0):A}nearest(A){for(let g=A;g;){let B=SA.get(g);if(B&&B.rootView==this)return B;g=g.parentNode}return null}posFromDOM(A,g){let B=this.nearest(A);if(!B)throw new RangeError("Trying to find position for a DOM position outside of the document");return B.localPosFromDOM(A,g)+B.posAtStart}domAtPos(A){let{i:g,off:B}=this.childCursor().findPos(A,-1);for(;g<this.children.length-1;){let C=this.children[g];if(B<C.length||C instanceof zA)break;g++,B=0}return this.children[g].domAtPos(B)}coordsAt(A,g){for(let B=this.length,C=this.children.length-1;;C--){let Q=this.children[C],E=B-Q.breakAfter-Q.length;if(A>E||A==E&&Q.type!=yA.WidgetBefore&&Q.type!=yA.WidgetAfter&&(!C||g==2||this.children[C-1].breakAfter||this.children[C-1].type==yA.WidgetBefore&&g>-2))return Q.coordsAt(A-E,g);B=E}}coordsForChar(A){let{i:g,off:B}=this.childPos(A,1),C=this.children[g];if(!(C instanceof zA))return null;for(;C.children.length;){let{i:N,off:D}=C.childPos(B,1);for(;;N++){if(N==C.children.length)return null;if((C=C.children[N]).length)break}B=D}if(!(C instanceof Jg))return null;let Q=pA(C.text,B);if(Q==B)return null;let E=hI(C.dom,B,Q).getClientRects();return!E.length||E[0].top>=E[0].bottom?null:E[0]}measureVisibleLineHeights(A){let g=[],{from:B,to:C}=A,Q=this.view.contentDOM.clientWidth,E=Q>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,N=-1,D=this.view.textDirection==wA.LTR;for(let o=0,M=0;M<this.children.length;M++){let G=this.children[M],i=o+G.length;if(i>C)break;if(o>=B){let L=G.dom.getBoundingClientRect();if(g.push(L.height),E){let Y=G.dom.lastChild,w=Y?RB(Y):[];if(w.length){let t=w[w.length-1],Z=D?t.right-L.left:L.right-t.left;Z>N&&(N=Z,this.minWidth=Q,this.minWidthFrom=o,this.minWidthTo=i)}}}o=i+G.breakAfter}return g}textDirectionAt(A){let{i:g}=this.childPos(A,1);return getComputedStyle(this.children[g].dom).direction=="rtl"?wA.RTL:wA.LTR}measureTextSize(){for(let Q of this.children)if(Q instanceof zA){let E=Q.measureTextSize();if(E)return E}let A=document.createElement("div"),g,B,C;return A.className="cm-line",A.style.width="99999px",A.style.position="absolute",A.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(A);let Q=RB(A.firstChild)[0];g=A.getBoundingClientRect().height,B=Q?Q.width/27:7,C=Q?Q.height:g,A.remove()}),{lineHeight:g,charWidth:B,textHeight:C}}childCursor(A=this.length){let g=this.children.length;return g&&(A-=this.children[--g].length),new aM(this.children,A,g)}computeBlockGapDeco(){let A=[],g=this.view.viewState;for(let B=0,C=0;;C++){let Q=C==g.viewports.length?null:g.viewports[C],E=Q?Q.from-1:this.length;if(E>B){let N=(g.lineBlockAt(E).bottom-g.lineBlockAt(B).top)/this.view.scaleY;A.push(AA.replace({widget:new EG(N),block:!0,inclusive:!0,isBlockGap:!0}).range(B,E))}if(!Q)break;B=Q.to+1}return AA.set(A)}updateDeco(){let A=this.view.state.facet(FB).map((g,B)=>(this.dynamicDecorationMap[B]=typeof g=="function")?g(this.view):g);for(let g=A.length;g<A.length+3;g++)this.dynamicDecorationMap[g]=!1;return this.decorations=[...A,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco]}scrollIntoView(A){let{range:g}=A,B=this.coordsAt(g.head,g.empty?g.assoc:g.head>g.anchor?-1:1),C;if(!B)return;!g.empty&&(C=this.coordsAt(g.anchor,g.anchor>g.head?-1:1))&&(B={left:Math.min(B.left,C.left),top:Math.min(B.top,C.top),right:Math.max(B.right,C.right),bottom:Math.max(B.bottom,C.bottom)});let Q=$M(this.view),E={left:B.left-Q.left,top:B.top-Q.top,right:B.right+Q.right,bottom:B.bottom+Q.bottom};WY(this.view.scrollDOM,E,g.head<g.anchor?-1:1,A.x,A.y,A.xMargin,A.yMargin,this.view.textDirection==wA.LTR)}}function Dy(I){return I.node.nodeType==1&&I.node.firstChild&&(I.offset==0||I.node.childNodes[I.offset-1].contentEditable=="false")&&(I.offset==I.node.childNodes.length||I.node.childNodes[I.offset].contentEditable=="false")}class EG extends XI{constructor(A){super(),this.height=A}toDOM(){let A=document.createElement("div");return this.updateDOM(A),A}eq(A){return A.height==this.height}updateDOM(A){return A.style.height=this.height+"px",!0}get estimatedHeight(){return this.height}}function DG(I,A){let g=I.observer.selectionRange,B=g.focusNode&&NG(g.focusNode,g.focusOffset,0);if(!B)return null;let C=A-B.offset;return{from:C,to:C+B.node.nodeValue.length,node:B.node}}function Ny(I,A,g){let B=DG(I,g);if(!B)return null;let{node:C,from:Q,to:E}=B,N=C.nodeValue;if(/[\n\r]/.test(N)||I.state.doc.sliceString(B.from,B.to)!=N)return null;let D=A.invertedDesc,o=new og(D.mapPos(Q),D.mapPos(E),Q,E),M=[];for(let G=C.parentNode;;G=G.parentNode){let i=SA.get(G);if(i instanceof ug)M.push({node:G,deco:i.mark});else{if(i instanceof zA||G.nodeName=="DIV"&&G.parentNode==I.contentDOM)return{range:o,text:C,marks:M,line:G};if(G!=I.contentDOM)M.push({node:G,deco:new UB({inclusive:!0,attributes:fY(G),tagName:G.tagName.toLowerCase()})});else return null}}}function NG(I,A,g){if(g<=0)for(let B=I,C=A;;){if(B.nodeType==3)return{node:B,offset:C};if(B.nodeType==1&&C>0)B=B.childNodes[C-1],C=II(B);else break}if(g>=0)for(let B=I,C=A;;){if(B.nodeType==3)return{node:B,offset:C};if(B.nodeType==1&&C<B.childNodes.length&&g>=0)B=B.childNodes[C],C=0;else break}return null}function oy(I,A){return I.nodeType!=1?0:(A&&I.childNodes[A-1].contentEditable=="false"?1:0)|(A<I.childNodes.length&&I.childNodes[A].contentEditable=="false"?2:0)}let My=class{constructor(){this.changes=[]}compareRange(A,g){gD(A,g,this.changes)}comparePoint(A,g){gD(A,g,this.changes)}};function Gy(I,A,g){let B=new My;return NA.compare(I,A,g,B),B.changes}function iy(I,A){for(let g=I;g&&g!=A;g=g.assignedSlot||g.parentNode)if(g.nodeType==1&&g.contentEditable=="false")return!0;return!1}function Ly(I,A){let g=!1;return A&&I.iterChangedRanges((B,C)=>{B<A.to&&C>A.from&&(g=!0)}),g}function Sy(I,A,g=1){let B=I.charCategorizer(A),C=I.doc.lineAt(A),Q=A-C.from;if(C.length==0)return j.cursor(A);Q==0?g=1:Q==C.length&&(g=-1);let E=Q,N=Q;g<0?E=pA(C.text,Q,!1):N=pA(C.text,Q);let D=B(C.text.slice(E,N));for(;E>0;){let o=pA(C.text,E,!1);if(B(C.text.slice(o,E))!=D)break;E=o}for(;N<C.length;){let o=pA(C.text,N);if(B(C.text.slice(N,o))!=D)break;N=o}return j.range(E+C.from,N+C.from)}function cy(I,A){return A.left>I?A.left-I:Math.max(0,I-A.right)}function Yy(I,A){return A.top>I?A.top-I:Math.max(0,I-A.bottom)}function oD(I,A){return I.top<A.bottom-1&&I.bottom>A.top+1}function oG(I,A){return A<I.top?{top:A,left:I.left,right:I.right,bottom:I.bottom}:I}function MG(I,A){return A>I.bottom?{top:I.top,left:I.left,right:I.right,bottom:A}:I}function MD(I,A,g){let B,C,Q,E,N=!1,D,o,M,G;for(let Y=I.firstChild;Y;Y=Y.nextSibling){let w=RB(Y);for(let t=0;t<w.length;t++){let Z=w[t];C&&oD(C,Z)&&(Z=oG(MG(Z,C.bottom),C.top));let h=cy(A,Z),K=Yy(g,Z);if(h==0&&K==0)return Y.nodeType==3?GG(Y,A,g):MD(Y,A,g);if(!B||E>K||E==K&&Q>h){B=Y,C=Z,Q=h,E=K;let y=K?g<Z.top?-1:1:h?A<Z.left?-1:1:0;N=!y||(y>0?t<w.length-1:t>0)}h==0?g>Z.bottom&&(!M||M.bottom<Z.bottom)?(D=Y,M=Z):g<Z.top&&(!G||G.top>Z.top)&&(o=Y,G=Z):M&&oD(M,Z)?M=MG(M,Z.bottom):G&&oD(G,Z)&&(G=oG(G,Z.top))}}if(M&&M.bottom>=g?(B=D,C=M):G&&G.top<=g&&(B=o,C=G),!B)return{node:I,offset:0};let i=Math.max(C.left,Math.min(C.right,A));if(B.nodeType==3)return GG(B,i,g);if(N&&B.contentEditable!="false")return MD(B,i,g);let L=Array.prototype.indexOf.call(I.childNodes,B)+(A>=(C.left+C.right)/2?1:0);return{node:I,offset:L}}function GG(I,A,g){let B=I.nodeValue.length,C=-1,Q=1e9,E=0;for(let N=0;N<B;N++){let D=hI(I,N,N+1).getClientRects();for(let o=0;o<D.length;o++){let M=D[o];if(M.top==M.bottom)continue;E||(E=A-M.left);let G=(M.top>g?M.top-g:g-M.bottom)-1;if(M.left-1<=A&&M.right+1>=A&&G<Q){let i=A>=(M.left+M.right)/2,L=i;if((X.chrome||X.gecko)&&hI(I,N).getBoundingClientRect().left==M.right&&(L=!i),G<=0)return{node:I,offset:N+(L?1:0)};C=N+(L?1:0),Q=G}}}return{node:I,offset:C>-1?C:E>0?I.nodeValue.length:0}}function iG(I,A,g,B=-1){var C,Q;let E=I.contentDOM.getBoundingClientRect(),N=E.top+I.viewState.paddingTop,D,{docHeight:o}=I.viewState,{x:M,y:G}=A,i=G-N;if(i<0)return 0;if(i>o)return I.state.doc.length;for(let y=I.viewState.heightOracle.textHeight/2,S=!1;D=I.elementAtHeight(i),D.type!=yA.Text;)for(;i=B>0?D.bottom+y:D.top-y,!(i>=0&&i<=o);){if(S)return g?null:0;S=!0,B=-B}G=N+i;let L=D.from;if(L<I.viewport.from)return I.viewport.from==0?0:g?null:LG(I,E,D,M,G);if(L>I.viewport.to)return I.viewport.to==I.state.doc.length?I.state.doc.length:g?null:LG(I,E,D,M,G);let Y=I.dom.ownerDocument,w=I.root.elementFromPoint?I.root:Y,t=w.elementFromPoint(M,G);t&&!I.contentDOM.contains(t)&&(t=null),t||(M=Math.max(E.left+1,Math.min(E.right-1,M)),t=w.elementFromPoint(M,G),t&&!I.contentDOM.contains(t)&&(t=null));let Z,h=-1;if(t&&((C=I.docView.nearest(t))===null||C===void 0?void 0:C.isEditable)!=!1){if(Y.caretPositionFromPoint){let y=Y.caretPositionFromPoint(M,G);y&&({offsetNode:Z,offset:h}=y)}else if(Y.caretRangeFromPoint){let y=Y.caretRangeFromPoint(M,G);y&&({startContainer:Z,startOffset:h}=y,(!I.contentDOM.contains(Z)||X.safari&&yy(Z,h,M)||X.chrome&&wy(Z,h,M))&&(Z=void 0))}}if(!Z||!I.docView.dom.contains(Z)){let y=zA.find(I.docView,L);if(!y)return i>D.top+D.height/2?D.to:D.from;({node:Z,offset:h}=MD(y.dom,M,G))}let K=I.docView.nearest(Z);if(!K)return null;if(K.isWidget&&((Q=K.dom)===null||Q===void 0?void 0:Q.nodeType)==1){let y=K.dom.getBoundingClientRect();return A.y<y.top||A.y<=y.bottom&&A.x<=(y.left+y.right)/2?K.posAtStart:K.posAtEnd}else return K.localPosFromDOM(Z,h)+K.posAtStart}function LG(I,A,g,B,C){let Q=Math.round((B-A.left)*I.defaultCharacterWidth);if(I.lineWrapping&&g.height>I.defaultLineHeight*1.5){let N=I.viewState.heightOracle.textHeight,D=Math.floor((C-g.top-(I.defaultLineHeight-N)*.5)/N);Q+=D*I.viewState.heightOracle.lineLength}let E=I.state.sliceDoc(g.from,g.to);return g.from+WE(E,Q,I.state.tabSize)}function yy(I,A,g){let B;if(I.nodeType!=3||A!=(B=I.nodeValue.length))return!1;for(let C=I.nextSibling;C;C=C.nextSibling)if(C.nodeType!=1||C.nodeName!="BR")return!1;return hI(I,B-1,B).getBoundingClientRect().left>g}function wy(I,A,g){if(A!=0)return!1;for(let C=I;;){let Q=C.parentNode;if(!Q||Q.nodeType!=1||Q.firstChild!=C)return!1;if(Q.classList.contains("cm-line"))break;C=Q}let B=I.nodeType==1?I.getBoundingClientRect():hI(I,0,Math.max(I.nodeValue.length,1)).getBoundingClientRect();return g-B.left>5}function GD(I,A){let g=I.lineBlockAt(A);if(Array.isArray(g.type)){for(let B of g.type)if(B.to>A||B.to==A&&(B.to==g.to||B.type==yA.Text))return B}return g}function ty(I,A,g,B){let C=GD(I,A.head),Q=!B||C.type!=yA.Text||!(I.lineWrapping||C.widgetLineBreaks)?null:I.coordsAtPos(A.assoc<0&&A.head>C.from?A.head-1:A.head);if(Q){let E=I.dom.getBoundingClientRect(),N=I.textDirectionAt(C.from),D=I.posAtCoords({x:g==(N==wA.LTR)?E.right-1:E.left+1,y:(Q.top+Q.bottom)/2});if(D!=null)return j.cursor(D,g?-1:1)}return j.cursor(g?C.to:C.from,g?-1:1)}function SG(I,A,g,B){let C=I.state.doc.lineAt(A.head),Q=I.bidiSpans(C),E=I.textDirectionAt(C.from);for(let N=A,D=null;;){let o=Ey(C,Q,E,N,g),M=CG;if(!o){if(C.number==(g?I.state.doc.lines:1))return N;M=`
|
1623
|
-
`,C=I.state.doc.line(C.number+(g?1:-1)),Q=I.bidiSpans(C),o=j.cursor(g?C.from:C.to)}if(D){if(!D(M))return N}else{if(!B)return o;D=B(M)}N=o}}function sy(I,A,g){let B=I.state.charCategorizer(A),C=B(g);return Q=>{let E=B(Q);return C==YA.Space&&(C=E),C==E}}function Ky(I,A,g,B){let C=A.head,Q=g?1:-1;if(C==(g?I.state.doc.length:0))return j.cursor(C,A.assoc);let E=A.goalColumn,N,D=I.contentDOM.getBoundingClientRect(),o=I.coordsAtPos(C),M=I.documentTop;if(o)E==null&&(E=o.left-D.left),N=Q<0?o.top:o.bottom;else{let L=I.viewState.lineBlockAt(C);E==null&&(E=Math.min(D.right-D.left,I.defaultCharacterWidth*(C-L.from))),N=(Q<0?L.top:L.bottom)+M}let G=D.left+E,i=B??I.viewState.heightOracle.textHeight>>1;for(let L=0;;L+=10){let Y=N+(i+L)*Q,w=iG(I,{x:G,y:Y},!1,Q);if(Y<D.top||Y>D.bottom||(Q<0?w<C:w>C))return j.cursor(w,A.assoc,void 0,E)}}function JC(I,A,g){for(;;){let B=0;for(let C of I)C.between(A-1,A+1,(Q,E,N)=>{if(A>Q&&A<E){let D=B||g||(A-Q<E-A?-1:1);A=D<0?Q:E,B=D}});if(!B)return A}}function iD(I,A,g){let B=JC(I.state.facet(QD).map(C=>C(I)),g.from,A.head>g.from?-1:1);return B==g.from?g:j.cursor(B,B<g.from?1:-1)}class ly{setSelectionOrigin(A){this.lastSelectionOrigin=A,this.lastSelectionTime=Date.now()}constructor(A){this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.chromeScrollHack=-1,this.pendingIOSKey=void 0,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.lastContextMenu=0,this.scrollHandlers=[],this.registeredEvents=[],this.customHandlers=[],this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.mouseSelection=null;let g=(B,C)=>{this.ignoreDuringComposition(C)||C.type=="keydown"&&this.keydown(A,C)||(this.mustFlushObserver(C)&&A.observer.forceFlush(),this.runCustomHandlers(C.type,A,C)?C.preventDefault():B(A,C))};for(let B in kA){let C=kA[B];A.contentDOM.addEventListener(B,Q=>{yG(A,Q)&&g(C,Q)},LD[B]),this.registeredEvents.push(B)}A.scrollDOM.addEventListener("mousedown",B=>{if(B.target==A.scrollDOM&&B.clientY>A.contentDOM.getBoundingClientRect().bottom&&(g(kA.mousedown,B),!B.defaultPrevented&&B.button==2)){let C=A.contentDOM.style.minHeight;A.contentDOM.style.minHeight="100%",setTimeout(()=>A.contentDOM.style.minHeight=C,200)}}),A.scrollDOM.addEventListener("drop",B=>{B.target==A.scrollDOM&&B.clientY>A.contentDOM.getBoundingClientRect().bottom&&g(kA.drop,B)}),X.chrome&&X.chrome_version==102&&A.scrollDOM.addEventListener("wheel",()=>{this.chromeScrollHack<0?A.contentDOM.style.pointerEvents="none":window.clearTimeout(this.chromeScrollHack),this.chromeScrollHack=setTimeout(()=>{this.chromeScrollHack=-1,A.contentDOM.style.pointerEvents=""},100)},{passive:!0}),this.notifiedFocused=A.hasFocus,X.safari&&A.contentDOM.addEventListener("input",()=>null),X.gecko&&jy(A.contentDOM.ownerDocument)}ensureHandlers(A,g){var B;let C;this.customHandlers=[];for(let Q of g)if(C=(B=Q.update(A).spec)===null||B===void 0?void 0:B.domEventHandlers){this.customHandlers.push({plugin:Q.value,handlers:C});for(let E in C)this.registeredEvents.indexOf(E)<0&&E!="scroll"&&(this.registeredEvents.push(E),A.contentDOM.addEventListener(E,N=>{yG(A,N)&&this.runCustomHandlers(E,A,N)&&N.preventDefault()}))}}runCustomHandlers(A,g,B){for(let C of this.customHandlers){let Q=C.handlers[A];if(Q)try{if(Q.call(C.plugin,B,g)||B.defaultPrevented)return!0}catch(E){Ng(g.state,E)}}return!1}runScrollHandlers(A,g){this.lastScrollTop=A.scrollDOM.scrollTop,this.lastScrollLeft=A.scrollDOM.scrollLeft;for(let B of this.customHandlers){let C=B.handlers.scroll;if(C)try{C.call(B.plugin,g,A)}catch(Q){Ng(A.state,Q)}}}keydown(A,g){if(this.lastKeyCode=g.keyCode,this.lastKeyTime=Date.now(),g.keyCode==9&&Date.now()<this.lastEscPress+2e3)return!0;if(g.keyCode!=27&&YG.indexOf(g.keyCode)<0&&(A.inputState.lastEscPress=0),X.android&&X.chrome&&!g.synthetic&&(g.keyCode==13||g.keyCode==8))return A.observer.delayAndroidKey(g.key,g.keyCode),!0;let B;return X.ios&&!g.synthetic&&!g.altKey&&!g.metaKey&&((B=cG.find(C=>C.keyCode==g.keyCode))&&!g.ctrlKey||ky.indexOf(g.key)>-1&&g.ctrlKey&&!g.shiftKey)?(this.pendingIOSKey=B||g,setTimeout(()=>this.flushIOSKey(A),250),!0):!1}flushIOSKey(A){let g=this.pendingIOSKey;return g?(this.pendingIOSKey=void 0,vI(A.contentDOM,g.key,g.keyCode)):!1}ignoreDuringComposition(A){return/^key/.test(A.type)?this.composing>0?!0:X.safari&&!X.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1:!1}mustFlushObserver(A){return A.type=="keydown"&&A.keyCode!=229}startMouseSelection(A){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=A}update(A){this.mouseSelection&&this.mouseSelection.update(A),A.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}const cG=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],ky="dthko",YG=[16,17,18,20,91,92,224,225],uC=6;function vC(I){return Math.max(0,I)*.7+8}function Zy(I,A){return Math.max(Math.abs(I.clientX-A.clientX),Math.abs(I.clientY-A.clientY))}class hy{constructor(A,g,B,C){this.view=A,this.startEvent=g,this.style=B,this.mustSelect=C,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=g,this.scrollParent=OY(A.contentDOM),this.atoms=A.state.facet(QD).map(E=>E(A));let Q=A.contentDOM.ownerDocument;Q.addEventListener("mousemove",this.move=this.move.bind(this)),Q.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=g.shiftKey,this.multiple=A.state.facet(CA.allowMultipleSelections)&&ay(A,g),this.dragging=dy(A,g)&&bG(g)==1?null:!1}start(A){this.dragging===!1&&(A.preventDefault(),this.select(A))}move(A){var g;if(A.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&Zy(this.startEvent,A)<10)return;this.select(this.lastEvent=A);let B=0,C=0,Q=((g=this.scrollParent)===null||g===void 0?void 0:g.getBoundingClientRect())||{left:0,top:0,right:this.view.win.innerWidth,bottom:this.view.win.innerHeight},E=$M(this.view);A.clientX-E.left<=Q.left+uC?B=-vC(Q.left-A.clientX):A.clientX+E.right>=Q.right-uC&&(B=vC(A.clientX-Q.right)),A.clientY-E.top<=Q.top+uC?C=-vC(Q.top-A.clientY):A.clientY+E.bottom>=Q.bottom-uC&&(C=vC(A.clientY-Q.bottom)),this.setScrollSpeed(B,C)}up(A){this.dragging==null&&this.select(this.lastEvent),this.dragging||A.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let A=this.view.contentDOM.ownerDocument;A.removeEventListener("mousemove",this.move),A.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=null}setScrollSpeed(A,g){this.scrollSpeed={x:A,y:g},A||g?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){this.scrollParent?(this.scrollParent.scrollLeft+=this.scrollSpeed.x,this.scrollParent.scrollTop+=this.scrollSpeed.y):this.view.win.scrollBy(this.scrollSpeed.x,this.scrollSpeed.y),this.dragging===!1&&this.select(this.lastEvent)}skipAtoms(A){let g=null;for(let B=0;B<A.ranges.length;B++){let C=A.ranges[B],Q=null;if(C.empty){let E=JC(this.atoms,C.from,0);E!=C.from&&(Q=j.cursor(E,-1))}else{let E=JC(this.atoms,C.from,-1),N=JC(this.atoms,C.to,1);(E!=C.from||N!=C.to)&&(Q=j.range(C.from==C.anchor?E:N,C.from==C.head?E:N))}Q&&(g||(g=A.ranges.slice()),g[B]=Q)}return g?j.create(g,A.mainIndex):A}select(A){let{view:g}=this,B=this.skipAtoms(this.style.get(A,this.extend,this.multiple));(this.mustSelect||!B.eq(g.state.selection)||B.main.assoc!=g.state.selection.main.assoc&&this.dragging===!1)&&this.view.dispatch({selection:B,userEvent:"select.pointer"}),this.mustSelect=!1}update(A){A.docChanged&&this.dragging&&(this.dragging=this.dragging.map(A.changes)),this.style.update(A)&&setTimeout(()=>this.select(this.lastEvent),20)}}function ay(I,A){let g=I.state.facet(nM);return g.length?g[0](A):X.mac?A.metaKey:A.ctrlKey}function by(I,A){let g=I.state.facet(WM);return g.length?g[0](A):X.mac?!A.altKey:!A.ctrlKey}function dy(I,A){let{main:g}=I.state.selection;if(g.empty)return!1;let B=zC(I.root);if(!B||B.rangeCount==0)return!0;let C=B.getRangeAt(0).getClientRects();for(let Q=0;Q<C.length;Q++){let E=C[Q];if(E.left<=A.clientX&&E.right>=A.clientX&&E.top<=A.clientY&&E.bottom>=A.clientY)return!0}return!1}function yG(I,A){if(!A.bubbles)return!0;if(A.defaultPrevented)return!1;for(let g=A.target,B;g!=I.contentDOM;g=g.parentNode)if(!g||g.nodeType==11||(B=SA.get(g))&&B.ignoreEvent(A))return!1;return!0}const kA=Object.create(null),LD=Object.create(null),wG=X.ie&&X.ie_version<15||X.ios&&X.webkit_version<604;function Hy(I){let A=I.dom.parentNode;if(!A)return;let g=A.appendChild(document.createElement("textarea"));g.style.cssText="position: fixed; left: -10000px; top: 10px",g.focus(),setTimeout(()=>{I.focus(),g.remove(),tG(I,g.value)},50)}function tG(I,A){let{state:g}=I,B,C=1,Q=g.toText(A),E=Q.lines==g.selection.ranges.length;if(SD!=null&&g.selection.ranges.every(D=>D.empty)&&SD==Q.toString()){let D=-1;B=g.changeByRange(o=>{let M=g.doc.lineAt(o.from);if(M.from==D)return{range:o};D=M.from;let G=g.toText((E?Q.line(C++).text:A)+g.lineBreak);return{changes:{from:M.from,insert:G},range:j.cursor(o.from+G.length)}})}else E?B=g.changeByRange(D=>{let o=Q.line(C++);return{changes:{from:D.from,to:D.to,insert:o.text},range:j.cursor(D.from+o.length)}}):B=g.replaceSelection(Q);I.dispatch(B,{userEvent:"input.paste",scrollIntoView:!0})}kA.keydown=(I,A)=>{I.inputState.setSelectionOrigin("select"),A.keyCode==27&&(I.inputState.lastEscPress=Date.now())},kA.touchstart=(I,A)=>{I.inputState.lastTouchTime=Date.now(),I.inputState.setSelectionOrigin("select.pointer")},kA.touchmove=I=>{I.inputState.setSelectionOrigin("select.pointer")},LD.touchstart=LD.touchmove={passive:!0},kA.mousedown=(I,A)=>{if(I.observer.flush(),I.inputState.lastTouchTime>Date.now()-2e3)return;let g=null;for(let B of I.state.facet(OM))if(g=B(I,A),g)break;if(!g&&A.button==0&&(g=Ty(I,A)),g){let B=!I.hasFocus;I.inputState.startMouseSelection(new hy(I,A,g,B)),B&&I.observer.ignore(()=>KM(I.contentDOM)),I.inputState.mouseSelection&&I.inputState.mouseSelection.start(A)}};function sG(I,A,g,B){if(B==1)return j.cursor(A,g);if(B==2)return Sy(I.state,A,g);{let C=zA.find(I.docView,A),Q=I.state.doc.lineAt(C?C.posAtEnd:A),E=C?C.posAtStart:Q.from,N=C?C.posAtEnd:Q.to;return N<I.state.doc.length&&N==Q.to&&N++,j.range(E,N)}}let KG=(I,A)=>I>=A.top&&I<=A.bottom,lG=(I,A,g)=>KG(A,g)&&I>=g.left&&I<=g.right;function Ry(I,A,g,B){let C=zA.find(I.docView,A);if(!C)return 1;let Q=A-C.posAtStart;if(Q==0)return 1;if(Q==C.length)return-1;let E=C.coordsAt(Q,-1);if(E&&lG(g,B,E))return-1;let N=C.coordsAt(Q,1);return N&&lG(g,B,N)?1:E&&KG(B,E)?-1:1}function kG(I,A){let g=I.posAtCoords({x:A.clientX,y:A.clientY},!1);return{pos:g,bias:Ry(I,g,A.clientX,A.clientY)}}const Uy=X.ie&&X.ie_version<=11;let ZG=null,hG=0,aG=0;function bG(I){if(!Uy)return I.detail;let A=ZG,g=aG;return ZG=I,aG=Date.now(),hG=!A||g>Date.now()-400&&Math.abs(A.clientX-I.clientX)<2&&Math.abs(A.clientY-I.clientY)<2?(hG+1)%3:1}function Ty(I,A){let g=kG(I,A),B=bG(A),C=I.state.selection;return{update(Q){Q.docChanged&&(g.pos=Q.changes.mapPos(g.pos),C=C.map(Q.changes))},get(Q,E,N){let D=kG(I,Q),o,M=sG(I,D.pos,D.bias,B);if(g.pos!=D.pos&&!E){let G=sG(I,g.pos,g.bias,B),i=Math.min(G.from,M.from),L=Math.max(G.to,M.to);M=i<M.from?j.range(i,L):j.range(L,i)}return E?C.replaceRange(C.main.extend(M.from,M.to)):N&&B==1&&C.ranges.length>1&&(o=ey(C,D.pos))?o:N?C.addRange(M):j.create([M])}}}function ey(I,A){for(let g=0;g<I.ranges.length;g++){let{from:B,to:C}=I.ranges[g];if(B<=A&&C>=A)return j.create(I.ranges.slice(0,g).concat(I.ranges.slice(g+1)),I.mainIndex==g?0:I.mainIndex-(I.mainIndex>g?1:0))}return null}kA.dragstart=(I,A)=>{let{selection:{main:g}}=I.state,{mouseSelection:B}=I.inputState;B&&(B.dragging=g),A.dataTransfer&&(A.dataTransfer.setData("Text",I.state.sliceDoc(g.from,g.to)),A.dataTransfer.effectAllowed="copyMove")};function dG(I,A,g,B){if(!g)return;let C=I.posAtCoords({x:A.clientX,y:A.clientY},!1);A.preventDefault();let{mouseSelection:Q}=I.inputState,E=B&&Q&&Q.dragging&&by(I,A)?{from:Q.dragging.from,to:Q.dragging.to}:null,N={from:C,insert:g},D=I.state.changes(E?[E,N]:N);I.focus(),I.dispatch({changes:D,selection:{anchor:D.mapPos(C,-1),head:D.mapPos(C,1)},userEvent:E?"move.drop":"input.drop"})}kA.drop=(I,A)=>{if(!A.dataTransfer)return;if(I.state.readOnly)return A.preventDefault();let g=A.dataTransfer.files;if(g&&g.length){A.preventDefault();let B=Array(g.length),C=0,Q=()=>{++C==g.length&&dG(I,A,B.filter(E=>E!=null).join(I.state.lineBreak),!1)};for(let E=0;E<g.length;E++){let N=new FileReader;N.onerror=Q,N.onload=()=>{/[\x00-\x08\x0e-\x1f]{2}/.test(N.result)||(B[E]=N.result),Q()},N.readAsText(g[E])}}else dG(I,A,A.dataTransfer.getData("Text"),!0)},kA.paste=(I,A)=>{if(I.state.readOnly)return A.preventDefault();I.observer.flush();let g=wG?null:A.clipboardData;g?(tG(I,g.getData("text/plain")||g.getData("text/uri-text")),A.preventDefault()):Hy(I)};function zy(I,A){let g=I.dom.parentNode;if(!g)return;let B=g.appendChild(document.createElement("textarea"));B.style.cssText="position: fixed; left: -10000px; top: 10px",B.value=A,B.focus(),B.selectionEnd=A.length,B.selectionStart=0,setTimeout(()=>{B.remove(),I.focus()},50)}function Fy(I){let A=[],g=[],B=!1;for(let C of I.selection.ranges)C.empty||(A.push(I.sliceDoc(C.from,C.to)),g.push(C));if(!A.length){let C=-1;for(let{from:Q}of I.selection.ranges){let E=I.doc.lineAt(Q);E.number>C&&(A.push(E.text),g.push({from:E.from,to:Math.min(I.doc.length,E.to+1)})),C=E.number}B=!0}return{text:A.join(I.lineBreak),ranges:g,linewise:B}}let SD=null;kA.copy=kA.cut=(I,A)=>{let{text:g,ranges:B,linewise:C}=Fy(I.state);if(!g&&!C)return;SD=C?g:null;let Q=wG?null:A.clipboardData;Q?(A.preventDefault(),Q.clearData(),Q.setData("text/plain",g)):zy(I,g),A.type=="cut"&&!I.state.readOnly&&I.dispatch({changes:B,scrollIntoView:!0,userEvent:"delete.cut"})};const HG=Wg.define();function RG(I,A){let g=[];for(let B of I.facet(vM)){let C=B(I,A);C&&g.push(C)}return g?I.update({effects:g,annotations:HG.of(!0)}):null}function UG(I){setTimeout(()=>{let A=I.hasFocus;if(A!=I.inputState.notifiedFocused){let g=RG(I.state,A);g?I.dispatch(g):I.update([])}},10)}kA.focus=I=>{I.inputState.lastFocusTime=Date.now(),!I.scrollDOM.scrollTop&&(I.inputState.lastScrollTop||I.inputState.lastScrollLeft)&&(I.scrollDOM.scrollTop=I.inputState.lastScrollTop,I.scrollDOM.scrollLeft=I.inputState.lastScrollLeft),UG(I)},kA.blur=I=>{I.observer.clearSelectionRange(),UG(I)},kA.compositionstart=kA.compositionupdate=I=>{I.inputState.compositionFirstChange==null&&(I.inputState.compositionFirstChange=!0),I.inputState.composing<0&&(I.inputState.composing=0)},kA.compositionend=I=>{I.inputState.composing=-1,I.inputState.compositionEndedAt=Date.now(),I.inputState.compositionPendingKey=!0,I.inputState.compositionPendingChange=I.observer.pendingRecords().length>0,I.inputState.compositionFirstChange=null,X.chrome&&X.android?I.observer.flushSoon():I.inputState.compositionPendingChange?Promise.resolve().then(()=>I.observer.flush()):setTimeout(()=>{I.inputState.composing<0&&I.docView.hasComposition&&I.update([])},50)},kA.contextmenu=I=>{I.inputState.lastContextMenu=Date.now()},kA.beforeinput=(I,A)=>{var g;let B;if(X.chrome&&X.android&&(B=cG.find(C=>C.inputType==A.inputType))&&(I.observer.delayAndroidKey(B.key,B.keyCode),B.key=="Backspace"||B.key=="Delete")){let C=((g=window.visualViewport)===null||g===void 0?void 0:g.height)||0;setTimeout(()=>{var Q;(((Q=window.visualViewport)===null||Q===void 0?void 0:Q.height)||0)>C+10&&I.hasFocus&&(I.contentDOM.blur(),I.focus())},100)}};const TG=new Set;function jy(I){TG.has(I)||(TG.add(I),I.addEventListener("copy",()=>{}),I.addEventListener("cut",()=>{}))}const eG=["pre-wrap","normal","pre-line","break-spaces"];class my{constructor(A){this.lineWrapping=A,this.doc=EA.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30,this.heightChanged=!1}heightForGap(A,g){let B=this.doc.lineAt(g).number-this.doc.lineAt(A).number+1;return this.lineWrapping&&(B+=Math.max(0,Math.ceil((g-A-B*this.lineLength*.5)/this.lineLength))),this.lineHeight*B}heightForLine(A){return this.lineWrapping?(1+Math.max(0,Math.ceil((A-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(A){return this.doc=A,this}mustRefreshForWrapping(A){return eG.indexOf(A)>-1!=this.lineWrapping}mustRefreshForHeights(A){let g=!1;for(let B=0;B<A.length;B++){let C=A[B];C<0?B++:this.heightSamples[Math.floor(C*10)]||(g=!0,this.heightSamples[Math.floor(C*10)]=!0)}return g}refresh(A,g,B,C,Q,E){let N=eG.indexOf(A)>-1,D=Math.round(g)!=Math.round(this.lineHeight)||this.lineWrapping!=N;if(this.lineWrapping=N,this.lineHeight=g,this.charWidth=B,this.textHeight=C,this.lineLength=Q,D){this.heightSamples={};for(let o=0;o<E.length;o++){let M=E[o];M<0?o++:this.heightSamples[Math.floor(M*10)]=!0}}return D}}class py{constructor(A,g){this.from=A,this.heights=g,this.index=0}get more(){return this.index<this.heights.length}}class ag{constructor(A,g,B,C,Q){this.from=A,this.length=g,this.top=B,this.height=C,this._content=Q}get type(){return typeof this._content=="number"?yA.Text:Array.isArray(this._content)?this._content:this._content.type}get to(){return this.from+this.length}get bottom(){return this.top+this.height}get widget(){return this._content instanceof CI?this._content.widget:null}get widgetLineBreaks(){return typeof this._content=="number"?this._content:0}join(A){let g=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(A._content)?A._content:[A]);return new ag(this.from,this.length+A.length,this.top,this.height+A.height,g)}}var cA=function(I){return I[I.ByPos=0]="ByPos",I[I.ByHeight=1]="ByHeight",I[I.ByPosNoHeight=2]="ByPosNoHeight",I}(cA||(cA={}));const VC=.001;class vA{constructor(A,g,B=2){this.length=A,this.height=g,this.flags=B}get outdated(){return(this.flags&2)>0}set outdated(A){this.flags=(A?2:0)|this.flags&-3}setHeight(A,g){this.height!=g&&(Math.abs(this.height-g)>VC&&(A.heightChanged=!0),this.height=g)}replace(A,g,B){return vA.of(B)}decomposeLeft(A,g){g.push(this)}decomposeRight(A,g){g.push(this)}applyChanges(A,g,B,C){let Q=this,E=B.doc;for(let N=C.length-1;N>=0;N--){let{fromA:D,toA:o,fromB:M,toB:G}=C[N],i=Q.lineAt(D,cA.ByPosNoHeight,B.setDoc(g),0,0),L=i.to>=o?i:Q.lineAt(o,cA.ByPosNoHeight,B,0,0);for(G+=L.to-o,o=L.to;N>0&&i.from<=C[N-1].toA;)D=C[N-1].fromA,M=C[N-1].fromB,N--,D<i.from&&(i=Q.lineAt(D,cA.ByPosNoHeight,B,0,0));M+=i.from-D,D=i.from;let Y=cD.build(B.setDoc(E),A,M,G);Q=Q.replace(D,o,Y)}return Q.updateHeight(B,0)}static empty(){return new gg(0,0)}static of(A){if(A.length==1)return A[0];let g=0,B=A.length,C=0,Q=0;for(;;)if(g==B)if(C>Q*2){let N=A[g-1];N.break?A.splice(--g,1,N.left,null,N.right):A.splice(--g,1,N.left,N.right),B+=1+N.break,C-=N.size}else if(Q>C*2){let N=A[B];N.break?A.splice(B,1,N.left,null,N.right):A.splice(B,1,N.left,N.right),B+=2+N.break,Q-=N.size}else break;else if(C<Q){let N=A[g++];N&&(C+=N.size)}else{let N=A[--B];N&&(Q+=N.size)}let E=0;return A[g-1]==null?(E=1,g--):A[g]==null&&(E=1,B++),new xy(vA.of(A.slice(0,g)),E,vA.of(A.slice(B)))}}vA.prototype.size=1;class zG extends vA{constructor(A,g,B){super(A,g),this.deco=B}blockAt(A,g,B,C){return new ag(C,this.length,B,this.height,this.deco||0)}lineAt(A,g,B,C,Q){return this.blockAt(0,B,C,Q)}forEachLine(A,g,B,C,Q,E){A<=Q+this.length&&g>=Q&&E(this.blockAt(0,B,C,Q))}updateHeight(A,g=0,B=!1,C){return C&&C.from<=g&&C.more&&this.setHeight(A,C.heights[C.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class gg extends zG{constructor(A,g){super(A,g,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(A,g,B,C){return new ag(C,this.length,B,this.height,this.breaks)}replace(A,g,B){let C=B[0];return B.length==1&&(C instanceof gg||C instanceof FA&&C.flags&4)&&Math.abs(this.length-C.length)<10?(C instanceof FA?C=new gg(C.length,this.height):C.height=this.height,this.outdated||(C.outdated=!1),C):vA.of(B)}updateHeight(A,g=0,B=!1,C){return C&&C.from<=g&&C.more?this.setHeight(A,C.heights[C.index++]):(B||this.outdated)&&this.setHeight(A,Math.max(this.widgetHeight,A.heightForLine(this.length-this.collapsed))+this.breaks*A.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class FA extends vA{constructor(A){super(A,0)}heightMetrics(A,g){let B=A.doc.lineAt(g).number,C=A.doc.lineAt(g+this.length).number,Q=C-B+1,E,N=0;if(A.lineWrapping){let D=Math.min(this.height,A.lineHeight*Q);E=D/Q,this.length>Q+1&&(N=(this.height-D)/(this.length-Q-1))}else E=this.height/Q;return{firstLine:B,lastLine:C,perLine:E,perChar:N}}blockAt(A,g,B,C){let{firstLine:Q,lastLine:E,perLine:N,perChar:D}=this.heightMetrics(g,C);if(g.lineWrapping){let o=C+Math.round(Math.max(0,Math.min(1,(A-B)/this.height))*this.length),M=g.doc.lineAt(o),G=N+M.length*D,i=Math.max(B,A-G/2);return new ag(M.from,M.length,i,G,0)}else{let o=Math.max(0,Math.min(E-Q,Math.floor((A-B)/N))),{from:M,length:G}=g.doc.line(Q+o);return new ag(M,G,B+N*o,N,0)}}lineAt(A,g,B,C,Q){if(g==cA.ByHeight)return this.blockAt(A,B,C,Q);if(g==cA.ByPosNoHeight){let{from:L,to:Y}=B.doc.lineAt(A);return new ag(L,Y-L,0,0,0)}let{firstLine:E,perLine:N,perChar:D}=this.heightMetrics(B,Q),o=B.doc.lineAt(A),M=N+o.length*D,G=o.number-E,i=C+N*G+D*(o.from-Q-G);return new ag(o.from,o.length,Math.max(C,Math.min(i,C+this.height-M)),M,0)}forEachLine(A,g,B,C,Q,E){A=Math.max(A,Q),g=Math.min(g,Q+this.length);let{firstLine:N,perLine:D,perChar:o}=this.heightMetrics(B,Q);for(let M=A,G=C;M<=g;){let i=B.doc.lineAt(M);if(M==A){let Y=i.number-N;G+=D*Y+o*(A-Q-Y)}let L=D+o*i.length;E(new ag(i.from,i.length,G,L,0)),G+=L,M=i.to+1}}replace(A,g,B){let C=this.length-g;if(C>0){let Q=B[B.length-1];Q instanceof FA?B[B.length-1]=new FA(Q.length+C):B.push(null,new FA(C-1))}if(A>0){let Q=B[0];Q instanceof FA?B[0]=new FA(A+Q.length):B.unshift(new FA(A-1),null)}return vA.of(B)}decomposeLeft(A,g){g.push(new FA(A-1),null)}decomposeRight(A,g){g.push(null,new FA(this.length-A-1))}updateHeight(A,g=0,B=!1,C){let Q=g+this.length;if(C&&C.from<=g+this.length&&C.more){let E=[],N=Math.max(g,C.from),D=-1;for(C.from>g&&E.push(new FA(C.from-g-1).updateHeight(A,g));N<=Q&&C.more;){let M=A.doc.lineAt(N).length;E.length&&E.push(null);let G=C.heights[C.index++];D==-1?D=G:Math.abs(G-D)>=VC&&(D=-2);let i=new gg(M,G);i.outdated=!1,E.push(i),N+=M+1}N<=Q&&E.push(null,new FA(Q-N).updateHeight(A,N));let o=vA.of(E);return(D<0||Math.abs(o.height-this.height)>=VC||Math.abs(D-this.heightMetrics(A,g).perLine)>=VC)&&(A.heightChanged=!0),o}else(B||this.outdated)&&(this.setHeight(A,A.heightForGap(g,g+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class xy extends vA{constructor(A,g,B){super(A.length+g+B.length,A.height+B.height,g|(A.outdated||B.outdated?2:0)),this.left=A,this.right=B,this.size=A.size+B.size}get break(){return this.flags&1}blockAt(A,g,B,C){let Q=B+this.left.height;return A<Q?this.left.blockAt(A,g,B,C):this.right.blockAt(A,g,Q,C+this.left.length+this.break)}lineAt(A,g,B,C,Q){let E=C+this.left.height,N=Q+this.left.length+this.break,D=g==cA.ByHeight?A<E:A<N,o=D?this.left.lineAt(A,g,B,C,Q):this.right.lineAt(A,g,B,E,N);if(this.break||(D?o.to<N:o.from>N))return o;let M=g==cA.ByPosNoHeight?cA.ByPosNoHeight:cA.ByPos;return D?o.join(this.right.lineAt(N,M,B,E,N)):this.left.lineAt(N,M,B,C,Q).join(o)}forEachLine(A,g,B,C,Q,E){let N=C+this.left.height,D=Q+this.left.length+this.break;if(this.break)A<D&&this.left.forEachLine(A,g,B,C,Q,E),g>=D&&this.right.forEachLine(A,g,B,N,D,E);else{let o=this.lineAt(D,cA.ByPos,B,C,Q);A<o.from&&this.left.forEachLine(A,o.from-1,B,C,Q,E),o.to>=A&&o.from<=g&&E(o),g>o.to&&this.right.forEachLine(o.to+1,g,B,N,D,E)}}replace(A,g,B){let C=this.left.length+this.break;if(g<C)return this.balanced(this.left.replace(A,g,B),this.right);if(A>this.left.length)return this.balanced(this.left,this.right.replace(A-C,g-C,B));let Q=[];A>0&&this.decomposeLeft(A,Q);let E=Q.length;for(let N of B)Q.push(N);if(A>0&&FG(Q,E-1),g<this.length){let N=Q.length;this.decomposeRight(g,Q),FG(Q,N)}return vA.of(Q)}decomposeLeft(A,g){let B=this.left.length;if(A<=B)return this.left.decomposeLeft(A,g);g.push(this.left),this.break&&(B++,A>=B&&g.push(null)),A>B&&this.right.decomposeLeft(A-B,g)}decomposeRight(A,g){let B=this.left.length,C=B+this.break;if(A>=C)return this.right.decomposeRight(A-C,g);A<B&&this.left.decomposeRight(A,g),this.break&&A<C&&g.push(null),g.push(this.right)}balanced(A,g){return A.size>2*g.size||g.size>2*A.size?vA.of(this.break?[A,null,g]:[A,g]):(this.left=A,this.right=g,this.height=A.height+g.height,this.outdated=A.outdated||g.outdated,this.size=A.size+g.size,this.length=A.length+this.break+g.length,this)}updateHeight(A,g=0,B=!1,C){let{left:Q,right:E}=this,N=g+Q.length+this.break,D=null;return C&&C.from<=g+Q.length&&C.more?D=Q=Q.updateHeight(A,g,B,C):Q.updateHeight(A,g,B),C&&C.from<=N+E.length&&C.more?D=E=E.updateHeight(A,N,B,C):E.updateHeight(A,N,B),D?this.balanced(Q,E):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function FG(I,A){let g,B;I[A]==null&&(g=I[A-1])instanceof FA&&(B=I[A+1])instanceof FA&&I.splice(A-1,3,new FA(g.length+1+B.length))}const ny=5;class cD{constructor(A,g){this.pos=A,this.oracle=g,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=A}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(A,g){if(this.lineStart>-1){let B=Math.min(g,this.lineEnd),C=this.nodes[this.nodes.length-1];C instanceof gg?C.length+=B-this.pos:(B>this.pos||!this.isCovered)&&this.nodes.push(new gg(B-this.pos,-1)),this.writtenTo=B,g>B&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=g}point(A,g,B){if(A<g||B.heightRelevant){let C=B.widget?B.widget.estimatedHeight:0,Q=B.widget?B.widget.lineBreaks:0;C<0&&(C=this.oracle.lineHeight);let E=g-A;B.block?this.addBlock(new zG(E,C,B)):(E||Q||C>=ny)&&this.addLineDeco(C,Q,E)}else g>A&&this.span(A,g);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:A,to:g}=this.oracle.doc.lineAt(this.pos);this.lineStart=A,this.lineEnd=g,this.writtenTo<A&&((this.writtenTo<A-1||this.nodes[this.nodes.length-1]==null)&&this.nodes.push(this.blankContent(this.writtenTo,A-1)),this.nodes.push(null)),this.pos>A&&this.nodes.push(new gg(this.pos-A,-1)),this.writtenTo=this.pos}blankContent(A,g){let B=new FA(g-A);return this.oracle.doc.lineAt(A).to==g&&(B.flags|=4),B}ensureLine(){this.enterLine();let A=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(A instanceof gg)return A;let g=new gg(0,-1);return this.nodes.push(g),g}addBlock(A){var g;this.enterLine();let B=(g=A.deco)===null||g===void 0?void 0:g.type;B==yA.WidgetAfter&&!this.isCovered&&this.ensureLine(),this.nodes.push(A),this.writtenTo=this.pos=this.pos+A.length,B!=yA.WidgetBefore&&(this.covering=A)}addLineDeco(A,g,B){let C=this.ensureLine();C.length+=B,C.collapsed+=B,C.widgetHeight=Math.max(C.widgetHeight,A),C.breaks+=g,this.writtenTo=this.pos=this.pos+B}finish(A){let g=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(g instanceof gg)&&!this.isCovered?this.nodes.push(new gg(0,-1)):(this.writtenTo<this.pos||g==null)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos));let B=A;for(let C of this.nodes)C instanceof gg&&C.updateHeight(this.oracle,B),B+=C?C.length:1;return this.nodes}static build(A,g,B,C){let Q=new cD(B,A);return NA.spans(g,B,C,Q,0),Q.finish(B)}}function Wy(I,A,g){let B=new Oy;return NA.compare(I,A,g,B,0),B.changes}class Oy{constructor(){this.changes=[]}compareRange(){}comparePoint(A,g,B,C){(A<g||B&&B.heightRelevant||C&&C.heightRelevant)&&gD(A,g,this.changes,5)}}function Jy(I,A){let g=I.getBoundingClientRect(),B=I.ownerDocument,C=B.defaultView||window,Q=Math.max(0,g.left),E=Math.min(C.innerWidth,g.right),N=Math.max(0,g.top),D=Math.min(C.innerHeight,g.bottom);for(let o=I.parentNode;o&&o!=B.body;)if(o.nodeType==1){let M=o,G=window.getComputedStyle(M);if((M.scrollHeight>M.clientHeight||M.scrollWidth>M.clientWidth)&&G.overflow!="visible"){let i=M.getBoundingClientRect();Q=Math.max(Q,i.left),E=Math.min(E,i.right),N=Math.max(N,i.top),D=o==I.parentNode?i.bottom:Math.min(D,i.bottom)}o=G.position=="absolute"||G.position=="fixed"?M.offsetParent:M.parentNode}else if(o.nodeType==11)o=o.host;else break;return{left:Q-g.left,right:Math.max(Q,E)-g.left,top:N-(g.top+A),bottom:Math.max(N,D)-(g.top+A)}}function uy(I,A){let g=I.getBoundingClientRect();return{left:0,right:g.right-g.left,top:A,bottom:g.bottom-(g.top+A)}}class YD{constructor(A,g,B){this.from=A,this.to=g,this.size=B}static same(A,g){if(A.length!=g.length)return!1;for(let B=0;B<A.length;B++){let C=A[B],Q=g[B];if(C.from!=Q.from||C.to!=Q.to||C.size!=Q.size)return!1}return!0}draw(A,g){return AA.replace({widget:new vy(this.size*(g?A.scaleY:A.scaleX),g)}).range(this.from,this.to)}}class vy extends XI{constructor(A,g){super(),this.size=A,this.vertical=g}eq(A){return A.size==this.size&&A.vertical==this.vertical}toDOM(){let A=document.createElement("div");return this.vertical?A.style.height=this.size+"px":(A.style.width=this.size+"px",A.style.height="2px",A.style.display="inline-block"),A}get estimatedHeight(){return this.vertical?this.size:-1}}class jG{constructor(A){this.state=A,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentDOMWidth=0,this.contentDOMHeight=0,this.editorHeight=0,this.editorWidth=0,this.scrollTop=0,this.scrolledToBottom=!0,this.scaleX=1,this.scaleY=1,this.scrollAnchorPos=0,this.scrollAnchorHeight=-1,this.scaler=mG,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=wA.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let g=A.facet(CD).some(B=>typeof B!="function"&&B.class=="cm-lineWrapping");this.heightOracle=new my(g),this.stateDeco=A.facet(FB).filter(B=>typeof B!="function"),this.heightMap=vA.empty().applyChanges(this.stateDeco,EA.empty,this.heightOracle.setDoc(A.doc),[new og(0,0,0,A.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=AA.set(this.lineGaps.map(B=>B.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let A=[this.viewport],{main:g}=this.state.selection;for(let B=0;B<=1;B++){let C=B?g.head:g.anchor;if(!A.some(({from:Q,to:E})=>C>=Q&&C<=E)){let{from:Q,to:E}=this.lineBlockAt(C);A.push(new XC(Q,E))}}this.viewports=A.sort((B,C)=>B.from-C.from),this.scaler=this.heightMap.height<=7e6?mG:new ry(this.heightOracle,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,A=>{this.viewportLines.push(this.scaler.scale==1?A:pB(A,this.scaler))})}update(A,g=null){this.state=A.state;let B=this.stateDeco;this.stateDeco=this.state.facet(FB).filter(M=>typeof M!="function");let C=A.changedRanges,Q=og.extendWithRanges(C,Wy(B,this.stateDeco,A?A.changes:bA.empty(this.state.doc.length))),E=this.heightMap.height,N=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);this.heightMap=this.heightMap.applyChanges(this.stateDeco,A.startState.doc,this.heightOracle.setDoc(this.state.doc),Q),this.heightMap.height!=E&&(A.flags|=2),N?(this.scrollAnchorPos=A.changes.mapPos(N.from,-1),this.scrollAnchorHeight=N.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=this.heightMap.height);let D=Q.length?this.mapViewport(this.viewport,A.changes):this.viewport;(g&&(g.range.head<D.from||g.range.head>D.to)||!this.viewportIsAppropriate(D))&&(D=this.getViewport(0,g));let o=!A.changes.empty||A.flags&2||D.from!=this.viewport.from||D.to!=this.viewport.to;this.viewport=D,this.updateForViewport(),o&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,A.changes))),A.flags|=this.computeVisibleRanges(),g&&(this.scrollTarget=g),!this.mustEnforceCursorAssoc&&A.selectionSet&&A.view.lineWrapping&&A.state.selection.main.empty&&A.state.selection.main.assoc&&!A.state.facet(XM)&&(this.mustEnforceCursorAssoc=!0)}measure(A){let g=A.contentDOM,B=window.getComputedStyle(g),C=this.heightOracle,Q=B.whiteSpace;this.defaultTextDirection=B.direction=="rtl"?wA.RTL:wA.LTR;let E=this.heightOracle.mustRefreshForWrapping(Q),N=g.getBoundingClientRect(),D=E||this.mustMeasureContent||this.contentDOMHeight!=N.height;this.contentDOMHeight=N.height,this.mustMeasureContent=!1;let o=0,M=0;if(N.width&&N.height){let y=N.width/g.offsetWidth,S=N.height/g.offsetHeight;y>.995&&y<1.005&&(y=1),S>.995&&S<1.005&&(S=1),(this.scaleX!=y||this.scaleY!=S)&&(this.scaleX=y,this.scaleY=S,o|=8,E=D=!0)}let G=(parseInt(B.paddingTop)||0)*this.scaleY,i=(parseInt(B.paddingBottom)||0)*this.scaleY;(this.paddingTop!=G||this.paddingBottom!=i)&&(this.paddingTop=G,this.paddingBottom=i,o|=10),this.editorWidth!=A.scrollDOM.clientWidth&&(C.lineWrapping&&(D=!0),this.editorWidth=A.scrollDOM.clientWidth,o|=8);let L=A.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=L&&(this.scrollAnchorHeight=-1,this.scrollTop=L),this.scrolledToBottom=ZM(A.scrollDOM);let Y=(this.printing?uy:Jy)(g,this.paddingTop),w=Y.top-this.pixelViewport.top,t=Y.bottom-this.pixelViewport.bottom;this.pixelViewport=Y;let Z=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(Z!=this.inView&&(this.inView=Z,Z&&(D=!0)),!this.inView&&!this.scrollTarget)return 0;let h=N.width;if((this.contentDOMWidth!=h||this.editorHeight!=A.scrollDOM.clientHeight)&&(this.contentDOMWidth=N.width,this.editorHeight=A.scrollDOM.clientHeight,o|=8),D){let y=A.docView.measureVisibleLineHeights(this.viewport);if(C.mustRefreshForHeights(y)&&(E=!0),E||C.lineWrapping&&Math.abs(h-this.contentDOMWidth)>C.charWidth){let{lineHeight:S,charWidth:c,textHeight:k}=A.docView.measureTextSize();E=S>0&&C.refresh(Q,S,c,k,h/c,y),E&&(A.docView.minWidth=0,o|=8)}w>0&&t>0?M=Math.max(w,t):w<0&&t<0&&(M=Math.min(w,t)),C.heightChanged=!1;for(let S of this.viewports){let c=S.from==this.viewport.from?y:A.docView.measureVisibleLineHeights(S);this.heightMap=(E?vA.empty().applyChanges(this.stateDeco,EA.empty,this.heightOracle,[new og(0,0,0,A.state.doc.length)]):this.heightMap).updateHeight(C,0,E,new py(S.from,c))}C.heightChanged&&(o|=2)}let K=!this.viewportIsAppropriate(this.viewport,M)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return K&&(this.viewport=this.getViewport(M,this.scrollTarget)),this.updateForViewport(),(o&2||K)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(E?[]:this.lineGaps,A)),o|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,A.docView.enforceCursorAssoc()),o}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(A,g){let B=.5-Math.max(-.5,Math.min(.5,A/1e3/2)),C=this.heightMap,Q=this.heightOracle,{visibleTop:E,visibleBottom:N}=this,D=new XC(C.lineAt(E-B*1e3,cA.ByHeight,Q,0,0).from,C.lineAt(N+(1-B)*1e3,cA.ByHeight,Q,0,0).to);if(g){let{head:o}=g.range;if(o<D.from||o>D.to){let M=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),G=C.lineAt(o,cA.ByPos,Q,0,0),i;g.y=="center"?i=(G.top+G.bottom)/2-M/2:g.y=="start"||g.y=="nearest"&&o<D.from?i=G.top:i=G.bottom-M,D=new XC(C.lineAt(i-1e3/2,cA.ByHeight,Q,0,0).from,C.lineAt(i+M+1e3/2,cA.ByHeight,Q,0,0).to)}}return D}mapViewport(A,g){let B=g.mapPos(A.from,-1),C=g.mapPos(A.to,1);return new XC(this.heightMap.lineAt(B,cA.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(C,cA.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:A,to:g},B=0){if(!this.inView)return!0;let{top:C}=this.heightMap.lineAt(A,cA.ByPos,this.heightOracle,0,0),{bottom:Q}=this.heightMap.lineAt(g,cA.ByPos,this.heightOracle,0,0),{visibleTop:E,visibleBottom:N}=this;return(A==0||C<=E-Math.max(10,Math.min(-B,250)))&&(g==this.state.doc.length||Q>=N+Math.max(10,Math.min(B,250)))&&C>E-2*1e3&&Q<N+2*1e3}mapLineGaps(A,g){if(!A.length||g.empty)return A;let B=[];for(let C of A)g.touchesRange(C.from,C.to)||B.push(new YD(g.mapPos(C.from),g.mapPos(C.to),C.size));return B}ensureLineGaps(A,g){let B=this.heightOracle.lineWrapping,C=B?1e4:2e3,Q=C>>1,E=C<<1;if(this.defaultTextDirection!=wA.LTR&&!B)return[];let N=[],D=(o,M,G,i)=>{if(M-o<Q)return;let L=this.state.selection.main,Y=[L.from];L.empty||Y.push(L.to);for(let t of Y)if(t>o&&t<M){D(o,t-10,G,i),D(t+10,M,G,i);return}let w=Xy(A,t=>t.from>=G.from&&t.to<=G.to&&Math.abs(t.from-o)<Q&&Math.abs(t.to-M)<Q&&!Y.some(Z=>t.from<Z&&t.to>Z));if(!w){if(M<G.to&&g&&B&&g.visibleRanges.some(t=>t.from<=M&&t.to>=M)){let t=g.moveToLineBoundary(j.cursor(M),!1,!0).head;t>o&&(M=t)}w=new YD(o,M,this.gapSize(G,o,M,i))}N.push(w)};for(let o of this.viewportLines){if(o.length<E)continue;let M=Vy(o.from,o.to,this.stateDeco);if(M.total<E)continue;let G=this.scrollTarget?this.scrollTarget.range.head:null,i,L;if(B){let Y=C/this.heightOracle.lineLength*this.heightOracle.lineHeight,w,t;if(G!=null){let Z=fC(M,G),h=((this.visibleBottom-this.visibleTop)/2+Y)/o.height;w=Z-h,t=Z+h}else w=(this.visibleTop-o.top-Y)/o.height,t=(this.visibleBottom-o.top+Y)/o.height;i=rC(M,w),L=rC(M,t)}else{let Y=M.total*this.heightOracle.charWidth,w=C*this.heightOracle.charWidth,t,Z;if(G!=null){let h=fC(M,G),K=((this.pixelViewport.right-this.pixelViewport.left)/2+w)/Y;t=h-K,Z=h+K}else t=(this.pixelViewport.left-w)/Y,Z=(this.pixelViewport.right+w)/Y;i=rC(M,t),L=rC(M,Z)}i>o.from&&D(o.from,i,o,M),L<o.to&&D(L,o.to,o,M)}return N}gapSize(A,g,B,C){let Q=fC(C,B)-fC(C,g);return this.heightOracle.lineWrapping?A.height*Q:C.total*this.heightOracle.charWidth*Q}updateLineGaps(A){YD.same(A,this.lineGaps)||(this.lineGaps=A,this.lineGapDeco=AA.set(A.map(g=>g.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(){let A=this.stateDeco;this.lineGaps.length&&(A=A.concat(this.lineGapDeco));let g=[];NA.spans(A,this.viewport.from,this.viewport.to,{span(C,Q){g.push({from:C,to:Q})},point(){}},20);let B=g.length!=this.visibleRanges.length||this.visibleRanges.some((C,Q)=>C.from!=g[Q].from||C.to!=g[Q].to);return this.visibleRanges=g,B?4:0}lineBlockAt(A){return A>=this.viewport.from&&A<=this.viewport.to&&this.viewportLines.find(g=>g.from<=A&&g.to>=A)||pB(this.heightMap.lineAt(A,cA.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(A){return pB(this.heightMap.lineAt(this.scaler.fromDOM(A),cA.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(A){let g=this.lineBlockAtHeight(A+8);return g.from>=this.viewport.from||this.viewportLines[0].top-A>200?g:this.viewportLines[0]}elementAtHeight(A){return pB(this.heightMap.blockAt(this.scaler.fromDOM(A),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class XC{constructor(A,g){this.from=A,this.to=g}}function Vy(I,A,g){let B=[],C=I,Q=0;return NA.spans(g,I,A,{span(){},point(E,N){E>C&&(B.push({from:C,to:E}),Q+=E-C),C=N}},20),C<A&&(B.push({from:C,to:A}),Q+=A-C),{total:Q,ranges:B}}function rC({total:I,ranges:A},g){if(g<=0)return A[0].from;if(g>=1)return A[A.length-1].to;let B=Math.floor(I*g);for(let C=0;;C++){let{from:Q,to:E}=A[C],N=E-Q;if(B<=N)return Q+B;B-=N}}function fC(I,A){let g=0;for(let{from:B,to:C}of I.ranges){if(A<=C){g+=A-B;break}g+=C-B}return g/I.total}function Xy(I,A){for(let g of I)if(A(g))return g}const mG={toDOM(I){return I},fromDOM(I){return I},scale:1};class ry{constructor(A,g,B){let C=0,Q=0,E=0;this.viewports=B.map(({from:N,to:D})=>{let o=g.lineAt(N,cA.ByPos,A,0,0).top,M=g.lineAt(D,cA.ByPos,A,0,0).bottom;return C+=M-o,{from:N,to:D,top:o,bottom:M,domTop:0,domBottom:0}}),this.scale=(7e6-C)/(g.height-C);for(let N of this.viewports)N.domTop=E+(N.top-Q)*this.scale,E=N.domBottom=N.domTop+(N.bottom-N.top),Q=N.bottom}toDOM(A){for(let g=0,B=0,C=0;;g++){let Q=g<this.viewports.length?this.viewports[g]:null;if(!Q||A<Q.top)return C+(A-B)*this.scale;if(A<=Q.bottom)return Q.domTop+(A-Q.top);B=Q.bottom,C=Q.domBottom}}fromDOM(A){for(let g=0,B=0,C=0;;g++){let Q=g<this.viewports.length?this.viewports[g]:null;if(!Q||A<Q.domTop)return B+(A-C)/this.scale;if(A<=Q.domBottom)return Q.top+(A-Q.domTop);B=Q.bottom,C=Q.domBottom}}}function pB(I,A){if(A.scale==1)return I;let g=A.toDOM(I.top),B=A.toDOM(I.bottom);return new ag(I.from,I.length,g,B-g,Array.isArray(I._content)?I._content.map(C=>pB(C,A)):I._content)}const PC=r.define({combine:I=>I.join(" ")}),yD=r.define({combine:I=>I.indexOf(!0)>-1}),wD=AI.newName(),pG=AI.newName(),xG=AI.newName(),nG={"&light":"."+pG,"&dark":"."+xG};function tD(I,A,g){return new AI(A,{finish(B){return/&/.test(B)?B.replace(/&\w*/,C=>{if(C=="&")return I;if(!g||!g[C])throw new RangeError(`Unsupported selector: ${C}`);return g[C]}):I+" "+B}})}const fy=tD("."+wD,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",insetInlineStart:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-highlightSpace:before":{content:"attr(data-display)",position:"absolute",pointerEvents:"none",color:"#888"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},nG),xB="";class Py{constructor(A,g){this.points=A,this.text="",this.lineSeparator=g.facet(CA.lineSeparator)}append(A){this.text+=A}lineBreak(){this.text+=xB}readRange(A,g){if(!A)return this;let B=A.parentNode;for(let C=A;;){this.findPointBefore(B,C);let Q=this.text.length;this.readNode(C);let E=C.nextSibling;if(E==g)break;let N=SA.get(C),D=SA.get(E);(N&&D?N.breakAfter:(N?N.breakAfter:WG(C))||WG(E)&&(C.nodeName!="BR"||C.cmIgnore)&&this.text.length>Q)&&this.lineBreak(),C=E}return this.findPointBefore(B,g),this}readTextNode(A){let g=A.nodeValue;for(let B of this.points)B.node==A&&(B.pos=this.text.length+Math.min(B.offset,g.length));for(let B=0,C=this.lineSeparator?null:/\r\n?|\n/g;;){let Q=-1,E=1,N;if(this.lineSeparator?(Q=g.indexOf(this.lineSeparator,B),E=this.lineSeparator.length):(N=C.exec(g))&&(Q=N.index,E=N[0].length),this.append(g.slice(B,Q<0?g.length:Q)),Q<0)break;if(this.lineBreak(),E>1)for(let D of this.points)D.node==A&&D.pos>this.text.length&&(D.pos-=E-1);B=Q+E}}readNode(A){if(A.cmIgnore)return;let g=SA.get(A),B=g&&g.overrideDOMText;if(B!=null){this.findPointInside(A,B.length);for(let C=B.iter();!C.next().done;)C.lineBreak?this.lineBreak():this.append(C.value)}else A.nodeType==3?this.readTextNode(A):A.nodeName=="BR"?A.nextSibling&&this.lineBreak():A.nodeType==1&&this.readRange(A.firstChild,null)}findPointBefore(A,g){for(let B of this.points)B.node==A&&A.childNodes[B.offset]==g&&(B.pos=this.text.length)}findPointInside(A,g){for(let B of this.points)(A.nodeType==3?B.node==A:A.contains(B.node))&&(B.pos=this.text.length+Math.min(g,B.offset))}}function WG(I){return I.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(I.nodeName)}class OG{constructor(A,g){this.node=A,this.offset=g,this.pos=-1}}class qy{constructor(A,g,B,C){this.typeOver=C,this.bounds=null,this.text="";let{impreciseHead:Q,impreciseAnchor:E}=A.docView;if(A.state.readOnly&&g>-1)this.newSel=null;else if(g>-1&&(this.bounds=A.docView.domBoundsAround(g,B,0))){let N=Q||E?[]:Aw(A),D=new Py(N,A.state);D.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=D.text,this.newSel=gw(N,this.bounds.from)}else{let N=A.observer.selectionRange,D=Q&&Q.node==N.focusNode&&Q.offset==N.focusOffset||!vE(A.contentDOM,N.focusNode)?A.state.selection.main.head:A.docView.posFromDOM(N.focusNode,N.focusOffset),o=E&&E.node==N.anchorNode&&E.offset==N.anchorOffset||!vE(A.contentDOM,N.anchorNode)?A.state.selection.main.anchor:A.docView.posFromDOM(N.anchorNode,N.anchorOffset);this.newSel=j.single(o,D)}}}function JG(I,A){let g,{newSel:B}=A,C=I.state.selection.main,Q=I.inputState.lastKeyTime>Date.now()-100?I.inputState.lastKeyCode:-1;if(A.bounds){let{from:E,to:N}=A.bounds,D=C.from,o=null;(Q===8||X.android&&A.text.length<N-E)&&(D=C.to,o="end");let M=$y(I.state.doc.sliceString(E,N,xB),A.text,D-E,o);M&&(X.chrome&&Q==13&&M.toB==M.from+2&&A.text.slice(M.from,M.toB)==xB+xB&&M.toB--,g={from:E+M.from,to:E+M.toA,insert:EA.of(A.text.slice(M.from,M.toB).split(xB))})}else B&&(!I.hasFocus&&I.state.facet(WC)||B.main.eq(C))&&(B=null);if(!g&&!B)return!1;if(!g&&A.typeOver&&!C.empty&&B&&B.main.empty?g={from:C.from,to:C.to,insert:I.state.doc.slice(C.from,C.to)}:g&&g.from>=C.from&&g.to<=C.to&&(g.from!=C.from||g.to!=C.to)&&C.to-C.from-(g.to-g.from)<=4?g={from:C.from,to:C.to,insert:I.state.doc.slice(C.from,g.from).append(g.insert).append(I.state.doc.slice(g.to,C.to))}:(X.mac||X.android)&&g&&g.from==g.to&&g.from==C.head-1&&/^\. ?$/.test(g.insert.toString())&&I.contentDOM.getAttribute("autocorrect")=="off"?(B&&g.insert.length==2&&(B=j.single(B.main.anchor-1,B.main.head-1)),g={from:C.from,to:C.to,insert:EA.of([" "])}):X.chrome&&g&&g.from==g.to&&g.from==C.head&&g.insert.toString()==`
|
1624
|
-
`&&I.lineWrapping&&(B&&(B=j.single(B.main.anchor-1,B.main.head-1)),g={from:C.from,to:C.to,insert:EA.of([" "])}),g){if(X.ios&&I.inputState.flushIOSKey(I)||X.android&&(g.from==C.from&&g.to==C.to&&g.insert.length==1&&g.insert.lines==2&&vI(I.contentDOM,"Enter",13)||(g.from==C.from-1&&g.to==C.to&&g.insert.length==0||Q==8&&g.insert.length<g.to-g.from&&g.to>C.head)&&vI(I.contentDOM,"Backspace",8)||g.from==C.from&&g.to==C.to+1&&g.insert.length==0&&vI(I.contentDOM,"Delete",46)))return!0;let E=g.insert.toString();I.inputState.composing>=0&&I.inputState.composing++;let N,D=()=>N||(N=_y(I,g,B));return I.state.facet(uM).some(o=>o(I,g.from,g.to,E,D))||I.dispatch(D()),!0}else if(B&&!B.main.eq(C)){let E=!1,N="select";return I.inputState.lastSelectionTime>Date.now()-50&&(I.inputState.lastSelectionOrigin=="select"&&(E=!0),N=I.inputState.lastSelectionOrigin),I.dispatch({selection:B,scrollIntoView:E,userEvent:N}),!0}else return!1}function _y(I,A,g){let B,C=I.state,Q=C.selection.main;if(A.from>=Q.from&&A.to<=Q.to&&A.to-A.from>=(Q.to-Q.from)/3&&(!g||g.main.empty&&g.main.from==A.from+A.insert.length)&&I.inputState.composing<0){let N=Q.from<A.from?C.sliceDoc(Q.from,A.from):"",D=Q.to>A.to?C.sliceDoc(A.to,Q.to):"";B=C.replaceSelection(I.state.toText(N+A.insert.sliceString(0,void 0,I.state.lineBreak)+D))}else{let N=C.changes(A),D=g&&g.main.to<=N.newLength?g.main:void 0;if(C.selection.ranges.length>1&&I.inputState.composing>=0&&A.to<=Q.to&&A.to>=Q.to-10){let o=I.state.sliceDoc(A.from,A.to),M,G=g&&DG(I,g.main.head);if(G){let Y=A.insert.length-(A.to-A.from);M={from:G.from,to:G.to-Y}}else M=I.state.doc.lineAt(Q.head);let i=Q.to-A.to,L=Q.to-Q.from;B=C.changeByRange(Y=>{if(Y.from==Q.from&&Y.to==Q.to)return{changes:N,range:D||Y.map(N)};let w=Y.to-i,t=w-o.length;if(Y.to-Y.from!=L||I.state.sliceDoc(t,w)!=o||Y.to>=M.from&&Y.from<=M.to)return{range:Y};let Z=C.changes({from:t,to:w,insert:A.insert}),h=Y.to-Q.to;return{changes:Z,range:D?j.range(Math.max(0,D.anchor+h),Math.max(0,D.head+h)):Y.map(Z)}})}else B={changes:N,selection:D&&C.selection.replaceRange(D)}}let E="input.type";return(I.composing||I.inputState.compositionPendingChange&&I.inputState.compositionEndedAt>Date.now()-50)&&(I.inputState.compositionPendingChange=!1,E+=".compose",I.inputState.compositionFirstChange&&(E+=".start",I.inputState.compositionFirstChange=!1)),C.update(B,{userEvent:E,scrollIntoView:!0})}function $y(I,A,g,B){let C=Math.min(I.length,A.length),Q=0;for(;Q<C&&I.charCodeAt(Q)==A.charCodeAt(Q);)Q++;if(Q==C&&I.length==A.length)return null;let E=I.length,N=A.length;for(;E>0&&N>0&&I.charCodeAt(E-1)==A.charCodeAt(N-1);)E--,N--;if(B=="end"){let D=Math.max(0,Q-Math.min(E,N));g-=E+D-Q}if(E<Q&&I.length<A.length){let D=g<=Q&&g>=E?Q-g:0;Q-=D,N=Q+(N-E),E=Q}else if(N<Q){let D=g<=Q&&g>=N?Q-g:0;Q-=D,E=Q+(E-N),N=Q}return{from:Q,toA:E,toB:N}}function Aw(I){let A=[];if(I.root.activeElement!=I.contentDOM)return A;let{anchorNode:g,anchorOffset:B,focusNode:C,focusOffset:Q}=I.observer.selectionRange;return g&&(A.push(new OG(g,B)),(C!=g||Q!=B)&&A.push(new OG(C,Q))),A}function gw(I,A){if(I.length==0)return null;let g=I[0].pos,B=I.length==2?I[1].pos:g;return g>-1&&B>-1?j.single(g+A,B+A):null}const Iw={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},sD=X.ie&&X.ie_version<=11;class Bw{constructor(A){this.view=A,this.active=!1,this.selectionRange=new JY,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.resizeContent=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=A.contentDOM,this.observer=new MutationObserver(g=>{for(let B of g)this.queue.push(B);(X.ie&&X.ie_version<=11||X.ios&&A.composing)&&g.some(B=>B.type=="childList"&&B.removedNodes.length||B.type=="characterData"&&B.oldValue.length>B.target.nodeValue.length)?this.flushSoon():this.flush()}),sD&&(this.onCharData=g=>{this.queue.push({target:g.target,type:"characterData",oldValue:g.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var g;((g=this.view.docView)===null||g===void 0?void 0:g.lastUpdate)<Date.now()-75&&this.onResize()}),this.resizeScroll.observe(A.scrollDOM),this.resizeContent=new ResizeObserver(()=>this.view.requestMeasure()),this.resizeContent.observe(A.contentDOM)),this.addWindowListeners(this.win=A.win),this.start(),typeof IntersectionObserver=="function"&&(this.intersection=new IntersectionObserver(g=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),g.length>0&&g[g.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(g=>{g.length>0&&g[g.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(A){this.view.inputState.runScrollHandlers(this.view,A),this.intersecting&&this.view.measure()}onScroll(A){this.intersecting&&this.flush(!1),this.onScrollChanged(A)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(){this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500)}updateGaps(A){if(this.gapIntersection&&(A.length!=this.gaps.length||this.gaps.some((g,B)=>g!=A[B]))){this.gapIntersection.disconnect();for(let g of A)this.gapIntersection.observe(g);this.gaps=A}}onSelectionChange(A){let g=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:B}=this,C=this.selectionRange;if(B.state.facet(WC)?B.root.activeElement!=this.dom:!FC(B.dom,C))return;let Q=C.anchorNode&&B.docView.nearest(C.anchorNode);if(Q&&Q.ignoreEvent(A)){g||(this.selectionChanged=!1);return}(X.ie&&X.ie_version<=11||X.android&&X.chrome)&&!B.state.selection.main.empty&&C.focusNode&&jC(C.focusNode,C.focusOffset,C.anchorNode,C.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:A}=this,g=X.safari&&A.root.nodeType==11&&xY(this.dom.ownerDocument)==this.dom&&Cw(this.view)||zC(A.root);if(!g||this.selectionRange.eq(g))return!1;let B=FC(this.dom,g);return B&&!this.selectionChanged&&A.inputState.lastFocusTime>Date.now()-200&&A.inputState.lastTouchTime<Date.now()-300&&vY(this.dom,g)?(this.view.inputState.lastFocusTime=0,A.docView.updateSelection(),!1):(this.selectionRange.setRange(g),B&&(this.selectionChanged=!0),!0)}setSelectionRange(A,g){this.selectionRange.set(A.node,A.offset,g.node,g.offset),this.selectionChanged=!1}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let A=0,g=null;for(let B=this.dom;B;)if(B.nodeType==1)!g&&A<this.scrollTargets.length&&this.scrollTargets[A]==B?A++:g||(g=this.scrollTargets.slice(0,A)),g&&g.push(B),B=B.assignedSlot||B.parentNode;else if(B.nodeType==11)B=B.host;else break;if(A<this.scrollTargets.length&&!g&&(g=this.scrollTargets.slice(0,A)),g){for(let B of this.scrollTargets)B.removeEventListener("scroll",this.onScroll);for(let B of this.scrollTargets=g)B.addEventListener("scroll",this.onScroll)}}ignore(A){if(!this.active)return A();try{return this.stop(),A()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,Iw),sD&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),sD&&this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData))}clear(){this.processRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(A,g){var B;if(!this.delayedAndroidKey){let C=()=>{let Q=this.delayedAndroidKey;Q&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=Q.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&Q.force&&vI(this.dom,Q.key,Q.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(C)}(!this.delayedAndroidKey||A=="Enter")&&(this.delayedAndroidKey={key:A,keyCode:g,force:this.lastChange<Date.now()-50||!!(!((B=this.delayedAndroidKey)===null||B===void 0)&&B.force)})}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey),this.delayedAndroidKey=null,this.flushingAndroidKey=-1}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=this.view.win.requestAnimationFrame(()=>{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let A of this.observer.takeRecords())this.queue.push(A);return this.queue}processRecords(){let A=this.pendingRecords();A.length&&(this.queue=[]);let g=-1,B=-1,C=!1;for(let Q of A){let E=this.readMutation(Q);E&&(E.typeOver&&(C=!0),g==-1?{from:g,to:B}=E:(g=Math.min(E.from,g),B=Math.max(E.to,B)))}return{from:g,to:B,typeOver:C}}readChange(){let{from:A,to:g,typeOver:B}=this.processRecords(),C=this.selectionChanged&&FC(this.dom,this.selectionRange);if(A<0&&!C)return null;A>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let Q=new qy(this.view,A,g,B);return this.view.docView.domChanged={newSel:Q.newSel?Q.newSel.main:null},Q}flush(A=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;A&&this.readSelectionRange();let g=this.readChange();if(!g)return!1;let B=this.view.state,C=JG(this.view,g);return this.view.state==B&&this.view.update([]),C}readMutation(A){let g=this.view.docView.nearest(A.target);if(!g||g.ignoreMutation(A))return null;if(g.markDirty(A.type=="attributes"),A.type=="attributes"&&(g.flags|=4),A.type=="childList"){let B=uG(g,A.previousSibling||A.target.previousSibling,-1),C=uG(g,A.nextSibling||A.target.nextSibling,1);return{from:B?g.posAfter(B):g.posAtStart,to:C?g.posBefore(C):g.posAtEnd,typeOver:!1}}else return A.type=="characterData"?{from:g.posAtStart,to:g.posAtEnd,typeOver:A.target.nodeValue==A.oldValue}:null}setWindow(A){A!=this.win&&(this.removeWindowListeners(this.win),this.win=A,this.addWindowListeners(this.win))}addWindowListeners(A){A.addEventListener("resize",this.onResize),A.addEventListener("beforeprint",this.onPrint),A.addEventListener("scroll",this.onScroll),A.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(A){A.removeEventListener("scroll",this.onScroll),A.removeEventListener("resize",this.onResize),A.removeEventListener("beforeprint",this.onPrint),A.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var A,g,B,C;this.stop(),(A=this.intersection)===null||A===void 0||A.disconnect(),(g=this.gapIntersection)===null||g===void 0||g.disconnect(),(B=this.resizeScroll)===null||B===void 0||B.disconnect(),(C=this.resizeContent)===null||C===void 0||C.disconnect();for(let Q of this.scrollTargets)Q.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey)}}function uG(I,A,g){for(;A;){let B=SA.get(A);if(B&&B.parent==I)return B;let C=A.parentNode;A=C!=I.dom?C:g>0?A.nextSibling:A.previousSibling}return null}function Cw(I){let A=null;function g(D){D.preventDefault(),D.stopImmediatePropagation(),A=D.getTargetRanges()[0]}if(I.contentDOM.addEventListener("beforeinput",g,!0),I.dom.ownerDocument.execCommand("indent"),I.contentDOM.removeEventListener("beforeinput",g,!0),!A)return null;let B=A.startContainer,C=A.startOffset,Q=A.endContainer,E=A.endOffset,N=I.docView.domAtPos(I.state.selection.main.anchor);return jC(N.node,N.offset,Q,E)&&([B,C,Q,E]=[Q,E,B,C]),{anchorNode:B,anchorOffset:C,focusNode:Q,focusOffset:E}}class q{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(A={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.style.cssText="position: fixed; top: -10000px",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM);let{dispatch:g}=A;this.dispatchTransactions=A.dispatchTransactions||g&&(B=>B.forEach(C=>g(C,this)))||(B=>this.update(B)),this.dispatch=this.dispatch.bind(this),this._root=A.root||uY(A.parent)||document,this.viewState=new jG(A.state||CA.create(A)),this.plugins=this.state.facet(zB).map(B=>new BD(B));for(let B of this.plugins)B.update(this);this.observer=new Bw(this),this.inputState=new ly(this),this.inputState.ensureHandlers(this,this.plugins),this.docView=new QG(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),A.parent&&A.parent.appendChild(this.dom)}dispatch(...A){let g=A.length==1&&A[0]instanceof dA?A:A.length==1&&Array.isArray(A[0])?A[0]:[this.state.update(...A)];this.dispatchTransactions(g,this)}update(A){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let g=!1,B=!1,C,Q=this.state;for(let i of A){if(i.startState!=Q)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");Q=i.state}if(this.destroyed){this.viewState.state=Q;return}let E=this.hasFocus,N=0,D=null;A.some(i=>i.annotation(HG))?(this.inputState.notifiedFocused=E,N=1):E!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=E,D=RG(Q,E),D||(N=1));let o=this.observer.delayedAndroidKey,M=null;if(o?(this.observer.clearDelayedAndroidKey(),M=this.observer.readChange(),(M&&!this.state.doc.eq(Q.doc)||!this.state.selection.eq(Q.selection))&&(M=null)):this.observer.clear(),Q.facet(CA.phrases)!=this.state.facet(CA.phrases))return this.setState(Q);C=OC.create(this,Q,A),C.flags|=N;let G=this.viewState.scrollTarget;try{this.updateState=2;for(let i of A){if(G&&(G=G.map(i.changes)),i.scrollIntoView){let{main:L}=i.state.selection;G=new nC(L.empty?L:j.cursor(L.head,L.head>L.anchor?-1:1))}for(let L of i.effects)L.is(rM)&&(G=L.value)}this.viewState.update(C,G),this.bidiCache=qC.update(this.bidiCache,C.changes),C.empty||(this.updatePlugins(C),this.inputState.update(C)),g=this.docView.update(C),this.state.facet(jB)!=this.styleModules&&this.mountStyles(),B=this.updateAttrs(),this.showAnnouncements(A),this.docView.updateSelection(g,A.some(i=>i.isUserEvent("select.pointer")))}finally{this.updateState=0}if(C.startState.facet(PC)!=C.state.facet(PC)&&(this.viewState.mustMeasureContent=!0),(g||B||G||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!C.empty)for(let i of this.state.facet(ID))i(C);(D||M)&&Promise.resolve().then(()=>{D&&this.state==D.startState&&this.dispatch(D),M&&!JG(this,M)&&o.force&&vI(this.contentDOM,o.key,o.keyCode)})}setState(A){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=A;return}this.updateState=2;let g=this.hasFocus;try{for(let B of this.plugins)B.destroy(this);this.viewState=new jG(A),this.plugins=A.facet(zB).map(B=>new BD(B)),this.pluginMap.clear();for(let B of this.plugins)B.update(this);this.docView=new QG(this),this.inputState.ensureHandlers(this,this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}g&&this.focus(),this.requestMeasure()}updatePlugins(A){let g=A.startState.facet(zB),B=A.state.facet(zB);if(g!=B){let C=[];for(let Q of B){let E=g.indexOf(Q);if(E<0)C.push(new BD(Q));else{let N=this.plugins[E];N.mustUpdate=A,C.push(N)}}for(let Q of this.plugins)Q.mustUpdate!=A&&Q.destroy(this);this.plugins=C,this.pluginMap.clear(),this.inputState.ensureHandlers(this,this.plugins)}else for(let C of this.plugins)C.mustUpdate=A;for(let C=0;C<this.plugins.length;C++)this.plugins[C].update(this)}measure(A=!0){if(this.destroyed)return;if(this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,A&&this.observer.forceFlush();let g=null,B=this.scrollDOM,C=B.scrollTop*this.scaleY,{scrollAnchorPos:Q,scrollAnchorHeight:E}=this.viewState;Math.abs(C-this.viewState.scrollTop)>1&&(E=-1),this.viewState.scrollAnchorHeight=-1;try{for(let N=0;;N++){if(E<0)if(ZM(B))Q=-1,E=this.viewState.heightMap.height;else{let L=this.viewState.scrollAnchorAt(C);Q=L.from,E=L.top}this.updateState=1;let D=this.viewState.measure(this);if(!D&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(N>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let o=[];D&4||([this.measureRequests,o]=[o,this.measureRequests]);let M=o.map(L=>{try{return L.read(this)}catch(Y){return Ng(this.state,Y),vG}}),G=OC.create(this,this.state,[]),i=!1;G.flags|=D,g?g.flags|=D:g=G,this.updateState=2,G.empty||(this.updatePlugins(G),this.inputState.update(G),this.updateAttrs(),i=this.docView.update(G));for(let L=0;L<o.length;L++)if(M[L]!=vG)try{let Y=o[L];Y.write&&Y.write(M[L],this)}catch(Y){Ng(this.state,Y)}if(i&&this.docView.updateSelection(!0),!G.viewportChanged&&this.measureRequests.length==0){if(this.viewState.editorHeight)if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null;continue}else{let Y=(Q<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(Q).top)-E;if(Y>1||Y<-1){C=C+Y,B.scrollTop=C/this.scaleY,E=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(g&&!g.empty)for(let N of this.state.facet(ID))N(g)}get themeClasses(){return wD+" "+(this.state.facet(yD)?xG:pG)+" "+this.state.facet(PC)}updateAttrs(){let A=VG(this,fM,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),g={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(WC)?"true":"false",class:"cm-content",style:`${X.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(g["aria-readonly"]="true"),VG(this,CD,g);let B=this.observer.ignore(()=>{let C=AD(this.contentDOM,this.contentAttrs,g),Q=AD(this.dom,this.editorAttrs,A);return C||Q});return this.editorAttrs=A,this.contentAttrs=g,B}showAnnouncements(A){let g=!0;for(let B of A)for(let C of B.effects)if(C.is(q.announce)){g&&(this.announceDOM.textContent=""),g=!1;let Q=this.announceDOM.appendChild(document.createElement("div"));Q.textContent=C.value}}mountStyles(){this.styleModules=this.state.facet(jB);let A=this.state.facet(q.cspNonce);AI.mount(this.root,this.styleModules.concat(fy).reverse(),A?{nonce:A}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(A){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),A){if(this.measureRequests.indexOf(A)>-1)return;if(A.key!=null){for(let g=0;g<this.measureRequests.length;g++)if(this.measureRequests[g].key===A.key){this.measureRequests[g]=A;return}}this.measureRequests.push(A)}}plugin(A){let g=this.pluginMap.get(A);return(g===void 0||g&&g.spec!=A)&&this.pluginMap.set(A,g=this.plugins.find(B=>B.spec==A)||null),g&&g.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(A){return this.readMeasured(),this.viewState.elementAtHeight(A)}lineBlockAtHeight(A){return this.readMeasured(),this.viewState.lineBlockAtHeight(A)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(A){return this.viewState.lineBlockAt(A)}get contentHeight(){return this.viewState.contentHeight}moveByChar(A,g,B){return iD(this,A,SG(this,A,g,B))}moveByGroup(A,g){return iD(this,A,SG(this,A,g,B=>sy(this,A.head,B)))}moveToLineBoundary(A,g,B=!0){return ty(this,A,g,B)}moveVertically(A,g,B){return iD(this,A,Ky(this,A,g,B))}domAtPos(A){return this.docView.domAtPos(A)}posAtDOM(A,g=0){return this.docView.posFromDOM(A,g)}posAtCoords(A,g=!0){return this.readMeasured(),iG(this,A,g)}coordsAtPos(A,g=1){this.readMeasured();let B=this.docView.coordsAt(A,g);if(!B||B.left==B.right)return B;let C=this.state.doc.lineAt(A),Q=this.bidiSpans(C),E=Q[QI.find(Q,A-C.from,-1,g)];return VE(B,E.dir==wA.LTR==g>0)}coordsForChar(A){return this.readMeasured(),this.docView.coordsForChar(A)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(A){return!this.state.facet(VM)||A<this.viewport.from||A>this.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(A))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(A){if(A.length>Qw)return BG(A.length);let g=this.textDirectionAt(A.from),B;for(let Q of this.bidiCache)if(Q.from==A.from&&Q.dir==g&&(Q.fresh||IG(Q.isolates,B=qM(this,A.from,A.to))))return Q.order;B||(B=qM(this,A.from,A.to));let C=Qy(A.text,g,B);return this.bidiCache.push(new qC(A.from,A.to,g,B,!0,C)),C}get hasFocus(){var A;return(this.dom.ownerDocument.hasFocus()||X.safari&&((A=this.inputState)===null||A===void 0?void 0:A.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{KM(this.contentDOM),this.docView.updateSelection()})}setRoot(A){this._root!=A&&(this._root=A,this.observer.setWindow((A.nodeType==9?A:A.ownerDocument).defaultView||window),this.mountStyles())}destroy(){for(let A of this.plugins)A.destroy(this);this.plugins=[],this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(A,g={}){return rM.of(new nC(typeof A=="number"?j.cursor(A):A,g.y,g.x,g.yMargin,g.xMargin))}static domEventHandlers(A){return RA.define(()=>({}),{eventHandlers:A})}static theme(A,g){let B=AI.newName(),C=[PC.of(B),jB.of(tD(`.${B}`,A))];return g&&g.dark&&C.push(yD.of(!0)),C}static baseTheme(A){return WI.lowest(jB.of(tD("."+wD,A,nG)))}static findFromDOM(A){var g;let B=A.querySelector(".cm-content"),C=B&&SA.get(B)||SA.get(A);return((g=C==null?void 0:C.rootView)===null||g===void 0?void 0:g.view)||null}}q.styleModule=jB,q.inputHandler=uM,q.focusChangeEffect=vM,q.perLineTextDirection=VM,q.exceptionSink=JM,q.updateListener=ID,q.editable=WC,q.mouseSelectionStyle=OM,q.dragMovesSelection=WM,q.clickAddsSelectionRange=nM,q.decorations=FB,q.atomicRanges=QD,q.bidiIsolatedRanges=PM,q.scrollMargins=_M,q.darkTheme=yD,q.cspNonce=r.define({combine:I=>I.length?I[0]:""}),q.contentAttributes=CD,q.editorAttributes=fM,q.lineWrapping=q.contentAttributes.of({class:"cm-lineWrapping"}),q.announce=IA.define();const Qw=4096,vG={};class qC{constructor(A,g,B,C,Q,E){this.from=A,this.to=g,this.dir=B,this.isolates=C,this.fresh=Q,this.order=E}static update(A,g){if(g.empty&&!A.some(Q=>Q.fresh))return A;let B=[],C=A.length?A[A.length-1].dir:wA.LTR;for(let Q=Math.max(0,A.length-10);Q<A.length;Q++){let E=A[Q];E.dir==C&&!g.touchesRange(E.from,E.to)&&B.push(new qC(g.mapPos(E.from,1),g.mapPos(E.to,-1),E.dir,E.isolates,!1,E.order))}return B}}function VG(I,A,g){for(let B=I.state.facet(A),C=B.length-1;C>=0;C--){let Q=B[C],E=typeof Q=="function"?Q(I):Q;E&&_E(E,g)}return g}const Ew=X.mac?"mac":X.windows?"win":X.linux?"linux":"key";function Dw(I,A){const g=I.split(/-(?!$)/);let B=g[g.length-1];B=="Space"&&(B=" ");let C,Q,E,N;for(let D=0;D<g.length-1;++D){const o=g[D];if(/^(cmd|meta|m)$/i.test(o))N=!0;else if(/^a(lt)?$/i.test(o))C=!0;else if(/^(c|ctrl|control)$/i.test(o))Q=!0;else if(/^s(hift)?$/i.test(o))E=!0;else if(/^mod$/i.test(o))A=="mac"?N=!0:Q=!0;else throw new Error("Unrecognized modifier name: "+o)}return C&&(B="Alt-"+B),Q&&(B="Ctrl-"+B),N&&(B="Meta-"+B),E&&(B="Shift-"+B),B}function _C(I,A,g){return A.altKey&&(I="Alt-"+I),A.ctrlKey&&(I="Ctrl-"+I),A.metaKey&&(I="Meta-"+I),g!==!1&&A.shiftKey&&(I="Shift-"+I),I}const Nw=WI.default(q.domEventHandlers({keydown(I,A){return fG(rG(A.state),I,A,"editor")}})),KD=r.define({enables:Nw}),XG=new WeakMap;function rG(I){let A=I.facet(KD),g=XG.get(A);return g||XG.set(A,g=Gw(A.reduce((B,C)=>B.concat(C),[]))),g}function ow(I,A,g){return fG(rG(I.state),A,I,g)}let EI=null;const Mw=4e3;function Gw(I,A=Ew){let g=Object.create(null),B=Object.create(null),C=(E,N)=>{let D=B[E];if(D==null)B[E]=N;else if(D!=N)throw new Error("Key binding "+E+" is used both as a regular binding and as a multi-stroke prefix")},Q=(E,N,D,o,M)=>{var G,i;let L=g[E]||(g[E]=Object.create(null)),Y=N.split(/ (?!$)/).map(Z=>Dw(Z,A));for(let Z=1;Z<Y.length;Z++){let h=Y.slice(0,Z).join(" ");C(h,!0),L[h]||(L[h]={preventDefault:!0,stopPropagation:!1,run:[K=>{let y=EI={view:K,prefix:h,scope:E};return setTimeout(()=>{EI==y&&(EI=null)},Mw),!0}]})}let w=Y.join(" ");C(w,!1);let t=L[w]||(L[w]={preventDefault:!1,stopPropagation:!1,run:((i=(G=L._any)===null||G===void 0?void 0:G.run)===null||i===void 0?void 0:i.slice())||[]});D&&t.run.push(D),o&&(t.preventDefault=!0),M&&(t.stopPropagation=!0)};for(let E of I){let N=E.scope?E.scope.split(" "):["editor"];if(E.any)for(let o of N){let M=g[o]||(g[o]=Object.create(null));M._any||(M._any={preventDefault:!1,stopPropagation:!1,run:[]});for(let G in M)M[G].run.push(E.any)}let D=E[A]||E.key;if(D)for(let o of N)Q(o,D,E.run,E.preventDefault,E.stopPropagation),E.shift&&Q(o,"Shift-"+D,E.shift,E.preventDefault,E.stopPropagation)}return g}function fG(I,A,g,B){let C=pY(A),Q=TA(C,0),E=Dg(Q)==C.length&&C!=" ",N="",D=!1,o=!1,M=!1;EI&&EI.view==g&&EI.scope==B&&(N=EI.prefix+" ",YG.indexOf(A.keyCode)<0&&(o=!0,EI=null));let G=new Set,i=t=>{if(t){for(let Z of t.run)if(!G.has(Z)&&(G.add(Z),Z(g,A)))return t.stopPropagation&&(M=!0),!0;t.preventDefault&&(t.stopPropagation&&(M=!0),o=!0)}return!1},L=I[B],Y,w;return L&&(i(L[N+_C(C,A,!E)])?D=!0:E&&(A.altKey||A.metaKey||A.ctrlKey)&&!(X.windows&&A.ctrlKey&&A.altKey)&&(Y=gI[A.keyCode])&&Y!=C?(i(L[N+_C(Y,A,!0)])||A.shiftKey&&(w=HB[A.keyCode])!=C&&w!=Y&&i(L[N+_C(w,A,!1)]))&&(D=!0):E&&A.shiftKey&&i(L[N+_C(C,A,!0)])&&(D=!0),!D&&i(L._any)&&(D=!0)),o&&(D=!0),D&&M&&A.stopPropagation(),D}class nB{constructor(A,g,B,C,Q){this.className=A,this.left=g,this.top=B,this.width=C,this.height=Q}draw(){let A=document.createElement("div");return A.className=this.className,this.adjust(A),A}update(A,g){return g.className!=this.className?!1:(this.adjust(A),!0)}adjust(A){A.style.left=this.left+"px",A.style.top=this.top+"px",this.width!=null&&(A.style.width=this.width+"px"),A.style.height=this.height+"px"}eq(A){return this.left==A.left&&this.top==A.top&&this.width==A.width&&this.height==A.height&&this.className==A.className}static forRange(A,g,B){if(B.empty){let C=A.coordsAtPos(B.head,B.assoc||1);if(!C)return[];let Q=PG(A);return[new nB(g,C.left-Q.left,C.top-Q.top,null,C.bottom-C.top)]}else return iw(A,g,B)}}function PG(I){let A=I.scrollDOM.getBoundingClientRect();return{left:(I.textDirection==wA.LTR?A.left:A.right-I.scrollDOM.clientWidth*I.scaleX)-I.scrollDOM.scrollLeft*I.scaleX,top:A.top-I.scrollDOM.scrollTop*I.scaleY}}function qG(I,A,g){let B=j.cursor(A);return{from:Math.max(g.from,I.moveToLineBoundary(B,!1,!0).from),to:Math.min(g.to,I.moveToLineBoundary(B,!0,!0).from),type:yA.Text}}function iw(I,A,g){if(g.to<=I.viewport.from||g.from>=I.viewport.to)return[];let B=Math.max(g.from,I.viewport.from),C=Math.min(g.to,I.viewport.to),Q=I.textDirection==wA.LTR,E=I.contentDOM,N=E.getBoundingClientRect(),D=PG(I),o=E.querySelector(".cm-line"),M=o&&window.getComputedStyle(o),G=N.left+(M?parseInt(M.paddingLeft)+Math.min(0,parseInt(M.textIndent)):0),i=N.right-(M?parseInt(M.paddingRight):0),L=GD(I,B),Y=GD(I,C),w=L.type==yA.Text?L:null,t=Y.type==yA.Text?Y:null;if(w&&(I.lineWrapping||L.widgetLineBreaks)&&(w=qG(I,B,w)),t&&(I.lineWrapping||Y.widgetLineBreaks)&&(t=qG(I,C,t)),w&&t&&w.from==t.from)return h(K(g.from,g.to,w));{let S=w?K(g.from,null,w):y(L,!1),c=t?K(null,g.to,t):y(Y,!0),k=[];return(w||L).to<(t||Y).from-(w&&t?1:0)||L.widgetLineBreaks>1&&S.bottom+I.defaultLineHeight/2<c.top?k.push(Z(G,S.bottom,i,c.top)):S.bottom<c.top&&I.elementAtHeight((S.bottom+c.top)/2).type==yA.Text&&(S.bottom=c.top=(S.bottom+c.top)/2),h(S).concat(k).concat(h(c))}function Z(S,c,k,U){return new nB(A,S-D.left,c-D.top-.01,k-S,U-c+.01)}function h({top:S,bottom:c,horizontal:k}){let U=[];for(let H=0;H<k.length;H+=2)U.push(Z(k[H],S,k[H+1],c));return U}function K(S,c,k){let U=1e9,H=-1e9,b=[];function s(d,R,T,e,F){let p=I.coordsAtPos(d,d==k.to?-2:2),z=I.coordsAtPos(T,T==k.from?2:-2);!p||!z||(U=Math.min(p.top,z.top,U),H=Math.max(p.bottom,z.bottom,H),F==wA.LTR?b.push(Q&&R?G:p.left,Q&&e?i:z.right):b.push(!Q&&e?G:z.left,!Q&&R?i:p.right))}let l=S??k.from,a=c??k.to;for(let d of I.visibleRanges)if(d.to>l&&d.from<a)for(let R=Math.max(d.from,l),T=Math.min(d.to,a);;){let e=I.state.doc.lineAt(R);for(let F of I.bidiSpans(e)){let p=F.from+e.from,z=F.to+e.from;if(p>=T)break;z>R&&s(Math.max(p,R),S==null&&p<=l,Math.min(z,T),c==null&&z>=a,F.dir)}if(R=e.to+1,R>=T)break}return b.length==0&&s(l,S==null,a,c==null,I.textDirection),{top:U,bottom:H,horizontal:b}}function y(S,c){let k=N.top+(c?S.top:S.bottom);return{top:k,bottom:k,horizontal:[]}}}function Lw(I,A){return I.constructor==A.constructor&&I.eq(A)}class Sw{constructor(A,g){this.view=A,this.layer=g,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=A.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),g.above&&this.dom.classList.add("cm-layer-above"),g.class&&this.dom.classList.add(g.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(A.state),A.requestMeasure(this.measureReq),g.mount&&g.mount(this.dom,A)}update(A){A.startState.facet($C)!=A.state.facet($C)&&this.setOrder(A.state),(this.layer.update(A,this.dom)||A.geometryChanged)&&(this.scale(),A.view.requestMeasure(this.measureReq))}setOrder(A){let g=0,B=A.facet($C);for(;g<B.length&&B[g]!=this.layer;)g++;this.dom.style.zIndex=String((this.layer.above?150:-1)-g)}measure(){return this.layer.markers(this.view)}scale(){let{scaleX:A,scaleY:g}=this.view;(A!=this.scaleX||g!=this.scaleY)&&(this.scaleX=A,this.scaleY=g,this.dom.style.transform=`scale(${1/A}, ${1/g})`)}draw(A){if(A.length!=this.drawn.length||A.some((g,B)=>!Lw(g,this.drawn[B]))){let g=this.dom.firstChild,B=0;for(let C of A)C.update&&g&&C.constructor&&this.drawn[B].constructor&&C.update(g,this.drawn[B])?(g=g.nextSibling,B++):this.dom.insertBefore(C.draw(),g);for(;g;){let C=g.nextSibling;g.remove(),g=C}this.drawn=A}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const $C=r.define();function _G(I){return[RA.define(A=>new Sw(A,I)),$C.of(I)]}const $G=!X.ios,WB=r.define({combine(I){return Og(I,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(A,g)=>Math.min(A,g),drawRangeCursor:(A,g)=>A||g})}});function cw(I={}){return[WB.of(I),Yw,yw,ww,XM.of(!0)]}function Ai(I){return I.startState.facet(WB)!=I.state.facet(WB)}const Yw=_G({above:!0,markers(I){let{state:A}=I,g=A.facet(WB),B=[];for(let C of A.selection.ranges){let Q=C==A.selection.main;if(C.empty?!Q||$G:g.drawRangeCursor){let E=Q?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",N=C.empty?C:j.cursor(C.head,C.head>C.anchor?-1:1);for(let D of nB.forRange(I,E,N))B.push(D)}}return B},update(I,A){I.transactions.some(B=>B.selection)&&(A.style.animationName=A.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let g=Ai(I);return g&&gi(I.state,A),I.docChanged||I.selectionSet||g},mount(I,A){gi(A.state,I)},class:"cm-cursorLayer"});function gi(I,A){A.style.animationDuration=I.facet(WB).cursorBlinkRate+"ms"}const yw=_G({above:!1,markers(I){return I.state.selection.ranges.map(A=>A.empty?[]:nB.forRange(I,"cm-selectionBackground",A)).reduce((A,g)=>A.concat(g))},update(I,A){return I.docChanged||I.selectionSet||I.viewportChanged||Ai(I)},class:"cm-selectionLayer"}),Ii={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};$G&&(Ii[".cm-line"].caretColor="transparent !important");const ww=WI.highest(q.theme(Ii)),Bi=IA.define({map(I,A){return I==null?null:A.mapPos(I)}}),OB=nA.define({create(){return null},update(I,A){return I!=null&&(I=A.changes.mapPos(I)),A.effects.reduce((g,B)=>B.is(Bi)?B.value:g,I)}}),tw=RA.fromClass(class{constructor(I){this.view=I,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(I){var A;let g=I.state.field(OB);g==null?this.cursor!=null&&((A=this.cursor)===null||A===void 0||A.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(I.startState.field(OB)!=g||I.docChanged||I.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:I}=this,A=I.state.field(OB),g=A!=null&&I.coordsAtPos(A);if(!g)return null;let B=I.scrollDOM.getBoundingClientRect();return{left:g.left-B.left+I.scrollDOM.scrollLeft*I.scaleX,top:g.top-B.top+I.scrollDOM.scrollTop*I.scaleY,height:g.bottom-g.top}}drawCursor(I){if(this.cursor){let{scaleX:A,scaleY:g}=this.view;I?(this.cursor.style.left=I.left/A+"px",this.cursor.style.top=I.top/g+"px",this.cursor.style.height=I.height/g+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(I){this.view.state.field(OB)!=I&&this.view.dispatch({effects:Bi.of(I)})}},{eventHandlers:{dragover(I){this.setDropPos(this.view.posAtCoords({x:I.clientX,y:I.clientY}))},dragleave(I){(I.target==this.view.contentDOM||!this.view.contentDOM.contains(I.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function sw(){return[OB,tw]}function Ci(I,A,g,B,C){A.lastIndex=0;for(let Q=I.iterRange(g,B),E=g,N;!Q.next().done;E+=Q.value.length)if(!Q.lineBreak)for(;N=A.exec(Q.value);)C(E+N.index,N)}function Kw(I,A){let g=I.visibleRanges;if(g.length==1&&g[0].from==I.viewport.from&&g[0].to==I.viewport.to)return g;let B=[];for(let{from:C,to:Q}of g)C=Math.max(I.state.doc.lineAt(C).from,C-A),Q=Math.min(I.state.doc.lineAt(Q).to,Q+A),B.length&&B[B.length-1].to>=C?B[B.length-1].to=Q:B.push({from:C,to:Q});return B}class lw{constructor(A){const{regexp:g,decoration:B,decorate:C,boundary:Q,maxLength:E=1e3}=A;if(!g.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=g,C)this.addMatch=(N,D,o,M)=>C(M,o,o+N[0].length,N,D);else if(typeof B=="function")this.addMatch=(N,D,o,M)=>{let G=B(N,D,o);G&&M(o,o+N[0].length,G)};else if(B)this.addMatch=(N,D,o,M)=>M(o,o+N[0].length,B);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=Q,this.maxLength=E}createDeco(A){let g=new ZI,B=g.add.bind(g);for(let{from:C,to:Q}of Kw(A,this.maxLength))Ci(A.state.doc,this.regexp,C,Q,(E,N)=>this.addMatch(N,A,E,B));return g.finish()}updateDeco(A,g){let B=1e9,C=-1;return A.docChanged&&A.changes.iterChanges((Q,E,N,D)=>{D>A.view.viewport.from&&N<A.view.viewport.to&&(B=Math.min(N,B),C=Math.max(D,C))}),A.viewportChanged||C-B>1e3?this.createDeco(A.view):C>-1?this.updateRange(A.view,g.map(A.changes),B,C):g}updateRange(A,g,B,C){for(let Q of A.visibleRanges){let E=Math.max(Q.from,B),N=Math.min(Q.to,C);if(N>E){let D=A.state.doc.lineAt(E),o=D.to<N?A.state.doc.lineAt(N):D,M=Math.max(Q.from,D.from),G=Math.min(Q.to,o.to);if(this.boundary){for(;E>D.from;E--)if(this.boundary.test(D.text[E-1-D.from])){M=E;break}for(;N<o.to;N++)if(this.boundary.test(o.text[N-o.from])){G=N;break}}let i=[],L,Y=(w,t,Z)=>i.push(Z.range(w,t));if(D==o)for(this.regexp.lastIndex=M-D.from;(L=this.regexp.exec(D.text))&&L.index<G-D.from;)this.addMatch(L,A,L.index+D.from,Y);else Ci(A.state.doc,this.regexp,M,G,(w,t)=>this.addMatch(t,A,w,Y));g=g.update({filterFrom:M,filterTo:G,filter:(w,t)=>w<M||t>G,add:i})}}return g}}const lD=/x/.unicode!=null?"gu":"g",kw=new RegExp(`[\0-\b
|
1625
|
-
--\u2028\u2029\uFEFF-]`,lD),Zw={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let kD=null;function hw(){var I;if(kD==null&&typeof document<"u"&&document.body){let A=document.body.style;kD=((I=A.tabSize)!==null&&I!==void 0?I:A.MozTabSize)!=null}return kD||!1}const AQ=r.define({combine(I){let A=Og(I,{render:null,specialChars:kw,addSpecialChars:null});return(A.replaceTabs=!hw())&&(A.specialChars=new RegExp(" |"+A.specialChars.source,lD)),A.addSpecialChars&&(A.specialChars=new RegExp(A.specialChars.source+"|"+A.addSpecialChars.source,lD)),A}});function aw(I={}){return[AQ.of(I),bw()]}let Qi=null;function bw(){return Qi||(Qi=RA.fromClass(class{constructor(I){this.view=I,this.decorations=AA.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(I.state.facet(AQ)),this.decorations=this.decorator.createDeco(I)}makeDecorator(I){return new lw({regexp:I.specialChars,decoration:(A,g,B)=>{let{doc:C}=g.state,Q=TA(A[0],0);if(Q==9){let E=C.lineAt(B),N=g.state.tabSize,D=JI(E.text,N,B-E.from);return AA.replace({widget:new Uw((N-D%N)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[Q]||(this.decorationCache[Q]=AA.replace({widget:new Rw(I,Q)}))},boundary:I.replaceTabs?void 0:/[^]/})}update(I){let A=I.state.facet(AQ);I.startState.facet(AQ)!=A?(this.decorator=this.makeDecorator(A),this.decorations=this.decorator.createDeco(I.view)):this.decorations=this.decorator.updateDeco(I,this.decorations)}},{decorations:I=>I.decorations}))}const dw="•";function Hw(I){return I>=32?dw:I==10?"":String.fromCharCode(9216+I)}class Rw extends XI{constructor(A,g){super(),this.options=A,this.code=g}eq(A){return A.code==this.code}toDOM(A){let g=Hw(this.code),B=A.state.phrase("Control character")+" "+(Zw[this.code]||"0x"+this.code.toString(16)),C=this.options.render&&this.options.render(this.code,B,g);if(C)return C;let Q=document.createElement("span");return Q.textContent=g,Q.title=B,Q.setAttribute("aria-label",B),Q.className="cm-specialChar",Q}ignoreEvent(){return!1}}class Uw extends XI{constructor(A){super(),this.width=A}eq(A){return A.width==this.width}toDOM(){let A=document.createElement("span");return A.textContent=" ",A.className="cm-tab",A.style.width=this.width+"px",A}ignoreEvent(){return!1}}function Tw(){return zw}const ew=AA.line({class:"cm-activeLine"}),zw=RA.fromClass(class{constructor(I){this.decorations=this.getDeco(I)}update(I){(I.docChanged||I.selectionSet)&&(this.decorations=this.getDeco(I.view))}getDeco(I){let A=-1,g=[];for(let B of I.state.selection.ranges){let C=I.lineBlockAt(B.head);C.from>A&&(g.push(ew.range(C.from)),A=C.from)}return AA.set(g)}},{decorations:I=>I.decorations}),ZD=2e3;function Fw(I,A,g){let B=Math.min(A.line,g.line),C=Math.max(A.line,g.line),Q=[];if(A.off>ZD||g.off>ZD||A.col<0||g.col<0){let E=Math.min(A.off,g.off),N=Math.max(A.off,g.off);for(let D=B;D<=C;D++){let o=I.doc.line(D);o.length<=N&&Q.push(j.range(o.from+E,o.to+N))}}else{let E=Math.min(A.col,g.col),N=Math.max(A.col,g.col);for(let D=B;D<=C;D++){let o=I.doc.line(D),M=WE(o.text,E,I.tabSize,!0);if(M<0)Q.push(j.cursor(o.to));else{let G=WE(o.text,N,I.tabSize);Q.push(j.range(o.from+M,o.from+G))}}}return Q}function jw(I,A){let g=I.coordsAtPos(I.viewport.from);return g?Math.round(Math.abs((g.left-A)/I.defaultCharacterWidth)):-1}function Ei(I,A){let g=I.posAtCoords({x:A.clientX,y:A.clientY},!1),B=I.state.doc.lineAt(g),C=g-B.from,Q=C>ZD?-1:C==B.length?jw(I,A.clientX):JI(B.text,I.state.tabSize,g-B.from);return{line:B.number,col:Q,off:C}}function mw(I,A){let g=Ei(I,A),B=I.state.selection;return g?{update(C){if(C.docChanged){let Q=C.changes.mapPos(C.startState.doc.line(g.line).from),E=C.state.doc.lineAt(Q);g={line:E.number,col:g.col,off:Math.min(g.off,E.length)},B=B.map(C.changes)}},get(C,Q,E){let N=Ei(I,C);if(!N)return B;let D=Fw(I.state,g,N);return D.length?E?j.create(D.concat(B.ranges)):j.create(D):B}}:null}function pw(I){let A=(I==null?void 0:I.eventFilter)||(g=>g.altKey&&g.button==0);return q.mouseSelectionStyle.of((g,B)=>A(B)?mw(g,B):null)}const xw={Alt:[18,I=>!!I.altKey],Control:[17,I=>!!I.ctrlKey],Shift:[16,I=>!!I.shiftKey],Meta:[91,I=>!!I.metaKey]},nw={style:"cursor: crosshair"};function Ww(I={}){let[A,g]=xw[I.key||"Alt"],B=RA.fromClass(class{constructor(C){this.view=C,this.isDown=!1}set(C){this.isDown!=C&&(this.isDown=C,this.view.update([]))}},{eventHandlers:{keydown(C){this.set(C.keyCode==A||g(C))},keyup(C){(C.keyCode==A||!g(C))&&this.set(!1)},mousemove(C){this.set(g(C))}}});return[B,q.contentAttributes.of(C=>{var Q;return!((Q=C.plugin(B))===null||Q===void 0)&&Q.isDown?nw:null})]}const gQ="-10000px";class Di{constructor(A,g,B){this.facet=g,this.createTooltipView=B,this.input=A.state.facet(g),this.tooltips=this.input.filter(C=>C),this.tooltipViews=this.tooltips.map(B)}update(A){var g;let B=A.state.facet(this.facet),C=B.filter(E=>E);if(B===this.input){for(let E of this.tooltipViews)E.update&&E.update(A);return!1}let Q=[];for(let E=0;E<C.length;E++){let N=C[E],D=-1;if(N){for(let o=0;o<this.tooltips.length;o++){let M=this.tooltips[o];M&&M.create==N.create&&(D=o)}if(D<0)Q[E]=this.createTooltipView(N);else{let o=Q[E]=this.tooltipViews[D];o.update&&o.update(A)}}}for(let E of this.tooltipViews)Q.indexOf(E)<0&&(E.dom.remove(),(g=E.destroy)===null||g===void 0||g.call(E));return this.input=B,this.tooltips=C,this.tooltipViews=Q,!0}}function Ow(I){let{win:A}=I;return{top:0,left:0,bottom:A.innerHeight,right:A.innerWidth}}const hD=r.define({combine:I=>{var A,g,B;return{position:X.ios?"absolute":((A=I.find(C=>C.position))===null||A===void 0?void 0:A.position)||"fixed",parent:((g=I.find(C=>C.parent))===null||g===void 0?void 0:g.parent)||null,tooltipSpace:((B=I.find(C=>C.tooltipSpace))===null||B===void 0?void 0:B.tooltipSpace)||Ow}}}),Ni=new WeakMap,oi=RA.fromClass(class{constructor(I){this.view=I,this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let A=I.state.facet(hD);this.position=A.position,this.parent=A.parent,this.classes=I.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.manager=new Di(I,aD,g=>this.createTooltip(g)),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(g=>{Date.now()>this.lastTransaction-50&&g.length>0&&g[g.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),I.win.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 I of this.manager.tooltipViews)this.intersectionObserver.observe(I.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(I){I.transactions.length&&(this.lastTransaction=Date.now());let A=this.manager.update(I);A&&this.observeIntersection();let g=A||I.geometryChanged,B=I.state.facet(hD);if(B.position!=this.position&&!this.madeAbsolute){this.position=B.position;for(let C of this.manager.tooltipViews)C.dom.style.position=this.position;g=!0}if(B.parent!=this.parent){this.parent&&this.container.remove(),this.parent=B.parent,this.createContainer();for(let C of this.manager.tooltipViews)this.container.appendChild(C.dom);g=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);g&&this.maybeMeasure()}createTooltip(I){let A=I.create(this.view);if(A.dom.classList.add("cm-tooltip"),I.arrow&&!A.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let g=document.createElement("div");g.className="cm-tooltip-arrow",A.dom.appendChild(g)}return A.dom.style.position=this.position,A.dom.style.top=gQ,this.container.appendChild(A.dom),A.mount&&A.mount(this.view),A}destroy(){var I,A;this.view.win.removeEventListener("resize",this.measureSoon);for(let g of this.manager.tooltipViews)g.dom.remove(),(I=g.destroy)===null||I===void 0||I.call(g);(A=this.intersectionObserver)===null||A===void 0||A.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let I=this.view.dom.getBoundingClientRect(),A=1,g=1,B=!1;if(this.position=="fixed"){let C=this.manager.tooltipViews;B=C.length>0&&C[0].dom.offsetParent!=this.container.ownerDocument.body}if(B||this.position=="absolute")if(this.parent){let C=this.parent.getBoundingClientRect();C.width&&C.height&&(A=C.width/this.parent.offsetWidth,g=C.height/this.parent.offsetHeight)}else({scaleX:A,scaleY:g}=this.view.viewState);return{editor:I,parent:this.parent?this.container.getBoundingClientRect():I,pos:this.manager.tooltips.map((C,Q)=>{let E=this.manager.tooltipViews[Q];return E.getCoords?E.getCoords(C.pos):this.view.coordsAtPos(C.pos)}),size:this.manager.tooltipViews.map(({dom:C})=>C.getBoundingClientRect()),space:this.view.state.facet(hD).tooltipSpace(this.view),scaleX:A,scaleY:g,makeAbsolute:B}}writeMeasure(I){var A;if(I.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let N of this.manager.tooltipViews)N.dom.style.position="absolute"}let{editor:g,space:B,scaleX:C,scaleY:Q}=I,E=[];for(let N=0;N<this.manager.tooltips.length;N++){let D=this.manager.tooltips[N],o=this.manager.tooltipViews[N],{dom:M}=o,G=I.pos[N],i=I.size[N];if(!G||G.bottom<=Math.max(g.top,B.top)||G.top>=Math.min(g.bottom,B.bottom)||G.right<Math.max(g.left,B.left)-.1||G.left>Math.min(g.right,B.right)+.1){M.style.top=gQ;continue}let L=D.arrow?o.dom.querySelector(".cm-tooltip-arrow"):null,Y=L?7:0,w=i.right-i.left,t=(A=Ni.get(o))!==null&&A!==void 0?A:i.bottom-i.top,Z=o.offset||uw,h=this.view.textDirection==wA.LTR,K=i.width>B.right-B.left?h?B.left:B.right-i.width:h?Math.min(G.left-(L?14:0)+Z.x,B.right-w):Math.max(B.left,G.left-w+(L?14:0)-Z.x),y=!!D.above;!D.strictSide&&(y?G.top-(i.bottom-i.top)-Z.y<B.top:G.bottom+(i.bottom-i.top)+Z.y>B.bottom)&&y==B.bottom-G.bottom>G.top-B.top&&(y=!y);let S=(y?G.top-B.top:B.bottom-G.bottom)-Y;if(S<t&&o.resize!==!1){if(S<this.view.defaultLineHeight){M.style.top=gQ;continue}Ni.set(o,t),M.style.height=(t=S)/Q+"px"}else M.style.height&&(M.style.height="");let c=y?G.top-t-Y-Z.y:G.bottom+Y+Z.y,k=K+w;if(o.overlap!==!0)for(let U of E)U.left<k&&U.right>K&&U.top<c+t&&U.bottom>c&&(c=y?U.top-t-2-Y:U.bottom+Y+2);if(this.position=="absolute"?(M.style.top=(c-I.parent.top)/Q+"px",M.style.left=(K-I.parent.left)/C+"px"):(M.style.top=c/Q+"px",M.style.left=K/C+"px"),L){let U=G.left+(h?Z.x:-Z.x)-(K+14-7);L.style.left=U/C+"px"}o.overlap!==!0&&E.push({left:K,top:c,right:k,bottom:c+t}),M.classList.toggle("cm-tooltip-above",y),M.classList.toggle("cm-tooltip-below",!y),o.positioned&&o.positioned(I.space)}}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 I of this.manager.tooltipViews)I.dom.style.top=gQ}},{eventHandlers:{scroll(){this.maybeMeasure()}}}),Jw=q.baseTheme({".cm-tooltip":{zIndex:100,boxSizing:"border-box"},"&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:"7px",width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),uw={x:0,y:0},aD=r.define({enables:[oi,Jw]}),IQ=r.define();class bD{static create(A){return new bD(A)}constructor(A){this.view=A,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new Di(A,IQ,g=>this.createHostedView(g))}createHostedView(A){let g=A.create(this.view);return g.dom.classList.add("cm-tooltip-section"),this.dom.appendChild(g.dom),this.mounted&&g.mount&&g.mount(this.view),g}mount(A){for(let g of this.manager.tooltipViews)g.mount&&g.mount(A);this.mounted=!0}positioned(A){for(let g of this.manager.tooltipViews)g.positioned&&g.positioned(A)}update(A){this.manager.update(A)}destroy(){var A;for(let g of this.manager.tooltipViews)(A=g.destroy)===null||A===void 0||A.call(g)}}const vw=aD.compute([IQ],I=>{let A=I.facet(IQ).filter(g=>g);return A.length===0?null:{pos:Math.min(...A.map(g=>g.pos)),end:Math.max(...A.filter(g=>g.end!=null).map(g=>g.end)),create:bD.create,above:A[0].above,arrow:A.some(g=>g.arrow)}});class Vw{constructor(A,g,B,C,Q){this.view=A,this.source=g,this.field=B,this.setHover=C,this.hoverTime=Q,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:A.dom,time:0},this.checkHover=this.checkHover.bind(this),A.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),A.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 A=Date.now()-this.lastMove.time;A<this.hoverTime?this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime-A):this.startHover()}startHover(){clearTimeout(this.restartTimeout);let{view:A,lastMove:g}=this,B=A.docView.nearest(g.target);if(!B)return;let C,Q=1;if(B instanceof BI)C=B.posAtStart;else{if(C=A.posAtCoords(g),C==null)return;let N=A.coordsAtPos(C);if(!N||g.y<N.top||g.y>N.bottom||g.x<N.left-A.defaultCharacterWidth||g.x>N.right+A.defaultCharacterWidth)return;let D=A.bidiSpans(A.state.doc.lineAt(C)).find(M=>M.from<=C&&M.to>=C),o=D&&D.dir==wA.RTL?-1:1;Q=g.x<N.left?-o:o}let E=this.source(A,C,Q);if(E!=null&&E.then){let N=this.pending={pos:C};E.then(D=>{this.pending==N&&(this.pending=null,D&&A.dispatch({effects:this.setHover.of(D)}))},D=>Ng(A.state,D,"hover tooltip"))}else E&&A.dispatch({effects:this.setHover.of(E)})}mousemove(A){var g;this.lastMove={x:A.clientX,y:A.clientY,target:A.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let B=this.active;if(B&&!Mi(this.lastMove.target)||this.pending){let{pos:C}=B||this.pending,Q=(g=B==null?void 0:B.end)!==null&&g!==void 0?g:C;(C==Q?this.view.posAtCoords(this.lastMove)!=C:!Xw(this.view,C,Q,A.clientX,A.clientY))&&(this.view.dispatch({effects:this.setHover.of(null)}),this.pending=null)}}mouseleave(A){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1,this.active&&!Mi(A.relatedTarget)&&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 Mi(I){for(let A=I;A;A=A.parentNode)if(A.nodeType==1&&A.classList.contains("cm-tooltip"))return!0;return!1}function Xw(I,A,g,B,C,Q){let E=I.scrollDOM.getBoundingClientRect(),N=I.documentTop+I.documentPadding.top+I.contentHeight;if(E.left>B||E.right<B||E.top>C||Math.min(E.bottom,N)<C)return!1;let D=I.posAtCoords({x:B,y:C},!1);return D>=A&&D<=g}function rw(I,A={}){let g=IA.define(),B=nA.define({create(){return null},update(C,Q){if(C&&(A.hideOnChange&&(Q.docChanged||Q.selection)||A.hideOn&&A.hideOn(Q,C)))return null;if(C&&Q.docChanged){let E=Q.changes.mapPos(C.pos,-1,uA.TrackDel);if(E==null)return null;let N=Object.assign(Object.create(null),C);N.pos=E,C.end!=null&&(N.end=Q.changes.mapPos(C.end)),C=N}for(let E of Q.effects)E.is(g)&&(C=E.value),E.is(fw)&&(C=null);return C},provide:C=>IQ.from(C)});return[B,RA.define(C=>new Vw(C,I,B,g,A.hoverTime||300)),vw]}function Gi(I,A){let g=I.plugin(oi);if(!g)return null;let B=g.manager.tooltips.indexOf(A);return B<0?null:g.manager.tooltipViews[B]}const fw=IA.define(),ii=r.define({combine(I){let A,g;for(let B of I)A=A||B.topContainer,g=g||B.bottomContainer;return{topContainer:A,bottomContainer:g}}});function JB(I,A){let g=I.plugin(Li),B=g?g.specs.indexOf(A):-1;return B>-1?g.panels[B]:null}const Li=RA.fromClass(class{constructor(I){this.input=I.state.facet(uB),this.specs=this.input.filter(g=>g),this.panels=this.specs.map(g=>g(I));let A=I.state.facet(ii);this.top=new BQ(I,!0,A.topContainer),this.bottom=new BQ(I,!1,A.bottomContainer),this.top.sync(this.panels.filter(g=>g.top)),this.bottom.sync(this.panels.filter(g=>!g.top));for(let g of this.panels)g.dom.classList.add("cm-panel"),g.mount&&g.mount()}update(I){let A=I.state.facet(ii);this.top.container!=A.topContainer&&(this.top.sync([]),this.top=new BQ(I.view,!0,A.topContainer)),this.bottom.container!=A.bottomContainer&&(this.bottom.sync([]),this.bottom=new BQ(I.view,!1,A.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let g=I.state.facet(uB);if(g!=this.input){let B=g.filter(D=>D),C=[],Q=[],E=[],N=[];for(let D of B){let o=this.specs.indexOf(D),M;o<0?(M=D(I.view),N.push(M)):(M=this.panels[o],M.update&&M.update(I)),C.push(M),(M.top?Q:E).push(M)}this.specs=B,this.panels=C,this.top.sync(Q),this.bottom.sync(E);for(let D of N)D.dom.classList.add("cm-panel"),D.mount&&D.mount()}else for(let B of this.panels)B.update&&B.update(I)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:I=>q.scrollMargins.of(A=>{let g=A.plugin(I);return g&&{top:g.top.scrollMargin(),bottom:g.bottom.scrollMargin()}})});class BQ{constructor(A,g,B){this.view=A,this.top=g,this.container=B,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(A){for(let g of this.panels)g.destroy&&A.indexOf(g)<0&&g.destroy();this.panels=A,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 g=this.container||this.view.dom;g.insertBefore(this.dom,this.top?g.firstChild:null)}let A=this.dom.firstChild;for(let g of this.panels)if(g.dom.parentNode==this.dom){for(;A!=g.dom;)A=Si(A);A=A.nextSibling}else this.dom.insertBefore(g.dom,A);for(;A;)A=Si(A)}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 A of this.classes.split(" "))A&&this.container.classList.remove(A);for(let A of(this.classes=this.view.themeClasses).split(" "))A&&this.container.classList.add(A)}}}function Si(I){let A=I.nextSibling;return I.remove(),A}const uB=r.define({enables:Li});class DI extends kI{compare(A){return this==A||this.constructor==A.constructor&&this.eq(A)}eq(A){return!1}destroy(A){}}DI.prototype.elementClass="",DI.prototype.toDOM=void 0,DI.prototype.mapMode=uA.TrackBefore,DI.prototype.startSide=DI.prototype.endSide=-1,DI.prototype.point=!0;const CQ=r.define(),QQ=r.define(),dD=r.define({combine:I=>I.some(A=>A)});function Pw(I){let A=[qw];return I&&I.fixed===!1&&A.push(dD.of(!0)),A}const qw=RA.fromClass(class{constructor(I){this.view=I,this.prevViewport=I.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=I.state.facet(QQ).map(A=>new Yi(I,A));for(let A of this.gutters)this.dom.appendChild(A.dom);this.fixed=!I.state.facet(dD),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),I.scrollDOM.insertBefore(this.dom,I.contentDOM)}update(I){if(this.updateGutters(I)){let A=this.prevViewport,g=I.view.viewport,B=Math.min(A.to,g.to)-Math.max(A.from,g.from);this.syncGutters(B<(g.to-g.from)*.8)}I.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight+"px"),this.view.state.facet(dD)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=I.view.viewport}syncGutters(I){let A=this.dom.nextSibling;I&&this.dom.remove();let g=NA.iter(this.view.state.facet(CQ),this.view.viewport.from),B=[],C=this.gutters.map(Q=>new _w(Q,this.view.viewport,-this.view.documentPadding.top));for(let Q of this.view.viewportLineBlocks)if(B.length&&(B=[]),Array.isArray(Q.type)){let E=!0;for(let N of Q.type)if(N.type==yA.Text&&E){HD(g,B,N.from);for(let D of C)D.line(this.view,N,B);E=!1}else if(N.widget)for(let D of C)D.widget(this.view,N)}else if(Q.type==yA.Text){HD(g,B,Q.from);for(let E of C)E.line(this.view,Q,B)}else if(Q.widget)for(let E of C)E.widget(this.view,Q);for(let Q of C)Q.finish();I&&this.view.scrollDOM.insertBefore(this.dom,A)}updateGutters(I){let A=I.startState.facet(QQ),g=I.state.facet(QQ),B=I.docChanged||I.heightChanged||I.viewportChanged||!NA.eq(I.startState.facet(CQ),I.state.facet(CQ),I.view.viewport.from,I.view.viewport.to);if(A==g)for(let C of this.gutters)C.update(I)&&(B=!0);else{B=!0;let C=[];for(let Q of g){let E=A.indexOf(Q);E<0?C.push(new Yi(this.view,Q)):(this.gutters[E].update(I),C.push(this.gutters[E]))}for(let Q of this.gutters)Q.dom.remove(),C.indexOf(Q)<0&&Q.destroy();for(let Q of C)this.dom.appendChild(Q.dom);this.gutters=C}return B}destroy(){for(let I of this.gutters)I.destroy();this.dom.remove()}},{provide:I=>q.scrollMargins.of(A=>{let g=A.plugin(I);return!g||g.gutters.length==0||!g.fixed?null:A.textDirection==wA.LTR?{left:g.dom.offsetWidth*A.scaleX}:{right:g.dom.offsetWidth*A.scaleX}})});function ci(I){return Array.isArray(I)?I:[I]}function HD(I,A,g){for(;I.value&&I.from<=g;)I.from==g&&A.push(I.value),I.next()}class _w{constructor(A,g,B){this.gutter=A,this.height=B,this.i=0,this.cursor=NA.iter(A.markers,g.from)}addElement(A,g,B){let{gutter:C}=this,Q=g.top-this.height;if(this.i==C.elements.length){let E=new yi(A,g.height,Q,B);C.elements.push(E),C.dom.appendChild(E.dom)}else C.elements[this.i].update(A,g.height,Q,B);this.height=g.bottom,this.i++}line(A,g,B){let C=[];HD(this.cursor,C,g.from),B.length&&(C=C.concat(B));let Q=this.gutter.config.lineMarker(A,g,C);Q&&C.unshift(Q);let E=this.gutter;C.length==0&&!E.config.renderEmptyElements||this.addElement(A,g,C)}widget(A,g){let B=this.gutter.config.widgetMarker(A,g.widget,g);B&&this.addElement(A,g,[B])}finish(){let A=this.gutter;for(;A.elements.length>this.i;){let g=A.elements.pop();A.dom.removeChild(g.dom),g.destroy()}}}class Yi{constructor(A,g){this.view=A,this.config=g,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let B in g.domEventHandlers)this.dom.addEventListener(B,C=>{let Q=C.target,E;if(Q!=this.dom&&this.dom.contains(Q)){for(;Q.parentNode!=this.dom;)Q=Q.parentNode;let D=Q.getBoundingClientRect();E=(D.top+D.bottom)/2}else E=C.clientY;let N=A.lineBlockAtHeight(E-A.documentTop);g.domEventHandlers[B](A,N,C)&&C.preventDefault()});this.markers=ci(g.markers(A)),g.initialSpacer&&(this.spacer=new yi(A,0,0,[g.initialSpacer(A)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(A){let g=this.markers;if(this.markers=ci(this.config.markers(A.view)),this.spacer&&this.config.updateSpacer){let C=this.config.updateSpacer(this.spacer.markers[0],A);C!=this.spacer.markers[0]&&this.spacer.update(A.view,0,0,[C])}let B=A.view.viewport;return!NA.eq(this.markers,g,B.from,B.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(A):!1)}destroy(){for(let A of this.elements)A.destroy()}}class yi{constructor(A,g,B,C){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(A,g,B,C)}update(A,g,B,C){this.height!=g&&(this.height=g,this.dom.style.height=g/A.scaleY+"px"),this.above!=B&&(this.dom.style.marginTop=(this.above=B)?B/A.scaleY+"px":""),$w(this.markers,C)||this.setMarkers(A,C)}setMarkers(A,g){let B="cm-gutterElement",C=this.dom.firstChild;for(let Q=0,E=0;;){let N=E,D=Q<g.length?g[Q++]:null,o=!1;if(D){let M=D.elementClass;M&&(B+=" "+M);for(let G=E;G<this.markers.length;G++)if(this.markers[G].compare(D)){N=G,o=!0;break}}else N=this.markers.length;for(;E<N;){let M=this.markers[E++];if(M.toDOM){M.destroy(C);let G=C.nextSibling;C.remove(),C=G}}if(!D)break;D.toDOM&&(o?C=C.nextSibling:this.dom.insertBefore(D.toDOM(A),C)),o&&E++}this.dom.className=B,this.markers=g}destroy(){this.setMarkers(null,[])}}function $w(I,A){if(I.length!=A.length)return!1;for(let g=0;g<I.length;g++)if(!I[g].compare(A[g]))return!1;return!0}const At=r.define(),rI=r.define({combine(I){return Og(I,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(A,g){let B=Object.assign({},A);for(let C in g){let Q=B[C],E=g[C];B[C]=Q?(N,D,o)=>Q(N,D,o)||E(N,D,o):E}return B}})}});class RD extends DI{constructor(A){super(),this.number=A}eq(A){return this.number==A.number}toDOM(){return document.createTextNode(this.number)}}function UD(I,A){return I.state.facet(rI).formatNumber(A,I.state)}const gt=QQ.compute([rI],I=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(A){return A.state.facet(At)},lineMarker(A,g,B){return B.some(C=>C.toDOM)?null:new RD(UD(A,A.state.doc.lineAt(g.from).number))},widgetMarker:()=>null,lineMarkerChange:A=>A.startState.facet(rI)!=A.state.facet(rI),initialSpacer(A){return new RD(UD(A,wi(A.state.doc.lines)))},updateSpacer(A,g){let B=UD(g.view,wi(g.view.state.doc.lines));return B==A.number?A:new RD(B)},domEventHandlers:I.facet(rI).domEventHandlers}));function It(I={}){return[rI.of(I),Pw(),gt]}function wi(I){let A=9;for(;A<I;)A=A*10+9;return A}const Bt=new class extends DI{constructor(){super(...arguments),this.elementClass="cm-activeLineGutter"}},Ct=CQ.compute(["selection"],I=>{let A=[],g=-1;for(let B of I.selection.ranges){let C=I.doc.lineAt(B.head).from;C>g&&(g=C,A.push(Bt.range(C)))}return NA.of(A)});function Qt(){return Ct}const Et=1024;let Dt=0;class TD{constructor(A,g){this.from=A,this.to=g}}class BA{constructor(A={}){this.id=Dt++,this.perNode=!!A.perNode,this.deserialize=A.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(A){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof A!="function"&&(A=VA.match(A)),g=>{let B=A(g);return B===void 0?null:[this,B]}}}BA.closedBy=new BA({deserialize:I=>I.split(" ")}),BA.openedBy=new BA({deserialize:I=>I.split(" ")}),BA.group=new BA({deserialize:I=>I.split(" ")}),BA.contextHash=new BA({perNode:!0}),BA.lookAhead=new BA({perNode:!0}),BA.mounted=new BA({perNode:!0});const Nt=Object.create(null);class VA{constructor(A,g,B,C=0){this.name=A,this.props=g,this.id=B,this.flags=C}static define(A){let g=A.props&&A.props.length?Object.create(null):Nt,B=(A.top?1:0)|(A.skipped?2:0)|(A.error?4:0)|(A.name==null?8:0),C=new VA(A.name||"",g,A.id,B);if(A.props){for(let Q of A.props)if(Array.isArray(Q)||(Q=Q(C)),Q){if(Q[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");g[Q[0].id]=Q[1]}}return C}prop(A){return this.props[A.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(A){if(typeof A=="string"){if(this.name==A)return!0;let g=this.prop(BA.group);return g?g.indexOf(A)>-1:!1}return this.id==A}static match(A){let g=Object.create(null);for(let B in A)for(let C of B.split(" "))g[C]=A[B];return B=>{for(let C=B.prop(BA.group),Q=-1;Q<(C?C.length:0);Q++){let E=g[Q<0?B.name:C[Q]];if(E)return E}}}}VA.none=new VA("",Object.create(null),0,8);class eD{constructor(A){this.types=A;for(let g=0;g<A.length;g++)if(A[g].id!=g)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...A){let g=[];for(let B of this.types){let C=null;for(let Q of A){let E=Q(B);E&&(C||(C=Object.assign({},B.props)),C[E[0].id]=E[1])}g.push(C?new VA(B.name,C,B.id,B.flags):B)}return new eD(g)}}const EQ=new WeakMap,ti=new WeakMap;var jA;(function(I){I[I.ExcludeBuffers=1]="ExcludeBuffers",I[I.IncludeAnonymous=2]="IncludeAnonymous",I[I.IgnoreMounts=4]="IgnoreMounts",I[I.IgnoreOverlays=8]="IgnoreOverlays"})(jA||(jA={}));class tA{constructor(A,g,B,C,Q){if(this.type=A,this.children=g,this.positions=B,this.length=C,this.props=null,Q&&Q.length){this.props=Object.create(null);for(let[E,N]of Q)this.props[typeof E=="number"?E:E.id]=N}}toString(){let A=this.prop(BA.mounted);if(A&&!A.overlay)return A.tree.toString();let g="";for(let B of this.children){let C=B.toString();C&&(g&&(g+=","),g+=C)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(g.length?"("+g+")":""):g}cursor(A=0){return new oQ(this.topNode,A)}cursorAt(A,g=0,B=0){let C=EQ.get(this)||this.topNode,Q=new oQ(C);return Q.moveTo(A,g),EQ.set(this,Q._tree),Q}get topNode(){return new vg(this,0,0,null)}resolve(A,g=0){let B=fI(EQ.get(this)||this.topNode,A,g,!1);return EQ.set(this,B),B}resolveInner(A,g=0){let B=fI(ti.get(this)||this.topNode,A,g,!0);return ti.set(this,B),B}iterate(A){let{enter:g,leave:B,from:C=0,to:Q=this.length}=A,E=A.mode||0,N=(E&jA.IncludeAnonymous)>0;for(let D=this.cursor(E|jA.IncludeAnonymous);;){let o=!1;if(D.from<=Q&&D.to>=C&&(!N&&D.type.isAnonymous||g(D)!==!1)){if(D.firstChild())continue;o=!0}for(;o&&B&&(N||!D.type.isAnonymous)&&B(D),!D.nextSibling();){if(!D.parent())return;o=!0}}}prop(A){return A.perNode?this.props?this.props[A.id]:void 0:this.type.prop(A)}get propValues(){let A=[];if(this.props)for(let g in this.props)A.push([+g,this.props[g]]);return A}balance(A={}){return this.children.length<=8?this:jD(VA.none,this.children,this.positions,0,this.children.length,0,this.length,(g,B,C)=>new tA(this.type,g,B,C,this.propValues),A.makeTree||((g,B,C)=>new tA(VA.none,g,B,C)))}static build(A){return Mt(A)}}tA.empty=new tA(VA.none,[],[],0);class zD{constructor(A,g){this.buffer=A,this.index=g}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 zD(this.buffer,this.index)}}class bI{constructor(A,g,B){this.buffer=A,this.length=g,this.set=B}get type(){return VA.none}toString(){let A=[];for(let g=0;g<this.buffer.length;)A.push(this.childString(g)),g=this.buffer[g+3];return A.join(",")}childString(A){let g=this.buffer[A],B=this.buffer[A+3],C=this.set.types[g],Q=C.name;if(/\W/.test(Q)&&!C.isError&&(Q=JSON.stringify(Q)),A+=4,B==A)return Q;let E=[];for(;A<B;)E.push(this.childString(A)),A=this.buffer[A+3];return Q+"("+E.join(",")+")"}findChild(A,g,B,C,Q){let{buffer:E}=this,N=-1;for(let D=A;D!=g&&!(si(Q,C,E[D+1],E[D+2])&&(N=D,B>0));D=E[D+3]);return N}slice(A,g,B){let C=this.buffer,Q=new Uint16Array(g-A),E=0;for(let N=A,D=0;N<g;){Q[D++]=C[N++],Q[D++]=C[N++]-B;let o=Q[D++]=C[N++]-B;Q[D++]=C[N++]-A,E=Math.max(E,o)}return new bI(Q,E,this.set)}}function si(I,A,g,B){switch(I){case-2:return g<A;case-1:return B>=A&&g<A;case 0:return g<A&&B>A;case 1:return g<=A&&B>A;case 2:return B>A;case 4:return!0}}function Ki(I,A){let g=I.childBefore(A);for(;g;){let B=g.lastChild;if(!B||B.to!=g.to)break;B.type.isError&&B.from==B.to?(I=g,g=B.prevSibling):g=B}return I}function fI(I,A,g,B){for(var C;I.from==I.to||(g<1?I.from>=A:I.from>A)||(g>-1?I.to<=A:I.to<A);){let E=!B&&I instanceof vg&&I.index<0?null:I.parent;if(!E)return I;I=E}let Q=B?0:jA.IgnoreOverlays;if(B)for(let E=I,N=E.parent;N;E=N,N=E.parent)E instanceof vg&&E.index<0&&((C=N.enter(A,g,Q))===null||C===void 0?void 0:C.from)!=E.from&&(I=N);for(;;){let E=I.enter(A,g,Q);if(!E)return I;I=E}}class vg{constructor(A,g,B,C){this._tree=A,this.from=g,this.index=B,this._parent=C}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(A,g,B,C,Q=0){for(let E=this;;){for(let{children:N,positions:D}=E._tree,o=g>0?N.length:-1;A!=o;A+=g){let M=N[A],G=D[A]+E.from;if(si(C,B,G,G+M.length)){if(M instanceof bI){if(Q&jA.ExcludeBuffers)continue;let i=M.findChild(0,M.buffer.length,g,B-G,C);if(i>-1)return new NI(new ot(E,M,A,G),null,i)}else if(Q&jA.IncludeAnonymous||!M.type.isAnonymous||FD(M)){let i;if(!(Q&jA.IgnoreMounts)&&M.props&&(i=M.prop(BA.mounted))&&!i.overlay)return new vg(i.tree,G,A,E);let L=new vg(M,G,A,E);return Q&jA.IncludeAnonymous||!L.type.isAnonymous?L:L.nextChild(g<0?M.children.length-1:0,g,B,C)}}}if(Q&jA.IncludeAnonymous||!E.type.isAnonymous||(E.index>=0?A=E.index+g:A=g<0?-1:E._parent._tree.children.length,E=E._parent,!E))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(A){return this.nextChild(0,1,A,2)}childBefore(A){return this.nextChild(this._tree.children.length-1,-1,A,-2)}enter(A,g,B=0){let C;if(!(B&jA.IgnoreOverlays)&&(C=this._tree.prop(BA.mounted))&&C.overlay){let Q=A-this.from;for(let{from:E,to:N}of C.overlay)if((g>0?E<=Q:E<Q)&&(g<0?N>=Q:N>Q))return new vg(C.tree,C.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,A,g,B)}nextSignificantParent(){let A=this;for(;A.type.isAnonymous&&A._parent;)A=A._parent;return A}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}cursor(A=0){return new oQ(this,A)}get tree(){return this._tree}toTree(){return this._tree}resolve(A,g=0){return fI(this,A,g,!1)}resolveInner(A,g=0){return fI(this,A,g,!0)}enterUnfinishedNodesBefore(A){return Ki(this,A)}getChild(A,g=null,B=null){let C=DQ(this,A,g,B);return C.length?C[0]:null}getChildren(A,g=null,B=null){return DQ(this,A,g,B)}toString(){return this._tree.toString()}get node(){return this}matchContext(A){return NQ(this,A)}}function DQ(I,A,g,B){let C=I.cursor(),Q=[];if(!C.firstChild())return Q;if(g!=null){for(;!C.type.is(g);)if(!C.nextSibling())return Q}for(;;){if(B!=null&&C.type.is(B))return Q;if(C.type.is(A)&&Q.push(C.node),!C.nextSibling())return B==null?Q:[]}}function NQ(I,A,g=A.length-1){for(let B=I.parent;g>=0;B=B.parent){if(!B)return!1;if(!B.type.isAnonymous){if(A[g]&&A[g]!=B.name)return!1;g--}}return!0}class ot{constructor(A,g,B,C){this.parent=A,this.buffer=g,this.index=B,this.start=C}}class NI{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(A,g,B){this.context=A,this._parent=g,this.index=B,this.type=A.buffer.set.types[A.buffer.buffer[B]]}child(A,g,B){let{buffer:C}=this.context,Q=C.findChild(this.index+4,C.buffer[this.index+3],A,g-this.context.start,B);return Q<0?null:new NI(this.context,this,Q)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(A){return this.child(1,A,2)}childBefore(A){return this.child(-1,A,-2)}enter(A,g,B=0){if(B&jA.ExcludeBuffers)return null;let{buffer:C}=this.context,Q=C.findChild(this.index+4,C.buffer[this.index+3],g>0?1:-1,A-this.context.start,g);return Q<0?null:new NI(this.context,this,Q)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(A){return this._parent?null:this.context.parent.nextChild(this.context.index+A,A,0,4)}get nextSibling(){let{buffer:A}=this.context,g=A.buffer[this.index+3];return g<(this._parent?A.buffer[this._parent.index+3]:A.buffer.length)?new NI(this.context,this._parent,g):this.externalSibling(1)}get prevSibling(){let{buffer:A}=this.context,g=this._parent?this._parent.index+4:0;return this.index==g?this.externalSibling(-1):new NI(this.context,this._parent,A.findChild(g,this.index,-1,0,4))}cursor(A=0){return new oQ(this,A)}get tree(){return null}toTree(){let A=[],g=[],{buffer:B}=this.context,C=this.index+4,Q=B.buffer[this.index+3];if(Q>C){let E=B.buffer[this.index+1];A.push(B.slice(C,Q,E)),g.push(0)}return new tA(this.type,A,g,this.to-this.from)}resolve(A,g=0){return fI(this,A,g,!1)}resolveInner(A,g=0){return fI(this,A,g,!0)}enterUnfinishedNodesBefore(A){return Ki(this,A)}toString(){return this.context.buffer.childString(this.index)}getChild(A,g=null,B=null){let C=DQ(this,A,g,B);return C.length?C[0]:null}getChildren(A,g=null,B=null){return DQ(this,A,g,B)}get node(){return this}matchContext(A){return NQ(this,A)}}class oQ{get name(){return this.type.name}constructor(A,g=0){if(this.mode=g,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,A instanceof vg)this.yieldNode(A);else{this._tree=A.context.parent,this.buffer=A.context;for(let B=A._parent;B;B=B._parent)this.stack.unshift(B.index);this.bufferNode=A,this.yieldBuf(A.index)}}yieldNode(A){return A?(this._tree=A,this.type=A.type,this.from=A.from,this.to=A.to,!0):!1}yieldBuf(A,g){this.index=A;let{start:B,buffer:C}=this.buffer;return this.type=g||C.set.types[C.buffer[A]],this.from=B+C.buffer[A+1],this.to=B+C.buffer[A+2],!0}yield(A){return A?A instanceof vg?(this.buffer=null,this.yieldNode(A)):(this.buffer=A.context,this.yieldBuf(A.index,A.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(A,g,B){if(!this.buffer)return this.yield(this._tree.nextChild(A<0?this._tree._tree.children.length-1:0,A,g,B,this.mode));let{buffer:C}=this.buffer,Q=C.findChild(this.index+4,C.buffer[this.index+3],A,g-this.buffer.start,B);return Q<0?!1:(this.stack.push(this.index),this.yieldBuf(Q))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(A){return this.enterChild(1,A,2)}childBefore(A){return this.enterChild(-1,A,-2)}enter(A,g,B=this.mode){return this.buffer?B&jA.ExcludeBuffers?!1:this.enterChild(1,A,g):this.yield(this._tree.enter(A,g,B))}parent(){if(!this.buffer)return this.yieldNode(this.mode&jA.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let A=this.mode&jA.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(A)}sibling(A){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+A,A,0,4,this.mode)):!1;let{buffer:g}=this.buffer,B=this.stack.length-1;if(A<0){let C=B<0?0:this.stack[B]+4;if(this.index!=C)return this.yieldBuf(g.findChild(C,this.index,-1,0,4))}else{let C=g.buffer[this.index+3];if(C<(B<0?g.buffer.length:g.buffer[this.stack[B]+3]))return this.yieldBuf(C)}return B<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+A,A,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(A){let g,B,{buffer:C}=this;if(C){if(A>0){if(this.index<C.buffer.buffer.length)return!1}else for(let Q=0;Q<this.index;Q++)if(C.buffer.buffer[Q+3]<this.index)return!1;({index:g,parent:B}=C)}else({index:g,_parent:B}=this._tree);for(;B;{index:g,_parent:B}=B)if(g>-1)for(let Q=g+A,E=A<0?-1:B._tree.children.length;Q!=E;Q+=A){let N=B._tree.children[Q];if(this.mode&jA.IncludeAnonymous||N instanceof bI||!N.type.isAnonymous||FD(N))return!1}return!0}move(A,g){if(g&&this.enterChild(A,0,4))return!0;for(;;){if(this.sibling(A))return!0;if(this.atLastNode(A)||!this.parent())return!1}}next(A=!0){return this.move(1,A)}prev(A=!0){return this.move(-1,A)}moveTo(A,g=0){for(;(this.from==this.to||(g<1?this.from>=A:this.from>A)||(g>-1?this.to<=A:this.to<A))&&this.parent(););for(;this.enterChild(1,A,g););return this}get node(){if(!this.buffer)return this._tree;let A=this.bufferNode,g=null,B=0;if(A&&A.context==this.buffer)A:for(let C=this.index,Q=this.stack.length;Q>=0;){for(let E=A;E;E=E._parent)if(E.index==C){if(C==this.index)return E;g=E,B=Q+1;break A}C=this.stack[--Q]}for(let C=B;C<this.stack.length;C++)g=new NI(this.buffer,g,this.stack[C]);return this.bufferNode=new NI(this.buffer,g,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(A,g){for(let B=0;;){let C=!1;if(this.type.isAnonymous||A(this)!==!1){if(this.firstChild()){B++;continue}this.type.isAnonymous||(C=!0)}for(;C&&g&&g(this),C=this.type.isAnonymous,!this.nextSibling();){if(!B)return;this.parent(),B--,C=!0}}}matchContext(A){if(!this.buffer)return NQ(this.node,A);let{buffer:g}=this.buffer,{types:B}=g.set;for(let C=A.length-1,Q=this.stack.length-1;C>=0;Q--){if(Q<0)return NQ(this.node,A,C);let E=B[g.buffer[this.stack[Q]]];if(!E.isAnonymous){if(A[C]&&A[C]!=E.name)return!1;C--}}return!0}}function FD(I){return I.children.some(A=>A instanceof bI||!A.type.isAnonymous||FD(A))}function Mt(I){var A;let{buffer:g,nodeSet:B,maxBufferLength:C=Et,reused:Q=[],minRepeatType:E=B.types.length}=I,N=Array.isArray(g)?new zD(g,g.length):g,D=B.types,o=0,M=0;function G(y,S,c,k,U){let{id:H,start:b,end:s,size:l}=N,a=M;for(;l<0;)if(N.next(),l==-1){let F=Q[H];c.push(F),k.push(b-y);return}else if(l==-3){o=H;return}else if(l==-4){M=H;return}else throw new RangeError(`Unrecognized record size: ${l}`);let d=D[H],R,T,e=b-y;if(s-b<=C&&(T=w(N.pos-S,U))){let F=new Uint16Array(T.size-T.skip),p=N.pos-T.size,z=F.length;for(;N.pos>p;)z=t(T.start,F,z);R=new bI(F,s-T.start,B),e=T.start-y}else{let F=N.pos-l;N.next();let p=[],z=[],x=H>=E?H:-1,v=0,$=s;for(;N.pos>F;)x>=0&&N.id==x&&N.size>=0?(N.end<=$-C&&(L(p,z,b,v,N.end,$,x,a),v=p.length,$=N.end),N.next()):G(b,F,p,z,x);if(x>=0&&v>0&&v<p.length&&L(p,z,b,v,b,$,x,a),p.reverse(),z.reverse(),x>-1&&v>0){let u=i(d);R=jD(d,p,z,0,p.length,0,s-b,u,u)}else R=Y(d,p,z,s-b,a-s)}c.push(R),k.push(e)}function i(y){return(S,c,k)=>{let U=0,H=S.length-1,b,s;if(H>=0&&(b=S[H])instanceof tA){if(!H&&b.type==y&&b.length==k)return b;(s=b.prop(BA.lookAhead))&&(U=c[H]+b.length+s)}return Y(y,S,c,k,U)}}function L(y,S,c,k,U,H,b,s){let l=[],a=[];for(;y.length>k;)l.push(y.pop()),a.push(S.pop()+c-U);y.push(Y(B.types[b],l,a,H-U,s-H)),S.push(U-c)}function Y(y,S,c,k,U=0,H){if(o){let b=[BA.contextHash,o];H=H?[b].concat(H):[b]}if(U>25){let b=[BA.lookAhead,U];H=H?[b].concat(H):[b]}return new tA(y,S,c,k,H)}function w(y,S){let c=N.fork(),k=0,U=0,H=0,b=c.end-C,s={size:0,start:0,skip:0};A:for(let l=c.pos-y;c.pos>l;){let a=c.size;if(c.id==S&&a>=0){s.size=k,s.start=U,s.skip=H,H+=4,k+=4,c.next();continue}let d=c.pos-a;if(a<0||d<l||c.start<b)break;let R=c.id>=E?4:0,T=c.start;for(c.next();c.pos>d;){if(c.size<0)if(c.size==-3)R+=4;else break A;else c.id>=E&&(R+=4);c.next()}U=T,k+=a,H+=R}return(S<0||k==y)&&(s.size=k,s.start=U,s.skip=H),s.size>4?s:void 0}function t(y,S,c){let{id:k,start:U,end:H,size:b}=N;if(N.next(),b>=0&&k<E){let s=c;if(b>4){let l=N.pos-(b-4);for(;N.pos>l;)c=t(y,S,c)}S[--c]=s,S[--c]=H-y,S[--c]=U-y,S[--c]=k}else b==-3?o=k:b==-4&&(M=k);return c}let Z=[],h=[];for(;N.pos>0;)G(I.start||0,I.bufferStart||0,Z,h,-1);let K=(A=I.length)!==null&&A!==void 0?A:Z.length?h[0]+Z[0].length:0;return new tA(D[I.topID],Z.reverse(),h.reverse(),K)}const li=new WeakMap;function MQ(I,A){if(!I.isAnonymous||A instanceof bI||A.type!=I)return 1;let g=li.get(A);if(g==null){g=1;for(let B of A.children){if(B.type!=I||!(B instanceof tA)){g=1;break}g+=MQ(I,B)}li.set(A,g)}return g}function jD(I,A,g,B,C,Q,E,N,D){let o=0;for(let Y=B;Y<C;Y++)o+=MQ(I,A[Y]);let M=Math.ceil(o*1.5/8),G=[],i=[];function L(Y,w,t,Z,h){for(let K=t;K<Z;){let y=K,S=w[K],c=MQ(I,Y[K]);for(K++;K<Z;K++){let k=MQ(I,Y[K]);if(c+k>=M)break;c+=k}if(K==y+1){if(c>M){let k=Y[y];L(k.children,k.positions,0,k.children.length,w[y]+h);continue}G.push(Y[y])}else{let k=w[K-1]+Y[K-1].length-S;G.push(jD(I,Y,w,y,K,S,k,null,D))}i.push(S+h-Q)}}return L(A,g,B,C,0),(N||D)(G,i,E)}class dI{constructor(A,g,B,C,Q=!1,E=!1){this.from=A,this.to=g,this.tree=B,this.offset=C,this.open=(Q?1:0)|(E?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(A,g=[],B=!1){let C=[new dI(0,A.length,A,0,!1,B)];for(let Q of g)Q.to>A.length&&C.push(Q);return C}static applyChanges(A,g,B=128){if(!g.length)return A;let C=[],Q=1,E=A.length?A[0]:null;for(let N=0,D=0,o=0;;N++){let M=N<g.length?g[N]:null,G=M?M.fromA:1e9;if(G-D>=B)for(;E&&E.from<G;){let i=E;if(D>=i.from||G<=i.to||o){let L=Math.max(i.from,D)-o,Y=Math.min(i.to,G)-o;i=L>=Y?null:new dI(L,Y,i.tree,i.offset+o,N>0,!!M)}if(i&&C.push(i),E.to>G)break;E=Q<A.length?A[Q++]:null}if(!M)break;D=M.toA,o=M.toA-M.toB}return C}}class ki{startParse(A,g,B){return typeof A=="string"&&(A=new Gt(A)),B=B?B.length?B.map(C=>new TD(C.from,C.to)):[new TD(0,0)]:[new TD(0,A.length)],this.createParse(A,g||[],B)}parse(A,g,B){let C=this.startParse(A,g,B);for(;;){let Q=C.advance();if(Q)return Q}}}class Gt{constructor(A){this.string=A}get length(){return this.string.length}chunk(A){return this.string.slice(A)}get lineChunks(){return!1}read(A,g){return this.string.slice(A,g)}}new BA({perNode:!0});let it=0;class bg{constructor(A,g,B){this.set=A,this.base=g,this.modified=B,this.id=it++}static define(A){if(A!=null&&A.base)throw new Error("Can not derive from a modified tag");let g=new bg([],null,[]);if(g.set.push(g),A)for(let B of A.set)g.set.push(B);return g}static defineModifier(){let A=new GQ;return g=>g.modified.indexOf(A)>-1?g:GQ.get(g.base||g,g.modified.concat(A).sort((B,C)=>B.id-C.id))}}let Lt=0;class GQ{constructor(){this.instances=[],this.id=Lt++}static get(A,g){if(!g.length)return A;let B=g[0].instances.find(N=>N.base==A&&St(g,N.modified));if(B)return B;let C=[],Q=new bg(C,A,g);for(let N of g)N.instances.push(Q);let E=ct(g);for(let N of A.set)if(!N.modified.length)for(let D of E)C.push(GQ.get(N,D));return Q}}function St(I,A){return I.length==A.length&&I.every((g,B)=>g==A[B])}function ct(I){let A=[[]];for(let g=0;g<I.length;g++)for(let B=0,C=A.length;B<C;B++)A.push(A[B].concat(I[g]));return A.sort((g,B)=>B.length-g.length)}function Yt(I){let A=Object.create(null);for(let g in I){let B=I[g];Array.isArray(B)||(B=[B]);for(let C of g.split(" "))if(C){let Q=[],E=2,N=C;for(let G=0;;){if(N=="..."&&G>0&&G+3==C.length){E=1;break}let i=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(N);if(!i)throw new RangeError("Invalid path: "+C);if(Q.push(i[0]=="*"?"":i[0][0]=='"'?JSON.parse(i[0]):i[0]),G+=i[0].length,G==C.length)break;let L=C[G++];if(G==C.length&&L=="!"){E=0;break}if(L!="/")throw new RangeError("Invalid path: "+C);N=C.slice(G)}let D=Q.length-1,o=Q[D];if(!o)throw new RangeError("Invalid path: "+C);let M=new iQ(B,E,D>0?Q.slice(0,D):null);A[o]=M.sort(A[o])}}return Zi.add(A)}const Zi=new BA;class iQ{constructor(A,g,B,C){this.tags=A,this.mode=g,this.context=B,this.next=C}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(A){return!A||A.depth<this.depth?(this.next=A,this):(A.next=this.sort(A.next),A)}get depth(){return this.context?this.context.length:0}}iQ.empty=new iQ([],2,null);function hi(I,A){let g=Object.create(null);for(let Q of I)if(!Array.isArray(Q.tag))g[Q.tag.id]=Q.class;else for(let E of Q.tag)g[E.id]=Q.class;let{scope:B,all:C=null}=A||{};return{style:Q=>{let E=C;for(let N of Q)for(let D of N.set){let o=g[D.id];if(o){E=E?E+" "+o:o;break}}return E},scope:B}}function yt(I,A){let g=null;for(let B of I){let C=B.style(A);C&&(g=g?g+" "+C:C)}return g}function wt(I,A,g,B=0,C=I.length){let Q=new tt(B,Array.isArray(A)?A:[A],g);Q.highlightRange(I.cursor(),B,C,"",Q.highlighters),Q.flush(C)}class tt{constructor(A,g,B){this.at=A,this.highlighters=g,this.span=B,this.class=""}startSpan(A,g){g!=this.class&&(this.flush(A),A>this.at&&(this.at=A),this.class=g)}flush(A){A>this.at&&this.class&&this.span(this.at,A,this.class)}highlightRange(A,g,B,C,Q){let{type:E,from:N,to:D}=A;if(N>=B||D<=g)return;E.isTop&&(Q=this.highlighters.filter(L=>!L.scope||L.scope(E)));let o=C,M=st(A)||iQ.empty,G=yt(Q,M.tags);if(G&&(o&&(o+=" "),o+=G,M.mode==1&&(C+=(C?" ":"")+G)),this.startSpan(Math.max(g,N),o),M.opaque)return;let i=A.tree&&A.tree.prop(BA.mounted);if(i&&i.overlay){let L=A.node.enter(i.overlay[0].from+N,1),Y=this.highlighters.filter(t=>!t.scope||t.scope(i.tree.type)),w=A.firstChild();for(let t=0,Z=N;;t++){let h=t<i.overlay.length?i.overlay[t]:null,K=h?h.from+N:D,y=Math.max(g,Z),S=Math.min(B,K);if(y<S&&w)for(;A.from<S&&(this.highlightRange(A,y,S,C,Q),this.startSpan(Math.min(S,A.to),o),!(A.to>=K||!A.nextSibling())););if(!h||K>B)break;Z=h.to+N,Z>g&&(this.highlightRange(L.cursor(),Math.max(g,h.from+N),Math.min(B,Z),"",Y),this.startSpan(Math.min(B,Z),o))}w&&A.parent()}else if(A.firstChild()){i&&(C="");do if(!(A.to<=g)){if(A.from>=B)break;this.highlightRange(A,g,B,C,Q),this.startSpan(Math.min(B,A.to),o)}while(A.nextSibling());A.parent()}}}function st(I){let A=I.type.prop(Zi);for(;A&&A.context&&!I.matchContext(A.context);)A=A.next;return A||null}const O=bg.define,LQ=O(),oI=O(),ai=O(oI),bi=O(oI),MI=O(),SQ=O(MI),mD=O(MI),dg=O(),HI=O(dg),Hg=O(),Rg=O(),pD=O(),vB=O(pD),cQ=O(),V={comment:LQ,lineComment:O(LQ),blockComment:O(LQ),docComment:O(LQ),name:oI,variableName:O(oI),typeName:ai,tagName:O(ai),propertyName:bi,attributeName:O(bi),className:O(oI),labelName:O(oI),namespace:O(oI),macroName:O(oI),literal:MI,string:SQ,docString:O(SQ),character:O(SQ),attributeValue:O(SQ),number:mD,integer:O(mD),float:O(mD),bool:O(MI),regexp:O(MI),escape:O(MI),color:O(MI),url:O(MI),keyword:Hg,self:O(Hg),null:O(Hg),atom:O(Hg),unit:O(Hg),modifier:O(Hg),operatorKeyword:O(Hg),controlKeyword:O(Hg),definitionKeyword:O(Hg),moduleKeyword:O(Hg),operator:Rg,derefOperator:O(Rg),arithmeticOperator:O(Rg),logicOperator:O(Rg),bitwiseOperator:O(Rg),compareOperator:O(Rg),updateOperator:O(Rg),definitionOperator:O(Rg),typeOperator:O(Rg),controlOperator:O(Rg),punctuation:pD,separator:O(pD),bracket:vB,angleBracket:O(vB),squareBracket:O(vB),paren:O(vB),brace:O(vB),content:dg,heading:HI,heading1:O(HI),heading2:O(HI),heading3:O(HI),heading4:O(HI),heading5:O(HI),heading6:O(HI),contentSeparator:O(dg),list:O(dg),quote:O(dg),emphasis:O(dg),strong:O(dg),link:O(dg),monospace:O(dg),strikethrough:O(dg),inserted:O(),deleted:O(),changed:O(),invalid:O(),meta:cQ,documentMeta:O(cQ),annotation:O(cQ),processingInstruction:O(cQ),definition:bg.defineModifier(),constant:bg.defineModifier(),function:bg.defineModifier(),standard:bg.defineModifier(),local:bg.defineModifier(),special:bg.defineModifier()};hi([{tag:V.link,class:"tok-link"},{tag:V.heading,class:"tok-heading"},{tag:V.emphasis,class:"tok-emphasis"},{tag:V.strong,class:"tok-strong"},{tag:V.keyword,class:"tok-keyword"},{tag:V.atom,class:"tok-atom"},{tag:V.bool,class:"tok-bool"},{tag:V.url,class:"tok-url"},{tag:V.labelName,class:"tok-labelName"},{tag:V.inserted,class:"tok-inserted"},{tag:V.deleted,class:"tok-deleted"},{tag:V.literal,class:"tok-literal"},{tag:V.string,class:"tok-string"},{tag:V.number,class:"tok-number"},{tag:[V.regexp,V.escape,V.special(V.string)],class:"tok-string2"},{tag:V.variableName,class:"tok-variableName"},{tag:V.local(V.variableName),class:"tok-variableName tok-local"},{tag:V.definition(V.variableName),class:"tok-variableName tok-definition"},{tag:V.special(V.variableName),class:"tok-variableName2"},{tag:V.definition(V.propertyName),class:"tok-propertyName tok-definition"},{tag:V.typeName,class:"tok-typeName"},{tag:V.namespace,class:"tok-namespace"},{tag:V.className,class:"tok-className"},{tag:V.macroName,class:"tok-macroName"},{tag:V.propertyName,class:"tok-propertyName"},{tag:V.operator,class:"tok-operator"},{tag:V.comment,class:"tok-comment"},{tag:V.meta,class:"tok-meta"},{tag:V.invalid,class:"tok-invalid"},{tag:V.punctuation,class:"tok-punctuation"}]);var xD;const PI=new BA;function Kt(I){return r.define({combine:I?A=>A.concat(I):void 0})}const lt=new BA;class wg{constructor(A,g,B=[],C=""){this.data=A,this.name=C,CA.prototype.hasOwnProperty("tree")||Object.defineProperty(CA.prototype,"tree",{get(){return XA(this)}}),this.parser=g,this.extension=[$I.of(this),CA.languageData.of((Q,E,N)=>{let D=di(Q,E,N),o=D.type.prop(PI);if(!o)return[];let M=Q.facet(o),G=D.type.prop(lt);if(G){let i=D.resolve(E-D.from,N);for(let L of G)if(L.test(i,Q)){let Y=Q.facet(L.facet);return L.type=="replace"?Y:Y.concat(M)}}return M})].concat(B)}isActiveAt(A,g,B=-1){return di(A,g,B).type.prop(PI)==this.data}findRegions(A){let g=A.facet($I);if((g==null?void 0:g.data)==this.data)return[{from:0,to:A.doc.length}];if(!g||!g.allowsNesting)return[];let B=[],C=(Q,E)=>{if(Q.prop(PI)==this.data){B.push({from:E,to:E+Q.length});return}let N=Q.prop(BA.mounted);if(N){if(N.tree.prop(PI)==this.data){if(N.overlay)for(let D of N.overlay)B.push({from:D.from+E,to:D.to+E});else B.push({from:E,to:E+Q.length});return}else if(N.overlay){let D=B.length;if(C(N.tree,N.overlay[0].from+E),B.length>D)return}}for(let D=0;D<Q.children.length;D++){let o=Q.children[D];o instanceof tA&&C(o,Q.positions[D]+E)}};return C(XA(A),0),B}get allowsNesting(){return!0}}wg.setState=IA.define();function di(I,A,g){let B=I.facet($I),C=XA(I).topNode;if(!B||B.allowsNesting)for(let Q=C;Q;Q=Q.enter(A,g,jA.ExcludeBuffers))Q.type.isTop&&(C=Q);return C}function XA(I){let A=I.field(wg.state,!1);return A?A.tree:tA.empty}class kt{constructor(A){this.doc=A,this.cursorPos=0,this.string="",this.cursor=A.iter()}get length(){return this.doc.length}syncTo(A){return this.string=this.cursor.next(A-this.cursorPos).value,this.cursorPos=A+this.string.length,this.cursorPos-this.string.length}chunk(A){return this.syncTo(A),this.string}get lineChunks(){return!0}read(A,g){let B=this.cursorPos-this.string.length;return A<B||g>=this.cursorPos?this.doc.sliceString(A,g):this.string.slice(A-B,g-B)}}let VB=null;class qI{constructor(A,g,B=[],C,Q,E,N,D){this.parser=A,this.state=g,this.fragments=B,this.tree=C,this.treeLen=Q,this.viewport=E,this.skipped=N,this.scheduleOn=D,this.parse=null,this.tempSkipped=[]}static create(A,g,B){return new qI(A,g,[],tA.empty,0,B,[],null)}startParse(){return this.parser.startParse(new kt(this.state.doc),this.fragments)}work(A,g){return g!=null&&g>=this.state.doc.length&&(g=void 0),this.tree!=tA.empty&&this.isDone(g??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var B;if(typeof A=="number"){let C=Date.now()+A;A=()=>Date.now()>C}for(this.parse||(this.parse=this.startParse()),g!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>g)&&g<this.state.doc.length&&this.parse.stopAt(g);;){let C=this.parse.advance();if(C)if(this.fragments=this.withoutTempSkipped(dI.addTree(C,this.fragments,this.parse.stoppedAt!=null)),this.treeLen=(B=this.parse.stoppedAt)!==null&&B!==void 0?B:this.state.doc.length,this.tree=C,this.parse=null,this.treeLen<(g??this.state.doc.length))this.parse=this.startParse();else return!0;if(A())return!1}})}takeTree(){let A,g;this.parse&&(A=this.parse.parsedPos)>=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>A)&&this.parse.stopAt(A),this.withContext(()=>{for(;!(g=this.parse.advance()););}),this.treeLen=A,this.tree=g,this.fragments=this.withoutTempSkipped(dI.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(A){let g=VB;VB=this;try{return A()}finally{VB=g}}withoutTempSkipped(A){for(let g;g=this.tempSkipped.pop();)A=Hi(A,g.from,g.to);return A}changes(A,g){let{fragments:B,tree:C,treeLen:Q,viewport:E,skipped:N}=this;if(this.takeTree(),!A.empty){let D=[];if(A.iterChangedRanges((o,M,G,i)=>D.push({fromA:o,toA:M,fromB:G,toB:i})),B=dI.applyChanges(B,D),C=tA.empty,Q=0,E={from:A.mapPos(E.from,-1),to:A.mapPos(E.to,1)},this.skipped.length){N=[];for(let o of this.skipped){let M=A.mapPos(o.from,1),G=A.mapPos(o.to,-1);M<G&&N.push({from:M,to:G})}}}return new qI(this.parser,g,B,C,Q,E,N,this.scheduleOn)}updateViewport(A){if(this.viewport.from==A.from&&this.viewport.to==A.to)return!1;this.viewport=A;let g=this.skipped.length;for(let B=0;B<this.skipped.length;B++){let{from:C,to:Q}=this.skipped[B];C<A.to&&Q>A.from&&(this.fragments=Hi(this.fragments,C,Q),this.skipped.splice(B--,1))}return this.skipped.length>=g?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(A,g){this.skipped.push({from:A,to:g})}static getSkippingParser(A){return new class extends ki{createParse(g,B,C){let Q=C[0].from,E=C[C.length-1].to;return{parsedPos:Q,advance(){let D=VB;if(D){for(let o of C)D.tempSkipped.push(o);A&&(D.scheduleOn=D.scheduleOn?Promise.all([D.scheduleOn,A]):A)}return this.parsedPos=E,new tA(VA.none,[],[],E-Q)},stoppedAt:null,stopAt(){}}}}}isDone(A){A=Math.min(A,this.state.doc.length);let g=this.fragments;return this.treeLen>=A&&g.length&&g[0].from==0&&g[0].to>=A}static get(){return VB}}function Hi(I,A,g){return dI.applyChanges(I,[{fromA:A,toA:g,fromB:A,toB:g}])}class _I{constructor(A){this.context=A,this.tree=A.tree}apply(A){if(!A.docChanged&&this.tree==this.context.tree)return this;let g=this.context.changes(A.changes,A.state),B=this.context.treeLen==A.startState.doc.length?void 0:Math.max(A.changes.mapPos(this.context.treeLen),g.viewport.to);return g.work(20,B)||g.takeTree(),new _I(g)}static init(A){let g=Math.min(3e3,A.doc.length),B=qI.create(A.facet($I).parser,A,{from:0,to:g});return B.work(20,g)||B.takeTree(),new _I(B)}}wg.state=nA.define({create:_I.init,update(I,A){for(let g of A.effects)if(g.is(wg.setState))return g.value;return A.startState.facet($I)!=A.state.facet($I)?_I.init(A.state):I.apply(A)}});let Ri=I=>{let A=setTimeout(()=>I(),500);return()=>clearTimeout(A)};typeof requestIdleCallback<"u"&&(Ri=I=>{let A=-1,g=setTimeout(()=>{A=requestIdleCallback(I,{timeout:500-100})},100);return()=>A<0?clearTimeout(g):cancelIdleCallback(A)});const nD=typeof navigator<"u"&&(!((xD=navigator.scheduling)===null||xD===void 0)&&xD.isInputPending)?()=>navigator.scheduling.isInputPending():null,Zt=RA.fromClass(class{constructor(A){this.view=A,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(A){let g=this.view.state.field(wg.state).context;(g.updateViewport(A.view.viewport)||this.view.viewport.to>g.treeLen)&&this.scheduleWork(),A.docChanged&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(g)}scheduleWork(){if(this.working)return;let{state:A}=this.view,g=A.field(wg.state);(g.tree!=g.context.tree||!g.context.isDone(A.doc.length))&&(this.working=Ri(this.work))}work(A){this.working=null;let g=Date.now();if(this.chunkEnd<g&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=g+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:B,viewport:{to:C}}=this.view,Q=B.field(wg.state);if(Q.tree==Q.context.tree&&Q.context.isDone(C+1e5))return;let E=Date.now()+Math.min(this.chunkBudget,100,A&&!nD?Math.max(25,A.timeRemaining()-5):1e9),N=Q.context.treeLen<C&&B.doc.length>C+1e3,D=Q.context.work(()=>nD&&nD()||Date.now()>E,C+(N?0:1e5));this.chunkBudget-=Date.now()-g,(D||this.chunkBudget<=0)&&(Q.context.takeTree(),this.view.dispatch({effects:wg.setState.of(new _I(Q.context))})),this.chunkBudget>0&&!(D&&!N)&&this.scheduleWork(),this.checkAsyncSchedule(Q.context)}checkAsyncSchedule(A){A.scheduleOn&&(this.workScheduled++,A.scheduleOn.then(()=>this.scheduleWork()).catch(g=>Ng(this.view.state,g)).then(()=>this.workScheduled--),A.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),$I=r.define({combine(I){return I.length?I[0]:null},enables:I=>[wg.state,Zt,q.contentAttributes.compute([I],A=>{let g=A.facet(I);return g&&g.name?{"data-language":g.name}:{}})]}),Ui=r.define(),WD=r.define({combine:I=>{if(!I.length)return" ";let A=I[0];if(!A||/\S/.test(A)||Array.from(A).some(g=>g!=A[0]))throw new Error("Invalid indent unit: "+JSON.stringify(I[0]));return A}});function RI(I){let A=I.facet(WD);return A.charCodeAt(0)==9?I.tabSize*A.length:A.length}function XB(I,A){let g="",B=I.tabSize,C=I.facet(WD)[0];if(C==" "){for(;A>=B;)g+=" ",A-=B;C=" "}for(let Q=0;Q<A;Q++)g+=C;return g}function OD(I,A){I instanceof CA&&(I=new YQ(I));for(let B of I.state.facet(Ui)){let C=B(I,A);if(C!==void 0)return C}let g=XA(I.state);return g.length>=A?at(I,g,A):null}class YQ{constructor(A,g={}){this.state=A,this.options=g,this.unit=RI(A)}lineAt(A,g=1){let B=this.state.doc.lineAt(A),{simulateBreak:C,simulateDoubleBreak:Q}=this.options;return C!=null&&C>=B.from&&C<=B.to?Q&&C==A?{text:"",from:A}:(g<0?C<A:C<=A)?{text:B.text.slice(C-B.from),from:C}:{text:B.text.slice(0,C-B.from),from:B.from}:B}textAfterPos(A,g=1){if(this.options.simulateDoubleBreak&&A==this.options.simulateBreak)return"";let{text:B,from:C}=this.lineAt(A,g);return B.slice(A-C,Math.min(B.length,A+100-C))}column(A,g=1){let{text:B,from:C}=this.lineAt(A,g),Q=this.countColumn(B,A-C),E=this.options.overrideIndentation?this.options.overrideIndentation(C):-1;return E>-1&&(Q+=E-this.countColumn(B,B.search(/\S|$/))),Q}countColumn(A,g=A.length){return JI(A,this.state.tabSize,g)}lineIndent(A,g=1){let{text:B,from:C}=this.lineAt(A,g),Q=this.options.overrideIndentation;if(Q){let E=Q(C);if(E>-1)return E}return this.countColumn(B,B.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const ht=new BA;function at(I,A,g){return Ti(A.resolveInner(g).enterUnfinishedNodesBefore(g),g,I)}function bt(I){return I.pos==I.options.simulateBreak&&I.options.simulateDoubleBreak}function dt(I){let A=I.type.prop(ht);if(A)return A;let g=I.firstChild,B;if(g&&(B=g.type.prop(BA.closedBy))){let C=I.lastChild,Q=C&&B.indexOf(C.name)>-1;return E=>Tt(E,!0,1,void 0,Q&&!bt(E)?C.from:void 0)}return I.parent==null?Ht:null}function Ti(I,A,g){for(;I;I=I.parent){let B=dt(I);if(B)return B(JD.create(g,A,I))}return null}function Ht(){return 0}class JD extends YQ{constructor(A,g,B){super(A.state,A.options),this.base=A,this.pos=g,this.node=B}static create(A,g,B){return new JD(A,g,B)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(A){let g=this.state.doc.lineAt(A.from);for(;;){let B=A.resolve(g.from);for(;B.parent&&B.parent.from==B.from;)B=B.parent;if(Rt(B,A))break;g=this.state.doc.lineAt(B.from)}return this.lineIndent(g.from)}continue(){let A=this.node.parent;return A?Ti(A,this.pos,this.base):0}}function Rt(I,A){for(let g=A;g;g=g.parent)if(I==g)return!0;return!1}function Ut(I){let A=I.node,g=A.childAfter(A.from),B=A.lastChild;if(!g)return null;let C=I.options.simulateBreak,Q=I.state.doc.lineAt(g.from),E=C==null||C<=Q.from?Q.to:Math.min(Q.to,C);for(let N=g.to;;){let D=A.childAfter(N);if(!D||D==B)return null;if(!D.type.isSkipped)return D.from<E?g:null;N=D.to}}function Tt(I,A,g,B,C){let Q=I.textAfter,E=Q.match(/^\s*/)[0].length,N=B&&Q.slice(E,E+B.length)==B||C==I.pos+E,D=A?Ut(I):null;return D?N?I.column(D.from):I.column(D.to):I.baseIndent+(N?0:I.unit*g)}const et=200;function zt(){return CA.transactionFilter.of(I=>{if(!I.docChanged||!I.isUserEvent("input.type")&&!I.isUserEvent("input.complete"))return I;let A=I.startState.languageDataAt("indentOnInput",I.startState.selection.main.head);if(!A.length)return I;let g=I.newDoc,{head:B}=I.newSelection.main,C=g.lineAt(B);if(B>C.from+et)return I;let Q=g.sliceString(C.from,B);if(!A.some(o=>o.test(Q)))return I;let{state:E}=I,N=-1,D=[];for(let{head:o}of E.selection.ranges){let M=E.doc.lineAt(o);if(M.from==N)continue;N=M.from;let G=OD(E,M.from);if(G==null)continue;let i=/^\s*/.exec(M.text)[0],L=XB(E,G);i!=L&&D.push({from:M.from,to:M.from+i.length,insert:L})}return D.length?[I,{changes:D,sequential:!0}]:I})}class yQ{constructor(A,g){this.specs=A;let B;function C(N){let D=AI.newName();return(B||(B=Object.create(null)))["."+D]=N,D}const Q=typeof g.all=="string"?g.all:g.all?C(g.all):void 0,E=g.scope;this.scope=E instanceof wg?N=>N.prop(PI)==E.data:E?N=>N==E:void 0,this.style=hi(A.map(N=>({tag:N.tag,class:N.class||C(Object.assign({},N,{tag:null}))})),{all:Q}).style,this.module=B?new AI(B):null,this.themeType=g.themeType}static define(A,g){return new yQ(A,g||{})}}const uD=r.define(),ei=r.define({combine(I){return I.length?[I[0]]:null}});function vD(I){let A=I.facet(uD);return A.length?A:I.facet(ei)}function Ft(I,A){let g=[mt],B;return I instanceof yQ&&(I.module&&g.push(q.styleModule.of(I.module)),B=I.themeType),A!=null&&A.fallback?g.push(ei.of(I)):B?g.push(uD.computeN([q.darkTheme],C=>C.facet(q.darkTheme)==(B=="dark")?[I]:[])):g.push(uD.of(I)),g}class jt{constructor(A){this.markCache=Object.create(null),this.tree=XA(A.state),this.decorations=this.buildDeco(A,vD(A.state))}update(A){let g=XA(A.state),B=vD(A.state),C=B!=vD(A.startState);g.length<A.view.viewport.to&&!C&&g.type==this.tree.type?this.decorations=this.decorations.map(A.changes):(g!=this.tree||A.viewportChanged||C)&&(this.tree=g,this.decorations=this.buildDeco(A.view,B))}buildDeco(A,g){if(!g||!this.tree.length)return AA.none;let B=new ZI;for(let{from:C,to:Q}of A.visibleRanges)wt(this.tree,g,(E,N,D)=>{B.add(E,N,this.markCache[D]||(this.markCache[D]=AA.mark({class:D})))},C,Q);return B.finish()}}const mt=WI.high(RA.fromClass(jt,{decorations:I=>I.decorations})),pt=yQ.define([{tag:V.meta,color:"#404740"},{tag:V.link,textDecoration:"underline"},{tag:V.heading,textDecoration:"underline",fontWeight:"bold"},{tag:V.emphasis,fontStyle:"italic"},{tag:V.strong,fontWeight:"bold"},{tag:V.strikethrough,textDecoration:"line-through"},{tag:V.keyword,color:"#708"},{tag:[V.atom,V.bool,V.url,V.contentSeparator,V.labelName],color:"#219"},{tag:[V.literal,V.inserted],color:"#164"},{tag:[V.string,V.deleted],color:"#a11"},{tag:[V.regexp,V.escape,V.special(V.string)],color:"#e40"},{tag:V.definition(V.variableName),color:"#00f"},{tag:V.local(V.variableName),color:"#30a"},{tag:[V.typeName,V.namespace],color:"#085"},{tag:V.className,color:"#167"},{tag:[V.special(V.variableName),V.macroName],color:"#256"},{tag:V.definition(V.propertyName),color:"#00c"},{tag:V.comment,color:"#940"},{tag:V.invalid,color:"#f00"}]),xt=q.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),zi=1e4,Fi="()[]{}",ji=r.define({combine(I){return Og(I,{afterCursor:!0,brackets:Fi,maxScanDistance:zi,renderMatch:Ot})}}),nt=AA.mark({class:"cm-matchingBracket"}),Wt=AA.mark({class:"cm-nonmatchingBracket"});function Ot(I){let A=[],g=I.matched?nt:Wt;return A.push(g.range(I.start.from,I.start.to)),I.end&&A.push(g.range(I.end.from,I.end.to)),A}const Jt=[nA.define({create(){return AA.none},update(I,A){if(!A.docChanged&&!A.selection)return I;let g=[],B=A.state.facet(ji);for(let C of A.state.selection.ranges){if(!C.empty)continue;let Q=Ug(A.state,C.head,-1,B)||C.head>0&&Ug(A.state,C.head-1,1,B)||B.afterCursor&&(Ug(A.state,C.head,1,B)||C.head<A.state.doc.length&&Ug(A.state,C.head+1,-1,B));Q&&(g=g.concat(B.renderMatch(Q,A.state)))}return AA.set(g,!0)},provide:I=>q.decorations.from(I)}),xt];function ut(I={}){return[ji.of(I),Jt]}const vt=new BA;function VD(I,A,g){let B=I.prop(A<0?BA.openedBy:BA.closedBy);if(B)return B;if(I.name.length==1){let C=g.indexOf(I.name);if(C>-1&&C%2==(A<0?1:0))return[g[C+A]]}return null}function XD(I){let A=I.type.prop(vt);return A?A(I.node):I}function Ug(I,A,g,B={}){let C=B.maxScanDistance||zi,Q=B.brackets||Fi,E=XA(I),N=E.resolveInner(A,g);for(let D=N;D;D=D.parent){let o=VD(D.type,g,Q);if(o&&D.from<D.to){let M=XD(D);if(M&&(g>0?A>=M.from&&A<M.to:A>M.from&&A<=M.to))return Vt(I,A,g,D,M,o,Q)}}return Xt(I,A,g,E,N.type,C,Q)}function Vt(I,A,g,B,C,Q,E){let N=B.parent,D={from:C.from,to:C.to},o=0,M=N==null?void 0:N.cursor();if(M&&(g<0?M.childBefore(B.from):M.childAfter(B.to)))do if(g<0?M.to<=B.from:M.from>=B.to){if(o==0&&Q.indexOf(M.type.name)>-1&&M.from<M.to){let G=XD(M);return{start:D,end:G?{from:G.from,to:G.to}:void 0,matched:!0}}else if(VD(M.type,g,E))o++;else if(VD(M.type,-g,E)){if(o==0){let G=XD(M);return{start:D,end:G&&G.from<G.to?{from:G.from,to:G.to}:void 0,matched:!1}}o--}}while(g<0?M.prevSibling():M.nextSibling());return{start:D,matched:!1}}function Xt(I,A,g,B,C,Q,E){let N=g<0?I.sliceDoc(A-1,A):I.sliceDoc(A,A+1),D=E.indexOf(N);if(D<0||D%2==0!=g>0)return null;let o={from:g<0?A-1:A,to:g>0?A+1:A},M=I.doc.iterRange(A,g>0?I.doc.length:0),G=0;for(let i=0;!M.next().done&&i<=Q;){let L=M.value;g<0&&(i+=L.length);let Y=A+i*g;for(let w=g>0?0:L.length-1,t=g>0?L.length:-1;w!=t;w+=g){let Z=E.indexOf(L[w]);if(!(Z<0||B.resolveInner(Y+w,1).type!=C))if(Z%2==0==g>0)G++;else{if(G==1)return{start:o,end:{from:Y+w,to:Y+w+1},matched:Z>>1==D>>1};G--}}g>0&&(i+=L.length)}return M.done?{start:o,matched:!1}:null}function mi(I,A,g,B=0,C=0){A==null&&(A=I.search(/[^\s\u00a0]/),A==-1&&(A=I.length));let Q=C;for(let E=B;E<A;E++)I.charCodeAt(E)==9?Q+=g-Q%g:Q++;return Q}class pi{constructor(A,g,B,C){this.string=A,this.tabSize=g,this.indentUnit=B,this.overrideIndent=C,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(A){let g=this.string.charAt(this.pos),B;if(typeof A=="string"?B=g==A:B=g&&(A instanceof RegExp?A.test(g):A(g)),B)return++this.pos,g}eatWhile(A){let g=this.pos;for(;this.eat(A););return this.pos>g}eatSpace(){let A=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>A}skipToEnd(){this.pos=this.string.length}skipTo(A){let g=this.string.indexOf(A,this.pos);if(g>-1)return this.pos=g,!0}backUp(A){this.pos-=A}column(){return this.lastColumnPos<this.start&&(this.lastColumnValue=mi(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue}indentation(){var A;return(A=this.overrideIndent)!==null&&A!==void 0?A:mi(this.string,null,this.tabSize)}match(A,g,B){if(typeof A=="string"){let C=E=>B?E.toLowerCase():E,Q=this.string.substr(this.pos,A.length);return C(Q)==C(A)?(g!==!1&&(this.pos+=A.length),!0):null}else{let C=this.string.slice(this.pos).match(A);return C&&C.index>0?null:(C&&g!==!1&&(this.pos+=C[0].length),C)}}current(){return this.string.slice(this.start,this.pos)}}function rt(I){return{name:I.name||"",token:I.token,blankLine:I.blankLine||(()=>{}),startState:I.startState||(()=>!0),copyState:I.copyState||ft,indent:I.indent||(()=>null),languageData:I.languageData||{},tokenTable:I.tokenTable||PD}}function ft(I){if(typeof I!="object")return I;let A={};for(let g in I){let B=I[g];A[g]=B instanceof Array?B.slice():B}return A}const xi=new WeakMap;class rD extends wg{constructor(A){let g=Kt(A.languageData),B=rt(A),C,Q=new class extends ki{createParse(E,N,D){return new qt(C,E,N,D)}};super(g,Q,[Ui.of((E,N)=>this.getIndent(E,N))],A.name),this.topNode=As(g),C=this,this.streamParser=B,this.stateAfter=new BA({perNode:!0}),this.tokenTable=A.tokenTable?new ui(B.tokenTable):$t}static define(A){return new rD(A)}getIndent(A,g){let B=XA(A.state),C=B.resolve(g);for(;C&&C.type!=this.topNode;)C=C.parent;if(!C)return null;let Q,{overrideIndentation:E}=A.options;E&&(Q=xi.get(A.state),Q!=null&&Q<g-1e4&&(Q=void 0));let N=fD(this,B,0,C.from,Q??g),D,o;if(N?(o=N.state,D=N.pos+1):(o=this.streamParser.startState(A.unit),D=0),g-D>1e4)return null;for(;D<g;){let G=A.state.doc.lineAt(D),i=Math.min(g,G.to);if(G.length){let L=E?E(G.from):-1,Y=new pi(G.text,A.state.tabSize,A.unit,L<0?void 0:L);for(;Y.pos<i-G.from;)Wi(this.streamParser.token,Y,o)}else this.streamParser.blankLine(o,A.unit);if(i==g)break;D=G.to+1}let M=A.lineAt(g);return E&&Q==null&&xi.set(A.state,M.from),this.streamParser.indent(o,/^\s*(.*)/.exec(M.text)[1],A)}get allowsNesting(){return!1}}function fD(I,A,g,B,C){let Q=g>=B&&g+A.length<=C&&A.prop(I.stateAfter);if(Q)return{state:I.streamParser.copyState(Q),pos:g+A.length};for(let E=A.children.length-1;E>=0;E--){let N=A.children[E],D=g+A.positions[E],o=N instanceof tA&&D<C&&fD(I,N,D,B,C);if(o)return o}return null}function ni(I,A,g,B,C){if(C&&g<=0&&B>=A.length)return A;!C&&A.type==I.topNode&&(C=!0);for(let Q=A.children.length-1;Q>=0;Q--){let E=A.positions[Q],N=A.children[Q],D;if(E<B&&N instanceof tA){if(!(D=ni(I,N,g-E,B-E,C)))break;return C?new tA(A.type,A.children.slice(0,Q).concat(D),A.positions.slice(0,Q+1),E+D.length):D}}return null}function Pt(I,A,g,B){for(let C of A){let Q=C.from+(C.openStart?25:0),E=C.to-(C.openEnd?25:0),N=Q<=g&&E>g&&fD(I,C.tree,0-C.offset,g,E),D;if(N&&(D=ni(I,C.tree,g+C.offset,N.pos+C.offset,!1)))return{state:N.state,tree:D}}return{state:I.streamParser.startState(B?RI(B):4),tree:tA.empty}}class qt{constructor(A,g,B,C){this.lang=A,this.input=g,this.fragments=B,this.ranges=C,this.stoppedAt=null,this.chunks=[],this.chunkPos=[],this.chunk=[],this.chunkReused=void 0,this.rangeIndex=0,this.to=C[C.length-1].to;let Q=qI.get(),E=C[0].from,{state:N,tree:D}=Pt(A,B,E,Q==null?void 0:Q.state);this.state=N,this.parsedPos=this.chunkStart=E+D.length;for(let o=0;o<D.children.length;o++)this.chunks.push(D.children[o]),this.chunkPos.push(D.positions[o]);Q&&this.parsedPos<Q.viewport.from-1e5&&(this.state=this.lang.streamParser.startState(RI(Q.state)),Q.skipUntilInView(this.parsedPos,Q.viewport.from),this.parsedPos=Q.viewport.from),this.moveRangeIndex()}advance(){let A=qI.get(),g=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt),B=Math.min(g,this.chunkStart+2048);for(A&&(B=Math.min(B,A.viewport.to));this.parsedPos<B;)this.parseLine(A);return this.chunkStart<this.parsedPos&&this.finishChunk(),this.parsedPos>=g?this.finish():A&&this.parsedPos>=A.viewport.to?(A.skipUntilInView(this.parsedPos,g),this.finish()):null}stopAt(A){this.stoppedAt=A}lineAfter(A){let g=this.input.chunk(A);if(this.input.lineChunks)g==`
|
1623
|
+
`,C=I.state.doc.line(C.number+(g?1:-1)),Q=I.bidiSpans(C),o=j.cursor(g?C.from:C.to)}if(D){if(!D(M))return N}else{if(!B)return o;D=B(M)}N=o}}function sy(I,A,g){let B=I.state.charCategorizer(A),C=B(g);return Q=>{let E=B(Q);return C==YA.Space&&(C=E),C==E}}function Ky(I,A,g,B){let C=A.head,Q=g?1:-1;if(C==(g?I.state.doc.length:0))return j.cursor(C,A.assoc);let E=A.goalColumn,N,D=I.contentDOM.getBoundingClientRect(),o=I.coordsAtPos(C),M=I.documentTop;if(o)E==null&&(E=o.left-D.left),N=Q<0?o.top:o.bottom;else{let L=I.viewState.lineBlockAt(C);E==null&&(E=Math.min(D.right-D.left,I.defaultCharacterWidth*(C-L.from))),N=(Q<0?L.top:L.bottom)+M}let G=D.left+E,i=B??I.viewState.heightOracle.textHeight>>1;for(let L=0;;L+=10){let Y=N+(i+L)*Q,w=iG(I,{x:G,y:Y},!1,Q);if(Y<D.top||Y>D.bottom||(Q<0?w<C:w>C))return j.cursor(w,A.assoc,void 0,E)}}function JC(I,A,g){for(;;){let B=0;for(let C of I)C.between(A-1,A+1,(Q,E,N)=>{if(A>Q&&A<E){let D=B||g||(A-Q<E-A?-1:1);A=D<0?Q:E,B=D}});if(!B)return A}}function iD(I,A,g){let B=JC(I.state.facet(QD).map(C=>C(I)),g.from,A.head>g.from?-1:1);return B==g.from?g:j.cursor(B,B<g.from?1:-1)}class ly{setSelectionOrigin(A){this.lastSelectionOrigin=A,this.lastSelectionTime=Date.now()}constructor(A){this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.chromeScrollHack=-1,this.pendingIOSKey=void 0,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.lastContextMenu=0,this.scrollHandlers=[],this.registeredEvents=[],this.customHandlers=[],this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.mouseSelection=null;let g=(B,C)=>{this.ignoreDuringComposition(C)||C.type=="keydown"&&this.keydown(A,C)||(this.mustFlushObserver(C)&&A.observer.forceFlush(),this.runCustomHandlers(C.type,A,C)?C.preventDefault():B(A,C))};for(let B in kA){let C=kA[B];A.contentDOM.addEventListener(B,Q=>{yG(A,Q)&&g(C,Q)},LD[B]),this.registeredEvents.push(B)}A.scrollDOM.addEventListener("mousedown",B=>{if(B.target==A.scrollDOM&&B.clientY>A.contentDOM.getBoundingClientRect().bottom&&(g(kA.mousedown,B),!B.defaultPrevented&&B.button==2)){let C=A.contentDOM.style.minHeight;A.contentDOM.style.minHeight="100%",setTimeout(()=>A.contentDOM.style.minHeight=C,200)}}),A.scrollDOM.addEventListener("drop",B=>{B.target==A.scrollDOM&&B.clientY>A.contentDOM.getBoundingClientRect().bottom&&g(kA.drop,B)}),X.chrome&&X.chrome_version==102&&A.scrollDOM.addEventListener("wheel",()=>{this.chromeScrollHack<0?A.contentDOM.style.pointerEvents="none":window.clearTimeout(this.chromeScrollHack),this.chromeScrollHack=setTimeout(()=>{this.chromeScrollHack=-1,A.contentDOM.style.pointerEvents=""},100)},{passive:!0}),this.notifiedFocused=A.hasFocus,X.safari&&A.contentDOM.addEventListener("input",()=>null),X.gecko&&jy(A.contentDOM.ownerDocument)}ensureHandlers(A,g){var B;let C;this.customHandlers=[];for(let Q of g)if(C=(B=Q.update(A).spec)===null||B===void 0?void 0:B.domEventHandlers){this.customHandlers.push({plugin:Q.value,handlers:C});for(let E in C)this.registeredEvents.indexOf(E)<0&&E!="scroll"&&(this.registeredEvents.push(E),A.contentDOM.addEventListener(E,N=>{yG(A,N)&&this.runCustomHandlers(E,A,N)&&N.preventDefault()}))}}runCustomHandlers(A,g,B){for(let C of this.customHandlers){let Q=C.handlers[A];if(Q)try{if(Q.call(C.plugin,B,g)||B.defaultPrevented)return!0}catch(E){Ng(g.state,E)}}return!1}runScrollHandlers(A,g){this.lastScrollTop=A.scrollDOM.scrollTop,this.lastScrollLeft=A.scrollDOM.scrollLeft;for(let B of this.customHandlers){let C=B.handlers.scroll;if(C)try{C.call(B.plugin,g,A)}catch(Q){Ng(A.state,Q)}}}keydown(A,g){if(this.lastKeyCode=g.keyCode,this.lastKeyTime=Date.now(),g.keyCode==9&&Date.now()<this.lastEscPress+2e3)return!0;if(g.keyCode!=27&&YG.indexOf(g.keyCode)<0&&(A.inputState.lastEscPress=0),X.android&&X.chrome&&!g.synthetic&&(g.keyCode==13||g.keyCode==8))return A.observer.delayAndroidKey(g.key,g.keyCode),!0;let B;return X.ios&&!g.synthetic&&!g.altKey&&!g.metaKey&&((B=cG.find(C=>C.keyCode==g.keyCode))&&!g.ctrlKey||ky.indexOf(g.key)>-1&&g.ctrlKey&&!g.shiftKey)?(this.pendingIOSKey=B||g,setTimeout(()=>this.flushIOSKey(A),250),!0):!1}flushIOSKey(A){let g=this.pendingIOSKey;return g?(this.pendingIOSKey=void 0,vI(A.contentDOM,g.key,g.keyCode)):!1}ignoreDuringComposition(A){return/^key/.test(A.type)?this.composing>0?!0:X.safari&&!X.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1:!1}mustFlushObserver(A){return A.type=="keydown"&&A.keyCode!=229}startMouseSelection(A){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=A}update(A){this.mouseSelection&&this.mouseSelection.update(A),A.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}const cG=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],ky="dthko",YG=[16,17,18,20,91,92,224,225],uC=6;function vC(I){return Math.max(0,I)*.7+8}function Zy(I,A){return Math.max(Math.abs(I.clientX-A.clientX),Math.abs(I.clientY-A.clientY))}class hy{constructor(A,g,B,C){this.view=A,this.startEvent=g,this.style=B,this.mustSelect=C,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=g,this.scrollParent=OY(A.contentDOM),this.atoms=A.state.facet(QD).map(E=>E(A));let Q=A.contentDOM.ownerDocument;Q.addEventListener("mousemove",this.move=this.move.bind(this)),Q.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=g.shiftKey,this.multiple=A.state.facet(CA.allowMultipleSelections)&&ay(A,g),this.dragging=dy(A,g)&&bG(g)==1?null:!1}start(A){this.dragging===!1&&(A.preventDefault(),this.select(A))}move(A){var g;if(A.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&Zy(this.startEvent,A)<10)return;this.select(this.lastEvent=A);let B=0,C=0,Q=((g=this.scrollParent)===null||g===void 0?void 0:g.getBoundingClientRect())||{left:0,top:0,right:this.view.win.innerWidth,bottom:this.view.win.innerHeight},E=$M(this.view);A.clientX-E.left<=Q.left+uC?B=-vC(Q.left-A.clientX):A.clientX+E.right>=Q.right-uC&&(B=vC(A.clientX-Q.right)),A.clientY-E.top<=Q.top+uC?C=-vC(Q.top-A.clientY):A.clientY+E.bottom>=Q.bottom-uC&&(C=vC(A.clientY-Q.bottom)),this.setScrollSpeed(B,C)}up(A){this.dragging==null&&this.select(this.lastEvent),this.dragging||A.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let A=this.view.contentDOM.ownerDocument;A.removeEventListener("mousemove",this.move),A.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=null}setScrollSpeed(A,g){this.scrollSpeed={x:A,y:g},A||g?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){this.scrollParent?(this.scrollParent.scrollLeft+=this.scrollSpeed.x,this.scrollParent.scrollTop+=this.scrollSpeed.y):this.view.win.scrollBy(this.scrollSpeed.x,this.scrollSpeed.y),this.dragging===!1&&this.select(this.lastEvent)}skipAtoms(A){let g=null;for(let B=0;B<A.ranges.length;B++){let C=A.ranges[B],Q=null;if(C.empty){let E=JC(this.atoms,C.from,0);E!=C.from&&(Q=j.cursor(E,-1))}else{let E=JC(this.atoms,C.from,-1),N=JC(this.atoms,C.to,1);(E!=C.from||N!=C.to)&&(Q=j.range(C.from==C.anchor?E:N,C.from==C.head?E:N))}Q&&(g||(g=A.ranges.slice()),g[B]=Q)}return g?j.create(g,A.mainIndex):A}select(A){let{view:g}=this,B=this.skipAtoms(this.style.get(A,this.extend,this.multiple));(this.mustSelect||!B.eq(g.state.selection)||B.main.assoc!=g.state.selection.main.assoc&&this.dragging===!1)&&this.view.dispatch({selection:B,userEvent:"select.pointer"}),this.mustSelect=!1}update(A){A.docChanged&&this.dragging&&(this.dragging=this.dragging.map(A.changes)),this.style.update(A)&&setTimeout(()=>this.select(this.lastEvent),20)}}function ay(I,A){let g=I.state.facet(nM);return g.length?g[0](A):X.mac?A.metaKey:A.ctrlKey}function by(I,A){let g=I.state.facet(WM);return g.length?g[0](A):X.mac?!A.altKey:!A.ctrlKey}function dy(I,A){let{main:g}=I.state.selection;if(g.empty)return!1;let B=zC(I.root);if(!B||B.rangeCount==0)return!0;let C=B.getRangeAt(0).getClientRects();for(let Q=0;Q<C.length;Q++){let E=C[Q];if(E.left<=A.clientX&&E.right>=A.clientX&&E.top<=A.clientY&&E.bottom>=A.clientY)return!0}return!1}function yG(I,A){if(!A.bubbles)return!0;if(A.defaultPrevented)return!1;for(let g=A.target,B;g!=I.contentDOM;g=g.parentNode)if(!g||g.nodeType==11||(B=SA.get(g))&&B.ignoreEvent(A))return!1;return!0}const kA=Object.create(null),LD=Object.create(null),wG=X.ie&&X.ie_version<15||X.ios&&X.webkit_version<604;function Hy(I){let A=I.dom.parentNode;if(!A)return;let g=A.appendChild(document.createElement("textarea"));g.style.cssText="position: fixed; left: -10000px; top: 10px",g.focus(),setTimeout(()=>{I.focus(),g.remove(),tG(I,g.value)},50)}function tG(I,A){let{state:g}=I,B,C=1,Q=g.toText(A),E=Q.lines==g.selection.ranges.length;if(SD!=null&&g.selection.ranges.every(D=>D.empty)&&SD==Q.toString()){let D=-1;B=g.changeByRange(o=>{let M=g.doc.lineAt(o.from);if(M.from==D)return{range:o};D=M.from;let G=g.toText((E?Q.line(C++).text:A)+g.lineBreak);return{changes:{from:M.from,insert:G},range:j.cursor(o.from+G.length)}})}else E?B=g.changeByRange(D=>{let o=Q.line(C++);return{changes:{from:D.from,to:D.to,insert:o.text},range:j.cursor(D.from+o.length)}}):B=g.replaceSelection(Q);I.dispatch(B,{userEvent:"input.paste",scrollIntoView:!0})}kA.keydown=(I,A)=>{I.inputState.setSelectionOrigin("select"),A.keyCode==27&&(I.inputState.lastEscPress=Date.now())},kA.touchstart=(I,A)=>{I.inputState.lastTouchTime=Date.now(),I.inputState.setSelectionOrigin("select.pointer")},kA.touchmove=I=>{I.inputState.setSelectionOrigin("select.pointer")},LD.touchstart=LD.touchmove={passive:!0},kA.mousedown=(I,A)=>{if(I.observer.flush(),I.inputState.lastTouchTime>Date.now()-2e3)return;let g=null;for(let B of I.state.facet(OM))if(g=B(I,A),g)break;if(!g&&A.button==0&&(g=Ty(I,A)),g){let B=!I.hasFocus;I.inputState.startMouseSelection(new hy(I,A,g,B)),B&&I.observer.ignore(()=>KM(I.contentDOM)),I.inputState.mouseSelection&&I.inputState.mouseSelection.start(A)}};function sG(I,A,g,B){if(B==1)return j.cursor(A,g);if(B==2)return Sy(I.state,A,g);{let C=zA.find(I.docView,A),Q=I.state.doc.lineAt(C?C.posAtEnd:A),E=C?C.posAtStart:Q.from,N=C?C.posAtEnd:Q.to;return N<I.state.doc.length&&N==Q.to&&N++,j.range(E,N)}}let KG=(I,A)=>I>=A.top&&I<=A.bottom,lG=(I,A,g)=>KG(A,g)&&I>=g.left&&I<=g.right;function Ry(I,A,g,B){let C=zA.find(I.docView,A);if(!C)return 1;let Q=A-C.posAtStart;if(Q==0)return 1;if(Q==C.length)return-1;let E=C.coordsAt(Q,-1);if(E&&lG(g,B,E))return-1;let N=C.coordsAt(Q,1);return N&&lG(g,B,N)?1:E&&KG(B,E)?-1:1}function kG(I,A){let g=I.posAtCoords({x:A.clientX,y:A.clientY},!1);return{pos:g,bias:Ry(I,g,A.clientX,A.clientY)}}const Uy=X.ie&&X.ie_version<=11;let ZG=null,hG=0,aG=0;function bG(I){if(!Uy)return I.detail;let A=ZG,g=aG;return ZG=I,aG=Date.now(),hG=!A||g>Date.now()-400&&Math.abs(A.clientX-I.clientX)<2&&Math.abs(A.clientY-I.clientY)<2?(hG+1)%3:1}function Ty(I,A){let g=kG(I,A),B=bG(A),C=I.state.selection;return{update(Q){Q.docChanged&&(g.pos=Q.changes.mapPos(g.pos),C=C.map(Q.changes))},get(Q,E,N){let D=kG(I,Q),o,M=sG(I,D.pos,D.bias,B);if(g.pos!=D.pos&&!E){let G=sG(I,g.pos,g.bias,B),i=Math.min(G.from,M.from),L=Math.max(G.to,M.to);M=i<M.from?j.range(i,L):j.range(L,i)}return E?C.replaceRange(C.main.extend(M.from,M.to)):N&&B==1&&C.ranges.length>1&&(o=ey(C,D.pos))?o:N?C.addRange(M):j.create([M])}}}function ey(I,A){for(let g=0;g<I.ranges.length;g++){let{from:B,to:C}=I.ranges[g];if(B<=A&&C>=A)return j.create(I.ranges.slice(0,g).concat(I.ranges.slice(g+1)),I.mainIndex==g?0:I.mainIndex-(I.mainIndex>g?1:0))}return null}kA.dragstart=(I,A)=>{let{selection:{main:g}}=I.state,{mouseSelection:B}=I.inputState;B&&(B.dragging=g),A.dataTransfer&&(A.dataTransfer.setData("Text",I.state.sliceDoc(g.from,g.to)),A.dataTransfer.effectAllowed="copyMove")};function dG(I,A,g,B){if(!g)return;let C=I.posAtCoords({x:A.clientX,y:A.clientY},!1);A.preventDefault();let{mouseSelection:Q}=I.inputState,E=B&&Q&&Q.dragging&&by(I,A)?{from:Q.dragging.from,to:Q.dragging.to}:null,N={from:C,insert:g},D=I.state.changes(E?[E,N]:N);I.focus(),I.dispatch({changes:D,selection:{anchor:D.mapPos(C,-1),head:D.mapPos(C,1)},userEvent:E?"move.drop":"input.drop"})}kA.drop=(I,A)=>{if(!A.dataTransfer)return;if(I.state.readOnly)return A.preventDefault();let g=A.dataTransfer.files;if(g&&g.length){A.preventDefault();let B=Array(g.length),C=0,Q=()=>{++C==g.length&&dG(I,A,B.filter(E=>E!=null).join(I.state.lineBreak),!1)};for(let E=0;E<g.length;E++){let N=new FileReader;N.onerror=Q,N.onload=()=>{/[\x00-\x08\x0e-\x1f]{2}/.test(N.result)||(B[E]=N.result),Q()},N.readAsText(g[E])}}else dG(I,A,A.dataTransfer.getData("Text"),!0)},kA.paste=(I,A)=>{if(I.state.readOnly)return A.preventDefault();I.observer.flush();let g=wG?null:A.clipboardData;g?(tG(I,g.getData("text/plain")||g.getData("text/uri-text")),A.preventDefault()):Hy(I)};function zy(I,A){let g=I.dom.parentNode;if(!g)return;let B=g.appendChild(document.createElement("textarea"));B.style.cssText="position: fixed; left: -10000px; top: 10px",B.value=A,B.focus(),B.selectionEnd=A.length,B.selectionStart=0,setTimeout(()=>{B.remove(),I.focus()},50)}function Fy(I){let A=[],g=[],B=!1;for(let C of I.selection.ranges)C.empty||(A.push(I.sliceDoc(C.from,C.to)),g.push(C));if(!A.length){let C=-1;for(let{from:Q}of I.selection.ranges){let E=I.doc.lineAt(Q);E.number>C&&(A.push(E.text),g.push({from:E.from,to:Math.min(I.doc.length,E.to+1)})),C=E.number}B=!0}return{text:A.join(I.lineBreak),ranges:g,linewise:B}}let SD=null;kA.copy=kA.cut=(I,A)=>{let{text:g,ranges:B,linewise:C}=Fy(I.state);if(!g&&!C)return;SD=C?g:null;let Q=wG?null:A.clipboardData;Q?(A.preventDefault(),Q.clearData(),Q.setData("text/plain",g)):zy(I,g),A.type=="cut"&&!I.state.readOnly&&I.dispatch({changes:B,scrollIntoView:!0,userEvent:"delete.cut"})};const HG=Wg.define();function RG(I,A){let g=[];for(let B of I.facet(vM)){let C=B(I,A);C&&g.push(C)}return g?I.update({effects:g,annotations:HG.of(!0)}):null}function UG(I){setTimeout(()=>{let A=I.hasFocus;if(A!=I.inputState.notifiedFocused){let g=RG(I.state,A);g?I.dispatch(g):I.update([])}},10)}kA.focus=I=>{I.inputState.lastFocusTime=Date.now(),!I.scrollDOM.scrollTop&&(I.inputState.lastScrollTop||I.inputState.lastScrollLeft)&&(I.scrollDOM.scrollTop=I.inputState.lastScrollTop,I.scrollDOM.scrollLeft=I.inputState.lastScrollLeft),UG(I)},kA.blur=I=>{I.observer.clearSelectionRange(),UG(I)},kA.compositionstart=kA.compositionupdate=I=>{I.inputState.compositionFirstChange==null&&(I.inputState.compositionFirstChange=!0),I.inputState.composing<0&&(I.inputState.composing=0)},kA.compositionend=I=>{I.inputState.composing=-1,I.inputState.compositionEndedAt=Date.now(),I.inputState.compositionPendingKey=!0,I.inputState.compositionPendingChange=I.observer.pendingRecords().length>0,I.inputState.compositionFirstChange=null,X.chrome&&X.android?I.observer.flushSoon():I.inputState.compositionPendingChange?Promise.resolve().then(()=>I.observer.flush()):setTimeout(()=>{I.inputState.composing<0&&I.docView.hasComposition&&I.update([])},50)},kA.contextmenu=I=>{I.inputState.lastContextMenu=Date.now()},kA.beforeinput=(I,A)=>{var g;let B;if(X.chrome&&X.android&&(B=cG.find(C=>C.inputType==A.inputType))&&(I.observer.delayAndroidKey(B.key,B.keyCode),B.key=="Backspace"||B.key=="Delete")){let C=((g=window.visualViewport)===null||g===void 0?void 0:g.height)||0;setTimeout(()=>{var Q;(((Q=window.visualViewport)===null||Q===void 0?void 0:Q.height)||0)>C+10&&I.hasFocus&&(I.contentDOM.blur(),I.focus())},100)}};const TG=new Set;function jy(I){TG.has(I)||(TG.add(I),I.addEventListener("copy",()=>{}),I.addEventListener("cut",()=>{}))}const eG=["pre-wrap","normal","pre-line","break-spaces"];class my{constructor(A){this.lineWrapping=A,this.doc=EA.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30,this.heightChanged=!1}heightForGap(A,g){let B=this.doc.lineAt(g).number-this.doc.lineAt(A).number+1;return this.lineWrapping&&(B+=Math.max(0,Math.ceil((g-A-B*this.lineLength*.5)/this.lineLength))),this.lineHeight*B}heightForLine(A){return this.lineWrapping?(1+Math.max(0,Math.ceil((A-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(A){return this.doc=A,this}mustRefreshForWrapping(A){return eG.indexOf(A)>-1!=this.lineWrapping}mustRefreshForHeights(A){let g=!1;for(let B=0;B<A.length;B++){let C=A[B];C<0?B++:this.heightSamples[Math.floor(C*10)]||(g=!0,this.heightSamples[Math.floor(C*10)]=!0)}return g}refresh(A,g,B,C,Q,E){let N=eG.indexOf(A)>-1,D=Math.round(g)!=Math.round(this.lineHeight)||this.lineWrapping!=N;if(this.lineWrapping=N,this.lineHeight=g,this.charWidth=B,this.textHeight=C,this.lineLength=Q,D){this.heightSamples={};for(let o=0;o<E.length;o++){let M=E[o];M<0?o++:this.heightSamples[Math.floor(M*10)]=!0}}return D}}class py{constructor(A,g){this.from=A,this.heights=g,this.index=0}get more(){return this.index<this.heights.length}}class ag{constructor(A,g,B,C,Q){this.from=A,this.length=g,this.top=B,this.height=C,this._content=Q}get type(){return typeof this._content=="number"?yA.Text:Array.isArray(this._content)?this._content:this._content.type}get to(){return this.from+this.length}get bottom(){return this.top+this.height}get widget(){return this._content instanceof CI?this._content.widget:null}get widgetLineBreaks(){return typeof this._content=="number"?this._content:0}join(A){let g=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(A._content)?A._content:[A]);return new ag(this.from,this.length+A.length,this.top,this.height+A.height,g)}}var cA=function(I){return I[I.ByPos=0]="ByPos",I[I.ByHeight=1]="ByHeight",I[I.ByPosNoHeight=2]="ByPosNoHeight",I}(cA||(cA={}));const VC=.001;class vA{constructor(A,g,B=2){this.length=A,this.height=g,this.flags=B}get outdated(){return(this.flags&2)>0}set outdated(A){this.flags=(A?2:0)|this.flags&-3}setHeight(A,g){this.height!=g&&(Math.abs(this.height-g)>VC&&(A.heightChanged=!0),this.height=g)}replace(A,g,B){return vA.of(B)}decomposeLeft(A,g){g.push(this)}decomposeRight(A,g){g.push(this)}applyChanges(A,g,B,C){let Q=this,E=B.doc;for(let N=C.length-1;N>=0;N--){let{fromA:D,toA:o,fromB:M,toB:G}=C[N],i=Q.lineAt(D,cA.ByPosNoHeight,B.setDoc(g),0,0),L=i.to>=o?i:Q.lineAt(o,cA.ByPosNoHeight,B,0,0);for(G+=L.to-o,o=L.to;N>0&&i.from<=C[N-1].toA;)D=C[N-1].fromA,M=C[N-1].fromB,N--,D<i.from&&(i=Q.lineAt(D,cA.ByPosNoHeight,B,0,0));M+=i.from-D,D=i.from;let Y=cD.build(B.setDoc(E),A,M,G);Q=Q.replace(D,o,Y)}return Q.updateHeight(B,0)}static empty(){return new gg(0,0)}static of(A){if(A.length==1)return A[0];let g=0,B=A.length,C=0,Q=0;for(;;)if(g==B)if(C>Q*2){let N=A[g-1];N.break?A.splice(--g,1,N.left,null,N.right):A.splice(--g,1,N.left,N.right),B+=1+N.break,C-=N.size}else if(Q>C*2){let N=A[B];N.break?A.splice(B,1,N.left,null,N.right):A.splice(B,1,N.left,N.right),B+=2+N.break,Q-=N.size}else break;else if(C<Q){let N=A[g++];N&&(C+=N.size)}else{let N=A[--B];N&&(Q+=N.size)}let E=0;return A[g-1]==null?(E=1,g--):A[g]==null&&(E=1,B++),new xy(vA.of(A.slice(0,g)),E,vA.of(A.slice(B)))}}vA.prototype.size=1;class zG extends vA{constructor(A,g,B){super(A,g),this.deco=B}blockAt(A,g,B,C){return new ag(C,this.length,B,this.height,this.deco||0)}lineAt(A,g,B,C,Q){return this.blockAt(0,B,C,Q)}forEachLine(A,g,B,C,Q,E){A<=Q+this.length&&g>=Q&&E(this.blockAt(0,B,C,Q))}updateHeight(A,g=0,B=!1,C){return C&&C.from<=g&&C.more&&this.setHeight(A,C.heights[C.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class gg extends zG{constructor(A,g){super(A,g,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(A,g,B,C){return new ag(C,this.length,B,this.height,this.breaks)}replace(A,g,B){let C=B[0];return B.length==1&&(C instanceof gg||C instanceof FA&&C.flags&4)&&Math.abs(this.length-C.length)<10?(C instanceof FA?C=new gg(C.length,this.height):C.height=this.height,this.outdated||(C.outdated=!1),C):vA.of(B)}updateHeight(A,g=0,B=!1,C){return C&&C.from<=g&&C.more?this.setHeight(A,C.heights[C.index++]):(B||this.outdated)&&this.setHeight(A,Math.max(this.widgetHeight,A.heightForLine(this.length-this.collapsed))+this.breaks*A.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class FA extends vA{constructor(A){super(A,0)}heightMetrics(A,g){let B=A.doc.lineAt(g).number,C=A.doc.lineAt(g+this.length).number,Q=C-B+1,E,N=0;if(A.lineWrapping){let D=Math.min(this.height,A.lineHeight*Q);E=D/Q,this.length>Q+1&&(N=(this.height-D)/(this.length-Q-1))}else E=this.height/Q;return{firstLine:B,lastLine:C,perLine:E,perChar:N}}blockAt(A,g,B,C){let{firstLine:Q,lastLine:E,perLine:N,perChar:D}=this.heightMetrics(g,C);if(g.lineWrapping){let o=C+Math.round(Math.max(0,Math.min(1,(A-B)/this.height))*this.length),M=g.doc.lineAt(o),G=N+M.length*D,i=Math.max(B,A-G/2);return new ag(M.from,M.length,i,G,0)}else{let o=Math.max(0,Math.min(E-Q,Math.floor((A-B)/N))),{from:M,length:G}=g.doc.line(Q+o);return new ag(M,G,B+N*o,N,0)}}lineAt(A,g,B,C,Q){if(g==cA.ByHeight)return this.blockAt(A,B,C,Q);if(g==cA.ByPosNoHeight){let{from:L,to:Y}=B.doc.lineAt(A);return new ag(L,Y-L,0,0,0)}let{firstLine:E,perLine:N,perChar:D}=this.heightMetrics(B,Q),o=B.doc.lineAt(A),M=N+o.length*D,G=o.number-E,i=C+N*G+D*(o.from-Q-G);return new ag(o.from,o.length,Math.max(C,Math.min(i,C+this.height-M)),M,0)}forEachLine(A,g,B,C,Q,E){A=Math.max(A,Q),g=Math.min(g,Q+this.length);let{firstLine:N,perLine:D,perChar:o}=this.heightMetrics(B,Q);for(let M=A,G=C;M<=g;){let i=B.doc.lineAt(M);if(M==A){let Y=i.number-N;G+=D*Y+o*(A-Q-Y)}let L=D+o*i.length;E(new ag(i.from,i.length,G,L,0)),G+=L,M=i.to+1}}replace(A,g,B){let C=this.length-g;if(C>0){let Q=B[B.length-1];Q instanceof FA?B[B.length-1]=new FA(Q.length+C):B.push(null,new FA(C-1))}if(A>0){let Q=B[0];Q instanceof FA?B[0]=new FA(A+Q.length):B.unshift(new FA(A-1),null)}return vA.of(B)}decomposeLeft(A,g){g.push(new FA(A-1),null)}decomposeRight(A,g){g.push(null,new FA(this.length-A-1))}updateHeight(A,g=0,B=!1,C){let Q=g+this.length;if(C&&C.from<=g+this.length&&C.more){let E=[],N=Math.max(g,C.from),D=-1;for(C.from>g&&E.push(new FA(C.from-g-1).updateHeight(A,g));N<=Q&&C.more;){let M=A.doc.lineAt(N).length;E.length&&E.push(null);let G=C.heights[C.index++];D==-1?D=G:Math.abs(G-D)>=VC&&(D=-2);let i=new gg(M,G);i.outdated=!1,E.push(i),N+=M+1}N<=Q&&E.push(null,new FA(Q-N).updateHeight(A,N));let o=vA.of(E);return(D<0||Math.abs(o.height-this.height)>=VC||Math.abs(D-this.heightMetrics(A,g).perLine)>=VC)&&(A.heightChanged=!0),o}else(B||this.outdated)&&(this.setHeight(A,A.heightForGap(g,g+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class xy extends vA{constructor(A,g,B){super(A.length+g+B.length,A.height+B.height,g|(A.outdated||B.outdated?2:0)),this.left=A,this.right=B,this.size=A.size+B.size}get break(){return this.flags&1}blockAt(A,g,B,C){let Q=B+this.left.height;return A<Q?this.left.blockAt(A,g,B,C):this.right.blockAt(A,g,Q,C+this.left.length+this.break)}lineAt(A,g,B,C,Q){let E=C+this.left.height,N=Q+this.left.length+this.break,D=g==cA.ByHeight?A<E:A<N,o=D?this.left.lineAt(A,g,B,C,Q):this.right.lineAt(A,g,B,E,N);if(this.break||(D?o.to<N:o.from>N))return o;let M=g==cA.ByPosNoHeight?cA.ByPosNoHeight:cA.ByPos;return D?o.join(this.right.lineAt(N,M,B,E,N)):this.left.lineAt(N,M,B,C,Q).join(o)}forEachLine(A,g,B,C,Q,E){let N=C+this.left.height,D=Q+this.left.length+this.break;if(this.break)A<D&&this.left.forEachLine(A,g,B,C,Q,E),g>=D&&this.right.forEachLine(A,g,B,N,D,E);else{let o=this.lineAt(D,cA.ByPos,B,C,Q);A<o.from&&this.left.forEachLine(A,o.from-1,B,C,Q,E),o.to>=A&&o.from<=g&&E(o),g>o.to&&this.right.forEachLine(o.to+1,g,B,N,D,E)}}replace(A,g,B){let C=this.left.length+this.break;if(g<C)return this.balanced(this.left.replace(A,g,B),this.right);if(A>this.left.length)return this.balanced(this.left,this.right.replace(A-C,g-C,B));let Q=[];A>0&&this.decomposeLeft(A,Q);let E=Q.length;for(let N of B)Q.push(N);if(A>0&&FG(Q,E-1),g<this.length){let N=Q.length;this.decomposeRight(g,Q),FG(Q,N)}return vA.of(Q)}decomposeLeft(A,g){let B=this.left.length;if(A<=B)return this.left.decomposeLeft(A,g);g.push(this.left),this.break&&(B++,A>=B&&g.push(null)),A>B&&this.right.decomposeLeft(A-B,g)}decomposeRight(A,g){let B=this.left.length,C=B+this.break;if(A>=C)return this.right.decomposeRight(A-C,g);A<B&&this.left.decomposeRight(A,g),this.break&&A<C&&g.push(null),g.push(this.right)}balanced(A,g){return A.size>2*g.size||g.size>2*A.size?vA.of(this.break?[A,null,g]:[A,g]):(this.left=A,this.right=g,this.height=A.height+g.height,this.outdated=A.outdated||g.outdated,this.size=A.size+g.size,this.length=A.length+this.break+g.length,this)}updateHeight(A,g=0,B=!1,C){let{left:Q,right:E}=this,N=g+Q.length+this.break,D=null;return C&&C.from<=g+Q.length&&C.more?D=Q=Q.updateHeight(A,g,B,C):Q.updateHeight(A,g,B),C&&C.from<=N+E.length&&C.more?D=E=E.updateHeight(A,N,B,C):E.updateHeight(A,N,B),D?this.balanced(Q,E):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function FG(I,A){let g,B;I[A]==null&&(g=I[A-1])instanceof FA&&(B=I[A+1])instanceof FA&&I.splice(A-1,3,new FA(g.length+1+B.length))}const ny=5;class cD{constructor(A,g){this.pos=A,this.oracle=g,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=A}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(A,g){if(this.lineStart>-1){let B=Math.min(g,this.lineEnd),C=this.nodes[this.nodes.length-1];C instanceof gg?C.length+=B-this.pos:(B>this.pos||!this.isCovered)&&this.nodes.push(new gg(B-this.pos,-1)),this.writtenTo=B,g>B&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=g}point(A,g,B){if(A<g||B.heightRelevant){let C=B.widget?B.widget.estimatedHeight:0,Q=B.widget?B.widget.lineBreaks:0;C<0&&(C=this.oracle.lineHeight);let E=g-A;B.block?this.addBlock(new zG(E,C,B)):(E||Q||C>=ny)&&this.addLineDeco(C,Q,E)}else g>A&&this.span(A,g);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:A,to:g}=this.oracle.doc.lineAt(this.pos);this.lineStart=A,this.lineEnd=g,this.writtenTo<A&&((this.writtenTo<A-1||this.nodes[this.nodes.length-1]==null)&&this.nodes.push(this.blankContent(this.writtenTo,A-1)),this.nodes.push(null)),this.pos>A&&this.nodes.push(new gg(this.pos-A,-1)),this.writtenTo=this.pos}blankContent(A,g){let B=new FA(g-A);return this.oracle.doc.lineAt(A).to==g&&(B.flags|=4),B}ensureLine(){this.enterLine();let A=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(A instanceof gg)return A;let g=new gg(0,-1);return this.nodes.push(g),g}addBlock(A){var g;this.enterLine();let B=(g=A.deco)===null||g===void 0?void 0:g.type;B==yA.WidgetAfter&&!this.isCovered&&this.ensureLine(),this.nodes.push(A),this.writtenTo=this.pos=this.pos+A.length,B!=yA.WidgetBefore&&(this.covering=A)}addLineDeco(A,g,B){let C=this.ensureLine();C.length+=B,C.collapsed+=B,C.widgetHeight=Math.max(C.widgetHeight,A),C.breaks+=g,this.writtenTo=this.pos=this.pos+B}finish(A){let g=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(g instanceof gg)&&!this.isCovered?this.nodes.push(new gg(0,-1)):(this.writtenTo<this.pos||g==null)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos));let B=A;for(let C of this.nodes)C instanceof gg&&C.updateHeight(this.oracle,B),B+=C?C.length:1;return this.nodes}static build(A,g,B,C){let Q=new cD(B,A);return NA.spans(g,B,C,Q,0),Q.finish(B)}}function Wy(I,A,g){let B=new Oy;return NA.compare(I,A,g,B,0),B.changes}class Oy{constructor(){this.changes=[]}compareRange(){}comparePoint(A,g,B,C){(A<g||B&&B.heightRelevant||C&&C.heightRelevant)&&gD(A,g,this.changes,5)}}function Jy(I,A){let g=I.getBoundingClientRect(),B=I.ownerDocument,C=B.defaultView||window,Q=Math.max(0,g.left),E=Math.min(C.innerWidth,g.right),N=Math.max(0,g.top),D=Math.min(C.innerHeight,g.bottom);for(let o=I.parentNode;o&&o!=B.body;)if(o.nodeType==1){let M=o,G=window.getComputedStyle(M);if((M.scrollHeight>M.clientHeight||M.scrollWidth>M.clientWidth)&&G.overflow!="visible"){let i=M.getBoundingClientRect();Q=Math.max(Q,i.left),E=Math.min(E,i.right),N=Math.max(N,i.top),D=o==I.parentNode?i.bottom:Math.min(D,i.bottom)}o=G.position=="absolute"||G.position=="fixed"?M.offsetParent:M.parentNode}else if(o.nodeType==11)o=o.host;else break;return{left:Q-g.left,right:Math.max(Q,E)-g.left,top:N-(g.top+A),bottom:Math.max(N,D)-(g.top+A)}}function uy(I,A){let g=I.getBoundingClientRect();return{left:0,right:g.right-g.left,top:A,bottom:g.bottom-(g.top+A)}}class YD{constructor(A,g,B){this.from=A,this.to=g,this.size=B}static same(A,g){if(A.length!=g.length)return!1;for(let B=0;B<A.length;B++){let C=A[B],Q=g[B];if(C.from!=Q.from||C.to!=Q.to||C.size!=Q.size)return!1}return!0}draw(A,g){return AA.replace({widget:new vy(this.size*(g?A.scaleY:A.scaleX),g)}).range(this.from,this.to)}}class vy extends XI{constructor(A,g){super(),this.size=A,this.vertical=g}eq(A){return A.size==this.size&&A.vertical==this.vertical}toDOM(){let A=document.createElement("div");return this.vertical?A.style.height=this.size+"px":(A.style.width=this.size+"px",A.style.height="2px",A.style.display="inline-block"),A}get estimatedHeight(){return this.vertical?this.size:-1}}class jG{constructor(A){this.state=A,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentDOMWidth=0,this.contentDOMHeight=0,this.editorHeight=0,this.editorWidth=0,this.scrollTop=0,this.scrolledToBottom=!0,this.scaleX=1,this.scaleY=1,this.scrollAnchorPos=0,this.scrollAnchorHeight=-1,this.scaler=mG,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=wA.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let g=A.facet(CD).some(B=>typeof B!="function"&&B.class=="cm-lineWrapping");this.heightOracle=new my(g),this.stateDeco=A.facet(FB).filter(B=>typeof B!="function"),this.heightMap=vA.empty().applyChanges(this.stateDeco,EA.empty,this.heightOracle.setDoc(A.doc),[new og(0,0,0,A.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=AA.set(this.lineGaps.map(B=>B.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let A=[this.viewport],{main:g}=this.state.selection;for(let B=0;B<=1;B++){let C=B?g.head:g.anchor;if(!A.some(({from:Q,to:E})=>C>=Q&&C<=E)){let{from:Q,to:E}=this.lineBlockAt(C);A.push(new XC(Q,E))}}this.viewports=A.sort((B,C)=>B.from-C.from),this.scaler=this.heightMap.height<=7e6?mG:new ry(this.heightOracle,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,A=>{this.viewportLines.push(this.scaler.scale==1?A:pB(A,this.scaler))})}update(A,g=null){this.state=A.state;let B=this.stateDeco;this.stateDeco=this.state.facet(FB).filter(M=>typeof M!="function");let C=A.changedRanges,Q=og.extendWithRanges(C,Wy(B,this.stateDeco,A?A.changes:bA.empty(this.state.doc.length))),E=this.heightMap.height,N=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);this.heightMap=this.heightMap.applyChanges(this.stateDeco,A.startState.doc,this.heightOracle.setDoc(this.state.doc),Q),this.heightMap.height!=E&&(A.flags|=2),N?(this.scrollAnchorPos=A.changes.mapPos(N.from,-1),this.scrollAnchorHeight=N.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=this.heightMap.height);let D=Q.length?this.mapViewport(this.viewport,A.changes):this.viewport;(g&&(g.range.head<D.from||g.range.head>D.to)||!this.viewportIsAppropriate(D))&&(D=this.getViewport(0,g));let o=!A.changes.empty||A.flags&2||D.from!=this.viewport.from||D.to!=this.viewport.to;this.viewport=D,this.updateForViewport(),o&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,A.changes))),A.flags|=this.computeVisibleRanges(),g&&(this.scrollTarget=g),!this.mustEnforceCursorAssoc&&A.selectionSet&&A.view.lineWrapping&&A.state.selection.main.empty&&A.state.selection.main.assoc&&!A.state.facet(XM)&&(this.mustEnforceCursorAssoc=!0)}measure(A){let g=A.contentDOM,B=window.getComputedStyle(g),C=this.heightOracle,Q=B.whiteSpace;this.defaultTextDirection=B.direction=="rtl"?wA.RTL:wA.LTR;let E=this.heightOracle.mustRefreshForWrapping(Q),N=g.getBoundingClientRect(),D=E||this.mustMeasureContent||this.contentDOMHeight!=N.height;this.contentDOMHeight=N.height,this.mustMeasureContent=!1;let o=0,M=0;if(N.width&&N.height){let y=N.width/g.offsetWidth,S=N.height/g.offsetHeight;y>.995&&y<1.005&&(y=1),S>.995&&S<1.005&&(S=1),(this.scaleX!=y||this.scaleY!=S)&&(this.scaleX=y,this.scaleY=S,o|=8,E=D=!0)}let G=(parseInt(B.paddingTop)||0)*this.scaleY,i=(parseInt(B.paddingBottom)||0)*this.scaleY;(this.paddingTop!=G||this.paddingBottom!=i)&&(this.paddingTop=G,this.paddingBottom=i,o|=10),this.editorWidth!=A.scrollDOM.clientWidth&&(C.lineWrapping&&(D=!0),this.editorWidth=A.scrollDOM.clientWidth,o|=8);let L=A.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=L&&(this.scrollAnchorHeight=-1,this.scrollTop=L),this.scrolledToBottom=ZM(A.scrollDOM);let Y=(this.printing?uy:Jy)(g,this.paddingTop),w=Y.top-this.pixelViewport.top,t=Y.bottom-this.pixelViewport.bottom;this.pixelViewport=Y;let Z=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(Z!=this.inView&&(this.inView=Z,Z&&(D=!0)),!this.inView&&!this.scrollTarget)return 0;let h=N.width;if((this.contentDOMWidth!=h||this.editorHeight!=A.scrollDOM.clientHeight)&&(this.contentDOMWidth=N.width,this.editorHeight=A.scrollDOM.clientHeight,o|=8),D){let y=A.docView.measureVisibleLineHeights(this.viewport);if(C.mustRefreshForHeights(y)&&(E=!0),E||C.lineWrapping&&Math.abs(h-this.contentDOMWidth)>C.charWidth){let{lineHeight:S,charWidth:c,textHeight:l}=A.docView.measureTextSize();E=S>0&&C.refresh(Q,S,c,l,h/c,y),E&&(A.docView.minWidth=0,o|=8)}w>0&&t>0?M=Math.max(w,t):w<0&&t<0&&(M=Math.min(w,t)),C.heightChanged=!1;for(let S of this.viewports){let c=S.from==this.viewport.from?y:A.docView.measureVisibleLineHeights(S);this.heightMap=(E?vA.empty().applyChanges(this.stateDeco,EA.empty,this.heightOracle,[new og(0,0,0,A.state.doc.length)]):this.heightMap).updateHeight(C,0,E,new py(S.from,c))}C.heightChanged&&(o|=2)}let K=!this.viewportIsAppropriate(this.viewport,M)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return K&&(this.viewport=this.getViewport(M,this.scrollTarget)),this.updateForViewport(),(o&2||K)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(E?[]:this.lineGaps,A)),o|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,A.docView.enforceCursorAssoc()),o}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(A,g){let B=.5-Math.max(-.5,Math.min(.5,A/1e3/2)),C=this.heightMap,Q=this.heightOracle,{visibleTop:E,visibleBottom:N}=this,D=new XC(C.lineAt(E-B*1e3,cA.ByHeight,Q,0,0).from,C.lineAt(N+(1-B)*1e3,cA.ByHeight,Q,0,0).to);if(g){let{head:o}=g.range;if(o<D.from||o>D.to){let M=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),G=C.lineAt(o,cA.ByPos,Q,0,0),i;g.y=="center"?i=(G.top+G.bottom)/2-M/2:g.y=="start"||g.y=="nearest"&&o<D.from?i=G.top:i=G.bottom-M,D=new XC(C.lineAt(i-1e3/2,cA.ByHeight,Q,0,0).from,C.lineAt(i+M+1e3/2,cA.ByHeight,Q,0,0).to)}}return D}mapViewport(A,g){let B=g.mapPos(A.from,-1),C=g.mapPos(A.to,1);return new XC(this.heightMap.lineAt(B,cA.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(C,cA.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:A,to:g},B=0){if(!this.inView)return!0;let{top:C}=this.heightMap.lineAt(A,cA.ByPos,this.heightOracle,0,0),{bottom:Q}=this.heightMap.lineAt(g,cA.ByPos,this.heightOracle,0,0),{visibleTop:E,visibleBottom:N}=this;return(A==0||C<=E-Math.max(10,Math.min(-B,250)))&&(g==this.state.doc.length||Q>=N+Math.max(10,Math.min(B,250)))&&C>E-2*1e3&&Q<N+2*1e3}mapLineGaps(A,g){if(!A.length||g.empty)return A;let B=[];for(let C of A)g.touchesRange(C.from,C.to)||B.push(new YD(g.mapPos(C.from),g.mapPos(C.to),C.size));return B}ensureLineGaps(A,g){let B=this.heightOracle.lineWrapping,C=B?1e4:2e3,Q=C>>1,E=C<<1;if(this.defaultTextDirection!=wA.LTR&&!B)return[];let N=[],D=(o,M,G,i)=>{if(M-o<Q)return;let L=this.state.selection.main,Y=[L.from];L.empty||Y.push(L.to);for(let t of Y)if(t>o&&t<M){D(o,t-10,G,i),D(t+10,M,G,i);return}let w=Xy(A,t=>t.from>=G.from&&t.to<=G.to&&Math.abs(t.from-o)<Q&&Math.abs(t.to-M)<Q&&!Y.some(Z=>t.from<Z&&t.to>Z));if(!w){if(M<G.to&&g&&B&&g.visibleRanges.some(t=>t.from<=M&&t.to>=M)){let t=g.moveToLineBoundary(j.cursor(M),!1,!0).head;t>o&&(M=t)}w=new YD(o,M,this.gapSize(G,o,M,i))}N.push(w)};for(let o of this.viewportLines){if(o.length<E)continue;let M=Vy(o.from,o.to,this.stateDeco);if(M.total<E)continue;let G=this.scrollTarget?this.scrollTarget.range.head:null,i,L;if(B){let Y=C/this.heightOracle.lineLength*this.heightOracle.lineHeight,w,t;if(G!=null){let Z=fC(M,G),h=((this.visibleBottom-this.visibleTop)/2+Y)/o.height;w=Z-h,t=Z+h}else w=(this.visibleTop-o.top-Y)/o.height,t=(this.visibleBottom-o.top+Y)/o.height;i=rC(M,w),L=rC(M,t)}else{let Y=M.total*this.heightOracle.charWidth,w=C*this.heightOracle.charWidth,t,Z;if(G!=null){let h=fC(M,G),K=((this.pixelViewport.right-this.pixelViewport.left)/2+w)/Y;t=h-K,Z=h+K}else t=(this.pixelViewport.left-w)/Y,Z=(this.pixelViewport.right+w)/Y;i=rC(M,t),L=rC(M,Z)}i>o.from&&D(o.from,i,o,M),L<o.to&&D(L,o.to,o,M)}return N}gapSize(A,g,B,C){let Q=fC(C,B)-fC(C,g);return this.heightOracle.lineWrapping?A.height*Q:C.total*this.heightOracle.charWidth*Q}updateLineGaps(A){YD.same(A,this.lineGaps)||(this.lineGaps=A,this.lineGapDeco=AA.set(A.map(g=>g.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(){let A=this.stateDeco;this.lineGaps.length&&(A=A.concat(this.lineGapDeco));let g=[];NA.spans(A,this.viewport.from,this.viewport.to,{span(C,Q){g.push({from:C,to:Q})},point(){}},20);let B=g.length!=this.visibleRanges.length||this.visibleRanges.some((C,Q)=>C.from!=g[Q].from||C.to!=g[Q].to);return this.visibleRanges=g,B?4:0}lineBlockAt(A){return A>=this.viewport.from&&A<=this.viewport.to&&this.viewportLines.find(g=>g.from<=A&&g.to>=A)||pB(this.heightMap.lineAt(A,cA.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(A){return pB(this.heightMap.lineAt(this.scaler.fromDOM(A),cA.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(A){let g=this.lineBlockAtHeight(A+8);return g.from>=this.viewport.from||this.viewportLines[0].top-A>200?g:this.viewportLines[0]}elementAtHeight(A){return pB(this.heightMap.blockAt(this.scaler.fromDOM(A),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class XC{constructor(A,g){this.from=A,this.to=g}}function Vy(I,A,g){let B=[],C=I,Q=0;return NA.spans(g,I,A,{span(){},point(E,N){E>C&&(B.push({from:C,to:E}),Q+=E-C),C=N}},20),C<A&&(B.push({from:C,to:A}),Q+=A-C),{total:Q,ranges:B}}function rC({total:I,ranges:A},g){if(g<=0)return A[0].from;if(g>=1)return A[A.length-1].to;let B=Math.floor(I*g);for(let C=0;;C++){let{from:Q,to:E}=A[C],N=E-Q;if(B<=N)return Q+B;B-=N}}function fC(I,A){let g=0;for(let{from:B,to:C}of I.ranges){if(A<=C){g+=A-B;break}g+=C-B}return g/I.total}function Xy(I,A){for(let g of I)if(A(g))return g}const mG={toDOM(I){return I},fromDOM(I){return I},scale:1};class ry{constructor(A,g,B){let C=0,Q=0,E=0;this.viewports=B.map(({from:N,to:D})=>{let o=g.lineAt(N,cA.ByPos,A,0,0).top,M=g.lineAt(D,cA.ByPos,A,0,0).bottom;return C+=M-o,{from:N,to:D,top:o,bottom:M,domTop:0,domBottom:0}}),this.scale=(7e6-C)/(g.height-C);for(let N of this.viewports)N.domTop=E+(N.top-Q)*this.scale,E=N.domBottom=N.domTop+(N.bottom-N.top),Q=N.bottom}toDOM(A){for(let g=0,B=0,C=0;;g++){let Q=g<this.viewports.length?this.viewports[g]:null;if(!Q||A<Q.top)return C+(A-B)*this.scale;if(A<=Q.bottom)return Q.domTop+(A-Q.top);B=Q.bottom,C=Q.domBottom}}fromDOM(A){for(let g=0,B=0,C=0;;g++){let Q=g<this.viewports.length?this.viewports[g]:null;if(!Q||A<Q.domTop)return B+(A-C)/this.scale;if(A<=Q.domBottom)return Q.top+(A-Q.domTop);B=Q.bottom,C=Q.domBottom}}}function pB(I,A){if(A.scale==1)return I;let g=A.toDOM(I.top),B=A.toDOM(I.bottom);return new ag(I.from,I.length,g,B-g,Array.isArray(I._content)?I._content.map(C=>pB(C,A)):I._content)}const PC=r.define({combine:I=>I.join(" ")}),yD=r.define({combine:I=>I.indexOf(!0)>-1}),wD=AI.newName(),pG=AI.newName(),xG=AI.newName(),nG={"&light":"."+pG,"&dark":"."+xG};function tD(I,A,g){return new AI(A,{finish(B){return/&/.test(B)?B.replace(/&\w*/,C=>{if(C=="&")return I;if(!g||!g[C])throw new RangeError(`Unsupported selector: ${C}`);return g[C]}):I+" "+B}})}const fy=tD("."+wD,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",insetInlineStart:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-highlightSpace:before":{content:"attr(data-display)",position:"absolute",pointerEvents:"none",color:"#888"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},nG),xB="";class Py{constructor(A,g){this.points=A,this.text="",this.lineSeparator=g.facet(CA.lineSeparator)}append(A){this.text+=A}lineBreak(){this.text+=xB}readRange(A,g){if(!A)return this;let B=A.parentNode;for(let C=A;;){this.findPointBefore(B,C);let Q=this.text.length;this.readNode(C);let E=C.nextSibling;if(E==g)break;let N=SA.get(C),D=SA.get(E);(N&&D?N.breakAfter:(N?N.breakAfter:WG(C))||WG(E)&&(C.nodeName!="BR"||C.cmIgnore)&&this.text.length>Q)&&this.lineBreak(),C=E}return this.findPointBefore(B,g),this}readTextNode(A){let g=A.nodeValue;for(let B of this.points)B.node==A&&(B.pos=this.text.length+Math.min(B.offset,g.length));for(let B=0,C=this.lineSeparator?null:/\r\n?|\n/g;;){let Q=-1,E=1,N;if(this.lineSeparator?(Q=g.indexOf(this.lineSeparator,B),E=this.lineSeparator.length):(N=C.exec(g))&&(Q=N.index,E=N[0].length),this.append(g.slice(B,Q<0?g.length:Q)),Q<0)break;if(this.lineBreak(),E>1)for(let D of this.points)D.node==A&&D.pos>this.text.length&&(D.pos-=E-1);B=Q+E}}readNode(A){if(A.cmIgnore)return;let g=SA.get(A),B=g&&g.overrideDOMText;if(B!=null){this.findPointInside(A,B.length);for(let C=B.iter();!C.next().done;)C.lineBreak?this.lineBreak():this.append(C.value)}else A.nodeType==3?this.readTextNode(A):A.nodeName=="BR"?A.nextSibling&&this.lineBreak():A.nodeType==1&&this.readRange(A.firstChild,null)}findPointBefore(A,g){for(let B of this.points)B.node==A&&A.childNodes[B.offset]==g&&(B.pos=this.text.length)}findPointInside(A,g){for(let B of this.points)(A.nodeType==3?B.node==A:A.contains(B.node))&&(B.pos=this.text.length+Math.min(g,B.offset))}}function WG(I){return I.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(I.nodeName)}class OG{constructor(A,g){this.node=A,this.offset=g,this.pos=-1}}class qy{constructor(A,g,B,C){this.typeOver=C,this.bounds=null,this.text="";let{impreciseHead:Q,impreciseAnchor:E}=A.docView;if(A.state.readOnly&&g>-1)this.newSel=null;else if(g>-1&&(this.bounds=A.docView.domBoundsAround(g,B,0))){let N=Q||E?[]:Aw(A),D=new Py(N,A.state);D.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=D.text,this.newSel=gw(N,this.bounds.from)}else{let N=A.observer.selectionRange,D=Q&&Q.node==N.focusNode&&Q.offset==N.focusOffset||!vE(A.contentDOM,N.focusNode)?A.state.selection.main.head:A.docView.posFromDOM(N.focusNode,N.focusOffset),o=E&&E.node==N.anchorNode&&E.offset==N.anchorOffset||!vE(A.contentDOM,N.anchorNode)?A.state.selection.main.anchor:A.docView.posFromDOM(N.anchorNode,N.anchorOffset);this.newSel=j.single(o,D)}}}function JG(I,A){let g,{newSel:B}=A,C=I.state.selection.main,Q=I.inputState.lastKeyTime>Date.now()-100?I.inputState.lastKeyCode:-1;if(A.bounds){let{from:E,to:N}=A.bounds,D=C.from,o=null;(Q===8||X.android&&A.text.length<N-E)&&(D=C.to,o="end");let M=$y(I.state.doc.sliceString(E,N,xB),A.text,D-E,o);M&&(X.chrome&&Q==13&&M.toB==M.from+2&&A.text.slice(M.from,M.toB)==xB+xB&&M.toB--,g={from:E+M.from,to:E+M.toA,insert:EA.of(A.text.slice(M.from,M.toB).split(xB))})}else B&&(!I.hasFocus&&I.state.facet(WC)||B.main.eq(C))&&(B=null);if(!g&&!B)return!1;if(!g&&A.typeOver&&!C.empty&&B&&B.main.empty?g={from:C.from,to:C.to,insert:I.state.doc.slice(C.from,C.to)}:g&&g.from>=C.from&&g.to<=C.to&&(g.from!=C.from||g.to!=C.to)&&C.to-C.from-(g.to-g.from)<=4?g={from:C.from,to:C.to,insert:I.state.doc.slice(C.from,g.from).append(g.insert).append(I.state.doc.slice(g.to,C.to))}:(X.mac||X.android)&&g&&g.from==g.to&&g.from==C.head-1&&/^\. ?$/.test(g.insert.toString())&&I.contentDOM.getAttribute("autocorrect")=="off"?(B&&g.insert.length==2&&(B=j.single(B.main.anchor-1,B.main.head-1)),g={from:C.from,to:C.to,insert:EA.of([" "])}):X.chrome&&g&&g.from==g.to&&g.from==C.head&&g.insert.toString()==`
|
1624
|
+
`&&I.lineWrapping&&(B&&(B=j.single(B.main.anchor-1,B.main.head-1)),g={from:C.from,to:C.to,insert:EA.of([" "])}),g){if(X.ios&&I.inputState.flushIOSKey(I)||X.android&&(g.from==C.from&&g.to==C.to&&g.insert.length==1&&g.insert.lines==2&&vI(I.contentDOM,"Enter",13)||(g.from==C.from-1&&g.to==C.to&&g.insert.length==0||Q==8&&g.insert.length<g.to-g.from&&g.to>C.head)&&vI(I.contentDOM,"Backspace",8)||g.from==C.from&&g.to==C.to+1&&g.insert.length==0&&vI(I.contentDOM,"Delete",46)))return!0;let E=g.insert.toString();I.inputState.composing>=0&&I.inputState.composing++;let N,D=()=>N||(N=_y(I,g,B));return I.state.facet(uM).some(o=>o(I,g.from,g.to,E,D))||I.dispatch(D()),!0}else if(B&&!B.main.eq(C)){let E=!1,N="select";return I.inputState.lastSelectionTime>Date.now()-50&&(I.inputState.lastSelectionOrigin=="select"&&(E=!0),N=I.inputState.lastSelectionOrigin),I.dispatch({selection:B,scrollIntoView:E,userEvent:N}),!0}else return!1}function _y(I,A,g){let B,C=I.state,Q=C.selection.main;if(A.from>=Q.from&&A.to<=Q.to&&A.to-A.from>=(Q.to-Q.from)/3&&(!g||g.main.empty&&g.main.from==A.from+A.insert.length)&&I.inputState.composing<0){let N=Q.from<A.from?C.sliceDoc(Q.from,A.from):"",D=Q.to>A.to?C.sliceDoc(A.to,Q.to):"";B=C.replaceSelection(I.state.toText(N+A.insert.sliceString(0,void 0,I.state.lineBreak)+D))}else{let N=C.changes(A),D=g&&g.main.to<=N.newLength?g.main:void 0;if(C.selection.ranges.length>1&&I.inputState.composing>=0&&A.to<=Q.to&&A.to>=Q.to-10){let o=I.state.sliceDoc(A.from,A.to),M,G=g&&DG(I,g.main.head);if(G){let Y=A.insert.length-(A.to-A.from);M={from:G.from,to:G.to-Y}}else M=I.state.doc.lineAt(Q.head);let i=Q.to-A.to,L=Q.to-Q.from;B=C.changeByRange(Y=>{if(Y.from==Q.from&&Y.to==Q.to)return{changes:N,range:D||Y.map(N)};let w=Y.to-i,t=w-o.length;if(Y.to-Y.from!=L||I.state.sliceDoc(t,w)!=o||Y.to>=M.from&&Y.from<=M.to)return{range:Y};let Z=C.changes({from:t,to:w,insert:A.insert}),h=Y.to-Q.to;return{changes:Z,range:D?j.range(Math.max(0,D.anchor+h),Math.max(0,D.head+h)):Y.map(Z)}})}else B={changes:N,selection:D&&C.selection.replaceRange(D)}}let E="input.type";return(I.composing||I.inputState.compositionPendingChange&&I.inputState.compositionEndedAt>Date.now()-50)&&(I.inputState.compositionPendingChange=!1,E+=".compose",I.inputState.compositionFirstChange&&(E+=".start",I.inputState.compositionFirstChange=!1)),C.update(B,{userEvent:E,scrollIntoView:!0})}function $y(I,A,g,B){let C=Math.min(I.length,A.length),Q=0;for(;Q<C&&I.charCodeAt(Q)==A.charCodeAt(Q);)Q++;if(Q==C&&I.length==A.length)return null;let E=I.length,N=A.length;for(;E>0&&N>0&&I.charCodeAt(E-1)==A.charCodeAt(N-1);)E--,N--;if(B=="end"){let D=Math.max(0,Q-Math.min(E,N));g-=E+D-Q}if(E<Q&&I.length<A.length){let D=g<=Q&&g>=E?Q-g:0;Q-=D,N=Q+(N-E),E=Q}else if(N<Q){let D=g<=Q&&g>=N?Q-g:0;Q-=D,E=Q+(E-N),N=Q}return{from:Q,toA:E,toB:N}}function Aw(I){let A=[];if(I.root.activeElement!=I.contentDOM)return A;let{anchorNode:g,anchorOffset:B,focusNode:C,focusOffset:Q}=I.observer.selectionRange;return g&&(A.push(new OG(g,B)),(C!=g||Q!=B)&&A.push(new OG(C,Q))),A}function gw(I,A){if(I.length==0)return null;let g=I[0].pos,B=I.length==2?I[1].pos:g;return g>-1&&B>-1?j.single(g+A,B+A):null}const Iw={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},sD=X.ie&&X.ie_version<=11;class Bw{constructor(A){this.view=A,this.active=!1,this.selectionRange=new JY,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.resizeContent=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=A.contentDOM,this.observer=new MutationObserver(g=>{for(let B of g)this.queue.push(B);(X.ie&&X.ie_version<=11||X.ios&&A.composing)&&g.some(B=>B.type=="childList"&&B.removedNodes.length||B.type=="characterData"&&B.oldValue.length>B.target.nodeValue.length)?this.flushSoon():this.flush()}),sD&&(this.onCharData=g=>{this.queue.push({target:g.target,type:"characterData",oldValue:g.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var g;((g=this.view.docView)===null||g===void 0?void 0:g.lastUpdate)<Date.now()-75&&this.onResize()}),this.resizeScroll.observe(A.scrollDOM),this.resizeContent=new ResizeObserver(()=>this.view.requestMeasure()),this.resizeContent.observe(A.contentDOM)),this.addWindowListeners(this.win=A.win),this.start(),typeof IntersectionObserver=="function"&&(this.intersection=new IntersectionObserver(g=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),g.length>0&&g[g.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(g=>{g.length>0&&g[g.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(A){this.view.inputState.runScrollHandlers(this.view,A),this.intersecting&&this.view.measure()}onScroll(A){this.intersecting&&this.flush(!1),this.onScrollChanged(A)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(){this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500)}updateGaps(A){if(this.gapIntersection&&(A.length!=this.gaps.length||this.gaps.some((g,B)=>g!=A[B]))){this.gapIntersection.disconnect();for(let g of A)this.gapIntersection.observe(g);this.gaps=A}}onSelectionChange(A){let g=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:B}=this,C=this.selectionRange;if(B.state.facet(WC)?B.root.activeElement!=this.dom:!FC(B.dom,C))return;let Q=C.anchorNode&&B.docView.nearest(C.anchorNode);if(Q&&Q.ignoreEvent(A)){g||(this.selectionChanged=!1);return}(X.ie&&X.ie_version<=11||X.android&&X.chrome)&&!B.state.selection.main.empty&&C.focusNode&&jC(C.focusNode,C.focusOffset,C.anchorNode,C.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:A}=this,g=X.safari&&A.root.nodeType==11&&xY(this.dom.ownerDocument)==this.dom&&Cw(this.view)||zC(A.root);if(!g||this.selectionRange.eq(g))return!1;let B=FC(this.dom,g);return B&&!this.selectionChanged&&A.inputState.lastFocusTime>Date.now()-200&&A.inputState.lastTouchTime<Date.now()-300&&vY(this.dom,g)?(this.view.inputState.lastFocusTime=0,A.docView.updateSelection(),!1):(this.selectionRange.setRange(g),B&&(this.selectionChanged=!0),!0)}setSelectionRange(A,g){this.selectionRange.set(A.node,A.offset,g.node,g.offset),this.selectionChanged=!1}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let A=0,g=null;for(let B=this.dom;B;)if(B.nodeType==1)!g&&A<this.scrollTargets.length&&this.scrollTargets[A]==B?A++:g||(g=this.scrollTargets.slice(0,A)),g&&g.push(B),B=B.assignedSlot||B.parentNode;else if(B.nodeType==11)B=B.host;else break;if(A<this.scrollTargets.length&&!g&&(g=this.scrollTargets.slice(0,A)),g){for(let B of this.scrollTargets)B.removeEventListener("scroll",this.onScroll);for(let B of this.scrollTargets=g)B.addEventListener("scroll",this.onScroll)}}ignore(A){if(!this.active)return A();try{return this.stop(),A()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,Iw),sD&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),sD&&this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData))}clear(){this.processRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(A,g){var B;if(!this.delayedAndroidKey){let C=()=>{let Q=this.delayedAndroidKey;Q&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=Q.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&Q.force&&vI(this.dom,Q.key,Q.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(C)}(!this.delayedAndroidKey||A=="Enter")&&(this.delayedAndroidKey={key:A,keyCode:g,force:this.lastChange<Date.now()-50||!!(!((B=this.delayedAndroidKey)===null||B===void 0)&&B.force)})}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey),this.delayedAndroidKey=null,this.flushingAndroidKey=-1}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=this.view.win.requestAnimationFrame(()=>{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let A of this.observer.takeRecords())this.queue.push(A);return this.queue}processRecords(){let A=this.pendingRecords();A.length&&(this.queue=[]);let g=-1,B=-1,C=!1;for(let Q of A){let E=this.readMutation(Q);E&&(E.typeOver&&(C=!0),g==-1?{from:g,to:B}=E:(g=Math.min(E.from,g),B=Math.max(E.to,B)))}return{from:g,to:B,typeOver:C}}readChange(){let{from:A,to:g,typeOver:B}=this.processRecords(),C=this.selectionChanged&&FC(this.dom,this.selectionRange);if(A<0&&!C)return null;A>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let Q=new qy(this.view,A,g,B);return this.view.docView.domChanged={newSel:Q.newSel?Q.newSel.main:null},Q}flush(A=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;A&&this.readSelectionRange();let g=this.readChange();if(!g)return!1;let B=this.view.state,C=JG(this.view,g);return this.view.state==B&&this.view.update([]),C}readMutation(A){let g=this.view.docView.nearest(A.target);if(!g||g.ignoreMutation(A))return null;if(g.markDirty(A.type=="attributes"),A.type=="attributes"&&(g.flags|=4),A.type=="childList"){let B=uG(g,A.previousSibling||A.target.previousSibling,-1),C=uG(g,A.nextSibling||A.target.nextSibling,1);return{from:B?g.posAfter(B):g.posAtStart,to:C?g.posBefore(C):g.posAtEnd,typeOver:!1}}else return A.type=="characterData"?{from:g.posAtStart,to:g.posAtEnd,typeOver:A.target.nodeValue==A.oldValue}:null}setWindow(A){A!=this.win&&(this.removeWindowListeners(this.win),this.win=A,this.addWindowListeners(this.win))}addWindowListeners(A){A.addEventListener("resize",this.onResize),A.addEventListener("beforeprint",this.onPrint),A.addEventListener("scroll",this.onScroll),A.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(A){A.removeEventListener("scroll",this.onScroll),A.removeEventListener("resize",this.onResize),A.removeEventListener("beforeprint",this.onPrint),A.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var A,g,B,C;this.stop(),(A=this.intersection)===null||A===void 0||A.disconnect(),(g=this.gapIntersection)===null||g===void 0||g.disconnect(),(B=this.resizeScroll)===null||B===void 0||B.disconnect(),(C=this.resizeContent)===null||C===void 0||C.disconnect();for(let Q of this.scrollTargets)Q.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey)}}function uG(I,A,g){for(;A;){let B=SA.get(A);if(B&&B.parent==I)return B;let C=A.parentNode;A=C!=I.dom?C:g>0?A.nextSibling:A.previousSibling}return null}function Cw(I){let A=null;function g(D){D.preventDefault(),D.stopImmediatePropagation(),A=D.getTargetRanges()[0]}if(I.contentDOM.addEventListener("beforeinput",g,!0),I.dom.ownerDocument.execCommand("indent"),I.contentDOM.removeEventListener("beforeinput",g,!0),!A)return null;let B=A.startContainer,C=A.startOffset,Q=A.endContainer,E=A.endOffset,N=I.docView.domAtPos(I.state.selection.main.anchor);return jC(N.node,N.offset,Q,E)&&([B,C,Q,E]=[Q,E,B,C]),{anchorNode:B,anchorOffset:C,focusNode:Q,focusOffset:E}}class _{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(A={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.style.cssText="position: fixed; top: -10000px",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM);let{dispatch:g}=A;this.dispatchTransactions=A.dispatchTransactions||g&&(B=>B.forEach(C=>g(C,this)))||(B=>this.update(B)),this.dispatch=this.dispatch.bind(this),this._root=A.root||uY(A.parent)||document,this.viewState=new jG(A.state||CA.create(A)),this.plugins=this.state.facet(zB).map(B=>new BD(B));for(let B of this.plugins)B.update(this);this.observer=new Bw(this),this.inputState=new ly(this),this.inputState.ensureHandlers(this,this.plugins),this.docView=new QG(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),A.parent&&A.parent.appendChild(this.dom)}dispatch(...A){let g=A.length==1&&A[0]instanceof dA?A:A.length==1&&Array.isArray(A[0])?A[0]:[this.state.update(...A)];this.dispatchTransactions(g,this)}update(A){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let g=!1,B=!1,C,Q=this.state;for(let i of A){if(i.startState!=Q)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");Q=i.state}if(this.destroyed){this.viewState.state=Q;return}let E=this.hasFocus,N=0,D=null;A.some(i=>i.annotation(HG))?(this.inputState.notifiedFocused=E,N=1):E!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=E,D=RG(Q,E),D||(N=1));let o=this.observer.delayedAndroidKey,M=null;if(o?(this.observer.clearDelayedAndroidKey(),M=this.observer.readChange(),(M&&!this.state.doc.eq(Q.doc)||!this.state.selection.eq(Q.selection))&&(M=null)):this.observer.clear(),Q.facet(CA.phrases)!=this.state.facet(CA.phrases))return this.setState(Q);C=OC.create(this,Q,A),C.flags|=N;let G=this.viewState.scrollTarget;try{this.updateState=2;for(let i of A){if(G&&(G=G.map(i.changes)),i.scrollIntoView){let{main:L}=i.state.selection;G=new nC(L.empty?L:j.cursor(L.head,L.head>L.anchor?-1:1))}for(let L of i.effects)L.is(rM)&&(G=L.value)}this.viewState.update(C,G),this.bidiCache=qC.update(this.bidiCache,C.changes),C.empty||(this.updatePlugins(C),this.inputState.update(C)),g=this.docView.update(C),this.state.facet(jB)!=this.styleModules&&this.mountStyles(),B=this.updateAttrs(),this.showAnnouncements(A),this.docView.updateSelection(g,A.some(i=>i.isUserEvent("select.pointer")))}finally{this.updateState=0}if(C.startState.facet(PC)!=C.state.facet(PC)&&(this.viewState.mustMeasureContent=!0),(g||B||G||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!C.empty)for(let i of this.state.facet(ID))i(C);(D||M)&&Promise.resolve().then(()=>{D&&this.state==D.startState&&this.dispatch(D),M&&!JG(this,M)&&o.force&&vI(this.contentDOM,o.key,o.keyCode)})}setState(A){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=A;return}this.updateState=2;let g=this.hasFocus;try{for(let B of this.plugins)B.destroy(this);this.viewState=new jG(A),this.plugins=A.facet(zB).map(B=>new BD(B)),this.pluginMap.clear();for(let B of this.plugins)B.update(this);this.docView=new QG(this),this.inputState.ensureHandlers(this,this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}g&&this.focus(),this.requestMeasure()}updatePlugins(A){let g=A.startState.facet(zB),B=A.state.facet(zB);if(g!=B){let C=[];for(let Q of B){let E=g.indexOf(Q);if(E<0)C.push(new BD(Q));else{let N=this.plugins[E];N.mustUpdate=A,C.push(N)}}for(let Q of this.plugins)Q.mustUpdate!=A&&Q.destroy(this);this.plugins=C,this.pluginMap.clear(),this.inputState.ensureHandlers(this,this.plugins)}else for(let C of this.plugins)C.mustUpdate=A;for(let C=0;C<this.plugins.length;C++)this.plugins[C].update(this)}measure(A=!0){if(this.destroyed)return;if(this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,A&&this.observer.forceFlush();let g=null,B=this.scrollDOM,C=B.scrollTop*this.scaleY,{scrollAnchorPos:Q,scrollAnchorHeight:E}=this.viewState;Math.abs(C-this.viewState.scrollTop)>1&&(E=-1),this.viewState.scrollAnchorHeight=-1;try{for(let N=0;;N++){if(E<0)if(ZM(B))Q=-1,E=this.viewState.heightMap.height;else{let L=this.viewState.scrollAnchorAt(C);Q=L.from,E=L.top}this.updateState=1;let D=this.viewState.measure(this);if(!D&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(N>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let o=[];D&4||([this.measureRequests,o]=[o,this.measureRequests]);let M=o.map(L=>{try{return L.read(this)}catch(Y){return Ng(this.state,Y),vG}}),G=OC.create(this,this.state,[]),i=!1;G.flags|=D,g?g.flags|=D:g=G,this.updateState=2,G.empty||(this.updatePlugins(G),this.inputState.update(G),this.updateAttrs(),i=this.docView.update(G));for(let L=0;L<o.length;L++)if(M[L]!=vG)try{let Y=o[L];Y.write&&Y.write(M[L],this)}catch(Y){Ng(this.state,Y)}if(i&&this.docView.updateSelection(!0),!G.viewportChanged&&this.measureRequests.length==0){if(this.viewState.editorHeight)if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null;continue}else{let Y=(Q<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(Q).top)-E;if(Y>1||Y<-1){C=C+Y,B.scrollTop=C/this.scaleY,E=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(g&&!g.empty)for(let N of this.state.facet(ID))N(g)}get themeClasses(){return wD+" "+(this.state.facet(yD)?xG:pG)+" "+this.state.facet(PC)}updateAttrs(){let A=VG(this,fM,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),g={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(WC)?"true":"false",class:"cm-content",style:`${X.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(g["aria-readonly"]="true"),VG(this,CD,g);let B=this.observer.ignore(()=>{let C=AD(this.contentDOM,this.contentAttrs,g),Q=AD(this.dom,this.editorAttrs,A);return C||Q});return this.editorAttrs=A,this.contentAttrs=g,B}showAnnouncements(A){let g=!0;for(let B of A)for(let C of B.effects)if(C.is(_.announce)){g&&(this.announceDOM.textContent=""),g=!1;let Q=this.announceDOM.appendChild(document.createElement("div"));Q.textContent=C.value}}mountStyles(){this.styleModules=this.state.facet(jB);let A=this.state.facet(_.cspNonce);AI.mount(this.root,this.styleModules.concat(fy).reverse(),A?{nonce:A}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(A){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),A){if(this.measureRequests.indexOf(A)>-1)return;if(A.key!=null){for(let g=0;g<this.measureRequests.length;g++)if(this.measureRequests[g].key===A.key){this.measureRequests[g]=A;return}}this.measureRequests.push(A)}}plugin(A){let g=this.pluginMap.get(A);return(g===void 0||g&&g.spec!=A)&&this.pluginMap.set(A,g=this.plugins.find(B=>B.spec==A)||null),g&&g.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(A){return this.readMeasured(),this.viewState.elementAtHeight(A)}lineBlockAtHeight(A){return this.readMeasured(),this.viewState.lineBlockAtHeight(A)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(A){return this.viewState.lineBlockAt(A)}get contentHeight(){return this.viewState.contentHeight}moveByChar(A,g,B){return iD(this,A,SG(this,A,g,B))}moveByGroup(A,g){return iD(this,A,SG(this,A,g,B=>sy(this,A.head,B)))}moveToLineBoundary(A,g,B=!0){return ty(this,A,g,B)}moveVertically(A,g,B){return iD(this,A,Ky(this,A,g,B))}domAtPos(A){return this.docView.domAtPos(A)}posAtDOM(A,g=0){return this.docView.posFromDOM(A,g)}posAtCoords(A,g=!0){return this.readMeasured(),iG(this,A,g)}coordsAtPos(A,g=1){this.readMeasured();let B=this.docView.coordsAt(A,g);if(!B||B.left==B.right)return B;let C=this.state.doc.lineAt(A),Q=this.bidiSpans(C),E=Q[QI.find(Q,A-C.from,-1,g)];return VE(B,E.dir==wA.LTR==g>0)}coordsForChar(A){return this.readMeasured(),this.docView.coordsForChar(A)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(A){return!this.state.facet(VM)||A<this.viewport.from||A>this.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(A))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(A){if(A.length>Qw)return BG(A.length);let g=this.textDirectionAt(A.from),B;for(let Q of this.bidiCache)if(Q.from==A.from&&Q.dir==g&&(Q.fresh||IG(Q.isolates,B=qM(this,A.from,A.to))))return Q.order;B||(B=qM(this,A.from,A.to));let C=Qy(A.text,g,B);return this.bidiCache.push(new qC(A.from,A.to,g,B,!0,C)),C}get hasFocus(){var A;return(this.dom.ownerDocument.hasFocus()||X.safari&&((A=this.inputState)===null||A===void 0?void 0:A.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{KM(this.contentDOM),this.docView.updateSelection()})}setRoot(A){this._root!=A&&(this._root=A,this.observer.setWindow((A.nodeType==9?A:A.ownerDocument).defaultView||window),this.mountStyles())}destroy(){for(let A of this.plugins)A.destroy(this);this.plugins=[],this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(A,g={}){return rM.of(new nC(typeof A=="number"?j.cursor(A):A,g.y,g.x,g.yMargin,g.xMargin))}static domEventHandlers(A){return RA.define(()=>({}),{eventHandlers:A})}static theme(A,g){let B=AI.newName(),C=[PC.of(B),jB.of(tD(`.${B}`,A))];return g&&g.dark&&C.push(yD.of(!0)),C}static baseTheme(A){return WI.lowest(jB.of(tD("."+wD,A,nG)))}static findFromDOM(A){var g;let B=A.querySelector(".cm-content"),C=B&&SA.get(B)||SA.get(A);return((g=C==null?void 0:C.rootView)===null||g===void 0?void 0:g.view)||null}}_.styleModule=jB,_.inputHandler=uM,_.focusChangeEffect=vM,_.perLineTextDirection=VM,_.exceptionSink=JM,_.updateListener=ID,_.editable=WC,_.mouseSelectionStyle=OM,_.dragMovesSelection=WM,_.clickAddsSelectionRange=nM,_.decorations=FB,_.atomicRanges=QD,_.bidiIsolatedRanges=PM,_.scrollMargins=_M,_.darkTheme=yD,_.cspNonce=r.define({combine:I=>I.length?I[0]:""}),_.contentAttributes=CD,_.editorAttributes=fM,_.lineWrapping=_.contentAttributes.of({class:"cm-lineWrapping"}),_.announce=IA.define();const Qw=4096,vG={};class qC{constructor(A,g,B,C,Q,E){this.from=A,this.to=g,this.dir=B,this.isolates=C,this.fresh=Q,this.order=E}static update(A,g){if(g.empty&&!A.some(Q=>Q.fresh))return A;let B=[],C=A.length?A[A.length-1].dir:wA.LTR;for(let Q=Math.max(0,A.length-10);Q<A.length;Q++){let E=A[Q];E.dir==C&&!g.touchesRange(E.from,E.to)&&B.push(new qC(g.mapPos(E.from,1),g.mapPos(E.to,-1),E.dir,E.isolates,!1,E.order))}return B}}function VG(I,A,g){for(let B=I.state.facet(A),C=B.length-1;C>=0;C--){let Q=B[C],E=typeof Q=="function"?Q(I):Q;E&&_E(E,g)}return g}const Ew=X.mac?"mac":X.windows?"win":X.linux?"linux":"key";function Dw(I,A){const g=I.split(/-(?!$)/);let B=g[g.length-1];B=="Space"&&(B=" ");let C,Q,E,N;for(let D=0;D<g.length-1;++D){const o=g[D];if(/^(cmd|meta|m)$/i.test(o))N=!0;else if(/^a(lt)?$/i.test(o))C=!0;else if(/^(c|ctrl|control)$/i.test(o))Q=!0;else if(/^s(hift)?$/i.test(o))E=!0;else if(/^mod$/i.test(o))A=="mac"?N=!0:Q=!0;else throw new Error("Unrecognized modifier name: "+o)}return C&&(B="Alt-"+B),Q&&(B="Ctrl-"+B),N&&(B="Meta-"+B),E&&(B="Shift-"+B),B}function _C(I,A,g){return A.altKey&&(I="Alt-"+I),A.ctrlKey&&(I="Ctrl-"+I),A.metaKey&&(I="Meta-"+I),g!==!1&&A.shiftKey&&(I="Shift-"+I),I}const Nw=WI.default(_.domEventHandlers({keydown(I,A){return fG(rG(A.state),I,A,"editor")}})),KD=r.define({enables:Nw}),XG=new WeakMap;function rG(I){let A=I.facet(KD),g=XG.get(A);return g||XG.set(A,g=Gw(A.reduce((B,C)=>B.concat(C),[]))),g}function ow(I,A,g){return fG(rG(I.state),A,I,g)}let EI=null;const Mw=4e3;function Gw(I,A=Ew){let g=Object.create(null),B=Object.create(null),C=(E,N)=>{let D=B[E];if(D==null)B[E]=N;else if(D!=N)throw new Error("Key binding "+E+" is used both as a regular binding and as a multi-stroke prefix")},Q=(E,N,D,o,M)=>{var G,i;let L=g[E]||(g[E]=Object.create(null)),Y=N.split(/ (?!$)/).map(Z=>Dw(Z,A));for(let Z=1;Z<Y.length;Z++){let h=Y.slice(0,Z).join(" ");C(h,!0),L[h]||(L[h]={preventDefault:!0,stopPropagation:!1,run:[K=>{let y=EI={view:K,prefix:h,scope:E};return setTimeout(()=>{EI==y&&(EI=null)},Mw),!0}]})}let w=Y.join(" ");C(w,!1);let t=L[w]||(L[w]={preventDefault:!1,stopPropagation:!1,run:((i=(G=L._any)===null||G===void 0?void 0:G.run)===null||i===void 0?void 0:i.slice())||[]});D&&t.run.push(D),o&&(t.preventDefault=!0),M&&(t.stopPropagation=!0)};for(let E of I){let N=E.scope?E.scope.split(" "):["editor"];if(E.any)for(let o of N){let M=g[o]||(g[o]=Object.create(null));M._any||(M._any={preventDefault:!1,stopPropagation:!1,run:[]});for(let G in M)M[G].run.push(E.any)}let D=E[A]||E.key;if(D)for(let o of N)Q(o,D,E.run,E.preventDefault,E.stopPropagation),E.shift&&Q(o,"Shift-"+D,E.shift,E.preventDefault,E.stopPropagation)}return g}function fG(I,A,g,B){let C=pY(A),Q=TA(C,0),E=Dg(Q)==C.length&&C!=" ",N="",D=!1,o=!1,M=!1;EI&&EI.view==g&&EI.scope==B&&(N=EI.prefix+" ",YG.indexOf(A.keyCode)<0&&(o=!0,EI=null));let G=new Set,i=t=>{if(t){for(let Z of t.run)if(!G.has(Z)&&(G.add(Z),Z(g,A)))return t.stopPropagation&&(M=!0),!0;t.preventDefault&&(t.stopPropagation&&(M=!0),o=!0)}return!1},L=I[B],Y,w;return L&&(i(L[N+_C(C,A,!E)])?D=!0:E&&(A.altKey||A.metaKey||A.ctrlKey)&&!(X.windows&&A.ctrlKey&&A.altKey)&&(Y=gI[A.keyCode])&&Y!=C?(i(L[N+_C(Y,A,!0)])||A.shiftKey&&(w=HB[A.keyCode])!=C&&w!=Y&&i(L[N+_C(w,A,!1)]))&&(D=!0):E&&A.shiftKey&&i(L[N+_C(C,A,!0)])&&(D=!0),!D&&i(L._any)&&(D=!0)),o&&(D=!0),D&&M&&A.stopPropagation(),D}class nB{constructor(A,g,B,C,Q){this.className=A,this.left=g,this.top=B,this.width=C,this.height=Q}draw(){let A=document.createElement("div");return A.className=this.className,this.adjust(A),A}update(A,g){return g.className!=this.className?!1:(this.adjust(A),!0)}adjust(A){A.style.left=this.left+"px",A.style.top=this.top+"px",this.width!=null&&(A.style.width=this.width+"px"),A.style.height=this.height+"px"}eq(A){return this.left==A.left&&this.top==A.top&&this.width==A.width&&this.height==A.height&&this.className==A.className}static forRange(A,g,B){if(B.empty){let C=A.coordsAtPos(B.head,B.assoc||1);if(!C)return[];let Q=PG(A);return[new nB(g,C.left-Q.left,C.top-Q.top,null,C.bottom-C.top)]}else return iw(A,g,B)}}function PG(I){let A=I.scrollDOM.getBoundingClientRect();return{left:(I.textDirection==wA.LTR?A.left:A.right-I.scrollDOM.clientWidth*I.scaleX)-I.scrollDOM.scrollLeft*I.scaleX,top:A.top-I.scrollDOM.scrollTop*I.scaleY}}function qG(I,A,g){let B=j.cursor(A);return{from:Math.max(g.from,I.moveToLineBoundary(B,!1,!0).from),to:Math.min(g.to,I.moveToLineBoundary(B,!0,!0).from),type:yA.Text}}function iw(I,A,g){if(g.to<=I.viewport.from||g.from>=I.viewport.to)return[];let B=Math.max(g.from,I.viewport.from),C=Math.min(g.to,I.viewport.to),Q=I.textDirection==wA.LTR,E=I.contentDOM,N=E.getBoundingClientRect(),D=PG(I),o=E.querySelector(".cm-line"),M=o&&window.getComputedStyle(o),G=N.left+(M?parseInt(M.paddingLeft)+Math.min(0,parseInt(M.textIndent)):0),i=N.right-(M?parseInt(M.paddingRight):0),L=GD(I,B),Y=GD(I,C),w=L.type==yA.Text?L:null,t=Y.type==yA.Text?Y:null;if(w&&(I.lineWrapping||L.widgetLineBreaks)&&(w=qG(I,B,w)),t&&(I.lineWrapping||Y.widgetLineBreaks)&&(t=qG(I,C,t)),w&&t&&w.from==t.from)return h(K(g.from,g.to,w));{let S=w?K(g.from,null,w):y(L,!1),c=t?K(null,g.to,t):y(Y,!0),l=[];return(w||L).to<(t||Y).from-(w&&t?1:0)||L.widgetLineBreaks>1&&S.bottom+I.defaultLineHeight/2<c.top?l.push(Z(G,S.bottom,i,c.top)):S.bottom<c.top&&I.elementAtHeight((S.bottom+c.top)/2).type==yA.Text&&(S.bottom=c.top=(S.bottom+c.top)/2),h(S).concat(l).concat(h(c))}function Z(S,c,l,U){return new nB(A,S-D.left,c-D.top-.01,l-S,U-c+.01)}function h({top:S,bottom:c,horizontal:l}){let U=[];for(let H=0;H<l.length;H+=2)U.push(Z(l[H],S,l[H+1],c));return U}function K(S,c,l){let U=1e9,H=-1e9,b=[];function s(d,R,T,e,F){let p=I.coordsAtPos(d,d==l.to?-2:2),z=I.coordsAtPos(T,T==l.from?2:-2);!p||!z||(U=Math.min(p.top,z.top,U),H=Math.max(p.bottom,z.bottom,H),F==wA.LTR?b.push(Q&&R?G:p.left,Q&&e?i:z.right):b.push(!Q&&e?G:z.left,!Q&&R?i:p.right))}let k=S??l.from,a=c??l.to;for(let d of I.visibleRanges)if(d.to>k&&d.from<a)for(let R=Math.max(d.from,k),T=Math.min(d.to,a);;){let e=I.state.doc.lineAt(R);for(let F of I.bidiSpans(e)){let p=F.from+e.from,z=F.to+e.from;if(p>=T)break;z>R&&s(Math.max(p,R),S==null&&p<=k,Math.min(z,T),c==null&&z>=a,F.dir)}if(R=e.to+1,R>=T)break}return b.length==0&&s(k,S==null,a,c==null,I.textDirection),{top:U,bottom:H,horizontal:b}}function y(S,c){let l=N.top+(c?S.top:S.bottom);return{top:l,bottom:l,horizontal:[]}}}function Lw(I,A){return I.constructor==A.constructor&&I.eq(A)}class Sw{constructor(A,g){this.view=A,this.layer=g,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=A.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),g.above&&this.dom.classList.add("cm-layer-above"),g.class&&this.dom.classList.add(g.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(A.state),A.requestMeasure(this.measureReq),g.mount&&g.mount(this.dom,A)}update(A){A.startState.facet($C)!=A.state.facet($C)&&this.setOrder(A.state),(this.layer.update(A,this.dom)||A.geometryChanged)&&(this.scale(),A.view.requestMeasure(this.measureReq))}setOrder(A){let g=0,B=A.facet($C);for(;g<B.length&&B[g]!=this.layer;)g++;this.dom.style.zIndex=String((this.layer.above?150:-1)-g)}measure(){return this.layer.markers(this.view)}scale(){let{scaleX:A,scaleY:g}=this.view;(A!=this.scaleX||g!=this.scaleY)&&(this.scaleX=A,this.scaleY=g,this.dom.style.transform=`scale(${1/A}, ${1/g})`)}draw(A){if(A.length!=this.drawn.length||A.some((g,B)=>!Lw(g,this.drawn[B]))){let g=this.dom.firstChild,B=0;for(let C of A)C.update&&g&&C.constructor&&this.drawn[B].constructor&&C.update(g,this.drawn[B])?(g=g.nextSibling,B++):this.dom.insertBefore(C.draw(),g);for(;g;){let C=g.nextSibling;g.remove(),g=C}this.drawn=A}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const $C=r.define();function _G(I){return[RA.define(A=>new Sw(A,I)),$C.of(I)]}const $G=!X.ios,WB=r.define({combine(I){return Og(I,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(A,g)=>Math.min(A,g),drawRangeCursor:(A,g)=>A||g})}});function cw(I={}){return[WB.of(I),Yw,yw,ww,XM.of(!0)]}function Ai(I){return I.startState.facet(WB)!=I.state.facet(WB)}const Yw=_G({above:!0,markers(I){let{state:A}=I,g=A.facet(WB),B=[];for(let C of A.selection.ranges){let Q=C==A.selection.main;if(C.empty?!Q||$G:g.drawRangeCursor){let E=Q?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",N=C.empty?C:j.cursor(C.head,C.head>C.anchor?-1:1);for(let D of nB.forRange(I,E,N))B.push(D)}}return B},update(I,A){I.transactions.some(B=>B.selection)&&(A.style.animationName=A.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let g=Ai(I);return g&&gi(I.state,A),I.docChanged||I.selectionSet||g},mount(I,A){gi(A.state,I)},class:"cm-cursorLayer"});function gi(I,A){A.style.animationDuration=I.facet(WB).cursorBlinkRate+"ms"}const yw=_G({above:!1,markers(I){return I.state.selection.ranges.map(A=>A.empty?[]:nB.forRange(I,"cm-selectionBackground",A)).reduce((A,g)=>A.concat(g))},update(I,A){return I.docChanged||I.selectionSet||I.viewportChanged||Ai(I)},class:"cm-selectionLayer"}),Ii={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};$G&&(Ii[".cm-line"].caretColor="transparent !important");const ww=WI.highest(_.theme(Ii)),Bi=IA.define({map(I,A){return I==null?null:A.mapPos(I)}}),OB=nA.define({create(){return null},update(I,A){return I!=null&&(I=A.changes.mapPos(I)),A.effects.reduce((g,B)=>B.is(Bi)?B.value:g,I)}}),tw=RA.fromClass(class{constructor(I){this.view=I,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(I){var A;let g=I.state.field(OB);g==null?this.cursor!=null&&((A=this.cursor)===null||A===void 0||A.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(I.startState.field(OB)!=g||I.docChanged||I.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:I}=this,A=I.state.field(OB),g=A!=null&&I.coordsAtPos(A);if(!g)return null;let B=I.scrollDOM.getBoundingClientRect();return{left:g.left-B.left+I.scrollDOM.scrollLeft*I.scaleX,top:g.top-B.top+I.scrollDOM.scrollTop*I.scaleY,height:g.bottom-g.top}}drawCursor(I){if(this.cursor){let{scaleX:A,scaleY:g}=this.view;I?(this.cursor.style.left=I.left/A+"px",this.cursor.style.top=I.top/g+"px",this.cursor.style.height=I.height/g+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(I){this.view.state.field(OB)!=I&&this.view.dispatch({effects:Bi.of(I)})}},{eventHandlers:{dragover(I){this.setDropPos(this.view.posAtCoords({x:I.clientX,y:I.clientY}))},dragleave(I){(I.target==this.view.contentDOM||!this.view.contentDOM.contains(I.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function sw(){return[OB,tw]}function Ci(I,A,g,B,C){A.lastIndex=0;for(let Q=I.iterRange(g,B),E=g,N;!Q.next().done;E+=Q.value.length)if(!Q.lineBreak)for(;N=A.exec(Q.value);)C(E+N.index,N)}function Kw(I,A){let g=I.visibleRanges;if(g.length==1&&g[0].from==I.viewport.from&&g[0].to==I.viewport.to)return g;let B=[];for(let{from:C,to:Q}of g)C=Math.max(I.state.doc.lineAt(C).from,C-A),Q=Math.min(I.state.doc.lineAt(Q).to,Q+A),B.length&&B[B.length-1].to>=C?B[B.length-1].to=Q:B.push({from:C,to:Q});return B}class lw{constructor(A){const{regexp:g,decoration:B,decorate:C,boundary:Q,maxLength:E=1e3}=A;if(!g.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=g,C)this.addMatch=(N,D,o,M)=>C(M,o,o+N[0].length,N,D);else if(typeof B=="function")this.addMatch=(N,D,o,M)=>{let G=B(N,D,o);G&&M(o,o+N[0].length,G)};else if(B)this.addMatch=(N,D,o,M)=>M(o,o+N[0].length,B);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=Q,this.maxLength=E}createDeco(A){let g=new ZI,B=g.add.bind(g);for(let{from:C,to:Q}of Kw(A,this.maxLength))Ci(A.state.doc,this.regexp,C,Q,(E,N)=>this.addMatch(N,A,E,B));return g.finish()}updateDeco(A,g){let B=1e9,C=-1;return A.docChanged&&A.changes.iterChanges((Q,E,N,D)=>{D>A.view.viewport.from&&N<A.view.viewport.to&&(B=Math.min(N,B),C=Math.max(D,C))}),A.viewportChanged||C-B>1e3?this.createDeco(A.view):C>-1?this.updateRange(A.view,g.map(A.changes),B,C):g}updateRange(A,g,B,C){for(let Q of A.visibleRanges){let E=Math.max(Q.from,B),N=Math.min(Q.to,C);if(N>E){let D=A.state.doc.lineAt(E),o=D.to<N?A.state.doc.lineAt(N):D,M=Math.max(Q.from,D.from),G=Math.min(Q.to,o.to);if(this.boundary){for(;E>D.from;E--)if(this.boundary.test(D.text[E-1-D.from])){M=E;break}for(;N<o.to;N++)if(this.boundary.test(o.text[N-o.from])){G=N;break}}let i=[],L,Y=(w,t,Z)=>i.push(Z.range(w,t));if(D==o)for(this.regexp.lastIndex=M-D.from;(L=this.regexp.exec(D.text))&&L.index<G-D.from;)this.addMatch(L,A,L.index+D.from,Y);else Ci(A.state.doc,this.regexp,M,G,(w,t)=>this.addMatch(t,A,w,Y));g=g.update({filterFrom:M,filterTo:G,filter:(w,t)=>w<M||t>G,add:i})}}return g}}const lD=/x/.unicode!=null?"gu":"g",kw=new RegExp(`[\0-\b
|
1625
|
+
--\u2028\u2029\uFEFF-]`,lD),Zw={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let kD=null;function hw(){var I;if(kD==null&&typeof document<"u"&&document.body){let A=document.body.style;kD=((I=A.tabSize)!==null&&I!==void 0?I:A.MozTabSize)!=null}return kD||!1}const AQ=r.define({combine(I){let A=Og(I,{render:null,specialChars:kw,addSpecialChars:null});return(A.replaceTabs=!hw())&&(A.specialChars=new RegExp(" |"+A.specialChars.source,lD)),A.addSpecialChars&&(A.specialChars=new RegExp(A.specialChars.source+"|"+A.addSpecialChars.source,lD)),A}});function aw(I={}){return[AQ.of(I),bw()]}let Qi=null;function bw(){return Qi||(Qi=RA.fromClass(class{constructor(I){this.view=I,this.decorations=AA.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(I.state.facet(AQ)),this.decorations=this.decorator.createDeco(I)}makeDecorator(I){return new lw({regexp:I.specialChars,decoration:(A,g,B)=>{let{doc:C}=g.state,Q=TA(A[0],0);if(Q==9){let E=C.lineAt(B),N=g.state.tabSize,D=JI(E.text,N,B-E.from);return AA.replace({widget:new Uw((N-D%N)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[Q]||(this.decorationCache[Q]=AA.replace({widget:new Rw(I,Q)}))},boundary:I.replaceTabs?void 0:/[^]/})}update(I){let A=I.state.facet(AQ);I.startState.facet(AQ)!=A?(this.decorator=this.makeDecorator(A),this.decorations=this.decorator.createDeco(I.view)):this.decorations=this.decorator.updateDeco(I,this.decorations)}},{decorations:I=>I.decorations}))}const dw="•";function Hw(I){return I>=32?dw:I==10?"":String.fromCharCode(9216+I)}class Rw extends XI{constructor(A,g){super(),this.options=A,this.code=g}eq(A){return A.code==this.code}toDOM(A){let g=Hw(this.code),B=A.state.phrase("Control character")+" "+(Zw[this.code]||"0x"+this.code.toString(16)),C=this.options.render&&this.options.render(this.code,B,g);if(C)return C;let Q=document.createElement("span");return Q.textContent=g,Q.title=B,Q.setAttribute("aria-label",B),Q.className="cm-specialChar",Q}ignoreEvent(){return!1}}class Uw extends XI{constructor(A){super(),this.width=A}eq(A){return A.width==this.width}toDOM(){let A=document.createElement("span");return A.textContent=" ",A.className="cm-tab",A.style.width=this.width+"px",A}ignoreEvent(){return!1}}function Tw(){return zw}const ew=AA.line({class:"cm-activeLine"}),zw=RA.fromClass(class{constructor(I){this.decorations=this.getDeco(I)}update(I){(I.docChanged||I.selectionSet)&&(this.decorations=this.getDeco(I.view))}getDeco(I){let A=-1,g=[];for(let B of I.state.selection.ranges){let C=I.lineBlockAt(B.head);C.from>A&&(g.push(ew.range(C.from)),A=C.from)}return AA.set(g)}},{decorations:I=>I.decorations}),ZD=2e3;function Fw(I,A,g){let B=Math.min(A.line,g.line),C=Math.max(A.line,g.line),Q=[];if(A.off>ZD||g.off>ZD||A.col<0||g.col<0){let E=Math.min(A.off,g.off),N=Math.max(A.off,g.off);for(let D=B;D<=C;D++){let o=I.doc.line(D);o.length<=N&&Q.push(j.range(o.from+E,o.to+N))}}else{let E=Math.min(A.col,g.col),N=Math.max(A.col,g.col);for(let D=B;D<=C;D++){let o=I.doc.line(D),M=WE(o.text,E,I.tabSize,!0);if(M<0)Q.push(j.cursor(o.to));else{let G=WE(o.text,N,I.tabSize);Q.push(j.range(o.from+M,o.from+G))}}}return Q}function jw(I,A){let g=I.coordsAtPos(I.viewport.from);return g?Math.round(Math.abs((g.left-A)/I.defaultCharacterWidth)):-1}function Ei(I,A){let g=I.posAtCoords({x:A.clientX,y:A.clientY},!1),B=I.state.doc.lineAt(g),C=g-B.from,Q=C>ZD?-1:C==B.length?jw(I,A.clientX):JI(B.text,I.state.tabSize,g-B.from);return{line:B.number,col:Q,off:C}}function mw(I,A){let g=Ei(I,A),B=I.state.selection;return g?{update(C){if(C.docChanged){let Q=C.changes.mapPos(C.startState.doc.line(g.line).from),E=C.state.doc.lineAt(Q);g={line:E.number,col:g.col,off:Math.min(g.off,E.length)},B=B.map(C.changes)}},get(C,Q,E){let N=Ei(I,C);if(!N)return B;let D=Fw(I.state,g,N);return D.length?E?j.create(D.concat(B.ranges)):j.create(D):B}}:null}function pw(I){let A=(I==null?void 0:I.eventFilter)||(g=>g.altKey&&g.button==0);return _.mouseSelectionStyle.of((g,B)=>A(B)?mw(g,B):null)}const xw={Alt:[18,I=>!!I.altKey],Control:[17,I=>!!I.ctrlKey],Shift:[16,I=>!!I.shiftKey],Meta:[91,I=>!!I.metaKey]},nw={style:"cursor: crosshair"};function Ww(I={}){let[A,g]=xw[I.key||"Alt"],B=RA.fromClass(class{constructor(C){this.view=C,this.isDown=!1}set(C){this.isDown!=C&&(this.isDown=C,this.view.update([]))}},{eventHandlers:{keydown(C){this.set(C.keyCode==A||g(C))},keyup(C){(C.keyCode==A||!g(C))&&this.set(!1)},mousemove(C){this.set(g(C))}}});return[B,_.contentAttributes.of(C=>{var Q;return!((Q=C.plugin(B))===null||Q===void 0)&&Q.isDown?nw:null})]}const gQ="-10000px";class Di{constructor(A,g,B){this.facet=g,this.createTooltipView=B,this.input=A.state.facet(g),this.tooltips=this.input.filter(C=>C),this.tooltipViews=this.tooltips.map(B)}update(A){var g;let B=A.state.facet(this.facet),C=B.filter(E=>E);if(B===this.input){for(let E of this.tooltipViews)E.update&&E.update(A);return!1}let Q=[];for(let E=0;E<C.length;E++){let N=C[E],D=-1;if(N){for(let o=0;o<this.tooltips.length;o++){let M=this.tooltips[o];M&&M.create==N.create&&(D=o)}if(D<0)Q[E]=this.createTooltipView(N);else{let o=Q[E]=this.tooltipViews[D];o.update&&o.update(A)}}}for(let E of this.tooltipViews)Q.indexOf(E)<0&&(E.dom.remove(),(g=E.destroy)===null||g===void 0||g.call(E));return this.input=B,this.tooltips=C,this.tooltipViews=Q,!0}}function Ow(I){let{win:A}=I;return{top:0,left:0,bottom:A.innerHeight,right:A.innerWidth}}const hD=r.define({combine:I=>{var A,g,B;return{position:X.ios?"absolute":((A=I.find(C=>C.position))===null||A===void 0?void 0:A.position)||"fixed",parent:((g=I.find(C=>C.parent))===null||g===void 0?void 0:g.parent)||null,tooltipSpace:((B=I.find(C=>C.tooltipSpace))===null||B===void 0?void 0:B.tooltipSpace)||Ow}}}),Ni=new WeakMap,oi=RA.fromClass(class{constructor(I){this.view=I,this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let A=I.state.facet(hD);this.position=A.position,this.parent=A.parent,this.classes=I.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.manager=new Di(I,aD,g=>this.createTooltip(g)),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(g=>{Date.now()>this.lastTransaction-50&&g.length>0&&g[g.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),I.win.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 I of this.manager.tooltipViews)this.intersectionObserver.observe(I.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(I){I.transactions.length&&(this.lastTransaction=Date.now());let A=this.manager.update(I);A&&this.observeIntersection();let g=A||I.geometryChanged,B=I.state.facet(hD);if(B.position!=this.position&&!this.madeAbsolute){this.position=B.position;for(let C of this.manager.tooltipViews)C.dom.style.position=this.position;g=!0}if(B.parent!=this.parent){this.parent&&this.container.remove(),this.parent=B.parent,this.createContainer();for(let C of this.manager.tooltipViews)this.container.appendChild(C.dom);g=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);g&&this.maybeMeasure()}createTooltip(I){let A=I.create(this.view);if(A.dom.classList.add("cm-tooltip"),I.arrow&&!A.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let g=document.createElement("div");g.className="cm-tooltip-arrow",A.dom.appendChild(g)}return A.dom.style.position=this.position,A.dom.style.top=gQ,this.container.appendChild(A.dom),A.mount&&A.mount(this.view),A}destroy(){var I,A;this.view.win.removeEventListener("resize",this.measureSoon);for(let g of this.manager.tooltipViews)g.dom.remove(),(I=g.destroy)===null||I===void 0||I.call(g);(A=this.intersectionObserver)===null||A===void 0||A.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let I=this.view.dom.getBoundingClientRect(),A=1,g=1,B=!1;if(this.position=="fixed"){let C=this.manager.tooltipViews;B=C.length>0&&C[0].dom.offsetParent!=this.container.ownerDocument.body}if(B||this.position=="absolute")if(this.parent){let C=this.parent.getBoundingClientRect();C.width&&C.height&&(A=C.width/this.parent.offsetWidth,g=C.height/this.parent.offsetHeight)}else({scaleX:A,scaleY:g}=this.view.viewState);return{editor:I,parent:this.parent?this.container.getBoundingClientRect():I,pos:this.manager.tooltips.map((C,Q)=>{let E=this.manager.tooltipViews[Q];return E.getCoords?E.getCoords(C.pos):this.view.coordsAtPos(C.pos)}),size:this.manager.tooltipViews.map(({dom:C})=>C.getBoundingClientRect()),space:this.view.state.facet(hD).tooltipSpace(this.view),scaleX:A,scaleY:g,makeAbsolute:B}}writeMeasure(I){var A;if(I.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let N of this.manager.tooltipViews)N.dom.style.position="absolute"}let{editor:g,space:B,scaleX:C,scaleY:Q}=I,E=[];for(let N=0;N<this.manager.tooltips.length;N++){let D=this.manager.tooltips[N],o=this.manager.tooltipViews[N],{dom:M}=o,G=I.pos[N],i=I.size[N];if(!G||G.bottom<=Math.max(g.top,B.top)||G.top>=Math.min(g.bottom,B.bottom)||G.right<Math.max(g.left,B.left)-.1||G.left>Math.min(g.right,B.right)+.1){M.style.top=gQ;continue}let L=D.arrow?o.dom.querySelector(".cm-tooltip-arrow"):null,Y=L?7:0,w=i.right-i.left,t=(A=Ni.get(o))!==null&&A!==void 0?A:i.bottom-i.top,Z=o.offset||uw,h=this.view.textDirection==wA.LTR,K=i.width>B.right-B.left?h?B.left:B.right-i.width:h?Math.min(G.left-(L?14:0)+Z.x,B.right-w):Math.max(B.left,G.left-w+(L?14:0)-Z.x),y=!!D.above;!D.strictSide&&(y?G.top-(i.bottom-i.top)-Z.y<B.top:G.bottom+(i.bottom-i.top)+Z.y>B.bottom)&&y==B.bottom-G.bottom>G.top-B.top&&(y=!y);let S=(y?G.top-B.top:B.bottom-G.bottom)-Y;if(S<t&&o.resize!==!1){if(S<this.view.defaultLineHeight){M.style.top=gQ;continue}Ni.set(o,t),M.style.height=(t=S)/Q+"px"}else M.style.height&&(M.style.height="");let c=y?G.top-t-Y-Z.y:G.bottom+Y+Z.y,l=K+w;if(o.overlap!==!0)for(let U of E)U.left<l&&U.right>K&&U.top<c+t&&U.bottom>c&&(c=y?U.top-t-2-Y:U.bottom+Y+2);if(this.position=="absolute"?(M.style.top=(c-I.parent.top)/Q+"px",M.style.left=(K-I.parent.left)/C+"px"):(M.style.top=c/Q+"px",M.style.left=K/C+"px"),L){let U=G.left+(h?Z.x:-Z.x)-(K+14-7);L.style.left=U/C+"px"}o.overlap!==!0&&E.push({left:K,top:c,right:l,bottom:c+t}),M.classList.toggle("cm-tooltip-above",y),M.classList.toggle("cm-tooltip-below",!y),o.positioned&&o.positioned(I.space)}}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 I of this.manager.tooltipViews)I.dom.style.top=gQ}},{eventHandlers:{scroll(){this.maybeMeasure()}}}),Jw=_.baseTheme({".cm-tooltip":{zIndex:100,boxSizing:"border-box"},"&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:"7px",width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),uw={x:0,y:0},aD=r.define({enables:[oi,Jw]}),IQ=r.define();class bD{static create(A){return new bD(A)}constructor(A){this.view=A,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new Di(A,IQ,g=>this.createHostedView(g))}createHostedView(A){let g=A.create(this.view);return g.dom.classList.add("cm-tooltip-section"),this.dom.appendChild(g.dom),this.mounted&&g.mount&&g.mount(this.view),g}mount(A){for(let g of this.manager.tooltipViews)g.mount&&g.mount(A);this.mounted=!0}positioned(A){for(let g of this.manager.tooltipViews)g.positioned&&g.positioned(A)}update(A){this.manager.update(A)}destroy(){var A;for(let g of this.manager.tooltipViews)(A=g.destroy)===null||A===void 0||A.call(g)}}const vw=aD.compute([IQ],I=>{let A=I.facet(IQ).filter(g=>g);return A.length===0?null:{pos:Math.min(...A.map(g=>g.pos)),end:Math.max(...A.filter(g=>g.end!=null).map(g=>g.end)),create:bD.create,above:A[0].above,arrow:A.some(g=>g.arrow)}});class Vw{constructor(A,g,B,C,Q){this.view=A,this.source=g,this.field=B,this.setHover=C,this.hoverTime=Q,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:A.dom,time:0},this.checkHover=this.checkHover.bind(this),A.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),A.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 A=Date.now()-this.lastMove.time;A<this.hoverTime?this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime-A):this.startHover()}startHover(){clearTimeout(this.restartTimeout);let{view:A,lastMove:g}=this,B=A.docView.nearest(g.target);if(!B)return;let C,Q=1;if(B instanceof BI)C=B.posAtStart;else{if(C=A.posAtCoords(g),C==null)return;let N=A.coordsAtPos(C);if(!N||g.y<N.top||g.y>N.bottom||g.x<N.left-A.defaultCharacterWidth||g.x>N.right+A.defaultCharacterWidth)return;let D=A.bidiSpans(A.state.doc.lineAt(C)).find(M=>M.from<=C&&M.to>=C),o=D&&D.dir==wA.RTL?-1:1;Q=g.x<N.left?-o:o}let E=this.source(A,C,Q);if(E!=null&&E.then){let N=this.pending={pos:C};E.then(D=>{this.pending==N&&(this.pending=null,D&&A.dispatch({effects:this.setHover.of(D)}))},D=>Ng(A.state,D,"hover tooltip"))}else E&&A.dispatch({effects:this.setHover.of(E)})}mousemove(A){var g;this.lastMove={x:A.clientX,y:A.clientY,target:A.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let B=this.active;if(B&&!Mi(this.lastMove.target)||this.pending){let{pos:C}=B||this.pending,Q=(g=B==null?void 0:B.end)!==null&&g!==void 0?g:C;(C==Q?this.view.posAtCoords(this.lastMove)!=C:!Xw(this.view,C,Q,A.clientX,A.clientY))&&(this.view.dispatch({effects:this.setHover.of(null)}),this.pending=null)}}mouseleave(A){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1,this.active&&!Mi(A.relatedTarget)&&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 Mi(I){for(let A=I;A;A=A.parentNode)if(A.nodeType==1&&A.classList.contains("cm-tooltip"))return!0;return!1}function Xw(I,A,g,B,C,Q){let E=I.scrollDOM.getBoundingClientRect(),N=I.documentTop+I.documentPadding.top+I.contentHeight;if(E.left>B||E.right<B||E.top>C||Math.min(E.bottom,N)<C)return!1;let D=I.posAtCoords({x:B,y:C},!1);return D>=A&&D<=g}function rw(I,A={}){let g=IA.define(),B=nA.define({create(){return null},update(C,Q){if(C&&(A.hideOnChange&&(Q.docChanged||Q.selection)||A.hideOn&&A.hideOn(Q,C)))return null;if(C&&Q.docChanged){let E=Q.changes.mapPos(C.pos,-1,uA.TrackDel);if(E==null)return null;let N=Object.assign(Object.create(null),C);N.pos=E,C.end!=null&&(N.end=Q.changes.mapPos(C.end)),C=N}for(let E of Q.effects)E.is(g)&&(C=E.value),E.is(fw)&&(C=null);return C},provide:C=>IQ.from(C)});return[B,RA.define(C=>new Vw(C,I,B,g,A.hoverTime||300)),vw]}function Gi(I,A){let g=I.plugin(oi);if(!g)return null;let B=g.manager.tooltips.indexOf(A);return B<0?null:g.manager.tooltipViews[B]}const fw=IA.define(),ii=r.define({combine(I){let A,g;for(let B of I)A=A||B.topContainer,g=g||B.bottomContainer;return{topContainer:A,bottomContainer:g}}});function JB(I,A){let g=I.plugin(Li),B=g?g.specs.indexOf(A):-1;return B>-1?g.panels[B]:null}const Li=RA.fromClass(class{constructor(I){this.input=I.state.facet(uB),this.specs=this.input.filter(g=>g),this.panels=this.specs.map(g=>g(I));let A=I.state.facet(ii);this.top=new BQ(I,!0,A.topContainer),this.bottom=new BQ(I,!1,A.bottomContainer),this.top.sync(this.panels.filter(g=>g.top)),this.bottom.sync(this.panels.filter(g=>!g.top));for(let g of this.panels)g.dom.classList.add("cm-panel"),g.mount&&g.mount()}update(I){let A=I.state.facet(ii);this.top.container!=A.topContainer&&(this.top.sync([]),this.top=new BQ(I.view,!0,A.topContainer)),this.bottom.container!=A.bottomContainer&&(this.bottom.sync([]),this.bottom=new BQ(I.view,!1,A.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let g=I.state.facet(uB);if(g!=this.input){let B=g.filter(D=>D),C=[],Q=[],E=[],N=[];for(let D of B){let o=this.specs.indexOf(D),M;o<0?(M=D(I.view),N.push(M)):(M=this.panels[o],M.update&&M.update(I)),C.push(M),(M.top?Q:E).push(M)}this.specs=B,this.panels=C,this.top.sync(Q),this.bottom.sync(E);for(let D of N)D.dom.classList.add("cm-panel"),D.mount&&D.mount()}else for(let B of this.panels)B.update&&B.update(I)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:I=>_.scrollMargins.of(A=>{let g=A.plugin(I);return g&&{top:g.top.scrollMargin(),bottom:g.bottom.scrollMargin()}})});class BQ{constructor(A,g,B){this.view=A,this.top=g,this.container=B,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(A){for(let g of this.panels)g.destroy&&A.indexOf(g)<0&&g.destroy();this.panels=A,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 g=this.container||this.view.dom;g.insertBefore(this.dom,this.top?g.firstChild:null)}let A=this.dom.firstChild;for(let g of this.panels)if(g.dom.parentNode==this.dom){for(;A!=g.dom;)A=Si(A);A=A.nextSibling}else this.dom.insertBefore(g.dom,A);for(;A;)A=Si(A)}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 A of this.classes.split(" "))A&&this.container.classList.remove(A);for(let A of(this.classes=this.view.themeClasses).split(" "))A&&this.container.classList.add(A)}}}function Si(I){let A=I.nextSibling;return I.remove(),A}const uB=r.define({enables:Li});class DI extends kI{compare(A){return this==A||this.constructor==A.constructor&&this.eq(A)}eq(A){return!1}destroy(A){}}DI.prototype.elementClass="",DI.prototype.toDOM=void 0,DI.prototype.mapMode=uA.TrackBefore,DI.prototype.startSide=DI.prototype.endSide=-1,DI.prototype.point=!0;const CQ=r.define(),QQ=r.define(),dD=r.define({combine:I=>I.some(A=>A)});function Pw(I){let A=[qw];return I&&I.fixed===!1&&A.push(dD.of(!0)),A}const qw=RA.fromClass(class{constructor(I){this.view=I,this.prevViewport=I.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=I.state.facet(QQ).map(A=>new Yi(I,A));for(let A of this.gutters)this.dom.appendChild(A.dom);this.fixed=!I.state.facet(dD),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),I.scrollDOM.insertBefore(this.dom,I.contentDOM)}update(I){if(this.updateGutters(I)){let A=this.prevViewport,g=I.view.viewport,B=Math.min(A.to,g.to)-Math.max(A.from,g.from);this.syncGutters(B<(g.to-g.from)*.8)}I.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight+"px"),this.view.state.facet(dD)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=I.view.viewport}syncGutters(I){let A=this.dom.nextSibling;I&&this.dom.remove();let g=NA.iter(this.view.state.facet(CQ),this.view.viewport.from),B=[],C=this.gutters.map(Q=>new _w(Q,this.view.viewport,-this.view.documentPadding.top));for(let Q of this.view.viewportLineBlocks)if(B.length&&(B=[]),Array.isArray(Q.type)){let E=!0;for(let N of Q.type)if(N.type==yA.Text&&E){HD(g,B,N.from);for(let D of C)D.line(this.view,N,B);E=!1}else if(N.widget)for(let D of C)D.widget(this.view,N)}else if(Q.type==yA.Text){HD(g,B,Q.from);for(let E of C)E.line(this.view,Q,B)}else if(Q.widget)for(let E of C)E.widget(this.view,Q);for(let Q of C)Q.finish();I&&this.view.scrollDOM.insertBefore(this.dom,A)}updateGutters(I){let A=I.startState.facet(QQ),g=I.state.facet(QQ),B=I.docChanged||I.heightChanged||I.viewportChanged||!NA.eq(I.startState.facet(CQ),I.state.facet(CQ),I.view.viewport.from,I.view.viewport.to);if(A==g)for(let C of this.gutters)C.update(I)&&(B=!0);else{B=!0;let C=[];for(let Q of g){let E=A.indexOf(Q);E<0?C.push(new Yi(this.view,Q)):(this.gutters[E].update(I),C.push(this.gutters[E]))}for(let Q of this.gutters)Q.dom.remove(),C.indexOf(Q)<0&&Q.destroy();for(let Q of C)this.dom.appendChild(Q.dom);this.gutters=C}return B}destroy(){for(let I of this.gutters)I.destroy();this.dom.remove()}},{provide:I=>_.scrollMargins.of(A=>{let g=A.plugin(I);return!g||g.gutters.length==0||!g.fixed?null:A.textDirection==wA.LTR?{left:g.dom.offsetWidth*A.scaleX}:{right:g.dom.offsetWidth*A.scaleX}})});function ci(I){return Array.isArray(I)?I:[I]}function HD(I,A,g){for(;I.value&&I.from<=g;)I.from==g&&A.push(I.value),I.next()}class _w{constructor(A,g,B){this.gutter=A,this.height=B,this.i=0,this.cursor=NA.iter(A.markers,g.from)}addElement(A,g,B){let{gutter:C}=this,Q=g.top-this.height;if(this.i==C.elements.length){let E=new yi(A,g.height,Q,B);C.elements.push(E),C.dom.appendChild(E.dom)}else C.elements[this.i].update(A,g.height,Q,B);this.height=g.bottom,this.i++}line(A,g,B){let C=[];HD(this.cursor,C,g.from),B.length&&(C=C.concat(B));let Q=this.gutter.config.lineMarker(A,g,C);Q&&C.unshift(Q);let E=this.gutter;C.length==0&&!E.config.renderEmptyElements||this.addElement(A,g,C)}widget(A,g){let B=this.gutter.config.widgetMarker(A,g.widget,g);B&&this.addElement(A,g,[B])}finish(){let A=this.gutter;for(;A.elements.length>this.i;){let g=A.elements.pop();A.dom.removeChild(g.dom),g.destroy()}}}class Yi{constructor(A,g){this.view=A,this.config=g,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let B in g.domEventHandlers)this.dom.addEventListener(B,C=>{let Q=C.target,E;if(Q!=this.dom&&this.dom.contains(Q)){for(;Q.parentNode!=this.dom;)Q=Q.parentNode;let D=Q.getBoundingClientRect();E=(D.top+D.bottom)/2}else E=C.clientY;let N=A.lineBlockAtHeight(E-A.documentTop);g.domEventHandlers[B](A,N,C)&&C.preventDefault()});this.markers=ci(g.markers(A)),g.initialSpacer&&(this.spacer=new yi(A,0,0,[g.initialSpacer(A)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(A){let g=this.markers;if(this.markers=ci(this.config.markers(A.view)),this.spacer&&this.config.updateSpacer){let C=this.config.updateSpacer(this.spacer.markers[0],A);C!=this.spacer.markers[0]&&this.spacer.update(A.view,0,0,[C])}let B=A.view.viewport;return!NA.eq(this.markers,g,B.from,B.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(A):!1)}destroy(){for(let A of this.elements)A.destroy()}}class yi{constructor(A,g,B,C){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(A,g,B,C)}update(A,g,B,C){this.height!=g&&(this.height=g,this.dom.style.height=g/A.scaleY+"px"),this.above!=B&&(this.dom.style.marginTop=(this.above=B)?B/A.scaleY+"px":""),$w(this.markers,C)||this.setMarkers(A,C)}setMarkers(A,g){let B="cm-gutterElement",C=this.dom.firstChild;for(let Q=0,E=0;;){let N=E,D=Q<g.length?g[Q++]:null,o=!1;if(D){let M=D.elementClass;M&&(B+=" "+M);for(let G=E;G<this.markers.length;G++)if(this.markers[G].compare(D)){N=G,o=!0;break}}else N=this.markers.length;for(;E<N;){let M=this.markers[E++];if(M.toDOM){M.destroy(C);let G=C.nextSibling;C.remove(),C=G}}if(!D)break;D.toDOM&&(o?C=C.nextSibling:this.dom.insertBefore(D.toDOM(A),C)),o&&E++}this.dom.className=B,this.markers=g}destroy(){this.setMarkers(null,[])}}function $w(I,A){if(I.length!=A.length)return!1;for(let g=0;g<I.length;g++)if(!I[g].compare(A[g]))return!1;return!0}const At=r.define(),rI=r.define({combine(I){return Og(I,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(A,g){let B=Object.assign({},A);for(let C in g){let Q=B[C],E=g[C];B[C]=Q?(N,D,o)=>Q(N,D,o)||E(N,D,o):E}return B}})}});class RD extends DI{constructor(A){super(),this.number=A}eq(A){return this.number==A.number}toDOM(){return document.createTextNode(this.number)}}function UD(I,A){return I.state.facet(rI).formatNumber(A,I.state)}const gt=QQ.compute([rI],I=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(A){return A.state.facet(At)},lineMarker(A,g,B){return B.some(C=>C.toDOM)?null:new RD(UD(A,A.state.doc.lineAt(g.from).number))},widgetMarker:()=>null,lineMarkerChange:A=>A.startState.facet(rI)!=A.state.facet(rI),initialSpacer(A){return new RD(UD(A,wi(A.state.doc.lines)))},updateSpacer(A,g){let B=UD(g.view,wi(g.view.state.doc.lines));return B==A.number?A:new RD(B)},domEventHandlers:I.facet(rI).domEventHandlers}));function It(I={}){return[rI.of(I),Pw(),gt]}function wi(I){let A=9;for(;A<I;)A=A*10+9;return A}const Bt=new class extends DI{constructor(){super(...arguments),this.elementClass="cm-activeLineGutter"}},Ct=CQ.compute(["selection"],I=>{let A=[],g=-1;for(let B of I.selection.ranges){let C=I.doc.lineAt(B.head).from;C>g&&(g=C,A.push(Bt.range(C)))}return NA.of(A)});function Qt(){return Ct}const Et=1024;let Dt=0;class TD{constructor(A,g){this.from=A,this.to=g}}class BA{constructor(A={}){this.id=Dt++,this.perNode=!!A.perNode,this.deserialize=A.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(A){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof A!="function"&&(A=VA.match(A)),g=>{let B=A(g);return B===void 0?null:[this,B]}}}BA.closedBy=new BA({deserialize:I=>I.split(" ")}),BA.openedBy=new BA({deserialize:I=>I.split(" ")}),BA.group=new BA({deserialize:I=>I.split(" ")}),BA.contextHash=new BA({perNode:!0}),BA.lookAhead=new BA({perNode:!0}),BA.mounted=new BA({perNode:!0});const Nt=Object.create(null);class VA{constructor(A,g,B,C=0){this.name=A,this.props=g,this.id=B,this.flags=C}static define(A){let g=A.props&&A.props.length?Object.create(null):Nt,B=(A.top?1:0)|(A.skipped?2:0)|(A.error?4:0)|(A.name==null?8:0),C=new VA(A.name||"",g,A.id,B);if(A.props){for(let Q of A.props)if(Array.isArray(Q)||(Q=Q(C)),Q){if(Q[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");g[Q[0].id]=Q[1]}}return C}prop(A){return this.props[A.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(A){if(typeof A=="string"){if(this.name==A)return!0;let g=this.prop(BA.group);return g?g.indexOf(A)>-1:!1}return this.id==A}static match(A){let g=Object.create(null);for(let B in A)for(let C of B.split(" "))g[C]=A[B];return B=>{for(let C=B.prop(BA.group),Q=-1;Q<(C?C.length:0);Q++){let E=g[Q<0?B.name:C[Q]];if(E)return E}}}}VA.none=new VA("",Object.create(null),0,8);class eD{constructor(A){this.types=A;for(let g=0;g<A.length;g++)if(A[g].id!=g)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...A){let g=[];for(let B of this.types){let C=null;for(let Q of A){let E=Q(B);E&&(C||(C=Object.assign({},B.props)),C[E[0].id]=E[1])}g.push(C?new VA(B.name,C,B.id,B.flags):B)}return new eD(g)}}const EQ=new WeakMap,ti=new WeakMap;var jA;(function(I){I[I.ExcludeBuffers=1]="ExcludeBuffers",I[I.IncludeAnonymous=2]="IncludeAnonymous",I[I.IgnoreMounts=4]="IgnoreMounts",I[I.IgnoreOverlays=8]="IgnoreOverlays"})(jA||(jA={}));class tA{constructor(A,g,B,C,Q){if(this.type=A,this.children=g,this.positions=B,this.length=C,this.props=null,Q&&Q.length){this.props=Object.create(null);for(let[E,N]of Q)this.props[typeof E=="number"?E:E.id]=N}}toString(){let A=this.prop(BA.mounted);if(A&&!A.overlay)return A.tree.toString();let g="";for(let B of this.children){let C=B.toString();C&&(g&&(g+=","),g+=C)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(g.length?"("+g+")":""):g}cursor(A=0){return new oQ(this.topNode,A)}cursorAt(A,g=0,B=0){let C=EQ.get(this)||this.topNode,Q=new oQ(C);return Q.moveTo(A,g),EQ.set(this,Q._tree),Q}get topNode(){return new vg(this,0,0,null)}resolve(A,g=0){let B=fI(EQ.get(this)||this.topNode,A,g,!1);return EQ.set(this,B),B}resolveInner(A,g=0){let B=fI(ti.get(this)||this.topNode,A,g,!0);return ti.set(this,B),B}iterate(A){let{enter:g,leave:B,from:C=0,to:Q=this.length}=A,E=A.mode||0,N=(E&jA.IncludeAnonymous)>0;for(let D=this.cursor(E|jA.IncludeAnonymous);;){let o=!1;if(D.from<=Q&&D.to>=C&&(!N&&D.type.isAnonymous||g(D)!==!1)){if(D.firstChild())continue;o=!0}for(;o&&B&&(N||!D.type.isAnonymous)&&B(D),!D.nextSibling();){if(!D.parent())return;o=!0}}}prop(A){return A.perNode?this.props?this.props[A.id]:void 0:this.type.prop(A)}get propValues(){let A=[];if(this.props)for(let g in this.props)A.push([+g,this.props[g]]);return A}balance(A={}){return this.children.length<=8?this:jD(VA.none,this.children,this.positions,0,this.children.length,0,this.length,(g,B,C)=>new tA(this.type,g,B,C,this.propValues),A.makeTree||((g,B,C)=>new tA(VA.none,g,B,C)))}static build(A){return Mt(A)}}tA.empty=new tA(VA.none,[],[],0);class zD{constructor(A,g){this.buffer=A,this.index=g}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 zD(this.buffer,this.index)}}class bI{constructor(A,g,B){this.buffer=A,this.length=g,this.set=B}get type(){return VA.none}toString(){let A=[];for(let g=0;g<this.buffer.length;)A.push(this.childString(g)),g=this.buffer[g+3];return A.join(",")}childString(A){let g=this.buffer[A],B=this.buffer[A+3],C=this.set.types[g],Q=C.name;if(/\W/.test(Q)&&!C.isError&&(Q=JSON.stringify(Q)),A+=4,B==A)return Q;let E=[];for(;A<B;)E.push(this.childString(A)),A=this.buffer[A+3];return Q+"("+E.join(",")+")"}findChild(A,g,B,C,Q){let{buffer:E}=this,N=-1;for(let D=A;D!=g&&!(si(Q,C,E[D+1],E[D+2])&&(N=D,B>0));D=E[D+3]);return N}slice(A,g,B){let C=this.buffer,Q=new Uint16Array(g-A),E=0;for(let N=A,D=0;N<g;){Q[D++]=C[N++],Q[D++]=C[N++]-B;let o=Q[D++]=C[N++]-B;Q[D++]=C[N++]-A,E=Math.max(E,o)}return new bI(Q,E,this.set)}}function si(I,A,g,B){switch(I){case-2:return g<A;case-1:return B>=A&&g<A;case 0:return g<A&&B>A;case 1:return g<=A&&B>A;case 2:return B>A;case 4:return!0}}function Ki(I,A){let g=I.childBefore(A);for(;g;){let B=g.lastChild;if(!B||B.to!=g.to)break;B.type.isError&&B.from==B.to?(I=g,g=B.prevSibling):g=B}return I}function fI(I,A,g,B){for(var C;I.from==I.to||(g<1?I.from>=A:I.from>A)||(g>-1?I.to<=A:I.to<A);){let E=!B&&I instanceof vg&&I.index<0?null:I.parent;if(!E)return I;I=E}let Q=B?0:jA.IgnoreOverlays;if(B)for(let E=I,N=E.parent;N;E=N,N=E.parent)E instanceof vg&&E.index<0&&((C=N.enter(A,g,Q))===null||C===void 0?void 0:C.from)!=E.from&&(I=N);for(;;){let E=I.enter(A,g,Q);if(!E)return I;I=E}}class vg{constructor(A,g,B,C){this._tree=A,this.from=g,this.index=B,this._parent=C}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(A,g,B,C,Q=0){for(let E=this;;){for(let{children:N,positions:D}=E._tree,o=g>0?N.length:-1;A!=o;A+=g){let M=N[A],G=D[A]+E.from;if(si(C,B,G,G+M.length)){if(M instanceof bI){if(Q&jA.ExcludeBuffers)continue;let i=M.findChild(0,M.buffer.length,g,B-G,C);if(i>-1)return new NI(new ot(E,M,A,G),null,i)}else if(Q&jA.IncludeAnonymous||!M.type.isAnonymous||FD(M)){let i;if(!(Q&jA.IgnoreMounts)&&M.props&&(i=M.prop(BA.mounted))&&!i.overlay)return new vg(i.tree,G,A,E);let L=new vg(M,G,A,E);return Q&jA.IncludeAnonymous||!L.type.isAnonymous?L:L.nextChild(g<0?M.children.length-1:0,g,B,C)}}}if(Q&jA.IncludeAnonymous||!E.type.isAnonymous||(E.index>=0?A=E.index+g:A=g<0?-1:E._parent._tree.children.length,E=E._parent,!E))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(A){return this.nextChild(0,1,A,2)}childBefore(A){return this.nextChild(this._tree.children.length-1,-1,A,-2)}enter(A,g,B=0){let C;if(!(B&jA.IgnoreOverlays)&&(C=this._tree.prop(BA.mounted))&&C.overlay){let Q=A-this.from;for(let{from:E,to:N}of C.overlay)if((g>0?E<=Q:E<Q)&&(g<0?N>=Q:N>Q))return new vg(C.tree,C.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,A,g,B)}nextSignificantParent(){let A=this;for(;A.type.isAnonymous&&A._parent;)A=A._parent;return A}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}cursor(A=0){return new oQ(this,A)}get tree(){return this._tree}toTree(){return this._tree}resolve(A,g=0){return fI(this,A,g,!1)}resolveInner(A,g=0){return fI(this,A,g,!0)}enterUnfinishedNodesBefore(A){return Ki(this,A)}getChild(A,g=null,B=null){let C=DQ(this,A,g,B);return C.length?C[0]:null}getChildren(A,g=null,B=null){return DQ(this,A,g,B)}toString(){return this._tree.toString()}get node(){return this}matchContext(A){return NQ(this,A)}}function DQ(I,A,g,B){let C=I.cursor(),Q=[];if(!C.firstChild())return Q;if(g!=null){for(;!C.type.is(g);)if(!C.nextSibling())return Q}for(;;){if(B!=null&&C.type.is(B))return Q;if(C.type.is(A)&&Q.push(C.node),!C.nextSibling())return B==null?Q:[]}}function NQ(I,A,g=A.length-1){for(let B=I.parent;g>=0;B=B.parent){if(!B)return!1;if(!B.type.isAnonymous){if(A[g]&&A[g]!=B.name)return!1;g--}}return!0}class ot{constructor(A,g,B,C){this.parent=A,this.buffer=g,this.index=B,this.start=C}}class NI{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(A,g,B){this.context=A,this._parent=g,this.index=B,this.type=A.buffer.set.types[A.buffer.buffer[B]]}child(A,g,B){let{buffer:C}=this.context,Q=C.findChild(this.index+4,C.buffer[this.index+3],A,g-this.context.start,B);return Q<0?null:new NI(this.context,this,Q)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(A){return this.child(1,A,2)}childBefore(A){return this.child(-1,A,-2)}enter(A,g,B=0){if(B&jA.ExcludeBuffers)return null;let{buffer:C}=this.context,Q=C.findChild(this.index+4,C.buffer[this.index+3],g>0?1:-1,A-this.context.start,g);return Q<0?null:new NI(this.context,this,Q)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(A){return this._parent?null:this.context.parent.nextChild(this.context.index+A,A,0,4)}get nextSibling(){let{buffer:A}=this.context,g=A.buffer[this.index+3];return g<(this._parent?A.buffer[this._parent.index+3]:A.buffer.length)?new NI(this.context,this._parent,g):this.externalSibling(1)}get prevSibling(){let{buffer:A}=this.context,g=this._parent?this._parent.index+4:0;return this.index==g?this.externalSibling(-1):new NI(this.context,this._parent,A.findChild(g,this.index,-1,0,4))}cursor(A=0){return new oQ(this,A)}get tree(){return null}toTree(){let A=[],g=[],{buffer:B}=this.context,C=this.index+4,Q=B.buffer[this.index+3];if(Q>C){let E=B.buffer[this.index+1];A.push(B.slice(C,Q,E)),g.push(0)}return new tA(this.type,A,g,this.to-this.from)}resolve(A,g=0){return fI(this,A,g,!1)}resolveInner(A,g=0){return fI(this,A,g,!0)}enterUnfinishedNodesBefore(A){return Ki(this,A)}toString(){return this.context.buffer.childString(this.index)}getChild(A,g=null,B=null){let C=DQ(this,A,g,B);return C.length?C[0]:null}getChildren(A,g=null,B=null){return DQ(this,A,g,B)}get node(){return this}matchContext(A){return NQ(this,A)}}class oQ{get name(){return this.type.name}constructor(A,g=0){if(this.mode=g,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,A instanceof vg)this.yieldNode(A);else{this._tree=A.context.parent,this.buffer=A.context;for(let B=A._parent;B;B=B._parent)this.stack.unshift(B.index);this.bufferNode=A,this.yieldBuf(A.index)}}yieldNode(A){return A?(this._tree=A,this.type=A.type,this.from=A.from,this.to=A.to,!0):!1}yieldBuf(A,g){this.index=A;let{start:B,buffer:C}=this.buffer;return this.type=g||C.set.types[C.buffer[A]],this.from=B+C.buffer[A+1],this.to=B+C.buffer[A+2],!0}yield(A){return A?A instanceof vg?(this.buffer=null,this.yieldNode(A)):(this.buffer=A.context,this.yieldBuf(A.index,A.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(A,g,B){if(!this.buffer)return this.yield(this._tree.nextChild(A<0?this._tree._tree.children.length-1:0,A,g,B,this.mode));let{buffer:C}=this.buffer,Q=C.findChild(this.index+4,C.buffer[this.index+3],A,g-this.buffer.start,B);return Q<0?!1:(this.stack.push(this.index),this.yieldBuf(Q))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(A){return this.enterChild(1,A,2)}childBefore(A){return this.enterChild(-1,A,-2)}enter(A,g,B=this.mode){return this.buffer?B&jA.ExcludeBuffers?!1:this.enterChild(1,A,g):this.yield(this._tree.enter(A,g,B))}parent(){if(!this.buffer)return this.yieldNode(this.mode&jA.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let A=this.mode&jA.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(A)}sibling(A){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+A,A,0,4,this.mode)):!1;let{buffer:g}=this.buffer,B=this.stack.length-1;if(A<0){let C=B<0?0:this.stack[B]+4;if(this.index!=C)return this.yieldBuf(g.findChild(C,this.index,-1,0,4))}else{let C=g.buffer[this.index+3];if(C<(B<0?g.buffer.length:g.buffer[this.stack[B]+3]))return this.yieldBuf(C)}return B<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+A,A,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(A){let g,B,{buffer:C}=this;if(C){if(A>0){if(this.index<C.buffer.buffer.length)return!1}else for(let Q=0;Q<this.index;Q++)if(C.buffer.buffer[Q+3]<this.index)return!1;({index:g,parent:B}=C)}else({index:g,_parent:B}=this._tree);for(;B;{index:g,_parent:B}=B)if(g>-1)for(let Q=g+A,E=A<0?-1:B._tree.children.length;Q!=E;Q+=A){let N=B._tree.children[Q];if(this.mode&jA.IncludeAnonymous||N instanceof bI||!N.type.isAnonymous||FD(N))return!1}return!0}move(A,g){if(g&&this.enterChild(A,0,4))return!0;for(;;){if(this.sibling(A))return!0;if(this.atLastNode(A)||!this.parent())return!1}}next(A=!0){return this.move(1,A)}prev(A=!0){return this.move(-1,A)}moveTo(A,g=0){for(;(this.from==this.to||(g<1?this.from>=A:this.from>A)||(g>-1?this.to<=A:this.to<A))&&this.parent(););for(;this.enterChild(1,A,g););return this}get node(){if(!this.buffer)return this._tree;let A=this.bufferNode,g=null,B=0;if(A&&A.context==this.buffer)A:for(let C=this.index,Q=this.stack.length;Q>=0;){for(let E=A;E;E=E._parent)if(E.index==C){if(C==this.index)return E;g=E,B=Q+1;break A}C=this.stack[--Q]}for(let C=B;C<this.stack.length;C++)g=new NI(this.buffer,g,this.stack[C]);return this.bufferNode=new NI(this.buffer,g,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(A,g){for(let B=0;;){let C=!1;if(this.type.isAnonymous||A(this)!==!1){if(this.firstChild()){B++;continue}this.type.isAnonymous||(C=!0)}for(;C&&g&&g(this),C=this.type.isAnonymous,!this.nextSibling();){if(!B)return;this.parent(),B--,C=!0}}}matchContext(A){if(!this.buffer)return NQ(this.node,A);let{buffer:g}=this.buffer,{types:B}=g.set;for(let C=A.length-1,Q=this.stack.length-1;C>=0;Q--){if(Q<0)return NQ(this.node,A,C);let E=B[g.buffer[this.stack[Q]]];if(!E.isAnonymous){if(A[C]&&A[C]!=E.name)return!1;C--}}return!0}}function FD(I){return I.children.some(A=>A instanceof bI||!A.type.isAnonymous||FD(A))}function Mt(I){var A;let{buffer:g,nodeSet:B,maxBufferLength:C=Et,reused:Q=[],minRepeatType:E=B.types.length}=I,N=Array.isArray(g)?new zD(g,g.length):g,D=B.types,o=0,M=0;function G(y,S,c,l,U){let{id:H,start:b,end:s,size:k}=N,a=M;for(;k<0;)if(N.next(),k==-1){let F=Q[H];c.push(F),l.push(b-y);return}else if(k==-3){o=H;return}else if(k==-4){M=H;return}else throw new RangeError(`Unrecognized record size: ${k}`);let d=D[H],R,T,e=b-y;if(s-b<=C&&(T=w(N.pos-S,U))){let F=new Uint16Array(T.size-T.skip),p=N.pos-T.size,z=F.length;for(;N.pos>p;)z=t(T.start,F,z);R=new bI(F,s-T.start,B),e=T.start-y}else{let F=N.pos-k;N.next();let p=[],z=[],x=H>=E?H:-1,v=0,q=s;for(;N.pos>F;)x>=0&&N.id==x&&N.size>=0?(N.end<=q-C&&(L(p,z,b,v,N.end,q,x,a),v=p.length,q=N.end),N.next()):G(b,F,p,z,x);if(x>=0&&v>0&&v<p.length&&L(p,z,b,v,b,q,x,a),p.reverse(),z.reverse(),x>-1&&v>0){let J=i(d);R=jD(d,p,z,0,p.length,0,s-b,J,J)}else R=Y(d,p,z,s-b,a-s)}c.push(R),l.push(e)}function i(y){return(S,c,l)=>{let U=0,H=S.length-1,b,s;if(H>=0&&(b=S[H])instanceof tA){if(!H&&b.type==y&&b.length==l)return b;(s=b.prop(BA.lookAhead))&&(U=c[H]+b.length+s)}return Y(y,S,c,l,U)}}function L(y,S,c,l,U,H,b,s){let k=[],a=[];for(;y.length>l;)k.push(y.pop()),a.push(S.pop()+c-U);y.push(Y(B.types[b],k,a,H-U,s-H)),S.push(U-c)}function Y(y,S,c,l,U=0,H){if(o){let b=[BA.contextHash,o];H=H?[b].concat(H):[b]}if(U>25){let b=[BA.lookAhead,U];H=H?[b].concat(H):[b]}return new tA(y,S,c,l,H)}function w(y,S){let c=N.fork(),l=0,U=0,H=0,b=c.end-C,s={size:0,start:0,skip:0};A:for(let k=c.pos-y;c.pos>k;){let a=c.size;if(c.id==S&&a>=0){s.size=l,s.start=U,s.skip=H,H+=4,l+=4,c.next();continue}let d=c.pos-a;if(a<0||d<k||c.start<b)break;let R=c.id>=E?4:0,T=c.start;for(c.next();c.pos>d;){if(c.size<0)if(c.size==-3)R+=4;else break A;else c.id>=E&&(R+=4);c.next()}U=T,l+=a,H+=R}return(S<0||l==y)&&(s.size=l,s.start=U,s.skip=H),s.size>4?s:void 0}function t(y,S,c){let{id:l,start:U,end:H,size:b}=N;if(N.next(),b>=0&&l<E){let s=c;if(b>4){let k=N.pos-(b-4);for(;N.pos>k;)c=t(y,S,c)}S[--c]=s,S[--c]=H-y,S[--c]=U-y,S[--c]=l}else b==-3?o=l:b==-4&&(M=l);return c}let Z=[],h=[];for(;N.pos>0;)G(I.start||0,I.bufferStart||0,Z,h,-1);let K=(A=I.length)!==null&&A!==void 0?A:Z.length?h[0]+Z[0].length:0;return new tA(D[I.topID],Z.reverse(),h.reverse(),K)}const li=new WeakMap;function MQ(I,A){if(!I.isAnonymous||A instanceof bI||A.type!=I)return 1;let g=li.get(A);if(g==null){g=1;for(let B of A.children){if(B.type!=I||!(B instanceof tA)){g=1;break}g+=MQ(I,B)}li.set(A,g)}return g}function jD(I,A,g,B,C,Q,E,N,D){let o=0;for(let Y=B;Y<C;Y++)o+=MQ(I,A[Y]);let M=Math.ceil(o*1.5/8),G=[],i=[];function L(Y,w,t,Z,h){for(let K=t;K<Z;){let y=K,S=w[K],c=MQ(I,Y[K]);for(K++;K<Z;K++){let l=MQ(I,Y[K]);if(c+l>=M)break;c+=l}if(K==y+1){if(c>M){let l=Y[y];L(l.children,l.positions,0,l.children.length,w[y]+h);continue}G.push(Y[y])}else{let l=w[K-1]+Y[K-1].length-S;G.push(jD(I,Y,w,y,K,S,l,null,D))}i.push(S+h-Q)}}return L(A,g,B,C,0),(N||D)(G,i,E)}class dI{constructor(A,g,B,C,Q=!1,E=!1){this.from=A,this.to=g,this.tree=B,this.offset=C,this.open=(Q?1:0)|(E?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(A,g=[],B=!1){let C=[new dI(0,A.length,A,0,!1,B)];for(let Q of g)Q.to>A.length&&C.push(Q);return C}static applyChanges(A,g,B=128){if(!g.length)return A;let C=[],Q=1,E=A.length?A[0]:null;for(let N=0,D=0,o=0;;N++){let M=N<g.length?g[N]:null,G=M?M.fromA:1e9;if(G-D>=B)for(;E&&E.from<G;){let i=E;if(D>=i.from||G<=i.to||o){let L=Math.max(i.from,D)-o,Y=Math.min(i.to,G)-o;i=L>=Y?null:new dI(L,Y,i.tree,i.offset+o,N>0,!!M)}if(i&&C.push(i),E.to>G)break;E=Q<A.length?A[Q++]:null}if(!M)break;D=M.toA,o=M.toA-M.toB}return C}}class ki{startParse(A,g,B){return typeof A=="string"&&(A=new Gt(A)),B=B?B.length?B.map(C=>new TD(C.from,C.to)):[new TD(0,0)]:[new TD(0,A.length)],this.createParse(A,g||[],B)}parse(A,g,B){let C=this.startParse(A,g,B);for(;;){let Q=C.advance();if(Q)return Q}}}class Gt{constructor(A){this.string=A}get length(){return this.string.length}chunk(A){return this.string.slice(A)}get lineChunks(){return!1}read(A,g){return this.string.slice(A,g)}}new BA({perNode:!0});let it=0;class bg{constructor(A,g,B){this.set=A,this.base=g,this.modified=B,this.id=it++}static define(A){if(A!=null&&A.base)throw new Error("Can not derive from a modified tag");let g=new bg([],null,[]);if(g.set.push(g),A)for(let B of A.set)g.set.push(B);return g}static defineModifier(){let A=new GQ;return g=>g.modified.indexOf(A)>-1?g:GQ.get(g.base||g,g.modified.concat(A).sort((B,C)=>B.id-C.id))}}let Lt=0;class GQ{constructor(){this.instances=[],this.id=Lt++}static get(A,g){if(!g.length)return A;let B=g[0].instances.find(N=>N.base==A&&St(g,N.modified));if(B)return B;let C=[],Q=new bg(C,A,g);for(let N of g)N.instances.push(Q);let E=ct(g);for(let N of A.set)if(!N.modified.length)for(let D of E)C.push(GQ.get(N,D));return Q}}function St(I,A){return I.length==A.length&&I.every((g,B)=>g==A[B])}function ct(I){let A=[[]];for(let g=0;g<I.length;g++)for(let B=0,C=A.length;B<C;B++)A.push(A[B].concat(I[g]));return A.sort((g,B)=>B.length-g.length)}function Yt(I){let A=Object.create(null);for(let g in I){let B=I[g];Array.isArray(B)||(B=[B]);for(let C of g.split(" "))if(C){let Q=[],E=2,N=C;for(let G=0;;){if(N=="..."&&G>0&&G+3==C.length){E=1;break}let i=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(N);if(!i)throw new RangeError("Invalid path: "+C);if(Q.push(i[0]=="*"?"":i[0][0]=='"'?JSON.parse(i[0]):i[0]),G+=i[0].length,G==C.length)break;let L=C[G++];if(G==C.length&&L=="!"){E=0;break}if(L!="/")throw new RangeError("Invalid path: "+C);N=C.slice(G)}let D=Q.length-1,o=Q[D];if(!o)throw new RangeError("Invalid path: "+C);let M=new iQ(B,E,D>0?Q.slice(0,D):null);A[o]=M.sort(A[o])}}return Zi.add(A)}const Zi=new BA;class iQ{constructor(A,g,B,C){this.tags=A,this.mode=g,this.context=B,this.next=C}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(A){return!A||A.depth<this.depth?(this.next=A,this):(A.next=this.sort(A.next),A)}get depth(){return this.context?this.context.length:0}}iQ.empty=new iQ([],2,null);function hi(I,A){let g=Object.create(null);for(let Q of I)if(!Array.isArray(Q.tag))g[Q.tag.id]=Q.class;else for(let E of Q.tag)g[E.id]=Q.class;let{scope:B,all:C=null}=A||{};return{style:Q=>{let E=C;for(let N of Q)for(let D of N.set){let o=g[D.id];if(o){E=E?E+" "+o:o;break}}return E},scope:B}}function yt(I,A){let g=null;for(let B of I){let C=B.style(A);C&&(g=g?g+" "+C:C)}return g}function wt(I,A,g,B=0,C=I.length){let Q=new tt(B,Array.isArray(A)?A:[A],g);Q.highlightRange(I.cursor(),B,C,"",Q.highlighters),Q.flush(C)}class tt{constructor(A,g,B){this.at=A,this.highlighters=g,this.span=B,this.class=""}startSpan(A,g){g!=this.class&&(this.flush(A),A>this.at&&(this.at=A),this.class=g)}flush(A){A>this.at&&this.class&&this.span(this.at,A,this.class)}highlightRange(A,g,B,C,Q){let{type:E,from:N,to:D}=A;if(N>=B||D<=g)return;E.isTop&&(Q=this.highlighters.filter(L=>!L.scope||L.scope(E)));let o=C,M=st(A)||iQ.empty,G=yt(Q,M.tags);if(G&&(o&&(o+=" "),o+=G,M.mode==1&&(C+=(C?" ":"")+G)),this.startSpan(Math.max(g,N),o),M.opaque)return;let i=A.tree&&A.tree.prop(BA.mounted);if(i&&i.overlay){let L=A.node.enter(i.overlay[0].from+N,1),Y=this.highlighters.filter(t=>!t.scope||t.scope(i.tree.type)),w=A.firstChild();for(let t=0,Z=N;;t++){let h=t<i.overlay.length?i.overlay[t]:null,K=h?h.from+N:D,y=Math.max(g,Z),S=Math.min(B,K);if(y<S&&w)for(;A.from<S&&(this.highlightRange(A,y,S,C,Q),this.startSpan(Math.min(S,A.to),o),!(A.to>=K||!A.nextSibling())););if(!h||K>B)break;Z=h.to+N,Z>g&&(this.highlightRange(L.cursor(),Math.max(g,h.from+N),Math.min(B,Z),"",Y),this.startSpan(Math.min(B,Z),o))}w&&A.parent()}else if(A.firstChild()){i&&(C="");do if(!(A.to<=g)){if(A.from>=B)break;this.highlightRange(A,g,B,C,Q),this.startSpan(Math.min(B,A.to),o)}while(A.nextSibling());A.parent()}}}function st(I){let A=I.type.prop(Zi);for(;A&&A.context&&!I.matchContext(A.context);)A=A.next;return A||null}const O=bg.define,LQ=O(),oI=O(),ai=O(oI),bi=O(oI),MI=O(),SQ=O(MI),mD=O(MI),dg=O(),HI=O(dg),Hg=O(),Rg=O(),pD=O(),vB=O(pD),cQ=O(),V={comment:LQ,lineComment:O(LQ),blockComment:O(LQ),docComment:O(LQ),name:oI,variableName:O(oI),typeName:ai,tagName:O(ai),propertyName:bi,attributeName:O(bi),className:O(oI),labelName:O(oI),namespace:O(oI),macroName:O(oI),literal:MI,string:SQ,docString:O(SQ),character:O(SQ),attributeValue:O(SQ),number:mD,integer:O(mD),float:O(mD),bool:O(MI),regexp:O(MI),escape:O(MI),color:O(MI),url:O(MI),keyword:Hg,self:O(Hg),null:O(Hg),atom:O(Hg),unit:O(Hg),modifier:O(Hg),operatorKeyword:O(Hg),controlKeyword:O(Hg),definitionKeyword:O(Hg),moduleKeyword:O(Hg),operator:Rg,derefOperator:O(Rg),arithmeticOperator:O(Rg),logicOperator:O(Rg),bitwiseOperator:O(Rg),compareOperator:O(Rg),updateOperator:O(Rg),definitionOperator:O(Rg),typeOperator:O(Rg),controlOperator:O(Rg),punctuation:pD,separator:O(pD),bracket:vB,angleBracket:O(vB),squareBracket:O(vB),paren:O(vB),brace:O(vB),content:dg,heading:HI,heading1:O(HI),heading2:O(HI),heading3:O(HI),heading4:O(HI),heading5:O(HI),heading6:O(HI),contentSeparator:O(dg),list:O(dg),quote:O(dg),emphasis:O(dg),strong:O(dg),link:O(dg),monospace:O(dg),strikethrough:O(dg),inserted:O(),deleted:O(),changed:O(),invalid:O(),meta:cQ,documentMeta:O(cQ),annotation:O(cQ),processingInstruction:O(cQ),definition:bg.defineModifier(),constant:bg.defineModifier(),function:bg.defineModifier(),standard:bg.defineModifier(),local:bg.defineModifier(),special:bg.defineModifier()};hi([{tag:V.link,class:"tok-link"},{tag:V.heading,class:"tok-heading"},{tag:V.emphasis,class:"tok-emphasis"},{tag:V.strong,class:"tok-strong"},{tag:V.keyword,class:"tok-keyword"},{tag:V.atom,class:"tok-atom"},{tag:V.bool,class:"tok-bool"},{tag:V.url,class:"tok-url"},{tag:V.labelName,class:"tok-labelName"},{tag:V.inserted,class:"tok-inserted"},{tag:V.deleted,class:"tok-deleted"},{tag:V.literal,class:"tok-literal"},{tag:V.string,class:"tok-string"},{tag:V.number,class:"tok-number"},{tag:[V.regexp,V.escape,V.special(V.string)],class:"tok-string2"},{tag:V.variableName,class:"tok-variableName"},{tag:V.local(V.variableName),class:"tok-variableName tok-local"},{tag:V.definition(V.variableName),class:"tok-variableName tok-definition"},{tag:V.special(V.variableName),class:"tok-variableName2"},{tag:V.definition(V.propertyName),class:"tok-propertyName tok-definition"},{tag:V.typeName,class:"tok-typeName"},{tag:V.namespace,class:"tok-namespace"},{tag:V.className,class:"tok-className"},{tag:V.macroName,class:"tok-macroName"},{tag:V.propertyName,class:"tok-propertyName"},{tag:V.operator,class:"tok-operator"},{tag:V.comment,class:"tok-comment"},{tag:V.meta,class:"tok-meta"},{tag:V.invalid,class:"tok-invalid"},{tag:V.punctuation,class:"tok-punctuation"}]);var xD;const PI=new BA;function Kt(I){return r.define({combine:I?A=>A.concat(I):void 0})}const lt=new BA;class wg{constructor(A,g,B=[],C=""){this.data=A,this.name=C,CA.prototype.hasOwnProperty("tree")||Object.defineProperty(CA.prototype,"tree",{get(){return XA(this)}}),this.parser=g,this.extension=[$I.of(this),CA.languageData.of((Q,E,N)=>{let D=di(Q,E,N),o=D.type.prop(PI);if(!o)return[];let M=Q.facet(o),G=D.type.prop(lt);if(G){let i=D.resolve(E-D.from,N);for(let L of G)if(L.test(i,Q)){let Y=Q.facet(L.facet);return L.type=="replace"?Y:Y.concat(M)}}return M})].concat(B)}isActiveAt(A,g,B=-1){return di(A,g,B).type.prop(PI)==this.data}findRegions(A){let g=A.facet($I);if((g==null?void 0:g.data)==this.data)return[{from:0,to:A.doc.length}];if(!g||!g.allowsNesting)return[];let B=[],C=(Q,E)=>{if(Q.prop(PI)==this.data){B.push({from:E,to:E+Q.length});return}let N=Q.prop(BA.mounted);if(N){if(N.tree.prop(PI)==this.data){if(N.overlay)for(let D of N.overlay)B.push({from:D.from+E,to:D.to+E});else B.push({from:E,to:E+Q.length});return}else if(N.overlay){let D=B.length;if(C(N.tree,N.overlay[0].from+E),B.length>D)return}}for(let D=0;D<Q.children.length;D++){let o=Q.children[D];o instanceof tA&&C(o,Q.positions[D]+E)}};return C(XA(A),0),B}get allowsNesting(){return!0}}wg.setState=IA.define();function di(I,A,g){let B=I.facet($I),C=XA(I).topNode;if(!B||B.allowsNesting)for(let Q=C;Q;Q=Q.enter(A,g,jA.ExcludeBuffers))Q.type.isTop&&(C=Q);return C}function XA(I){let A=I.field(wg.state,!1);return A?A.tree:tA.empty}class kt{constructor(A){this.doc=A,this.cursorPos=0,this.string="",this.cursor=A.iter()}get length(){return this.doc.length}syncTo(A){return this.string=this.cursor.next(A-this.cursorPos).value,this.cursorPos=A+this.string.length,this.cursorPos-this.string.length}chunk(A){return this.syncTo(A),this.string}get lineChunks(){return!0}read(A,g){let B=this.cursorPos-this.string.length;return A<B||g>=this.cursorPos?this.doc.sliceString(A,g):this.string.slice(A-B,g-B)}}let VB=null;class qI{constructor(A,g,B=[],C,Q,E,N,D){this.parser=A,this.state=g,this.fragments=B,this.tree=C,this.treeLen=Q,this.viewport=E,this.skipped=N,this.scheduleOn=D,this.parse=null,this.tempSkipped=[]}static create(A,g,B){return new qI(A,g,[],tA.empty,0,B,[],null)}startParse(){return this.parser.startParse(new kt(this.state.doc),this.fragments)}work(A,g){return g!=null&&g>=this.state.doc.length&&(g=void 0),this.tree!=tA.empty&&this.isDone(g??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var B;if(typeof A=="number"){let C=Date.now()+A;A=()=>Date.now()>C}for(this.parse||(this.parse=this.startParse()),g!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>g)&&g<this.state.doc.length&&this.parse.stopAt(g);;){let C=this.parse.advance();if(C)if(this.fragments=this.withoutTempSkipped(dI.addTree(C,this.fragments,this.parse.stoppedAt!=null)),this.treeLen=(B=this.parse.stoppedAt)!==null&&B!==void 0?B:this.state.doc.length,this.tree=C,this.parse=null,this.treeLen<(g??this.state.doc.length))this.parse=this.startParse();else return!0;if(A())return!1}})}takeTree(){let A,g;this.parse&&(A=this.parse.parsedPos)>=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>A)&&this.parse.stopAt(A),this.withContext(()=>{for(;!(g=this.parse.advance()););}),this.treeLen=A,this.tree=g,this.fragments=this.withoutTempSkipped(dI.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(A){let g=VB;VB=this;try{return A()}finally{VB=g}}withoutTempSkipped(A){for(let g;g=this.tempSkipped.pop();)A=Hi(A,g.from,g.to);return A}changes(A,g){let{fragments:B,tree:C,treeLen:Q,viewport:E,skipped:N}=this;if(this.takeTree(),!A.empty){let D=[];if(A.iterChangedRanges((o,M,G,i)=>D.push({fromA:o,toA:M,fromB:G,toB:i})),B=dI.applyChanges(B,D),C=tA.empty,Q=0,E={from:A.mapPos(E.from,-1),to:A.mapPos(E.to,1)},this.skipped.length){N=[];for(let o of this.skipped){let M=A.mapPos(o.from,1),G=A.mapPos(o.to,-1);M<G&&N.push({from:M,to:G})}}}return new qI(this.parser,g,B,C,Q,E,N,this.scheduleOn)}updateViewport(A){if(this.viewport.from==A.from&&this.viewport.to==A.to)return!1;this.viewport=A;let g=this.skipped.length;for(let B=0;B<this.skipped.length;B++){let{from:C,to:Q}=this.skipped[B];C<A.to&&Q>A.from&&(this.fragments=Hi(this.fragments,C,Q),this.skipped.splice(B--,1))}return this.skipped.length>=g?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(A,g){this.skipped.push({from:A,to:g})}static getSkippingParser(A){return new class extends ki{createParse(g,B,C){let Q=C[0].from,E=C[C.length-1].to;return{parsedPos:Q,advance(){let D=VB;if(D){for(let o of C)D.tempSkipped.push(o);A&&(D.scheduleOn=D.scheduleOn?Promise.all([D.scheduleOn,A]):A)}return this.parsedPos=E,new tA(VA.none,[],[],E-Q)},stoppedAt:null,stopAt(){}}}}}isDone(A){A=Math.min(A,this.state.doc.length);let g=this.fragments;return this.treeLen>=A&&g.length&&g[0].from==0&&g[0].to>=A}static get(){return VB}}function Hi(I,A,g){return dI.applyChanges(I,[{fromA:A,toA:g,fromB:A,toB:g}])}class _I{constructor(A){this.context=A,this.tree=A.tree}apply(A){if(!A.docChanged&&this.tree==this.context.tree)return this;let g=this.context.changes(A.changes,A.state),B=this.context.treeLen==A.startState.doc.length?void 0:Math.max(A.changes.mapPos(this.context.treeLen),g.viewport.to);return g.work(20,B)||g.takeTree(),new _I(g)}static init(A){let g=Math.min(3e3,A.doc.length),B=qI.create(A.facet($I).parser,A,{from:0,to:g});return B.work(20,g)||B.takeTree(),new _I(B)}}wg.state=nA.define({create:_I.init,update(I,A){for(let g of A.effects)if(g.is(wg.setState))return g.value;return A.startState.facet($I)!=A.state.facet($I)?_I.init(A.state):I.apply(A)}});let Ri=I=>{let A=setTimeout(()=>I(),500);return()=>clearTimeout(A)};typeof requestIdleCallback<"u"&&(Ri=I=>{let A=-1,g=setTimeout(()=>{A=requestIdleCallback(I,{timeout:500-100})},100);return()=>A<0?clearTimeout(g):cancelIdleCallback(A)});const nD=typeof navigator<"u"&&(!((xD=navigator.scheduling)===null||xD===void 0)&&xD.isInputPending)?()=>navigator.scheduling.isInputPending():null,Zt=RA.fromClass(class{constructor(A){this.view=A,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(A){let g=this.view.state.field(wg.state).context;(g.updateViewport(A.view.viewport)||this.view.viewport.to>g.treeLen)&&this.scheduleWork(),A.docChanged&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(g)}scheduleWork(){if(this.working)return;let{state:A}=this.view,g=A.field(wg.state);(g.tree!=g.context.tree||!g.context.isDone(A.doc.length))&&(this.working=Ri(this.work))}work(A){this.working=null;let g=Date.now();if(this.chunkEnd<g&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=g+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:B,viewport:{to:C}}=this.view,Q=B.field(wg.state);if(Q.tree==Q.context.tree&&Q.context.isDone(C+1e5))return;let E=Date.now()+Math.min(this.chunkBudget,100,A&&!nD?Math.max(25,A.timeRemaining()-5):1e9),N=Q.context.treeLen<C&&B.doc.length>C+1e3,D=Q.context.work(()=>nD&&nD()||Date.now()>E,C+(N?0:1e5));this.chunkBudget-=Date.now()-g,(D||this.chunkBudget<=0)&&(Q.context.takeTree(),this.view.dispatch({effects:wg.setState.of(new _I(Q.context))})),this.chunkBudget>0&&!(D&&!N)&&this.scheduleWork(),this.checkAsyncSchedule(Q.context)}checkAsyncSchedule(A){A.scheduleOn&&(this.workScheduled++,A.scheduleOn.then(()=>this.scheduleWork()).catch(g=>Ng(this.view.state,g)).then(()=>this.workScheduled--),A.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),$I=r.define({combine(I){return I.length?I[0]:null},enables:I=>[wg.state,Zt,_.contentAttributes.compute([I],A=>{let g=A.facet(I);return g&&g.name?{"data-language":g.name}:{}})]}),Ui=r.define(),WD=r.define({combine:I=>{if(!I.length)return" ";let A=I[0];if(!A||/\S/.test(A)||Array.from(A).some(g=>g!=A[0]))throw new Error("Invalid indent unit: "+JSON.stringify(I[0]));return A}});function RI(I){let A=I.facet(WD);return A.charCodeAt(0)==9?I.tabSize*A.length:A.length}function XB(I,A){let g="",B=I.tabSize,C=I.facet(WD)[0];if(C==" "){for(;A>=B;)g+=" ",A-=B;C=" "}for(let Q=0;Q<A;Q++)g+=C;return g}function OD(I,A){I instanceof CA&&(I=new YQ(I));for(let B of I.state.facet(Ui)){let C=B(I,A);if(C!==void 0)return C}let g=XA(I.state);return g.length>=A?at(I,g,A):null}class YQ{constructor(A,g={}){this.state=A,this.options=g,this.unit=RI(A)}lineAt(A,g=1){let B=this.state.doc.lineAt(A),{simulateBreak:C,simulateDoubleBreak:Q}=this.options;return C!=null&&C>=B.from&&C<=B.to?Q&&C==A?{text:"",from:A}:(g<0?C<A:C<=A)?{text:B.text.slice(C-B.from),from:C}:{text:B.text.slice(0,C-B.from),from:B.from}:B}textAfterPos(A,g=1){if(this.options.simulateDoubleBreak&&A==this.options.simulateBreak)return"";let{text:B,from:C}=this.lineAt(A,g);return B.slice(A-C,Math.min(B.length,A+100-C))}column(A,g=1){let{text:B,from:C}=this.lineAt(A,g),Q=this.countColumn(B,A-C),E=this.options.overrideIndentation?this.options.overrideIndentation(C):-1;return E>-1&&(Q+=E-this.countColumn(B,B.search(/\S|$/))),Q}countColumn(A,g=A.length){return JI(A,this.state.tabSize,g)}lineIndent(A,g=1){let{text:B,from:C}=this.lineAt(A,g),Q=this.options.overrideIndentation;if(Q){let E=Q(C);if(E>-1)return E}return this.countColumn(B,B.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const ht=new BA;function at(I,A,g){return Ti(A.resolveInner(g).enterUnfinishedNodesBefore(g),g,I)}function bt(I){return I.pos==I.options.simulateBreak&&I.options.simulateDoubleBreak}function dt(I){let A=I.type.prop(ht);if(A)return A;let g=I.firstChild,B;if(g&&(B=g.type.prop(BA.closedBy))){let C=I.lastChild,Q=C&&B.indexOf(C.name)>-1;return E=>Tt(E,!0,1,void 0,Q&&!bt(E)?C.from:void 0)}return I.parent==null?Ht:null}function Ti(I,A,g){for(;I;I=I.parent){let B=dt(I);if(B)return B(JD.create(g,A,I))}return null}function Ht(){return 0}class JD extends YQ{constructor(A,g,B){super(A.state,A.options),this.base=A,this.pos=g,this.node=B}static create(A,g,B){return new JD(A,g,B)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(A){let g=this.state.doc.lineAt(A.from);for(;;){let B=A.resolve(g.from);for(;B.parent&&B.parent.from==B.from;)B=B.parent;if(Rt(B,A))break;g=this.state.doc.lineAt(B.from)}return this.lineIndent(g.from)}continue(){let A=this.node.parent;return A?Ti(A,this.pos,this.base):0}}function Rt(I,A){for(let g=A;g;g=g.parent)if(I==g)return!0;return!1}function Ut(I){let A=I.node,g=A.childAfter(A.from),B=A.lastChild;if(!g)return null;let C=I.options.simulateBreak,Q=I.state.doc.lineAt(g.from),E=C==null||C<=Q.from?Q.to:Math.min(Q.to,C);for(let N=g.to;;){let D=A.childAfter(N);if(!D||D==B)return null;if(!D.type.isSkipped)return D.from<E?g:null;N=D.to}}function Tt(I,A,g,B,C){let Q=I.textAfter,E=Q.match(/^\s*/)[0].length,N=B&&Q.slice(E,E+B.length)==B||C==I.pos+E,D=A?Ut(I):null;return D?N?I.column(D.from):I.column(D.to):I.baseIndent+(N?0:I.unit*g)}const et=200;function zt(){return CA.transactionFilter.of(I=>{if(!I.docChanged||!I.isUserEvent("input.type")&&!I.isUserEvent("input.complete"))return I;let A=I.startState.languageDataAt("indentOnInput",I.startState.selection.main.head);if(!A.length)return I;let g=I.newDoc,{head:B}=I.newSelection.main,C=g.lineAt(B);if(B>C.from+et)return I;let Q=g.sliceString(C.from,B);if(!A.some(o=>o.test(Q)))return I;let{state:E}=I,N=-1,D=[];for(let{head:o}of E.selection.ranges){let M=E.doc.lineAt(o);if(M.from==N)continue;N=M.from;let G=OD(E,M.from);if(G==null)continue;let i=/^\s*/.exec(M.text)[0],L=XB(E,G);i!=L&&D.push({from:M.from,to:M.from+i.length,insert:L})}return D.length?[I,{changes:D,sequential:!0}]:I})}class yQ{constructor(A,g){this.specs=A;let B;function C(N){let D=AI.newName();return(B||(B=Object.create(null)))["."+D]=N,D}const Q=typeof g.all=="string"?g.all:g.all?C(g.all):void 0,E=g.scope;this.scope=E instanceof wg?N=>N.prop(PI)==E.data:E?N=>N==E:void 0,this.style=hi(A.map(N=>({tag:N.tag,class:N.class||C(Object.assign({},N,{tag:null}))})),{all:Q}).style,this.module=B?new AI(B):null,this.themeType=g.themeType}static define(A,g){return new yQ(A,g||{})}}const uD=r.define(),ei=r.define({combine(I){return I.length?[I[0]]:null}});function vD(I){let A=I.facet(uD);return A.length?A:I.facet(ei)}function Ft(I,A){let g=[mt],B;return I instanceof yQ&&(I.module&&g.push(_.styleModule.of(I.module)),B=I.themeType),A!=null&&A.fallback?g.push(ei.of(I)):B?g.push(uD.computeN([_.darkTheme],C=>C.facet(_.darkTheme)==(B=="dark")?[I]:[])):g.push(uD.of(I)),g}class jt{constructor(A){this.markCache=Object.create(null),this.tree=XA(A.state),this.decorations=this.buildDeco(A,vD(A.state))}update(A){let g=XA(A.state),B=vD(A.state),C=B!=vD(A.startState);g.length<A.view.viewport.to&&!C&&g.type==this.tree.type?this.decorations=this.decorations.map(A.changes):(g!=this.tree||A.viewportChanged||C)&&(this.tree=g,this.decorations=this.buildDeco(A.view,B))}buildDeco(A,g){if(!g||!this.tree.length)return AA.none;let B=new ZI;for(let{from:C,to:Q}of A.visibleRanges)wt(this.tree,g,(E,N,D)=>{B.add(E,N,this.markCache[D]||(this.markCache[D]=AA.mark({class:D})))},C,Q);return B.finish()}}const mt=WI.high(RA.fromClass(jt,{decorations:I=>I.decorations})),pt=yQ.define([{tag:V.meta,color:"#404740"},{tag:V.link,textDecoration:"underline"},{tag:V.heading,textDecoration:"underline",fontWeight:"bold"},{tag:V.emphasis,fontStyle:"italic"},{tag:V.strong,fontWeight:"bold"},{tag:V.strikethrough,textDecoration:"line-through"},{tag:V.keyword,color:"#708"},{tag:[V.atom,V.bool,V.url,V.contentSeparator,V.labelName],color:"#219"},{tag:[V.literal,V.inserted],color:"#164"},{tag:[V.string,V.deleted],color:"#a11"},{tag:[V.regexp,V.escape,V.special(V.string)],color:"#e40"},{tag:V.definition(V.variableName),color:"#00f"},{tag:V.local(V.variableName),color:"#30a"},{tag:[V.typeName,V.namespace],color:"#085"},{tag:V.className,color:"#167"},{tag:[V.special(V.variableName),V.macroName],color:"#256"},{tag:V.definition(V.propertyName),color:"#00c"},{tag:V.comment,color:"#940"},{tag:V.invalid,color:"#f00"}]),xt=_.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),zi=1e4,Fi="()[]{}",ji=r.define({combine(I){return Og(I,{afterCursor:!0,brackets:Fi,maxScanDistance:zi,renderMatch:Ot})}}),nt=AA.mark({class:"cm-matchingBracket"}),Wt=AA.mark({class:"cm-nonmatchingBracket"});function Ot(I){let A=[],g=I.matched?nt:Wt;return A.push(g.range(I.start.from,I.start.to)),I.end&&A.push(g.range(I.end.from,I.end.to)),A}const Jt=[nA.define({create(){return AA.none},update(I,A){if(!A.docChanged&&!A.selection)return I;let g=[],B=A.state.facet(ji);for(let C of A.state.selection.ranges){if(!C.empty)continue;let Q=Ug(A.state,C.head,-1,B)||C.head>0&&Ug(A.state,C.head-1,1,B)||B.afterCursor&&(Ug(A.state,C.head,1,B)||C.head<A.state.doc.length&&Ug(A.state,C.head+1,-1,B));Q&&(g=g.concat(B.renderMatch(Q,A.state)))}return AA.set(g,!0)},provide:I=>_.decorations.from(I)}),xt];function ut(I={}){return[ji.of(I),Jt]}const vt=new BA;function VD(I,A,g){let B=I.prop(A<0?BA.openedBy:BA.closedBy);if(B)return B;if(I.name.length==1){let C=g.indexOf(I.name);if(C>-1&&C%2==(A<0?1:0))return[g[C+A]]}return null}function XD(I){let A=I.type.prop(vt);return A?A(I.node):I}function Ug(I,A,g,B={}){let C=B.maxScanDistance||zi,Q=B.brackets||Fi,E=XA(I),N=E.resolveInner(A,g);for(let D=N;D;D=D.parent){let o=VD(D.type,g,Q);if(o&&D.from<D.to){let M=XD(D);if(M&&(g>0?A>=M.from&&A<M.to:A>M.from&&A<=M.to))return Vt(I,A,g,D,M,o,Q)}}return Xt(I,A,g,E,N.type,C,Q)}function Vt(I,A,g,B,C,Q,E){let N=B.parent,D={from:C.from,to:C.to},o=0,M=N==null?void 0:N.cursor();if(M&&(g<0?M.childBefore(B.from):M.childAfter(B.to)))do if(g<0?M.to<=B.from:M.from>=B.to){if(o==0&&Q.indexOf(M.type.name)>-1&&M.from<M.to){let G=XD(M);return{start:D,end:G?{from:G.from,to:G.to}:void 0,matched:!0}}else if(VD(M.type,g,E))o++;else if(VD(M.type,-g,E)){if(o==0){let G=XD(M);return{start:D,end:G&&G.from<G.to?{from:G.from,to:G.to}:void 0,matched:!1}}o--}}while(g<0?M.prevSibling():M.nextSibling());return{start:D,matched:!1}}function Xt(I,A,g,B,C,Q,E){let N=g<0?I.sliceDoc(A-1,A):I.sliceDoc(A,A+1),D=E.indexOf(N);if(D<0||D%2==0!=g>0)return null;let o={from:g<0?A-1:A,to:g>0?A+1:A},M=I.doc.iterRange(A,g>0?I.doc.length:0),G=0;for(let i=0;!M.next().done&&i<=Q;){let L=M.value;g<0&&(i+=L.length);let Y=A+i*g;for(let w=g>0?0:L.length-1,t=g>0?L.length:-1;w!=t;w+=g){let Z=E.indexOf(L[w]);if(!(Z<0||B.resolveInner(Y+w,1).type!=C))if(Z%2==0==g>0)G++;else{if(G==1)return{start:o,end:{from:Y+w,to:Y+w+1},matched:Z>>1==D>>1};G--}}g>0&&(i+=L.length)}return M.done?{start:o,matched:!1}:null}function mi(I,A,g,B=0,C=0){A==null&&(A=I.search(/[^\s\u00a0]/),A==-1&&(A=I.length));let Q=C;for(let E=B;E<A;E++)I.charCodeAt(E)==9?Q+=g-Q%g:Q++;return Q}class pi{constructor(A,g,B,C){this.string=A,this.tabSize=g,this.indentUnit=B,this.overrideIndent=C,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(A){let g=this.string.charAt(this.pos),B;if(typeof A=="string"?B=g==A:B=g&&(A instanceof RegExp?A.test(g):A(g)),B)return++this.pos,g}eatWhile(A){let g=this.pos;for(;this.eat(A););return this.pos>g}eatSpace(){let A=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>A}skipToEnd(){this.pos=this.string.length}skipTo(A){let g=this.string.indexOf(A,this.pos);if(g>-1)return this.pos=g,!0}backUp(A){this.pos-=A}column(){return this.lastColumnPos<this.start&&(this.lastColumnValue=mi(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue}indentation(){var A;return(A=this.overrideIndent)!==null&&A!==void 0?A:mi(this.string,null,this.tabSize)}match(A,g,B){if(typeof A=="string"){let C=E=>B?E.toLowerCase():E,Q=this.string.substr(this.pos,A.length);return C(Q)==C(A)?(g!==!1&&(this.pos+=A.length),!0):null}else{let C=this.string.slice(this.pos).match(A);return C&&C.index>0?null:(C&&g!==!1&&(this.pos+=C[0].length),C)}}current(){return this.string.slice(this.start,this.pos)}}function rt(I){return{name:I.name||"",token:I.token,blankLine:I.blankLine||(()=>{}),startState:I.startState||(()=>!0),copyState:I.copyState||ft,indent:I.indent||(()=>null),languageData:I.languageData||{},tokenTable:I.tokenTable||PD}}function ft(I){if(typeof I!="object")return I;let A={};for(let g in I){let B=I[g];A[g]=B instanceof Array?B.slice():B}return A}const xi=new WeakMap;class rD extends wg{constructor(A){let g=Kt(A.languageData),B=rt(A),C,Q=new class extends ki{createParse(E,N,D){return new qt(C,E,N,D)}};super(g,Q,[Ui.of((E,N)=>this.getIndent(E,N))],A.name),this.topNode=As(g),C=this,this.streamParser=B,this.stateAfter=new BA({perNode:!0}),this.tokenTable=A.tokenTable?new ui(B.tokenTable):$t}static define(A){return new rD(A)}getIndent(A,g){let B=XA(A.state),C=B.resolve(g);for(;C&&C.type!=this.topNode;)C=C.parent;if(!C)return null;let Q,{overrideIndentation:E}=A.options;E&&(Q=xi.get(A.state),Q!=null&&Q<g-1e4&&(Q=void 0));let N=fD(this,B,0,C.from,Q??g),D,o;if(N?(o=N.state,D=N.pos+1):(o=this.streamParser.startState(A.unit),D=0),g-D>1e4)return null;for(;D<g;){let G=A.state.doc.lineAt(D),i=Math.min(g,G.to);if(G.length){let L=E?E(G.from):-1,Y=new pi(G.text,A.state.tabSize,A.unit,L<0?void 0:L);for(;Y.pos<i-G.from;)Wi(this.streamParser.token,Y,o)}else this.streamParser.blankLine(o,A.unit);if(i==g)break;D=G.to+1}let M=A.lineAt(g);return E&&Q==null&&xi.set(A.state,M.from),this.streamParser.indent(o,/^\s*(.*)/.exec(M.text)[1],A)}get allowsNesting(){return!1}}function fD(I,A,g,B,C){let Q=g>=B&&g+A.length<=C&&A.prop(I.stateAfter);if(Q)return{state:I.streamParser.copyState(Q),pos:g+A.length};for(let E=A.children.length-1;E>=0;E--){let N=A.children[E],D=g+A.positions[E],o=N instanceof tA&&D<C&&fD(I,N,D,B,C);if(o)return o}return null}function ni(I,A,g,B,C){if(C&&g<=0&&B>=A.length)return A;!C&&A.type==I.topNode&&(C=!0);for(let Q=A.children.length-1;Q>=0;Q--){let E=A.positions[Q],N=A.children[Q],D;if(E<B&&N instanceof tA){if(!(D=ni(I,N,g-E,B-E,C)))break;return C?new tA(A.type,A.children.slice(0,Q).concat(D),A.positions.slice(0,Q+1),E+D.length):D}}return null}function Pt(I,A,g,B){for(let C of A){let Q=C.from+(C.openStart?25:0),E=C.to-(C.openEnd?25:0),N=Q<=g&&E>g&&fD(I,C.tree,0-C.offset,g,E),D;if(N&&(D=ni(I,C.tree,g+C.offset,N.pos+C.offset,!1)))return{state:N.state,tree:D}}return{state:I.streamParser.startState(B?RI(B):4),tree:tA.empty}}class qt{constructor(A,g,B,C){this.lang=A,this.input=g,this.fragments=B,this.ranges=C,this.stoppedAt=null,this.chunks=[],this.chunkPos=[],this.chunk=[],this.chunkReused=void 0,this.rangeIndex=0,this.to=C[C.length-1].to;let Q=qI.get(),E=C[0].from,{state:N,tree:D}=Pt(A,B,E,Q==null?void 0:Q.state);this.state=N,this.parsedPos=this.chunkStart=E+D.length;for(let o=0;o<D.children.length;o++)this.chunks.push(D.children[o]),this.chunkPos.push(D.positions[o]);Q&&this.parsedPos<Q.viewport.from-1e5&&(this.state=this.lang.streamParser.startState(RI(Q.state)),Q.skipUntilInView(this.parsedPos,Q.viewport.from),this.parsedPos=Q.viewport.from),this.moveRangeIndex()}advance(){let A=qI.get(),g=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt),B=Math.min(g,this.chunkStart+2048);for(A&&(B=Math.min(B,A.viewport.to));this.parsedPos<B;)this.parseLine(A);return this.chunkStart<this.parsedPos&&this.finishChunk(),this.parsedPos>=g?this.finish():A&&this.parsedPos>=A.viewport.to?(A.skipUntilInView(this.parsedPos,g),this.finish()):null}stopAt(A){this.stoppedAt=A}lineAfter(A){let g=this.input.chunk(A);if(this.input.lineChunks)g==`
|
1626
1626
|
`&&(g="");else{let B=g.indexOf(`
|
1627
|
-
`);B>-1&&(g=g.slice(0,B))}return A+g.length<=this.to?g:g.slice(0,this.to-A)}nextLine(){let A=this.parsedPos,g=this.lineAfter(A),B=A+g.length;for(let C=this.rangeIndex;;){let Q=this.ranges[C].to;if(Q>=B||(g=g.slice(0,Q-(B-g.length)),C++,C==this.ranges.length))break;let E=this.ranges[C].from,N=this.lineAfter(E);g+=N,B=E+N.length}return{line:g,end:B}}skipGapsTo(A,g,B){for(;;){let C=this.ranges[this.rangeIndex].to,Q=A+g;if(B>0?C>Q:C>=Q)break;let E=this.ranges[++this.rangeIndex].from;g+=E-C}return g}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to<this.parsedPos;)this.rangeIndex++}emitToken(A,g,B,C,Q){if(this.ranges.length>1){Q=this.skipGapsTo(g,Q,1),g+=Q;let E=this.chunk.length;Q=this.skipGapsTo(B,Q,-1),B+=Q,C+=this.chunk.length-E}return this.chunk.push(A,g,B,C),Q}parseLine(A){let{line:g,end:B}=this.nextLine(),C=0,{streamParser:Q}=this.lang,E=new pi(g,A?A.state.tabSize:4,A?RI(A.state):2);if(E.eol())Q.blankLine(this.state,E.indentUnit);else for(;!E.eol();){let N=Wi(Q.token,E,this.state);if(N&&(C=this.emitToken(this.lang.tokenTable.resolve(N),this.parsedPos+E.start,this.parsedPos+E.pos,4,C)),E.start>1e4)break}this.parsedPos=B,this.moveRangeIndex(),this.parsedPos<this.to&&this.parsedPos++}finishChunk(){let A=tA.build({buffer:this.chunk,start:this.chunkStart,length:this.parsedPos-this.chunkStart,nodeSet:_t,topID:0,maxBufferLength:2048,reused:this.chunkReused});A=new tA(A.type,A.children,A.positions,A.length,[[this.lang.stateAfter,this.lang.streamParser.copyState(this.state)]]),this.chunks.push(A),this.chunkPos.push(this.chunkStart-this.ranges[0].from),this.chunk=[],this.chunkReused=void 0,this.chunkStart=this.parsedPos}finish(){return new tA(this.lang.topNode,this.chunks,this.chunkPos,this.parsedPos-this.ranges[0].from).balance()}}function Wi(I,A,g){A.start=A.pos;for(let B=0;B<10;B++){let C=I(A,g);if(A.pos>A.start)return C}throw new Error("Stream parser failed to advance stream.")}const PD=Object.create(null),rB=[VA.none],_t=new eD(rB),Oi=[],Ji=Object.create(null);for(let[I,A]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])Ji[I]=vi(PD,A);class ui{constructor(A){this.extra=A,this.table=Object.assign(Object.create(null),Ji)}resolve(A){return A?this.table[A]||(this.table[A]=vi(this.extra,A)):0}}const $t=new ui(PD);function qD(I,A){Oi.indexOf(I)>-1||(Oi.push(I),console.warn(A))}function vi(I,A){let g=null;for(let Q of A.split(".")){let E=I[Q]||V[Q];E?typeof E=="function"?g?g=E(g):qD(Q,`Modifier ${Q} used at start of tag`):g?qD(Q,`Tag ${Q} used as modifier`):g=E:qD(Q,`Unknown highlighting tag ${Q}`)}if(!g)return 0;let B=A.replace(/ /g,"_"),C=VA.define({id:rB.length,name:B,props:[Yt({[B]:g})]});return rB.push(C),C.id}function As(I){let A=VA.define({id:rB.length,name:"Document",props:[PI.add(()=>I)],top:!0});return rB.push(A),A}const gs=I=>{let{state:A}=I,g=A.doc.lineAt(A.selection.main.from),B=$D(I.state,g.from);return B.line?Is(I):B.block?Cs(I):!1};function _D(I,A){return({state:g,dispatch:B})=>{if(g.readOnly)return!1;let C=I(A,g);return C?(B(g.update(C)),!0):!1}}const Is=_D(Ds,0),Bs=_D(Vi,0),Cs=_D((I,A)=>Vi(I,A,Es(A)),0);function $D(I,A){let g=I.languageDataAt("commentTokens",A);return g.length?g[0]:{}}const fB=50;function Qs(I,{open:A,close:g},B,C){let Q=I.sliceDoc(B-fB,B),E=I.sliceDoc(C,C+fB),N=/\s*$/.exec(Q)[0].length,D=/^\s*/.exec(E)[0].length,o=Q.length-N;if(Q.slice(o-A.length,o)==A&&E.slice(D,D+g.length)==g)return{open:{pos:B-N,margin:N&&1},close:{pos:C+D,margin:D&&1}};let M,G;C-B<=2*fB?M=G=I.sliceDoc(B,C):(M=I.sliceDoc(B,B+fB),G=I.sliceDoc(C-fB,C));let i=/^\s*/.exec(M)[0].length,L=/\s*$/.exec(G)[0].length,Y=G.length-L-g.length;return M.slice(i,i+A.length)==A&&G.slice(Y,Y+g.length)==g?{open:{pos:B+i+A.length,margin:/\s/.test(M.charAt(i+A.length))?1:0},close:{pos:C-L-g.length,margin:/\s/.test(G.charAt(Y-1))?1:0}}:null}function Es(I){let A=[];for(let g of I.selection.ranges){let B=I.doc.lineAt(g.from),C=g.to<=B.to?B:I.doc.lineAt(g.to),Q=A.length-1;Q>=0&&A[Q].to>B.from?A[Q].to=C.to:A.push({from:B.from+/^\s*/.exec(B.text)[0].length,to:C.to})}return A}function Vi(I,A,g=A.selection.ranges){let B=g.map(Q=>$D(A,Q.from).block);if(!B.every(Q=>Q))return null;let C=g.map((Q,E)=>Qs(A,B[E],Q.from,Q.to));if(I!=2&&!C.every(Q=>Q))return{changes:A.changes(g.map((Q,E)=>C[E]?[]:[{from:Q.from,insert:B[E].open+" "},{from:Q.to,insert:" "+B[E].close}]))};if(I!=1&&C.some(Q=>Q)){let Q=[];for(let E=0,N;E<C.length;E++)if(N=C[E]){let D=B[E],{open:o,close:M}=N;Q.push({from:o.pos-D.open.length,to:o.pos+o.margin},{from:M.pos-M.margin,to:M.pos+D.close.length})}return{changes:Q}}return null}function Ds(I,A,g=A.selection.ranges){let B=[],C=-1;for(let{from:Q,to:E}of g){let N=B.length,D=1e9,o=$D(A,Q).line;if(o){for(let M=Q;M<=E;){let G=A.doc.lineAt(M);if(G.from>C&&(Q==E||E>G.from)){C=G.from;let i=/^\s*/.exec(G.text)[0].length,L=i==G.length,Y=G.text.slice(i,i+o.length)==o?i:-1;i<G.text.length&&i<D&&(D=i),B.push({line:G,comment:Y,token:o,indent:i,empty:L,single:!1})}M=G.to+1}if(D<1e9)for(let M=N;M<B.length;M++)B[M].indent<B[M].line.text.length&&(B[M].indent=D);B.length==N+1&&(B[N].single=!0)}}if(I!=2&&B.some(Q=>Q.comment<0&&(!Q.empty||Q.single))){let Q=[];for(let{line:N,token:D,indent:o,empty:M,single:G}of B)(G||!M)&&Q.push({from:N.from+o,insert:D+" "});let E=A.changes(Q);return{changes:E,selection:A.selection.map(E,1)}}else if(I!=1&&B.some(Q=>Q.comment>=0)){let Q=[];for(let{line:E,comment:N,token:D}of B)if(N>=0){let o=E.from+N,M=o+D.length;E.text[M-E.from]==" "&&M++,Q.push({from:o,to:M})}return{changes:Q}}return null}const AN=Wg.define(),Ns=Wg.define(),os=r.define(),Xi=r.define({combine(I){return Og(I,{minDepth:100,newGroupDelay:500,joinToEvent:(A,g)=>g},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(A,g)=>(B,C)=>A(B,C)||g(B,C)})}});function Ms(I){let A=0;return I.iterChangedRanges((g,B)=>A=B),A}const ri=nA.define({create(){return Tg.empty},update(I,A){let g=A.state.facet(Xi),B=A.annotation(AN);if(B){let D=A.docChanged?j.single(Ms(A.changes)):void 0,o=rA.fromTransaction(A,D),M=B.side,G=M==0?I.undone:I.done;return o?G=tQ(G,G.length,g.minDepth,o):G=qi(G,A.startState.selection),new Tg(M==0?B.rest:G,M==0?G:B.rest)}let C=A.annotation(Ns);if((C=="full"||C=="before")&&(I=I.isolate()),A.annotation(dA.addToHistory)===!1)return A.changes.empty?I:I.addMapping(A.changes.desc);let Q=rA.fromTransaction(A),E=A.annotation(dA.time),N=A.annotation(dA.userEvent);return Q?I=I.addChanges(Q,E,N,g,A):A.selection&&(I=I.addSelection(A.startState.selection,E,N,g.newGroupDelay)),(C=="full"||C=="after")&&(I=I.isolate()),I},toJSON(I){return{done:I.done.map(A=>A.toJSON()),undone:I.undone.map(A=>A.toJSON())}},fromJSON(I){return new Tg(I.done.map(rA.fromJSON),I.undone.map(rA.fromJSON))}});function Gs(I={}){return[ri,Xi.of(I),q.domEventHandlers({beforeinput(A,g){let B=A.inputType=="historyUndo"?fi:A.inputType=="historyRedo"?gN:null;return B?(A.preventDefault(),B(g)):!1}})]}function wQ(I,A){return function({state:g,dispatch:B}){if(!A&&g.readOnly)return!1;let C=g.field(ri,!1);if(!C)return!1;let Q=C.pop(I,g,A);return Q?(B(Q),!0):!1}}const fi=wQ(0,!1),gN=wQ(1,!1),is=wQ(0,!0),Ls=wQ(1,!0);class rA{constructor(A,g,B,C,Q){this.changes=A,this.effects=g,this.mapped=B,this.startSelection=C,this.selectionsAfter=Q}setSelAfter(A){return new rA(this.changes,this.effects,this.mapped,this.startSelection,A)}toJSON(){var A,g,B;return{changes:(A=this.changes)===null||A===void 0?void 0:A.toJSON(),mapped:(g=this.mapped)===null||g===void 0?void 0:g.toJSON(),startSelection:(B=this.startSelection)===null||B===void 0?void 0:B.toJSON(),selectionsAfter:this.selectionsAfter.map(C=>C.toJSON())}}static fromJSON(A){return new rA(A.changes&&bA.fromJSON(A.changes),[],A.mapped&&Zg.fromJSON(A.mapped),A.startSelection&&j.fromJSON(A.startSelection),A.selectionsAfter.map(j.fromJSON))}static fromTransaction(A,g){let B=Mg;for(let C of A.startState.facet(os)){let Q=C(A);Q.length&&(B=B.concat(Q))}return!B.length&&A.changes.empty?null:new rA(A.changes.invert(A.startState.doc),B,void 0,g||A.startState.selection,Mg)}static selection(A){return new rA(void 0,Mg,void 0,void 0,A)}}function tQ(I,A,g,B){let C=A+1>g+20?A-g-1:0,Q=I.slice(C,A);return Q.push(B),Q}function Ss(I,A){let g=[],B=!1;return I.iterChangedRanges((C,Q)=>g.push(C,Q)),A.iterChangedRanges((C,Q,E,N)=>{for(let D=0;D<g.length;){let o=g[D++],M=g[D++];N>=o&&E<=M&&(B=!0)}}),B}function cs(I,A){return I.ranges.length==A.ranges.length&&I.ranges.filter((g,B)=>g.empty!=A.ranges[B].empty).length===0}function Pi(I,A){return I.length?A.length?I.concat(A):I:A}const Mg=[],Ys=200;function qi(I,A){if(I.length){let g=I[I.length-1],B=g.selectionsAfter.slice(Math.max(0,g.selectionsAfter.length-Ys));return B.length&&B[B.length-1].eq(A)?I:(B.push(A),tQ(I,I.length-1,1e9,g.setSelAfter(B)))}else return[rA.selection([A])]}function ys(I){let A=I[I.length-1],g=I.slice();return g[I.length-1]=A.setSelAfter(A.selectionsAfter.slice(0,A.selectionsAfter.length-1)),g}function IN(I,A){if(!I.length)return I;let g=I.length,B=Mg;for(;g;){let C=ws(I[g-1],A,B);if(C.changes&&!C.changes.empty||C.effects.length){let Q=I.slice(0,g);return Q[g-1]=C,Q}else A=C.mapped,g--,B=C.selectionsAfter}return B.length?[rA.selection(B)]:Mg}function ws(I,A,g){let B=Pi(I.selectionsAfter.length?I.selectionsAfter.map(N=>N.map(A)):Mg,g);if(!I.changes)return rA.selection(B);let C=I.changes.map(A),Q=A.mapDesc(I.changes,!0),E=I.mapped?I.mapped.composeDesc(Q):Q;return new rA(C,IA.mapEffects(I.effects,A),E,I.startSelection.map(Q),B)}const ts=/^(input\.type|delete)($|\.)/;class Tg{constructor(A,g,B=0,C=void 0){this.done=A,this.undone=g,this.prevTime=B,this.prevUserEvent=C}isolate(){return this.prevTime?new Tg(this.done,this.undone):this}addChanges(A,g,B,C,Q){let E=this.done,N=E[E.length-1];return N&&N.changes&&!N.changes.empty&&A.changes&&(!B||ts.test(B))&&(!N.selectionsAfter.length&&g-this.prevTime<C.newGroupDelay&&C.joinToEvent(Q,Ss(N.changes,A.changes))||B=="input.type.compose")?E=tQ(E,E.length-1,C.minDepth,new rA(A.changes.compose(N.changes),Pi(A.effects,N.effects),N.mapped,N.startSelection,Mg)):E=tQ(E,E.length,C.minDepth,A),new Tg(E,Mg,g,B)}addSelection(A,g,B,C){let Q=this.done.length?this.done[this.done.length-1].selectionsAfter:Mg;return Q.length>0&&g-this.prevTime<C&&B==this.prevUserEvent&&B&&/^select($|\.)/.test(B)&&cs(Q[Q.length-1],A)?this:new Tg(qi(this.done,A),this.undone,g,B)}addMapping(A){return new Tg(IN(this.done,A),IN(this.undone,A),this.prevTime,this.prevUserEvent)}pop(A,g,B){let C=A==0?this.done:this.undone;if(C.length==0)return null;let Q=C[C.length-1];if(B&&Q.selectionsAfter.length)return g.update({selection:Q.selectionsAfter[Q.selectionsAfter.length-1],annotations:AN.of({side:A,rest:ys(C)}),userEvent:A==0?"select.undo":"select.redo",scrollIntoView:!0});if(Q.changes){let E=C.length==1?Mg:C.slice(0,C.length-1);return Q.mapped&&(E=IN(E,Q.mapped)),g.update({changes:Q.changes,selection:Q.startSelection,effects:Q.effects,annotations:AN.of({side:A,rest:E}),filter:!1,userEvent:A==0?"undo":"redo",scrollIntoView:!0})}else return null}}Tg.empty=new Tg(Mg,Mg);const ss=[{key:"Mod-z",run:fi,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:gN,preventDefault:!0},{linux:"Ctrl-Shift-z",run:gN,preventDefault:!0},{key:"Mod-u",run:is,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:Ls,preventDefault:!0}];function AB(I,A){return j.create(I.ranges.map(A),I.mainIndex)}function eg(I,A){return I.update({selection:A,scrollIntoView:!0,userEvent:"select"})}function tg({state:I,dispatch:A},g){let B=AB(I.selection,g);return B.eq(I.selection)?!1:(A(eg(I,B)),!0)}function sQ(I,A){return j.cursor(A?I.to:I.from)}function _i(I,A){return tg(I,g=>g.empty?I.moveByChar(g,A):sQ(g,A))}function OA(I){return I.textDirectionAt(I.state.selection.main.head)==wA.LTR}const $i=I=>_i(I,!OA(I)),A0=I=>_i(I,OA(I));function g0(I,A){return tg(I,g=>g.empty?I.moveByGroup(g,A):sQ(g,A))}const Ks=I=>g0(I,!OA(I)),ls=I=>g0(I,OA(I));function ks(I,A,g){if(A.type.prop(g))return!0;let B=A.to-A.from;return B&&(B>2||/[^\s,.;:]/.test(I.sliceDoc(A.from,A.to)))||A.firstChild}function KQ(I,A,g){let B=XA(I).resolveInner(A.head),C=g?BA.closedBy:BA.openedBy;for(let D=A.head;;){let o=g?B.childAfter(D):B.childBefore(D);if(!o)break;ks(I,o,C)?B=o:D=g?o.to:o.from}let Q=B.type.prop(C),E,N;return Q&&(E=g?Ug(I,B.from,1):Ug(I,B.to,-1))&&E.matched?N=g?E.end.to:E.end.from:N=g?B.to:B.from,j.cursor(N,g?-1:1)}const Zs=I=>tg(I,A=>KQ(I.state,A,!OA(I))),hs=I=>tg(I,A=>KQ(I.state,A,OA(I)));function I0(I,A){return tg(I,g=>{if(!g.empty)return sQ(g,A);let B=I.moveVertically(g,A);return B.head!=g.head?B:I.moveToLineBoundary(g,A)})}const B0=I=>I0(I,!1),C0=I=>I0(I,!0);function Q0(I){let A=I.scrollDOM.clientHeight<I.scrollDOM.scrollHeight-2,g=0,B=0,C;if(A){for(let Q of I.state.facet(q.scrollMargins)){let E=Q(I);E!=null&&E.top&&(g=Math.max(E==null?void 0:E.top,g)),E!=null&&E.bottom&&(B=Math.max(E==null?void 0:E.bottom,B))}C=I.scrollDOM.clientHeight-g-B}else C=(I.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:g,marginBottom:B,selfScroll:A,height:Math.max(I.defaultLineHeight,C-5)}}function E0(I,A){let g=Q0(I),{state:B}=I,C=AB(B.selection,E=>E.empty?I.moveVertically(E,A,g.height):sQ(E,A));if(C.eq(B.selection))return!1;let Q;if(g.selfScroll){let E=I.coordsAtPos(B.selection.main.head),N=I.scrollDOM.getBoundingClientRect(),D=N.top+g.marginTop,o=N.bottom-g.marginBottom;E&&E.top>D&&E.bottom<o&&(Q=q.scrollIntoView(C.main.head,{y:"start",yMargin:E.top-D}))}return I.dispatch(eg(B,C),{effects:Q}),!0}const D0=I=>E0(I,!1),BN=I=>E0(I,!0);function GI(I,A,g){let B=I.lineBlockAt(A.head),C=I.moveToLineBoundary(A,g);if(C.head==A.head&&C.head!=(g?B.to:B.from)&&(C=I.moveToLineBoundary(A,g,!1)),!g&&C.head==B.from&&B.length){let Q=/^\s*/.exec(I.state.sliceDoc(B.from,Math.min(B.from+100,B.to)))[0].length;Q&&A.head!=B.from+Q&&(C=j.cursor(B.from+Q))}return C}const as=I=>tg(I,A=>GI(I,A,!0)),bs=I=>tg(I,A=>GI(I,A,!1)),ds=I=>tg(I,A=>GI(I,A,!OA(I))),Hs=I=>tg(I,A=>GI(I,A,OA(I))),Rs=I=>tg(I,A=>j.cursor(I.lineBlockAt(A.head).from,1)),Us=I=>tg(I,A=>j.cursor(I.lineBlockAt(A.head).to,-1));function Ts(I,A,g){let B=!1,C=AB(I.selection,Q=>{let E=Ug(I,Q.head,-1)||Ug(I,Q.head,1)||Q.head>0&&Ug(I,Q.head-1,1)||Q.head<I.doc.length&&Ug(I,Q.head+1,-1);if(!E||!E.end)return Q;B=!0;let N=E.start.from==Q.head?E.end.to:E.end.from;return g?j.range(Q.anchor,N):j.cursor(N)});return B?(A(eg(I,C)),!0):!1}const es=({state:I,dispatch:A})=>Ts(I,A,!1);function Gg(I,A){let g=AB(I.state.selection,B=>{let C=A(B);return j.range(B.anchor,C.head,C.goalColumn,C.bidiLevel||void 0)});return g.eq(I.state.selection)?!1:(I.dispatch(eg(I.state,g)),!0)}function N0(I,A){return Gg(I,g=>I.moveByChar(g,A))}const o0=I=>N0(I,!OA(I)),M0=I=>N0(I,OA(I));function G0(I,A){return Gg(I,g=>I.moveByGroup(g,A))}const zs=I=>G0(I,!OA(I)),Fs=I=>G0(I,OA(I)),js=I=>Gg(I,A=>KQ(I.state,A,!OA(I))),ms=I=>Gg(I,A=>KQ(I.state,A,OA(I)));function i0(I,A){return Gg(I,g=>I.moveVertically(g,A))}const L0=I=>i0(I,!1),S0=I=>i0(I,!0);function c0(I,A){return Gg(I,g=>I.moveVertically(g,A,Q0(I).height))}const Y0=I=>c0(I,!1),y0=I=>c0(I,!0),ps=I=>Gg(I,A=>GI(I,A,!0)),xs=I=>Gg(I,A=>GI(I,A,!1)),ns=I=>Gg(I,A=>GI(I,A,!OA(I))),Ws=I=>Gg(I,A=>GI(I,A,OA(I))),Os=I=>Gg(I,A=>j.cursor(I.lineBlockAt(A.head).from)),Js=I=>Gg(I,A=>j.cursor(I.lineBlockAt(A.head).to)),w0=({state:I,dispatch:A})=>(A(eg(I,{anchor:0})),!0),t0=({state:I,dispatch:A})=>(A(eg(I,{anchor:I.doc.length})),!0),s0=({state:I,dispatch:A})=>(A(eg(I,{anchor:I.selection.main.anchor,head:0})),!0),K0=({state:I,dispatch:A})=>(A(eg(I,{anchor:I.selection.main.anchor,head:I.doc.length})),!0),us=({state:I,dispatch:A})=>(A(I.update({selection:{anchor:0,head:I.doc.length},userEvent:"select"})),!0),vs=({state:I,dispatch:A})=>{let g=ZQ(I).map(({from:B,to:C})=>j.range(B,Math.min(C+1,I.doc.length)));return A(I.update({selection:j.create(g),userEvent:"select"})),!0},Vs=({state:I,dispatch:A})=>{let g=AB(I.selection,B=>{var C;let Q=XA(I).resolveInner(B.head,1);for(;!(Q.from<B.from&&Q.to>=B.to||Q.to>B.to&&Q.from<=B.from||!(!((C=Q.parent)===null||C===void 0)&&C.parent));)Q=Q.parent;return j.range(Q.to,Q.from)});return A(eg(I,g)),!0},Xs=({state:I,dispatch:A})=>{let g=I.selection,B=null;return g.ranges.length>1?B=j.create([g.main]):g.main.empty||(B=j.create([j.cursor(g.main.head)])),B?(A(eg(I,B)),!0):!1};function lQ(I,A){if(I.state.readOnly)return!1;let g="delete.selection",{state:B}=I,C=B.changeByRange(Q=>{let{from:E,to:N}=Q;if(E==N){let D=A(E);D<E?(g="delete.backward",D=kQ(I,D,!1)):D>E&&(g="delete.forward",D=kQ(I,D,!0)),E=Math.min(E,D),N=Math.max(N,D)}else E=kQ(I,E,!1),N=kQ(I,N,!0);return E==N?{range:Q}:{changes:{from:E,to:N},range:j.cursor(E)}});return C.changes.empty?!1:(I.dispatch(B.update(C,{scrollIntoView:!0,userEvent:g,effects:g=="delete.selection"?q.announce.of(B.phrase("Selection deleted")):void 0})),!0)}function kQ(I,A,g){if(I instanceof q)for(let B of I.state.facet(q.atomicRanges).map(C=>C(I)))B.between(A,A,(C,Q)=>{C<A&&Q>A&&(A=g?Q:C)});return A}const l0=(I,A)=>lQ(I,g=>{let{state:B}=I,C=B.doc.lineAt(g),Q,E;if(!A&&g>C.from&&g<C.from+200&&!/[^ \t]/.test(Q=C.text.slice(0,g-C.from))){if(Q[Q.length-1]==" ")return g-1;let N=JI(Q,B.tabSize),D=N%RI(B)||RI(B);for(let o=0;o<D&&Q[Q.length-1-o]==" ";o++)g--;E=g}else E=pA(C.text,g-C.from,A,A)+C.from,E==g&&C.number!=(A?B.doc.lines:1)&&(E+=A?1:-1);return E}),CN=I=>l0(I,!1),k0=I=>l0(I,!0),Z0=(I,A)=>lQ(I,g=>{let B=g,{state:C}=I,Q=C.doc.lineAt(B),E=C.charCategorizer(B);for(let N=null;;){if(B==(A?Q.to:Q.from)){B==g&&Q.number!=(A?C.doc.lines:1)&&(B+=A?1:-1);break}let D=pA(Q.text,B-Q.from,A)+Q.from,o=Q.text.slice(Math.min(B,D)-Q.from,Math.max(B,D)-Q.from),M=E(o);if(N!=null&&M!=N)break;(o!=" "||B!=g)&&(N=M),B=D}return B}),h0=I=>Z0(I,!1),rs=I=>Z0(I,!0),a0=I=>lQ(I,A=>{let g=I.lineBlockAt(A).to;return A<g?g:Math.min(I.state.doc.length,A+1)}),fs=I=>lQ(I,A=>{let g=I.lineBlockAt(A).from;return A>g?g:Math.max(0,A-1)}),Ps=({state:I,dispatch:A})=>{if(I.readOnly)return!1;let g=I.changeByRange(B=>({changes:{from:B.from,to:B.to,insert:EA.of(["",""])},range:j.cursor(B.from)}));return A(I.update(g,{scrollIntoView:!0,userEvent:"input"})),!0},qs=({state:I,dispatch:A})=>{if(I.readOnly)return!1;let g=I.changeByRange(B=>{if(!B.empty||B.from==0||B.from==I.doc.length)return{range:B};let C=B.from,Q=I.doc.lineAt(C),E=C==Q.from?C-1:pA(Q.text,C-Q.from,!1)+Q.from,N=C==Q.to?C+1:pA(Q.text,C-Q.from,!0)+Q.from;return{changes:{from:E,to:N,insert:I.doc.slice(C,N).append(I.doc.slice(E,C))},range:j.cursor(N)}});return g.changes.empty?!1:(A(I.update(g,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function ZQ(I){let A=[],g=-1;for(let B of I.selection.ranges){let C=I.doc.lineAt(B.from),Q=I.doc.lineAt(B.to);if(!B.empty&&B.to==Q.from&&(Q=I.doc.lineAt(B.to-1)),g>=C.number){let E=A[A.length-1];E.to=Q.to,E.ranges.push(B)}else A.push({from:C.from,to:Q.to,ranges:[B]});g=Q.number+1}return A}function b0(I,A,g){if(I.readOnly)return!1;let B=[],C=[];for(let Q of ZQ(I)){if(g?Q.to==I.doc.length:Q.from==0)continue;let E=I.doc.lineAt(g?Q.to+1:Q.from-1),N=E.length+1;if(g){B.push({from:Q.to,to:E.to},{from:Q.from,insert:E.text+I.lineBreak});for(let D of Q.ranges)C.push(j.range(Math.min(I.doc.length,D.anchor+N),Math.min(I.doc.length,D.head+N)))}else{B.push({from:E.from,to:Q.from},{from:Q.to,insert:I.lineBreak+E.text});for(let D of Q.ranges)C.push(j.range(D.anchor-N,D.head-N))}}return B.length?(A(I.update({changes:B,scrollIntoView:!0,selection:j.create(C,I.selection.mainIndex),userEvent:"move.line"})),!0):!1}const _s=({state:I,dispatch:A})=>b0(I,A,!1),$s=({state:I,dispatch:A})=>b0(I,A,!0);function d0(I,A,g){if(I.readOnly)return!1;let B=[];for(let C of ZQ(I))g?B.push({from:C.from,insert:I.doc.slice(C.from,C.to)+I.lineBreak}):B.push({from:C.to,insert:I.lineBreak+I.doc.slice(C.from,C.to)});return A(I.update({changes:B,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const AK=({state:I,dispatch:A})=>d0(I,A,!1),gK=({state:I,dispatch:A})=>d0(I,A,!0),IK=I=>{if(I.state.readOnly)return!1;let{state:A}=I,g=A.changes(ZQ(A).map(({from:C,to:Q})=>(C>0?C--:Q<A.doc.length&&Q++,{from:C,to:Q}))),B=AB(A.selection,C=>I.moveVertically(C,!0)).map(g);return I.dispatch({changes:g,selection:B,scrollIntoView:!0,userEvent:"delete.line"}),!0};function BK(I,A){if(/\(\)|\[\]|\{\}/.test(I.sliceDoc(A-1,A+1)))return{from:A,to:A};let g=XA(I).resolveInner(A),B=g.childBefore(A),C=g.childAfter(A),Q;return B&&C&&B.to<=A&&C.from>=A&&(Q=B.type.prop(BA.closedBy))&&Q.indexOf(C.name)>-1&&I.doc.lineAt(B.to).from==I.doc.lineAt(C.from).from&&!/\S/.test(I.sliceDoc(B.to,C.from))?{from:B.to,to:C.from}:null}const CK=H0(!1),QK=H0(!0);function H0(I){return({state:A,dispatch:g})=>{if(A.readOnly)return!1;let B=A.changeByRange(C=>{let{from:Q,to:E}=C,N=A.doc.lineAt(Q),D=!I&&Q==E&&BK(A,Q);I&&(Q=E=(E<=N.to?N:A.doc.lineAt(E)).to);let o=new YQ(A,{simulateBreak:Q,simulateDoubleBreak:!!D}),M=OD(o,Q);for(M==null&&(M=JI(/^\s*/.exec(A.doc.lineAt(Q).text)[0],A.tabSize));E<N.to&&/\s/.test(N.text[E-N.from]);)E++;D?{from:Q,to:E}=D:Q>N.from&&Q<N.from+100&&!/\S/.test(N.text.slice(0,Q))&&(Q=N.from);let G=["",XB(A,M)];return D&&G.push(XB(A,o.lineIndent(N.from,-1))),{changes:{from:Q,to:E,insert:EA.of(G)},range:j.cursor(Q+1+G[1].length)}});return g(A.update(B,{scrollIntoView:!0,userEvent:"input"})),!0}}function QN(I,A){let g=-1;return I.changeByRange(B=>{let C=[];for(let E=B.from;E<=B.to;){let N=I.doc.lineAt(E);N.number>g&&(B.empty||B.to>N.from)&&(A(N,C,B),g=N.number),E=N.to+1}let Q=I.changes(C);return{changes:C,range:j.range(Q.mapPos(B.anchor,1),Q.mapPos(B.head,1))}})}const EK=({state:I,dispatch:A})=>{if(I.readOnly)return!1;let g=Object.create(null),B=new YQ(I,{overrideIndentation:Q=>{let E=g[Q];return E??-1}}),C=QN(I,(Q,E,N)=>{let D=OD(B,Q.from);if(D==null)return;/\S/.test(Q.text)||(D=0);let o=/^\s*/.exec(Q.text)[0],M=XB(I,D);(o!=M||N.from<Q.from+o.length)&&(g[Q.from]=D,E.push({from:Q.from,to:Q.from+o.length,insert:M}))});return C.changes.empty||A(I.update(C,{userEvent:"indent"})),!0},DK=({state:I,dispatch:A})=>I.readOnly?!1:(A(I.update(QN(I,(g,B)=>{B.push({from:g.from,insert:I.facet(WD)})}),{userEvent:"input.indent"})),!0),NK=({state:I,dispatch:A})=>I.readOnly?!1:(A(I.update(QN(I,(g,B)=>{let C=/^\s*/.exec(g.text)[0];if(!C)return;let Q=JI(C,I.tabSize),E=0,N=XB(I,Math.max(0,Q-RI(I)));for(;E<C.length&&E<N.length&&C.charCodeAt(E)==N.charCodeAt(E);)E++;B.push({from:g.from+E,to:g.from+C.length,insert:N.slice(E)})}),{userEvent:"delete.dedent"})),!0),oK=[{key:"Ctrl-b",run:$i,shift:o0,preventDefault:!0},{key:"Ctrl-f",run:A0,shift:M0},{key:"Ctrl-p",run:B0,shift:L0},{key:"Ctrl-n",run:C0,shift:S0},{key:"Ctrl-a",run:Rs,shift:Os},{key:"Ctrl-e",run:Us,shift:Js},{key:"Ctrl-d",run:k0},{key:"Ctrl-h",run:CN},{key:"Ctrl-k",run:a0},{key:"Ctrl-Alt-h",run:h0},{key:"Ctrl-o",run:Ps},{key:"Ctrl-t",run:qs},{key:"Ctrl-v",run:BN}],MK=[{key:"ArrowLeft",run:$i,shift:o0,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:Ks,shift:zs,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:ds,shift:ns,preventDefault:!0},{key:"ArrowRight",run:A0,shift:M0,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:ls,shift:Fs,preventDefault:!0},{mac:"Cmd-ArrowRight",run:Hs,shift:Ws,preventDefault:!0},{key:"ArrowUp",run:B0,shift:L0,preventDefault:!0},{mac:"Cmd-ArrowUp",run:w0,shift:s0},{mac:"Ctrl-ArrowUp",run:D0,shift:Y0},{key:"ArrowDown",run:C0,shift:S0,preventDefault:!0},{mac:"Cmd-ArrowDown",run:t0,shift:K0},{mac:"Ctrl-ArrowDown",run:BN,shift:y0},{key:"PageUp",run:D0,shift:Y0},{key:"PageDown",run:BN,shift:y0},{key:"Home",run:bs,shift:xs,preventDefault:!0},{key:"Mod-Home",run:w0,shift:s0},{key:"End",run:as,shift:ps,preventDefault:!0},{key:"Mod-End",run:t0,shift:K0},{key:"Enter",run:CK},{key:"Mod-a",run:us},{key:"Backspace",run:CN,shift:CN},{key:"Delete",run:k0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:h0},{key:"Mod-Delete",mac:"Alt-Delete",run:rs},{mac:"Mod-Backspace",run:fs},{mac:"Mod-Delete",run:a0}].concat(oK.map(I=>({mac:I.key,run:I.run,shift:I.shift}))),GK=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:Zs,shift:js},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:hs,shift:ms},{key:"Alt-ArrowUp",run:_s},{key:"Shift-Alt-ArrowUp",run:AK},{key:"Alt-ArrowDown",run:$s},{key:"Shift-Alt-ArrowDown",run:gK},{key:"Escape",run:Xs},{key:"Mod-Enter",run:QK},{key:"Alt-l",mac:"Ctrl-l",run:vs},{key:"Mod-i",run:Vs,preventDefault:!0},{key:"Mod-[",run:NK},{key:"Mod-]",run:DK},{key:"Mod-Alt-\\",run:EK},{key:"Shift-Mod-k",run:IK},{key:"Shift-Mod-\\",run:es},{key:"Mod-/",run:gs},{key:"Alt-A",run:Bs}].concat(MK);function GA(){var I=arguments[0];typeof I=="string"&&(I=document.createElement(I));var A=1,g=arguments[1];if(g&&typeof g=="object"&&g.nodeType==null&&!Array.isArray(g)){for(var B in g)if(Object.prototype.hasOwnProperty.call(g,B)){var C=g[B];typeof C=="string"?I.setAttribute(B,C):C!=null&&(I[B]=C)}A++}for(;A<arguments.length;A++)R0(I,arguments[A]);return I}function R0(I,A){if(typeof A=="string")I.appendChild(document.createTextNode(A));else if(A!=null)if(A.nodeType!=null)I.appendChild(A);else if(Array.isArray(A))for(var g=0;g<A.length;g++)R0(I,A[g]);else throw new RangeError("Unsupported child node: "+A)}const U0=typeof String.prototype.normalize=="function"?I=>I.normalize("NFKD"):I=>I;class gB{constructor(A,g,B=0,C=A.length,Q,E){this.test=E,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=A.iterRange(B,C),this.bufferStart=B,this.normalize=Q?N=>Q(U0(N)):U0,this.query=this.normalize(g)}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 TA(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let A=this.peek();if(A<0)return this.done=!0,this;let g=aE(A),B=this.bufferStart+this.bufferPos;this.bufferPos+=Dg(A);let C=this.normalize(g);for(let Q=0,E=B;;Q++){let N=C.charCodeAt(Q),D=this.match(N,E);if(Q==C.length-1){if(D)return this.value=D,this;break}E==B&&Q<g.length&&g.charCodeAt(Q)==N&&E++}}}match(A,g){let B=null;for(let C=0;C<this.matches.length;C+=2){let Q=this.matches[C],E=!1;this.query.charCodeAt(Q)==A&&(Q==this.query.length-1?B={from:this.matches[C+1],to:g+1}:(this.matches[C]++,E=!0)),E||(this.matches.splice(C,2),C-=2)}return this.query.charCodeAt(0)==A&&(this.query.length==1?B={from:g,to:g+1}:this.matches.push(1,g)),B&&this.test&&!this.test(B.from,B.to,this.buffer,this.bufferPos)&&(B=null),B}}typeof Symbol<"u"&&(gB.prototype[Symbol.iterator]=function(){return this});const T0={from:-1,to:-1,match:/.*/.exec("")},EN="gm"+(/x/.unicode==null?"":"u");class e0{constructor(A,g,B,C=0,Q=A.length){if(this.text=A,this.to=Q,this.curLine="",this.done=!1,this.value=T0,/\\[sWDnr]|\n|\r|\[\^/.test(g))return new z0(A,g,B,C,Q);this.re=new RegExp(g,EN+(B!=null&&B.ignoreCase?"i":"")),this.test=B==null?void 0:B.test,this.iter=A.iter();let E=A.lineAt(C);this.curLineStart=E.from,this.matchPos=hQ(A,C),this.getLine(this.curLineStart)}getLine(A){this.iter.next(A),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 A=this.matchPos-this.curLineStart;;){this.re.lastIndex=A;let g=this.matchPos<=this.to&&this.re.exec(this.curLine);if(g){let B=this.curLineStart+g.index,C=B+g[0].length;if(this.matchPos=hQ(this.text,C+(B==C?1:0)),B==this.curLineStart+this.curLine.length&&this.nextLine(),(B<C||B>this.value.to)&&(!this.test||this.test(B,C,g)))return this.value={from:B,to:C,match:g},this;A=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),A=0;else return this.done=!0,this}}}const DN=new WeakMap;class IB{constructor(A,g){this.from=A,this.text=g}get to(){return this.from+this.text.length}static get(A,g,B){let C=DN.get(A);if(!C||C.from>=B||C.to<=g){let N=new IB(g,A.sliceString(g,B));return DN.set(A,N),N}if(C.from==g&&C.to==B)return C;let{text:Q,from:E}=C;return E>g&&(Q=A.sliceString(g,E)+Q,E=g),C.to<B&&(Q+=A.sliceString(C.to,B)),DN.set(A,new IB(E,Q)),new IB(g,Q.slice(g-E,B-E))}}class z0{constructor(A,g,B,C,Q){this.text=A,this.to=Q,this.done=!1,this.value=T0,this.matchPos=hQ(A,C),this.re=new RegExp(g,EN+(B!=null&&B.ignoreCase?"i":"")),this.test=B==null?void 0:B.test,this.flat=IB.get(A,C,this.chunkEnd(C+5e3))}chunkEnd(A){return A>=this.to?this.to:this.text.lineAt(A).to}next(){for(;;){let A=this.re.lastIndex=this.matchPos-this.flat.from,g=this.re.exec(this.flat.text);if(g&&!g[0]&&g.index==A&&(this.re.lastIndex=A+1,g=this.re.exec(this.flat.text)),g){let B=this.flat.from+g.index,C=B+g[0].length;if((this.flat.to>=this.to||g.index+g[0].length<=this.flat.text.length-10)&&(!this.test||this.test(B,C,g)))return this.value={from:B,to:C,match:g},this.matchPos=hQ(this.text,C+(B==C?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=IB.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(e0.prototype[Symbol.iterator]=z0.prototype[Symbol.iterator]=function(){return this});function iK(I){try{return new RegExp(I,EN),!0}catch{return!1}}function hQ(I,A){if(A>=I.length)return A;let g=I.lineAt(A),B;for(;A<g.to&&(B=g.text.charCodeAt(A-g.from))>=56320&&B<57344;)A++;return A}function NN(I){let A=GA("input",{class:"cm-textfield",name:"line"}),g=GA("form",{class:"cm-gotoLine",onkeydown:C=>{C.keyCode==27?(C.preventDefault(),I.dispatch({effects:aQ.of(!1)}),I.focus()):C.keyCode==13&&(C.preventDefault(),B())},onsubmit:C=>{C.preventDefault(),B()}},GA("label",I.state.phrase("Go to line"),": ",A)," ",GA("button",{class:"cm-button",type:"submit"},I.state.phrase("go")));function B(){let C=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(A.value);if(!C)return;let{state:Q}=I,E=Q.doc.lineAt(Q.selection.main.head),[,N,D,o,M]=C,G=o?+o.slice(1):0,i=D?+D:E.number;if(D&&M){let w=i/100;N&&(w=w*(N=="-"?-1:1)+E.number/Q.doc.lines),i=Math.round(Q.doc.lines*w)}else D&&N&&(i=i*(N=="-"?-1:1)+E.number);let L=Q.doc.line(Math.max(1,Math.min(Q.doc.lines,i))),Y=j.cursor(L.from+Math.max(0,Math.min(G,L.length)));I.dispatch({effects:[aQ.of(!1),q.scrollIntoView(Y.from,{y:"center"})],selection:Y}),I.focus()}return{dom:g}}const aQ=IA.define(),F0=nA.define({create(){return!0},update(I,A){for(let g of A.effects)g.is(aQ)&&(I=g.value);return I},provide:I=>uB.from(I,A=>A?NN:null)}),LK=I=>{let A=JB(I,NN);if(!A){let g=[aQ.of(!0)];I.state.field(F0,!1)==null&&g.push(IA.appendConfig.of([F0,SK])),I.dispatch({effects:g}),A=JB(I,NN)}return A&&A.dom.querySelector("input").focus(),!0},SK=q.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),cK={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},j0=r.define({combine(I){return Og(I,cK,{highlightWordAroundCursor:(A,g)=>A||g,minSelectionLength:Math.min,maxMatches:Math.min})}});function YK(I){let A=[KK,sK];return I&&A.push(j0.of(I)),A}const yK=AA.mark({class:"cm-selectionMatch"}),wK=AA.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function m0(I,A,g,B){return(g==0||I(A.sliceDoc(g-1,g))!=YA.Word)&&(B==A.doc.length||I(A.sliceDoc(B,B+1))!=YA.Word)}function tK(I,A,g,B){return I(A.sliceDoc(g,g+1))==YA.Word&&I(A.sliceDoc(B-1,B))==YA.Word}const sK=RA.fromClass(class{constructor(I){this.decorations=this.getDeco(I)}update(I){(I.selectionSet||I.docChanged||I.viewportChanged)&&(this.decorations=this.getDeco(I.view))}getDeco(I){let A=I.state.facet(j0),{state:g}=I,B=g.selection;if(B.ranges.length>1)return AA.none;let C=B.main,Q,E=null;if(C.empty){if(!A.highlightWordAroundCursor)return AA.none;let D=g.wordAt(C.head);if(!D)return AA.none;E=g.charCategorizer(C.head),Q=g.sliceDoc(D.from,D.to)}else{let D=C.to-C.from;if(D<A.minSelectionLength||D>200)return AA.none;if(A.wholeWords){if(Q=g.sliceDoc(C.from,C.to),E=g.charCategorizer(C.head),!(m0(E,g,C.from,C.to)&&tK(E,g,C.from,C.to)))return AA.none}else if(Q=g.sliceDoc(C.from,C.to).trim(),!Q)return AA.none}let N=[];for(let D of I.visibleRanges){let o=new gB(g.doc,Q,D.from,D.to);for(;!o.next().done;){let{from:M,to:G}=o.value;if((!E||m0(E,g,M,G))&&(C.empty&&M<=C.from&&G>=C.to?N.push(wK.range(M,G)):(M>=C.to||G<=C.from)&&N.push(yK.range(M,G)),N.length>A.maxMatches))return AA.none}}return AA.set(N)}},{decorations:I=>I.decorations}),KK=q.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),lK=({state:I,dispatch:A})=>{let{selection:g}=I,B=j.create(g.ranges.map(C=>I.wordAt(C.head)||j.cursor(C.head)),g.mainIndex);return B.eq(g)?!1:(A(I.update({selection:B})),!0)};function kK(I,A){let{main:g,ranges:B}=I.selection,C=I.wordAt(g.head),Q=C&&C.from==g.from&&C.to==g.to;for(let E=!1,N=new gB(I.doc,A,B[B.length-1].to);;)if(N.next(),N.done){if(E)return null;N=new gB(I.doc,A,0,Math.max(0,B[B.length-1].from-1)),E=!0}else{if(E&&B.some(D=>D.from==N.value.from))continue;if(Q){let D=I.wordAt(N.value.from);if(!D||D.from!=N.value.from||D.to!=N.value.to)continue}return N.value}}const ZK=({state:I,dispatch:A})=>{let{ranges:g}=I.selection;if(g.some(Q=>Q.from===Q.to))return lK({state:I,dispatch:A});let B=I.sliceDoc(g[0].from,g[0].to);if(I.selection.ranges.some(Q=>I.sliceDoc(Q.from,Q.to)!=B))return!1;let C=kK(I,B);return C?(A(I.update({selection:I.selection.addRange(j.range(C.from,C.to),!1),effects:q.scrollIntoView(C.to)})),!0):!1},BB=r.define({combine(I){return Og(I,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:A=>new jK(A),scrollToMatch:A=>q.scrollIntoView(A)})}});class p0{constructor(A){this.search=A.search,this.caseSensitive=!!A.caseSensitive,this.literal=!!A.literal,this.regexp=!!A.regexp,this.replace=A.replace||"",this.valid=!!this.search&&(!this.regexp||iK(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!A.wholeWord}unquote(A){return this.literal?A:A.replace(/\\([nrt\\])/g,(g,B)=>B=="n"?`
|
1628
|
-
`:B=="r"?"\r":B=="t"?" ":"\\")}eq(A){return this.search==A.search&&this.replace==A.replace&&this.caseSensitive==A.caseSensitive&&this.regexp==A.regexp&&this.wholeWord==A.wholeWord}create(){return this.regexp?new dK(this):new aK(this)}getCursor(A,g=0,B){let C=A.doc?A:CA.create({doc:A});return B==null&&(B=C.doc.length),this.regexp?QB(this,C,g,B):CB(this,C,g,B)}}class x0{constructor(A){this.spec=A}}function CB(I,A,g,B){return new gB(A.doc,I.unquoted,g,B,I.caseSensitive?void 0:C=>C.toLowerCase(),I.wholeWord?hK(A.doc,A.charCategorizer(A.selection.main.head)):void 0)}function hK(I,A){return(g,B,C,Q)=>((Q>g||Q+C.length<B)&&(Q=Math.max(0,g-2),C=I.sliceString(Q,Math.min(I.length,B+2))),(A(bQ(C,g-Q))!=YA.Word||A(dQ(C,g-Q))!=YA.Word)&&(A(dQ(C,B-Q))!=YA.Word||A(bQ(C,B-Q))!=YA.Word))}class aK extends x0{constructor(A){super(A)}nextMatch(A,g,B){let C=CB(this.spec,A,B,A.doc.length).nextOverlapping();return C.done&&(C=CB(this.spec,A,0,g).nextOverlapping()),C.done?null:C.value}prevMatchInRange(A,g,B){for(let C=B;;){let Q=Math.max(g,C-1e4-this.spec.unquoted.length),E=CB(this.spec,A,Q,C),N=null;for(;!E.nextOverlapping().done;)N=E.value;if(N)return N;if(Q==g)return null;C-=1e4}}prevMatch(A,g,B){return this.prevMatchInRange(A,0,g)||this.prevMatchInRange(A,B,A.doc.length)}getReplacement(A){return this.spec.unquote(this.spec.replace)}matchAll(A,g){let B=CB(this.spec,A,0,A.doc.length),C=[];for(;!B.next().done;){if(C.length>=g)return null;C.push(B.value)}return C}highlight(A,g,B,C){let Q=CB(this.spec,A,Math.max(0,g-this.spec.unquoted.length),Math.min(B+this.spec.unquoted.length,A.doc.length));for(;!Q.next().done;)C(Q.value.from,Q.value.to)}}function QB(I,A,g,B){return new e0(A.doc,I.search,{ignoreCase:!I.caseSensitive,test:I.wholeWord?bK(A.charCategorizer(A.selection.main.head)):void 0},g,B)}function bQ(I,A){return I.slice(pA(I,A,!1),A)}function dQ(I,A){return I.slice(A,pA(I,A))}function bK(I){return(A,g,B)=>!B[0].length||(I(bQ(B.input,B.index))!=YA.Word||I(dQ(B.input,B.index))!=YA.Word)&&(I(dQ(B.input,B.index+B[0].length))!=YA.Word||I(bQ(B.input,B.index+B[0].length))!=YA.Word)}class dK extends x0{nextMatch(A,g,B){let C=QB(this.spec,A,B,A.doc.length).next();return C.done&&(C=QB(this.spec,A,0,g).next()),C.done?null:C.value}prevMatchInRange(A,g,B){for(let C=1;;C++){let Q=Math.max(g,B-C*1e4),E=QB(this.spec,A,Q,B),N=null;for(;!E.next().done;)N=E.value;if(N&&(Q==g||N.from>Q+10))return N;if(Q==g)return null}}prevMatch(A,g,B){return this.prevMatchInRange(A,0,g)||this.prevMatchInRange(A,B,A.doc.length)}getReplacement(A){return this.spec.unquote(this.spec.replace.replace(/\$([$&\d+])/g,(g,B)=>B=="$"?"$":B=="&"?A.match[0]:B!="0"&&+B<A.match.length?A.match[B]:g))}matchAll(A,g){let B=QB(this.spec,A,0,A.doc.length),C=[];for(;!B.next().done;){if(C.length>=g)return null;C.push(B.value)}return C}highlight(A,g,B,C){let Q=QB(this.spec,A,Math.max(0,g-250),Math.min(B+250,A.doc.length));for(;!Q.next().done;)C(Q.value.from,Q.value.to)}}const PB=IA.define(),oN=IA.define(),iI=nA.define({create(I){return new MN(iN(I).create(),null)},update(I,A){for(let g of A.effects)g.is(PB)?I=new MN(g.value.create(),I.panel):g.is(oN)&&(I=new MN(I.query,g.value?GN:null));return I},provide:I=>uB.from(I,A=>A.panel)});class MN{constructor(A,g){this.query=A,this.panel=g}}const HK=AA.mark({class:"cm-searchMatch"}),RK=AA.mark({class:"cm-searchMatch cm-searchMatch-selected"}),UK=RA.fromClass(class{constructor(I){this.view=I,this.decorations=this.highlight(I.state.field(iI))}update(I){let A=I.state.field(iI);(A!=I.startState.field(iI)||I.docChanged||I.selectionSet||I.viewportChanged)&&(this.decorations=this.highlight(A))}highlight({query:I,panel:A}){if(!A||!I.spec.valid)return AA.none;let{view:g}=this,B=new ZI;for(let C=0,Q=g.visibleRanges,E=Q.length;C<E;C++){let{from:N,to:D}=Q[C];for(;C<E-1&&D>Q[C+1].from-2*250;)D=Q[++C].to;I.highlight(g.state,N,D,(o,M)=>{let G=g.state.selection.ranges.some(i=>i.from==o&&i.to==M);B.add(o,M,G?RK:HK)})}return B.finish()}},{decorations:I=>I.decorations});function qB(I){return A=>{let g=A.state.field(iI,!1);return g&&g.query.spec.valid?I(A,g):J0(A)}}const HQ=qB((I,{query:A})=>{let{to:g}=I.state.selection.main,B=A.nextMatch(I.state,g,g);if(!B)return!1;let C=j.single(B.from,B.to),Q=I.state.facet(BB);return I.dispatch({selection:C,effects:[LN(I,B),Q.scrollToMatch(C.main,I)],userEvent:"select.search"}),O0(I),!0}),RQ=qB((I,{query:A})=>{let{state:g}=I,{from:B}=g.selection.main,C=A.prevMatch(g,B,B);if(!C)return!1;let Q=j.single(C.from,C.to),E=I.state.facet(BB);return I.dispatch({selection:Q,effects:[LN(I,C),E.scrollToMatch(Q.main,I)],userEvent:"select.search"}),O0(I),!0}),TK=qB((I,{query:A})=>{let g=A.matchAll(I.state,1e3);return!g||!g.length?!1:(I.dispatch({selection:j.create(g.map(B=>j.range(B.from,B.to))),userEvent:"select.search.matches"}),!0)}),eK=({state:I,dispatch:A})=>{let g=I.selection;if(g.ranges.length>1||g.main.empty)return!1;let{from:B,to:C}=g.main,Q=[],E=0;for(let N=new gB(I.doc,I.sliceDoc(B,C));!N.next().done;){if(Q.length>1e3)return!1;N.value.from==B&&(E=Q.length),Q.push(j.range(N.value.from,N.value.to))}return A(I.update({selection:j.create(Q,E),userEvent:"select.search.matches"})),!0},n0=qB((I,{query:A})=>{let{state:g}=I,{from:B,to:C}=g.selection.main;if(g.readOnly)return!1;let Q=A.nextMatch(g,B,B);if(!Q)return!1;let E=[],N,D,o=[];if(Q.from==B&&Q.to==C&&(D=g.toText(A.getReplacement(Q)),E.push({from:Q.from,to:Q.to,insert:D}),Q=A.nextMatch(g,Q.from,Q.to),o.push(q.announce.of(g.phrase("replaced match on line $",g.doc.lineAt(B).number)+"."))),Q){let M=E.length==0||E[0].from>=Q.to?0:Q.to-Q.from-D.length;N=j.single(Q.from-M,Q.to-M),o.push(LN(I,Q)),o.push(g.facet(BB).scrollToMatch(N.main,I))}return I.dispatch({changes:E,selection:N,effects:o,userEvent:"input.replace"}),!0}),zK=qB((I,{query:A})=>{if(I.state.readOnly)return!1;let g=A.matchAll(I.state,1e9).map(C=>{let{from:Q,to:E}=C;return{from:Q,to:E,insert:A.getReplacement(C)}});if(!g.length)return!1;let B=I.state.phrase("replaced $ matches",g.length)+".";return I.dispatch({changes:g,effects:q.announce.of(B),userEvent:"input.replace.all"}),!0});function GN(I){return I.state.facet(BB).createPanel(I)}function iN(I,A){var g,B,C,Q,E;let N=I.selection.main,D=N.empty||N.to>N.from+100?"":I.sliceDoc(N.from,N.to);if(A&&!D)return A;let o=I.facet(BB);return new p0({search:((g=A==null?void 0:A.literal)!==null&&g!==void 0?g:o.literal)?D:D.replace(/\n/g,"\\n"),caseSensitive:(B=A==null?void 0:A.caseSensitive)!==null&&B!==void 0?B:o.caseSensitive,literal:(C=A==null?void 0:A.literal)!==null&&C!==void 0?C:o.literal,regexp:(Q=A==null?void 0:A.regexp)!==null&&Q!==void 0?Q:o.regexp,wholeWord:(E=A==null?void 0:A.wholeWord)!==null&&E!==void 0?E:o.wholeWord})}function W0(I){let A=JB(I,GN);return A&&A.dom.querySelector("[main-field]")}function O0(I){let A=W0(I);A&&A==I.root.activeElement&&A.select()}const J0=I=>{let A=I.state.field(iI,!1);if(A&&A.panel){let g=W0(I);if(g&&g!=I.root.activeElement){let B=iN(I.state,A.query.spec);B.valid&&I.dispatch({effects:PB.of(B)}),g.focus(),g.select()}}else I.dispatch({effects:[oN.of(!0),A?PB.of(iN(I.state,A.query.spec)):IA.appendConfig.of(pK)]});return!0},u0=I=>{let A=I.state.field(iI,!1);if(!A||!A.panel)return!1;let g=JB(I,GN);return g&&g.dom.contains(I.root.activeElement)&&I.focus(),I.dispatch({effects:oN.of(!1)}),!0},FK=[{key:"Mod-f",run:J0,scope:"editor search-panel"},{key:"F3",run:HQ,shift:RQ,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:HQ,shift:RQ,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:u0,scope:"editor search-panel"},{key:"Mod-Shift-l",run:eK},{key:"Alt-g",run:LK},{key:"Mod-d",run:ZK,preventDefault:!0}];class jK{constructor(A){this.view=A;let g=this.query=A.state.field(iI).query.spec;this.commit=this.commit.bind(this),this.searchField=GA("input",{value:g.search,placeholder:Ig(A,"Find"),"aria-label":Ig(A,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=GA("input",{value:g.replace,placeholder:Ig(A,"Replace"),"aria-label":Ig(A,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=GA("input",{type:"checkbox",name:"case",form:"",checked:g.caseSensitive,onchange:this.commit}),this.reField=GA("input",{type:"checkbox",name:"re",form:"",checked:g.regexp,onchange:this.commit}),this.wordField=GA("input",{type:"checkbox",name:"word",form:"",checked:g.wholeWord,onchange:this.commit});function B(C,Q,E){return GA("button",{class:"cm-button",name:C,onclick:Q,type:"button"},E)}this.dom=GA("div",{onkeydown:C=>this.keydown(C),class:"cm-search"},[this.searchField,B("next",()=>HQ(A),[Ig(A,"next")]),B("prev",()=>RQ(A),[Ig(A,"previous")]),B("select",()=>TK(A),[Ig(A,"all")]),GA("label",null,[this.caseField,Ig(A,"match case")]),GA("label",null,[this.reField,Ig(A,"regexp")]),GA("label",null,[this.wordField,Ig(A,"by word")]),...A.state.readOnly?[]:[GA("br"),this.replaceField,B("replace",()=>n0(A),[Ig(A,"replace")]),B("replaceAll",()=>zK(A),[Ig(A,"replace all")])],GA("button",{name:"close",onclick:()=>u0(A),"aria-label":Ig(A,"close"),type:"button"},["×"])])}commit(){let A=new p0({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});A.eq(this.query)||(this.query=A,this.view.dispatch({effects:PB.of(A)}))}keydown(A){ow(this.view,A,"search-panel")?A.preventDefault():A.keyCode==13&&A.target==this.searchField?(A.preventDefault(),(A.shiftKey?RQ:HQ)(this.view)):A.keyCode==13&&A.target==this.replaceField&&(A.preventDefault(),n0(this.view))}update(A){for(let g of A.transactions)for(let B of g.effects)B.is(PB)&&!B.value.eq(this.query)&&this.setQuery(B.value)}setQuery(A){this.query=A,this.searchField.value=A.search,this.replaceField.value=A.replace,this.caseField.checked=A.caseSensitive,this.reField.checked=A.regexp,this.wordField.checked=A.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(BB).top}}function Ig(I,A){return I.state.phrase(A)}const UQ=30,TQ=/[\s\.,:;?!]/;function LN(I,{from:A,to:g}){let B=I.state.doc.lineAt(A),C=I.state.doc.lineAt(g).to,Q=Math.max(B.from,A-UQ),E=Math.min(C,g+UQ),N=I.state.sliceDoc(Q,E);if(Q!=B.from){for(let D=0;D<UQ;D++)if(!TQ.test(N[D+1])&&TQ.test(N[D])){N=N.slice(D);break}}if(E!=C){for(let D=N.length-1;D>N.length-UQ;D--)if(!TQ.test(N[D-1])&&TQ.test(N[D])){N=N.slice(0,D);break}}return q.announce.of(`${I.state.phrase("current match")}. ${N} ${I.state.phrase("on line")} ${B.number}.`)}const mK=q.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"}}),pK=[iI,WI.low(UK),mK];class v0{constructor(A,g,B){this.state=A,this.pos=g,this.explicit=B,this.abortListeners=[]}tokenBefore(A){let g=XA(this.state).resolveInner(this.pos,-1);for(;g&&A.indexOf(g.name)<0;)g=g.parent;return g?{from:g.from,to:this.pos,text:this.state.sliceDoc(g.from,this.pos),type:g.type}:null}matchBefore(A){let g=this.state.doc.lineAt(this.pos),B=Math.max(g.from,this.pos-250),C=g.text.slice(B-g.from,this.pos-g.from),Q=C.search(r0(A,!1));return Q<0?null:{from:B+Q,to:this.pos,text:C.slice(Q)}}get aborted(){return this.abortListeners==null}addEventListener(A,g){A=="abort"&&this.abortListeners&&this.abortListeners.push(g)}}function V0(I){let A=Object.keys(I).join(""),g=/\w/.test(A);return g&&(A=A.replace(/\w/g,"")),`[${g?"\\w":""}${A.replace(/[^\w\s]/g,"\\$&")}]`}function xK(I){let A=Object.create(null),g=Object.create(null);for(let{label:C}of I){A[C[0]]=!0;for(let Q=1;Q<C.length;Q++)g[C[Q]]=!0}let B=V0(A)+V0(g)+"*$";return[new RegExp("^"+B),new RegExp(B)]}function nK(I){let A=I.map(C=>typeof C=="string"?{label:C}:C),[g,B]=A.every(C=>/^\w+$/.test(C.label))?[/\w*$/,/\w+$/]:xK(A);return C=>{let Q=C.matchBefore(B);return Q||C.explicit?{from:Q?Q.from:C.pos,options:A,validFor:g}:null}}let X0=class{constructor(A,g,B,C){this.completion=A,this.source=g,this.match=B,this.score=C}};function LI(I){return I.selection.main.from}function r0(I,A){var g;let{source:B}=I,C=A&&B[0]!="^",Q=B[B.length-1]!="$";return!C&&!Q?I:new RegExp(`${C?"^":""}(?:${B})${Q?"$":""}`,(g=I.flags)!==null&&g!==void 0?g:I.ignoreCase?"i":"")}const WK=Wg.define();function OK(I,A,g,B){let{main:C}=I.selection,Q=g-C.from,E=B-C.from;return Object.assign(Object.assign({},I.changeByRange(N=>N!=C&&g!=B&&I.sliceDoc(N.from+Q,N.from+E)!=I.sliceDoc(g,B)?{range:N}:{changes:{from:N.from+Q,to:B==C.from?N.to:N.from+E,insert:A},range:j.cursor(N.from+Q+A.length)})),{userEvent:"input.complete"})}const f0=new WeakMap;function JK(I){if(!Array.isArray(I))return I;let A=f0.get(I);return A||f0.set(I,A=nK(I)),A}const SN=IA.define(),_B=IA.define();class uK{constructor(A){this.pattern=A,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let g=0;g<A.length;){let B=TA(A,g),C=Dg(B);this.chars.push(B);let Q=A.slice(g,g+C),E=Q.toUpperCase();this.folded.push(TA(E==Q?Q.toLowerCase():E,0)),g+=C}this.astral=A.length!=this.chars.length}ret(A,g){return this.score=A,this.matched=g,!0}match(A){if(this.pattern.length==0)return this.ret(-100,[]);if(A.length<this.pattern.length)return!1;let{chars:g,folded:B,any:C,precise:Q,byWord:E}=this;if(g.length==1){let h=TA(A,0),K=Dg(h),y=K==A.length?0:-100;if(h!=g[0])if(h==B[0])y+=-200;else return!1;return this.ret(y,[0,K])}let N=A.indexOf(this.pattern);if(N==0)return this.ret(A.length==this.pattern.length?0:-100,[0,this.pattern.length]);let D=g.length,o=0;if(N<0){for(let h=0,K=Math.min(A.length,200);h<K&&o<D;){let y=TA(A,h);(y==g[o]||y==B[o])&&(C[o++]=h),h+=Dg(y)}if(o<D)return!1}let M=0,G=0,i=!1,L=0,Y=-1,w=-1,t=/[a-z]/.test(A),Z=!0;for(let h=0,K=Math.min(A.length,200),y=0;h<K&&G<D;){let S=TA(A,h);N<0&&(M<D&&S==g[M]&&(Q[M++]=h),L<D&&(S==g[L]||S==B[L]?(L==0&&(Y=h),w=h+1,L++):L=0));let c,k=S<255?S>=48&&S<=57||S>=97&&S<=122?2:S>=65&&S<=90?1:0:(c=aE(S))!=c.toLowerCase()?1:c!=c.toUpperCase()?2:0;(!h||k==1&&t||y==0&&k!=0)&&(g[G]==S||B[G]==S&&(i=!0)?E[G++]=h:E.length&&(Z=!1)),y=k,h+=Dg(S)}return G==D&&E[0]==0&&Z?this.result(-100+(i?-200:0),E,A):L==D&&Y==0?this.ret(-200-A.length+(w==A.length?0:-100),[0,w]):N>-1?this.ret(-700-A.length,[N,N+this.pattern.length]):L==D?this.ret(-200+-700-A.length,[Y,w]):G==D?this.result(-100+(i?-200:0)+-700+(Z?0:-1100),E,A):g.length==2?!1:this.result((C[0]?-700:0)+-200+-1100,C,A)}result(A,g,B){let C=[],Q=0;for(let E of g){let N=E+(this.astral?Dg(TA(B,E)):1);Q&&C[Q-1]==E?C[Q-1]=N:(C[Q++]=E,C[Q++]=N)}return this.ret(A-B.length,C)}}const fA=r.define({combine(I){return Og(I,{activateOnTyping:!0,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:vK,compareCompletions:(A,g)=>A.label.localeCompare(g.label),interactionDelay:75},{defaultKeymap:(A,g)=>A&&g,closeOnBlur:(A,g)=>A&&g,icons:(A,g)=>A&&g,tooltipClass:(A,g)=>B=>P0(A(B),g(B)),optionClass:(A,g)=>B=>P0(A(B),g(B)),addToOptions:(A,g)=>A.concat(g)})}});function P0(I,A){return I?A?I+" "+A:I:A}function vK(I,A,g,B,C){let Q=I.textDirection==wA.RTL,E=Q,N=!1,D="top",o,M,G=A.left-C.left,i=C.right-A.right,L=B.right-B.left,Y=B.bottom-B.top;if(E&&G<Math.min(L,i)?E=!1:!E&&i<Math.min(L,G)&&(E=!0),L<=(E?G:i))o=Math.max(C.top,Math.min(g.top,C.bottom-Y))-A.top,M=Math.min(400,E?G:i);else{N=!0,M=Math.min(400,(Q?A.right:C.right-A.left)-30);let w=C.bottom-A.bottom;w>=Y||w>A.top?o=g.bottom-A.top:(D="bottom",o=A.bottom-g.top)}return{style:`${D}: ${o}px; max-width: ${M}px`,class:"cm-completionInfo-"+(N?Q?"left-narrow":"right-narrow":E?"left":"right")}}function VK(I){let A=I.addToOptions.slice();return I.icons&&A.push({render(g){let B=document.createElement("div");return B.classList.add("cm-completionIcon"),g.type&&B.classList.add(...g.type.split(/\s+/g).map(C=>"cm-completionIcon-"+C)),B.setAttribute("aria-hidden","true"),B},position:20}),A.push({render(g,B,C){let Q=document.createElement("span");Q.className="cm-completionLabel";let E=g.displayLabel||g.label,N=0;for(let D=0;D<C.length;){let o=C[D++],M=C[D++];o>N&&Q.appendChild(document.createTextNode(E.slice(N,o)));let G=Q.appendChild(document.createElement("span"));G.appendChild(document.createTextNode(E.slice(o,M))),G.className="cm-completionMatchedText",N=M}return N<E.length&&Q.appendChild(document.createTextNode(E.slice(N))),Q},position:50},{render(g){if(!g.detail)return null;let B=document.createElement("span");return B.className="cm-completionDetail",B.textContent=g.detail,B},position:80}),A.sort((g,B)=>g.position-B.position).map(g=>g.render)}function q0(I,A,g){if(I<=g)return{from:0,to:I};if(A<0&&(A=0),A<=I>>1){let C=Math.floor(A/g);return{from:C*g,to:(C+1)*g}}let B=Math.floor((I-A)/g);return{from:I-(B+1)*g,to:I-B*g}}class XK{constructor(A,g,B){this.view=A,this.stateField=g,this.applyCompletion=B,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:D=>this.placeInfo(D),key:this},this.space=null,this.currentClass="";let C=A.state.field(g),{options:Q,selected:E}=C.open,N=A.state.facet(fA);this.optionContent=VK(N),this.optionClass=N.optionClass,this.tooltipClass=N.tooltipClass,this.range=q0(Q.length,E,N.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(A.state),this.dom.addEventListener("mousedown",D=>{for(let o=D.target,M;o&&o!=this.dom;o=o.parentNode)if(o.nodeName=="LI"&&(M=/-(\d+)$/.exec(o.id))&&+M[1]<Q.length){this.applyCompletion(A,Q[+M[1]]),D.preventDefault();return}}),this.dom.addEventListener("focusout",D=>{let o=A.state.field(this.stateField,!1);o&&o.tooltip&&A.state.facet(fA).closeOnBlur&&D.relatedTarget!=A.contentDOM&&A.dispatch({effects:_B.of(null)})}),this.list=this.dom.appendChild(this.createListBox(Q,C.id,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}mount(){this.updateSel()}update(A){var g,B,C;let Q=A.state.field(this.stateField),E=A.startState.field(this.stateField);this.updateTooltipClass(A.state),Q!=E&&(this.updateSel(),((g=Q.open)===null||g===void 0?void 0:g.disabled)!=((B=E.open)===null||B===void 0?void 0:B.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!(!((C=Q.open)===null||C===void 0)&&C.disabled)))}updateTooltipClass(A){let g=this.tooltipClass(A);if(g!=this.currentClass){for(let B of this.currentClass.split(" "))B&&this.dom.classList.remove(B);for(let B of g.split(" "))B&&this.dom.classList.add(B);this.currentClass=g}}positioned(A){this.space=A,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let A=this.view.state.field(this.stateField),g=A.open;if((g.selected>-1&&g.selected<this.range.from||g.selected>=this.range.to)&&(this.range=q0(g.options.length,g.selected,this.view.state.facet(fA).maxRenderedOptions),this.list.remove(),this.list=this.dom.appendChild(this.createListBox(g.options,A.id,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})),this.updateSelectedOption(g.selected)){this.destroyInfo();let{completion:B}=g.options[g.selected],{info:C}=B;if(!C)return;let Q=typeof C=="string"?document.createTextNode(C):C(B);if(!Q)return;"then"in Q?Q.then(E=>{E&&this.view.state.field(this.stateField,!1)==A&&this.addInfoPane(E,B)}).catch(E=>Ng(this.view.state,E,"completion info")):this.addInfoPane(Q,B)}}addInfoPane(A,g){this.destroyInfo();let B=this.info=document.createElement("div");if(B.className="cm-tooltip cm-completionInfo",A.nodeType!=null)B.appendChild(A),this.infoDestroy=null;else{let{dom:C,destroy:Q}=A;B.appendChild(C),this.infoDestroy=Q||null}this.dom.appendChild(B),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(A){let g=null;for(let B=this.list.firstChild,C=this.range.from;B;B=B.nextSibling,C++)B.nodeName!="LI"||!B.id?C--:C==A?B.hasAttribute("aria-selected")||(B.setAttribute("aria-selected","true"),g=B):B.hasAttribute("aria-selected")&&B.removeAttribute("aria-selected");return g&&fK(this.list,g),g}measureInfo(){let A=this.dom.querySelector("[aria-selected]");if(!A||!this.info)return null;let g=this.dom.getBoundingClientRect(),B=this.info.getBoundingClientRect(),C=A.getBoundingClientRect(),Q=this.space;if(!Q){let E=this.dom.ownerDocument.defaultView||window;Q={left:0,top:0,right:E.innerWidth,bottom:E.innerHeight}}return C.top>Math.min(Q.bottom,g.bottom)-10||C.bottom<Math.max(Q.top,g.top)+10?null:this.view.state.facet(fA).positionInfo(this.view,g,C,B,Q)}placeInfo(A){this.info&&(A?(A.style&&(this.info.style.cssText=A.style),this.info.className="cm-tooltip cm-completionInfo "+(A.class||"")):this.info.style.cssText="top: -1e6px")}createListBox(A,g,B){const C=document.createElement("ul");C.id=g,C.setAttribute("role","listbox"),C.setAttribute("aria-expanded","true"),C.setAttribute("aria-label",this.view.state.phrase("Completions"));let Q=null;for(let E=B.from;E<B.to;E++){let{completion:N,match:D}=A[E],{section:o}=N;if(o){let i=typeof o=="string"?o:o.name;if(i!=Q&&(E>B.from||B.from==0))if(Q=i,typeof o!="string"&&o.header)C.appendChild(o.header(o));else{let L=C.appendChild(document.createElement("completion-section"));L.textContent=i}}const M=C.appendChild(document.createElement("li"));M.id=g+"-"+E,M.setAttribute("role","option");let G=this.optionClass(N);G&&(M.className=G);for(let i of this.optionContent){let L=i(N,this.view.state,D);L&&M.appendChild(L)}}return B.from&&C.classList.add("cm-completionListIncompleteTop"),B.to<A.length&&C.classList.add("cm-completionListIncompleteBottom"),C}destroyInfo(){this.info&&(this.infoDestroy&&this.infoDestroy(),this.info.remove(),this.info=null)}destroy(){this.destroyInfo()}}function rK(I,A){return g=>new XK(g,I,A)}function fK(I,A){let g=I.getBoundingClientRect(),B=A.getBoundingClientRect();B.top<g.top?I.scrollTop-=g.top-B.top:B.bottom>g.bottom&&(I.scrollTop+=B.bottom-g.bottom)}function _0(I){return(I.boost||0)*100+(I.apply?10:0)+(I.info?5:0)+(I.type?1:0)}function PK(I,A){let g=[],B=null,C=D=>{g.push(D);let{section:o}=D.completion;if(o){B||(B=[]);let M=typeof o=="string"?o:o.name;B.some(G=>G.name==M)||B.push(typeof o=="string"?{name:M}:o)}};for(let D of I)if(D.hasResult()){let o=D.result.getMatch;if(D.result.filter===!1)for(let M of D.result.options)C(new X0(M,D.source,o?o(M):[],1e9-g.length));else{let M=new uK(A.sliceDoc(D.from,D.to));for(let G of D.result.options)if(M.match(G.label)){let i=G.displayLabel?o?o(G,M.matched):[]:M.matched;C(new X0(G,D.source,i,M.score+(G.boost||0)))}}}if(B){let D=Object.create(null),o=0,M=(G,i)=>{var L,Y;return((L=G.rank)!==null&&L!==void 0?L:1e9)-((Y=i.rank)!==null&&Y!==void 0?Y:1e9)||(G.name<i.name?-1:1)};for(let G of B.sort(M))o-=1e5,D[G.name]=o;for(let G of g){let{section:i}=G.completion;i&&(G.score+=D[typeof i=="string"?i:i.name])}}let Q=[],E=null,N=A.facet(fA).compareCompletions;for(let D of g.sort((o,M)=>M.score-o.score||N(o.completion,M.completion))){let o=D.completion;!E||E.label!=o.label||E.detail!=o.detail||E.type!=null&&o.type!=null&&E.type!=o.type||E.apply!=o.apply||E.boost!=o.boost?Q.push(D):_0(D.completion)>_0(E)&&(Q[Q.length-1]=D),E=D.completion}return Q}class EB{constructor(A,g,B,C,Q,E){this.options=A,this.attrs=g,this.tooltip=B,this.timestamp=C,this.selected=Q,this.disabled=E}setSelected(A,g){return A==this.selected||A>=this.options.length?this:new EB(this.options,$0(g,A),this.tooltip,this.timestamp,A,this.disabled)}static build(A,g,B,C,Q){let E=PK(A,g);if(!E.length)return C&&A.some(D=>D.state==1)?new EB(C.options,C.attrs,C.tooltip,C.timestamp,C.selected,!0):null;let N=g.facet(fA).selectOnOpen?0:-1;if(C&&C.selected!=N&&C.selected!=-1){let D=C.options[C.selected].completion;for(let o=0;o<E.length;o++)if(E[o].completion==D){N=o;break}}return new EB(E,$0(B,N),{pos:A.reduce((D,o)=>o.hasResult()?Math.min(D,o.from):D,1e8),create:rK(Bg,IL),above:Q.aboveCursor},C?C.timestamp:Date.now(),N,!1)}map(A){return new EB(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:A.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}}class eQ{constructor(A,g,B){this.active=A,this.id=g,this.open=B}static start(){return new eQ($K,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(A){let{state:g}=A,B=g.facet(fA),Q=(B.override||g.languageDataAt("autocomplete",LI(g)).map(JK)).map(N=>(this.active.find(o=>o.source==N)||new PA(N,this.active.some(o=>o.state!=0)?1:0)).update(A,B));Q.length==this.active.length&&Q.every((N,D)=>N==this.active[D])&&(Q=this.active);let E=this.open;E&&A.docChanged&&(E=E.map(A.changes)),A.selection||Q.some(N=>N.hasResult()&&A.changes.touchesRange(N.from,N.to))||!qK(Q,this.active)?E=EB.build(Q,g,this.id,E,B):E&&E.disabled&&!Q.some(N=>N.state==1)&&(E=null),!E&&Q.every(N=>N.state!=1)&&Q.some(N=>N.hasResult())&&(Q=Q.map(N=>N.hasResult()?new PA(N.source,0):N));for(let N of A.effects)N.is(gL)&&(E=E&&E.setSelected(N.value,this.id));return Q==this.active&&E==this.open?this:new eQ(Q,this.id,E)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:_K}}function qK(I,A){if(I==A)return!0;for(let g=0,B=0;;){for(;g<I.length&&!I[g].hasResult;)g++;for(;B<A.length&&!A[B].hasResult;)B++;let C=g==I.length,Q=B==A.length;if(C||Q)return C==Q;if(I[g++].result!=A[B++].result)return!1}}const _K={"aria-autocomplete":"list"};function $0(I,A){let g={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":I};return A>-1&&(g["aria-activedescendant"]=I+"-"+A),g}const $K=[];function cN(I){return I.isUserEvent("input.type")?"input":I.isUserEvent("delete.backward")?"delete":null}class PA{constructor(A,g,B=-1){this.source=A,this.state=g,this.explicitPos=B}hasResult(){return!1}update(A,g){let B=cN(A),C=this;B?C=C.handleUserEvent(A,B,g):A.docChanged?C=C.handleChange(A):A.selection&&C.state!=0&&(C=new PA(C.source,0));for(let Q of A.effects)if(Q.is(SN))C=new PA(C.source,1,Q.value?LI(A.state):-1);else if(Q.is(_B))C=new PA(C.source,0);else if(Q.is(AL))for(let E of Q.value)E.source==C.source&&(C=E);return C}handleUserEvent(A,g,B){return g=="delete"||!B.activateOnTyping?this.map(A.changes):new PA(this.source,1)}handleChange(A){return A.changes.touchesRange(LI(A.startState))?new PA(this.source,0):this.map(A.changes)}map(A){return A.empty||this.explicitPos<0?this:new PA(this.source,this.state,A.mapPos(this.explicitPos))}}class DB extends PA{constructor(A,g,B,C,Q){super(A,2,g),this.result=B,this.from=C,this.to=Q}hasResult(){return!0}handleUserEvent(A,g,B){var C;let Q=A.changes.mapPos(this.from),E=A.changes.mapPos(this.to,1),N=LI(A.state);if((this.explicitPos<0?N<=Q:N<this.from)||N>E||g=="delete"&&LI(A.startState)==this.from)return new PA(this.source,g=="input"&&B.activateOnTyping?1:0);let D=this.explicitPos<0?-1:A.changes.mapPos(this.explicitPos),o;return Al(this.result.validFor,A.state,Q,E)?new DB(this.source,D,this.result,Q,E):this.result.update&&(o=this.result.update(this.result,Q,E,new v0(A.state,N,D>=0)))?new DB(this.source,D,o,o.from,(C=o.to)!==null&&C!==void 0?C:LI(A.state)):new PA(this.source,1,D)}handleChange(A){return A.changes.touchesRange(this.from,this.to)?new PA(this.source,0):this.map(A.changes)}map(A){return A.empty?this:new DB(this.source,this.explicitPos<0?-1:A.mapPos(this.explicitPos),this.result,A.mapPos(this.from),A.mapPos(this.to,1))}}function Al(I,A,g,B){if(!I)return!1;let C=A.sliceDoc(g,B);return typeof I=="function"?I(C,g,B,A):r0(I,!0).test(C)}const AL=IA.define({map(I,A){return I.map(g=>g.map(A))}}),gL=IA.define(),Bg=nA.define({create(){return eQ.start()},update(I,A){return I.update(A)},provide:I=>[aD.from(I,A=>A.tooltip),q.contentAttributes.from(I,A=>A.attrs)]});function IL(I,A){const g=A.completion.apply||A.completion.label;let B=I.state.field(Bg).active.find(C=>C.source==A.source);return B instanceof DB?(typeof g=="string"?I.dispatch(Object.assign(Object.assign({},OK(I.state,g,B.from,B.to)),{annotations:WK.of(A.completion)})):g(I,A.completion,B.from,B.to),!0):!1}function zQ(I,A="option"){return g=>{let B=g.state.field(Bg,!1);if(!B||!B.open||B.open.disabled||Date.now()-B.open.timestamp<g.state.facet(fA).interactionDelay)return!1;let C=1,Q;A=="page"&&(Q=Gi(g,B.open.tooltip))&&(C=Math.max(2,Math.floor(Q.dom.offsetHeight/Q.dom.querySelector("li").offsetHeight)-1));let{length:E}=B.open.options,N=B.open.selected>-1?B.open.selected+C*(I?1:-1):I?0:E-1;return N<0?N=A=="page"?0:E-1:N>=E&&(N=A=="page"?E-1:0),g.dispatch({effects:gL.of(N)}),!0}}const gl=I=>{let A=I.state.field(Bg,!1);return I.state.readOnly||!A||!A.open||A.open.selected<0||A.open.disabled||Date.now()-A.open.timestamp<I.state.facet(fA).interactionDelay?!1:IL(I,A.open.options[A.open.selected])},Il=I=>I.state.field(Bg,!1)?(I.dispatch({effects:SN.of(!0)}),!0):!1,Bl=I=>{let A=I.state.field(Bg,!1);return!A||!A.active.some(g=>g.state!=0)?!1:(I.dispatch({effects:_B.of(null)}),!0)};class Cl{constructor(A,g){this.active=A,this.context=g,this.time=Date.now(),this.updates=[],this.done=void 0}}const BL=50,Ql=50,El=1e3,Dl=RA.fromClass(class{constructor(I){this.view=I,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.composing=0;for(let A of I.state.field(Bg).active)A.state==1&&this.startQuery(A)}update(I){let A=I.state.field(Bg);if(!I.selectionSet&&!I.docChanged&&I.startState.field(Bg)==A)return;let g=I.transactions.some(B=>(B.selection||B.docChanged)&&!cN(B));for(let B=0;B<this.running.length;B++){let C=this.running[B];if(g||C.updates.length+I.transactions.length>Ql&&Date.now()-C.time>El){for(let Q of C.context.abortListeners)try{Q()}catch(E){Ng(this.view.state,E)}C.context.abortListeners=null,this.running.splice(B--,1)}else C.updates.push(...I.transactions)}if(this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),this.debounceUpdate=A.active.some(B=>B.state==1&&!this.running.some(C=>C.active.source==B.source))?setTimeout(()=>this.startUpdate(),BL):-1,this.composing!=0)for(let B of I.transactions)cN(B)=="input"?this.composing=2:this.composing==2&&B.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1;let{state:I}=this.view,A=I.field(Bg);for(let g of A.active)g.state==1&&!this.running.some(B=>B.active.source==g.source)&&this.startQuery(g)}startQuery(I){let{state:A}=this.view,g=LI(A),B=new v0(A,g,I.explicitPos==g),C=new Cl(I,B);this.running.push(C),Promise.resolve(I.source(B)).then(Q=>{C.context.aborted||(C.done=Q||null,this.scheduleAccept())},Q=>{this.view.dispatch({effects:_B.of(null)}),Ng(this.view.state,Q)})}scheduleAccept(){this.running.every(I=>I.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),BL))}accept(){var I;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let A=[],g=this.view.state.facet(fA);for(let B=0;B<this.running.length;B++){let C=this.running[B];if(C.done===void 0)continue;if(this.running.splice(B--,1),C.done){let E=new DB(C.active.source,C.active.explicitPos,C.done,C.done.from,(I=C.done.to)!==null&&I!==void 0?I:LI(C.updates.length?C.updates[0].startState:this.view.state));for(let N of C.updates)E=E.update(N,g);if(E.hasResult()){A.push(E);continue}}let Q=this.view.state.field(Bg).active.find(E=>E.source==C.active.source);if(Q&&Q.state==1)if(C.done==null){let E=new PA(C.active.source,0);for(let N of C.updates)E=E.update(N,g);E.state!=1&&A.push(E)}else this.startQuery(Q)}A.length&&this.view.dispatch({effects:AL.of(A)})}},{eventHandlers:{blur(I){let A=this.view.state.field(Bg,!1);if(A&&A.tooltip&&this.view.state.facet(fA).closeOnBlur){let g=A.open&&Gi(this.view,A.open.tooltip);(!g||!g.dom.contains(I.relatedTarget))&&this.view.dispatch({effects:_B.of(null)})}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:SN.of(!1)}),20),this.composing=0}}}),Nl=q.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}}),$B={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},UI=IA.define({map(I,A){let g=A.mapPos(I,-1,uA.TrackAfter);return g??void 0}}),YN=new class extends kI{};YN.startSide=1,YN.endSide=-1;const CL=nA.define({create(){return NA.empty},update(I,A){if(A.selection){let g=A.state.doc.lineAt(A.selection.main.head).from,B=A.startState.doc.lineAt(A.startState.selection.main.head).from;g!=A.changes.mapPos(B,-1)&&(I=NA.empty)}I=I.map(A.changes);for(let g of A.effects)g.is(UI)&&(I=I.update({add:[YN.range(g.value,g.value+1)]}));return I}});function ol(){return[Gl,CL]}const yN="()[]{}<>";function QL(I){for(let A=0;A<yN.length;A+=2)if(yN.charCodeAt(A)==I)return yN.charAt(A+1);return aE(I<128?I:I+1)}function EL(I,A){return I.languageDataAt("closeBrackets",A)[0]||$B}const Ml=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),Gl=q.inputHandler.of((I,A,g,B)=>{if((Ml?I.composing:I.compositionStarted)||I.state.readOnly)return!1;let C=I.state.selection.main;if(B.length>2||B.length==2&&Dg(TA(B,0))==1||A!=C.from||g!=C.to)return!1;let Q=Ll(I.state,B);return Q?(I.dispatch(Q),!0):!1}),il=[{key:"Backspace",run:({state:I,dispatch:A})=>{if(I.readOnly)return!1;let B=EL(I,I.selection.main.head).brackets||$B.brackets,C=null,Q=I.changeByRange(E=>{if(E.empty){let N=Sl(I.doc,E.head);for(let D of B)if(D==N&&FQ(I.doc,E.head)==QL(TA(D,0)))return{changes:{from:E.head-D.length,to:E.head+D.length},range:j.cursor(E.head-D.length)}}return{range:C=E}});return C||A(I.update(Q,{scrollIntoView:!0,userEvent:"delete.backward"})),!C}}];function Ll(I,A){let g=EL(I,I.selection.main.head),B=g.brackets||$B.brackets;for(let C of B){let Q=QL(TA(C,0));if(A==C)return Q==C?yl(I,C,B.indexOf(C+C+C)>-1,g):cl(I,C,Q,g.before||$B.before);if(A==Q&&DL(I,I.selection.main.from))return Yl(I,C,Q)}return null}function DL(I,A){let g=!1;return I.field(CL).between(0,I.doc.length,B=>{B==A&&(g=!0)}),g}function FQ(I,A){let g=I.sliceString(A,A+2);return g.slice(0,Dg(TA(g,0)))}function Sl(I,A){let g=I.sliceString(A-2,A);return Dg(TA(g,0))==g.length?g:g.slice(1)}function cl(I,A,g,B){let C=null,Q=I.changeByRange(E=>{if(!E.empty)return{changes:[{insert:A,from:E.from},{insert:g,from:E.to}],effects:UI.of(E.to+A.length),range:j.range(E.anchor+A.length,E.head+A.length)};let N=FQ(I.doc,E.head);return!N||/\s/.test(N)||B.indexOf(N)>-1?{changes:{insert:A+g,from:E.head},effects:UI.of(E.head+A.length),range:j.cursor(E.head+A.length)}:{range:C=E}});return C?null:I.update(Q,{scrollIntoView:!0,userEvent:"input.type"})}function Yl(I,A,g){let B=null,C=I.changeByRange(Q=>Q.empty&&FQ(I.doc,Q.head)==g?{changes:{from:Q.head,to:Q.head+g.length,insert:g},range:j.cursor(Q.head+g.length)}:B={range:Q});return B?null:I.update(C,{scrollIntoView:!0,userEvent:"input.type"})}function yl(I,A,g,B){let C=B.stringPrefixes||$B.stringPrefixes,Q=null,E=I.changeByRange(N=>{if(!N.empty)return{changes:[{insert:A,from:N.from},{insert:A,from:N.to}],effects:UI.of(N.to+A.length),range:j.range(N.anchor+A.length,N.head+A.length)};let D=N.head,o=FQ(I.doc,D),M;if(o==A){if(NL(I,D))return{changes:{insert:A+A,from:D},effects:UI.of(D+A.length),range:j.cursor(D+A.length)};if(DL(I,D)){let i=g&&I.sliceDoc(D,D+A.length*3)==A+A+A?A+A+A:A;return{changes:{from:D,to:D+i.length,insert:i},range:j.cursor(D+i.length)}}}else{if(g&&I.sliceDoc(D-2*A.length,D)==A+A&&(M=oL(I,D-2*A.length,C))>-1&&NL(I,M))return{changes:{insert:A+A+A+A,from:D},effects:UI.of(D+A.length),range:j.cursor(D+A.length)};if(I.charCategorizer(D)(o)!=YA.Word&&oL(I,D,C)>-1&&!wl(I,D,A,C))return{changes:{insert:A+A,from:D},effects:UI.of(D+A.length),range:j.cursor(D+A.length)}}return{range:Q=N}});return Q?null:I.update(E,{scrollIntoView:!0,userEvent:"input.type"})}function NL(I,A){let g=XA(I).resolveInner(A+1);return g.parent&&g.from==A}function wl(I,A,g,B){let C=XA(I).resolveInner(A,-1),Q=B.reduce((E,N)=>Math.max(E,N.length),0);for(let E=0;E<5;E++){let N=I.sliceDoc(C.from,Math.min(C.to,C.from+g.length+Q)),D=N.indexOf(g);if(!D||D>-1&&B.indexOf(N.slice(0,D))>-1){let M=C.firstChild;for(;M&&M.from==C.from&&M.to-M.from>g.length+D;){if(I.sliceDoc(M.to-g.length,M.to)==g)return!1;M=M.firstChild}return!0}let o=C.to==A&&C.parent;if(!o)break;C=o}return!1}function oL(I,A,g){let B=I.charCategorizer(A);if(B(I.sliceDoc(A-1,A))!=YA.Word)return A;for(let C of g){let Q=A-C.length;if(I.sliceDoc(Q,A)==C&&B(I.sliceDoc(Q-1,Q))!=YA.Word)return Q}return-1}function tl(I={}){return[Bg,fA.of(I),Dl,sl,Nl]}const ML=[{key:"Ctrl-Space",run:Il},{key:"Escape",run:Bl},{key:"ArrowDown",run:zQ(!0)},{key:"ArrowUp",run:zQ(!1)},{key:"PageDown",run:zQ(!0,"page")},{key:"PageUp",run:zQ(!1,"page")},{key:"Enter",run:gl}],sl=WI.highest(KD.computeN([fA],I=>I.facet(fA).defaultKeymap?[ML]:[]));class Kl{constructor(A,g,B){this.from=A,this.to=g,this.diagnostic=B}}class TI{constructor(A,g,B){this.diagnostics=A,this.panel=g,this.selected=B}static init(A,g,B){let C=A,Q=B.facet(cL).markerFilter;Q&&(C=Q(C));let E=AA.set(C.map(N=>N.from==N.to||N.from==N.to-1&&B.doc.lineAt(N.from).to==N.from?AA.widget({widget:new bl(N),diagnostic:N}).range(N.from):AA.mark({attributes:{class:"cm-lintRange cm-lintRange-"+N.severity+(N.markClass?" "+N.markClass:"")},diagnostic:N}).range(N.from,N.to)),!0);return new TI(E,g,NB(E))}}function NB(I,A=null,g=0){let B=null;return I.between(g,1e9,(C,Q,{spec:E})=>{if(!(A&&E.diagnostic!=A))return B=new Kl(C,Q,E.diagnostic),!1}),B}function ll(I,A){let g=I.startState.doc.lineAt(A.pos);return!!(I.effects.some(B=>B.is(wN))||I.changes.touchesRange(g.from,g.to))}function GL(I,A){return I.field(Cg,!1)?A:A.concat(IA.appendConfig.of(Rl))}function iL(I,A){return{effects:GL(I,[wN.of(A)])}}const wN=IA.define(),tN=IA.define(),LL=IA.define(),Cg=nA.define({create(){return new TI(AA.none,null,null)},update(I,A){if(A.docChanged){let g=I.diagnostics.map(A.changes),B=null;if(I.selected){let C=A.changes.mapPos(I.selected.from,1);B=NB(g,I.selected.diagnostic,C)||NB(g,null,C)}I=new TI(g,I.panel,B)}for(let g of A.effects)g.is(wN)?I=TI.init(g.value,I.panel,A.state):g.is(tN)?I=new TI(I.diagnostics,g.value?jQ.open:null,I.selected):g.is(LL)&&(I=new TI(I.diagnostics,I.panel,g.value));return I},provide:I=>[uB.from(I,A=>A.panel),q.decorations.from(I,A=>A.diagnostics)]}),kl=AA.mark({class:"cm-lintRange cm-lintRange-active"});function Zl(I,A,g){let{diagnostics:B}=I.state.field(Cg),C=[],Q=2e8,E=0;B.between(A-(g<0?1:0),A+(g>0?1:0),(D,o,{spec:M})=>{A>=D&&A<=o&&(D==o||(A>D||g>0)&&(A<o||g<0))&&(C.push(M.diagnostic),Q=Math.min(D,Q),E=Math.max(o,E))});let N=I.state.facet(cL).tooltipFilter;return N&&(C=N(C)),C.length?{pos:Q,end:E,above:I.state.doc.lineAt(Q).to<E,create(){return{dom:hl(I,C)}}}:null}function hl(I,A){return GA("ul",{class:"cm-tooltip-lint"},A.map(g=>yL(I,g,!1)))}const SL=I=>{let A=I.state.field(Cg,!1);(!A||!A.panel)&&I.dispatch({effects:GL(I.state,[tN.of(!0)])});let g=JB(I,jQ.open);return g&&g.dom.querySelector(".cm-panel-lint ul").focus(),!0},sN=I=>{let A=I.state.field(Cg,!1);return!A||!A.panel?!1:(I.dispatch({effects:tN.of(!1)}),!0)},al=[{key:"Mod-Shift-m",run:SL,preventDefault:!0},{key:"F8",run:I=>{let A=I.state.field(Cg,!1);if(!A)return!1;let g=I.state.selection.main,B=A.diagnostics.iter(g.to+1);return!B.value&&(B=A.diagnostics.iter(0),!B.value||B.from==g.from&&B.to==g.to)?!1:(I.dispatch({selection:{anchor:B.from,head:B.to},scrollIntoView:!0}),!0)}}],cL=r.define({combine(I){return Object.assign({sources:I.map(A=>A.source)},Og(I.map(A=>A.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null},{needsRefresh:(A,g)=>A?g?B=>A(B)||g(B):A:g}))}});function YL(I){let A=[];if(I)A:for(let{name:g}of I){for(let B=0;B<g.length;B++){let C=g[B];if(/[a-zA-Z]/.test(C)&&!A.some(Q=>Q.toLowerCase()==C.toLowerCase())){A.push(C);continue A}}A.push("")}return A}function yL(I,A,g){var B;let C=g?YL(A.actions):[];return GA("li",{class:"cm-diagnostic cm-diagnostic-"+A.severity},GA("span",{class:"cm-diagnosticText"},A.renderMessage?A.renderMessage():A.message),(B=A.actions)===null||B===void 0?void 0:B.map((Q,E)=>{let N=!1,D=i=>{if(i.preventDefault(),N)return;N=!0;let L=NB(I.state.field(Cg).diagnostics,A);L&&Q.apply(I,L.from,L.to)},{name:o}=Q,M=C[E]?o.indexOf(C[E]):-1,G=M<0?o:[o.slice(0,M),GA("u",o.slice(M,M+1)),o.slice(M+1)];return GA("button",{type:"button",class:"cm-diagnosticAction",onclick:D,onmousedown:D,"aria-label":` Action: ${o}${M<0?"":` (access key "${C[E]})"`}.`},G)}),A.source&&GA("div",{class:"cm-diagnosticSource"},A.source))}class bl extends XI{constructor(A){super(),this.diagnostic=A}eq(A){return A.diagnostic==this.diagnostic}toDOM(){return GA("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class wL{constructor(A,g){this.diagnostic=g,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=yL(A,g,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class jQ{constructor(A){this.view=A,this.items=[];let g=C=>{if(C.keyCode==27)sN(this.view),this.view.focus();else if(C.keyCode==38||C.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(C.keyCode==40||C.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(C.keyCode==36)this.moveSelection(0);else if(C.keyCode==35)this.moveSelection(this.items.length-1);else if(C.keyCode==13)this.view.focus();else if(C.keyCode>=65&&C.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:Q}=this.items[this.selectedIndex],E=YL(Q.actions);for(let N=0;N<E.length;N++)if(E[N].toUpperCase().charCodeAt(0)==C.keyCode){let D=NB(this.view.state.field(Cg).diagnostics,Q);D&&Q.actions[N].apply(A,D.from,D.to)}}else return;C.preventDefault()},B=C=>{for(let Q=0;Q<this.items.length;Q++)this.items[Q].dom.contains(C.target)&&this.moveSelection(Q)};this.list=GA("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:g,onclick:B}),this.dom=GA("div",{class:"cm-panel-lint"},this.list,GA("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>sN(this.view)},"×")),this.update()}get selectedIndex(){let A=this.view.state.field(Cg).selected;if(!A)return-1;for(let g=0;g<this.items.length;g++)if(this.items[g].diagnostic==A.diagnostic)return g;return-1}update(){let{diagnostics:A,selected:g}=this.view.state.field(Cg),B=0,C=!1,Q=null;for(A.between(0,this.view.state.doc.length,(E,N,{spec:D})=>{let o=-1,M;for(let G=B;G<this.items.length;G++)if(this.items[G].diagnostic==D.diagnostic){o=G;break}o<0?(M=new wL(this.view,D.diagnostic),this.items.splice(B,0,M),C=!0):(M=this.items[o],o>B&&(this.items.splice(B,o-B),C=!0)),g&&M.diagnostic==g.diagnostic?M.dom.hasAttribute("aria-selected")||(M.dom.setAttribute("aria-selected","true"),Q=M):M.dom.hasAttribute("aria-selected")&&M.dom.removeAttribute("aria-selected"),B++});B<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)C=!0,this.items.pop();this.items.length==0&&(this.items.push(new wL(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),C=!0),Q?(this.list.setAttribute("aria-activedescendant",Q.id),this.view.requestMeasure({key:this,read:()=>({sel:Q.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:E,panel:N})=>{E.top<N.top?this.list.scrollTop-=N.top-E.top:E.bottom>N.bottom&&(this.list.scrollTop+=E.bottom-N.bottom)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),C&&this.sync()}sync(){let A=this.list.firstChild;function g(){let B=A;A=B.nextSibling,B.remove()}for(let B of this.items)if(B.dom.parentNode==this.list){for(;A!=B.dom;)g();A=B.dom.nextSibling}else this.list.insertBefore(B.dom,A);for(;A;)g()}moveSelection(A){if(this.selectedIndex<0)return;let g=this.view.state.field(Cg),B=NB(g.diagnostics,this.items[A].diagnostic);B&&this.view.dispatch({selection:{anchor:B.from,head:B.to},scrollIntoView:!0,effects:LL.of(B)})}static open(A){return new jQ(A)}}function dl(I,A='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${A}>${encodeURIComponent(I)}</svg>')`}function mQ(I){return dl(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${I}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}const Hl=q.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-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:mQ("#d11")},".cm-lintRange-warning":{backgroundImage:mQ("orange")},".cm-lintRange-info":{backgroundImage:mQ("#999")},".cm-lintRange-hint":{backgroundImage:mQ("#66d")},".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-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".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}}}),Rl=[Cg,q.decorations.compute([Cg],I=>{let{selected:A,panel:g}=I.field(Cg);return!A||!g||A.from==A.to?AA.none:AA.set([kl.range(A.from,A.to)])}),rw(Zl,{hideOn:ll}),Hl];function KN(I,A,g,B,C,Q){this.indented=I,this.column=A,this.type=g,this.info=B,this.align=C,this.prev=Q}function pQ(I,A,g,B){var C=I.indented;return I.context&&I.context.type=="statement"&&g!="statement"&&(C=I.context.indented),I.context=new KN(C,A,g,B,null,I.context)}function AC(I){var A=I.context.type;return(A==")"||A=="]"||A=="}")&&(I.indented=I.context.indented),I.context=I.context.prev}function tL(I,A,g){if(A.prevToken=="variable"||A.prevToken=="type"||/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(I.string.slice(0,g))||A.typeAtEndOfLine&&I.column()==I.indentation())return!0}function lN(I){for(;;){if(!I||I.type=="top")return!0;if(I.type=="}"&&I.prev.info!="namespace")return!1;I=I.prev}}function qA(I){var A=I.statementIndentUnit,g=I.dontAlignCalls,B=I.keywords||{},C=I.types||{},Q=I.builtin||{},E=I.blockKeywords||{},N=I.defKeywords||{},D=I.atoms||{},o=I.hooks||{},M=I.multiLineStrings,G=I.indentStatements!==!1,i=I.indentSwitch!==!1,L=I.namespaceSeparator,Y=I.isPunctuationChar||/[\[\]{}\(\),;\:\.]/,w=I.numberStart||/[\d\.]/,t=I.number||/^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,Z=I.isOperatorChar||/[+\-*&%=<>!?|\/]/,h=I.isIdentifierChar||/[\w\$_\xa1-\uffff]/,K=I.isReservedIdentifier||!1,y,S;function c(b,s){var l=b.next();if(o[l]){var a=o[l](b,s);if(a!==!1)return a}if(l=='"'||l=="'")return s.tokenize=k(l),s.tokenize(b,s);if(w.test(l)){if(b.backUp(1),b.match(t))return"number";b.next()}if(Y.test(l))return y=l,null;if(l=="/"){if(b.eat("*"))return s.tokenize=U,U(b,s);if(b.eat("/"))return b.skipToEnd(),"comment"}if(Z.test(l)){for(;!b.match(/^\/[\/*]/,!1)&&b.eat(Z););return"operator"}if(b.eatWhile(h),L)for(;b.match(L);)b.eatWhile(h);var d=b.current();return Vg(B,d)?(Vg(E,d)&&(y="newstatement"),Vg(N,d)&&(S=!0),"keyword"):Vg(C,d)?"type":Vg(Q,d)||K&&K(d)?(Vg(E,d)&&(y="newstatement"),"builtin"):Vg(D,d)?"atom":"variable"}function k(b){return function(s,l){for(var a=!1,d,R=!1;(d=s.next())!=null;){if(d==b&&!a){R=!0;break}a=!a&&d=="\\"}return(R||!(a||M))&&(l.tokenize=null),"string"}}function U(b,s){for(var l=!1,a;a=b.next();){if(a=="/"&&l){s.tokenize=null;break}l=a=="*"}return"comment"}function H(b,s){I.typeFirstDefinitions&&b.eol()&&lN(s.context)&&(s.typeAtEndOfLine=tL(b,s,b.pos))}return{name:I.name,startState:function(b){return{tokenize:null,context:new KN(-b,0,"top",null,!1),indented:0,startOfLine:!0,prevToken:null}},token:function(b,s){var l=s.context;if(b.sol()&&(l.align==null&&(l.align=!1),s.indented=b.indentation(),s.startOfLine=!0),b.eatSpace())return H(b,s),null;y=S=null;var a=(s.tokenize||c)(b,s);if(a=="comment"||a=="meta")return a;if(l.align==null&&(l.align=!0),y==";"||y==":"||y==","&&b.match(/^\s*(?:\/\/.*)?$/,!1))for(;s.context.type=="statement";)AC(s);else if(y=="{")pQ(s,b.column(),"}");else if(y=="[")pQ(s,b.column(),"]");else if(y=="(")pQ(s,b.column(),")");else if(y=="}"){for(;l.type=="statement";)l=AC(s);for(l.type=="}"&&(l=AC(s));l.type=="statement";)l=AC(s)}else y==l.type?AC(s):G&&((l.type=="}"||l.type=="top")&&y!=";"||l.type=="statement"&&y=="newstatement")&&pQ(s,b.column(),"statement",b.current());if(a=="variable"&&(s.prevToken=="def"||I.typeFirstDefinitions&&tL(b,s,b.start)&&lN(s.context)&&b.match(/^\s*\(/,!1))&&(a="def"),o.token){var d=o.token(b,s,a);d!==void 0&&(a=d)}return a=="def"&&I.styleDefs===!1&&(a="variable"),s.startOfLine=!1,s.prevToken=S?"def":a||y,H(b,s),a},indent:function(b,s,l){if(b.tokenize!=c&&b.tokenize!=null||b.typeAtEndOfLine&&lN(b.context))return null;var a=b.context,d=s&&s.charAt(0),R=d==a.type;if(a.type=="statement"&&d=="}"&&(a=a.prev),I.dontIndentStatements)for(;a.type=="statement"&&I.dontIndentStatements.test(a.info);)a=a.prev;if(o.indent){var T=o.indent(b,a,s,l.unit);if(typeof T=="number")return T}var e=a.prev&&a.prev.info=="switch";if(I.allmanIndentation&&/[{(]/.test(d)){for(;a.type!="top"&&a.type!="}";)a=a.prev;return a.indented}return a.type=="statement"?a.indented+(d=="{"?0:A||l.unit):a.align&&(!g||a.type!=")")?a.column+(R?0:1):a.type==")"&&!R?a.indented+(A||l.unit):a.indented+(R?0:l.unit)+(!R&&e&&!/^(?:case|default)\b/.test(s)?l.unit:0)},languageData:{indentOnInput:i?/^\s*(?:case .*?:|default:|\{\}?|\})$/:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:Object.keys(B).concat(Object.keys(C)).concat(Object.keys(Q)).concat(Object.keys(D)),...I.languageData}}}function f(I){for(var A={},g=I.split(" "),B=0;B<g.length;++B)A[g[B]]=!0;return A}function Vg(I,A){return typeof I=="function"?I(A):I.propertyIsEnumerable(A)}var gC="auto if break case register continue return default do sizeof static else struct switch extern typedef union for goto while enum const volatile inline restrict asm fortran",sL="alignas alignof and and_eq audit axiom bitand bitor catch class compl concept constexpr const_cast decltype delete dynamic_cast explicit export final friend import module mutable namespace new noexcept not not_eq operator or or_eq override private protected public reinterpret_cast requires static_assert static_cast template this thread_local throw try typeid typename using virtual xor xor_eq",KL="bycopy byref in inout oneway out self super atomic nonatomic retain copy readwrite readonly strong weak assign typeof nullable nonnull null_resettable _cmd @interface @implementation @end @protocol @encode @property @synthesize @dynamic @class @public @package @private @protected @required @optional @try @catch @finally @import @selector @encode @defs @synchronized @autoreleasepool @compatibility_alias @available",lL="FOUNDATION_EXPORT FOUNDATION_EXTERN NS_INLINE NS_FORMAT_FUNCTION NS_RETURNS_RETAINEDNS_ERROR_ENUM NS_RETURNS_NOT_RETAINED NS_RETURNS_INNER_POINTER NS_DESIGNATED_INITIALIZER NS_ENUM NS_OPTIONS NS_REQUIRES_NIL_TERMINATION NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_SWIFT_NAME NS_REFINED_FOR_SWIFT",Ul=f("int long char short double float unsigned signed void bool"),Tl=f("SEL instancetype id Class Protocol BOOL");function IC(I){return Vg(Ul,I)||/.+_t$/.test(I)}function kL(I){return IC(I)||Vg(Tl,I)}var BC="case do else for if switch while struct enum union",xQ="struct enum union";function SI(I,A){if(!A.startOfLine)return!1;for(var g,B=null;g=I.peek();){if(g=="\\"&&I.match(/^.$/)){B=SI;break}else if(g=="/"&&I.match(/^\/[\/\*]/,!1))break;I.next()}return A.tokenize=B,"meta"}function nQ(I,A){return A.prevToken=="type"?"type":!1}function WQ(I){return!I||I.length<2||I[0]!="_"?!1:I[1]=="_"||I[1]!==I[1].toLowerCase()}function ZA(I){return I.eatWhile(/[\w\.']/),"number"}function cI(I,A){if(I.backUp(1),I.match(/^(?:R|u8R|uR|UR|LR)/)){var g=I.match(/^"([^\s\\()]{0,16})\(/);return g?(A.cpp11RawStringDelim=g[1],A.tokenize=aL,aL(I,A)):!1}return I.match(/^(?:u8|u|U|L)/)?I.match(/^["']/,!1)?"string":!1:(I.next(),!1)}function ZL(I){var A=/(\w+)::~?(\w+)$/.exec(I);return A&&A[1]==A[2]}function hL(I,A){for(var g;(g=I.next())!=null;)if(g=='"'&&!I.eat('"')){A.tokenize=null;break}return"string"}function aL(I,A){var g=A.cpp11RawStringDelim.replace(/[^\w\s]/g,"\\$&"),B=I.match(new RegExp(".*?\\)"+g+'"'));return B?A.tokenize=null:I.skipToEnd(),"string"}qA({name:"c",keywords:f(gC),types:IC,blockKeywords:f(BC),defKeywords:f(xQ),typeFirstDefinitions:!0,atoms:f("NULL true false"),isReservedIdentifier:WQ,hooks:{"#":SI,"*":nQ}}),qA({name:"cpp",keywords:f(gC+" "+sL),types:IC,blockKeywords:f(BC+" class try catch"),defKeywords:f(xQ+" class namespace"),typeFirstDefinitions:!0,atoms:f("true false NULL nullptr"),dontIndentStatements:/^template$/,isIdentifierChar:/[\w\$_~\xa1-\uffff]/,isReservedIdentifier:WQ,hooks:{"#":SI,"*":nQ,u:cI,U:cI,L:cI,R:cI,0:ZA,1:ZA,2:ZA,3:ZA,4:ZA,5:ZA,6:ZA,7:ZA,8:ZA,9:ZA,token:function(I,A,g){if(g=="variable"&&I.peek()=="("&&(A.prevToken==";"||A.prevToken==null||A.prevToken=="}")&&ZL(I.current()))return"def"}},namespaceSeparator:"::"}),qA({name:"java",keywords:f("abstract assert break case catch class const continue default do else enum extends final finally for goto if implements import instanceof interface native new package private protected public return static strictfp super switch synchronized this throw throws transient try volatile while @interface"),types:f("var byte short int long float double boolean char void Boolean Byte Character Double Float Integer Long Number Object Short String StringBuffer StringBuilder Void"),blockKeywords:f("catch class do else finally for if switch try while"),defKeywords:f("class interface enum @interface"),typeFirstDefinitions:!0,atoms:f("true false null"),number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+\.?\d*|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,hooks:{"@":function(I){return I.match("interface",!1)?!1:(I.eatWhile(/[\w\$_]/),"meta")},'"':function(I,A){return I.match(/""$/)?(A.tokenize=bL,A.tokenize(I,A)):!1}}}),qA({name:"csharp",keywords:f("abstract as async await base break case catch checked class const continue default delegate do else enum event explicit extern finally fixed for foreach goto if implicit in init interface internal is lock namespace new operator out override params private protected public readonly record ref required return sealed sizeof stackalloc static struct switch this throw try typeof unchecked unsafe using virtual void volatile while add alias ascending descending dynamic from get global group into join let orderby partial remove select set value var yield"),types:f("Action Boolean Byte Char DateTime DateTimeOffset Decimal Double Func Guid Int16 Int32 Int64 Object SByte Single String Task TimeSpan UInt16 UInt32 UInt64 bool byte char decimal double short int long object sbyte float string ushort uint ulong"),blockKeywords:f("catch class do else finally for foreach if struct switch try while"),defKeywords:f("class interface namespace record struct var"),typeFirstDefinitions:!0,atoms:f("true false null"),hooks:{"@":function(I,A){return I.eat('"')?(A.tokenize=hL,hL(I,A)):(I.eatWhile(/[\w\$_]/),"meta")}}});function bL(I,A){for(var g=!1;!I.eol();){if(!g&&I.match('"""')){A.tokenize=null;break}g=I.next()=="\\"&&!g}return"string"}function CC(I){return function(A,g){for(var B;B=A.next();)if(B=="*"&&A.eat("/"))if(I==1){g.tokenize=null;break}else return g.tokenize=CC(I-1),g.tokenize(A,g);else if(B=="/"&&A.eat("*"))return g.tokenize=CC(I+1),g.tokenize(A,g);return"comment"}}qA({name:"scala",keywords:f("abstract case catch class def do else extends final finally for forSome if implicit import lazy match new null object override package private protected return sealed super this throw trait try type val var while with yield _ assert assume require print println printf readLine readBoolean readByte readShort readChar readInt readLong readFloat readDouble"),types:f("AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either Enumeration Equiv Error Exception Fractional Function IndexedSeq Int Integral Iterable Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"),multiLineStrings:!0,blockKeywords:f("catch class enum do else finally for forSome if match switch try while"),defKeywords:f("class enum def object package trait type val var"),atoms:f("true false null"),indentStatements:!1,indentSwitch:!1,isOperatorChar:/[+\-*&%=<>!?|\/#:@]/,hooks:{"@":function(I){return I.eatWhile(/[\w\$_]/),"meta"},'"':function(I,A){return I.match('""')?(A.tokenize=bL,A.tokenize(I,A)):!1},"'":function(I){return I.match(/^(\\[^'\s]+|[^\\'])'/)?"character":(I.eatWhile(/[\w\$_\xa1-\uffff]/),"atom")},"=":function(I,A){var g=A.context;return g.type=="}"&&g.align&&I.eat(">")?(A.context=new KN(g.indented,g.column,g.type,g.info,null,g.prev),"operator"):!1},"/":function(I,A){return I.eat("*")?(A.tokenize=CC(1),A.tokenize(I,A)):!1}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}});function el(I){return function(A,g){for(var B=!1,C,Q=!1;!A.eol();){if(!I&&!B&&A.match('"')){Q=!0;break}if(I&&A.match('"""')){Q=!0;break}C=A.next(),!B&&C=="$"&&A.match("{")&&A.skipTo("}"),B=!B&&C=="\\"&&!I}return(Q||!I)&&(g.tokenize=null),"string"}}qA({name:"kotlin",keywords:f("package as typealias class interface this super val operator var fun for is in This throw return annotation break continue object if else while do try when !in !is as? file import where by get set abstract enum open inner override private public internal protected catch finally out final vararg reified dynamic companion constructor init sealed field property receiver param sparam lateinit data inline noinline tailrec external annotation crossinline const operator infix suspend actual expect setparam"),types:f("Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy LazyThreadSafetyMode LongArray Nothing ShortArray Unit"),intendSwitch:!1,indentStatements:!1,multiLineStrings:!0,number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+(\.\d+)?|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,blockKeywords:f("catch class do else finally for if where try while enum"),defKeywords:f("class val var object interface fun"),atoms:f("true false null this"),hooks:{"@":function(I){return I.eatWhile(/[\w\$_]/),"meta"},"*":function(I,A){return A.prevToken=="."?"variable":"operator"},'"':function(I,A){return A.tokenize=el(I.match('""')),A.tokenize(I,A)},"/":function(I,A){return I.eat("*")?(A.tokenize=CC(1),A.tokenize(I,A)):!1},indent:function(I,A,g,B){var C=g&&g.charAt(0);if((I.prevToken=="}"||I.prevToken==")")&&g=="")return I.indented;if(I.prevToken=="operator"&&g!="}"&&I.context.type!="}"||I.prevToken=="variable"&&C=="."||(I.prevToken=="}"||I.prevToken==")")&&C==".")return B*2+A.indented;if(A.align&&A.type=="}")return A.indented+(I.context.type==(g||"").charAt(0)?0:B)}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}}),qA({name:"shader",keywords:f("sampler1D sampler2D sampler3D samplerCube sampler1DShadow sampler2DShadow const attribute uniform varying break continue discard return for while do if else struct in out inout"),types:f("float int bool void vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 mat2 mat3 mat4"),blockKeywords:f("for while do if else struct"),builtin:f("radians degrees sin cos tan asin acos atan pow exp log exp2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize ftransform faceforward reflect refract matrixCompMult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not texture1D texture1DProj texture1DLod texture1DProjLod texture2D texture2DProj texture2DLod texture2DProjLod texture3D texture3DProj texture3DLod texture3DProjLod textureCube textureCubeLod shadow1D shadow2D shadow1DProj shadow2DProj shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod dFdx dFdy fwidth noise1 noise2 noise3 noise4"),atoms:f("true false gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_FogCoord gl_PointCoord gl_Position gl_PointSize gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_TexCoord gl_FogFragCoord gl_FragCoord gl_FrontFacing gl_FragData gl_FragDepth gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse gl_TextureMatrixTranspose gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose gl_TextureMatrixInverseTranspose gl_NormalScale gl_DepthRange gl_ClipPlane gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ gl_FogParameters gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits gl_MaxDrawBuffers"),indentSwitch:!1,hooks:{"#":SI}}),qA({name:"nesc",keywords:f(gC+" as atomic async call command component components configuration event generic implementation includes interface module new norace nx_struct nx_union post provides signal task uses abstract extends"),types:IC,blockKeywords:f(BC),atoms:f("null true false"),hooks:{"#":SI}}),qA({name:"objectivec",keywords:f(gC+" "+KL),types:kL,builtin:f(lL),blockKeywords:f(BC+" @synthesize @try @catch @finally @autoreleasepool @synchronized"),defKeywords:f(xQ+" @interface @implementation @protocol @class"),dontIndentStatements:/^@.*$/,typeFirstDefinitions:!0,atoms:f("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:WQ,hooks:{"#":SI,"*":nQ}}),qA({name:"objectivecpp",keywords:f(gC+" "+KL+" "+sL),types:kL,builtin:f(lL),blockKeywords:f(BC+" @synthesize @try @catch @finally @autoreleasepool @synchronized class try catch"),defKeywords:f(xQ+" @interface @implementation @protocol @class class namespace"),dontIndentStatements:/^@.*$|^template$/,typeFirstDefinitions:!0,atoms:f("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:WQ,hooks:{"#":SI,"*":nQ,u:cI,U:cI,L:cI,R:cI,0:ZA,1:ZA,2:ZA,3:ZA,4:ZA,5:ZA,6:ZA,7:ZA,8:ZA,9:ZA,token:function(I,A,g){if(g=="variable"&&I.peek()=="("&&(A.prevToken==";"||A.prevToken==null||A.prevToken=="}")&&ZL(I.current()))return"def"}},namespaceSeparator:"::"}),qA({name:"squirrel",keywords:f("base break clone continue const default delete enum extends function in class foreach local resume return this throw typeof yield constructor instanceof static"),types:IC,blockKeywords:f("case catch class else for foreach if switch try while"),defKeywords:f("function local class"),typeFirstDefinitions:!0,atoms:f("true false null"),hooks:{"#":SI}});var OQ=null;function dL(I){return function(A,g){for(var B=!1,C,Q=!1;!A.eol();){if(!B&&A.match('"')&&(I=="single"||A.match('""'))){Q=!0;break}if(!B&&A.match("``")){OQ=dL(I),Q=!0;break}C=A.next(),B=I=="single"&&!B&&C=="\\"}return Q&&(g.tokenize=null),"string"}}qA({name:"ceylon",keywords:f("abstracts alias assembly assert assign break case catch class continue dynamic else exists extends finally for function given if import in interface is let module new nonempty object of out outer package return satisfies super switch then this throw try value void while"),types:function(I){var A=I.charAt(0);return A===A.toUpperCase()&&A!==A.toLowerCase()},blockKeywords:f("case catch class dynamic else finally for function if interface module new object switch try while"),defKeywords:f("class dynamic function interface module object package value"),builtin:f("abstract actual aliased annotation by default deprecated doc final formal late license native optional sealed see serializable shared suppressWarnings tagged throws variable"),isPunctuationChar:/[\[\]{}\(\),;\:\.`]/,isOperatorChar:/[+\-*&%=<>!?|^~:\/]/,numberStart:/[\d#$]/,number:/^(?:#[\da-fA-F_]+|\$[01_]+|[\d_]+[kMGTPmunpf]?|[\d_]+\.[\d_]+(?:[eE][-+]?\d+|[kMGTPmunpf]|)|)/i,multiLineStrings:!0,typeFirstDefinitions:!0,atoms:f("true false null larger smaller equal empty finished"),indentSwitch:!1,styleDefs:!1,hooks:{"@":function(I){return I.eatWhile(/[\w\$_]/),"meta"},'"':function(I,A){return A.tokenize=dL(I.match('""')?"triple":"single"),A.tokenize(I,A)},"`":function(I,A){return!OQ||!I.match("`")?!1:(A.tokenize=OQ,OQ=null,A.tokenize(I,A))},"'":function(I){return I.match(/^(\\[^'\s]+|[^\\'])'/)?"string.special":(I.eatWhile(/[\w\$_\xa1-\uffff]/),"atom")},token:function(I,A,g){if((g=="variable"||g=="type")&&A.prevToken==".")return"variableName.special"}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}});function zl(I){(I.interpolationStack||(I.interpolationStack=[])).push(I.tokenize)}function HL(I){return(I.interpolationStack||(I.interpolationStack=[])).pop()}function Fl(I){return I.interpolationStack?I.interpolationStack.length:0}function kN(I,A,g,B){var C=!1;if(A.eat(I))if(A.eat(I))C=!0;else return"string";function Q(E,N){for(var D=!1;!E.eol();){if(!B&&!D&&E.peek()=="$")return zl(N),N.tokenize=jl,"string";var o=E.next();if(o==I&&!D&&(!C||E.match(I+I))){N.tokenize=null;break}D=!B&&!D&&o=="\\"}return"string"}return g.tokenize=Q,Q(A,g)}function jl(I,A){return I.eat("$"),I.eat("{")?A.tokenize=null:A.tokenize=ml,null}function ml(I,A){return I.eatWhile(/[\w_]/),A.tokenize=HL(A),"variable"}qA({name:"dart",keywords:f("this super static final const abstract class extends external factory implements mixin get native set typedef with enum throw rethrow assert break case continue default in return new deferred async await covariant try catch finally do else for if switch while import library export part of show hide is as extension on yield late required sealed base interface when inline"),blockKeywords:f("try catch finally do else for if switch while"),builtin:f("void bool num int double dynamic var String Null Never"),atoms:f("true false null"),hooks:{"@":function(I){return I.eatWhile(/[\w\$_\.]/),"meta"},"'":function(I,A){return kN("'",I,A,!1)},'"':function(I,A){return kN('"',I,A,!1)},r:function(I,A){var g=I.peek();return g=="'"||g=='"'?kN(I.next(),I,A,!0):!1},"}":function(I,A){return Fl(A)>0?(A.tokenize=HL(A),null):!1},"/":function(I,A){return I.eat("*")?(A.tokenize=CC(1),A.tokenize(I,A)):!1},token:function(I,A,g){if(g=="variable"){var B=RegExp("^[_$]*[A-Z][a-zA-Z0-9_$]*$","g");if(B.test(I.current()))return"type"}}}});const pl="process component import library declare with environment route waveform soundfile",xl="mem prefix int float rdtable rwtable select2 select3 ffunction fconstant fvariable button checkbox vslider hslider nentry vgroup hgroup tgroup vbargraph hbargraph attach acos asin atan atan2 cos sin tan exp log log10 pow sqrt abs min max fmod remainder floor ceil rint";function RL(I){const A={},g=I.split(" ");for(let B=0;B<g.length;B++)A[g[B]]=!0;return A}const nl=rD.define(qA({name:"clike",multiLineStrings:!0,keywords:RL(pl),atoms:RL(xl),hooks:{"@":()=>"meta","'":()=>"meta"}}));function Wl(I,A){return new q({parent:I,doc:A,extensions:[It(),Qt(),aw(),Gs(),cw(),sw(),CA.allowMultipleSelections.of(!0),zt(),Ft(pt,{fallback:!0}),ut(),ol(),tl(),pw(),Ww(),Tw(),YK(),KD.of([...il,...GK,...FK,...ss,...ML,...al]),nl]})}function Ol(I,A){const g=A.message.trim(),B=g.match(/^main : (\d+) : (.*)$/),C=B?B[2]:g,{from:Q,to:E}=B?I.state.doc.line(+B[1]):{from:0,to:0};I.dispatch(iL(I.state,[{from:Q,to:E,severity:"error",message:C}])),SL(I)}function Jl(I){I.dispatch(iL(I.state,[])),sN(I)}class UL{constructor(A){vQ(this,"container");vQ(this,"canvas");vQ(this,"ctx");this.container=A,this.container.classList.add("scope"),this.canvas=document.createElement("canvas"),this.canvas.style.transformOrigin="top left",this.ctx=this.canvas.getContext("2d"),this.onResize=this.onResize.bind(this),this.container.appendChild(this.canvas),this.onResize(),window.addEventListener("resize",this.onResize)}get canvasWidth(){return this.canvas.width/devicePixelRatio}set canvasWidth(A){this.canvas.width=Math.floor(A*devicePixelRatio),this.canvas.style.width=`${A}px`}get canvasHeight(){return this.canvas.height/devicePixelRatio}set canvasHeight(A){this.canvas.height=Math.floor(A*devicePixelRatio),this.canvas.style.height=`${A}px`}renderScope(A=[]){this.ctx.fillStyle="white",this.ctx.fillRect(0,0,this.canvasWidth,this.canvasHeight),this.ctx.lineWidth=1,this.ctx.strokeStyle="rgba(200, 200, 200, 0.5)",this.ctx.fillStyle="rgba(200, 200, 200, 0.5)",this.ctx.beginPath();const g=8,B=this.canvasWidth/g;for(let D=B;D<this.canvasWidth;D+=B)this.ctx.moveTo(D,0),this.ctx.lineTo(D,this.canvasHeight);const C=4,Q=this.canvasHeight/C;for(let D=0;D<this.canvasHeight;D+=Q)this.ctx.moveTo(0,D),this.ctx.lineTo(this.canvasWidth,D);this.ctx.stroke(),this.ctx.strokeStyle="rgba(100, 100, 100, 0.5)",this.ctx.beginPath(),this.ctx.lineWidth=2,this.ctx.moveTo(0,this.canvasHeight/2),this.ctx.lineTo(this.canvasWidth,this.canvasHeight/2),this.ctx.stroke(),A.forEach(({analyser:D,style:o="rgb(43, 156, 212)",edgeThreshold:M=0})=>{if(D===void 0)return;const G=new Float32Array(D.frequencyBinCount);let i=0;for(D.getFloatTimeDomainData(G),this.ctx.lineWidth=2,this.ctx.strokeStyle=o,this.ctx.beginPath();G[i]>0&&i<=this.canvasWidth&&i<G.length;)i++;for(i>=this.canvasWidth&&(i=0);G[i]<M&&i<=this.canvasWidth&&i<G.length;)i++;i>=this.canvasWidth&&(i=0);for(let L=i;L<G.length&&L-i<this.canvasWidth;L++){const Y=this.canvasHeight-(G[L]+1)/2*this.canvasHeight;this.ctx.lineTo(L-i,Y)}this.ctx.stroke()}),this.ctx.fillStyle="black",this.ctx.font="11px Courier",this.ctx.textAlign="left";const E=4,N=this.canvasHeight/E;for(let D=0;D<=E;D++){this.ctx.textBaseline=D===0?"top":D===E?"bottom":"middle";const o=(E-D-E/2)/E*2;this.ctx.textAlign="left",this.ctx.fillText(o+"",5,D*N),this.ctx.textAlign="right",this.ctx.fillText(o+"",this.canvasWidth-5,D*N)}}renderSpectrum(A){const g=new Uint8Array(A.frequencyBinCount);A.getByteFrequencyData(g),this.ctx.fillStyle="white",this.ctx.fillRect(0,0,this.canvasWidth,this.canvasHeight),this.ctx.lineWidth=2,this.ctx.strokeStyle="rgb(43, 156, 212)",this.ctx.beginPath();for(let E=0;E<g.length;E++){const N=Math.log(E/1)/Math.log(g.length/1)*this.canvasWidth,D=g[E]*this.canvasHeight/256;this.ctx.lineTo(N,this.canvasHeight-D)}this.ctx.stroke();const B=12;function C(E,N,D,o,M){return N=Math.max(N,1),o=Math.max(o,1),Math.log10(E/N)/Math.log10(D/N)*(M-o)+o}const Q=A.context.sampleRate/2;[0,100,300,1e3,3e3,1e4,2e4].forEach(E=>{const D=E<=0?B-5:C(E,20,Q,0,this.canvasWidth);this.ctx.fillStyle="black",this.ctx.textBaseline="middle",this.ctx.textAlign="right",this.ctx.font=`${B}px Courier`,this.ctx.save(),this.ctx.translate(D,this.canvasHeight-5),this.ctx.rotate(Math.PI*.5),this.ctx.fillText(`${E.toFixed(0)}hz`,0,0),this.ctx.restore()}),[0,-3,-6,-12].forEach(E=>{const o=(1-Math.pow(10,E*.05))*this.canvasHeight;this.ctx.fillStyle="black",this.ctx.textBaseline="top",this.ctx.textAlign="left",this.ctx.font=`${B}px Courier`,this.ctx.fillText(`${E.toFixed(0)}db`,5,o)})}onResize(){this.canvasWidth=0,this.canvasHeight=0;const A=this.container.getBoundingClientRect(),g=getComputedStyle(this.container);let B=g.getPropertyValue("border-left-width"),C=B===""?0:parseFloat(B),Q=g.getPropertyValue("border-right-width"),E=Q===""?0:parseFloat(Q);this.canvasWidth=A.width-C-E;let N=g.getPropertyValue("border-top-width"),D=N===""?0:parseFloat(N),o=g.getPropertyValue("border-bottom-width"),M=o===""?0:parseFloat(o);this.canvasHeight=A.height-D-M,this.ctx.scale(devicePixelRatio,devicePixelRatio)}}const TL="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiBpZD0ic3ZnMiIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjY0LjMzMzMyOCIgaGVpZ2h0PSIxMi40MTQ2NjYiIHZpZXdCb3g9IjAgMCA2NC4zMzMzMjcgMTIuNDE0NjY2Ij48bWV0YWRhdGEgaWQ9Im1ldGFkYXRhOCI+PHJkZjpSREY+PGNjOldvcmsgcmRmOmFib3V0PSIiPjxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PjxkYzp0eXBlIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiLz48ZGM6dGl0bGUvPjwvY2M6V29yaz48L3JkZjpSREY+PC9tZXRhZGF0YT48ZGVmcyBpZD0iZGVmczYiPjxjbGlwUGF0aCBjbGlwUGF0aFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgaWQ9ImNsaXBQYXRoMTgiPjxwYXRoIGQ9Ik0gMCw5My41MDcgSCA5My41MDcgViAwIEggMCBaIiBpZD0icGF0aDE2Ii8+PC9jbGlwUGF0aD48L2RlZnM+PGcgc3R5bGU9ImZpbGw6I2ZmZmZmZiIgaWQ9ImcxMCIgdHJhbnNmb3JtPSJtYXRyaXgoMS4zMzMzMzMzLDAsMCwtMS4zMzMzMzMzLC0zMS40NDAyNjYsNjguNDk1NzMyKSI+PGcgaWQ9ImcxMiIgc3R5bGU9ImZpbGw6I2ZmZmZmZiI+PGcgaWQ9ImcxNCIgY2xpcC1wYXRoPSJ1cmwoI2NsaXBQYXRoMTgpIiBzdHlsZT0iZmlsbDojZmZmZmZmIj48ZyBpZD0iZzIwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2OS4wMTcyLDQ5LjM4NjgpIiBzdHlsZT0iZmlsbDojZmZmZmZmIj48cGF0aCBkPSJNIDAsMCBWIC03LjAyNiBIIC0yLjAxNyBWIDAgSCAtNC44NDMgViAxLjc0NyBIIDIuODEzIFYgMCBaIG0gLTguMjc2LC01LjYxNSBjIC0wLjE3NiwtMC4zMzMgLTAuNDE1LC0wLjYyIC0wLjcxOCwtMC44NjMgLTAuMzAyLC0wLjI0MyAtMC42NTgsLTAuNDMzIC0xLjA2NywtMC41NjkgLTAuNDA5LC0wLjEzNiAtMC44NDksLTAuMjA0IC0xLjMyMSwtMC4yMDQgLTAuNDM1LDAgLTAuODMzLDAuMDQxIC0xLjE5MywwLjEyNCAtMC4zNjEsMC4wODIgLTAuNjg1LDAuMTkxIC0wLjk3MywwLjMyNyAtMC4yODksMC4xMzUgLTAuNTQ4LDAuMjkgLTAuNzc5LDAuNDYzIC0wLjIzMiwwLjE3NCAtMC40MzEsMC4zNTIgLTAuNTk4LDAuNTM0IGwgMS4yNzgsMS4zODQgYyAwLjExNSwtMC4xMjUgMC4yNDgsLTAuMjUyIDAuNCwtMC4zODEgMC4xNTIsLTAuMTI5IDAuMzIxLC0wLjI0NyAwLjUwOSwtMC4zNTIgMC4xODcsLTAuMTA2IDAuMzkyLC0wLjE5MSAwLjYxNCwtMC4yNTUgMC4yMjEsLTAuMDY1IDAuNDYsLTAuMDk3IDAuNzE2LC0wLjA5NyAwLjE1LDAgMC4zLDAuMDIxIDAuNDQ3LDAuMDY0IDAuMTQ5LDAuMDQzIDAuMjg1LDAuMTA3IDAuNDEsMC4xOTEgMC4xMjQsMC4wODQgMC4yMjMsMC4xODUgMC4yOTYsMC4zMDMgMC4wNzMsMC4xMTkgMC4xMSwwLjI1MyAwLjExLDAuNDA0IDAsMC4zMjcgLTAuMTU4LDAuNTgxIC0wLjQ3NCwwLjc2MiAtMC4zMTYsMC4xODEgLTAuODE3LDAuMzYgLTEuNTA0LDAuNTM2IC0wLjMzMywwLjA3OCAtMC42NCwwLjE5MiAtMC45MjIsMC4zNDIgLTAuMjgzLDAuMTUxIC0wLjUyNiwwLjMzMiAtMC43MjksMC41NDMgLTAuMjA0LDAuMjExIC0wLjM2MSwwLjQ1MyAtMC40NzQsMC43MjYgLTAuMTEyLDAuMjc0IC0wLjE2OSwwLjU3OCAtMC4xNjksMC45MTQgMCwwLjM2OCAwLjA2NSwwLjcxNCAwLjE5NSwxLjAzOCAwLjEzLDAuMzI1IDAuMzI4LDAuNjExIDAuNTk1LDAuODU5IDAuMjY2LDAuMjQ3IDAuNTk3LDAuNDQzIDAuOTkzLDAuNTg5IDAuMzk3LDAuMTQ1IDAuODY1LDAuMjE4IDEuNDA2LDAuMjE4IDAuNDQ2LDAgMC44NDIsLTAuMDQ2IDEuMTg3LC0wLjEzNyAwLjM0NCwtMC4wOTIgMC42MzcsLTAuMjAxIDAuODc3LC0wLjMyOSAwLjI0LC0wLjEyNyAwLjQzNywtMC4yNTggMC41OTEsLTAuMzkxIDAuMTU1LC0wLjEzNCAwLjI3MSwtMC4yMzkgMC4zNDgsLTAuMzE2IGwgLTEuMTQzLC0xLjI2NiBjIC0wLjA5OSwwLjA3OCAtMC4yMTIsMC4xNjIgLTAuMzM4LDAuMjU1IC0wLjEyNywwLjA5MyAtMC4yNjgsMC4xNzkgLTAuNDI1LDAuMjU4IC0wLjE1NiwwLjA4IC0wLjMzLDAuMTQ3IC0wLjUyMSwwLjIwMSAtMC4xOSwwLjA1MyAtMC4zOTEsMC4wOCAtMC42MDEsMC4wOCAtMC4xNDIsMCAtMC4yOCwtMC4wMjIgLTAuNDE2LC0wLjA2NyAtMC4xMzUsLTAuMDQ2IC0wLjI1OCwtMC4xMDUgLTAuMzY3LC0wLjE3OCAtMC4xMSwtMC4wNzMgLTAuMTk4LC0wLjE2MSAtMC4yNjQsLTAuMjY1IC0wLjA2NiwtMC4xMDMgLTAuMSwtMC4yMTEgLTAuMSwtMC4zMjMgMCwtMC4zMDEgMC4xNTksLTAuNTQ0IDAuNDc3LC0wLjczIDAuMzE4LC0wLjE4NSAwLjc1MywtMC4zNCAxLjMwNywtMC40NjUgMC4zMjcsLTAuMDc3IDAuNjQ1LC0wLjE4NCAwLjk1NSwtMC4zMTkgMC4zMTEsLTAuMTM2IDAuNTg4LC0wLjMxNCAwLjgzMiwtMC41MzYgMC4yNDQsLTAuMjIyIDAuNDQxLC0wLjQ5MyAwLjU5MSwtMC44MTQgMC4xNSwtMC4zMjEgMC4yMjUsLTAuNzExIDAuMjI1LC0xLjE3MiAwLC0wLjM5MiAtMC4wODgsLTAuNzU0IC0wLjI2MywtMS4wODYgbSAtMTAuMzA3LDEuODU0IGMgMCwtMC41MjcgLTAuMDg2LC0xLjAxIC0wLjI1NywtMS40NDkgLTAuMTcyLC0wLjQzOSAtMC40MTgsLTAuODEzIC0wLjc0LC0xLjEyNCAtMC4zMjEsLTAuMzEgLTAuNzEsLTAuNTUzIC0xLjE2NywtMC43MjkgLTAuNDU2LC0wLjE3NSAtMC45NjUsLTAuMjYzIC0xLjUyNiwtMC4yNjMgLTAuNTYsMCAtMS4wNjcsMC4wODYgLTEuNTIyLDAuMjU3IC0wLjQ1NSwwLjE3MSAtMC44NDEsMC40MTQgLTEuMTU5LDAuNzI5IC0wLjMxOCwwLjMxNSAtMC41NjMsMC42OTEgLTAuNzM0LDEuMTMgLTAuMTcxLDAuNDM5IC0wLjI1NiwwLjkyMiAtMC4yNTYsMS40NDkgdiA1LjQ0NiBoIDEuOTg1IHYgLTUuMjcxIGMgMCwtMC4yOTUgMC4wMjksLTAuNTYgMC4wODYsLTAuNzk1IDAuMDU4LC0wLjIzNSAwLjE1MywtMC40MzcgMC4yODQsLTAuNjA2IDAuMTMxLC0wLjE2OSAwLjMwNCwtMC4zMDEgMC41MjEsLTAuMzk0IDAuMjE3LC0wLjA5NCAwLjQ4MSwtMC4xNCAwLjc5NSwtMC4xNCAwLjMwOSwwIDAuNTcsMC4wNDYgMC43ODUsMC4xNCAwLjIxNCwwLjA5MyAwLjM4OCwwLjIyNSAwLjUyMSwwLjM5NCAwLjEzMywwLjE2OSAwLjIyNywwLjM3MSAwLjI4MywwLjYwNiAwLjA1NiwwLjIzNSAwLjA4NCwwLjUgMC4wODQsMC43OTUgdiA1LjI3MSBoIDIuMDE3IHogTSAtMzAuNjgsLTcuMDI2IGMgLTAuNTk2LDAgLTEuMDc4LDAuNDgyIC0xLjA3OCwxLjA3NyAwLDAuNTk1IDAuNDgyLDEuMDc4IDEuMDc4LDEuMDc4IDAuNTk1LDAgMS4wNzcsLTAuNDgzIDEuMDc3LC0xLjA3OCAwLC0wLjU5NSAtMC40ODIsLTEuMDc3IC0xLjA3NywtMS4wNzcgbSAtMS43MDIsMy41NTEgLTEuMDY3LDMuMzE0IC0xLjA5MiwtMy4zMTQgLTAuMDU0LC0wLjE4MSBoIC0xLjg5OSBsIDIuMDE4LDUuNDAzIGggMi4xOTYgbCAxLjk3NywtNS40IC0yLjAyMywtMC4wMDUgeiBtIC0zLjcwOCwtMy41NTEgYyAtMC41OTUsMCAtMS4wNzgsMC40ODIgLTEuMDc4LDEuMDc3IDAsMC41OTUgMC40ODMsMS4wNzggMS4wNzgsMS4wNzggMC41OTUsMCAxLjA3OCwtMC40ODMgMS4wNzgsLTEuMDc4IDAsLTAuNTk1IC0wLjQ4MywtMS4wNzcgLTEuMDc4LC0xLjA3NyBNIC0zOS41NDEsMCBoIC0zLjkxMiB2IC0xLjk5MSBoIDIuOTc0IHYgLTEuNjk2IGggLTIuOTc0IHYgLTMuMzM5IGggLTEuOTg0IHYgOC43NzMgaCA1Ljg5NiB6IiBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiBpZD0icGF0aDIyIi8+PC9nPjwvZz48L2c+PC9nPjwvc3ZnPg==",eL=document.createElement("template");eL.innerHTML=`
|
1627
|
+
`);B>-1&&(g=g.slice(0,B))}return A+g.length<=this.to?g:g.slice(0,this.to-A)}nextLine(){let A=this.parsedPos,g=this.lineAfter(A),B=A+g.length;for(let C=this.rangeIndex;;){let Q=this.ranges[C].to;if(Q>=B||(g=g.slice(0,Q-(B-g.length)),C++,C==this.ranges.length))break;let E=this.ranges[C].from,N=this.lineAfter(E);g+=N,B=E+N.length}return{line:g,end:B}}skipGapsTo(A,g,B){for(;;){let C=this.ranges[this.rangeIndex].to,Q=A+g;if(B>0?C>Q:C>=Q)break;let E=this.ranges[++this.rangeIndex].from;g+=E-C}return g}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to<this.parsedPos;)this.rangeIndex++}emitToken(A,g,B,C,Q){if(this.ranges.length>1){Q=this.skipGapsTo(g,Q,1),g+=Q;let E=this.chunk.length;Q=this.skipGapsTo(B,Q,-1),B+=Q,C+=this.chunk.length-E}return this.chunk.push(A,g,B,C),Q}parseLine(A){let{line:g,end:B}=this.nextLine(),C=0,{streamParser:Q}=this.lang,E=new pi(g,A?A.state.tabSize:4,A?RI(A.state):2);if(E.eol())Q.blankLine(this.state,E.indentUnit);else for(;!E.eol();){let N=Wi(Q.token,E,this.state);if(N&&(C=this.emitToken(this.lang.tokenTable.resolve(N),this.parsedPos+E.start,this.parsedPos+E.pos,4,C)),E.start>1e4)break}this.parsedPos=B,this.moveRangeIndex(),this.parsedPos<this.to&&this.parsedPos++}finishChunk(){let A=tA.build({buffer:this.chunk,start:this.chunkStart,length:this.parsedPos-this.chunkStart,nodeSet:_t,topID:0,maxBufferLength:2048,reused:this.chunkReused});A=new tA(A.type,A.children,A.positions,A.length,[[this.lang.stateAfter,this.lang.streamParser.copyState(this.state)]]),this.chunks.push(A),this.chunkPos.push(this.chunkStart-this.ranges[0].from),this.chunk=[],this.chunkReused=void 0,this.chunkStart=this.parsedPos}finish(){return new tA(this.lang.topNode,this.chunks,this.chunkPos,this.parsedPos-this.ranges[0].from).balance()}}function Wi(I,A,g){A.start=A.pos;for(let B=0;B<10;B++){let C=I(A,g);if(A.pos>A.start)return C}throw new Error("Stream parser failed to advance stream.")}const PD=Object.create(null),rB=[VA.none],_t=new eD(rB),Oi=[],Ji=Object.create(null);for(let[I,A]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])Ji[I]=vi(PD,A);class ui{constructor(A){this.extra=A,this.table=Object.assign(Object.create(null),Ji)}resolve(A){return A?this.table[A]||(this.table[A]=vi(this.extra,A)):0}}const $t=new ui(PD);function qD(I,A){Oi.indexOf(I)>-1||(Oi.push(I),console.warn(A))}function vi(I,A){let g=null;for(let Q of A.split(".")){let E=I[Q]||V[Q];E?typeof E=="function"?g?g=E(g):qD(Q,`Modifier ${Q} used at start of tag`):g?qD(Q,`Tag ${Q} used as modifier`):g=E:qD(Q,`Unknown highlighting tag ${Q}`)}if(!g)return 0;let B=A.replace(/ /g,"_"),C=VA.define({id:rB.length,name:B,props:[Yt({[B]:g})]});return rB.push(C),C.id}function As(I){let A=VA.define({id:rB.length,name:"Document",props:[PI.add(()=>I)],top:!0});return rB.push(A),A}const gs=I=>{let{state:A}=I,g=A.doc.lineAt(A.selection.main.from),B=$D(I.state,g.from);return B.line?Is(I):B.block?Cs(I):!1};function _D(I,A){return({state:g,dispatch:B})=>{if(g.readOnly)return!1;let C=I(A,g);return C?(B(g.update(C)),!0):!1}}const Is=_D(Ds,0),Bs=_D(Vi,0),Cs=_D((I,A)=>Vi(I,A,Es(A)),0);function $D(I,A){let g=I.languageDataAt("commentTokens",A);return g.length?g[0]:{}}const fB=50;function Qs(I,{open:A,close:g},B,C){let Q=I.sliceDoc(B-fB,B),E=I.sliceDoc(C,C+fB),N=/\s*$/.exec(Q)[0].length,D=/^\s*/.exec(E)[0].length,o=Q.length-N;if(Q.slice(o-A.length,o)==A&&E.slice(D,D+g.length)==g)return{open:{pos:B-N,margin:N&&1},close:{pos:C+D,margin:D&&1}};let M,G;C-B<=2*fB?M=G=I.sliceDoc(B,C):(M=I.sliceDoc(B,B+fB),G=I.sliceDoc(C-fB,C));let i=/^\s*/.exec(M)[0].length,L=/\s*$/.exec(G)[0].length,Y=G.length-L-g.length;return M.slice(i,i+A.length)==A&&G.slice(Y,Y+g.length)==g?{open:{pos:B+i+A.length,margin:/\s/.test(M.charAt(i+A.length))?1:0},close:{pos:C-L-g.length,margin:/\s/.test(G.charAt(Y-1))?1:0}}:null}function Es(I){let A=[];for(let g of I.selection.ranges){let B=I.doc.lineAt(g.from),C=g.to<=B.to?B:I.doc.lineAt(g.to),Q=A.length-1;Q>=0&&A[Q].to>B.from?A[Q].to=C.to:A.push({from:B.from+/^\s*/.exec(B.text)[0].length,to:C.to})}return A}function Vi(I,A,g=A.selection.ranges){let B=g.map(Q=>$D(A,Q.from).block);if(!B.every(Q=>Q))return null;let C=g.map((Q,E)=>Qs(A,B[E],Q.from,Q.to));if(I!=2&&!C.every(Q=>Q))return{changes:A.changes(g.map((Q,E)=>C[E]?[]:[{from:Q.from,insert:B[E].open+" "},{from:Q.to,insert:" "+B[E].close}]))};if(I!=1&&C.some(Q=>Q)){let Q=[];for(let E=0,N;E<C.length;E++)if(N=C[E]){let D=B[E],{open:o,close:M}=N;Q.push({from:o.pos-D.open.length,to:o.pos+o.margin},{from:M.pos-M.margin,to:M.pos+D.close.length})}return{changes:Q}}return null}function Ds(I,A,g=A.selection.ranges){let B=[],C=-1;for(let{from:Q,to:E}of g){let N=B.length,D=1e9,o=$D(A,Q).line;if(o){for(let M=Q;M<=E;){let G=A.doc.lineAt(M);if(G.from>C&&(Q==E||E>G.from)){C=G.from;let i=/^\s*/.exec(G.text)[0].length,L=i==G.length,Y=G.text.slice(i,i+o.length)==o?i:-1;i<G.text.length&&i<D&&(D=i),B.push({line:G,comment:Y,token:o,indent:i,empty:L,single:!1})}M=G.to+1}if(D<1e9)for(let M=N;M<B.length;M++)B[M].indent<B[M].line.text.length&&(B[M].indent=D);B.length==N+1&&(B[N].single=!0)}}if(I!=2&&B.some(Q=>Q.comment<0&&(!Q.empty||Q.single))){let Q=[];for(let{line:N,token:D,indent:o,empty:M,single:G}of B)(G||!M)&&Q.push({from:N.from+o,insert:D+" "});let E=A.changes(Q);return{changes:E,selection:A.selection.map(E,1)}}else if(I!=1&&B.some(Q=>Q.comment>=0)){let Q=[];for(let{line:E,comment:N,token:D}of B)if(N>=0){let o=E.from+N,M=o+D.length;E.text[M-E.from]==" "&&M++,Q.push({from:o,to:M})}return{changes:Q}}return null}const AN=Wg.define(),Ns=Wg.define(),os=r.define(),Xi=r.define({combine(I){return Og(I,{minDepth:100,newGroupDelay:500,joinToEvent:(A,g)=>g},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(A,g)=>(B,C)=>A(B,C)||g(B,C)})}});function Ms(I){let A=0;return I.iterChangedRanges((g,B)=>A=B),A}const ri=nA.define({create(){return Tg.empty},update(I,A){let g=A.state.facet(Xi),B=A.annotation(AN);if(B){let D=A.docChanged?j.single(Ms(A.changes)):void 0,o=rA.fromTransaction(A,D),M=B.side,G=M==0?I.undone:I.done;return o?G=tQ(G,G.length,g.minDepth,o):G=qi(G,A.startState.selection),new Tg(M==0?B.rest:G,M==0?G:B.rest)}let C=A.annotation(Ns);if((C=="full"||C=="before")&&(I=I.isolate()),A.annotation(dA.addToHistory)===!1)return A.changes.empty?I:I.addMapping(A.changes.desc);let Q=rA.fromTransaction(A),E=A.annotation(dA.time),N=A.annotation(dA.userEvent);return Q?I=I.addChanges(Q,E,N,g,A):A.selection&&(I=I.addSelection(A.startState.selection,E,N,g.newGroupDelay)),(C=="full"||C=="after")&&(I=I.isolate()),I},toJSON(I){return{done:I.done.map(A=>A.toJSON()),undone:I.undone.map(A=>A.toJSON())}},fromJSON(I){return new Tg(I.done.map(rA.fromJSON),I.undone.map(rA.fromJSON))}});function Gs(I={}){return[ri,Xi.of(I),_.domEventHandlers({beforeinput(A,g){let B=A.inputType=="historyUndo"?fi:A.inputType=="historyRedo"?gN:null;return B?(A.preventDefault(),B(g)):!1}})]}function wQ(I,A){return function({state:g,dispatch:B}){if(!A&&g.readOnly)return!1;let C=g.field(ri,!1);if(!C)return!1;let Q=C.pop(I,g,A);return Q?(B(Q),!0):!1}}const fi=wQ(0,!1),gN=wQ(1,!1),is=wQ(0,!0),Ls=wQ(1,!0);class rA{constructor(A,g,B,C,Q){this.changes=A,this.effects=g,this.mapped=B,this.startSelection=C,this.selectionsAfter=Q}setSelAfter(A){return new rA(this.changes,this.effects,this.mapped,this.startSelection,A)}toJSON(){var A,g,B;return{changes:(A=this.changes)===null||A===void 0?void 0:A.toJSON(),mapped:(g=this.mapped)===null||g===void 0?void 0:g.toJSON(),startSelection:(B=this.startSelection)===null||B===void 0?void 0:B.toJSON(),selectionsAfter:this.selectionsAfter.map(C=>C.toJSON())}}static fromJSON(A){return new rA(A.changes&&bA.fromJSON(A.changes),[],A.mapped&&Zg.fromJSON(A.mapped),A.startSelection&&j.fromJSON(A.startSelection),A.selectionsAfter.map(j.fromJSON))}static fromTransaction(A,g){let B=Mg;for(let C of A.startState.facet(os)){let Q=C(A);Q.length&&(B=B.concat(Q))}return!B.length&&A.changes.empty?null:new rA(A.changes.invert(A.startState.doc),B,void 0,g||A.startState.selection,Mg)}static selection(A){return new rA(void 0,Mg,void 0,void 0,A)}}function tQ(I,A,g,B){let C=A+1>g+20?A-g-1:0,Q=I.slice(C,A);return Q.push(B),Q}function Ss(I,A){let g=[],B=!1;return I.iterChangedRanges((C,Q)=>g.push(C,Q)),A.iterChangedRanges((C,Q,E,N)=>{for(let D=0;D<g.length;){let o=g[D++],M=g[D++];N>=o&&E<=M&&(B=!0)}}),B}function cs(I,A){return I.ranges.length==A.ranges.length&&I.ranges.filter((g,B)=>g.empty!=A.ranges[B].empty).length===0}function Pi(I,A){return I.length?A.length?I.concat(A):I:A}const Mg=[],Ys=200;function qi(I,A){if(I.length){let g=I[I.length-1],B=g.selectionsAfter.slice(Math.max(0,g.selectionsAfter.length-Ys));return B.length&&B[B.length-1].eq(A)?I:(B.push(A),tQ(I,I.length-1,1e9,g.setSelAfter(B)))}else return[rA.selection([A])]}function ys(I){let A=I[I.length-1],g=I.slice();return g[I.length-1]=A.setSelAfter(A.selectionsAfter.slice(0,A.selectionsAfter.length-1)),g}function IN(I,A){if(!I.length)return I;let g=I.length,B=Mg;for(;g;){let C=ws(I[g-1],A,B);if(C.changes&&!C.changes.empty||C.effects.length){let Q=I.slice(0,g);return Q[g-1]=C,Q}else A=C.mapped,g--,B=C.selectionsAfter}return B.length?[rA.selection(B)]:Mg}function ws(I,A,g){let B=Pi(I.selectionsAfter.length?I.selectionsAfter.map(N=>N.map(A)):Mg,g);if(!I.changes)return rA.selection(B);let C=I.changes.map(A),Q=A.mapDesc(I.changes,!0),E=I.mapped?I.mapped.composeDesc(Q):Q;return new rA(C,IA.mapEffects(I.effects,A),E,I.startSelection.map(Q),B)}const ts=/^(input\.type|delete)($|\.)/;class Tg{constructor(A,g,B=0,C=void 0){this.done=A,this.undone=g,this.prevTime=B,this.prevUserEvent=C}isolate(){return this.prevTime?new Tg(this.done,this.undone):this}addChanges(A,g,B,C,Q){let E=this.done,N=E[E.length-1];return N&&N.changes&&!N.changes.empty&&A.changes&&(!B||ts.test(B))&&(!N.selectionsAfter.length&&g-this.prevTime<C.newGroupDelay&&C.joinToEvent(Q,Ss(N.changes,A.changes))||B=="input.type.compose")?E=tQ(E,E.length-1,C.minDepth,new rA(A.changes.compose(N.changes),Pi(A.effects,N.effects),N.mapped,N.startSelection,Mg)):E=tQ(E,E.length,C.minDepth,A),new Tg(E,Mg,g,B)}addSelection(A,g,B,C){let Q=this.done.length?this.done[this.done.length-1].selectionsAfter:Mg;return Q.length>0&&g-this.prevTime<C&&B==this.prevUserEvent&&B&&/^select($|\.)/.test(B)&&cs(Q[Q.length-1],A)?this:new Tg(qi(this.done,A),this.undone,g,B)}addMapping(A){return new Tg(IN(this.done,A),IN(this.undone,A),this.prevTime,this.prevUserEvent)}pop(A,g,B){let C=A==0?this.done:this.undone;if(C.length==0)return null;let Q=C[C.length-1];if(B&&Q.selectionsAfter.length)return g.update({selection:Q.selectionsAfter[Q.selectionsAfter.length-1],annotations:AN.of({side:A,rest:ys(C)}),userEvent:A==0?"select.undo":"select.redo",scrollIntoView:!0});if(Q.changes){let E=C.length==1?Mg:C.slice(0,C.length-1);return Q.mapped&&(E=IN(E,Q.mapped)),g.update({changes:Q.changes,selection:Q.startSelection,effects:Q.effects,annotations:AN.of({side:A,rest:E}),filter:!1,userEvent:A==0?"undo":"redo",scrollIntoView:!0})}else return null}}Tg.empty=new Tg(Mg,Mg);const ss=[{key:"Mod-z",run:fi,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:gN,preventDefault:!0},{linux:"Ctrl-Shift-z",run:gN,preventDefault:!0},{key:"Mod-u",run:is,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:Ls,preventDefault:!0}];function AB(I,A){return j.create(I.ranges.map(A),I.mainIndex)}function eg(I,A){return I.update({selection:A,scrollIntoView:!0,userEvent:"select"})}function tg({state:I,dispatch:A},g){let B=AB(I.selection,g);return B.eq(I.selection)?!1:(A(eg(I,B)),!0)}function sQ(I,A){return j.cursor(A?I.to:I.from)}function _i(I,A){return tg(I,g=>g.empty?I.moveByChar(g,A):sQ(g,A))}function OA(I){return I.textDirectionAt(I.state.selection.main.head)==wA.LTR}const $i=I=>_i(I,!OA(I)),A0=I=>_i(I,OA(I));function g0(I,A){return tg(I,g=>g.empty?I.moveByGroup(g,A):sQ(g,A))}const Ks=I=>g0(I,!OA(I)),ls=I=>g0(I,OA(I));function ks(I,A,g){if(A.type.prop(g))return!0;let B=A.to-A.from;return B&&(B>2||/[^\s,.;:]/.test(I.sliceDoc(A.from,A.to)))||A.firstChild}function KQ(I,A,g){let B=XA(I).resolveInner(A.head),C=g?BA.closedBy:BA.openedBy;for(let D=A.head;;){let o=g?B.childAfter(D):B.childBefore(D);if(!o)break;ks(I,o,C)?B=o:D=g?o.to:o.from}let Q=B.type.prop(C),E,N;return Q&&(E=g?Ug(I,B.from,1):Ug(I,B.to,-1))&&E.matched?N=g?E.end.to:E.end.from:N=g?B.to:B.from,j.cursor(N,g?-1:1)}const Zs=I=>tg(I,A=>KQ(I.state,A,!OA(I))),hs=I=>tg(I,A=>KQ(I.state,A,OA(I)));function I0(I,A){return tg(I,g=>{if(!g.empty)return sQ(g,A);let B=I.moveVertically(g,A);return B.head!=g.head?B:I.moveToLineBoundary(g,A)})}const B0=I=>I0(I,!1),C0=I=>I0(I,!0);function Q0(I){let A=I.scrollDOM.clientHeight<I.scrollDOM.scrollHeight-2,g=0,B=0,C;if(A){for(let Q of I.state.facet(_.scrollMargins)){let E=Q(I);E!=null&&E.top&&(g=Math.max(E==null?void 0:E.top,g)),E!=null&&E.bottom&&(B=Math.max(E==null?void 0:E.bottom,B))}C=I.scrollDOM.clientHeight-g-B}else C=(I.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:g,marginBottom:B,selfScroll:A,height:Math.max(I.defaultLineHeight,C-5)}}function E0(I,A){let g=Q0(I),{state:B}=I,C=AB(B.selection,E=>E.empty?I.moveVertically(E,A,g.height):sQ(E,A));if(C.eq(B.selection))return!1;let Q;if(g.selfScroll){let E=I.coordsAtPos(B.selection.main.head),N=I.scrollDOM.getBoundingClientRect(),D=N.top+g.marginTop,o=N.bottom-g.marginBottom;E&&E.top>D&&E.bottom<o&&(Q=_.scrollIntoView(C.main.head,{y:"start",yMargin:E.top-D}))}return I.dispatch(eg(B,C),{effects:Q}),!0}const D0=I=>E0(I,!1),BN=I=>E0(I,!0);function GI(I,A,g){let B=I.lineBlockAt(A.head),C=I.moveToLineBoundary(A,g);if(C.head==A.head&&C.head!=(g?B.to:B.from)&&(C=I.moveToLineBoundary(A,g,!1)),!g&&C.head==B.from&&B.length){let Q=/^\s*/.exec(I.state.sliceDoc(B.from,Math.min(B.from+100,B.to)))[0].length;Q&&A.head!=B.from+Q&&(C=j.cursor(B.from+Q))}return C}const as=I=>tg(I,A=>GI(I,A,!0)),bs=I=>tg(I,A=>GI(I,A,!1)),ds=I=>tg(I,A=>GI(I,A,!OA(I))),Hs=I=>tg(I,A=>GI(I,A,OA(I))),Rs=I=>tg(I,A=>j.cursor(I.lineBlockAt(A.head).from,1)),Us=I=>tg(I,A=>j.cursor(I.lineBlockAt(A.head).to,-1));function Ts(I,A,g){let B=!1,C=AB(I.selection,Q=>{let E=Ug(I,Q.head,-1)||Ug(I,Q.head,1)||Q.head>0&&Ug(I,Q.head-1,1)||Q.head<I.doc.length&&Ug(I,Q.head+1,-1);if(!E||!E.end)return Q;B=!0;let N=E.start.from==Q.head?E.end.to:E.end.from;return g?j.range(Q.anchor,N):j.cursor(N)});return B?(A(eg(I,C)),!0):!1}const es=({state:I,dispatch:A})=>Ts(I,A,!1);function Gg(I,A){let g=AB(I.state.selection,B=>{let C=A(B);return j.range(B.anchor,C.head,C.goalColumn,C.bidiLevel||void 0)});return g.eq(I.state.selection)?!1:(I.dispatch(eg(I.state,g)),!0)}function N0(I,A){return Gg(I,g=>I.moveByChar(g,A))}const o0=I=>N0(I,!OA(I)),M0=I=>N0(I,OA(I));function G0(I,A){return Gg(I,g=>I.moveByGroup(g,A))}const zs=I=>G0(I,!OA(I)),Fs=I=>G0(I,OA(I)),js=I=>Gg(I,A=>KQ(I.state,A,!OA(I))),ms=I=>Gg(I,A=>KQ(I.state,A,OA(I)));function i0(I,A){return Gg(I,g=>I.moveVertically(g,A))}const L0=I=>i0(I,!1),S0=I=>i0(I,!0);function c0(I,A){return Gg(I,g=>I.moveVertically(g,A,Q0(I).height))}const Y0=I=>c0(I,!1),y0=I=>c0(I,!0),ps=I=>Gg(I,A=>GI(I,A,!0)),xs=I=>Gg(I,A=>GI(I,A,!1)),ns=I=>Gg(I,A=>GI(I,A,!OA(I))),Ws=I=>Gg(I,A=>GI(I,A,OA(I))),Os=I=>Gg(I,A=>j.cursor(I.lineBlockAt(A.head).from)),Js=I=>Gg(I,A=>j.cursor(I.lineBlockAt(A.head).to)),w0=({state:I,dispatch:A})=>(A(eg(I,{anchor:0})),!0),t0=({state:I,dispatch:A})=>(A(eg(I,{anchor:I.doc.length})),!0),s0=({state:I,dispatch:A})=>(A(eg(I,{anchor:I.selection.main.anchor,head:0})),!0),K0=({state:I,dispatch:A})=>(A(eg(I,{anchor:I.selection.main.anchor,head:I.doc.length})),!0),us=({state:I,dispatch:A})=>(A(I.update({selection:{anchor:0,head:I.doc.length},userEvent:"select"})),!0),vs=({state:I,dispatch:A})=>{let g=ZQ(I).map(({from:B,to:C})=>j.range(B,Math.min(C+1,I.doc.length)));return A(I.update({selection:j.create(g),userEvent:"select"})),!0},Vs=({state:I,dispatch:A})=>{let g=AB(I.selection,B=>{var C;let Q=XA(I).resolveInner(B.head,1);for(;!(Q.from<B.from&&Q.to>=B.to||Q.to>B.to&&Q.from<=B.from||!(!((C=Q.parent)===null||C===void 0)&&C.parent));)Q=Q.parent;return j.range(Q.to,Q.from)});return A(eg(I,g)),!0},Xs=({state:I,dispatch:A})=>{let g=I.selection,B=null;return g.ranges.length>1?B=j.create([g.main]):g.main.empty||(B=j.create([j.cursor(g.main.head)])),B?(A(eg(I,B)),!0):!1};function lQ(I,A){if(I.state.readOnly)return!1;let g="delete.selection",{state:B}=I,C=B.changeByRange(Q=>{let{from:E,to:N}=Q;if(E==N){let D=A(E);D<E?(g="delete.backward",D=kQ(I,D,!1)):D>E&&(g="delete.forward",D=kQ(I,D,!0)),E=Math.min(E,D),N=Math.max(N,D)}else E=kQ(I,E,!1),N=kQ(I,N,!0);return E==N?{range:Q}:{changes:{from:E,to:N},range:j.cursor(E)}});return C.changes.empty?!1:(I.dispatch(B.update(C,{scrollIntoView:!0,userEvent:g,effects:g=="delete.selection"?_.announce.of(B.phrase("Selection deleted")):void 0})),!0)}function kQ(I,A,g){if(I instanceof _)for(let B of I.state.facet(_.atomicRanges).map(C=>C(I)))B.between(A,A,(C,Q)=>{C<A&&Q>A&&(A=g?Q:C)});return A}const l0=(I,A)=>lQ(I,g=>{let{state:B}=I,C=B.doc.lineAt(g),Q,E;if(!A&&g>C.from&&g<C.from+200&&!/[^ \t]/.test(Q=C.text.slice(0,g-C.from))){if(Q[Q.length-1]==" ")return g-1;let N=JI(Q,B.tabSize),D=N%RI(B)||RI(B);for(let o=0;o<D&&Q[Q.length-1-o]==" ";o++)g--;E=g}else E=pA(C.text,g-C.from,A,A)+C.from,E==g&&C.number!=(A?B.doc.lines:1)&&(E+=A?1:-1);return E}),CN=I=>l0(I,!1),k0=I=>l0(I,!0),Z0=(I,A)=>lQ(I,g=>{let B=g,{state:C}=I,Q=C.doc.lineAt(B),E=C.charCategorizer(B);for(let N=null;;){if(B==(A?Q.to:Q.from)){B==g&&Q.number!=(A?C.doc.lines:1)&&(B+=A?1:-1);break}let D=pA(Q.text,B-Q.from,A)+Q.from,o=Q.text.slice(Math.min(B,D)-Q.from,Math.max(B,D)-Q.from),M=E(o);if(N!=null&&M!=N)break;(o!=" "||B!=g)&&(N=M),B=D}return B}),h0=I=>Z0(I,!1),rs=I=>Z0(I,!0),a0=I=>lQ(I,A=>{let g=I.lineBlockAt(A).to;return A<g?g:Math.min(I.state.doc.length,A+1)}),fs=I=>lQ(I,A=>{let g=I.lineBlockAt(A).from;return A>g?g:Math.max(0,A-1)}),Ps=({state:I,dispatch:A})=>{if(I.readOnly)return!1;let g=I.changeByRange(B=>({changes:{from:B.from,to:B.to,insert:EA.of(["",""])},range:j.cursor(B.from)}));return A(I.update(g,{scrollIntoView:!0,userEvent:"input"})),!0},qs=({state:I,dispatch:A})=>{if(I.readOnly)return!1;let g=I.changeByRange(B=>{if(!B.empty||B.from==0||B.from==I.doc.length)return{range:B};let C=B.from,Q=I.doc.lineAt(C),E=C==Q.from?C-1:pA(Q.text,C-Q.from,!1)+Q.from,N=C==Q.to?C+1:pA(Q.text,C-Q.from,!0)+Q.from;return{changes:{from:E,to:N,insert:I.doc.slice(C,N).append(I.doc.slice(E,C))},range:j.cursor(N)}});return g.changes.empty?!1:(A(I.update(g,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function ZQ(I){let A=[],g=-1;for(let B of I.selection.ranges){let C=I.doc.lineAt(B.from),Q=I.doc.lineAt(B.to);if(!B.empty&&B.to==Q.from&&(Q=I.doc.lineAt(B.to-1)),g>=C.number){let E=A[A.length-1];E.to=Q.to,E.ranges.push(B)}else A.push({from:C.from,to:Q.to,ranges:[B]});g=Q.number+1}return A}function b0(I,A,g){if(I.readOnly)return!1;let B=[],C=[];for(let Q of ZQ(I)){if(g?Q.to==I.doc.length:Q.from==0)continue;let E=I.doc.lineAt(g?Q.to+1:Q.from-1),N=E.length+1;if(g){B.push({from:Q.to,to:E.to},{from:Q.from,insert:E.text+I.lineBreak});for(let D of Q.ranges)C.push(j.range(Math.min(I.doc.length,D.anchor+N),Math.min(I.doc.length,D.head+N)))}else{B.push({from:E.from,to:Q.from},{from:Q.to,insert:I.lineBreak+E.text});for(let D of Q.ranges)C.push(j.range(D.anchor-N,D.head-N))}}return B.length?(A(I.update({changes:B,scrollIntoView:!0,selection:j.create(C,I.selection.mainIndex),userEvent:"move.line"})),!0):!1}const _s=({state:I,dispatch:A})=>b0(I,A,!1),$s=({state:I,dispatch:A})=>b0(I,A,!0);function d0(I,A,g){if(I.readOnly)return!1;let B=[];for(let C of ZQ(I))g?B.push({from:C.from,insert:I.doc.slice(C.from,C.to)+I.lineBreak}):B.push({from:C.to,insert:I.lineBreak+I.doc.slice(C.from,C.to)});return A(I.update({changes:B,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const AK=({state:I,dispatch:A})=>d0(I,A,!1),gK=({state:I,dispatch:A})=>d0(I,A,!0),IK=I=>{if(I.state.readOnly)return!1;let{state:A}=I,g=A.changes(ZQ(A).map(({from:C,to:Q})=>(C>0?C--:Q<A.doc.length&&Q++,{from:C,to:Q}))),B=AB(A.selection,C=>I.moveVertically(C,!0)).map(g);return I.dispatch({changes:g,selection:B,scrollIntoView:!0,userEvent:"delete.line"}),!0};function BK(I,A){if(/\(\)|\[\]|\{\}/.test(I.sliceDoc(A-1,A+1)))return{from:A,to:A};let g=XA(I).resolveInner(A),B=g.childBefore(A),C=g.childAfter(A),Q;return B&&C&&B.to<=A&&C.from>=A&&(Q=B.type.prop(BA.closedBy))&&Q.indexOf(C.name)>-1&&I.doc.lineAt(B.to).from==I.doc.lineAt(C.from).from&&!/\S/.test(I.sliceDoc(B.to,C.from))?{from:B.to,to:C.from}:null}const CK=H0(!1),QK=H0(!0);function H0(I){return({state:A,dispatch:g})=>{if(A.readOnly)return!1;let B=A.changeByRange(C=>{let{from:Q,to:E}=C,N=A.doc.lineAt(Q),D=!I&&Q==E&&BK(A,Q);I&&(Q=E=(E<=N.to?N:A.doc.lineAt(E)).to);let o=new YQ(A,{simulateBreak:Q,simulateDoubleBreak:!!D}),M=OD(o,Q);for(M==null&&(M=JI(/^\s*/.exec(A.doc.lineAt(Q).text)[0],A.tabSize));E<N.to&&/\s/.test(N.text[E-N.from]);)E++;D?{from:Q,to:E}=D:Q>N.from&&Q<N.from+100&&!/\S/.test(N.text.slice(0,Q))&&(Q=N.from);let G=["",XB(A,M)];return D&&G.push(XB(A,o.lineIndent(N.from,-1))),{changes:{from:Q,to:E,insert:EA.of(G)},range:j.cursor(Q+1+G[1].length)}});return g(A.update(B,{scrollIntoView:!0,userEvent:"input"})),!0}}function QN(I,A){let g=-1;return I.changeByRange(B=>{let C=[];for(let E=B.from;E<=B.to;){let N=I.doc.lineAt(E);N.number>g&&(B.empty||B.to>N.from)&&(A(N,C,B),g=N.number),E=N.to+1}let Q=I.changes(C);return{changes:C,range:j.range(Q.mapPos(B.anchor,1),Q.mapPos(B.head,1))}})}const EK=({state:I,dispatch:A})=>{if(I.readOnly)return!1;let g=Object.create(null),B=new YQ(I,{overrideIndentation:Q=>{let E=g[Q];return E??-1}}),C=QN(I,(Q,E,N)=>{let D=OD(B,Q.from);if(D==null)return;/\S/.test(Q.text)||(D=0);let o=/^\s*/.exec(Q.text)[0],M=XB(I,D);(o!=M||N.from<Q.from+o.length)&&(g[Q.from]=D,E.push({from:Q.from,to:Q.from+o.length,insert:M}))});return C.changes.empty||A(I.update(C,{userEvent:"indent"})),!0},DK=({state:I,dispatch:A})=>I.readOnly?!1:(A(I.update(QN(I,(g,B)=>{B.push({from:g.from,insert:I.facet(WD)})}),{userEvent:"input.indent"})),!0),NK=({state:I,dispatch:A})=>I.readOnly?!1:(A(I.update(QN(I,(g,B)=>{let C=/^\s*/.exec(g.text)[0];if(!C)return;let Q=JI(C,I.tabSize),E=0,N=XB(I,Math.max(0,Q-RI(I)));for(;E<C.length&&E<N.length&&C.charCodeAt(E)==N.charCodeAt(E);)E++;B.push({from:g.from+E,to:g.from+C.length,insert:N.slice(E)})}),{userEvent:"delete.dedent"})),!0),oK=[{key:"Ctrl-b",run:$i,shift:o0,preventDefault:!0},{key:"Ctrl-f",run:A0,shift:M0},{key:"Ctrl-p",run:B0,shift:L0},{key:"Ctrl-n",run:C0,shift:S0},{key:"Ctrl-a",run:Rs,shift:Os},{key:"Ctrl-e",run:Us,shift:Js},{key:"Ctrl-d",run:k0},{key:"Ctrl-h",run:CN},{key:"Ctrl-k",run:a0},{key:"Ctrl-Alt-h",run:h0},{key:"Ctrl-o",run:Ps},{key:"Ctrl-t",run:qs},{key:"Ctrl-v",run:BN}],MK=[{key:"ArrowLeft",run:$i,shift:o0,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:Ks,shift:zs,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:ds,shift:ns,preventDefault:!0},{key:"ArrowRight",run:A0,shift:M0,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:ls,shift:Fs,preventDefault:!0},{mac:"Cmd-ArrowRight",run:Hs,shift:Ws,preventDefault:!0},{key:"ArrowUp",run:B0,shift:L0,preventDefault:!0},{mac:"Cmd-ArrowUp",run:w0,shift:s0},{mac:"Ctrl-ArrowUp",run:D0,shift:Y0},{key:"ArrowDown",run:C0,shift:S0,preventDefault:!0},{mac:"Cmd-ArrowDown",run:t0,shift:K0},{mac:"Ctrl-ArrowDown",run:BN,shift:y0},{key:"PageUp",run:D0,shift:Y0},{key:"PageDown",run:BN,shift:y0},{key:"Home",run:bs,shift:xs,preventDefault:!0},{key:"Mod-Home",run:w0,shift:s0},{key:"End",run:as,shift:ps,preventDefault:!0},{key:"Mod-End",run:t0,shift:K0},{key:"Enter",run:CK},{key:"Mod-a",run:us},{key:"Backspace",run:CN,shift:CN},{key:"Delete",run:k0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:h0},{key:"Mod-Delete",mac:"Alt-Delete",run:rs},{mac:"Mod-Backspace",run:fs},{mac:"Mod-Delete",run:a0}].concat(oK.map(I=>({mac:I.key,run:I.run,shift:I.shift}))),GK=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:Zs,shift:js},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:hs,shift:ms},{key:"Alt-ArrowUp",run:_s},{key:"Shift-Alt-ArrowUp",run:AK},{key:"Alt-ArrowDown",run:$s},{key:"Shift-Alt-ArrowDown",run:gK},{key:"Escape",run:Xs},{key:"Mod-Enter",run:QK},{key:"Alt-l",mac:"Ctrl-l",run:vs},{key:"Mod-i",run:Vs,preventDefault:!0},{key:"Mod-[",run:NK},{key:"Mod-]",run:DK},{key:"Mod-Alt-\\",run:EK},{key:"Shift-Mod-k",run:IK},{key:"Shift-Mod-\\",run:es},{key:"Mod-/",run:gs},{key:"Alt-A",run:Bs}].concat(MK);function GA(){var I=arguments[0];typeof I=="string"&&(I=document.createElement(I));var A=1,g=arguments[1];if(g&&typeof g=="object"&&g.nodeType==null&&!Array.isArray(g)){for(var B in g)if(Object.prototype.hasOwnProperty.call(g,B)){var C=g[B];typeof C=="string"?I.setAttribute(B,C):C!=null&&(I[B]=C)}A++}for(;A<arguments.length;A++)R0(I,arguments[A]);return I}function R0(I,A){if(typeof A=="string")I.appendChild(document.createTextNode(A));else if(A!=null)if(A.nodeType!=null)I.appendChild(A);else if(Array.isArray(A))for(var g=0;g<A.length;g++)R0(I,A[g]);else throw new RangeError("Unsupported child node: "+A)}const U0=typeof String.prototype.normalize=="function"?I=>I.normalize("NFKD"):I=>I;class gB{constructor(A,g,B=0,C=A.length,Q,E){this.test=E,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=A.iterRange(B,C),this.bufferStart=B,this.normalize=Q?N=>Q(U0(N)):U0,this.query=this.normalize(g)}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 TA(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let A=this.peek();if(A<0)return this.done=!0,this;let g=aE(A),B=this.bufferStart+this.bufferPos;this.bufferPos+=Dg(A);let C=this.normalize(g);for(let Q=0,E=B;;Q++){let N=C.charCodeAt(Q),D=this.match(N,E);if(Q==C.length-1){if(D)return this.value=D,this;break}E==B&&Q<g.length&&g.charCodeAt(Q)==N&&E++}}}match(A,g){let B=null;for(let C=0;C<this.matches.length;C+=2){let Q=this.matches[C],E=!1;this.query.charCodeAt(Q)==A&&(Q==this.query.length-1?B={from:this.matches[C+1],to:g+1}:(this.matches[C]++,E=!0)),E||(this.matches.splice(C,2),C-=2)}return this.query.charCodeAt(0)==A&&(this.query.length==1?B={from:g,to:g+1}:this.matches.push(1,g)),B&&this.test&&!this.test(B.from,B.to,this.buffer,this.bufferPos)&&(B=null),B}}typeof Symbol<"u"&&(gB.prototype[Symbol.iterator]=function(){return this});const T0={from:-1,to:-1,match:/.*/.exec("")},EN="gm"+(/x/.unicode==null?"":"u");class e0{constructor(A,g,B,C=0,Q=A.length){if(this.text=A,this.to=Q,this.curLine="",this.done=!1,this.value=T0,/\\[sWDnr]|\n|\r|\[\^/.test(g))return new z0(A,g,B,C,Q);this.re=new RegExp(g,EN+(B!=null&&B.ignoreCase?"i":"")),this.test=B==null?void 0:B.test,this.iter=A.iter();let E=A.lineAt(C);this.curLineStart=E.from,this.matchPos=hQ(A,C),this.getLine(this.curLineStart)}getLine(A){this.iter.next(A),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 A=this.matchPos-this.curLineStart;;){this.re.lastIndex=A;let g=this.matchPos<=this.to&&this.re.exec(this.curLine);if(g){let B=this.curLineStart+g.index,C=B+g[0].length;if(this.matchPos=hQ(this.text,C+(B==C?1:0)),B==this.curLineStart+this.curLine.length&&this.nextLine(),(B<C||B>this.value.to)&&(!this.test||this.test(B,C,g)))return this.value={from:B,to:C,match:g},this;A=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),A=0;else return this.done=!0,this}}}const DN=new WeakMap;class IB{constructor(A,g){this.from=A,this.text=g}get to(){return this.from+this.text.length}static get(A,g,B){let C=DN.get(A);if(!C||C.from>=B||C.to<=g){let N=new IB(g,A.sliceString(g,B));return DN.set(A,N),N}if(C.from==g&&C.to==B)return C;let{text:Q,from:E}=C;return E>g&&(Q=A.sliceString(g,E)+Q,E=g),C.to<B&&(Q+=A.sliceString(C.to,B)),DN.set(A,new IB(E,Q)),new IB(g,Q.slice(g-E,B-E))}}class z0{constructor(A,g,B,C,Q){this.text=A,this.to=Q,this.done=!1,this.value=T0,this.matchPos=hQ(A,C),this.re=new RegExp(g,EN+(B!=null&&B.ignoreCase?"i":"")),this.test=B==null?void 0:B.test,this.flat=IB.get(A,C,this.chunkEnd(C+5e3))}chunkEnd(A){return A>=this.to?this.to:this.text.lineAt(A).to}next(){for(;;){let A=this.re.lastIndex=this.matchPos-this.flat.from,g=this.re.exec(this.flat.text);if(g&&!g[0]&&g.index==A&&(this.re.lastIndex=A+1,g=this.re.exec(this.flat.text)),g){let B=this.flat.from+g.index,C=B+g[0].length;if((this.flat.to>=this.to||g.index+g[0].length<=this.flat.text.length-10)&&(!this.test||this.test(B,C,g)))return this.value={from:B,to:C,match:g},this.matchPos=hQ(this.text,C+(B==C?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=IB.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(e0.prototype[Symbol.iterator]=z0.prototype[Symbol.iterator]=function(){return this});function iK(I){try{return new RegExp(I,EN),!0}catch{return!1}}function hQ(I,A){if(A>=I.length)return A;let g=I.lineAt(A),B;for(;A<g.to&&(B=g.text.charCodeAt(A-g.from))>=56320&&B<57344;)A++;return A}function NN(I){let A=GA("input",{class:"cm-textfield",name:"line"}),g=GA("form",{class:"cm-gotoLine",onkeydown:C=>{C.keyCode==27?(C.preventDefault(),I.dispatch({effects:aQ.of(!1)}),I.focus()):C.keyCode==13&&(C.preventDefault(),B())},onsubmit:C=>{C.preventDefault(),B()}},GA("label",I.state.phrase("Go to line"),": ",A)," ",GA("button",{class:"cm-button",type:"submit"},I.state.phrase("go")));function B(){let C=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(A.value);if(!C)return;let{state:Q}=I,E=Q.doc.lineAt(Q.selection.main.head),[,N,D,o,M]=C,G=o?+o.slice(1):0,i=D?+D:E.number;if(D&&M){let w=i/100;N&&(w=w*(N=="-"?-1:1)+E.number/Q.doc.lines),i=Math.round(Q.doc.lines*w)}else D&&N&&(i=i*(N=="-"?-1:1)+E.number);let L=Q.doc.line(Math.max(1,Math.min(Q.doc.lines,i))),Y=j.cursor(L.from+Math.max(0,Math.min(G,L.length)));I.dispatch({effects:[aQ.of(!1),_.scrollIntoView(Y.from,{y:"center"})],selection:Y}),I.focus()}return{dom:g}}const aQ=IA.define(),F0=nA.define({create(){return!0},update(I,A){for(let g of A.effects)g.is(aQ)&&(I=g.value);return I},provide:I=>uB.from(I,A=>A?NN:null)}),LK=I=>{let A=JB(I,NN);if(!A){let g=[aQ.of(!0)];I.state.field(F0,!1)==null&&g.push(IA.appendConfig.of([F0,SK])),I.dispatch({effects:g}),A=JB(I,NN)}return A&&A.dom.querySelector("input").focus(),!0},SK=_.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),cK={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},j0=r.define({combine(I){return Og(I,cK,{highlightWordAroundCursor:(A,g)=>A||g,minSelectionLength:Math.min,maxMatches:Math.min})}});function YK(I){let A=[KK,sK];return I&&A.push(j0.of(I)),A}const yK=AA.mark({class:"cm-selectionMatch"}),wK=AA.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function m0(I,A,g,B){return(g==0||I(A.sliceDoc(g-1,g))!=YA.Word)&&(B==A.doc.length||I(A.sliceDoc(B,B+1))!=YA.Word)}function tK(I,A,g,B){return I(A.sliceDoc(g,g+1))==YA.Word&&I(A.sliceDoc(B-1,B))==YA.Word}const sK=RA.fromClass(class{constructor(I){this.decorations=this.getDeco(I)}update(I){(I.selectionSet||I.docChanged||I.viewportChanged)&&(this.decorations=this.getDeco(I.view))}getDeco(I){let A=I.state.facet(j0),{state:g}=I,B=g.selection;if(B.ranges.length>1)return AA.none;let C=B.main,Q,E=null;if(C.empty){if(!A.highlightWordAroundCursor)return AA.none;let D=g.wordAt(C.head);if(!D)return AA.none;E=g.charCategorizer(C.head),Q=g.sliceDoc(D.from,D.to)}else{let D=C.to-C.from;if(D<A.minSelectionLength||D>200)return AA.none;if(A.wholeWords){if(Q=g.sliceDoc(C.from,C.to),E=g.charCategorizer(C.head),!(m0(E,g,C.from,C.to)&&tK(E,g,C.from,C.to)))return AA.none}else if(Q=g.sliceDoc(C.from,C.to).trim(),!Q)return AA.none}let N=[];for(let D of I.visibleRanges){let o=new gB(g.doc,Q,D.from,D.to);for(;!o.next().done;){let{from:M,to:G}=o.value;if((!E||m0(E,g,M,G))&&(C.empty&&M<=C.from&&G>=C.to?N.push(wK.range(M,G)):(M>=C.to||G<=C.from)&&N.push(yK.range(M,G)),N.length>A.maxMatches))return AA.none}}return AA.set(N)}},{decorations:I=>I.decorations}),KK=_.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),lK=({state:I,dispatch:A})=>{let{selection:g}=I,B=j.create(g.ranges.map(C=>I.wordAt(C.head)||j.cursor(C.head)),g.mainIndex);return B.eq(g)?!1:(A(I.update({selection:B})),!0)};function kK(I,A){let{main:g,ranges:B}=I.selection,C=I.wordAt(g.head),Q=C&&C.from==g.from&&C.to==g.to;for(let E=!1,N=new gB(I.doc,A,B[B.length-1].to);;)if(N.next(),N.done){if(E)return null;N=new gB(I.doc,A,0,Math.max(0,B[B.length-1].from-1)),E=!0}else{if(E&&B.some(D=>D.from==N.value.from))continue;if(Q){let D=I.wordAt(N.value.from);if(!D||D.from!=N.value.from||D.to!=N.value.to)continue}return N.value}}const ZK=({state:I,dispatch:A})=>{let{ranges:g}=I.selection;if(g.some(Q=>Q.from===Q.to))return lK({state:I,dispatch:A});let B=I.sliceDoc(g[0].from,g[0].to);if(I.selection.ranges.some(Q=>I.sliceDoc(Q.from,Q.to)!=B))return!1;let C=kK(I,B);return C?(A(I.update({selection:I.selection.addRange(j.range(C.from,C.to),!1),effects:_.scrollIntoView(C.to)})),!0):!1},BB=r.define({combine(I){return Og(I,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:A=>new jK(A),scrollToMatch:A=>_.scrollIntoView(A)})}});class p0{constructor(A){this.search=A.search,this.caseSensitive=!!A.caseSensitive,this.literal=!!A.literal,this.regexp=!!A.regexp,this.replace=A.replace||"",this.valid=!!this.search&&(!this.regexp||iK(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!A.wholeWord}unquote(A){return this.literal?A:A.replace(/\\([nrt\\])/g,(g,B)=>B=="n"?`
|
1628
|
+
`:B=="r"?"\r":B=="t"?" ":"\\")}eq(A){return this.search==A.search&&this.replace==A.replace&&this.caseSensitive==A.caseSensitive&&this.regexp==A.regexp&&this.wholeWord==A.wholeWord}create(){return this.regexp?new dK(this):new aK(this)}getCursor(A,g=0,B){let C=A.doc?A:CA.create({doc:A});return B==null&&(B=C.doc.length),this.regexp?QB(this,C,g,B):CB(this,C,g,B)}}class x0{constructor(A){this.spec=A}}function CB(I,A,g,B){return new gB(A.doc,I.unquoted,g,B,I.caseSensitive?void 0:C=>C.toLowerCase(),I.wholeWord?hK(A.doc,A.charCategorizer(A.selection.main.head)):void 0)}function hK(I,A){return(g,B,C,Q)=>((Q>g||Q+C.length<B)&&(Q=Math.max(0,g-2),C=I.sliceString(Q,Math.min(I.length,B+2))),(A(bQ(C,g-Q))!=YA.Word||A(dQ(C,g-Q))!=YA.Word)&&(A(dQ(C,B-Q))!=YA.Word||A(bQ(C,B-Q))!=YA.Word))}class aK extends x0{constructor(A){super(A)}nextMatch(A,g,B){let C=CB(this.spec,A,B,A.doc.length).nextOverlapping();return C.done&&(C=CB(this.spec,A,0,g).nextOverlapping()),C.done?null:C.value}prevMatchInRange(A,g,B){for(let C=B;;){let Q=Math.max(g,C-1e4-this.spec.unquoted.length),E=CB(this.spec,A,Q,C),N=null;for(;!E.nextOverlapping().done;)N=E.value;if(N)return N;if(Q==g)return null;C-=1e4}}prevMatch(A,g,B){return this.prevMatchInRange(A,0,g)||this.prevMatchInRange(A,B,A.doc.length)}getReplacement(A){return this.spec.unquote(this.spec.replace)}matchAll(A,g){let B=CB(this.spec,A,0,A.doc.length),C=[];for(;!B.next().done;){if(C.length>=g)return null;C.push(B.value)}return C}highlight(A,g,B,C){let Q=CB(this.spec,A,Math.max(0,g-this.spec.unquoted.length),Math.min(B+this.spec.unquoted.length,A.doc.length));for(;!Q.next().done;)C(Q.value.from,Q.value.to)}}function QB(I,A,g,B){return new e0(A.doc,I.search,{ignoreCase:!I.caseSensitive,test:I.wholeWord?bK(A.charCategorizer(A.selection.main.head)):void 0},g,B)}function bQ(I,A){return I.slice(pA(I,A,!1),A)}function dQ(I,A){return I.slice(A,pA(I,A))}function bK(I){return(A,g,B)=>!B[0].length||(I(bQ(B.input,B.index))!=YA.Word||I(dQ(B.input,B.index))!=YA.Word)&&(I(dQ(B.input,B.index+B[0].length))!=YA.Word||I(bQ(B.input,B.index+B[0].length))!=YA.Word)}class dK extends x0{nextMatch(A,g,B){let C=QB(this.spec,A,B,A.doc.length).next();return C.done&&(C=QB(this.spec,A,0,g).next()),C.done?null:C.value}prevMatchInRange(A,g,B){for(let C=1;;C++){let Q=Math.max(g,B-C*1e4),E=QB(this.spec,A,Q,B),N=null;for(;!E.next().done;)N=E.value;if(N&&(Q==g||N.from>Q+10))return N;if(Q==g)return null}}prevMatch(A,g,B){return this.prevMatchInRange(A,0,g)||this.prevMatchInRange(A,B,A.doc.length)}getReplacement(A){return this.spec.unquote(this.spec.replace.replace(/\$([$&\d+])/g,(g,B)=>B=="$"?"$":B=="&"?A.match[0]:B!="0"&&+B<A.match.length?A.match[B]:g))}matchAll(A,g){let B=QB(this.spec,A,0,A.doc.length),C=[];for(;!B.next().done;){if(C.length>=g)return null;C.push(B.value)}return C}highlight(A,g,B,C){let Q=QB(this.spec,A,Math.max(0,g-250),Math.min(B+250,A.doc.length));for(;!Q.next().done;)C(Q.value.from,Q.value.to)}}const PB=IA.define(),oN=IA.define(),iI=nA.define({create(I){return new MN(iN(I).create(),null)},update(I,A){for(let g of A.effects)g.is(PB)?I=new MN(g.value.create(),I.panel):g.is(oN)&&(I=new MN(I.query,g.value?GN:null));return I},provide:I=>uB.from(I,A=>A.panel)});class MN{constructor(A,g){this.query=A,this.panel=g}}const HK=AA.mark({class:"cm-searchMatch"}),RK=AA.mark({class:"cm-searchMatch cm-searchMatch-selected"}),UK=RA.fromClass(class{constructor(I){this.view=I,this.decorations=this.highlight(I.state.field(iI))}update(I){let A=I.state.field(iI);(A!=I.startState.field(iI)||I.docChanged||I.selectionSet||I.viewportChanged)&&(this.decorations=this.highlight(A))}highlight({query:I,panel:A}){if(!A||!I.spec.valid)return AA.none;let{view:g}=this,B=new ZI;for(let C=0,Q=g.visibleRanges,E=Q.length;C<E;C++){let{from:N,to:D}=Q[C];for(;C<E-1&&D>Q[C+1].from-2*250;)D=Q[++C].to;I.highlight(g.state,N,D,(o,M)=>{let G=g.state.selection.ranges.some(i=>i.from==o&&i.to==M);B.add(o,M,G?RK:HK)})}return B.finish()}},{decorations:I=>I.decorations});function qB(I){return A=>{let g=A.state.field(iI,!1);return g&&g.query.spec.valid?I(A,g):J0(A)}}const HQ=qB((I,{query:A})=>{let{to:g}=I.state.selection.main,B=A.nextMatch(I.state,g,g);if(!B)return!1;let C=j.single(B.from,B.to),Q=I.state.facet(BB);return I.dispatch({selection:C,effects:[LN(I,B),Q.scrollToMatch(C.main,I)],userEvent:"select.search"}),O0(I),!0}),RQ=qB((I,{query:A})=>{let{state:g}=I,{from:B}=g.selection.main,C=A.prevMatch(g,B,B);if(!C)return!1;let Q=j.single(C.from,C.to),E=I.state.facet(BB);return I.dispatch({selection:Q,effects:[LN(I,C),E.scrollToMatch(Q.main,I)],userEvent:"select.search"}),O0(I),!0}),TK=qB((I,{query:A})=>{let g=A.matchAll(I.state,1e3);return!g||!g.length?!1:(I.dispatch({selection:j.create(g.map(B=>j.range(B.from,B.to))),userEvent:"select.search.matches"}),!0)}),eK=({state:I,dispatch:A})=>{let g=I.selection;if(g.ranges.length>1||g.main.empty)return!1;let{from:B,to:C}=g.main,Q=[],E=0;for(let N=new gB(I.doc,I.sliceDoc(B,C));!N.next().done;){if(Q.length>1e3)return!1;N.value.from==B&&(E=Q.length),Q.push(j.range(N.value.from,N.value.to))}return A(I.update({selection:j.create(Q,E),userEvent:"select.search.matches"})),!0},n0=qB((I,{query:A})=>{let{state:g}=I,{from:B,to:C}=g.selection.main;if(g.readOnly)return!1;let Q=A.nextMatch(g,B,B);if(!Q)return!1;let E=[],N,D,o=[];if(Q.from==B&&Q.to==C&&(D=g.toText(A.getReplacement(Q)),E.push({from:Q.from,to:Q.to,insert:D}),Q=A.nextMatch(g,Q.from,Q.to),o.push(_.announce.of(g.phrase("replaced match on line $",g.doc.lineAt(B).number)+"."))),Q){let M=E.length==0||E[0].from>=Q.to?0:Q.to-Q.from-D.length;N=j.single(Q.from-M,Q.to-M),o.push(LN(I,Q)),o.push(g.facet(BB).scrollToMatch(N.main,I))}return I.dispatch({changes:E,selection:N,effects:o,userEvent:"input.replace"}),!0}),zK=qB((I,{query:A})=>{if(I.state.readOnly)return!1;let g=A.matchAll(I.state,1e9).map(C=>{let{from:Q,to:E}=C;return{from:Q,to:E,insert:A.getReplacement(C)}});if(!g.length)return!1;let B=I.state.phrase("replaced $ matches",g.length)+".";return I.dispatch({changes:g,effects:_.announce.of(B),userEvent:"input.replace.all"}),!0});function GN(I){return I.state.facet(BB).createPanel(I)}function iN(I,A){var g,B,C,Q,E;let N=I.selection.main,D=N.empty||N.to>N.from+100?"":I.sliceDoc(N.from,N.to);if(A&&!D)return A;let o=I.facet(BB);return new p0({search:((g=A==null?void 0:A.literal)!==null&&g!==void 0?g:o.literal)?D:D.replace(/\n/g,"\\n"),caseSensitive:(B=A==null?void 0:A.caseSensitive)!==null&&B!==void 0?B:o.caseSensitive,literal:(C=A==null?void 0:A.literal)!==null&&C!==void 0?C:o.literal,regexp:(Q=A==null?void 0:A.regexp)!==null&&Q!==void 0?Q:o.regexp,wholeWord:(E=A==null?void 0:A.wholeWord)!==null&&E!==void 0?E:o.wholeWord})}function W0(I){let A=JB(I,GN);return A&&A.dom.querySelector("[main-field]")}function O0(I){let A=W0(I);A&&A==I.root.activeElement&&A.select()}const J0=I=>{let A=I.state.field(iI,!1);if(A&&A.panel){let g=W0(I);if(g&&g!=I.root.activeElement){let B=iN(I.state,A.query.spec);B.valid&&I.dispatch({effects:PB.of(B)}),g.focus(),g.select()}}else I.dispatch({effects:[oN.of(!0),A?PB.of(iN(I.state,A.query.spec)):IA.appendConfig.of(pK)]});return!0},u0=I=>{let A=I.state.field(iI,!1);if(!A||!A.panel)return!1;let g=JB(I,GN);return g&&g.dom.contains(I.root.activeElement)&&I.focus(),I.dispatch({effects:oN.of(!1)}),!0},FK=[{key:"Mod-f",run:J0,scope:"editor search-panel"},{key:"F3",run:HQ,shift:RQ,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:HQ,shift:RQ,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:u0,scope:"editor search-panel"},{key:"Mod-Shift-l",run:eK},{key:"Alt-g",run:LK},{key:"Mod-d",run:ZK,preventDefault:!0}];class jK{constructor(A){this.view=A;let g=this.query=A.state.field(iI).query.spec;this.commit=this.commit.bind(this),this.searchField=GA("input",{value:g.search,placeholder:Ig(A,"Find"),"aria-label":Ig(A,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=GA("input",{value:g.replace,placeholder:Ig(A,"Replace"),"aria-label":Ig(A,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=GA("input",{type:"checkbox",name:"case",form:"",checked:g.caseSensitive,onchange:this.commit}),this.reField=GA("input",{type:"checkbox",name:"re",form:"",checked:g.regexp,onchange:this.commit}),this.wordField=GA("input",{type:"checkbox",name:"word",form:"",checked:g.wholeWord,onchange:this.commit});function B(C,Q,E){return GA("button",{class:"cm-button",name:C,onclick:Q,type:"button"},E)}this.dom=GA("div",{onkeydown:C=>this.keydown(C),class:"cm-search"},[this.searchField,B("next",()=>HQ(A),[Ig(A,"next")]),B("prev",()=>RQ(A),[Ig(A,"previous")]),B("select",()=>TK(A),[Ig(A,"all")]),GA("label",null,[this.caseField,Ig(A,"match case")]),GA("label",null,[this.reField,Ig(A,"regexp")]),GA("label",null,[this.wordField,Ig(A,"by word")]),...A.state.readOnly?[]:[GA("br"),this.replaceField,B("replace",()=>n0(A),[Ig(A,"replace")]),B("replaceAll",()=>zK(A),[Ig(A,"replace all")])],GA("button",{name:"close",onclick:()=>u0(A),"aria-label":Ig(A,"close"),type:"button"},["×"])])}commit(){let A=new p0({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});A.eq(this.query)||(this.query=A,this.view.dispatch({effects:PB.of(A)}))}keydown(A){ow(this.view,A,"search-panel")?A.preventDefault():A.keyCode==13&&A.target==this.searchField?(A.preventDefault(),(A.shiftKey?RQ:HQ)(this.view)):A.keyCode==13&&A.target==this.replaceField&&(A.preventDefault(),n0(this.view))}update(A){for(let g of A.transactions)for(let B of g.effects)B.is(PB)&&!B.value.eq(this.query)&&this.setQuery(B.value)}setQuery(A){this.query=A,this.searchField.value=A.search,this.replaceField.value=A.replace,this.caseField.checked=A.caseSensitive,this.reField.checked=A.regexp,this.wordField.checked=A.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(BB).top}}function Ig(I,A){return I.state.phrase(A)}const UQ=30,TQ=/[\s\.,:;?!]/;function LN(I,{from:A,to:g}){let B=I.state.doc.lineAt(A),C=I.state.doc.lineAt(g).to,Q=Math.max(B.from,A-UQ),E=Math.min(C,g+UQ),N=I.state.sliceDoc(Q,E);if(Q!=B.from){for(let D=0;D<UQ;D++)if(!TQ.test(N[D+1])&&TQ.test(N[D])){N=N.slice(D);break}}if(E!=C){for(let D=N.length-1;D>N.length-UQ;D--)if(!TQ.test(N[D-1])&&TQ.test(N[D])){N=N.slice(0,D);break}}return _.announce.of(`${I.state.phrase("current match")}. ${N} ${I.state.phrase("on line")} ${B.number}.`)}const mK=_.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"}}),pK=[iI,WI.low(UK),mK];class v0{constructor(A,g,B){this.state=A,this.pos=g,this.explicit=B,this.abortListeners=[]}tokenBefore(A){let g=XA(this.state).resolveInner(this.pos,-1);for(;g&&A.indexOf(g.name)<0;)g=g.parent;return g?{from:g.from,to:this.pos,text:this.state.sliceDoc(g.from,this.pos),type:g.type}:null}matchBefore(A){let g=this.state.doc.lineAt(this.pos),B=Math.max(g.from,this.pos-250),C=g.text.slice(B-g.from,this.pos-g.from),Q=C.search(r0(A,!1));return Q<0?null:{from:B+Q,to:this.pos,text:C.slice(Q)}}get aborted(){return this.abortListeners==null}addEventListener(A,g){A=="abort"&&this.abortListeners&&this.abortListeners.push(g)}}function V0(I){let A=Object.keys(I).join(""),g=/\w/.test(A);return g&&(A=A.replace(/\w/g,"")),`[${g?"\\w":""}${A.replace(/[^\w\s]/g,"\\$&")}]`}function xK(I){let A=Object.create(null),g=Object.create(null);for(let{label:C}of I){A[C[0]]=!0;for(let Q=1;Q<C.length;Q++)g[C[Q]]=!0}let B=V0(A)+V0(g)+"*$";return[new RegExp("^"+B),new RegExp(B)]}function nK(I){let A=I.map(C=>typeof C=="string"?{label:C}:C),[g,B]=A.every(C=>/^\w+$/.test(C.label))?[/\w*$/,/\w+$/]:xK(A);return C=>{let Q=C.matchBefore(B);return Q||C.explicit?{from:Q?Q.from:C.pos,options:A,validFor:g}:null}}let X0=class{constructor(A,g,B,C){this.completion=A,this.source=g,this.match=B,this.score=C}};function LI(I){return I.selection.main.from}function r0(I,A){var g;let{source:B}=I,C=A&&B[0]!="^",Q=B[B.length-1]!="$";return!C&&!Q?I:new RegExp(`${C?"^":""}(?:${B})${Q?"$":""}`,(g=I.flags)!==null&&g!==void 0?g:I.ignoreCase?"i":"")}const WK=Wg.define();function OK(I,A,g,B){let{main:C}=I.selection,Q=g-C.from,E=B-C.from;return Object.assign(Object.assign({},I.changeByRange(N=>N!=C&&g!=B&&I.sliceDoc(N.from+Q,N.from+E)!=I.sliceDoc(g,B)?{range:N}:{changes:{from:N.from+Q,to:B==C.from?N.to:N.from+E,insert:A},range:j.cursor(N.from+Q+A.length)})),{userEvent:"input.complete"})}const f0=new WeakMap;function JK(I){if(!Array.isArray(I))return I;let A=f0.get(I);return A||f0.set(I,A=nK(I)),A}const SN=IA.define(),_B=IA.define();class uK{constructor(A){this.pattern=A,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let g=0;g<A.length;){let B=TA(A,g),C=Dg(B);this.chars.push(B);let Q=A.slice(g,g+C),E=Q.toUpperCase();this.folded.push(TA(E==Q?Q.toLowerCase():E,0)),g+=C}this.astral=A.length!=this.chars.length}ret(A,g){return this.score=A,this.matched=g,!0}match(A){if(this.pattern.length==0)return this.ret(-100,[]);if(A.length<this.pattern.length)return!1;let{chars:g,folded:B,any:C,precise:Q,byWord:E}=this;if(g.length==1){let h=TA(A,0),K=Dg(h),y=K==A.length?0:-100;if(h!=g[0])if(h==B[0])y+=-200;else return!1;return this.ret(y,[0,K])}let N=A.indexOf(this.pattern);if(N==0)return this.ret(A.length==this.pattern.length?0:-100,[0,this.pattern.length]);let D=g.length,o=0;if(N<0){for(let h=0,K=Math.min(A.length,200);h<K&&o<D;){let y=TA(A,h);(y==g[o]||y==B[o])&&(C[o++]=h),h+=Dg(y)}if(o<D)return!1}let M=0,G=0,i=!1,L=0,Y=-1,w=-1,t=/[a-z]/.test(A),Z=!0;for(let h=0,K=Math.min(A.length,200),y=0;h<K&&G<D;){let S=TA(A,h);N<0&&(M<D&&S==g[M]&&(Q[M++]=h),L<D&&(S==g[L]||S==B[L]?(L==0&&(Y=h),w=h+1,L++):L=0));let c,l=S<255?S>=48&&S<=57||S>=97&&S<=122?2:S>=65&&S<=90?1:0:(c=aE(S))!=c.toLowerCase()?1:c!=c.toUpperCase()?2:0;(!h||l==1&&t||y==0&&l!=0)&&(g[G]==S||B[G]==S&&(i=!0)?E[G++]=h:E.length&&(Z=!1)),y=l,h+=Dg(S)}return G==D&&E[0]==0&&Z?this.result(-100+(i?-200:0),E,A):L==D&&Y==0?this.ret(-200-A.length+(w==A.length?0:-100),[0,w]):N>-1?this.ret(-700-A.length,[N,N+this.pattern.length]):L==D?this.ret(-200+-700-A.length,[Y,w]):G==D?this.result(-100+(i?-200:0)+-700+(Z?0:-1100),E,A):g.length==2?!1:this.result((C[0]?-700:0)+-200+-1100,C,A)}result(A,g,B){let C=[],Q=0;for(let E of g){let N=E+(this.astral?Dg(TA(B,E)):1);Q&&C[Q-1]==E?C[Q-1]=N:(C[Q++]=E,C[Q++]=N)}return this.ret(A-B.length,C)}}const fA=r.define({combine(I){return Og(I,{activateOnTyping:!0,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:vK,compareCompletions:(A,g)=>A.label.localeCompare(g.label),interactionDelay:75},{defaultKeymap:(A,g)=>A&&g,closeOnBlur:(A,g)=>A&&g,icons:(A,g)=>A&&g,tooltipClass:(A,g)=>B=>P0(A(B),g(B)),optionClass:(A,g)=>B=>P0(A(B),g(B)),addToOptions:(A,g)=>A.concat(g)})}});function P0(I,A){return I?A?I+" "+A:I:A}function vK(I,A,g,B,C){let Q=I.textDirection==wA.RTL,E=Q,N=!1,D="top",o,M,G=A.left-C.left,i=C.right-A.right,L=B.right-B.left,Y=B.bottom-B.top;if(E&&G<Math.min(L,i)?E=!1:!E&&i<Math.min(L,G)&&(E=!0),L<=(E?G:i))o=Math.max(C.top,Math.min(g.top,C.bottom-Y))-A.top,M=Math.min(400,E?G:i);else{N=!0,M=Math.min(400,(Q?A.right:C.right-A.left)-30);let w=C.bottom-A.bottom;w>=Y||w>A.top?o=g.bottom-A.top:(D="bottom",o=A.bottom-g.top)}return{style:`${D}: ${o}px; max-width: ${M}px`,class:"cm-completionInfo-"+(N?Q?"left-narrow":"right-narrow":E?"left":"right")}}function VK(I){let A=I.addToOptions.slice();return I.icons&&A.push({render(g){let B=document.createElement("div");return B.classList.add("cm-completionIcon"),g.type&&B.classList.add(...g.type.split(/\s+/g).map(C=>"cm-completionIcon-"+C)),B.setAttribute("aria-hidden","true"),B},position:20}),A.push({render(g,B,C){let Q=document.createElement("span");Q.className="cm-completionLabel";let E=g.displayLabel||g.label,N=0;for(let D=0;D<C.length;){let o=C[D++],M=C[D++];o>N&&Q.appendChild(document.createTextNode(E.slice(N,o)));let G=Q.appendChild(document.createElement("span"));G.appendChild(document.createTextNode(E.slice(o,M))),G.className="cm-completionMatchedText",N=M}return N<E.length&&Q.appendChild(document.createTextNode(E.slice(N))),Q},position:50},{render(g){if(!g.detail)return null;let B=document.createElement("span");return B.className="cm-completionDetail",B.textContent=g.detail,B},position:80}),A.sort((g,B)=>g.position-B.position).map(g=>g.render)}function q0(I,A,g){if(I<=g)return{from:0,to:I};if(A<0&&(A=0),A<=I>>1){let C=Math.floor(A/g);return{from:C*g,to:(C+1)*g}}let B=Math.floor((I-A)/g);return{from:I-(B+1)*g,to:I-B*g}}class XK{constructor(A,g,B){this.view=A,this.stateField=g,this.applyCompletion=B,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:D=>this.placeInfo(D),key:this},this.space=null,this.currentClass="";let C=A.state.field(g),{options:Q,selected:E}=C.open,N=A.state.facet(fA);this.optionContent=VK(N),this.optionClass=N.optionClass,this.tooltipClass=N.tooltipClass,this.range=q0(Q.length,E,N.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(A.state),this.dom.addEventListener("mousedown",D=>{for(let o=D.target,M;o&&o!=this.dom;o=o.parentNode)if(o.nodeName=="LI"&&(M=/-(\d+)$/.exec(o.id))&&+M[1]<Q.length){this.applyCompletion(A,Q[+M[1]]),D.preventDefault();return}}),this.dom.addEventListener("focusout",D=>{let o=A.state.field(this.stateField,!1);o&&o.tooltip&&A.state.facet(fA).closeOnBlur&&D.relatedTarget!=A.contentDOM&&A.dispatch({effects:_B.of(null)})}),this.list=this.dom.appendChild(this.createListBox(Q,C.id,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}mount(){this.updateSel()}update(A){var g,B,C;let Q=A.state.field(this.stateField),E=A.startState.field(this.stateField);this.updateTooltipClass(A.state),Q!=E&&(this.updateSel(),((g=Q.open)===null||g===void 0?void 0:g.disabled)!=((B=E.open)===null||B===void 0?void 0:B.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!(!((C=Q.open)===null||C===void 0)&&C.disabled)))}updateTooltipClass(A){let g=this.tooltipClass(A);if(g!=this.currentClass){for(let B of this.currentClass.split(" "))B&&this.dom.classList.remove(B);for(let B of g.split(" "))B&&this.dom.classList.add(B);this.currentClass=g}}positioned(A){this.space=A,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let A=this.view.state.field(this.stateField),g=A.open;if((g.selected>-1&&g.selected<this.range.from||g.selected>=this.range.to)&&(this.range=q0(g.options.length,g.selected,this.view.state.facet(fA).maxRenderedOptions),this.list.remove(),this.list=this.dom.appendChild(this.createListBox(g.options,A.id,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})),this.updateSelectedOption(g.selected)){this.destroyInfo();let{completion:B}=g.options[g.selected],{info:C}=B;if(!C)return;let Q=typeof C=="string"?document.createTextNode(C):C(B);if(!Q)return;"then"in Q?Q.then(E=>{E&&this.view.state.field(this.stateField,!1)==A&&this.addInfoPane(E,B)}).catch(E=>Ng(this.view.state,E,"completion info")):this.addInfoPane(Q,B)}}addInfoPane(A,g){this.destroyInfo();let B=this.info=document.createElement("div");if(B.className="cm-tooltip cm-completionInfo",A.nodeType!=null)B.appendChild(A),this.infoDestroy=null;else{let{dom:C,destroy:Q}=A;B.appendChild(C),this.infoDestroy=Q||null}this.dom.appendChild(B),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(A){let g=null;for(let B=this.list.firstChild,C=this.range.from;B;B=B.nextSibling,C++)B.nodeName!="LI"||!B.id?C--:C==A?B.hasAttribute("aria-selected")||(B.setAttribute("aria-selected","true"),g=B):B.hasAttribute("aria-selected")&&B.removeAttribute("aria-selected");return g&&fK(this.list,g),g}measureInfo(){let A=this.dom.querySelector("[aria-selected]");if(!A||!this.info)return null;let g=this.dom.getBoundingClientRect(),B=this.info.getBoundingClientRect(),C=A.getBoundingClientRect(),Q=this.space;if(!Q){let E=this.dom.ownerDocument.defaultView||window;Q={left:0,top:0,right:E.innerWidth,bottom:E.innerHeight}}return C.top>Math.min(Q.bottom,g.bottom)-10||C.bottom<Math.max(Q.top,g.top)+10?null:this.view.state.facet(fA).positionInfo(this.view,g,C,B,Q)}placeInfo(A){this.info&&(A?(A.style&&(this.info.style.cssText=A.style),this.info.className="cm-tooltip cm-completionInfo "+(A.class||"")):this.info.style.cssText="top: -1e6px")}createListBox(A,g,B){const C=document.createElement("ul");C.id=g,C.setAttribute("role","listbox"),C.setAttribute("aria-expanded","true"),C.setAttribute("aria-label",this.view.state.phrase("Completions"));let Q=null;for(let E=B.from;E<B.to;E++){let{completion:N,match:D}=A[E],{section:o}=N;if(o){let i=typeof o=="string"?o:o.name;if(i!=Q&&(E>B.from||B.from==0))if(Q=i,typeof o!="string"&&o.header)C.appendChild(o.header(o));else{let L=C.appendChild(document.createElement("completion-section"));L.textContent=i}}const M=C.appendChild(document.createElement("li"));M.id=g+"-"+E,M.setAttribute("role","option");let G=this.optionClass(N);G&&(M.className=G);for(let i of this.optionContent){let L=i(N,this.view.state,D);L&&M.appendChild(L)}}return B.from&&C.classList.add("cm-completionListIncompleteTop"),B.to<A.length&&C.classList.add("cm-completionListIncompleteBottom"),C}destroyInfo(){this.info&&(this.infoDestroy&&this.infoDestroy(),this.info.remove(),this.info=null)}destroy(){this.destroyInfo()}}function rK(I,A){return g=>new XK(g,I,A)}function fK(I,A){let g=I.getBoundingClientRect(),B=A.getBoundingClientRect();B.top<g.top?I.scrollTop-=g.top-B.top:B.bottom>g.bottom&&(I.scrollTop+=B.bottom-g.bottom)}function _0(I){return(I.boost||0)*100+(I.apply?10:0)+(I.info?5:0)+(I.type?1:0)}function PK(I,A){let g=[],B=null,C=D=>{g.push(D);let{section:o}=D.completion;if(o){B||(B=[]);let M=typeof o=="string"?o:o.name;B.some(G=>G.name==M)||B.push(typeof o=="string"?{name:M}:o)}};for(let D of I)if(D.hasResult()){let o=D.result.getMatch;if(D.result.filter===!1)for(let M of D.result.options)C(new X0(M,D.source,o?o(M):[],1e9-g.length));else{let M=new uK(A.sliceDoc(D.from,D.to));for(let G of D.result.options)if(M.match(G.label)){let i=G.displayLabel?o?o(G,M.matched):[]:M.matched;C(new X0(G,D.source,i,M.score+(G.boost||0)))}}}if(B){let D=Object.create(null),o=0,M=(G,i)=>{var L,Y;return((L=G.rank)!==null&&L!==void 0?L:1e9)-((Y=i.rank)!==null&&Y!==void 0?Y:1e9)||(G.name<i.name?-1:1)};for(let G of B.sort(M))o-=1e5,D[G.name]=o;for(let G of g){let{section:i}=G.completion;i&&(G.score+=D[typeof i=="string"?i:i.name])}}let Q=[],E=null,N=A.facet(fA).compareCompletions;for(let D of g.sort((o,M)=>M.score-o.score||N(o.completion,M.completion))){let o=D.completion;!E||E.label!=o.label||E.detail!=o.detail||E.type!=null&&o.type!=null&&E.type!=o.type||E.apply!=o.apply||E.boost!=o.boost?Q.push(D):_0(D.completion)>_0(E)&&(Q[Q.length-1]=D),E=D.completion}return Q}class EB{constructor(A,g,B,C,Q,E){this.options=A,this.attrs=g,this.tooltip=B,this.timestamp=C,this.selected=Q,this.disabled=E}setSelected(A,g){return A==this.selected||A>=this.options.length?this:new EB(this.options,$0(g,A),this.tooltip,this.timestamp,A,this.disabled)}static build(A,g,B,C,Q){let E=PK(A,g);if(!E.length)return C&&A.some(D=>D.state==1)?new EB(C.options,C.attrs,C.tooltip,C.timestamp,C.selected,!0):null;let N=g.facet(fA).selectOnOpen?0:-1;if(C&&C.selected!=N&&C.selected!=-1){let D=C.options[C.selected].completion;for(let o=0;o<E.length;o++)if(E[o].completion==D){N=o;break}}return new EB(E,$0(B,N),{pos:A.reduce((D,o)=>o.hasResult()?Math.min(D,o.from):D,1e8),create:rK(Bg,IL),above:Q.aboveCursor},C?C.timestamp:Date.now(),N,!1)}map(A){return new EB(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:A.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}}class eQ{constructor(A,g,B){this.active=A,this.id=g,this.open=B}static start(){return new eQ($K,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(A){let{state:g}=A,B=g.facet(fA),Q=(B.override||g.languageDataAt("autocomplete",LI(g)).map(JK)).map(N=>(this.active.find(o=>o.source==N)||new PA(N,this.active.some(o=>o.state!=0)?1:0)).update(A,B));Q.length==this.active.length&&Q.every((N,D)=>N==this.active[D])&&(Q=this.active);let E=this.open;E&&A.docChanged&&(E=E.map(A.changes)),A.selection||Q.some(N=>N.hasResult()&&A.changes.touchesRange(N.from,N.to))||!qK(Q,this.active)?E=EB.build(Q,g,this.id,E,B):E&&E.disabled&&!Q.some(N=>N.state==1)&&(E=null),!E&&Q.every(N=>N.state!=1)&&Q.some(N=>N.hasResult())&&(Q=Q.map(N=>N.hasResult()?new PA(N.source,0):N));for(let N of A.effects)N.is(gL)&&(E=E&&E.setSelected(N.value,this.id));return Q==this.active&&E==this.open?this:new eQ(Q,this.id,E)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:_K}}function qK(I,A){if(I==A)return!0;for(let g=0,B=0;;){for(;g<I.length&&!I[g].hasResult;)g++;for(;B<A.length&&!A[B].hasResult;)B++;let C=g==I.length,Q=B==A.length;if(C||Q)return C==Q;if(I[g++].result!=A[B++].result)return!1}}const _K={"aria-autocomplete":"list"};function $0(I,A){let g={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":I};return A>-1&&(g["aria-activedescendant"]=I+"-"+A),g}const $K=[];function cN(I){return I.isUserEvent("input.type")?"input":I.isUserEvent("delete.backward")?"delete":null}class PA{constructor(A,g,B=-1){this.source=A,this.state=g,this.explicitPos=B}hasResult(){return!1}update(A,g){let B=cN(A),C=this;B?C=C.handleUserEvent(A,B,g):A.docChanged?C=C.handleChange(A):A.selection&&C.state!=0&&(C=new PA(C.source,0));for(let Q of A.effects)if(Q.is(SN))C=new PA(C.source,1,Q.value?LI(A.state):-1);else if(Q.is(_B))C=new PA(C.source,0);else if(Q.is(AL))for(let E of Q.value)E.source==C.source&&(C=E);return C}handleUserEvent(A,g,B){return g=="delete"||!B.activateOnTyping?this.map(A.changes):new PA(this.source,1)}handleChange(A){return A.changes.touchesRange(LI(A.startState))?new PA(this.source,0):this.map(A.changes)}map(A){return A.empty||this.explicitPos<0?this:new PA(this.source,this.state,A.mapPos(this.explicitPos))}}class DB extends PA{constructor(A,g,B,C,Q){super(A,2,g),this.result=B,this.from=C,this.to=Q}hasResult(){return!0}handleUserEvent(A,g,B){var C;let Q=A.changes.mapPos(this.from),E=A.changes.mapPos(this.to,1),N=LI(A.state);if((this.explicitPos<0?N<=Q:N<this.from)||N>E||g=="delete"&&LI(A.startState)==this.from)return new PA(this.source,g=="input"&&B.activateOnTyping?1:0);let D=this.explicitPos<0?-1:A.changes.mapPos(this.explicitPos),o;return Al(this.result.validFor,A.state,Q,E)?new DB(this.source,D,this.result,Q,E):this.result.update&&(o=this.result.update(this.result,Q,E,new v0(A.state,N,D>=0)))?new DB(this.source,D,o,o.from,(C=o.to)!==null&&C!==void 0?C:LI(A.state)):new PA(this.source,1,D)}handleChange(A){return A.changes.touchesRange(this.from,this.to)?new PA(this.source,0):this.map(A.changes)}map(A){return A.empty?this:new DB(this.source,this.explicitPos<0?-1:A.mapPos(this.explicitPos),this.result,A.mapPos(this.from),A.mapPos(this.to,1))}}function Al(I,A,g,B){if(!I)return!1;let C=A.sliceDoc(g,B);return typeof I=="function"?I(C,g,B,A):r0(I,!0).test(C)}const AL=IA.define({map(I,A){return I.map(g=>g.map(A))}}),gL=IA.define(),Bg=nA.define({create(){return eQ.start()},update(I,A){return I.update(A)},provide:I=>[aD.from(I,A=>A.tooltip),_.contentAttributes.from(I,A=>A.attrs)]});function IL(I,A){const g=A.completion.apply||A.completion.label;let B=I.state.field(Bg).active.find(C=>C.source==A.source);return B instanceof DB?(typeof g=="string"?I.dispatch(Object.assign(Object.assign({},OK(I.state,g,B.from,B.to)),{annotations:WK.of(A.completion)})):g(I,A.completion,B.from,B.to),!0):!1}function zQ(I,A="option"){return g=>{let B=g.state.field(Bg,!1);if(!B||!B.open||B.open.disabled||Date.now()-B.open.timestamp<g.state.facet(fA).interactionDelay)return!1;let C=1,Q;A=="page"&&(Q=Gi(g,B.open.tooltip))&&(C=Math.max(2,Math.floor(Q.dom.offsetHeight/Q.dom.querySelector("li").offsetHeight)-1));let{length:E}=B.open.options,N=B.open.selected>-1?B.open.selected+C*(I?1:-1):I?0:E-1;return N<0?N=A=="page"?0:E-1:N>=E&&(N=A=="page"?E-1:0),g.dispatch({effects:gL.of(N)}),!0}}const gl=I=>{let A=I.state.field(Bg,!1);return I.state.readOnly||!A||!A.open||A.open.selected<0||A.open.disabled||Date.now()-A.open.timestamp<I.state.facet(fA).interactionDelay?!1:IL(I,A.open.options[A.open.selected])},Il=I=>I.state.field(Bg,!1)?(I.dispatch({effects:SN.of(!0)}),!0):!1,Bl=I=>{let A=I.state.field(Bg,!1);return!A||!A.active.some(g=>g.state!=0)?!1:(I.dispatch({effects:_B.of(null)}),!0)};class Cl{constructor(A,g){this.active=A,this.context=g,this.time=Date.now(),this.updates=[],this.done=void 0}}const BL=50,Ql=50,El=1e3,Dl=RA.fromClass(class{constructor(I){this.view=I,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.composing=0;for(let A of I.state.field(Bg).active)A.state==1&&this.startQuery(A)}update(I){let A=I.state.field(Bg);if(!I.selectionSet&&!I.docChanged&&I.startState.field(Bg)==A)return;let g=I.transactions.some(B=>(B.selection||B.docChanged)&&!cN(B));for(let B=0;B<this.running.length;B++){let C=this.running[B];if(g||C.updates.length+I.transactions.length>Ql&&Date.now()-C.time>El){for(let Q of C.context.abortListeners)try{Q()}catch(E){Ng(this.view.state,E)}C.context.abortListeners=null,this.running.splice(B--,1)}else C.updates.push(...I.transactions)}if(this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),this.debounceUpdate=A.active.some(B=>B.state==1&&!this.running.some(C=>C.active.source==B.source))?setTimeout(()=>this.startUpdate(),BL):-1,this.composing!=0)for(let B of I.transactions)cN(B)=="input"?this.composing=2:this.composing==2&&B.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1;let{state:I}=this.view,A=I.field(Bg);for(let g of A.active)g.state==1&&!this.running.some(B=>B.active.source==g.source)&&this.startQuery(g)}startQuery(I){let{state:A}=this.view,g=LI(A),B=new v0(A,g,I.explicitPos==g),C=new Cl(I,B);this.running.push(C),Promise.resolve(I.source(B)).then(Q=>{C.context.aborted||(C.done=Q||null,this.scheduleAccept())},Q=>{this.view.dispatch({effects:_B.of(null)}),Ng(this.view.state,Q)})}scheduleAccept(){this.running.every(I=>I.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),BL))}accept(){var I;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let A=[],g=this.view.state.facet(fA);for(let B=0;B<this.running.length;B++){let C=this.running[B];if(C.done===void 0)continue;if(this.running.splice(B--,1),C.done){let E=new DB(C.active.source,C.active.explicitPos,C.done,C.done.from,(I=C.done.to)!==null&&I!==void 0?I:LI(C.updates.length?C.updates[0].startState:this.view.state));for(let N of C.updates)E=E.update(N,g);if(E.hasResult()){A.push(E);continue}}let Q=this.view.state.field(Bg).active.find(E=>E.source==C.active.source);if(Q&&Q.state==1)if(C.done==null){let E=new PA(C.active.source,0);for(let N of C.updates)E=E.update(N,g);E.state!=1&&A.push(E)}else this.startQuery(Q)}A.length&&this.view.dispatch({effects:AL.of(A)})}},{eventHandlers:{blur(I){let A=this.view.state.field(Bg,!1);if(A&&A.tooltip&&this.view.state.facet(fA).closeOnBlur){let g=A.open&&Gi(this.view,A.open.tooltip);(!g||!g.dom.contains(I.relatedTarget))&&this.view.dispatch({effects:_B.of(null)})}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:SN.of(!1)}),20),this.composing=0}}}),Nl=_.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}}),$B={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},UI=IA.define({map(I,A){let g=A.mapPos(I,-1,uA.TrackAfter);return g??void 0}}),YN=new class extends kI{};YN.startSide=1,YN.endSide=-1;const CL=nA.define({create(){return NA.empty},update(I,A){if(A.selection){let g=A.state.doc.lineAt(A.selection.main.head).from,B=A.startState.doc.lineAt(A.startState.selection.main.head).from;g!=A.changes.mapPos(B,-1)&&(I=NA.empty)}I=I.map(A.changes);for(let g of A.effects)g.is(UI)&&(I=I.update({add:[YN.range(g.value,g.value+1)]}));return I}});function ol(){return[Gl,CL]}const yN="()[]{}<>";function QL(I){for(let A=0;A<yN.length;A+=2)if(yN.charCodeAt(A)==I)return yN.charAt(A+1);return aE(I<128?I:I+1)}function EL(I,A){return I.languageDataAt("closeBrackets",A)[0]||$B}const Ml=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),Gl=_.inputHandler.of((I,A,g,B)=>{if((Ml?I.composing:I.compositionStarted)||I.state.readOnly)return!1;let C=I.state.selection.main;if(B.length>2||B.length==2&&Dg(TA(B,0))==1||A!=C.from||g!=C.to)return!1;let Q=Ll(I.state,B);return Q?(I.dispatch(Q),!0):!1}),il=[{key:"Backspace",run:({state:I,dispatch:A})=>{if(I.readOnly)return!1;let B=EL(I,I.selection.main.head).brackets||$B.brackets,C=null,Q=I.changeByRange(E=>{if(E.empty){let N=Sl(I.doc,E.head);for(let D of B)if(D==N&&FQ(I.doc,E.head)==QL(TA(D,0)))return{changes:{from:E.head-D.length,to:E.head+D.length},range:j.cursor(E.head-D.length)}}return{range:C=E}});return C||A(I.update(Q,{scrollIntoView:!0,userEvent:"delete.backward"})),!C}}];function Ll(I,A){let g=EL(I,I.selection.main.head),B=g.brackets||$B.brackets;for(let C of B){let Q=QL(TA(C,0));if(A==C)return Q==C?yl(I,C,B.indexOf(C+C+C)>-1,g):cl(I,C,Q,g.before||$B.before);if(A==Q&&DL(I,I.selection.main.from))return Yl(I,C,Q)}return null}function DL(I,A){let g=!1;return I.field(CL).between(0,I.doc.length,B=>{B==A&&(g=!0)}),g}function FQ(I,A){let g=I.sliceString(A,A+2);return g.slice(0,Dg(TA(g,0)))}function Sl(I,A){let g=I.sliceString(A-2,A);return Dg(TA(g,0))==g.length?g:g.slice(1)}function cl(I,A,g,B){let C=null,Q=I.changeByRange(E=>{if(!E.empty)return{changes:[{insert:A,from:E.from},{insert:g,from:E.to}],effects:UI.of(E.to+A.length),range:j.range(E.anchor+A.length,E.head+A.length)};let N=FQ(I.doc,E.head);return!N||/\s/.test(N)||B.indexOf(N)>-1?{changes:{insert:A+g,from:E.head},effects:UI.of(E.head+A.length),range:j.cursor(E.head+A.length)}:{range:C=E}});return C?null:I.update(Q,{scrollIntoView:!0,userEvent:"input.type"})}function Yl(I,A,g){let B=null,C=I.changeByRange(Q=>Q.empty&&FQ(I.doc,Q.head)==g?{changes:{from:Q.head,to:Q.head+g.length,insert:g},range:j.cursor(Q.head+g.length)}:B={range:Q});return B?null:I.update(C,{scrollIntoView:!0,userEvent:"input.type"})}function yl(I,A,g,B){let C=B.stringPrefixes||$B.stringPrefixes,Q=null,E=I.changeByRange(N=>{if(!N.empty)return{changes:[{insert:A,from:N.from},{insert:A,from:N.to}],effects:UI.of(N.to+A.length),range:j.range(N.anchor+A.length,N.head+A.length)};let D=N.head,o=FQ(I.doc,D),M;if(o==A){if(NL(I,D))return{changes:{insert:A+A,from:D},effects:UI.of(D+A.length),range:j.cursor(D+A.length)};if(DL(I,D)){let i=g&&I.sliceDoc(D,D+A.length*3)==A+A+A?A+A+A:A;return{changes:{from:D,to:D+i.length,insert:i},range:j.cursor(D+i.length)}}}else{if(g&&I.sliceDoc(D-2*A.length,D)==A+A&&(M=oL(I,D-2*A.length,C))>-1&&NL(I,M))return{changes:{insert:A+A+A+A,from:D},effects:UI.of(D+A.length),range:j.cursor(D+A.length)};if(I.charCategorizer(D)(o)!=YA.Word&&oL(I,D,C)>-1&&!wl(I,D,A,C))return{changes:{insert:A+A,from:D},effects:UI.of(D+A.length),range:j.cursor(D+A.length)}}return{range:Q=N}});return Q?null:I.update(E,{scrollIntoView:!0,userEvent:"input.type"})}function NL(I,A){let g=XA(I).resolveInner(A+1);return g.parent&&g.from==A}function wl(I,A,g,B){let C=XA(I).resolveInner(A,-1),Q=B.reduce((E,N)=>Math.max(E,N.length),0);for(let E=0;E<5;E++){let N=I.sliceDoc(C.from,Math.min(C.to,C.from+g.length+Q)),D=N.indexOf(g);if(!D||D>-1&&B.indexOf(N.slice(0,D))>-1){let M=C.firstChild;for(;M&&M.from==C.from&&M.to-M.from>g.length+D;){if(I.sliceDoc(M.to-g.length,M.to)==g)return!1;M=M.firstChild}return!0}let o=C.to==A&&C.parent;if(!o)break;C=o}return!1}function oL(I,A,g){let B=I.charCategorizer(A);if(B(I.sliceDoc(A-1,A))!=YA.Word)return A;for(let C of g){let Q=A-C.length;if(I.sliceDoc(Q,A)==C&&B(I.sliceDoc(Q-1,Q))!=YA.Word)return Q}return-1}function tl(I={}){return[Bg,fA.of(I),Dl,sl,Nl]}const ML=[{key:"Ctrl-Space",run:Il},{key:"Escape",run:Bl},{key:"ArrowDown",run:zQ(!0)},{key:"ArrowUp",run:zQ(!1)},{key:"PageDown",run:zQ(!0,"page")},{key:"PageUp",run:zQ(!1,"page")},{key:"Enter",run:gl}],sl=WI.highest(KD.computeN([fA],I=>I.facet(fA).defaultKeymap?[ML]:[]));class Kl{constructor(A,g,B){this.from=A,this.to=g,this.diagnostic=B}}class TI{constructor(A,g,B){this.diagnostics=A,this.panel=g,this.selected=B}static init(A,g,B){let C=A,Q=B.facet(cL).markerFilter;Q&&(C=Q(C));let E=AA.set(C.map(N=>N.from==N.to||N.from==N.to-1&&B.doc.lineAt(N.from).to==N.from?AA.widget({widget:new bl(N),diagnostic:N}).range(N.from):AA.mark({attributes:{class:"cm-lintRange cm-lintRange-"+N.severity+(N.markClass?" "+N.markClass:"")},diagnostic:N}).range(N.from,N.to)),!0);return new TI(E,g,NB(E))}}function NB(I,A=null,g=0){let B=null;return I.between(g,1e9,(C,Q,{spec:E})=>{if(!(A&&E.diagnostic!=A))return B=new Kl(C,Q,E.diagnostic),!1}),B}function ll(I,A){let g=I.startState.doc.lineAt(A.pos);return!!(I.effects.some(B=>B.is(wN))||I.changes.touchesRange(g.from,g.to))}function GL(I,A){return I.field(Cg,!1)?A:A.concat(IA.appendConfig.of(Rl))}function iL(I,A){return{effects:GL(I,[wN.of(A)])}}const wN=IA.define(),tN=IA.define(),LL=IA.define(),Cg=nA.define({create(){return new TI(AA.none,null,null)},update(I,A){if(A.docChanged){let g=I.diagnostics.map(A.changes),B=null;if(I.selected){let C=A.changes.mapPos(I.selected.from,1);B=NB(g,I.selected.diagnostic,C)||NB(g,null,C)}I=new TI(g,I.panel,B)}for(let g of A.effects)g.is(wN)?I=TI.init(g.value,I.panel,A.state):g.is(tN)?I=new TI(I.diagnostics,g.value?jQ.open:null,I.selected):g.is(LL)&&(I=new TI(I.diagnostics,I.panel,g.value));return I},provide:I=>[uB.from(I,A=>A.panel),_.decorations.from(I,A=>A.diagnostics)]}),kl=AA.mark({class:"cm-lintRange cm-lintRange-active"});function Zl(I,A,g){let{diagnostics:B}=I.state.field(Cg),C=[],Q=2e8,E=0;B.between(A-(g<0?1:0),A+(g>0?1:0),(D,o,{spec:M})=>{A>=D&&A<=o&&(D==o||(A>D||g>0)&&(A<o||g<0))&&(C.push(M.diagnostic),Q=Math.min(D,Q),E=Math.max(o,E))});let N=I.state.facet(cL).tooltipFilter;return N&&(C=N(C)),C.length?{pos:Q,end:E,above:I.state.doc.lineAt(Q).to<E,create(){return{dom:hl(I,C)}}}:null}function hl(I,A){return GA("ul",{class:"cm-tooltip-lint"},A.map(g=>yL(I,g,!1)))}const SL=I=>{let A=I.state.field(Cg,!1);(!A||!A.panel)&&I.dispatch({effects:GL(I.state,[tN.of(!0)])});let g=JB(I,jQ.open);return g&&g.dom.querySelector(".cm-panel-lint ul").focus(),!0},sN=I=>{let A=I.state.field(Cg,!1);return!A||!A.panel?!1:(I.dispatch({effects:tN.of(!1)}),!0)},al=[{key:"Mod-Shift-m",run:SL,preventDefault:!0},{key:"F8",run:I=>{let A=I.state.field(Cg,!1);if(!A)return!1;let g=I.state.selection.main,B=A.diagnostics.iter(g.to+1);return!B.value&&(B=A.diagnostics.iter(0),!B.value||B.from==g.from&&B.to==g.to)?!1:(I.dispatch({selection:{anchor:B.from,head:B.to},scrollIntoView:!0}),!0)}}],cL=r.define({combine(I){return Object.assign({sources:I.map(A=>A.source)},Og(I.map(A=>A.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null},{needsRefresh:(A,g)=>A?g?B=>A(B)||g(B):A:g}))}});function YL(I){let A=[];if(I)A:for(let{name:g}of I){for(let B=0;B<g.length;B++){let C=g[B];if(/[a-zA-Z]/.test(C)&&!A.some(Q=>Q.toLowerCase()==C.toLowerCase())){A.push(C);continue A}}A.push("")}return A}function yL(I,A,g){var B;let C=g?YL(A.actions):[];return GA("li",{class:"cm-diagnostic cm-diagnostic-"+A.severity},GA("span",{class:"cm-diagnosticText"},A.renderMessage?A.renderMessage():A.message),(B=A.actions)===null||B===void 0?void 0:B.map((Q,E)=>{let N=!1,D=i=>{if(i.preventDefault(),N)return;N=!0;let L=NB(I.state.field(Cg).diagnostics,A);L&&Q.apply(I,L.from,L.to)},{name:o}=Q,M=C[E]?o.indexOf(C[E]):-1,G=M<0?o:[o.slice(0,M),GA("u",o.slice(M,M+1)),o.slice(M+1)];return GA("button",{type:"button",class:"cm-diagnosticAction",onclick:D,onmousedown:D,"aria-label":` Action: ${o}${M<0?"":` (access key "${C[E]})"`}.`},G)}),A.source&&GA("div",{class:"cm-diagnosticSource"},A.source))}class bl extends XI{constructor(A){super(),this.diagnostic=A}eq(A){return A.diagnostic==this.diagnostic}toDOM(){return GA("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class wL{constructor(A,g){this.diagnostic=g,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=yL(A,g,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class jQ{constructor(A){this.view=A,this.items=[];let g=C=>{if(C.keyCode==27)sN(this.view),this.view.focus();else if(C.keyCode==38||C.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(C.keyCode==40||C.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(C.keyCode==36)this.moveSelection(0);else if(C.keyCode==35)this.moveSelection(this.items.length-1);else if(C.keyCode==13)this.view.focus();else if(C.keyCode>=65&&C.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:Q}=this.items[this.selectedIndex],E=YL(Q.actions);for(let N=0;N<E.length;N++)if(E[N].toUpperCase().charCodeAt(0)==C.keyCode){let D=NB(this.view.state.field(Cg).diagnostics,Q);D&&Q.actions[N].apply(A,D.from,D.to)}}else return;C.preventDefault()},B=C=>{for(let Q=0;Q<this.items.length;Q++)this.items[Q].dom.contains(C.target)&&this.moveSelection(Q)};this.list=GA("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:g,onclick:B}),this.dom=GA("div",{class:"cm-panel-lint"},this.list,GA("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>sN(this.view)},"×")),this.update()}get selectedIndex(){let A=this.view.state.field(Cg).selected;if(!A)return-1;for(let g=0;g<this.items.length;g++)if(this.items[g].diagnostic==A.diagnostic)return g;return-1}update(){let{diagnostics:A,selected:g}=this.view.state.field(Cg),B=0,C=!1,Q=null;for(A.between(0,this.view.state.doc.length,(E,N,{spec:D})=>{let o=-1,M;for(let G=B;G<this.items.length;G++)if(this.items[G].diagnostic==D.diagnostic){o=G;break}o<0?(M=new wL(this.view,D.diagnostic),this.items.splice(B,0,M),C=!0):(M=this.items[o],o>B&&(this.items.splice(B,o-B),C=!0)),g&&M.diagnostic==g.diagnostic?M.dom.hasAttribute("aria-selected")||(M.dom.setAttribute("aria-selected","true"),Q=M):M.dom.hasAttribute("aria-selected")&&M.dom.removeAttribute("aria-selected"),B++});B<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)C=!0,this.items.pop();this.items.length==0&&(this.items.push(new wL(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),C=!0),Q?(this.list.setAttribute("aria-activedescendant",Q.id),this.view.requestMeasure({key:this,read:()=>({sel:Q.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:E,panel:N})=>{E.top<N.top?this.list.scrollTop-=N.top-E.top:E.bottom>N.bottom&&(this.list.scrollTop+=E.bottom-N.bottom)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),C&&this.sync()}sync(){let A=this.list.firstChild;function g(){let B=A;A=B.nextSibling,B.remove()}for(let B of this.items)if(B.dom.parentNode==this.list){for(;A!=B.dom;)g();A=B.dom.nextSibling}else this.list.insertBefore(B.dom,A);for(;A;)g()}moveSelection(A){if(this.selectedIndex<0)return;let g=this.view.state.field(Cg),B=NB(g.diagnostics,this.items[A].diagnostic);B&&this.view.dispatch({selection:{anchor:B.from,head:B.to},scrollIntoView:!0,effects:LL.of(B)})}static open(A){return new jQ(A)}}function dl(I,A='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${A}>${encodeURIComponent(I)}</svg>')`}function mQ(I){return dl(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${I}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}const Hl=_.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-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:mQ("#d11")},".cm-lintRange-warning":{backgroundImage:mQ("orange")},".cm-lintRange-info":{backgroundImage:mQ("#999")},".cm-lintRange-hint":{backgroundImage:mQ("#66d")},".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-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".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}}}),Rl=[Cg,_.decorations.compute([Cg],I=>{let{selected:A,panel:g}=I.field(Cg);return!A||!g||A.from==A.to?AA.none:AA.set([kl.range(A.from,A.to)])}),rw(Zl,{hideOn:ll}),Hl];function KN(I,A,g,B,C,Q){this.indented=I,this.column=A,this.type=g,this.info=B,this.align=C,this.prev=Q}function pQ(I,A,g,B){var C=I.indented;return I.context&&I.context.type=="statement"&&g!="statement"&&(C=I.context.indented),I.context=new KN(C,A,g,B,null,I.context)}function AC(I){var A=I.context.type;return(A==")"||A=="]"||A=="}")&&(I.indented=I.context.indented),I.context=I.context.prev}function tL(I,A,g){if(A.prevToken=="variable"||A.prevToken=="type"||/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(I.string.slice(0,g))||A.typeAtEndOfLine&&I.column()==I.indentation())return!0}function lN(I){for(;;){if(!I||I.type=="top")return!0;if(I.type=="}"&&I.prev.info!="namespace")return!1;I=I.prev}}function qA(I){var A=I.statementIndentUnit,g=I.dontAlignCalls,B=I.keywords||{},C=I.types||{},Q=I.builtin||{},E=I.blockKeywords||{},N=I.defKeywords||{},D=I.atoms||{},o=I.hooks||{},M=I.multiLineStrings,G=I.indentStatements!==!1,i=I.indentSwitch!==!1,L=I.namespaceSeparator,Y=I.isPunctuationChar||/[\[\]{}\(\),;\:\.]/,w=I.numberStart||/[\d\.]/,t=I.number||/^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,Z=I.isOperatorChar||/[+\-*&%=<>!?|\/]/,h=I.isIdentifierChar||/[\w\$_\xa1-\uffff]/,K=I.isReservedIdentifier||!1,y,S;function c(b,s){var k=b.next();if(o[k]){var a=o[k](b,s);if(a!==!1)return a}if(k=='"'||k=="'")return s.tokenize=l(k),s.tokenize(b,s);if(w.test(k)){if(b.backUp(1),b.match(t))return"number";b.next()}if(Y.test(k))return y=k,null;if(k=="/"){if(b.eat("*"))return s.tokenize=U,U(b,s);if(b.eat("/"))return b.skipToEnd(),"comment"}if(Z.test(k)){for(;!b.match(/^\/[\/*]/,!1)&&b.eat(Z););return"operator"}if(b.eatWhile(h),L)for(;b.match(L);)b.eatWhile(h);var d=b.current();return Vg(B,d)?(Vg(E,d)&&(y="newstatement"),Vg(N,d)&&(S=!0),"keyword"):Vg(C,d)?"type":Vg(Q,d)||K&&K(d)?(Vg(E,d)&&(y="newstatement"),"builtin"):Vg(D,d)?"atom":"variable"}function l(b){return function(s,k){for(var a=!1,d,R=!1;(d=s.next())!=null;){if(d==b&&!a){R=!0;break}a=!a&&d=="\\"}return(R||!(a||M))&&(k.tokenize=null),"string"}}function U(b,s){for(var k=!1,a;a=b.next();){if(a=="/"&&k){s.tokenize=null;break}k=a=="*"}return"comment"}function H(b,s){I.typeFirstDefinitions&&b.eol()&&lN(s.context)&&(s.typeAtEndOfLine=tL(b,s,b.pos))}return{name:I.name,startState:function(b){return{tokenize:null,context:new KN(-b,0,"top",null,!1),indented:0,startOfLine:!0,prevToken:null}},token:function(b,s){var k=s.context;if(b.sol()&&(k.align==null&&(k.align=!1),s.indented=b.indentation(),s.startOfLine=!0),b.eatSpace())return H(b,s),null;y=S=null;var a=(s.tokenize||c)(b,s);if(a=="comment"||a=="meta")return a;if(k.align==null&&(k.align=!0),y==";"||y==":"||y==","&&b.match(/^\s*(?:\/\/.*)?$/,!1))for(;s.context.type=="statement";)AC(s);else if(y=="{")pQ(s,b.column(),"}");else if(y=="[")pQ(s,b.column(),"]");else if(y=="(")pQ(s,b.column(),")");else if(y=="}"){for(;k.type=="statement";)k=AC(s);for(k.type=="}"&&(k=AC(s));k.type=="statement";)k=AC(s)}else y==k.type?AC(s):G&&((k.type=="}"||k.type=="top")&&y!=";"||k.type=="statement"&&y=="newstatement")&&pQ(s,b.column(),"statement",b.current());if(a=="variable"&&(s.prevToken=="def"||I.typeFirstDefinitions&&tL(b,s,b.start)&&lN(s.context)&&b.match(/^\s*\(/,!1))&&(a="def"),o.token){var d=o.token(b,s,a);d!==void 0&&(a=d)}return a=="def"&&I.styleDefs===!1&&(a="variable"),s.startOfLine=!1,s.prevToken=S?"def":a||y,H(b,s),a},indent:function(b,s,k){if(b.tokenize!=c&&b.tokenize!=null||b.typeAtEndOfLine&&lN(b.context))return null;var a=b.context,d=s&&s.charAt(0),R=d==a.type;if(a.type=="statement"&&d=="}"&&(a=a.prev),I.dontIndentStatements)for(;a.type=="statement"&&I.dontIndentStatements.test(a.info);)a=a.prev;if(o.indent){var T=o.indent(b,a,s,k.unit);if(typeof T=="number")return T}var e=a.prev&&a.prev.info=="switch";if(I.allmanIndentation&&/[{(]/.test(d)){for(;a.type!="top"&&a.type!="}";)a=a.prev;return a.indented}return a.type=="statement"?a.indented+(d=="{"?0:A||k.unit):a.align&&(!g||a.type!=")")?a.column+(R?0:1):a.type==")"&&!R?a.indented+(A||k.unit):a.indented+(R?0:k.unit)+(!R&&e&&!/^(?:case|default)\b/.test(s)?k.unit:0)},languageData:{indentOnInput:i?/^\s*(?:case .*?:|default:|\{\}?|\})$/:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:Object.keys(B).concat(Object.keys(C)).concat(Object.keys(Q)).concat(Object.keys(D)),...I.languageData}}}function f(I){for(var A={},g=I.split(" "),B=0;B<g.length;++B)A[g[B]]=!0;return A}function Vg(I,A){return typeof I=="function"?I(A):I.propertyIsEnumerable(A)}var gC="auto if break case register continue return default do sizeof static else struct switch extern typedef union for goto while enum const volatile inline restrict asm fortran",sL="alignas alignof and and_eq audit axiom bitand bitor catch class compl concept constexpr const_cast decltype delete dynamic_cast explicit export final friend import module mutable namespace new noexcept not not_eq operator or or_eq override private protected public reinterpret_cast requires static_assert static_cast template this thread_local throw try typeid typename using virtual xor xor_eq",KL="bycopy byref in inout oneway out self super atomic nonatomic retain copy readwrite readonly strong weak assign typeof nullable nonnull null_resettable _cmd @interface @implementation @end @protocol @encode @property @synthesize @dynamic @class @public @package @private @protected @required @optional @try @catch @finally @import @selector @encode @defs @synchronized @autoreleasepool @compatibility_alias @available",lL="FOUNDATION_EXPORT FOUNDATION_EXTERN NS_INLINE NS_FORMAT_FUNCTION NS_RETURNS_RETAINEDNS_ERROR_ENUM NS_RETURNS_NOT_RETAINED NS_RETURNS_INNER_POINTER NS_DESIGNATED_INITIALIZER NS_ENUM NS_OPTIONS NS_REQUIRES_NIL_TERMINATION NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_SWIFT_NAME NS_REFINED_FOR_SWIFT",Ul=f("int long char short double float unsigned signed void bool"),Tl=f("SEL instancetype id Class Protocol BOOL");function IC(I){return Vg(Ul,I)||/.+_t$/.test(I)}function kL(I){return IC(I)||Vg(Tl,I)}var BC="case do else for if switch while struct enum union",xQ="struct enum union";function SI(I,A){if(!A.startOfLine)return!1;for(var g,B=null;g=I.peek();){if(g=="\\"&&I.match(/^.$/)){B=SI;break}else if(g=="/"&&I.match(/^\/[\/\*]/,!1))break;I.next()}return A.tokenize=B,"meta"}function nQ(I,A){return A.prevToken=="type"?"type":!1}function WQ(I){return!I||I.length<2||I[0]!="_"?!1:I[1]=="_"||I[1]!==I[1].toLowerCase()}function ZA(I){return I.eatWhile(/[\w\.']/),"number"}function cI(I,A){if(I.backUp(1),I.match(/^(?:R|u8R|uR|UR|LR)/)){var g=I.match(/^"([^\s\\()]{0,16})\(/);return g?(A.cpp11RawStringDelim=g[1],A.tokenize=aL,aL(I,A)):!1}return I.match(/^(?:u8|u|U|L)/)?I.match(/^["']/,!1)?"string":!1:(I.next(),!1)}function ZL(I){var A=/(\w+)::~?(\w+)$/.exec(I);return A&&A[1]==A[2]}function hL(I,A){for(var g;(g=I.next())!=null;)if(g=='"'&&!I.eat('"')){A.tokenize=null;break}return"string"}function aL(I,A){var g=A.cpp11RawStringDelim.replace(/[^\w\s]/g,"\\$&"),B=I.match(new RegExp(".*?\\)"+g+'"'));return B?A.tokenize=null:I.skipToEnd(),"string"}qA({name:"c",keywords:f(gC),types:IC,blockKeywords:f(BC),defKeywords:f(xQ),typeFirstDefinitions:!0,atoms:f("NULL true false"),isReservedIdentifier:WQ,hooks:{"#":SI,"*":nQ}}),qA({name:"cpp",keywords:f(gC+" "+sL),types:IC,blockKeywords:f(BC+" class try catch"),defKeywords:f(xQ+" class namespace"),typeFirstDefinitions:!0,atoms:f("true false NULL nullptr"),dontIndentStatements:/^template$/,isIdentifierChar:/[\w\$_~\xa1-\uffff]/,isReservedIdentifier:WQ,hooks:{"#":SI,"*":nQ,u:cI,U:cI,L:cI,R:cI,0:ZA,1:ZA,2:ZA,3:ZA,4:ZA,5:ZA,6:ZA,7:ZA,8:ZA,9:ZA,token:function(I,A,g){if(g=="variable"&&I.peek()=="("&&(A.prevToken==";"||A.prevToken==null||A.prevToken=="}")&&ZL(I.current()))return"def"}},namespaceSeparator:"::"}),qA({name:"java",keywords:f("abstract assert break case catch class const continue default do else enum extends final finally for goto if implements import instanceof interface native new package private protected public return static strictfp super switch synchronized this throw throws transient try volatile while @interface"),types:f("var byte short int long float double boolean char void Boolean Byte Character Double Float Integer Long Number Object Short String StringBuffer StringBuilder Void"),blockKeywords:f("catch class do else finally for if switch try while"),defKeywords:f("class interface enum @interface"),typeFirstDefinitions:!0,atoms:f("true false null"),number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+\.?\d*|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,hooks:{"@":function(I){return I.match("interface",!1)?!1:(I.eatWhile(/[\w\$_]/),"meta")},'"':function(I,A){return I.match(/""$/)?(A.tokenize=bL,A.tokenize(I,A)):!1}}}),qA({name:"csharp",keywords:f("abstract as async await base break case catch checked class const continue default delegate do else enum event explicit extern finally fixed for foreach goto if implicit in init interface internal is lock namespace new operator out override params private protected public readonly record ref required return sealed sizeof stackalloc static struct switch this throw try typeof unchecked unsafe using virtual void volatile while add alias ascending descending dynamic from get global group into join let orderby partial remove select set value var yield"),types:f("Action Boolean Byte Char DateTime DateTimeOffset Decimal Double Func Guid Int16 Int32 Int64 Object SByte Single String Task TimeSpan UInt16 UInt32 UInt64 bool byte char decimal double short int long object sbyte float string ushort uint ulong"),blockKeywords:f("catch class do else finally for foreach if struct switch try while"),defKeywords:f("class interface namespace record struct var"),typeFirstDefinitions:!0,atoms:f("true false null"),hooks:{"@":function(I,A){return I.eat('"')?(A.tokenize=hL,hL(I,A)):(I.eatWhile(/[\w\$_]/),"meta")}}});function bL(I,A){for(var g=!1;!I.eol();){if(!g&&I.match('"""')){A.tokenize=null;break}g=I.next()=="\\"&&!g}return"string"}function CC(I){return function(A,g){for(var B;B=A.next();)if(B=="*"&&A.eat("/"))if(I==1){g.tokenize=null;break}else return g.tokenize=CC(I-1),g.tokenize(A,g);else if(B=="/"&&A.eat("*"))return g.tokenize=CC(I+1),g.tokenize(A,g);return"comment"}}qA({name:"scala",keywords:f("abstract case catch class def do else extends final finally for forSome if implicit import lazy match new null object override package private protected return sealed super this throw trait try type val var while with yield _ assert assume require print println printf readLine readBoolean readByte readShort readChar readInt readLong readFloat readDouble"),types:f("AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either Enumeration Equiv Error Exception Fractional Function IndexedSeq Int Integral Iterable Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"),multiLineStrings:!0,blockKeywords:f("catch class enum do else finally for forSome if match switch try while"),defKeywords:f("class enum def object package trait type val var"),atoms:f("true false null"),indentStatements:!1,indentSwitch:!1,isOperatorChar:/[+\-*&%=<>!?|\/#:@]/,hooks:{"@":function(I){return I.eatWhile(/[\w\$_]/),"meta"},'"':function(I,A){return I.match('""')?(A.tokenize=bL,A.tokenize(I,A)):!1},"'":function(I){return I.match(/^(\\[^'\s]+|[^\\'])'/)?"character":(I.eatWhile(/[\w\$_\xa1-\uffff]/),"atom")},"=":function(I,A){var g=A.context;return g.type=="}"&&g.align&&I.eat(">")?(A.context=new KN(g.indented,g.column,g.type,g.info,null,g.prev),"operator"):!1},"/":function(I,A){return I.eat("*")?(A.tokenize=CC(1),A.tokenize(I,A)):!1}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}});function el(I){return function(A,g){for(var B=!1,C,Q=!1;!A.eol();){if(!I&&!B&&A.match('"')){Q=!0;break}if(I&&A.match('"""')){Q=!0;break}C=A.next(),!B&&C=="$"&&A.match("{")&&A.skipTo("}"),B=!B&&C=="\\"&&!I}return(Q||!I)&&(g.tokenize=null),"string"}}qA({name:"kotlin",keywords:f("package as typealias class interface this super val operator var fun for is in This throw return annotation break continue object if else while do try when !in !is as? file import where by get set abstract enum open inner override private public internal protected catch finally out final vararg reified dynamic companion constructor init sealed field property receiver param sparam lateinit data inline noinline tailrec external annotation crossinline const operator infix suspend actual expect setparam"),types:f("Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy LazyThreadSafetyMode LongArray Nothing ShortArray Unit"),intendSwitch:!1,indentStatements:!1,multiLineStrings:!0,number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+(\.\d+)?|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,blockKeywords:f("catch class do else finally for if where try while enum"),defKeywords:f("class val var object interface fun"),atoms:f("true false null this"),hooks:{"@":function(I){return I.eatWhile(/[\w\$_]/),"meta"},"*":function(I,A){return A.prevToken=="."?"variable":"operator"},'"':function(I,A){return A.tokenize=el(I.match('""')),A.tokenize(I,A)},"/":function(I,A){return I.eat("*")?(A.tokenize=CC(1),A.tokenize(I,A)):!1},indent:function(I,A,g,B){var C=g&&g.charAt(0);if((I.prevToken=="}"||I.prevToken==")")&&g=="")return I.indented;if(I.prevToken=="operator"&&g!="}"&&I.context.type!="}"||I.prevToken=="variable"&&C=="."||(I.prevToken=="}"||I.prevToken==")")&&C==".")return B*2+A.indented;if(A.align&&A.type=="}")return A.indented+(I.context.type==(g||"").charAt(0)?0:B)}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}}),qA({name:"shader",keywords:f("sampler1D sampler2D sampler3D samplerCube sampler1DShadow sampler2DShadow const attribute uniform varying break continue discard return for while do if else struct in out inout"),types:f("float int bool void vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 mat2 mat3 mat4"),blockKeywords:f("for while do if else struct"),builtin:f("radians degrees sin cos tan asin acos atan pow exp log exp2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize ftransform faceforward reflect refract matrixCompMult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not texture1D texture1DProj texture1DLod texture1DProjLod texture2D texture2DProj texture2DLod texture2DProjLod texture3D texture3DProj texture3DLod texture3DProjLod textureCube textureCubeLod shadow1D shadow2D shadow1DProj shadow2DProj shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod dFdx dFdy fwidth noise1 noise2 noise3 noise4"),atoms:f("true false gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_FogCoord gl_PointCoord gl_Position gl_PointSize gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_TexCoord gl_FogFragCoord gl_FragCoord gl_FrontFacing gl_FragData gl_FragDepth gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse gl_TextureMatrixTranspose gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose gl_TextureMatrixInverseTranspose gl_NormalScale gl_DepthRange gl_ClipPlane gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ gl_FogParameters gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits gl_MaxDrawBuffers"),indentSwitch:!1,hooks:{"#":SI}}),qA({name:"nesc",keywords:f(gC+" as atomic async call command component components configuration event generic implementation includes interface module new norace nx_struct nx_union post provides signal task uses abstract extends"),types:IC,blockKeywords:f(BC),atoms:f("null true false"),hooks:{"#":SI}}),qA({name:"objectivec",keywords:f(gC+" "+KL),types:kL,builtin:f(lL),blockKeywords:f(BC+" @synthesize @try @catch @finally @autoreleasepool @synchronized"),defKeywords:f(xQ+" @interface @implementation @protocol @class"),dontIndentStatements:/^@.*$/,typeFirstDefinitions:!0,atoms:f("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:WQ,hooks:{"#":SI,"*":nQ}}),qA({name:"objectivecpp",keywords:f(gC+" "+KL+" "+sL),types:kL,builtin:f(lL),blockKeywords:f(BC+" @synthesize @try @catch @finally @autoreleasepool @synchronized class try catch"),defKeywords:f(xQ+" @interface @implementation @protocol @class class namespace"),dontIndentStatements:/^@.*$|^template$/,typeFirstDefinitions:!0,atoms:f("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:WQ,hooks:{"#":SI,"*":nQ,u:cI,U:cI,L:cI,R:cI,0:ZA,1:ZA,2:ZA,3:ZA,4:ZA,5:ZA,6:ZA,7:ZA,8:ZA,9:ZA,token:function(I,A,g){if(g=="variable"&&I.peek()=="("&&(A.prevToken==";"||A.prevToken==null||A.prevToken=="}")&&ZL(I.current()))return"def"}},namespaceSeparator:"::"}),qA({name:"squirrel",keywords:f("base break clone continue const default delete enum extends function in class foreach local resume return this throw typeof yield constructor instanceof static"),types:IC,blockKeywords:f("case catch class else for foreach if switch try while"),defKeywords:f("function local class"),typeFirstDefinitions:!0,atoms:f("true false null"),hooks:{"#":SI}});var OQ=null;function dL(I){return function(A,g){for(var B=!1,C,Q=!1;!A.eol();){if(!B&&A.match('"')&&(I=="single"||A.match('""'))){Q=!0;break}if(!B&&A.match("``")){OQ=dL(I),Q=!0;break}C=A.next(),B=I=="single"&&!B&&C=="\\"}return Q&&(g.tokenize=null),"string"}}qA({name:"ceylon",keywords:f("abstracts alias assembly assert assign break case catch class continue dynamic else exists extends finally for function given if import in interface is let module new nonempty object of out outer package return satisfies super switch then this throw try value void while"),types:function(I){var A=I.charAt(0);return A===A.toUpperCase()&&A!==A.toLowerCase()},blockKeywords:f("case catch class dynamic else finally for function if interface module new object switch try while"),defKeywords:f("class dynamic function interface module object package value"),builtin:f("abstract actual aliased annotation by default deprecated doc final formal late license native optional sealed see serializable shared suppressWarnings tagged throws variable"),isPunctuationChar:/[\[\]{}\(\),;\:\.`]/,isOperatorChar:/[+\-*&%=<>!?|^~:\/]/,numberStart:/[\d#$]/,number:/^(?:#[\da-fA-F_]+|\$[01_]+|[\d_]+[kMGTPmunpf]?|[\d_]+\.[\d_]+(?:[eE][-+]?\d+|[kMGTPmunpf]|)|)/i,multiLineStrings:!0,typeFirstDefinitions:!0,atoms:f("true false null larger smaller equal empty finished"),indentSwitch:!1,styleDefs:!1,hooks:{"@":function(I){return I.eatWhile(/[\w\$_]/),"meta"},'"':function(I,A){return A.tokenize=dL(I.match('""')?"triple":"single"),A.tokenize(I,A)},"`":function(I,A){return!OQ||!I.match("`")?!1:(A.tokenize=OQ,OQ=null,A.tokenize(I,A))},"'":function(I){return I.match(/^(\\[^'\s]+|[^\\'])'/)?"string.special":(I.eatWhile(/[\w\$_\xa1-\uffff]/),"atom")},token:function(I,A,g){if((g=="variable"||g=="type")&&A.prevToken==".")return"variableName.special"}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}});function zl(I){(I.interpolationStack||(I.interpolationStack=[])).push(I.tokenize)}function HL(I){return(I.interpolationStack||(I.interpolationStack=[])).pop()}function Fl(I){return I.interpolationStack?I.interpolationStack.length:0}function kN(I,A,g,B){var C=!1;if(A.eat(I))if(A.eat(I))C=!0;else return"string";function Q(E,N){for(var D=!1;!E.eol();){if(!B&&!D&&E.peek()=="$")return zl(N),N.tokenize=jl,"string";var o=E.next();if(o==I&&!D&&(!C||E.match(I+I))){N.tokenize=null;break}D=!B&&!D&&o=="\\"}return"string"}return g.tokenize=Q,Q(A,g)}function jl(I,A){return I.eat("$"),I.eat("{")?A.tokenize=null:A.tokenize=ml,null}function ml(I,A){return I.eatWhile(/[\w_]/),A.tokenize=HL(A),"variable"}qA({name:"dart",keywords:f("this super static final const abstract class extends external factory implements mixin get native set typedef with enum throw rethrow assert break case continue default in return new deferred async await covariant try catch finally do else for if switch while import library export part of show hide is as extension on yield late required sealed base interface when inline"),blockKeywords:f("try catch finally do else for if switch while"),builtin:f("void bool num int double dynamic var String Null Never"),atoms:f("true false null"),hooks:{"@":function(I){return I.eatWhile(/[\w\$_\.]/),"meta"},"'":function(I,A){return kN("'",I,A,!1)},'"':function(I,A){return kN('"',I,A,!1)},r:function(I,A){var g=I.peek();return g=="'"||g=='"'?kN(I.next(),I,A,!0):!1},"}":function(I,A){return Fl(A)>0?(A.tokenize=HL(A),null):!1},"/":function(I,A){return I.eat("*")?(A.tokenize=CC(1),A.tokenize(I,A)):!1},token:function(I,A,g){if(g=="variable"){var B=RegExp("^[_$]*[A-Z][a-zA-Z0-9_$]*$","g");if(B.test(I.current()))return"type"}}}});const pl="process component import library declare with environment route waveform soundfile",xl="mem prefix int float rdtable rwtable select2 select3 ffunction fconstant fvariable button checkbox vslider hslider nentry vgroup hgroup tgroup vbargraph hbargraph attach acos asin atan atan2 cos sin tan exp log log10 pow sqrt abs min max fmod remainder floor ceil rint";function RL(I){const A={},g=I.split(" ");for(let B=0;B<g.length;B++)A[g[B]]=!0;return A}const nl=rD.define(qA({name:"clike",multiLineStrings:!0,keywords:RL(pl),atoms:RL(xl),hooks:{"@":()=>"meta","'":()=>"meta"}}));function Wl(I,A){return new _({parent:I,doc:A,extensions:[It(),Qt(),aw(),Gs(),cw(),sw(),CA.allowMultipleSelections.of(!0),zt(),Ft(pt,{fallback:!0}),ut(),ol(),tl(),pw(),Ww(),Tw(),YK(),KD.of([...il,...GK,...FK,...ss,...ML,...al]),nl]})}function Ol(I,A){const g=A.message.trim(),B=g.match(/^main : (\d+) : (.*)$/),C=B?B[2]:g,{from:Q,to:E}=B?I.state.doc.line(+B[1]):{from:0,to:0};I.dispatch(iL(I.state,[{from:Q,to:E,severity:"error",message:C}])),SL(I)}function Jl(I){I.dispatch(iL(I.state,[])),sN(I)}class UL{constructor(A){vQ(this,"container");vQ(this,"canvas");vQ(this,"ctx");this.container=A,this.container.classList.add("scope"),this.canvas=document.createElement("canvas"),this.canvas.style.transformOrigin="top left",this.ctx=this.canvas.getContext("2d"),this.onResize=this.onResize.bind(this),this.container.appendChild(this.canvas),this.onResize(),window.addEventListener("resize",this.onResize)}get canvasWidth(){return this.canvas.width/devicePixelRatio}set canvasWidth(A){this.canvas.width=Math.floor(A*devicePixelRatio),this.canvas.style.width=`${A}px`}get canvasHeight(){return this.canvas.height/devicePixelRatio}set canvasHeight(A){this.canvas.height=Math.floor(A*devicePixelRatio),this.canvas.style.height=`${A}px`}renderScope(A=[]){this.ctx.fillStyle="white",this.ctx.fillRect(0,0,this.canvasWidth,this.canvasHeight),this.ctx.lineWidth=1,this.ctx.strokeStyle="rgba(200, 200, 200, 0.5)",this.ctx.fillStyle="rgba(200, 200, 200, 0.5)",this.ctx.beginPath();const g=8,B=this.canvasWidth/g;for(let D=B;D<this.canvasWidth;D+=B)this.ctx.moveTo(D,0),this.ctx.lineTo(D,this.canvasHeight);const C=4,Q=this.canvasHeight/C;for(let D=0;D<this.canvasHeight;D+=Q)this.ctx.moveTo(0,D),this.ctx.lineTo(this.canvasWidth,D);this.ctx.stroke(),this.ctx.strokeStyle="rgba(100, 100, 100, 0.5)",this.ctx.beginPath(),this.ctx.lineWidth=2,this.ctx.moveTo(0,this.canvasHeight/2),this.ctx.lineTo(this.canvasWidth,this.canvasHeight/2),this.ctx.stroke(),A.forEach(({analyser:D,style:o="rgb(43, 156, 212)",edgeThreshold:M=0})=>{if(D===void 0)return;const G=new Float32Array(D.frequencyBinCount);let i=0;for(D.getFloatTimeDomainData(G),this.ctx.lineWidth=2,this.ctx.strokeStyle=o,this.ctx.beginPath();G[i]>0&&i<=this.canvasWidth&&i<G.length;)i++;for(i>=this.canvasWidth&&(i=0);G[i]<M&&i<=this.canvasWidth&&i<G.length;)i++;i>=this.canvasWidth&&(i=0);for(let L=i;L<G.length&&L-i<this.canvasWidth;L++){const Y=this.canvasHeight-(G[L]+1)/2*this.canvasHeight;this.ctx.lineTo(L-i,Y)}this.ctx.stroke()}),this.ctx.fillStyle="black",this.ctx.font="11px Courier",this.ctx.textAlign="left";const E=4,N=this.canvasHeight/E;for(let D=0;D<=E;D++){this.ctx.textBaseline=D===0?"top":D===E?"bottom":"middle";const o=(E-D-E/2)/E*2;this.ctx.textAlign="left",this.ctx.fillText(o+"",5,D*N),this.ctx.textAlign="right",this.ctx.fillText(o+"",this.canvasWidth-5,D*N)}}renderSpectrum(A){const g=new Uint8Array(A.frequencyBinCount);A.getByteFrequencyData(g),this.ctx.fillStyle="white",this.ctx.fillRect(0,0,this.canvasWidth,this.canvasHeight),this.ctx.lineWidth=2,this.ctx.strokeStyle="rgb(43, 156, 212)",this.ctx.beginPath();for(let E=0;E<g.length;E++){const N=Math.log(E/1)/Math.log(g.length/1)*this.canvasWidth,D=g[E]*this.canvasHeight/256;this.ctx.lineTo(N,this.canvasHeight-D)}this.ctx.stroke();const B=12;function C(E,N,D,o,M){return N=Math.max(N,1),o=Math.max(o,1),Math.log10(E/N)/Math.log10(D/N)*(M-o)+o}const Q=A.context.sampleRate/2;[0,100,300,1e3,3e3,1e4,2e4].forEach(E=>{const D=E<=0?B-5:C(E,20,Q,0,this.canvasWidth);this.ctx.fillStyle="black",this.ctx.textBaseline="middle",this.ctx.textAlign="right",this.ctx.font=`${B}px Courier`,this.ctx.save(),this.ctx.translate(D,this.canvasHeight-5),this.ctx.rotate(Math.PI*.5),this.ctx.fillText(`${E.toFixed(0)}hz`,0,0),this.ctx.restore()}),[0,-3,-6,-12].forEach(E=>{const o=(1-Math.pow(10,E*.05))*this.canvasHeight;this.ctx.fillStyle="black",this.ctx.textBaseline="top",this.ctx.textAlign="left",this.ctx.font=`${B}px Courier`,this.ctx.fillText(`${E.toFixed(0)}db`,5,o)})}onResize(){this.canvasWidth=0,this.canvasHeight=0;const A=this.container.getBoundingClientRect(),g=getComputedStyle(this.container);let B=g.getPropertyValue("border-left-width"),C=B===""?0:parseFloat(B),Q=g.getPropertyValue("border-right-width"),E=Q===""?0:parseFloat(Q);this.canvasWidth=A.width-C-E;let N=g.getPropertyValue("border-top-width"),D=N===""?0:parseFloat(N),o=g.getPropertyValue("border-bottom-width"),M=o===""?0:parseFloat(o);this.canvasHeight=A.height-D-M,this.ctx.scale(devicePixelRatio,devicePixelRatio)}}const TL="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiBpZD0ic3ZnMiIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjY0LjMzMzMyOCIgaGVpZ2h0PSIxMi40MTQ2NjYiIHZpZXdCb3g9IjAgMCA2NC4zMzMzMjcgMTIuNDE0NjY2Ij48bWV0YWRhdGEgaWQ9Im1ldGFkYXRhOCI+PHJkZjpSREY+PGNjOldvcmsgcmRmOmFib3V0PSIiPjxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PjxkYzp0eXBlIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiLz48ZGM6dGl0bGUvPjwvY2M6V29yaz48L3JkZjpSREY+PC9tZXRhZGF0YT48ZGVmcyBpZD0iZGVmczYiPjxjbGlwUGF0aCBjbGlwUGF0aFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgaWQ9ImNsaXBQYXRoMTgiPjxwYXRoIGQ9Ik0gMCw5My41MDcgSCA5My41MDcgViAwIEggMCBaIiBpZD0icGF0aDE2Ii8+PC9jbGlwUGF0aD48L2RlZnM+PGcgc3R5bGU9ImZpbGw6I2ZmZmZmZiIgaWQ9ImcxMCIgdHJhbnNmb3JtPSJtYXRyaXgoMS4zMzMzMzMzLDAsMCwtMS4zMzMzMzMzLC0zMS40NDAyNjYsNjguNDk1NzMyKSI+PGcgaWQ9ImcxMiIgc3R5bGU9ImZpbGw6I2ZmZmZmZiI+PGcgaWQ9ImcxNCIgY2xpcC1wYXRoPSJ1cmwoI2NsaXBQYXRoMTgpIiBzdHlsZT0iZmlsbDojZmZmZmZmIj48ZyBpZD0iZzIwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2OS4wMTcyLDQ5LjM4NjgpIiBzdHlsZT0iZmlsbDojZmZmZmZmIj48cGF0aCBkPSJNIDAsMCBWIC03LjAyNiBIIC0yLjAxNyBWIDAgSCAtNC44NDMgViAxLjc0NyBIIDIuODEzIFYgMCBaIG0gLTguMjc2LC01LjYxNSBjIC0wLjE3NiwtMC4zMzMgLTAuNDE1LC0wLjYyIC0wLjcxOCwtMC44NjMgLTAuMzAyLC0wLjI0MyAtMC42NTgsLTAuNDMzIC0xLjA2NywtMC41NjkgLTAuNDA5LC0wLjEzNiAtMC44NDksLTAuMjA0IC0xLjMyMSwtMC4yMDQgLTAuNDM1LDAgLTAuODMzLDAuMDQxIC0xLjE5MywwLjEyNCAtMC4zNjEsMC4wODIgLTAuNjg1LDAuMTkxIC0wLjk3MywwLjMyNyAtMC4yODksMC4xMzUgLTAuNTQ4LDAuMjkgLTAuNzc5LDAuNDYzIC0wLjIzMiwwLjE3NCAtMC40MzEsMC4zNTIgLTAuNTk4LDAuNTM0IGwgMS4yNzgsMS4zODQgYyAwLjExNSwtMC4xMjUgMC4yNDgsLTAuMjUyIDAuNCwtMC4zODEgMC4xNTIsLTAuMTI5IDAuMzIxLC0wLjI0NyAwLjUwOSwtMC4zNTIgMC4xODcsLTAuMTA2IDAuMzkyLC0wLjE5MSAwLjYxNCwtMC4yNTUgMC4yMjEsLTAuMDY1IDAuNDYsLTAuMDk3IDAuNzE2LC0wLjA5NyAwLjE1LDAgMC4zLDAuMDIxIDAuNDQ3LDAuMDY0IDAuMTQ5LDAuMDQzIDAuMjg1LDAuMTA3IDAuNDEsMC4xOTEgMC4xMjQsMC4wODQgMC4yMjMsMC4xODUgMC4yOTYsMC4zMDMgMC4wNzMsMC4xMTkgMC4xMSwwLjI1MyAwLjExLDAuNDA0IDAsMC4zMjcgLTAuMTU4LDAuNTgxIC0wLjQ3NCwwLjc2MiAtMC4zMTYsMC4xODEgLTAuODE3LDAuMzYgLTEuNTA0LDAuNTM2IC0wLjMzMywwLjA3OCAtMC42NCwwLjE5MiAtMC45MjIsMC4zNDIgLTAuMjgzLDAuMTUxIC0wLjUyNiwwLjMzMiAtMC43MjksMC41NDMgLTAuMjA0LDAuMjExIC0wLjM2MSwwLjQ1MyAtMC40NzQsMC43MjYgLTAuMTEyLDAuMjc0IC0wLjE2OSwwLjU3OCAtMC4xNjksMC45MTQgMCwwLjM2OCAwLjA2NSwwLjcxNCAwLjE5NSwxLjAzOCAwLjEzLDAuMzI1IDAuMzI4LDAuNjExIDAuNTk1LDAuODU5IDAuMjY2LDAuMjQ3IDAuNTk3LDAuNDQzIDAuOTkzLDAuNTg5IDAuMzk3LDAuMTQ1IDAuODY1LDAuMjE4IDEuNDA2LDAuMjE4IDAuNDQ2LDAgMC44NDIsLTAuMDQ2IDEuMTg3LC0wLjEzNyAwLjM0NCwtMC4wOTIgMC42MzcsLTAuMjAxIDAuODc3LC0wLjMyOSAwLjI0LC0wLjEyNyAwLjQzNywtMC4yNTggMC41OTEsLTAuMzkxIDAuMTU1LC0wLjEzNCAwLjI3MSwtMC4yMzkgMC4zNDgsLTAuMzE2IGwgLTEuMTQzLC0xLjI2NiBjIC0wLjA5OSwwLjA3OCAtMC4yMTIsMC4xNjIgLTAuMzM4LDAuMjU1IC0wLjEyNywwLjA5MyAtMC4yNjgsMC4xNzkgLTAuNDI1LDAuMjU4IC0wLjE1NiwwLjA4IC0wLjMzLDAuMTQ3IC0wLjUyMSwwLjIwMSAtMC4xOSwwLjA1MyAtMC4zOTEsMC4wOCAtMC42MDEsMC4wOCAtMC4xNDIsMCAtMC4yOCwtMC4wMjIgLTAuNDE2LC0wLjA2NyAtMC4xMzUsLTAuMDQ2IC0wLjI1OCwtMC4xMDUgLTAuMzY3LC0wLjE3OCAtMC4xMSwtMC4wNzMgLTAuMTk4LC0wLjE2MSAtMC4yNjQsLTAuMjY1IC0wLjA2NiwtMC4xMDMgLTAuMSwtMC4yMTEgLTAuMSwtMC4zMjMgMCwtMC4zMDEgMC4xNTksLTAuNTQ0IDAuNDc3LC0wLjczIDAuMzE4LC0wLjE4NSAwLjc1MywtMC4zNCAxLjMwNywtMC40NjUgMC4zMjcsLTAuMDc3IDAuNjQ1LC0wLjE4NCAwLjk1NSwtMC4zMTkgMC4zMTEsLTAuMTM2IDAuNTg4LC0wLjMxNCAwLjgzMiwtMC41MzYgMC4yNDQsLTAuMjIyIDAuNDQxLC0wLjQ5MyAwLjU5MSwtMC44MTQgMC4xNSwtMC4zMjEgMC4yMjUsLTAuNzExIDAuMjI1LC0xLjE3MiAwLC0wLjM5MiAtMC4wODgsLTAuNzU0IC0wLjI2MywtMS4wODYgbSAtMTAuMzA3LDEuODU0IGMgMCwtMC41MjcgLTAuMDg2LC0xLjAxIC0wLjI1NywtMS40NDkgLTAuMTcyLC0wLjQzOSAtMC40MTgsLTAuODEzIC0wLjc0LC0xLjEyNCAtMC4zMjEsLTAuMzEgLTAuNzEsLTAuNTUzIC0xLjE2NywtMC43MjkgLTAuNDU2LC0wLjE3NSAtMC45NjUsLTAuMjYzIC0xLjUyNiwtMC4yNjMgLTAuNTYsMCAtMS4wNjcsMC4wODYgLTEuNTIyLDAuMjU3IC0wLjQ1NSwwLjE3MSAtMC44NDEsMC40MTQgLTEuMTU5LDAuNzI5IC0wLjMxOCwwLjMxNSAtMC41NjMsMC42OTEgLTAuNzM0LDEuMTMgLTAuMTcxLDAuNDM5IC0wLjI1NiwwLjkyMiAtMC4yNTYsMS40NDkgdiA1LjQ0NiBoIDEuOTg1IHYgLTUuMjcxIGMgMCwtMC4yOTUgMC4wMjksLTAuNTYgMC4wODYsLTAuNzk1IDAuMDU4LC0wLjIzNSAwLjE1MywtMC40MzcgMC4yODQsLTAuNjA2IDAuMTMxLC0wLjE2OSAwLjMwNCwtMC4zMDEgMC41MjEsLTAuMzk0IDAuMjE3LC0wLjA5NCAwLjQ4MSwtMC4xNCAwLjc5NSwtMC4xNCAwLjMwOSwwIDAuNTcsMC4wNDYgMC43ODUsMC4xNCAwLjIxNCwwLjA5MyAwLjM4OCwwLjIyNSAwLjUyMSwwLjM5NCAwLjEzMywwLjE2OSAwLjIyNywwLjM3MSAwLjI4MywwLjYwNiAwLjA1NiwwLjIzNSAwLjA4NCwwLjUgMC4wODQsMC43OTUgdiA1LjI3MSBoIDIuMDE3IHogTSAtMzAuNjgsLTcuMDI2IGMgLTAuNTk2LDAgLTEuMDc4LDAuNDgyIC0xLjA3OCwxLjA3NyAwLDAuNTk1IDAuNDgyLDEuMDc4IDEuMDc4LDEuMDc4IDAuNTk1LDAgMS4wNzcsLTAuNDgzIDEuMDc3LC0xLjA3OCAwLC0wLjU5NSAtMC40ODIsLTEuMDc3IC0xLjA3NywtMS4wNzcgbSAtMS43MDIsMy41NTEgLTEuMDY3LDMuMzE0IC0xLjA5MiwtMy4zMTQgLTAuMDU0LC0wLjE4MSBoIC0xLjg5OSBsIDIuMDE4LDUuNDAzIGggMi4xOTYgbCAxLjk3NywtNS40IC0yLjAyMywtMC4wMDUgeiBtIC0zLjcwOCwtMy41NTEgYyAtMC41OTUsMCAtMS4wNzgsMC40ODIgLTEuMDc4LDEuMDc3IDAsMC41OTUgMC40ODMsMS4wNzggMS4wNzgsMS4wNzggMC41OTUsMCAxLjA3OCwtMC40ODMgMS4wNzgsLTEuMDc4IDAsLTAuNTk1IC0wLjQ4MywtMS4wNzcgLTEuMDc4LC0xLjA3NyBNIC0zOS41NDEsMCBoIC0zLjkxMiB2IC0xLjk5MSBoIDIuOTc0IHYgLTEuNjk2IGggLTIuOTc0IHYgLTMuMzM5IGggLTEuOTg0IHYgOC43NzMgaCA1Ljg5NiB6IiBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiBpZD0icGF0aDIyIi8+PC9nPjwvZz48L2c+PC9nPjwvc3ZnPg==",eL=document.createElement("template");eL.innerHTML=`
|
1629
1629
|
<div id="root">
|
1630
1630
|
<div id="controls">
|
1631
1631
|
<button title="Run" class="button" id="run" disabled>${_g({prefix:"fas",iconName:"play"}).html[0]}</button>
|
@@ -1826,7 +1826,7 @@ const dependencies = {
|
|
1826
1826
|
|
1827
1827
|
${ko}
|
1828
1828
|
</style>
|
1829
|
-
`;class ul extends HTMLElement{constructor(){super()}connectedCallback(){const A=this.innerHTML.replace("<!--","").replace("-->","").trim();this.attachShadow({mode:"open"}).appendChild(eL.content.cloneNode(!0));const g=this.shadowRoot.querySelector("#ide");g.onfocus=()=>{const e=new URLSearchParams;e.set("inline",btoa(C.state.doc.toString()).replace("+","-").replace("/","_")),g.href=`https://faustide.grame.fr/?${e.toString()}`};const B=this.shadowRoot.querySelector("#editor"),C=Wl(B,A),Q=this.shadowRoot.querySelector("#run"),E=this.shadowRoot.querySelector("#stop"),N=this.shadowRoot.querySelector("#faust-ui"),D=this.shadowRoot.querySelector("#faust-diagram"),o=this.shadowRoot.querySelector("#sidebar"),M=this.shadowRoot.querySelector("#sidebar-content"),G=[...this.shadowRoot.querySelectorAll(".tab")],i=[...M.querySelectorAll("div")],L=sc([B,o],{sizes:[100,0],minSize:[0,20],gutterSize:7,snapOffset:150,onDragEnd:()=>{y==null||y.onResize(),S==null||S.onResize()}});aC.then(()=>Q.disabled=!1);const Y=[70,30];let w=!1;const t=()=>{w||L.setSizes(Y),w=!0};let Z,h,K,y,S,c=!1,
|
1829
|
+
`;class ul extends HTMLElement{constructor(){super()}connectedCallback(){const A=this.innerHTML.replace("<!--","").replace("-->","").trim();this.attachShadow({mode:"open"}).appendChild(eL.content.cloneNode(!0));const g=this.shadowRoot.querySelector("#ide");g.onfocus=()=>{const e=new URLSearchParams;e.set("inline",btoa(C.state.doc.toString()).replace("+","-").replace("/","_")),g.href=`https://faustide.grame.fr/?${e.toString()}`};const B=this.shadowRoot.querySelector("#editor"),C=Wl(B,A),Q=this.shadowRoot.querySelector("#run"),E=this.shadowRoot.querySelector("#stop"),N=this.shadowRoot.querySelector("#faust-ui"),D=this.shadowRoot.querySelector("#faust-diagram"),o=this.shadowRoot.querySelector("#sidebar"),M=this.shadowRoot.querySelector("#sidebar-content"),G=[...this.shadowRoot.querySelectorAll(".tab")],i=[...M.querySelectorAll("div")],L=sc([B,o],{sizes:[100,0],minSize:[0,20],gutterSize:7,snapOffset:150,onDragEnd:()=>{y==null||y.onResize(),S==null||S.onResize()}});aC.then(()=>Q.disabled=!1);const Y=[70,30];let w=!1;const t=()=>{w||L.setSizes(Y),w=!0};let Z,h,K,y,S,c=!1,l=-1,U;Q.onclick=async()=>{UA.state==="suspended"&&await UA.resume(),await aC;const e=C.state.doc.toString();let F=null;try{await hC.compile(sI,"main",e,"");const x=hC.getMeta();let{midi:v,nvoices:q}=uo(x);c=v,l=q,F=q>0?xo():po(),await F.compile(sI,"main",e,"")}catch(x){Ol(C,x);return}Jl(C),Z!==void 0&&Z.disconnect(),l>0?Z=await F.createNode(UA,l):Z=await F.createNode(UA),Z.numberOfInputs>0?(d.disabled=!1,R(await Wo()),await T()):(d.disabled=!0,d.innerHTML="<option>Audio input</option>"),Z.connect(UA.destination),E.disabled=!1;for(const x of G)x.disabled=!1;c&&Oo(Jo(Z)).then(()=>{console.log("Successfully connected to the MIDI device.")}).catch(x=>{console.error("Error accessing MIDI device:",x.message)}),t();for(const x of i)for(;x.lastChild;)x.lastChild.remove();K=new AnalyserNode(UA,{fftSize:Math.pow(2,11),minDecibels:-96,maxDecibels:0,smoothingTimeConstant:.85}),Z.connect(K),y=new UL(i[2]),S=new UL(i[3]);const p=Z.getUI();a(p.length>1||p[0].items.length>0?0:3);const z=new lo.FaustUI({ui:p,root:N});z.paramChangeByUI=(x,v)=>Z==null?void 0:Z.setParamValue(x,v),Z.setOutputParamHandler((x,v)=>z.paramChangeByDSP(x,v)),H(mo.from("main",e,"")["process.svg"]),B.style.height=`${Math.max(125,z.minHeight)}px`,N.style.width=z.minWidth*1.25+"px",N.style.height=z.minHeight*1.25+"px"};const H=e=>{D.innerHTML=e;for(const F of D.querySelectorAll("a"))F.onclick=p=>{p.preventDefault();const z=F.href.baseVal,x=sI.fs().readFile("main-svg/"+z,{encoding:"utf8"});H(x)}};let b;const s=()=>{y.renderScope([{analyser:K,style:"rgb(212, 100, 100)",edgeThreshold:.09}]),b=requestAnimationFrame(s)},k=()=>{S.renderSpectrum(K),b=requestAnimationFrame(k)},a=e=>{for(const[F,p]of G.entries())e===F?(p.classList.add("active"),i[F].classList.add("active")):(p.classList.remove("active"),i[F].classList.remove("active"));e===2?(y.onResize(),b!==void 0&&cancelAnimationFrame(b),b=requestAnimationFrame(s)):e===3?(S.onResize(),b!==void 0&&cancelAnimationFrame(b),b=requestAnimationFrame(k)):b!==void 0&&(cancelAnimationFrame(b),b=void 0)};for(const[e,F]of G.entries())F.onclick=()=>a(e);E.onclick=()=>{Z!==void 0&&(Z.disconnect(),Z.destroy(),Z=void 0,E.disabled=!0)};const d=this.shadowRoot.querySelector("#audio-input"),R=e=>{if(!d.disabled){for(;d.lastChild;)d.lastChild.remove();for(const F of e)F.kind==="audioinput"&&d.appendChild(new Option(F.label||F.deviceId,F.deviceId));d.appendChild(new Option("Audio File","Audio File"))}};kE.push(R);const T=async()=>{const e=d.value,F=await navigator.mediaDevices.getUserMedia({audio:{deviceId:e,echoCancellation:!1,noiseSuppression:!1,autoGainControl:!1}});if(h&&(h.disconnect(),h=void 0),Z&&Z.numberOfInputs>0)if(e=="Audio File")try{const z=document.querySelector('script[src$="faust-web-component.js"]').src,x=z.substring(0,z.lastIndexOf("/")+1),q=await(await fetch(x+"02-XYLO1.mp3")).arrayBuffer();let J=await UA.decodeAudioData(q);U=UA.createBufferSource(),U.buffer=J,U.connect(Z),U.start()}catch(p){console.error("Error loading file: ",p)}else U!==void 0&&(U.stop(),U.disconnect(),U=void 0),h=UA.createMediaStreamSource(F),h.connect(Z)};d.onchange=T}}const zL=document.createElement("template");zL.innerHTML=`
|
1830
1830
|
<div id="root">
|
1831
1831
|
<div id="controls">
|
1832
1832
|
<button title="On/off" class="button" id="power" disabled>${_g({prefix:"fas",iconName:"power-off"}).html[0]}</button>
|
@@ -1913,5 +1913,5 @@ const dependencies = {
|
|
1913
1913
|
|
1914
1914
|
${ko}
|
1915
1915
|
</style>
|
1916
|
-
`;class vl extends HTMLElement{constructor(){super()}connectedCallback(){const A=this.innerHTML.replace("<!--","").replace("-->","").trim();this.attachShadow({mode:"open"}).appendChild(zL.content.cloneNode(!0));const g=this.shadowRoot.querySelector("#power"),B=this.shadowRoot.querySelector("#faust-ui");aC.then(()=>g.disabled=!1);let C=!1,Q=!1,E=-1,N,D,o,M,G;const i=async()=>{await aC,await hC.compile(sI,"main",A,"");const h=hC.getMeta();let{midi:K,nvoices:y}=uo(h);Q=K,E=y,M=y>0?xo():po(),await M.compile(sI,"main",A,"");const S=M.getUI();o=new lo.FaustUI({ui:S,root:B}),B.style.width=o.minWidth*1.25+"px",B.style.height=o.minHeight*1.25+"px",o.resize()},L=async()=>{UA.state==="suspended"&&await UA.resume(),N===void 0&&(E>0?N=await M.createNode(UA,E):N=await M.createNode(UA)),Q&&Oo(Jo(N)).then(()=>{console.log("Successfully connected to the MIDI device.")}).catch(h=>{console.error("Error accessing MIDI device:",h.message)}),o.paramChangeByUI=(h,K)=>N==null?void 0:N.setParamValue(h,K),N.setOutputParamHandler((h,K)=>o.paramChangeByDSP(h,K)),N.numberOfInputs>0?(w.disabled=!1,t(await Wo()),await Z()):(w.disabled=!0,w.innerHTML="<option>Audio input</option>"),N.connect(UA.destination),g.style.color="#ffa500"},Y=()=>{N==null||N.disconnect(),g.style.color="#fff"};g.onclick=()=>{C?Y():L(),C=!C};const w=this.shadowRoot.querySelector("#audio-input"),t=h=>{if(!w.disabled){for(;w.lastChild;)w.lastChild.remove();for(const K of h)K.kind==="audioinput"&&w.appendChild(new Option(K.label||K.deviceId,K.deviceId));w.appendChild(new Option("Audio File","Audio File"))}};kE.push(t);const Z=async()=>{const h=w.value,K=await navigator.mediaDevices.getUserMedia({audio:{deviceId:h,echoCancellation:!1,noiseSuppression:!1,autoGainControl:!1}});if(D&&(D.disconnect(),D=void 0),N&&N.numberOfInputs>0)if(h=="Audio File")try{const S=await(await fetch("
|
1916
|
+
`;class vl extends HTMLElement{constructor(){super()}connectedCallback(){const A=this.innerHTML.replace("<!--","").replace("-->","").trim();this.attachShadow({mode:"open"}).appendChild(zL.content.cloneNode(!0));const g=this.shadowRoot.querySelector("#power"),B=this.shadowRoot.querySelector("#faust-ui");aC.then(()=>g.disabled=!1);let C=!1,Q=!1,E=-1,N,D,o,M,G;const i=async()=>{await aC,await hC.compile(sI,"main",A,"");const h=hC.getMeta();let{midi:K,nvoices:y}=uo(h);Q=K,E=y,M=y>0?xo():po(),await M.compile(sI,"main",A,"");const S=M.getUI();o=new lo.FaustUI({ui:S,root:B}),B.style.width=o.minWidth*1.25+"px",B.style.height=o.minHeight*1.25+"px",o.resize()},L=async()=>{UA.state==="suspended"&&await UA.resume(),N===void 0&&(E>0?N=await M.createNode(UA,E):N=await M.createNode(UA)),Q&&Oo(Jo(N)).then(()=>{console.log("Successfully connected to the MIDI device.")}).catch(h=>{console.error("Error accessing MIDI device:",h.message)}),o.paramChangeByUI=(h,K)=>N==null?void 0:N.setParamValue(h,K),N.setOutputParamHandler((h,K)=>o.paramChangeByDSP(h,K)),N.numberOfInputs>0?(w.disabled=!1,t(await Wo()),await Z()):(w.disabled=!0,w.innerHTML="<option>Audio input</option>"),N.connect(UA.destination),g.style.color="#ffa500"},Y=()=>{N==null||N.disconnect(),g.style.color="#fff"};g.onclick=()=>{C?Y():L(),C=!C};const w=this.shadowRoot.querySelector("#audio-input"),t=h=>{if(!w.disabled){for(;w.lastChild;)w.lastChild.remove();for(const K of h)K.kind==="audioinput"&&w.appendChild(new Option(K.label||K.deviceId,K.deviceId));w.appendChild(new Option("Audio File","Audio File"))}};kE.push(t);const Z=async()=>{const h=w.value,K=await navigator.mediaDevices.getUserMedia({audio:{deviceId:h,echoCancellation:!1,noiseSuppression:!1,autoGainControl:!1}});if(D&&(D.disconnect(),D=void 0),N&&N.numberOfInputs>0)if(h=="Audio File")try{const S=document.querySelector('script[src$="faust-web-component.js"]').src,c=S.substring(0,S.lastIndexOf("/")+1),U=await(await fetch(c+"02-XYLO1.mp3")).arrayBuffer();let H=await UA.decodeAudioData(U);G=UA.createBufferSource(),G.buffer=H,G.connect(N),G.start()}catch(y){console.error("Error loading file: ",y)}else G!==void 0&&(G.stop(),G.disconnect(),G=void 0),D=UA.createMediaStreamSource(K),D.connect(N)};w.onchange=Z,i()}}customElements.define("faust-editor",ul),customElements.define("faust-widget",vl);const FL=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}))})();
|
1917
1917
|
//# sourceMappingURL=faust-web-component.js.map
|